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
Calvin Rose
ce759d901e
Keep readme minimal for now
2017-03-10 00:23:59 -05:00
Calvin Rose
18493ea076
Retab some files, delete some other files
2017-03-10 00:22:43 -05:00
Calvin Rose
b986e1b967
Redo calling convetion for more code reuse. Allow calling gst functions from c.
2017-03-10 00:09:42 -05:00
Calvin Rose
169e3de5a7
Work on basic stl. Add _ binding to repl for last value
2017-03-09 13:49:46 -05:00
Calvin Rose
ca0f8939ef
Begin stl
2017-03-08 17:34:25 -05:00
Calvin Rose
18aaf9480b
Add initial untested support for varargs in vm
2017-03-08 16:03:14 -05:00
Calvin Rose
69624495ec
Remove longjump/setjump from vm loop. Add out of memory
...
behavior option.
2017-03-08 15:08:46 -05:00
Calvin Rose
68f834f03b
Remove dsiasm from binary.
2017-03-08 10:54:50 -05:00
Calvin Rose
1e8c1bb74c
Handle comments in parser.
2017-03-08 10:34:22 -05:00
Calvin Rose
40b52dbe70
Add variadic arithmetic special forms
2017-03-08 10:21:09 -05:00
Calvin Rose
0d066d8754
Add tuple type.
2017-03-07 15:29:40 -05:00
Calvin Rose
7cdf33eb90
Modify some files. Also begin open addressing hash
...
dictionary for use in compiler. Might also move normal
object to open addressing for less pressure on gc.
2017-02-28 20:20:29 -05:00