Commit Graph
30 Commits
Author SHA1 Message Date
Calvin Rose b8032ec61d Add propagate function and opcode
This allows better stacktraces when manually intercepting
signals to clean up resources. Also allows functionality
from Common Lisp's unwind-protect, such as calling cleanup code
while unwindinding the stack, restarting on certain signals, and
just in general having more control over signal and signal propagation.

Also fix a bug encountered while implementing with-resource in the
compiler. Desturcturing arguments that were not the last argument
would often result in bad code generation, as slots used to destructure
the earlier arguments would invalidate the later parameters. This is
fixed by allocating all named parameters before doing any destructuring.
2019-06-24 12:44:13 -04:00
Calvin Rose f10028d41a Add function versions of macro API bindings.
This should help address #81. Also hide janet_exit
and janet_assert, as they are really meant for internal usage.
I have not verified that this yet actually works with Rust's
bindgen.
2019-04-27 15:47:12 -04:00
Calvin Rose e239980da7 Quasiquoting bracketed tuples. 2019-03-31 14:15:26 -04:00
Calvin Rose d42bdf2443 Add proper optional arguments.
Use &opt in the parameter list to get optional arguments.
2019-03-12 00:23:14 -04:00
Calvin Rose 9d4effc02e Add make format to format code.
A consistent style should help with contributors and
readability. We use astyle as the formatter as can make a pretty
good approximation of the current style and my preferred style.

Astyle can be found at http://astyle.sourceforge.net/astyle.html
2019-02-19 20:51:34 -05:00
Calvin Rose ed72dcf82d Rename the header <janet/janet.h> to <janet.h>
Makes it easier to use and remember, and makes the
variable `module/*headerpath*` make more sense.
2019-02-18 20:13:35 -05:00
Calvin Rose 611543c48b Add source amalgamation
The amalgamated source concatenates all sources
to a file janet.c which can be used for
embedding janet, much in the same way as sqlite
or mongoose.
2019-01-24 00:15:58 -05:00
Calvin Rose 6f3bc3d577 Update copyright date, fix types, remove trailing whitespace. 2019-01-06 03:23:03 -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 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 c8ef2a0d88 Rename to janet 2018-09-05 22:18:42 -04:00
Calvin Rose 634ec85b07 Fix funcdef flags when marshaling. 2018-08-21 15:07:37 -04:00
Calvin Rose 1acd2d1de7 Inlining for all built in comparators. 2018-07-09 21:24:22 -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 bb406133de New sourcemaps v1. 2018-06-28 23:37:04 -04:00
Calvin Rose 2a87dada47 Rename fiber.resume and fiber.yield to
resume and yield.
2018-06-09 13:08:30 -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 f295692b50 Update copyright to 2018. Add string methods. 2018-05-17 23:41:20 -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 0cd6cdc28b Add some more opcodes for comparison with numeric types. 2018-05-07 12:34:04 -04:00
Calvin Rose 0fd55282d8 Add error reporting to repl (initial stack traces) 2018-03-21 20:53:39 -04:00
Calvin Rose 2a0dc5f1ad Switch to assymetric coroutines instead of symmetric. 2018-03-11 15:35:23 -04:00
Calvin Rose 0c3b0673ff Enable debug opcode in vm and debug state for fibers. 2018-03-09 17:14:26 -05:00
Calvin Rose 1551bf6b48 Use flatter representation for function and environments. 2018-02-13 16:14:55 -05:00
Calvin Rose a614816a04 Update func env representation to not store envs in function
objects.
2018-02-12 16:43:59 -05:00
bakpakin ce5708af98 Switch over to Cmake fully. 2018-01-29 15:46:26 -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 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