Commit Graph

4238 Commits

Author SHA1 Message Date
Calvin Rose 6ca5a76286 Fix a divide by 0 error when table is too small. 2017-05-04 11:34:24 -04:00
Calvin Rose bc82ce348a Fix regression where math ops didn't error. 2017-05-03 20:35:39 -04:00
Calvin Rose c6e9f24f82 Complete adding parser to scripting. 2017-05-03 19:59:27 -04:00
Calvin Rose 631bb0cb63 Change integer to string function 2017-04-30 11:27:27 -04:00
Calvin Rose 78cdf4b184 Add stdi and stdout to file io. 2017-04-30 11:15:44 -04:00
Calvin Rose 88138a16b3 Remove temp.txt 2017-04-27 09:48:44 -04:00
Calvin Rose 80f4f687d4 Merge branch 'master' of https://github.com/bakpakin/gst 2017-04-27 09:48:12 -04:00
Calvin Rose 29a54a35d7 Add more io functionality 2017-04-27 09:46:26 -04:00
bakpakin 9806546e1c Change some function names. 2017-04-27 09:44:52 -04:00
Calvin Rose bf2c16ccb0 Flesh out support for userdata
Add file reading via file objects.
Finalizer option for userdata.
2017-04-26 10:22:16 -04:00
Calvin Rose d295e281e1 Add a little bit to README 2017-04-25 18:22:43 -04:00
Calvin Rose 14f8b12706 Use 32 bit unsigned integers for stackframes. 2017-04-25 12:26:58 -04:00
bakpakin 1d7f42ba01 Visual distinction between integers and reals.
Add F suffix to real numbers when printed.
2017-04-24 21:08:53 -04:00
bakpakin 0a96e45c4a Change object to table type.
Tables are simpler and don't do inheritance via metatables. This means
object polymorphism will be done through a different mechanism rather
than Lua-like metatables. Perhaps smalltalk style messaging using
functions as objects, or lisp-like method dispatch.
2017-04-24 21:00:56 -04:00
Calvin Rose c33d4da994 Fix bug with calling convention.
Stack frames were increasing with size every function
call and overwriting other stuff, resulting in some issues with gc.
2017-04-24 18:42:08 -04:00
Calvin Rose 652b250718 Finish simple pretty printer in gst.
Discovered memory leaks. Seems to have to do with improper marking of
the stack and or the VM messes up the stack.
2017-04-24 18:09:23 -04:00
Calvin Rose a54548eaa0 Add 64 bit signed integers as a basic type. Will enable
more native bitwise operations and c integration at the expense
of complicating arithmetic.
2017-04-24 16:02:54 -04:00
Calvin Rose 81987dca45 More work. 2017-04-24 13:12:55 -04:00
Calvin Rose 5845434529 Add readline to repl for better experience 2017-04-19 12:56:29 -04:00
Calvin Rose fb3abf5a31 Add apply special form. TODO -
make into function.
2017-04-19 09:43:49 -04:00
Calvin Rose 01e8749f39 Redo function call bytecode interface to be simpler and allow
for an apply like structure in the language
2017-04-19 09:02:12 -04:00
Calvin Rose f4a6f4073f Rename some fuctions in util. 2017-04-18 16:55:03 -04:00
Calvin Rose ea432242d3 Add license header to all source files. 2017-04-17 22:40:39 -04:00
Calvin Rose 7a2ec82daf License 2017-04-17 22:36:44 -04:00
Calvin Rose baa3544ca0 Readd the repl. 2017-04-17 22:14:35 -04:00
Calvin Rose 6e71984fc5 Add wrapping functions for easy conversion between c api and
internal values.
2017-04-17 18:46:28 -04:00
Calvin Rose f52e290206 Allow parser to parse files rather than just a repl. I think
there are some memory leak issues (problems with gc).
2017-04-17 00:15:18 -04:00
Calvin Rose f456de5fac Change object implementaion to use open hashing. Currently
using simple linear probing.
2017-04-16 09:39:41 -04:00
Calvin Rose e90b66af58 Add struct type. 2017-04-15 16:05:59 -04:00
Calvin Rose 20bb5a18f7 Remove symbol type in favor of only strings. Anticipate
addition of struct type, which will be an immutable hashtable.
2017-04-14 13:41:32 -04:00
Calvin Rose e28e31f818 Begin implementing module system. 2017-04-12 21:21:46 -04:00
Calvin Rose ded3d06387 Use fewer special forms in c compiler. This should
make the self hosted compiler easier to make. The
C version of the compiler does not need to be efficient.
2017-04-12 10:31:50 -04:00
Calvin Rose a0d3600ac0 Fix gitignore 2017-03-26 15:44:57 -04:00
Calvin Rose ac50f6232e More work on cleaing up code. 2017-03-26 11:47:58 -04:00
Calvin Rose 6365a007b6 More work on cleaning up string implementation. 2017-03-22 18:35:54 -04:00
Calvin Rose 841ee3696d Add cache for strings. 2017-03-22 00:27:18 -04:00
Calvin Rose f6e26d9893 Work on serialization. Move clibs into core. 2017-03-20 23:06:38 -04:00
Calvin Rose 4c35ee0a2c Add first class symbol type. 2017-03-19 17:29:25 -04:00
Calvin Rose a2f3fa3b3d Work on deserialization for loading bytecode and
other objects.
2017-03-19 12:16:40 -04:00
Calvin Rose 9856142fef Refactor code. Separate code into different modules to
separate the minimum runtime from auxiliary functions.
Change makefile to allow building static libraries.
2017-03-15 20:56:37 -04:00
Calvin Rose 91f2766dd0 Rename binary 2017-03-15 01:27:56 -04:00
Calvin Rose ba82ba414a Retabbed things 2017-03-15 01:26:45 -04:00
Calvin Rose 9f09a19feb Add quoting and a global gc root. The gc root
provides global variables.
2017-03-14 19:13:17 -04:00
Calvin Rose 84b7e96921 Work on more fixes to calling convention 2017-03-14 15:55:50 -04:00
Calvin Rose 3274e87a45 Work on simplifying calling procedure 2017-03-12 18:23:27 -04:00
Calvin Rose 15dd15278c Ignore tags file 2017-03-11 17:06:47 -05:00
Calvin Rose 1611a9eeb4 Remove tags 2017-03-11 17:06:22 -05:00
Calvin Rose 4191b86895 Remove thread.c 2017-03-11 17:05:59 -05:00
Calvin Rose 1effd9e740 More work on open hashing implementation of objects.
Add metatable support for callable objects.
2017-03-11 17:04:59 -05:00
Calvin Rose 9c94bfab4d Retab value.c 2017-03-10 00:26:28 -05:00