bakpakin
204caa6d8f
Factor out language specials to separate files in compiler.
...
Add transfer special. */
2018-01-12 10:41:27 -05:00
bakpakin
c1fa521b58
Add buffer overflow detection to the buffer class
...
when the inherent 2GB limit is reached for a single buffer.
2018-01-06 13:25:45 -05:00
bakpakin
605848b217
Rename DstValue to Dst for easier access. Move vector.c into
...
util.c and make public API smaller. Pad strings and symbols with
extra 0 byte for better interop with C.
2018-01-06 11:09:15 -05:00
bakpakin
2771171658
Much work on compiler. Fixing bugs and gradually cleaning
...
up code. Generalized some vector code.
2018-01-05 16:17:55 -05:00
bakpakin
e4735e14d2
More compiler bug fixes. Added some features and functions like varargs.
2018-01-03 21:36:10 -05:00
bakpakin
f273aa8b1b
Add vars, split up headers, remove fiber->ret, add comparators, etc.
2017-12-30 16:46:59 -05:00
bakpakin
34a83839f5
Add utf-8 compatibility in parser. Symbols can
...
be valid utf-8 strings
2017-12-20 23:03:34 -05:00
bakpakin
01a95426b3
More work on compiler. Add compiler unit test that currently
...
segfaults alot. Added dst_disasm to reconstruct dsts assembly
from a funcdef.
2017-12-16 23:11:51 -05:00
bakpakin
2d781ef21b
Compiler is coming along. Work on Slot system and general compiler strategy.
2017-12-16 01:17:53 -05:00
bakpakin
1293d2e301
Initial rewrite of compiler
2017-12-14 19:33:45 -05:00
bakpakin
a2ee6ffe5c
New custom strtod implementation.
2017-12-08 15:57:02 -05:00
bakpakin
14fe30b411
Add preliminary source mapping to parser (always on)
2017-12-03 12:52:09 -05:00
Calvin Rose
eceb6e5a77
More work on nanbox implementation.
2017-11-29 15:17:56 -05:00
Calvin Rose
b568a6bc88
WIP integrating nanbox support back into code.
2017-11-28 18:27:55 -05:00
Calvin Rose
d84cc5342e
Fix write after free bug.
...
Remove caching from strings, tuples, and structs.
Keyword style strings removed, now are just symbols. The
compiler can decide to treat symbols with a leading ':'
differently for mostly the same effect. This was done because
as strings are no longer interned, symbols are cheaper to look
up and check for equality.
2017-11-27 14:03:34 -05:00
bakpakin
9f910d9ab7
Add missing header file.
2017-11-26 20:25:20 -05:00
bakpakin
3efd400025
Huge number of changes. Still WIP. Refactoring and
...
changing C API model. This commit is not i a working state.
2017-09-09 14:39:51 -04:00
bakpakin
3ccd688438
Add gensym
2017-07-16 11:00:20 -04:00
bakpakin
57886db410
Making some changes.
2017-07-15 12:21:06 -04:00
bakpakin
53cead0bab
Remove vm crash return and use error instead.
2017-07-09 16:15:44 -04:00
bakpakin
de9d7bcfdc
Update representation of an environment.
2017-07-09 16:10:47 -04:00
bakpakin
1878ece2af
Make compilation simpler.
2017-07-09 15:35:17 -04:00
bakpakin
b19c834cf4
Change comment in gst.h
2017-07-09 13:24:38 -04:00
bakpakin
0cf278994d
Make coloring changes to the repl
2017-07-02 20:51:52 -04:00
bakpakin
bfadf6ff12
Remove scratch memory functionality.
2017-07-02 19:52:44 -04:00
bakpakin
113c6cd6ad
Add quoting with single quote
2017-07-02 17:35:38 -04:00
bakpakin
e2c78b36d0
Add symbol type.
2017-07-02 17:17:24 -04:00
bakpakin
db89a6c7ee
Add description, short-description, and tostring as
...
separate stringifiers that have slightly different semantics.
description is for debugging, short-description is also
for debugging but prints less, and tostring is for coercing to
a string (similar to description, but strings are not changed and
buffers return their contents as a string).
2017-07-02 14:16:37 -04:00
bakpakin
2742e3679d
Change name of debugp to description. Use it
...
the repl for easier inspection of structures.
2017-07-02 11:53:51 -04:00
Calvin Rose
740367ec5c
Add # comments to parser
2017-07-01 12:47:57 -04:00
Calvin Rose
21bd960865
Add more tests
...
Reuse threads on gst_run when possible
change name of getline to gst_getline
2017-06-29 21:57:09 -04:00
Calvin Rose
7e46ead2f4
Add new tests. Add recursion guard to compile, serialize, and
...
deserialize.
2017-06-28 22:51:24 -04:00
Calvin Rose
1f8b671488
Replace map of vars with single element arrays
2017-06-25 16:52:15 -04:00
Calvin Rose
29a39c47b0
Add var and def. Make them behave the same
...
but have different implementations in top
level scope in order to enable incremental compilation and repl.
2017-06-25 16:36:20 -04:00
Calvin Rose
c3d65cb91d
Remove lots of headers. Add parse c function.
2017-06-24 14:27:29 -04:00
Calvin Rose
70478a410b
Add errorParent to threads.
2017-06-19 23:01:34 -04:00
Calvin Rose
abbe6b13f1
Enable serialization of c functions.
2017-06-03 11:26:17 -04:00
Calvin Rose
f066047112
Fix serilaization bug. Still need to serialize c functions.
2017-05-23 14:48:54 -04:00
Calvin Rose
6220b70105
More work in serialization
2017-05-11 17:08:29 -04:00
Calvin Rose
b7083f6f18
More work on dogfood repl.
2017-05-09 20:06:53 -04:00
Calvin Rose
fd72219a2a
Add tran keyword to allow for continuations.
2017-05-09 19:21:30 -04:00
Calvin Rose
0e29b52d96
Add robinhood hashing to structs.
...
This corrects changes in internal structure when values
were inserted in different orders (which was previously
incorrect.) Robinhood hashing should correct this by
making the internal structure of the hashtable invariant
of insertion order. This, in turn, allows naive and deterministic equality, comparison, and hashing of structs.
2017-05-09 13:20:28 -04:00
Calvin Rose
88a24531de
Make reflective compilation less stateful
2017-05-07 18:37:19 -04:00
Calvin Rose
6d3e3d8246
Remove faulty quoting logic in parser.
2017-05-07 18:20:11 -04:00
Calvin Rose
96a605fbc0
Fix variadic functions.
2017-05-07 16:48:35 -04:00
Calvin Rose
f817610d4a
More work on compiler. Still has memory leak?
2017-05-05 16:52:05 -04:00
Calvin Rose
c6e9f24f82
Complete adding parser to scripting.
2017-05-03 19:59:27 -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
14f8b12706
Use 32 bit unsigned integers for stackframes.
2017-04-25 12:26:58 -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