1
0
mirror of https://github.com/janet-lang/janet synced 2024-11-25 09:47:17 +00:00
Commit Graph

2050 Commits

Author SHA1 Message Date
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