J.-F. Cap
632b920e97
fix C format
2019-02-24 22:36:35 +01:00
J.-F. Cap
c81bf42f6b
Merge remote-tracking branch 'upstream/master' into typed-array-work
2019-02-24 22:25:33 +01:00
J.-F. Cap
4147c0ce1f
Added typed array C API
2019-02-24 22:24:18 +01:00
Calvin Rose
9495be328c
Be more careful about data alignment
...
Alingment issues can happen anywhere we do casting
on pointer types. Be more careful in the peg module about
ensuring that pointers are aligned well.
2019-02-24 13:43:38 -05:00
J.-F. Cap
9c1c7fb384
Remove AT id use name as tag
2019-02-24 02:51:34 +01:00
J.-F. Cap
af48912f11
Simplify Abstract type introspection
2019-02-24 02:02:54 +01:00
J.-F. Cap
4d3c655058
Merge remote-tracking branch 'upstream/master' into typed-array
2019-02-23 17:36:38 +01:00
J.-F. Cap
2becebce92
fix C source format
2019-02-23 17:13:43 +01:00
J.-F. Cap
0cc6c6ff33
implement typed array marshal/unmarshal and
...
generic marshaling capabilities to abstract types.
2019-02-23 16:58:47 +01:00
J.-F. Cap
7cb1c7cef2
added ta marshalling
2019-02-22 17:41:27 +01:00
Calvin Rose
340a6c4d8d
Update marsh.c to use janet_panic for errors.
...
Before, we used a local setjmp/longjmp for error handling.
Using janet_panic means errors can be more easily expressive and
code can be smaller.
However, we still need to make vector memory get gc collected, as
panics can cause the runtime to skip janet_v_frees.
2019-02-22 10:12:25 -05:00
J.-F. Cap
e5a4c6fc2b
Merge remote-tracking branch 'upstream/master' into ta-with-marshal
2019-02-22 15:58:47 +01:00
J.-F. Cap
db9ac6dba5
marshal buffer ok
2019-02-22 15:57:48 +01:00
J.-F. Cap
d570aae817
Merge branch 'ta-marshal' into ta-with-marshal
2019-02-22 11:13:12 +01:00
J.-F. Cap
59e4b15fad
added some abstract type instrospection capabilities
...
registering abstract type in vm_register table
2019-02-22 10:54:22 +01:00
J.-F. Cap
4d07176f1c
work in progress
2019-02-21 20:52:39 +01:00
Calvin Rose
00a47dc0cb
Begin work on new memory layout for all objects and GC.
...
The layout should actually be very similar to the old layout, but
the code will be much easier to change and should be more portable.
2019-02-21 11:22:29 -05:00
J.-F. Cap
1d50fd9485
First exeperiments with JS style Binary Typed Arrays
2019-02-21 00:15:48 +01: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
Dan Skorupski
ef5f80ad38
Fix indentation, converting some tabs to spaces.
2019-02-19 17:54:13 -06: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
1e70c97ef0
Allow enabling/disabling of peg module.
...
Use compiler define -DJANET_NO_PEG to turn off the peg module.
2019-02-17 21:22:03 -05:00
J.-F. Cap
5020a1bae9
Added marshalling code to save tuple_flag
2019-02-09 17:00:35 +01:00
J.-F. Cap
86ba69c16b
Merge remote-tracking branch 'upstream/master' into crazy-brackets
2019-02-08 23:45:55 +01:00
J.-F. Cap
5f70024f87
Experimental stuffs with bracket syntax
2019-02-08 21:49:28 +01:00
Calvin Rose
fe27df528c
Boot core library from image rather than source
...
This should speed up start time and reduce malloc/free
usage to about 15% of what is what previously for startup.
The current cost is slightly larger binary as the representaion
of the image is currently less compact than source code.
2019-02-08 00:44:30 -05:00
Calvin Rose
74e1a3273f
Add method syntax to parser.
2019-02-05 19:43:41 -05:00
J.-F. Cap
960cf76eb5
Experimental getter/setter for abstract types
2019-02-05 17:14:13 +01:00
Calvin Rose
8a3f512746
Experimental changes to janet_call to make it faster.
...
Remove setjmp and fiber creationg from janet_call. This
adds the constraint to janet_call can only be called when there
is already a current fiber.
2019-02-01 11:56:25 -05:00
Calvin Rose
4bcf6565cd
Add parser/insert and bump to 0.4.0
2019-01-31 14:48:28 -05:00
Calvin Rose
c76f4e89d8
Remove redundancies in stacktraces.
...
There was an implementation for stacktraces in both
run.c and in core.janet, status-pp. The commit removes
the one in core.janet in favor of the C based stacktrace, which
is exposed via debug/stacktrace. Lots of reshuffling of run-context
ensued as well, which resulted in an api that is a bit cleaner.
2019-01-30 23:11:12 -05:00
Calvin Rose
c333cbfa55
0.3.0
2019-01-26 21:40:04 -05:00
Calvin Rose
d85892edc8
0.3.1
2019-01-26 21:34:08 -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
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
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
0fdd404a71
Remove duplicate functionality in string.c
2019-01-05 21:23:44 -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
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
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
e9c94598e6
Add native keyword type to replace symbols with leading ':'
...
character.
2019-01-02 19:41:07 -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
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
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
9723ddb96b
Fix string/number issue.
2018-12-22 16:24:08 -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
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
bb918d0fda
Update README.md. Prepare for 0.1.0 release.
2018-12-08 18:10:17 -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
7668cd5772
Don't use generated headers for embedded janet
...
code, use object files.
2018-12-06 14:30:11 -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
a7860f1dd1
Update pretty printer to remove values
...
from seen table.
2018-11-19 09:57:24 -05:00
Calvin Rose
1532697b37
Revise 32 bit nanbox implementation.
2018-11-18 16:43:43 -05:00
Calvin Rose
4c4eff9390
Replace cast with type pun.
2018-11-18 14:17:50 -05:00
Calvin Rose
c9f76d2673
Emscripten build strange as ever.
2018-11-15 18:56:06 -05:00
Calvin Rose
4d119e4e03
Begin adding more complete documentation.
2018-11-15 15:45:41 -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
c1923c5ada
Web assembly build with emscripten.
2018-10-16 23:08:26 -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
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
c8ef2a0d88
Rename to janet
2018-09-05 22:18:42 -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
ecdef8de8b
Working fiber marshaling.
2018-08-24 11:35:08 -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
910cfd7ddf
Lots of updates. Function marshaling WIP.
2018-08-19 20:21:27 -04:00
Calvin Rose
48c2654312
Local changes.
2018-08-07 00:54:47 -04:00
Calvin Rose
11292c6bb3
Update require to handle natives better.
2018-07-16 22:55:45 -04:00
Calvin Rose
90496b99e8
Fix os.getenv error.
2018-07-11 19:11:34 -04:00
Calvin Rose
1acd2d1de7
Inlining for all built in comparators.
2018-07-09 21:24:22 -04:00
Calvin Rose
5b15ad9ff8
Try and fix os.clock on windows.
2018-07-08 20:54:41 -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
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
79225ad3d5
Add some inlining for a few builtins.
2018-07-01 19:35:45 -04:00
Calvin Rose
6822400abe
Fix large function compilation issue.
2018-07-01 15:53:57 -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
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
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
2a87dada47
Rename fiber.resume and fiber.yield to
...
resume and yield.
2018-06-09 13:08:30 -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
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
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
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
dafc121f4d
Change c function macros to be explicitly non functional by
...
capitalizing them.
2018-05-12 20:31:28 -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
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
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
39d6bd573a
Add preliminary os lib.
2018-03-28 20:50:20 -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
855787b292
Add macroexpand and macroexpand1
2018-03-18 14:01:58 -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
1ec704feb9
Remove pretty printer implemented in C.
2018-03-14 13:38:48 -04:00
Calvin Rose
c23ea536da
Add getline on unix.
2018-03-13 23:39:49 -04:00
Calvin Rose
2b1dd79f55
Work on emscripten support. Works with sync code.
2018-03-13 14:03:17 -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
Calvin Rose
a673b7e326
Fix small compiler bug
2018-02-03 17:22:04 -05:00