Commit Graph

27 Commits

Author SHA1 Message Date
Brian Picciano
2be865181d Complete refactor vm to not be as stupid
This commit is the result of many days of picking vm apart and putting
it back together again. The result is an implementation which separates
compile and runtime into separate steps, and which functions (more)
correctly in the face of recursion.

Pretty much all aspects of vm have been modified or deleted, so it's not
even really worth it to describe specific changes. Just pretend this is
the original implementaiton and the old one was never done.
2022-03-31 09:27:52 -06:00
Brian Picciano
ebf57591a8 Got basic demo working, ran go fmt 2021-12-30 15:29:38 -07:00
Brian Picciano
6257495fe4 Implement all builtins required to get fib working
Getting `recur` to work required adding an Operation argument to a bunch
of places in a really hacky way. I don't like it at all, but I'm also
kind of out of mental energy to figure it out properly. The fibonacci
demo in the README _works_, at least, though I don't think it's actually
tail recursive.
2021-12-30 15:10:25 -07:00
Brian Picciano
e7991adfaa Make graph generic
The base graph implementation has been moved into its own package,
`graph`, and been made fully generic, ie the value on each vertex/edge
is a parameterized type. This will allow us to use the graph for both
syntax parsing (gg) and runtime evaluation (vm), with each use-case
being able to use slightly different Value types.
2021-12-29 12:32:53 -07:00
Brian Picciano
3f28c60ab8 Remove a bunch of old code, update the README 2021-08-26 21:25:39 -06:00
Brian Picciano
e3b997cc7d should probably just commit this shit 2017-07-11 18:52:07 -06:00
Brian Picciano
3b6fe4fb4a readme.... again 2016-08-05 11:42:07 -06:00
Brian Picciano
4f9baf7514 starting over again. I'm just gonna keep doing this about once a year for the rest of my life 2016-07-01 17:59:13 -06:00
Brian Picciano
2d779f8182 read through everything again, made some small fixes to docs 2015-07-15 20:32:53 -06:00
Brian Picciano
0fdb7f1af5 move docs into docs 2014-10-06 17:44:07 -04:00
Brian Picciano
33bee1efaf manifesto and half-assed interoperability 2014-10-06 12:34:04 -04:00
Brian Picciano
758263300d minor change for bare strings 2014-10-04 15:04:02 -04:00
Brian Picciano
f5cd038493 fix my macro example cause I'm dumb 2014-10-03 15:47:08 -04:00
Brian Picciano
7248a929bf more fundamental changes 2014-10-02 15:08:42 -04:00
Brian Picciano
aeb5497f61 suggestions from @marcopolo 2014-10-02 11:25:02 -04:00
Brian Picciano
5bb828e37d Forgot some colons, this syntax suuuuuucks 2014-10-01 20:07:29 -04:00
Brian Picciano
98bc79a653 add goals 2014-10-01 17:52:13 -04:00
Brian Picciano
3cab34ad31 update with macro syntax and some other stuff 2014-10-01 17:46:29 -04:00
Brian Picciano
7a732b4b05 new ideas 2014-04-16 11:39:24 -05:00
Brian Picciano
98c2218239 starting over 2014-04-16 11:05:52 -05:00
Brian Picciano
2efde48331 started on pattern matching 2013-07-23 12:07:12 -04:00
Brian Picciano
88f1e1e705 Added runtime to the menu 2013-05-28 00:30:16 -03:00
Brian Picciano
b7934daca5 Updated README with link to syntax doc 2013-05-27 23:20:45 -03:00
mediocregopher
3663a6f33f moved syntax docs 2013-05-27 22:15:45 -04:00
mediocregopher
7f561a0e69 made comment docs more explicit 2013-05-27 01:17:11 -04:00
mediocregopher
801c5df9b6 added comments section to readme 2013-05-27 01:10:28 -04:00
mediocregopher
17e070553b added readme, and space escaped character 2013-05-27 00:56:04 -04:00