1
0
mirror of https://github.com/janet-lang/janet synced 2024-07-01 01:23:15 +00:00
Commit Graph

389 Commits

Author SHA1 Message Date
Calvin Rose
8a5ede21f7 Fix some documentation and add beginning of a document
generating script.
2018-12-15 23:19:28 -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
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
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
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
ecb9196e7b Fix cfunctions not printing with whole name im some cases. 2018-10-22 01:28:39 -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
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
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
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
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
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
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
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
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
bakpakin
1690fee446 Add failure on top level error. 2018-06-08 15:58:23 -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
b09bf72490 Change primary looping macro to 'loop' instead of 'for'. 2018-05-23 22:08:36 -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
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
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
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
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
7e63427208 Update strtod.c to be less accepting of some badly formed numbers. 2018-05-06 15:27:52 -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
99709a68fd Add example file for compiling native modules (hello.so). 2018-04-26 13:13:31 -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
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
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
d9f6c7b069 Make pretty printer prettier. 2018-03-26 13:36:58 -04:00
bakpakin
080caf31a7 Add triangles examples. 2018-03-25 18:51:31 -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
3e1e258546 Fix a compiler bug in the do special form. 2018-03-19 14:51:18 -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
4a76f2ae32 Replace varset! with algol style := 2018-03-16 18:15:34 -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
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
2b1dd79f55 Work on emscripten support. Works with sync code. 2018-03-13 14:03:17 -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