1
0
mirror of https://github.com/janet-lang/janet synced 2026-05-30 01:02:15 +00:00
Commit Graph

747 Commits

Author SHA1 Message Date
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 5fa96a6f8c Add documentation on all of the special forms. 2019-01-03 17:16:34 -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 ddba0010b0 Make test output less verbose. 2019-01-02 23:06:23 -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 a679f60e07 Add assembly test. 2019-01-02 19:58:27 -05:00
Calvin Rose 58d480539c Fix assembler labels after keyword update. 2019-01-02 19:55:42 -05:00
Calvin Rose 6afaacf2af Update documentation on keywords. 2019-01-02 19:46:24 -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 0d4ab7dee0 Add some more test cases for bad arities. 2018-12-30 18:44:00 -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 65be318306 Update grammar. 2018-12-29 18:04:23 -05:00
Calvin Rose 7c4671d98f Update loop documentation. 2018-12-29 17:42:44 -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 00f0f628e8 Shrink gif some more. 2018-12-29 13:21:13 -05:00
Calvin Rose 21b7583a7c Shrink image in README 2018-12-29 13:20:13 -05:00
Calvin Rose 42c6aca526 Shrink gif. 2018-12-29 13:17:45 -05:00
Calvin Rose 52b8781684 .. 2018-12-29 13:14:59 -05:00
Calvin Rose 5d39570ec9 Update README.md 2018-12-29 13:13:57 -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 6c8f49206d Add some more number tests. Crossing fingers
hoping windows will work.
2018-12-29 01:31:01 -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 424073bbb8 Update cook tool to not rebuild files unless it needs to. 2018-12-27 14:13:10 -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 59f6c335ad Update documentation to remove references of integers and real numbers.
Now there is only one kind of number.
2018-12-27 13:13:02 -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 5a3190d471 Update cook tool to allow embedding sources. 2018-12-26 22:40:19 -05:00
Calvin Rose e7a8958c63 Move grammar helper to tools directory. 2018-12-25 17:38:54 -05:00
Calvin Rose 017ee2b0d1 Move gendoc.janet script. 2018-12-25 17:37:52 -05:00