Calvin Rose
97a42ea17b
Address some windows issues in buffer.c
2019-01-14 00:12:25 -05:00
Calvin Rose
2cd489b9d4
Address windows build warnings.
2019-01-14 00:09:27 -05:00
Calvin Rose
ff0d3a0081
Compile pegs to bytecode with (peg/compile). Peg
...
performance is improved, and peg syntax has been expanded with a few
more keywords.
2019-01-13 23:54:41 -05:00
Calvin Rose
282c02c475
Update comments and text.
2019-01-12 20:22:03 -05:00
Calvin Rose
798c88b4c8
Update peg to allow functions over captures. Update C API
...
to make janet function calls easier and faster from C (still
needs an object pool for fibers, though). Fix bug in scan-number
and add many more peg tests.
2019-01-12 17:31:15 -05:00
Calvin Rose
83f4a11bf3
Add some more tests, add parameterized captures to patterns,
...
and fix some bugs.
2019-01-12 11:04:47 -05:00
Calvin Rose
d7626f8c57
Add more capturing capabilities including substitutions, as well
...
as back references for PEGs. More documentation is needed for PEG
syntax, but the amount required will need an external document, not
just a docstring.
2019-01-12 10:16:25 -05:00
Calvin Rose
1efca2ebe7
Add some preliminary capturing ability to PEGs.
2019-01-11 21:09:49 -05:00
Calvin Rose
40845b5c1b
Initial peg implementation. Tree walk interpretted with
...
no captures, so not yet ready.
2019-01-11 19:22:24 -05:00
Calvin Rose
62cb3f81fe
Fix sorting in asm.c. Add README text.
2019-01-09 17:09:16 -05:00
Calvin Rose
16ebb11181
Add buffer/bit functions and buffer/blit. Expose janet_gethalfrange
...
in the C api for less duplicated range checking code.
2019-01-09 13:25:51 -05:00
Calvin Rose
115ed9cbb9
Move pretty printing to separate file pp.c
...
Simplify string.c and remove janet_puts.
2019-01-09 11:47:29 -05:00
Calvin Rose
3ae6f64de5
Fix popen bug.
2019-01-08 21:42:16 -05:00
Calvin Rose
5b1a3b8208
Make grammar tool completely generate grammar from scratch.
...
Remove grammar from source tree.
2019-01-08 19:59:54 -05:00
Calvin Rose
b1e0849a2f
Restore old status logic - (status checks in run_vm should be using
...
the previous status, not the current which is always JANET_STATUS_ALIVE)
2019-01-08 13:42:29 -05:00
Calvin Rose
67f26b7d72
Fix = should have been ==. Add some tests for vm type asserts.
2019-01-08 12:26:01 -05:00
Calvin Rose
aa079e3145
Fix parser regression.
2019-01-07 14:49:38 -05:00
Calvin Rose
d64a57297d
Update examples, add method like semantics to calling keywords.
2019-01-07 14:47:47 -05:00
Calvin Rose
be85196de8
Add callgrind task to Makefile.
...
Unify some parser states.
2019-01-06 21:49:24 -05:00
Calvin Rose
eae4e0dede
Add functionality that allows the set macro to
...
take a tuple as an l-value. Remove the old
multi-sym report in anticipation of a different
mechanism.
2019-01-06 19:33:27 -05:00
Calvin Rose
63dd6d03f4
Fix english
2019-01-06 12:05:40 -05:00
Calvin Rose
2a79d2e749
Remove check for function calls to enable all types,
...
even nil. Now any value can be called as a function, usually
looking itself up in an associative data structure.
2019-01-06 11:56:40 -05:00
Calvin Rose
6f3bc3d577
Update copyright date, fix types, remove trailing whitespace.
2019-01-06 03:23:03 -05:00
Calvin Rose
ef5eed2c21
Add source location to doc macro.
2019-01-06 02:10:56 -05:00
Calvin Rose
5865692401
Surround embedded documentation with a macro so it
...
can be disabled in a future build.
2019-01-06 01:49:56 -05:00
Calvin Rose
b626e73d19
Add extra argument to (native) to allow for passing
...
in custom environment to add stuff to.
2019-01-05 23:37:10 -05:00
Calvin Rose
b535c91ee1
Fix native module issue.
2019-01-05 22:52:28 -05:00
Calvin Rose
7b28032f5c
More explicit casts to please Microsoft compiler.
2019-01-05 21:58:39 -05:00
Calvin Rose
0fdd404a71
Remove duplicate functionality in string.c
2019-01-05 21:23:44 -05:00
Calvin Rose
1f98eff33a
Fix compiler warnings on emscripten.
2019-01-05 20:52:32 -05:00
Calvin Rose
338b31f5a2
Add janet_fixarity. Update emscripten source.
2019-01-05 20:45:24 -05:00
Calvin Rose
b60e3e302a
Update C API to use friendlier functions rather than macros.
...
Error handling is implemented with setjmp/longjmp so code
can be more concise. This required a very large but straight forward refactor for all
of the libraries.
2019-01-05 20:09:03 -05:00
Calvin Rose
5b62c8e6db
Better working panic implementation and more cleanup in main vm loop.
2019-01-05 00:33:20 -05:00
Calvin Rose
cd6a7793e8
WIP panic functionality.
2019-01-04 23:20:34 -05:00
Calvin Rose
5afb00859a
More cleanup in vm.c
2019-01-04 21:15:37 -05:00
Calvin Rose
001917f8d9
Begin clean up of vm.c
...
Replace the oparg macro with 5 named virtual registers, combine
pc++ with vm_next() macro to be more terse, and move setup and
teardown logic of janet_continue into a separate function.
These changes are preparation for using setjmp/longjmp to do
error handling in the VM. Introducing longjmp for error handling in
the VM would allow it to be used in the C API, which could result in
simpler, more compact code.
2019-01-04 20:08:43 -05:00
Calvin Rose
b9c0fc8201
Allow calling keywords and symbols as functions to look
...
themselves up in a data structure. Allow calling a data
structure to look up the argument.
2019-01-03 22:48:43 -05:00
Calvin Rose
d8b0a5ed01
Make parser API more robust - the value queue is now
...
distinct from the parse state, and is queried separately.
2019-01-03 20:48:54 -05:00
Calvin Rose
dd3fc24a1e
Make number syntax a bit stricter - no leading underscores
...
and no underscores in exponent.
2019-01-03 12:13:14 -05:00
Calvin Rose
337a498edb
Fix some keyword related issues.
2019-01-02 22:08:51 -05:00
Calvin Rose
5fff36d047
Remove janet_symbol_from_string api function.
2019-01-02 20:50:31 -05:00
Calvin Rose
58d480539c
Fix assembler labels after keyword update.
2019-01-02 19:55:42 -05:00
Calvin Rose
e9c94598e6
Add native keyword type to replace symbols with leading ':'
...
character.
2019-01-02 19:41:07 -05:00
Calvin Rose
29ec30c79f
Fix number parsing for bases between 2 and 9.
...
Allow multisyms to have number keys.
2019-01-02 16:39:24 -05:00
Calvin Rose
122312dbf6
Fix some typos and update comments.
2019-01-02 12:21:59 -05:00
Calvin Rose
618f8d6818
Add with-syms and combine bignat_add and bignatr mul
...
into a single operation for strtod.c
2019-01-02 10:23:11 -05:00
Calvin Rose
6b4824c2ab
Fix error behavior when calling functions with incorrect arities.
2018-12-30 18:41:44 -05:00
Calvin Rose
8dde89126e
Fix -s flag in janet binary.
2018-12-30 18:23:29 -05:00
Calvin Rose
9e6254bf56
Rename pre-walk and post-walk to prewalk and postwalk.
2018-12-30 15:34:01 -05:00
Calvin Rose
fe22a8db39
Fix 32 bit platforms janet number handling.
2018-12-30 14:23:52 -05:00
Calvin Rose
d724c5b959
Update number representation so that wrapping numbers isn't
...
doesn't need to check for NaNs. Change ordering of types.
2018-12-30 12:37:50 -05:00
Calvin Rose
7880d73201
Add some documentation for looping and the loop macro.
...
Also add :pairs verb to the loop macro and some more tests.
2018-12-29 17:23:31 -05:00
Calvin Rose
28331ad6ab
Update buffer/push-integer to buffer/push-word.
2018-12-29 13:07:18 -05:00
Calvin Rose
129ec1e3c5
Don't use initialization syntax {0}.
2018-12-29 12:02:51 -05:00
Calvin Rose
bdcd3a3dbf
Update strtod.c, cleaning up code.
...
Rename Mant -> BigNat, fix multiply code
so we can use 31 bits per digit.
2018-12-29 11:29:20 -05:00
Calvin Rose
b06f7226c4
Add number test.
2018-12-29 01:16:54 -05:00
Calvin Rose
2bcedd5920
Remove indexing with numeric constants from janet.
2018-12-28 23:44:39 -05:00
Calvin Rose
5c84f0f5d9
Work on number code for more expected behavior and better rounding.
...
Still needs work and testing.
2018-12-28 23:32:09 -05:00
Calvin Rose
e9a80d4e4a
Bump version, fix doc and typos, update grammar.
2018-12-27 13:36:27 -05:00
Calvin Rose
1ec7f04642
Avoid warning in asm.c on windows.
2018-12-27 13:19:16 -05:00
Calvin Rose
6b95326d7c
First commit removing the integer number type. This should
...
remove some complexity and unexpected behavior around numbers in
general as all numbers are the same number type, IEEE 754 double
precision numbers. Also update examples and tests, some of which were
out of date.
Some more testing may be needed for new changes to numbers.
2018-12-27 13:05:29 -05:00
Calvin Rose
6c8da9fe5c
Install cook tool when installing janet.
2018-12-25 15:39:24 -05:00
Calvin Rose
17283241ab
Fix bug in compiler with if form under certain conditions.
...
Begin bundled 'cook' tool for managing janet projects.
2018-12-25 15:32:42 -05:00
Calvin Rose
2c94aa1a6a
Update min fiber size.
2018-12-23 23:38:49 -05:00
Calvin Rose
70b4c8ae84
Add some forms ported from clojure/walk
...
Add as-> and as?-> macros.
2018-12-23 19:00:16 -05:00
Calvin Rose
55c091e898
Update core.janet
2018-12-23 14:13:27 -05:00
Calvin Rose
cc5b4eac0a
Update documentation, fix life example.
2018-12-17 21:28:45 -05:00
Calvin Rose
77ea11c603
Update documentation to include source
...
location of bindings.
2018-12-17 12:06:50 -05:00
Calvin Rose
131ee29190
Add docs target to generate documentation.
2018-12-17 01:41:11 -05:00
Calvin Rose
99e14a9b70
Rename bitwise operators.
2018-12-16 22:13:48 -05:00
Calvin Rose
03dbd79165
Rename the := special form to set so it does not look like a keyword.
2018-12-16 21:57:32 -05:00
Calvin Rose
8333c22e8a
Update gendoc and fix issue with run-context.
2018-12-16 13:17:30 -05:00
Calvin Rose
e286e82144
Add docstring for make-env
2018-12-15 23:22:51 -05:00
Calvin Rose
8a5ede21f7
Fix some documentation and add beginning of a document
...
generating script.
2018-12-15 23:19:28 -05:00
Calvin Rose
df13a8b967
Fix typo.
2018-12-13 21:16:04 -05:00
Calvin Rose
56e5c19aa9
Add debug/arg-stack, and add slots debug/stack.
...
These features should help implementing a debugger.
2018-12-13 19:23:07 -05:00
Calvin Rose
e8c0dcd14e
Make source mapping use byte offset instead of line and col
...
for better debugging support in repl. Add debug module for better
debugging support.
2018-12-13 18:46:53 -05:00
Calvin Rose
997d5cf2c6
Strip whitespace
2018-12-08 17:56:31 -05:00
Calvin Rose
64d842d2ef
Update build script, remove windows build issues.
2018-12-08 17:40:05 -05:00
Calvin Rose
6185af7227
Try to remove build issues on windows.
2018-12-08 17:20:24 -05:00
Calvin Rose
16e514b351
Update version schema - now have version number
...
and build number.
2018-12-08 14:17:03 -05:00
Calvin Rose
bc8be266f5
Update match macro to test for array/tuples and table/structs.
2018-12-08 11:04:19 -05:00
Calvin Rose
b250679789
Move match into core library.
2018-12-08 10:53:22 -05:00
Calvin Rose
b7d44ba742
Fix compiler optimization for if.
...
Add pattern matching library.
2018-12-07 23:57:19 -05:00
Calvin Rose
f2743aca36
Improve pretty printing for table and struct
...
entry values.
2018-12-06 17:26:59 -05:00
Calvin Rose
7668cd5772
Don't use generated headers for embedded janet
...
code, use object files.
2018-12-06 14:30:11 -05:00
Calvin Rose
97fade8197
Make eval not the same as eval string.
2018-12-05 20:48:29 -05:00
Calvin Rose
89bd38890e
Replace unquote-splicing with a more general splce special form.
...
This allows splicing behavior in normal function calls.
2018-12-05 15:10:04 -05:00
Calvin Rose
484597eaae
Remove outer form from loop.
2018-12-05 11:25:36 -05:00
Calvin Rose
bf4dd0da99
Remove some extra commented out code.
2018-12-03 23:23:14 -05:00
Calvin Rose
11cd1279d7
Update Makefile and fix fiber issues. When
...
creating an invalid fiber with the C api, the
program could segfault. This protects against this kind
of segafault.
2018-12-02 15:29:21 -05:00
Calvin Rose
4e4dd31164
Change syntax for namespaces.
...
Add quasiquote, unquote, and unquote-splicing
as specials rather than a macro.
2018-11-30 22:49:21 -05:00
Calvin Rose
25c50f5026
Fix repl default chunks.
2018-11-30 14:17:10 -05:00
Calvin Rose
464edf729b
Re-implement and and or macros to use simple
...
imperative loop.
2018-11-30 13:05:28 -05:00
Calvin Rose
523d909cca
Fix bug in pretty printing.
2018-11-30 11:46:05 -05:00
Calvin Rose
f8ab60f487
Add some more array combinators and built in functions.
2018-11-30 11:42:13 -05:00
Calvin Rose
567c4b94ba
Update doc for qq.
2018-11-30 02:05:03 -05:00
Calvin Rose
52c919d96f
Add qq (, uq and uqs) for a quasiquote macro.
...
quasiquoting is not (yet) supported as a special
form and has no syntactic sugar.
2018-11-30 01:58:52 -05:00
Calvin Rose
7dbad20150
Update core and some examples to use the new
...
syntax.
2018-11-29 14:03:45 -05:00
Calvin Rose
b0c45fd15e
Multisyms for easier access into structures.
2018-11-29 13:30:59 -05:00
Calvin Rose
b34e9a275c
Update whitespace issue.
2018-11-28 16:38:48 -05:00
Calvin Rose
776b256ff7
Remove each command (prefer explicit looping).
2018-11-27 01:42:41 -05:00
Calvin Rose
ea4465f58e
Updare examples. Delete ugly iterator example.
2018-11-26 22:09:12 -05:00
Calvin Rose
f860b950fc
Fix pointer incorrect pointer manipulation that happened
...
to work on a x86-64
2018-11-26 18:01:50 -05:00
Calvin Rose
3c9aae3a63
Add pretty printing support for classes.
2018-11-26 09:21:24 -05:00
Calvin Rose
8bfea73ee7
Fix web build again, simplify fibers and fiber
...
implementation code.
2018-11-26 09:03:26 -05:00
Calvin Rose
b2a1a4ec9b
Add classes to core library.
2018-11-25 15:58:50 -05:00
Calvin Rose
d4ee760b3e
Change format for declaring flexible arity functions.
2018-11-25 14:03:00 -05:00
Calvin Rose
5b3fc3d2cc
Fix multiple predicates in loop macro.
2018-11-23 23:17:45 -05:00
Calvin Rose
d791077e25
Fix abstract? function.
2018-11-23 15:33:49 -05:00
Calvin Rose
184fe31e0c
Add generator expressions for easier iteration.
...
Similar to python generator, but with the same
syntax as the loop macro.
2018-11-20 21:48:06 -05:00
Calvin Rose
1e87b01e02
Update makefile.
2018-11-19 15:33:19 -05:00
Calvin Rose
4e689c2279
Add table test. Add :repeat to loop macro.
2018-11-19 14:49:10 -05:00
Calvin Rose
a7860f1dd1
Update pretty printer to remove values
...
from seen table.
2018-11-19 09:57:24 -05:00
Calvin Rose
8520d3f6cb
Update pretty printer.
2018-11-19 02:41:52 -05:00
Calvin Rose
71e1584e72
Update loop macro and replace pretty printer
...
with C implementation.
2018-11-19 02:15:21 -05:00
Calvin Rose
1532697b37
Revise 32 bit nanbox implementation.
2018-11-18 16:43:43 -05:00
Calvin Rose
eb314ae903
Remove more casts.
2018-11-18 14:26:52 -05:00
Calvin Rose
4c4eff9390
Replace cast with type pun.
2018-11-18 14:17:50 -05:00
Calvin Rose
7ff74c8ac9
Add more documentation to the loop macro.
2018-11-18 09:55:31 -05:00
Calvin Rose
13d43eb09d
Update parser documentation.
2018-11-17 11:59:26 -05:00
Calvin Rose
fcbd24cedc
Add lots of documentation for all functions.
2018-11-16 16:24:10 -05:00
Calvin Rose
b20cbdfde6
Add os module documentation. Fix some fiber documentation.
2018-11-16 02:34:50 -05:00
Calvin Rose
945b72468c
Add a lot of documentation for functions.
2018-11-16 02:09:38 -05:00
Calvin Rose
d186aae1f8
Fix macroexpand function in core.
2018-11-15 18:28:55 -05:00
Calvin Rose
4d119e4e03
Begin adding more complete documentation.
2018-11-15 15:45:41 -05:00
Calvin Rose
d603e0eb8d
Fix interleave
2018-11-07 22:56:26 -05:00
Calvin Rose
3ba49ed111
Update core library.
2018-11-07 22:52:49 -05:00
Calvin Rose
2a127af1ca
A few fixes to things like macro expand, etc.
2018-11-07 22:27:06 -05:00
Calvin Rose
ecb9196e7b
Fix cfunctions not printing with whole name im some cases.
2018-10-22 01:28:39 -04:00
Calvin Rose
92202e1c8b
Add invert and simplify
...
env-lookups to env-lookup
2018-10-21 11:46:36 -04:00
Calvin Rose
98f2c6feab
Add lookups for marshalling and unmarshalling.
...
Allow generating lookup tables from the current environment.
2018-10-21 01:35:07 -04:00
Calvin Rose
c1923c5ada
Web assembly build with emscripten.
2018-10-16 23:08:26 -04:00
Calvin Rose
ba82290bae
Fix memory leaks in marsh.c - missing frees.
2018-10-04 17:33:44 -04:00
Calvin Rose
f41dab8f6c
Fix error in string.replace-all
2018-09-29 20:01:57 -04:00
Calvin Rose
e963672977
Make the assembler optional during compilation.
2018-09-29 10:58:57 -04:00
Calvin Rose
9b579c9ce6
Merge code back from correctgc.
2018-09-23 17:53:55 -04:00
Calvin Rose
a92893482b
Merge branch 'correctgc'
2018-09-23 17:46:49 -04:00
Calvin Rose
5f7c213c7b
Simpler changes to GC that don't kill performance as badly.
2018-09-23 17:46:11 -04:00
Calvin Rose
f5372dd188
Allow use of stack in gc.
2018-09-23 17:35:44 -04:00
Calvin Rose
f0553e9da7
Fix use of gettime
2018-09-22 21:50:43 -04:00
Calvin Rose
7131379021
Update for old osx versions.
2018-09-22 21:46:50 -04:00
Calvin Rose
d9752a9028
Garbage collection no longer blows stack.
2018-09-22 14:59:50 -04:00
Calvin Rose
16ac7ba1a1
Def and var evaluate to useful values.
2018-09-21 14:09:38 -04:00
Calvin Rose
7b9aedc53b
I have no memory of this.
2018-09-17 19:14:02 -04:00
Calvin Rose
361a2d5626
Update stuff.
2018-09-12 11:51:23 -04:00
Calvin Rose
3fd6ce5b10
Add string number functionality
2018-09-12 11:44:34 -04:00
Calvin Rose
bcb79ec9b2
Add os.time
2018-09-11 21:33:50 -04:00
Calvin Rose
0389971049
No errors compiling on BU linux (CentOS).
2018-09-10 14:54:12 -04:00
Calvin Rose
a86540a876
Update to work on CENTOS.
2018-09-10 14:21:08 -04:00
Calvin Rose
1ba3aeb3cd
Make stacktrace part of public API.
2018-09-09 21:20:33 -04:00
Calvin Rose
56c3b8aa94
Add ability to index into structs and dictionaries generically.
2018-09-09 12:13:32 -04:00
Calvin Rose
08dd06918e
Switch to mempcy in some slice functions.
2018-09-07 16:27:57 -04:00
Calvin Rose
2a907f8290
Fix number parsing.
2018-09-06 14:12:10 -04:00
Calvin Rose
c8ef2a0d88
Rename to janet
2018-09-05 22:18:42 -04:00
Calvin Rose
285f2d7ea9
More gracefully handle.
2018-09-03 12:51:57 -04:00
Calvin Rose
75c66ea6dd
Refactor native module declarations. marshal can now
...
serialize entire environment.
2018-08-26 14:35:01 -04:00
Calvin Rose
45d0597294
Remove apply1 and optimize apply.
2018-08-26 12:53:39 -04:00
Calvin Rose
ecdef8de8b
Working fiber marshaling.
2018-08-24 11:35:08 -04:00
Calvin Rose
b8a6cd84c0
Work on marshaling fiber.
2018-08-24 08:22:43 -04:00
Calvin Rose
f5b4bc4fdf
Add array and tuple versions of map and for.
2018-08-23 11:10:48 -04:00
Calvin Rose
5fcb0095d4
Fix hex escapes.
2018-08-23 10:11:19 -04:00
Calvin Rose
1b009b4f1f
Fix dst_register.
2018-08-22 22:12:47 -04:00
Calvin Rose
510feeed7f
Allow marshaling of more functions for core.
...
Fix indentation in some files.
2018-08-22 21:41:25 -04:00
Calvin Rose
50aefc8865
Preliminary fiber marshaling
2018-08-21 16:36:49 -04:00
Calvin Rose
634ec85b07
Fix funcdef flags when marshaling.
2018-08-21 15:07:37 -04:00
Calvin Rose
600292fad4
Working function marhsaling
2018-08-21 14:16:55 -04:00
Calvin Rose
4e65eede1c
Update marsh.c
2018-08-21 13:59:01 -04:00
Calvin Rose
5464fd5173
Fix some bugs.
2018-08-21 13:09:01 -04:00
Calvin Rose
08236af578
Update marsh for functions still WIP.
2018-08-19 20:40:42 -04:00
Calvin Rose
169a3e8498
Merge branch 'master' of https://github.com/bakpakin/dst
2018-08-19 20:26:05 -04:00
Calvin Rose
910cfd7ddf
Lots of updates. Function marshaling WIP.
2018-08-19 20:21:27 -04:00
Calvin Rose
f7e7b6333b
Update core.dst error handler.
2018-08-17 21:22:46 -04:00
Calvin Rose
d95941597f
Fix help.
2018-08-15 22:48:35 -04:00
Calvin Rose
9808680413
Add stuff.
2018-08-13 17:40:55 -04:00
Calvin Rose
48c2654312
Local changes.
2018-08-07 00:54:47 -04:00
Calvin Rose
7e66b37cff
Silence some more msvc errors.
2018-08-05 21:39:48 -04:00
Calvin Rose
f3480c1c1d
Try to silence some appveyor warnings.
2018-08-05 21:32:32 -04:00
Calvin Rose
44b8c5a8c8
Merge branch 'master' of https://github.com/bakpakin/dst
2018-08-05 21:20:45 -04:00
Calvin Rose
ed2f032c15
Remove cmake build to simplify things.
2018-08-05 21:13:14 -04:00
Calvin Rose
9cad4eb91d
Change function arity error message.
2018-08-03 19:46:15 -04:00
Calvin Rose
06c755c98a
Be stricter with function arity.
2018-08-03 13:41:44 -04:00
Calvin Rose
a91e29bc1d
Fix parser bug.
2018-07-18 15:56:21 -04:00
Calvin Rose
11292c6bb3
Update require to handle natives better.
2018-07-16 22:55:45 -04:00
Calvin Rose
abe7d592aa
More work on closures in loops. Fix loop macro to
...
not store bindings as vars.
2018-07-11 22:18:24 -04:00
Calvin Rose
79f84e52fc
Work on correcting closures in while loop.
2018-07-11 21:29:39 -04:00
Calvin Rose
90496b99e8
Fix os.getenv error.
2018-07-11 19:11:34 -04:00
Calvin Rose
24f153a3bf
Add DST_PATH environment variable for specifying where to look for user libs.
2018-07-11 16:51:21 -04:00
Calvin Rose
55ff1ee7e8
Make range variadic.
2018-07-11 11:57:17 -04:00
Calvin Rose
a1bdc3a023
Better inline for put. Better printing for named functions.
2018-07-10 20:01:39 -04:00
Calvin Rose
5d290a67bf
Fix assembler bug.
2018-07-10 07:24:34 -04:00
Calvin Rose
6050a080b6
Fix sum and product.
2018-07-10 06:51:05 -04:00
Calvin Rose
e777dc4304
Improve product and sum
2018-07-09 23:29:15 -04:00
Calvin Rose
1acd2d1de7
Inlining for all built in comparators.
2018-07-09 21:24:22 -04:00
Calvin Rose
b860b0a3c5
Port some cfunctions in math.c to corelib as
...
assembled functions.
2018-07-08 23:10:02 -04:00
Calvin Rose
423ebc937a
Fix MSVC compiler error.
2018-07-08 21:14:08 -04:00
Calvin Rose
f232cf28ff
Try again with os.clock.
2018-07-08 21:10:15 -04:00
Calvin Rose
5b15ad9ff8
Try and fix os.clock on windows.
2018-07-08 20:54:41 -04:00
Calvin Rose
f92f358279
Make os.clock more meaningful by default.
2018-07-08 19:27:11 -04:00
Calvin Rose
579bfe97df
Add status code to os.execute for windows.
2018-07-08 14:22:40 -04:00
Calvin Rose
08f6c642d0
Fix not= and odd?
2018-07-08 11:31:24 -04:00
Calvin Rose
f63d08efbd
Work to replace os.execute command with something safe.
2018-07-06 22:00:41 -04:00
Calvin Rose
bfd0c08c8f
Sleep can take non integer times in seconds.
2018-07-05 12:55:11 -04:00
Calvin Rose
3d7fff659a
Make native modules optional.
2018-07-04 14:00:11 -04:00
Calvin Rose
547529ebb2
Refactor dst_view_* functions.
2018-07-04 13:21:30 -04:00
Calvin Rose
f28172a996
Replace switch with case.
2018-07-04 01:28:31 -04:00
Calvin Rose
1f37919f39
Rename boot.dst to core.dst
2018-07-04 00:21:18 -04:00
Calvin Rose
a018f9f54a
Major refactor. Move files around, merge compiler into
...
core and other changes, work on inlining many c functions.
2018-07-03 23:07:35 -04:00
Calvin Rose
17685bd789
Refactor opereduce in cfuns.c
2018-07-02 19:53:35 -04:00
Calvin Rose
5e2de33ae7
Remove some c functions in favor of bytecode.
2018-07-02 00:12:36 -04:00
Calvin Rose
f1e1b89c67
Merge updates.
2018-07-01 15:56:17 -04:00
Calvin Rose
6822400abe
Fix large function compilation issue.
2018-07-01 15:53:57 -04:00
Calvin Rose
0bbf7d57b0
Small changes to boot.dst.
2018-07-01 12:44:41 -04:00
Calvin Rose
fde9751eab
Move asm into core and rename to asm/disasm (no prefix)
2018-06-29 22:52:55 -04:00
Calvin Rose
28cf753fa2
Source mapping v4 (line and column instead of byte offsets).
2018-06-29 11:13:06 -04:00
Calvin Rose
f93c84c21f
Source mapping v3 (performance improvements, better decoupling from parser).
2018-06-29 10:41:26 -04:00
Calvin Rose
cac39aba67
Merge branch 'master' of github.com:bakpakin/dst
2018-06-29 01:20:14 -04:00
Calvin Rose
2e472ec9a3
Version 2 of new source mapping.
2018-06-29 01:16:46 -04:00
Calvin Rose
bb406133de
New sourcemaps v1.
2018-06-28 23:37:04 -04:00
Calvin Rose
90b685f8f4
Fix getline not being pretty printed properly.
2018-06-26 13:57:49 -04:00
Calvin Rose
9805bfb635
Fix file.read to handle popen'ed files better (allow read with :all).
2018-06-26 09:37:34 -04:00
Calvin Rose
363a17ff8c
Convert get, put and length to normal functions, not c functions.
2018-06-17 13:55:02 -04:00
Calvin Rose
0cf10946b0
Add first version of marsh (marshaling).
2018-06-12 14:24:45 -04:00
Calvin Rose
2a87dada47
Rename fiber.resume and fiber.yield to
...
resume and yield.
2018-06-09 13:08:30 -04:00
bakpakin
1690fee446
Add failure on top level error.
2018-06-08 15:58:23 -04:00
Calvin Rose
63baa52392
Add fiber.maxstack and fiber.setmaxstack to core library
2018-06-03 14:00:05 -04:00
Calvin Rose
b5ed4a875f
Change some definitions and remove thoughts.md
2018-06-02 19:16:13 -04:00
Calvin Rose
b09bf72490
Change primary looping macro to 'loop' instead of 'for'.
2018-05-23 22:08:36 -04:00
Calvin Rose
fb409201b4
Strip trailing whitespace from many files.
...
Add native modules to import with module.native-path.
2018-05-19 21:16:00 -04:00
Calvin Rose
245fb948f1
Add os.cwd
2018-05-19 01:09:56 -04:00
Calvin Rose
68895e27d4
Change import semantics. Fix gc bug with fibers.
2018-05-18 20:53:19 -04:00
Calvin Rose
36ecbeffa6
A few changes.
2018-05-18 16:24:09 -04:00
Calvin Rose
4ecc88af37
Add some more string functions. Remove format.
2018-05-18 14:19:57 -04:00
Calvin Rose
f295692b50
Update copyright to 2018. Add string methods.
2018-05-17 23:41:20 -04:00
Calvin Rose
c0e373f420
Add some test code and fix sqlite3 native example.
2018-05-17 13:34:11 -04:00
Calvin Rose
51bdc41014
Change fiber signal model to add user signals. This
...
should allow easier implementations of eventloops,
threadpools, or custom data flows with fibers.
2018-05-16 22:09:36 -04:00
Calvin Rose
0fd9224e4a
Proper re-entry into debug state nested fibers.
2018-05-16 09:24:34 -04:00
Calvin Rose
80ae7e80e6
Update state.h
2018-05-14 09:55:34 -04:00
Calvin Rose
dafc121f4d
Change c function macros to be explicitly non functional by
...
capitalizing them.
2018-05-12 20:31:28 -04:00
Calvin Rose
70e52d91c4
Add popen function to io.c
2018-05-11 08:13:26 -04:00
Calvin Rose
ee01547b3a
Add some more fiber functions.
...
Add fiber.current and fiber.lineage
2018-05-10 20:25:49 -04:00
Calvin Rose
ac4b46bdb1
Fix dst_arg_bytes macro to correctly catch bad input.
2018-05-09 23:43:56 -04:00
Calvin Rose
932a0324ee
More work on renaming functions. Change long string syntax to use
...
backticks. Allow custom masks in fibers for custom error and debug
handling.
2018-05-09 17:01:58 -04:00
Calvin Rose
f47323c915
Change convention for naming modules and functions.
2018-05-08 19:40:28 -04:00
Calvin Rose
0cd6cdc28b
Add some more opcodes for comparison with numeric types.
2018-05-07 12:34:04 -04:00
Calvin Rose
55f0e759d9
Add extra information in repl to show state of parsing.
2018-05-06 23:25:59 -04:00
Calvin Rose
7e63427208
Update strtod.c to be less accepting of some badly formed numbers.
2018-05-06 15:27:52 -04:00
Calvin Rose
181a38f412
Add sqlite3 native module to repo.
2018-05-05 23:51:29 -04:00
Calvin Rose
1e4f221170
Move strtod to core, and rename parse-number, parse-integer, and
...
parse-real functions to scan-number, scan-integer, and scan-real.
Add very basic format function for formatting strings for printing.
2018-05-01 11:06:31 -04:00
Calvin Rose
1205ca5cad
Add beginning of intorductory doc. Add prototypes to pretty print
...
output.
2018-04-30 17:05:42 -04:00
Calvin Rose
53f9c18669
More work on improving errors.
2018-04-29 20:13:04 -04:00
Calvin Rose
10934bcfb9
Add errorhandling helper functions and macros for writing c functions.
2018-04-28 18:10:57 -04:00
Calvin Rose
99709a68fd
Add example file for compiling native modules (hello.so).
2018-04-26 13:13:31 -04:00
Calvin Rose
534c936e14
Fix infinite recursion on defn and derivatives on invalid
...
input.
2018-04-01 18:24:04 -04:00
Calvin Rose
027b2a81c2
Shrink the public interface by hiding internal state.
2018-03-31 16:42:41 -04:00
Calvin Rose
507f9f9c57
Make global state thread local. This means multiple threads
...
of dst can run, but cannot yet share state.
2018-03-30 16:12:30 -04:00
Calvin Rose
0d5b57daee
Remove exit in favor of os-exit.
2018-03-28 21:24:54 -04:00
Calvin Rose
e21a69920f
Add sorting to pretty printer.
2018-03-28 21:16:12 -04:00
Calvin Rose
39d6bd573a
Add preliminary os lib.
2018-03-28 20:50:20 -04:00
Calvin Rose
d9f6c7b069
Make pretty printer prettier.
2018-03-26 13:36:58 -04:00
bakpakin
080caf31a7
Add triangles examples.
2018-03-25 18:51:31 -04:00
Calvin Rose
da15dac16b
Fix an offset bug in closure creation.
2018-03-22 17:41:01 -04:00
Calvin Rose
0fd55282d8
Add error reporting to repl (initial stack traces)
2018-03-21 20:53:39 -04:00
Calvin Rose
3e1e258546
Fix a compiler bug in the do special form.
2018-03-19 14:51:18 -04:00
Calvin Rose
855787b292
Add macroexpand and macroexpand1
2018-03-18 14:01:58 -04:00
Calvin Rose
82e5d915f7
Add makefile back.
2018-03-18 09:17:20 -04:00
Calvin Rose
4a76f2ae32
Replace varset! with algol style :=
2018-03-16 18:15:34 -04:00
Calvin Rose
5738f6c8b1
Rename seq abstraction to iterator. Add random functions.
2018-03-15 17:19:31 -04:00
Calvin Rose
5f0bd1e082
Update code.
2018-03-14 21:46:56 -04:00
Calvin Rose
c0ac44a650
Fix description semantics. describe returns string, does not print.
2018-03-14 18:57:26 -04:00
Calvin Rose
1ec704feb9
Remove pretty printer implemented in C.
2018-03-14 13:38:48 -04:00
Calvin Rose
2b1dd79f55
Work on emscripten support. Works with sync code.
2018-03-13 14:03:17 -04:00
Calvin Rose
3b2658150e
Update boot.dst for better functionality (require, macros,
...
documentation, cond, let, etc.)
2018-03-12 00:26:13 -04:00
Calvin Rose
1ba93c5112
Update debug code for fibers.
2018-03-11 18:06:47 -04:00
Calvin Rose
cace92af95
Fix broken windows build.
2018-03-11 15:42:59 -04:00
Calvin Rose
2a0dc5f1ad
Switch to assymetric coroutines instead of symmetric.
2018-03-11 15:35:23 -04:00
Calvin Rose
0b6ac1698c
Add proto field to tables to allow prototypal inheritance.
2018-03-10 13:34:46 -05:00
Calvin Rose
0c3b0673ff
Enable debug opcode in vm and debug state for fibers.
2018-03-09 17:14:26 -05:00
Calvin Rose
eee453d2c0
Update thoughts.md, and add dst_call and dst_call suspend.
...
dst_call_suspend migt be redundant (suspension of GC is easy enough).
2018-03-04 18:56:13 -05:00
Calvin Rose
1551bf6b48
Use flatter representation for function and environments.
2018-02-13 16:14:55 -05:00
Calvin Rose
2f4fd23884
Add per fiber stack limit.
2018-02-12 17:36:29 -05:00
Calvin Rose
a614816a04
Update func env representation to not store envs in function
...
objects.
2018-02-12 16:43:59 -05:00
Calvin Rose
af6e6ded35
Add configurable stack overflow to prevent infinite recursion
...
without waiting for out of memory.
2018-02-12 11:49:10 -05:00
bakpakin
7f693796ea
Differentiate total order comparison and numeric comparison
2018-02-09 11:57:58 -05:00
Calvin Rose
e047b39a87
More work on self hosting the client program.
2018-02-07 13:19:34 -05:00
Calvin Rose
3e1f031576
Self host the repl, remove linenoise, and selfhost the
...
main client.
2018-02-07 00:44:51 -05:00
bakpakin
7bfb3145cb
Add some library functions and add newline character to reading line
...
from file.
2018-02-06 10:31:42 -05:00
Calvin Rose
4971ef58d2
Add fseek.
2018-02-04 12:58:40 -05:00
Calvin Rose
4b89789f69
Add all and line option to file-read
2018-02-04 00:54:38 -05:00
Calvin Rose
f3b2c29580
Add pretty print to build in.
2018-02-03 18:12:07 -05:00
Calvin Rose
a673b7e326
Fix small compiler bug
2018-02-03 17:22:04 -05:00
Calvin Rose
35ddc70888
Move ast into parser. Map keywords to symbols instead of
...
strings.
2018-02-03 13:55:55 -05:00
Calvin Rose
278769f2bb
Fix compiler warnings with GCC.
2018-02-02 17:26:20 -05:00
Calvin Rose
ccdf758e83
Get dst to compile on windows
2018-02-01 17:09:22 -08:00
bakpakin
776addfc07
Fix install procedure
2018-01-31 22:53:31 -05:00
bakpakin
ff46522dd9
Assert computed gotos work on clang
2018-01-31 21:47:18 -05:00
bakpakin
1bf0b538cd
Use computed goto in vm for GCC
2018-01-31 21:40:19 -05:00
bakpakin
a6694e985c
Add a few more ast functions.
2018-01-31 17:56:10 -05:00
bakpakin
e9c4d388c9
Ignore one ulp errors in printing reals.
2018-01-31 17:47:59 -05:00
bakpakin
50bfa8de3f
Add boot script which is loaded on start up.
2018-01-31 17:39:18 -05:00
bakpakin
4f74d57359
Refactor stl to corelib and stl. Corelib is part of vm, stl
...
is part of dst language. Add bootstrapping code directly into stl.
Stl is now logically grouped with compiler.
2018-01-29 23:38:49 -05:00
bakpakin
ce5708af98
Switch over to Cmake fully.
2018-01-29 15:46:26 -05:00
bakpakin
b305a7c9bb
Add macros in compiler.
2018-01-28 15:29:47 -05:00
bakpakin
8fe9881187
More work on adding c functions. Added buffer literals again.
2018-01-27 15:15:09 -05:00
bakpakin
2bd20c3cb3
Addition and subtraction inlining.
2018-01-25 18:49:08 -05:00
bakpakin
5460ff19bf
Begin C Function specialization in the compiler.
2018-01-24 17:59:00 -05:00
bakpakin
aa68ef49f1
Remove transfer as a compiler special. Eventually
...
rely on function inlining for efficiency.
2018-01-21 17:29:48 -05:00
bakpakin
26c8145893
Move ast to core. Add symbol function to stl.
2018-01-21 17:08:11 -05:00
bakpakin
42a88de9e7
Add quick asm for adding apply and error to the stl.
2018-01-21 16:41:15 -05:00
bakpakin
911b0b15e8
Fix some bugs with inner closures.
2018-01-21 14:39:32 -05:00
bakpakin
d68eae9592
Add bytecode verification
2018-01-20 17:21:59 -05:00
bakpakin
30f62ca454
Major refactor and restructure. Add CMake for anticipated windows
...
support.
2018-01-19 16:43:19 -05:00