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
56927e1b81
Fix -e option.
2018-12-30 17:51:15 -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
ca9c017ec4
Remove some unnecessary bounds checks.
2018-12-29 20:07:56 -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
6c91e5fae0
Merge branch 'master' of github.com:bakpakin/janet
2018-12-23 14:13:38 -05:00
Calvin Rose
55c091e898
Update core.janet
2018-12-23 14:13:27 -05:00
Calvin Rose
9723ddb96b
Fix string/number issue.
2018-12-22 16:24:08 -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
fb6dd2c83f
Add debug functions to janet.h
...
Update version to 0.2.0 for next release.
Fix whitespace in build_win.bat
2018-12-15 13:52:07 -05:00
Calvin Rose
b2146a4c1d
Update web client.
2018-12-13 21:36:19 -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
21d4b8fe1f
Move tools out of src (src should be
...
only code that goes into final binary).
2018-12-09 17:49:00 -05:00
Calvin Rose
bb918d0fda
Update README.md. Prepare for 0.1.0 release.
2018-12-08 18:10:17 -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
06733cc48d
Update webrepl.
2018-11-30 22:54:17 -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
c9f76d2673
Emscripten build strange as ever.
2018-11-15 18:56:06 -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
853a839f6c
Add git commit hash to build to get version.
2018-10-31 16:21:21 -04:00
Calvin Rose
ecb9196e7b
Fix cfunctions not printing with whole name im some cases.
2018-10-22 01:28:39 -04:00
Calvin Rose
ddc23182e9
No need to set JANET_WALIGN for emscripten builds.
...
However, nanbox build should be possible on emscripten
(and fixing alignment problems would probably speed up x86 too).
2018-10-21 12:54:00 -04:00
Calvin Rose
a20799b59a
Change build options for emscripten.
2018-10-21 12:46:10 -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
27eef7094c
Add JS interop to web build.
2018-10-17 15:19:54 -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
03b01c6c0b
Remove vestigial function declaration
2018-09-26 20:03: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
84f2c84fb5
Fix tabs in repl.
2018-08-25 15:34:27 -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
7a7291ac3a
Remove extra code.
2018-08-03 21:51:35 -04:00
Calvin Rose
169a22f03e
Fix init.dst, work on metabuild tool to make
...
native module creation easier
2018-08-03 21:50:32 -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
e60c8a9b75
Update indentation in boot and init to be more like
...
most lisps.
2018-07-01 21:12:46 -04:00
Calvin Rose
79225ad3d5
Add some inlining for a few builtins.
2018-07-01 19:35:45 -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
f4fc4a0bcc
Modularize compiler.
2018-07-01 11:52:15 -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
1ea9ebf04f
Fix sourcemapping bug with closures, add some library functions
...
to boot.dst
2018-06-29 19:44:33 -04:00
Calvin Rose
11ced5b582
Update macroexpand.
2018-06-29 17:42:00 -04:00
Calvin Rose
8697ca976a
Remove unused var byteindex.
2018-06-29 13:49:17 -04:00
Calvin Rose
33862e2e7b
Be more specific about location of compile error (we only know the innermost tuple).
2018-06-29 13:13:13 -04:00
Calvin Rose
5afde3f6d4
Add line numbers to repl like irb.
2018-06-29 13:01:23 -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
bakpakin
23dcfb986e
Allow expressions as keys in destructuring.
2018-06-25 15:34:06 -04:00
Calvin Rose
5e9d1d07b9
Better refresh after coming back from suspend.
2018-06-24 13:20:32 -04:00
Calvin Rose
ceff49a08d
Enable suspending repl with ctrl-z.
2018-06-24 13:18:44 -04:00
Calvin Rose
4e6fc341dc
Many updates to the sqlite module.
2018-06-23 19:19:26 -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
f0f5af24c2
Add some debug information to more builtin functions.
2018-06-09 20:41:02 -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
6d1ab414e4
Add frequencies to core library.
2018-06-03 14:21:24 -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
3b30b98ec0
Add sum and product functions to boot.dst.
2018-05-26 14:21:49 -04:00
Calvin Rose
8a346ec655
Add option to cli interface to stop scanning options.
2018-05-26 14:17:44 -04:00
Calvin Rose
4dc51915a9
Make loop macro more expressive
2018-05-26 13:46:27 -04:00
Calvin Rose
8bcb5e0019
Add where clause to list comprehension.
2018-05-23 23:43:48 -04:00
Calvin Rose
b09bf72490
Change primary looping macro to 'loop' instead of 'for'.
2018-05-23 22:08:36 -04:00
Calvin Rose
f8bda3af51
Add all-symbols, easy way to see all symbols in an environment.
2018-05-21 22:08:16 -04:00
Calvin Rose
de59c57e48
Make native modules easier to import.
2018-05-19 21:29:22 -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
5b62630a9b
Strip whitespace in boot.dst
2018-05-18 22:18:34 -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
ed9037e603
Remove defdo and defdo-
2018-05-16 23:09:28 -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
6ac59251e9
Fix some very mild memory leaks in line.c and the do_bytes function (not
...
deiniting the parser).
2018-05-15 22:05:47 -04:00
Calvin Rose
c6f79eca6d
Make setting up stl easier. Add shared library output to Makefile.
2018-05-14 21:52:51 -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
584c75b3f6
Update Makefile for faster builds.
2018-05-10 11:11:18 -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
ea9855a93d
Update parse-status to reflect new long-string syntax better.
2018-05-09 17:14:29 -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
104b09d848
Make the -s option more useful.
2018-05-07 01:04:56 -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
b31791200b
Add long string syntax to dst.
2018-05-06 13:28:09 -04:00
Calvin Rose
181a38f412
Add sqlite3 native module to repo.
2018-05-05 23:51:29 -04:00
Calvin Rose
06b80e56eb
Merge branch 'master' of github.com:bakpakin/dst
2018-05-05 14:42:28 -04:00
Calvin Rose
238cec8f32
Add each.
2018-05-05 14:41:47 -04:00
bakpakin
d9e5019a71
Add -e option to dst for executing inline scripts from the shell.
2018-05-05 14:05:56 -04:00
Calvin Rose
256aba199f
Remove foreach.
2018-05-01 23:38:53 -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
e4434f74b6
Fix some typos in boot.dst
2018-04-30 18:11:19 -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
344fa031b2
Add stub CMakeLists.txt for native module.
2018-04-26 16:57:23 -04:00
Calvin Rose
99709a68fd
Add example file for compiling native modules (hello.so).
2018-04-26 13:13:31 -04:00
Calvin Rose
8b9bd41205
Fix bug with false literals as keys not printing.
2018-04-02 16:10:16 -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
1110267c9d
Update maxtriangle example, extend map function, and
...
add extremes functions (max, min, order-max, order-min, extreme)
2018-04-01 15:08:51 -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
9dabc6bee3
Update assembly doc.
2018-03-30 12:17:03 -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
f4ef0ae0bb
Add sorting to boot.dst
2018-03-28 16:38:05 -04:00
Calvin Rose
73ead5c2de
Update core namespace. Clean up some code,
...
and put more emphasis on indexed data-structure combinators
instead of iterators.
2018-03-28 13:58:56 -04:00
Calvin Rose
d9f6c7b069
Make pretty printer prettier.
2018-03-26 13:36:58 -04:00
Calvin Rose
6ace978ab8
Merge branch 'master' of github.com:bakpakin/dst
2018-03-25 21:12:43 -04:00
Calvin Rose
44d2049c94
Update lazyseqs.dst and boot.dst
2018-03-25 20:39:38 -04:00
bakpakin
080caf31a7
Add triangles examples.
2018-03-25 18:51:31 -04:00
Gavlooth
5ff0367d0f
Fix if-let when-let and add put-in (assoc-in)
2018-03-25 21:33:03 +03:00
Gavlooth
1bc5705667
Fix if-let when-let and add put-in (assoc-in)
2018-03-25 14:47:45 +03:00
Calvin Rose
a3ed7327c9
Make array literals require preceding @ character.
2018-03-24 12:48:42 -04:00
Gavlooth
9f90dc1e1f
Fix some typos
2018-03-24 07:46:11 +02:00
Gavlooth
0ebc95aa2b
Improve lazy2iter and fix a typo in specials.c
2018-03-24 07:46:05 +02:00
Calvin Rose
41d5b5cb90
Fix some behavior with parsing integers.
2018-03-24 00:25:59 -04:00
Calvin Rose
0b25284aa9
Expose parse-number function.
2018-03-24 00:11:44 -04:00
Calvin Rose
89ecd43115
Move functions in util.dst to boot.dst.
2018-03-23 18:36:56 -04:00
Calvin Rose
da15dac16b
Fix an offset bug in closure creation.
2018-03-22 17:41:01 -04:00
Calvin Rose
82845bc7a3
Update error reporting.
2018-03-21 21:48:19 -04:00
Calvin Rose
0fd55282d8
Add error reporting to repl (initial stack traces)
2018-03-21 20:53:39 -04:00
Calvin Rose
e114ec0095
Move web client code.
2018-03-19 17:13:36 -04:00
Calvin Rose
3e1e258546
Fix a compiler bug in the do special form.
2018-03-19 14:51:18 -04:00
Calvin Rose
105f5f3b2d
Formfeed is whitespace.
2018-03-18 14:38:40 -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
8da838e12c
Add macros for imperative programming (c style sugar).
2018-03-16 18:31:18 -04:00
Calvin Rose
4a76f2ae32
Replace varset! with algol style :=
2018-03-16 18:15:34 -04:00
Calvin Rose
f5213e4064
fix doc
2018-03-16 15:58:11 -04:00
Calvin Rose
110c780747
Update apply to be variadic, and keep non variadic form as apply1
2018-03-16 15:45:24 -04:00
Calvin Rose
72d8e74a71
Update assembly and add example.
2018-03-16 14:34:48 -04:00
bakpakin
d3a1d97649
Update boot.dst and lazyseq examples.
2018-03-16 13:40:10 -04:00
Calvin Rose
e8dfe673f2
Update sourcemapping structure. Add seqs example file.
2018-03-15 23:28:30 -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
8ec29d9326
Move pretty printer into boot.dst
2018-03-14 19:08:00 -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
d5e4496e95
Change repl prompt.
2018-03-14 10:54:32 -04:00
Calvin Rose
7ec2efcf6d
Simple fix for end of file in getline. Some code changes in getline as well.
2018-03-14 10:49:26 -04:00
Calvin Rose
58d81d44f9
Fix windows build
2018-03-13 23:52:27 -04:00
Calvin Rose
c23ea536da
Add getline on unix.
2018-03-13 23:39:49 -04:00
Calvin Rose
9cb7c92ca7
Add some builtin functions and some examples.
2018-03-13 16:40:56 -04:00
Calvin Rose
2b1dd79f55
Work on emscripten support. Works with sync code.
2018-03-13 14:03:17 -04:00
Calvin Rose
61645c82b1
Add clojure style threading macros.
2018-03-12 12:47:05 -04:00
Calvin Rose
e393e3dda0
Allow destructuring in function args
2018-03-12 02:07:55 -04:00
Calvin Rose
8445b1187f
Add defn- form for private defs.
2018-03-12 00:57:13 -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
807f9818a5
Add let macro.
2018-03-11 16:30:38 -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
e124029ae3
Update asm format for sourcemaps to use pairs for sourcemap entries.
2018-02-12 12:28:58 -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
c76b08cecc
Add destructuring in def and var statements for tables and structs.
2018-02-06 02:02:28 -05:00
Calvin Rose
ddee7f55e3
Add initial destructuring support for sequential types.
2018-02-06 01:25:48 -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