J.-F. Cap
3eb44f1f79
Fix buffer allocation
2019-02-26 00:21:03 +01:00
J.-F. Cap
fb5119bf43
Added some tests (suite 5)
2019-02-25 18:49:04 +01:00
J.-F. Cap
febfefa4b2
Added tarray/slice and fix buffer size
2019-02-25 02:21:10 +01:00
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
602e30a421
Add "\v" string esca[e sequence.
2019-02-24 14:46:16 -05: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
0eae75a5c2
added MARSH_EOS check
2019-02-24 18:45:14 +01:00
J.-F. Cap
8e0d7f2539
Merge remote-tracking branch 'upstream/master' into typed-array
2019-02-24 03:06:26 +01: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
Calvin Rose
327d2ed849
Remove extra "compile error: " string.
2019-02-23 15:38:49 -05:00
J.-F. Cap
db64a682be
fix incompatibilities with upstream/master changes in marsh.c
2019-02-23 17:54:09 +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
Calvin Rose
115bc6140b
Fix NULL ptr issue.
2019-02-22 17:12:34 -05:00
Calvin Rose
b14fcb068b
Update janet_pcall interface
...
The programmer can now not only get the used fiber, but
provide a fiber to reuse if many calls are made in succession.
2019-02-22 17:10:24 -05:00
Calvin Rose
2ea28f29b0
Shut up some warnings from clang's static analyzer.
...
Not particularly useful actually, by and large false positives.
2019-02-22 12:10:27 -05:00
J.-F. Cap
7cb1c7cef2
added ta marshalling
2019-02-22 17:41:27 +01:00
Calvin Rose
9d60e8b343
Address issue #54
...
Bug when marshalling function environments that were still on a fiber
stack.
2019-02-22 10:16:32 -05: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
Calvin Rose
beed839d12
Remove the callable? predicate.
...
Many times are callable now in some circumstances, so
the predicate is not that useful.
2019-02-21 20:38:22 -05:00
Calvin Rose
1147482e62
Address #53 - marshalling fiber strangeness
...
The unmarshaller was not tracking fibers in references.
2019-02-21 19:11:28 -05:00
J.-F. Cap
4d07176f1c
work in progress
2019-02-21 20:52:39 +01:00
Calvin Rose
8cff3dd2c3
Fix one more warning.
2019-02-21 11:46:39 -05:00
Calvin Rose
df550efb6b
Fix MSVC compiler warnings.
2019-02-21 11:34:04 -05: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
Calvin Rose
811b1825cb
Remove tuple/append and tuple/prepend.
...
Use the splice special instead.
2019-02-20 21:08:54 -05:00
J.-F. Cap
2ca252bc0e
Merge remote-tracking branch 'upstream/master' into typed-array
2019-02-21 01:43:22 +01:00
J.-F. Cap
6054858359
fix C format
2019-02-21 00:20:54 +01:00
J.-F. Cap
1d50fd9485
First exeperiments with JS style Binary Typed Arrays
2019-02-21 00:15:48 +01:00
Calvin Rose
a982f351d7
Address #50
...
Issues with range when called with 3 arguments.
2019-02-20 12:07:20 -05:00
Calvin Rose
27a274b686
Update some corelib functions.
...
Some corelib functions that were created via janet_quickasm
were missing some flags for arity checking, so they were marked as
accepting any arity.
2019-02-19 23:41:16 -05:00
Calvin Rose
cb002e7b84
Update generating tools to produce stylish code.
...
Really small whitespace changes in generated code.
2019-02-19 21:28:22 -05: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
dbcbb4466d
We don't need to add module/\*headerpath\*.
...
We can just dump janet.h into the lib folder as well.
2019-02-18 22:25:40 -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
8d9a88e759
Add JANET_PATH back in.
2019-02-18 15:31:15 -05:00
Calvin Rose
6af5800d21
Add -m option to command line
...
The -m option set the default system path for finding libraries
for that invocation of Janet.
2019-02-18 15:11:59 -05:00
Calvin Rose
540b326c54
Simpler way to set JANET_PATH at compile time.
2019-02-18 14:48:29 -05:00
Calvin Rose
660a2b41ae
Set module/*syspath*
to JANET_PATH at build time
...
The takes out the hardcoded reference to /usr/local/
2019-02-18 14:31:23 -05:00
Calvin Rose
07912f5ab2
Update comments in strtod.c
2019-02-17 21:44:58 -05:00
Calvin Rose
ffc14f6019
Oops, peg option issue fixed.
2019-02-17 21:25:30 -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
Calvin Rose
6d5ff43de7
Make amalg build cleaner.
...
Don't pull in a global header <janet/janet.h> unless we need to.
2019-02-16 23:33:24 -05:00
Calvin Rose
3b6ff3c09a
Add -c option to main client
...
This allows compile janet source modules to images.
2019-02-16 21:55:53 -05:00
Calvin Rose
0ce5acec89
Begin cleaning up string API.
...
Remove string/pretty in favor of buffer/format and string/format. Also
drop string/number, which is more verbose and less flexible than
string/format.
2019-02-16 15:12:34 -05:00
Calvin Rose
44e31cac5d
Merge pull request #40 from jfcap/string-format
...
string/format
2019-02-16 15:02:47 -05:00
Calvin Rose
029394db31
Add buffer/format as well as string/format.
...
buffer/format uses the old string/format behavior. `string/format` no
longer requires a buffer, and returns a string.
2019-02-16 13:59:38 -05:00
Calvin Rose
00020ba8ab
Whitspace and style changes.
2019-02-16 13:40:51 -05:00
Calvin Rose
1f91ee30fe
Make require simpler and module/find more useful.
...
This replaces a lot of the functionality in require by moving
it to module/find. module/native-paths and module/image-paths are also
merged into the one module/paths to make it easier to extend. This of
course breaks some of the less important API - module/native-paths no
longer exists.
2019-02-16 13:21:29 -05:00
J.-F. Cap
a6f022a73d
Added string/format function (snprintf like)
2019-02-16 03:29:04 +01:00
Calvin Rose
2e1ec3700d
Fix compilier warning on -Os, gcc.
2019-02-15 19:01:47 -05:00
Calvin Rose
9e6b1d1b16
Add images.
...
Images are precompiled libraries. They can be created programmatically
via the `write-image` function and then loaded with `require` or
`import`. They can also be run by the command line tool - you must
specify the path to the image without the .jimage extension.
2019-02-15 18:56:41 -05:00
Calvin Rose
bdf03b4706
Fix unmarshalling integers directly, not through readint.
2019-02-15 14:01:32 -05:00
Calvin Rose
4d96ba3ba9
Merge branch 'master' of github.com:janet-lang/janet
2019-02-15 13:21:00 -05:00
Calvin Rose
f161002390
Address #35
2019-02-15 13:20:20 -05:00
J.-F. Cap
e0d26629e0
Fix buffer (and string) used as callee for indexing.
2019-02-12 23:40:59 +01:00
Calvin Rose
17783c3c3e
Add tuple/brackets
...
Fix macro expansion via macex for bracketed tuples.
2019-02-11 18:37:59 -05:00
Calvin Rose
c64e92a5de
Add some unused math functions.
...
Several functions from the C math library were
forgotten in the math module. These have been
added to the core library.
2019-02-10 12:03:22 -05:00
J.-F. Cap
c6672e62ac
Added math/abs binding
2019-02-10 14:06:10 +01:00
Calvin Rose
c6edf03ae8
Fix some code style, add tuple/type function.
...
We need to be able to detect tuple type from janet code, otherwise
tuples will contain hidden state. The tuple/type function is able
to detect the flags in the tuple so the programmer can access them
if needed.
2019-02-09 12:21:11 -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
114a45306d
Add more specialization for marshaling integers.
...
This decreases the core image size by about 16.5k.
2019-02-08 10:14:36 -05: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
J.-F. Cap
8ab60e475a
typo in janet_indexed_view
...
(no consequence but look strange)
2019-02-08 01:10:07 +01:00
Calvin Rose
6321c30cb1
Add methods for file io.
2019-02-06 17:58:27 -05:00
Calvin Rose
74e1a3273f
Add method syntax to parser.
2019-02-05 19:43:41 -05:00
Calvin Rose
f6a3853131
Merge pull request #30 from jfcap/get-set-abstract
...
Get set abstract
2019-02-05 19:09:56 -05:00
J.-F. Cap
960cf76eb5
Experimental getter/setter for abstract types
2019-02-05 17:14:13 +01:00
Calvin Rose
1b735564fa
Update copyright.
2019-02-03 15:34:41 -05:00
Calvin Rose
cb5263d2d8
Remove extra comment.
2019-02-03 15:32:39 -05: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
19e59705b9
Main rule in peg is always 0
...
After we changed peg bytecode emission to
preallocate space for an instruction before
emitting sub rules, the rules are numbered
in the order that they are compiled. This means
that the main rule is always 0.
We can remove the explicitly stored main rule in
the peg structure.
2019-01-31 23:39:33 -05:00
Calvin Rose
367c9da856
Fix some typos and update style.
...
Add bars.janet tool for templating arbitrary
strings, especially HTML.
2019-01-31 22:38:59 -05:00
Calvin Rose
4bcf6565cd
Add parser/insert and bump to 0.4.0
2019-01-31 14:48:28 -05:00
Calvin Rose
0c950d0846
Fix emscripten build.
2019-01-31 13:02:09 -05:00
Calvin Rose
7ba925c50a
Make getline more useful.
2019-01-31 12:34:22 -05:00
Calvin Rose
cb3b9dd76f
Update changelog an fix typos.
2019-01-31 10:09:34 -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
85a211b26b
Remove extra vector function.
2019-01-30 21:22:40 -05:00
Calvin Rose
46c540b93e
Add math headers for emscripten
...
We now check for NaN in table.c and struct.c
as we disallow NaN keys.
2019-01-29 18:18:14 -05:00
Calvin Rose
32c209ede9
Address #25
2019-01-29 13:59:08 -05:00
Calvin Rose
0d293cd3f5
Update require to use real path name rather than module name.
2019-01-28 21:48:13 -05:00
Calvin Rose
f284776490
Address #24
2019-01-28 20:30:45 -05:00
Calvin Rose
38a7e4faf1
Disallow NaN as table/struct key.
...
Fix bugs and add tests for denormalized tables
and structs.
2019-01-28 11:50:33 -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
68e00cdb7a
Update slurp and spit error handler.
2019-01-26 17:27:05 -05:00
Calvin Rose
e755f98300
Address #23
2019-01-25 20:31:08 -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
795e7a9de8
Make os/date results more consistent.
2019-01-20 16:49:39 -05:00
Calvin Rose
090a6a8c5c
Add optional env arguments to eval functions.
2019-01-20 16:06:30 -05:00
Calvin Rose
2bbf9fdcc5
Add os/date to core library.
2019-01-20 14:34:33 -05:00
Calvin Rose
737b2449f0
Update highlight and the mainclient.
2019-01-20 10:05:51 -05:00
Calvin Rose
48b179d67e
Add slurp and spit to the core library.
2019-01-19 22:00:33 -05:00
Calvin Rose
bf8d5da3dc
Fix possible memory leak on buffer overflow.
...
(All buffer push functions can panic (longjmp), skipping
deinit. Instead, we should use the garbage collected api).
2019-01-19 12:32:52 -05:00
Calvin Rose
5ba969f91d
Make match macro prettier.
2019-01-18 15:24:58 -05:00
Calvin Rose
26818a5e5c
Fix doc generation.
2019-01-18 12:26:04 -05:00
Calvin Rose
b84b0e4828
Expose more of the module system.
...
The system path can more easily modified at runtime,
and the module/cache and module/loading tables are now exposed.
Properly cache native modules as well.
2019-01-18 12:04:34 -05:00
Calvin Rose
b4934ceddc
Make parser errors a bit better for files with no closing
...
delimiters.
2019-01-17 23:43:46 -05:00
Calvin Rose
c4114fbcdb
Add quote special to peg syntax to make captures terser.
2019-01-17 19:28:42 -05:00
Calvin Rose
95f2bbe0a0
Add highlight.janet tool which can highlight
...
janet source code and output html or terminal escaped code.
Also made re entrant calls into the vm provide better
error messages.
2019-01-17 18:12:26 -05:00
Calvin Rose
63137b8107
Fix parsing bug for numbers.
2019-01-17 12:32:51 -05:00
Calvin Rose
2c1b506213
Add tagged captures for a better (more correct) form of look behind.
2019-01-16 22:38:11 -05:00
Calvin Rose
612a245961
More work on peg. Disable indexed backrefs and replace substitution
...
with accumulation.
2019-01-16 21:11:55 -05:00
Calvin Rose
82cddef5bb
Update man page and add early exit to number scanning for parser.
2019-01-16 12:32:33 -05:00
Calvin Rose
d0fc29338c
Add error special form in Peg to allow construction of grammar errors
...
for more useful grammars that could eventually be used in a compiler.
2019-01-15 16:04:47 -05:00
Calvin Rose
4eeadd7463
Add optional form to peg (shorthand for (between 0 1 patt)).
2019-01-15 14:08:03 -05:00
Calvin Rose
3a9b50ea4a
Update peg doc and remame some peg specials.
2019-01-14 22:17:13 -05:00
Calvin Rose
1304f9263b
Update peg docs and make bad backrefs not error the whole pattern, but just cause the current match attempt to fail.
2019-01-14 21:47:55 -05:00
Calvin Rose
90313afd40
Update PEG documentation and peg syntax.
...
Disable tail calls in the root scope for better
stacktraces, as the root scope may contain a single call
to a failing function, as in the case of the test suite.
2019-01-14 20:41:32 -05:00
Calvin Rose
99f176f37b
Fix windows build warnings.
2019-01-14 17:48:32 -05:00
Calvin Rose
d0ec89c7c1
Update Matchtime captures to not include all of the
...
matched text automatically, and fix pattern recursion
in grammars.
2019-01-14 17:44:21 -05:00
Calvin Rose
170e785b72
Fix recursion in grammars.
2019-01-14 15:06:35 -05:00
Calvin Rose
e53778d5d8
Remove annoying (fiber) text from stacktrace.
2019-01-14 12:08:36 -05:00
Calvin Rose
192705113e
Add Matchtime captures to peg (Equivalent to LPegs lpeg.Cmt).
...
This allows that pattern to call an external function to
check if some text should match or not. This allows for
matching any possible language a computer can recognize.
2019-01-14 11:45:45 -05:00
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
84fb07dd5a
Add quiet option to main client.
2019-01-10 17:10:12 -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
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
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
065c4cfac1
Gitignore was ignore files.
2018-01-20 11:04:30 -05:00
bakpakin
30f62ca454
Major refactor and restructure. Add CMake for anticipated windows
...
support.
2018-01-19 16:43:19 -05:00