Nathan Braswell
|
e6319d18f7
|
Add all-k_prime grammar argument to read-string, enabling all-in-k_prime grammer changing
|
2020-09-20 13:52:56 -04:00 |
|
Nathan Braswell
|
23d2c166cd
|
Basic provide & with_import, fix a rep bug where all but first execution was in root_env instead of standard env
|
2020-09-19 12:41:52 -04:00 |
|
Nathan Braswell
|
e8899fc093
|
Better hermetic scoping
|
2020-09-19 00:04:09 -04:00 |
|
Nathan Braswell
|
1d97366933
|
Implement user-interatction part of k_prime in new_kraken.kp, moved from load_test.kp
|
2020-09-17 23:28:45 -04:00 |
|
Nathan Braswell
|
62e991d0dd
|
Y combinator works, as well as vY (the vau version, which is different b/c applicative order), and prototype for new load style removing set works
|
2020-09-16 00:07:49 -04:00 |
|
Nathan Braswell
|
23910ba51e
|
Update web version, add a sharable try.html
|
2020-09-13 19:03:44 -04:00 |
|
Nathan Braswell
|
aa75269608
|
Working string interpolation!
|
2020-09-13 18:25:30 -04:00 |
|
Nathan Braswell
|
59c6bceb4d
|
work in progress string interpolation
|
2020-09-13 18:05:54 -04:00 |
|
Nathan Braswell
|
33d28fe1fa
|
Added {} bodies, C style function call, and Kraken-style fun
|
2020-09-12 21:34:23 -04:00 |
|
Nathan Braswell
|
54cffb4185
|
massage new constructor to be a function and add methods to both it and the new syntax
|
2020-09-08 23:30:56 -04:00 |
|
Nathan Braswell
|
ba64276630
|
Begin object/struct syntax & semantics
|
2020-09-08 00:25:41 -04:00 |
|
Nathan Braswell
|
3cb5c8d827
|
Add TCO option to BuiltinCombinator and convert cond and eval to use this, then rewrite self-hosted do so that it too is TCO. This allows us to self-host cond (which we did) so without worring about stack space for large arrays
|
2020-09-07 15:41:27 -04:00 |
|
Nathan Braswell
|
c0eca02e43
|
Update website
|
2020-09-06 22:10:59 -04:00 |
|
Nathan Braswell
|
0d07d22995
|
Move to wrap and unwrap
|
2020-09-06 12:19:19 -04:00 |
|
Nathan Braswell
|
8e47cb2ec2
|
Move to prelude and add enough to run bf (with modifications)
|
2020-08-29 00:33:04 -04:00 |
|
Nathan Braswell
|
241b4ca3f4
|
Implemented quasiquoting as a vau!
|
2020-08-28 00:38:16 -04:00 |
|
Nathan Braswell
|
a5f15f70f8
|
Fixed the eval issue for builtins mentioned last time, and undid lambda fix. Fixed it by unevaling in appropriate spots by wrapping in a call to quote, or equilivant. Map at least should be rewritten a language feature, for sure.
|
2020-08-20 22:57:01 -04:00 |
|
Nathan Braswell
|
94a24cb30f
|
Somehow forgot to commit rc all this time
|
2020-08-20 18:37:43 -04:00 |
|
Nathan Braswell
|
d69e77ee33
|
Added vector syntatic sugar [], set-idx!, and neatend up some of the self-implementation with the ' and [] syntatic sugar. Realized that currently most builtins pass arguments evaluated such that functions that they are passed really have to be vau instead of lambda. This includes both add_grammer_rule and more common ones like map, etc. I think I might have to undo my lambda fix in recognition of this. Anyway, either I have to pass arguments unevaluated or I need to swap to wrap/unwrap instead of my current lambda impl. It would be more like Kernel, and might make optimization etc easier, but I'm a tad worried about unwrap being exposed to the user / not forcing the more general optimization based on partial evaluation on myself (maybe doing this even makes optimization harder or less elegant?)
|
2020-08-14 22:37:03 -04:00 |
|
Nathan Braswell
|
8ea030547a
|
Finally commit earlier work now that I've fixed the bug where you couldn't use new syntax inside of functions because the inner closure struct was being corrupted and giving a null env. Now I use a nil env
|
2020-08-14 00:37:55 -04:00 |
|
Nathan Braswell
|
b292180a86
|
File loading and gradual evaluation
|
2020-07-21 23:30:08 -04:00 |
|
Nathan Braswell
|
9caf220aa1
|
Added print / string stuff, meta and with-meta, and the old add_grammer_rule
|
2020-07-21 22:56:29 -04:00 |
|
Nathan Braswell
|
45af192cee
|
Added in basic math, comparison, and boolean operations
|
2020-07-17 00:00:22 -04:00 |
|
Nathan Braswell
|
41c02d43ff
|
implement cond vector len idx concat - =, all as builtins, as an excercise implemented quote let1 apply rest map lambda fun, all in k_prime itself, proving you don't absolutly need wrap or apply as builtins (eval and vector manipulation functions suffice)
|
2020-07-13 00:48:01 -04:00 |
|
Nathan Braswell
|
38bf5edc35
|
implement set!
|
2020-06-30 21:59:11 -04:00 |
|
Nathan Braswell
|
a5f1355b63
|
Added eval, which I think completes the key vau parts - will have to see if I can construct lambda soon
|
2020-06-30 21:17:02 -04:00 |
|
Nathan Braswell
|
9f4dd92834
|
Add vau
|
2020-06-28 23:28:15 -04:00 |
|
Nathan Braswell
|
0a1cf4fb4d
|
Swap core vau/kernel style interpreter
|
2020-06-28 19:17:09 -04:00 |
|
Nathan Braswell
|
2efd3b5474
|
More object syntax
|
2020-05-13 20:58:20 -04:00 |
|
Nathan Braswell
|
722a72579a
|
Spelling
|
2020-05-12 21:30:37 -04:00 |
|
Nathan Braswell
|
bf53d3701f
|
spelling
|
2020-05-12 16:45:52 -04:00 |
|
Nathan Braswell
|
622aee0c75
|
Add fib example to web page
|
2020-05-12 16:36:07 -04:00 |
|
Nathan Braswell
|
c799cf485b
|
Massive updates to the website
|
2020-05-12 16:22:41 -04:00 |
|
Nathan Braswell
|
dac3e41101
|
Pass inputs to grammer callbacks as individual parameters
|
2020-05-12 09:33:33 -04:00 |
|
Nathan Braswell
|
8e296d57c8
|
Add atom syntax
|
2020-05-12 09:19:01 -04:00 |
|
Nathan Braswell
|
45ea718bc8
|
Add in atoms as length-1 vectors to bf.kp, next need to add in reader macros for them. Also the params from earlier
|
2020-05-12 00:40:36 -04:00 |
|
Nathan Braswell
|
29230404a3
|
Remove just a tad more of bf
|
2020-05-12 00:33:29 -04:00 |
|
Nathan Braswell
|
25801b3d3a
|
Add + and * to add_grammer_rule. Realized that rules should actually be passed to functions as params, with option for variadac, that will be up next
|
2020-05-12 00:32:12 -04:00 |
|
Nathan Braswell
|
77ce4095c0
|
Fix compiling varadic params, demo method syntax
|
2020-05-11 23:20:54 -04:00 |
|
Nathan Braswell
|
a7c0c3d78c
|
Lisp object system prototyped! Added necessary C functions and variadic support
|
2020-05-11 01:08:13 -04:00 |
|
Nathan Braswell
|
9aeadfc224
|
Add names to BuiltinFunctions so they can be compiled when used by reference, much less hacky and allows our new BF version to be compiled
|
2020-05-10 21:33:47 -04:00 |
|
Nathan Braswell
|
f10630c66c
|
First working object tests!
|
2020-05-10 19:29:28 -04:00 |
|
Nathan Braswell
|
3f501a5c2f
|
Added correct compiling of top level vector values, including with meta
|
2020-05-10 00:50:46 -04:00 |
|
Nathan Braswell
|
4cd7b22c86
|
Added set-meta! to interp and compile
|
2020-05-10 00:17:30 -04:00 |
|
Nathan Braswell
|
9ce70badab
|
added reference counted vectors in interp
|
2020-05-09 23:59:46 -04:00 |
|
Nathan Braswell
|
991a353805
|
Add compiling with-meta/meta for vectors only to C
|
2020-05-09 13:30:38 -04:00 |
|
Nathan Braswell
|
5d473d698d
|
Somewhat in the middle - removed list, added meta for interpreter, not yet implemented in compiler
|
2020-05-09 11:52:32 -04:00 |
|
Nathan Braswell
|
c5153c2977
|
add explanations of idea, links to paper, current status, and a tiny amount of CSS from https://bestmotherfucking.website/
|
2020-05-03 00:48:51 -04:00 |
|
Nathan Braswell
|
e6e053eaff
|
create rudimentary try-kraken-online
|
2020-05-03 00:10:09 -04:00 |
|
Nathan Braswell
|
c61b9d3c22
|
fixed closeing with strings
|
2020-04-25 13:05:56 -04:00 |
|
Nathan Braswell
|
e74c883132
|
throw and catch implemented
|
2020-04-23 13:04:27 -04:00 |
|
Nathan Braswell
|
ae150b17fa
|
Added atoms! atom, deref, swap!, literal support
|
2020-04-23 00:15:39 -04:00 |
|
Nathan Braswell
|
2baad06e8c
|
Add string literals and symbols, print support for both as well as lists and vectors
|
2020-04-22 21:10:46 -04:00 |
|
Nathan Braswell
|
19ae75b819
|
Fix the quoting compile
|
2020-04-20 01:22:45 -04:00 |
|
Nathan Braswell
|
d726705845
|
Add creation and indexing of lists and vectors, with their literal forms. Compiling quote has a bug though, and passes through - will have to consider how to fix
|
2020-04-20 01:16:34 -04:00 |
|
Nathan Braswell
|
b505c021f2
|
Implemented closures
|
2020-04-19 21:52:21 -04:00 |
|
Nathan Braswell
|
dff7306cc3
|
Change to raw string
|
2020-04-19 01:25:20 -04:00 |
|
Nathan Braswell
|
50817b567f
|
Fix my fact impl, add print and println
|
2020-04-18 13:36:46 -04:00 |
|
Nathan Braswell
|
cc833015c3
|
Can compile functions depending on other top level functions and values
|
2020-04-17 10:31:38 -04:00 |
|
Nathan Braswell
|
bed1871ad3
|
Check type of main return
|
2020-04-14 23:59:52 -04:00 |
|
Nathan Braswell
|
3141ad1d1d
|
parameters working
|
2020-04-14 23:53:12 -04:00 |
|
Nathan Braswell
|
ed01b5f580
|
Parameterless functions working
|
2020-04-14 23:34:23 -04:00 |
|
Nathan Braswell
|
8da9190b3d
|
Add type checking to make sure compiled lang is safe
|
2020-04-14 14:35:01 -04:00 |
|
Nathan Braswell
|
7cf8ca8b80
|
Function calls work, builtin functions operating on ints
|
2020-04-13 23:42:32 -04:00 |
|
Nathan Braswell
|
4b44277d30
|
emit if and true/false/nil constants
|
2020-04-13 22:55:25 -04:00 |
|
Nathan Braswell
|
05c77e3ad9
|
let* generated
|
2020-04-13 22:45:40 -04:00 |
|
Nathan Braswell
|
813d31cb2b
|
Working on C generator for k_prime, can compile single number return
|
2020-04-12 15:52:45 -04:00 |
|
Nathan Braswell
|
cb54429d1a
|
Remove keywords and maps from k_prime to make it leaner
|
2020-04-12 00:25:11 -04:00 |
|
Nathan Braswell
|
c4078aa5e1
|
added optional_WS back
|
2020-04-10 23:11:17 -04:00 |
|
Nathan Braswell
|
7a6a1e0d82
|
reformat
|
2020-04-10 23:08:31 -04:00 |
|
Nathan Braswell
|
721dc203be
|
Loop function can be simpler
|
2020-04-10 23:05:05 -04:00 |
|
Nathan Braswell
|
7bc58e904e
|
BF implementation as GLL macros
|
2020-04-10 22:46:53 -04:00 |
|
Nathan Braswell
|
256006f1c6
|
allow emtpy list, vec, dict
|
2020-04-02 14:47:50 -04:00 |
|
Nathan Braswell
|
80e31b8f6e
|
Forgot my io mod
|
2020-04-02 14:23:49 -04:00 |
|
Nathan Braswell
|
3591b90265
|
Also commit the syntax playground
|
2020-04-02 14:15:41 -04:00 |
|
Nathan Braswell
|
8eab986395
|
missed division
|
2020-04-01 11:54:05 -04:00 |
|
Nathan Braswell
|
b9adcdd3c6
|
Fix longest
|
2020-04-01 11:47:04 -04:00 |
|
Nathan Braswell
|
f70cc8030e
|
fix comment handling (including at beginning of files)
|
2020-03-31 15:46:03 -04:00 |
|
Nathan Braswell
|
ed33f967ce
|
Make adding grammer rules way more ergonomic from k_prime, implmeent reader macros with it now! Note I changed splice-unqote from ~@ to , as ~@ is legal as unquote deref and causes ambigious parses
|
2020-03-31 15:15:45 -04:00 |
|
Nathan Braswell
|
494e22007d
|
Fix hardcoded reader macros, add eval-read-string, fix niceness of whitespace between forms in repl and files. Next should be to redo the parser api to be way nicer from within kraken'
|
2020-03-30 19:51:01 -04:00 |
|
Nathan Braswell
|
a811b28bc1
|
SELF MODIFYING GRAMMER WORKS!
|
2020-03-29 22:07:55 -04:00 |
|
Nathan Braswell
|
40f0125ed1
|
whoops, messed up true,false,nil - were being parsed as symbols
|
2020-03-29 20:56:27 -04:00 |
|
Nathan Braswell
|
f86a6a600b
|
Remove old parsing
|
2020-03-29 20:49:50 -04:00 |
|
Nathan Braswell
|
ce7d228358
|
Use the new parser (now with reduction functions) for mal
|
2020-03-29 20:42:51 -04:00 |
|
Nathan Braswell
|
a9bb011bd9
|
Starting to make k_prime lisp grammer, doing testing to get all MAL test cases parsing
|
2020-03-28 00:23:01 -04:00 |
|
Nathan Braswell
|
1fa60a5496
|
Pretty printing of BSR
|
2020-03-27 18:35:32 -04:00 |
|
Nathan Braswell
|
676c0ded4d
|
IT WORKS
|
2020-03-27 00:16:16 -04:00 |
|
Nathan Braswell
|
3cef008a93
|
Now it compiles
|
2020-03-26 23:34:25 -04:00 |
|
Nathan Braswell
|
a10238e493
|
Parses (Kraken, not the parser ;) )
|
2020-03-26 22:08:39 -04:00 |
|
Nathan Braswell
|
6d1f3bb73f
|
fungll sketch
|
2020-03-25 22:55:57 -04:00 |
|
Nathan Braswell
|
2d6c1880ff
|
MaL implementation in Kraken
|
2020-03-10 12:57:28 -04:00 |
|
Nathan Braswell
|
2bc9ce497b
|
FINALLY FIXED THE PROBLEM - was using set instead of set_single, so it set it's child as well, causing the type loop. Also, the binding replace child evaluated the parameters first, changing t's parent before t->parent->replace_child happened
|
2019-07-13 18:01:04 -04:00 |
|
Nathan Braswell
|
148d70e2d4
|
Man, I was just missing initting to null and it would have run
|
2019-01-06 22:04:56 -05:00 |
|
Nathan Braswell
|
c2495a04f8
|
binding epochs compile, but segfault. too late tonight to keep going
|
2019-01-06 01:06:15 -05:00 |
|
Nathan Braswell
|
06df819e72
|
Port (though ineffecently) defer_lower!
|
2018-12-29 20:58:34 -05:00 |
|
Nathan Braswell
|
ed57d2b2a9
|
Added sizeof and fixed inferencing from explicitly instantiated template functions so that new and delete work! (though not traits yet...)
|
2018-12-29 16:35:47 -05:00 |
|
Nathan Braswell
|
235775c077
|
Basic veriadic, ext, and declaration only support, allowing us to use printf! Unifying with veriadic might need work (does it need ref treatment?)
|
2018-12-29 14:50:58 -05:00 |
|
Nathan Braswell
|
4ec59690cf
|
String value support
|
2018-12-29 13:32:32 -05:00 |
|
Nathan Braswell
|
eccc4c87a6
|
Finally, ref lowering! A little hacky, but not terrible...
|
2018-12-29 12:19:54 -05:00 |
|
Nathan Braswell
|
b356b793aa
|
Groundwork for ref_lower pass
|
2018-12-28 01:14:54 -05:00 |
|