Commit Graph

2835 Commits

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