Commit Graph

310 Commits

Author SHA1 Message Date
Calvin Rose 7927078b49 Include header path when building modules. 2019-02-18 20:27:00 -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
Tim Sedlmeyer a9574b692f
Don't call mandb during install
mandb is used on many but not all linux distributions and infrequently outside of linux to maintain the man page index files, so it should not be called as part of the install process.
2019-02-18 18:29:35 -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 d2d502b9ae Remove ldconfig stuff. 2019-02-18 13:49:43 -05:00
Calvin Rose 3aae524964 Try to respect PREFIX more.
Remove automatic installation of shared library.
2019-02-18 13:46:35 -05:00
charles 06f38d3380 Update makefile for OpenBSD 2019-02-15 19:02:14 -05:00
Calvin Rose 89ef4eb634 Update emscripten build. 2019-02-08 11:04:33 -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
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 00301ad26b Add build number to amalg build. 2019-01-24 00:26:57 -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 e68a889fa9 Remove doc markdown and move it to website. 2019-01-21 13:49:44 -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 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 170e785b72 Fix recursion in grammars. 2019-01-14 15:06:35 -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 be85196de8 Add callgrind task to Makefile.
Unify some parser states.
2019-01-06 21:49:24 -05:00
Calvin Rose 92e9e64945 Update CONTRIBUTING.md and make valtest 2019-01-06 12:32:44 -05:00
Calvin Rose 017ee2b0d1 Move gendoc.janet script. 2018-12-25 17:37:52 -05:00
Calvin Rose 6c8da9fe5c Install cook tool when installing janet. 2018-12-25 15:39:24 -05:00
Calvin Rose 9723ddb96b Fix string/number issue. 2018-12-22 16:24:08 -05:00
Calvin Rose ac9935c95f Add documentation to generated distribution
archive.
2018-12-17 22:48:37 -05:00
Calvin Rose 131ee29190 Add docs target to generate documentation. 2018-12-17 01:41:11 -05:00
Calvin Rose 24b9ae7820 Add doc files to distribution archives. 2018-12-15 15:42:27 -05:00
Calvin Rose 34a69d0318 Add janet logo,mMove some lib files to example. 2018-12-11 18:06:10 -05:00
Calvin Rose c971d8ab6e Fix install paths 2018-12-09 18:01:43 -05:00
Calvin Rose 0a15539d7b No longer make extra object files. 2018-12-09 17:51: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 6f64b0c152 Switch to out of source build on unix/linux. 2018-12-09 17:37:11 -05:00
Calvin Rose 4bcbf65b5b Update appveyor and windows build_win script. 2018-12-08 17:10:46 -05:00
Calvin Rose 9329969ea7 Add tarball for installation. 2018-12-08 16:17:34 -05:00
Calvin Rose 16e514b351 Update version schema - now have version number
and build number.
2018-12-08 14:17:03 -05:00
Calvin Rose 7668cd5772 Don't use generated headers for embedded janet
code, use object files.
2018-12-06 14:30:11 -05:00
Calvin Rose 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 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 ba2c4b265b Revert to GNU Makefile. 2018-11-28 19:56:58 -05:00
Calvin Rose 305c113c91 Eventually we will build on freebsd without gmake and gcc. 2018-11-28 19:48:44 -05:00
Calvin Rose f63b337cca Hopefully more cross platform makefile. 2018-11-28 19:22:08 -05:00
Calvin Rose 5de6e4c641 Try again with makefile. 2018-11-28 18:36:38 -05:00
Calvin Rose 486d15d50d First step to freebsd builds. 2018-11-28 18:31:03 -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 4e689c2279 Add table test. Add :repeat to loop macro. 2018-11-19 14:49:10 -05:00
Calvin Rose 4c4eff9390 Replace cast with type pun. 2018-11-18 14:17:50 -05:00
Calvin Rose 69b6894f6b Add some tests for C api and code. 2018-11-18 13:56:27 -05:00
Calvin Rose 3d5c8e3584 Add a man page. 2018-11-18 09:35:41 -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 aa8384488c Fix makefile and add json doc. 2018-11-15 17:44:30 -05:00
Calvin Rose 853a839f6c Add git commit hash to build to get version. 2018-10-31 16:21:21 -04:00
Calvin Rose a20799b59a Change build options for emscripten. 2018-10-21 12:46:10 -04:00
Calvin Rose c1923c5ada Web assembly build with emscripten. 2018-10-16 23:08:26 -04:00
Calvin Rose e8a4e83a0d Update Makefile, json native module,
and test suite 2.
2018-10-04 17:25:46 -04:00
Calvin Rose 725fd52357 Don't add -lrt flag on macos 2018-09-10 14:56:39 -04:00
Calvin Rose a86540a876 Update to work on CENTOS. 2018-09-10 14:21:08 -04:00
Calvin Rose c8ef2a0d88 Rename to janet 2018-09-05 22:18:42 -04:00
Calvin Rose 73b397f7de Add json native instead of hello. Remove metabuild
code.
2018-08-26 11:28:51 -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 5464fd5173 Fix some bugs. 2018-08-21 13:09:01 -04:00
Calvin Rose 48c2654312 Local changes. 2018-08-07 00:54:47 -04:00
Calvin Rose 11292c6bb3 Update require to handle natives better. 2018-07-16 22:55:45 -04:00
Calvin Rose 547529ebb2 Refactor dst_view_* functions. 2018-07-04 13:21:30 -04:00
Calvin Rose 1f37919f39 Rename boot.dst to core.dst 2018-07-04 00:21:18 -04:00
Calvin Rose a018f9f54a Major refactor. Move files around, merge compiler into
core and other changes, work on inlining many c functions.
2018-07-03 23:07:35 -04:00
Calvin Rose 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 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 b47b35587d Don't run ldconfig when installing on osx. 2018-06-26 14:10:17 -04:00
Calvin Rose 4e6fc341dc Many updates to the sqlite module. 2018-06-23 19:19:26 -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 c6f79eca6d Make setting up stl easier. Add shared library output to Makefile. 2018-05-14 21:52:51 -04:00
Calvin Rose 584c75b3f6 Update Makefile for faster builds. 2018-05-10 11:11:18 -04:00
Calvin Rose 53f9c18669 More work on improving errors. 2018-04-29 20:13:04 -04:00
Calvin Rose 99709a68fd Add example file for compiling native modules (hello.so). 2018-04-26 13:13:31 -04:00
Calvin Rose 89ecd43115 Move functions in util.dst to boot.dst. 2018-03-23 18:36:56 -04:00
Calvin Rose 0fd55282d8 Add error reporting to repl (initial stack traces) 2018-03-21 20:53:39 -04:00
Calvin Rose a512e3e837 Update README.md 2018-03-18 15:05:31 -04:00
Calvin Rose b41b24eb80 Update gitignore to not ignore Makefile. 2018-03-18 14:03:26 -04:00
bakpakin ce5708af98 Switch over to Cmake fully. 2018-01-29 15:46:26 -05:00
bakpakin 1c529f3bb0 Oh travis 2018-01-20 10:57:01 -05:00
bakpakin 30f62ca454 Major refactor and restructure. Add CMake for anticipated windows
support.
2018-01-19 16:43:19 -05:00
bakpakin 0531866954 Redo parser as a FSM. Again. 2018-01-18 17:25:45 -05:00
bakpakin d373d38aee Add context functions for more uniform interface 2018-01-16 23:18:45 -05:00
bakpakin 23196ff6a2 Fix scope issue in compiler. 2018-01-15 23:31:39 -05:00
bakpakin 6df88f225f More work on c library interface and io library. 2018-01-15 20:14:54 -05:00
bakpakin 53c0d5757c Add untested code for loading dlls on windows. 2018-01-14 09:58:35 -05:00
bakpakin 4197f918a0 Preliminary support for loading c libraries. 2018-01-13 23:38:58 -05:00
bakpakin 921f087c96 Remove useless file. 2018-01-12 19:23:36 -05:00
bakpakin 60b8f436f0 Proper order for libraries in Makefile. 2018-01-12 17:42:14 -05:00
bakpakin 6679fb299f add -lm flag 2018-01-12 17:33:56 -05:00
bakpakin 59bed71a2c Make some unit tests pass. Fix transfer to new fiber. 2018-01-12 16:25:24 -05:00
bakpakin 204caa6d8f Factor out language specials to separate files in compiler.
Add transfer special. */
2018-01-12 10:41:27 -05:00
bakpakin 605848b217 Rename DstValue to Dst for easier access. Move vector.c into
util.c and make public API smaller. Pad strings and symbols with
extra 0 byte for better interop with C.
2018-01-06 11:09:15 -05:00
bakpakin 2771171658 Much work on compiler. Fixing bugs and gradually cleaning
up code. Generalized some vector code.
2018-01-05 16:17:55 -05:00
bakpakin e4735e14d2 More compiler bug fixes. Added some features and functions like varargs. 2018-01-03 21:36:10 -05:00
bakpakin f273aa8b1b Add vars, split up headers, remove fiber->ret, add comparators, etc. 2017-12-30 16:46:59 -05:00
bakpakin 34a83839f5 Add utf-8 compatibility in parser. Symbols can
be valid utf-8 strings
2017-12-20 23:03:34 -05:00
bakpakin 01a95426b3 More work on compiler. Add compiler unit test that currently
segfaults alot. Added dst_disasm to reconstruct dsts assembly
from a funcdef.
2017-12-16 23:11:51 -05:00
bakpakin 2d781ef21b Compiler is coming along. Work on Slot system and general compiler strategy. 2017-12-16 01:17:53 -05:00
bakpakin 1293d2e301 Initial rewrite of compiler 2017-12-14 19:33:45 -05:00
bakpakin a2ee6ffe5c New custom strtod implementation. 2017-12-08 15:57:02 -05:00
Calvin Rose eceb6e5a77 More work on nanbox implementation. 2017-11-29 15:17:56 -05:00
Calvin Rose d84cc5342e Fix write after free bug.
Remove caching from strings, tuples, and structs.
Keyword style strings removed, now are just symbols. The
compiler can decide to treat symbols with a leading ':'
differently for mostly the same effect. This was done because
as strings are no longer interned, symbols are cheaper to look
up and check for equality.
2017-11-27 14:03:34 -05:00
bakpakin baa4e20b79 Some more changes to the nanbox_test 2017-11-26 20:20:30 -05:00
bakpakin 68f5ea4361 Add test nanbox implementation. Works for 32 bit and 64 bit x86 2017-11-26 19:31:40 -05:00
bakpakin 6ca6949c2d Getting more work done on assembler, parer, and unit tests. 2017-11-20 21:39:44 -05:00
bakpakin 9a858d5a97 Adding some more unit tests for various components. 2017-11-06 09:44:10 -05:00
bakpakin f6dcb07c8d More work. Too many changes to be listed. 2017-11-05 22:05:47 -05:00
bakpakin a2ee028bd5 WIP 2017-11-01 17:53:43 -04:00
bakpakin 3efd400025 Huge number of changes. Still WIP. Refactoring and
changing C API model. This commit is not i a working state.
2017-09-09 14:39:51 -04:00
bakpakin 9187d4c1e2 Create xxd clone for build time gst scripts. 2017-07-15 23:25:10 -04:00
bakpakin f0545865a8 More corrections to varargs. 2017-07-15 12:41:54 -04:00
bakpakin 57886db410 Making some changes. 2017-07-15 12:21:06 -04:00
bakpakin 8c20b7229a Refactor module and env code into separate files. 2017-07-12 14:47:09 -04:00
bakpakin 70efcc336b Move some string functions to a new file. 2017-07-03 13:44:58 -04:00
bakpakin 961275116f Add symbol function 2017-07-03 11:22:23 -04:00
bakpakin 31ec1e9147 Add install and uninstall make targets. 2017-07-02 14:56:31 -04:00
bakpakin 7a9e991c41 Add color options to repl. 2017-07-02 14:42:30 -04:00
bakpakin 4a131fe47e Add some command line options to the client program. 2017-07-01 22:34:31 -04:00
Calvin Rose 21bd960865 Add more tests
Reuse threads on gst_run when possible
change name of getline to gst_getline
2017-06-29 21:57:09 -04:00
Calvin Rose 092fd68935 Remove -Wpedantic 2017-06-25 19:53:55 -04:00
Calvin Rose b23fc136dd Remove readline and add travis 2017-06-25 19:49:07 -04:00
Calvin Rose c3d65cb91d Remove lots of headers. Add parse c function. 2017-06-24 14:27:29 -04:00
Calvin Rose 70478a410b Add errorParent to threads. 2017-06-19 23:01:34 -04:00
Calvin Rose 6246c43e22 Fix integer division by 0 error. 2017-05-08 12:08:48 -04:00
Calvin Rose 7b83247c07 Add vararg support to compiler. Seems to be leak in parser. 2017-05-06 17:46:28 -04:00
Calvin Rose d47ee18b1a Fix gc mark function in compiler.
GNU readline is not valgrind clean or it
is being used incorrectly.
2017-05-05 23:33:36 -04:00
Calvin Rose bf2c16ccb0 Flesh out support for userdata
Add file reading via file objects.
Finalizer option for userdata.
2017-04-26 10:22:16 -04:00
Calvin Rose 5845434529 Add readline to repl for better experience 2017-04-19 12:56:29 -04:00
Calvin Rose baa3544ca0 Readd the repl. 2017-04-17 22:14:35 -04:00
Calvin Rose 6e71984fc5 Add wrapping functions for easy conversion between c api and
internal values.
2017-04-17 18:46:28 -04:00
Calvin Rose f52e290206 Allow parser to parse files rather than just a repl. I think
there are some memory leak issues (problems with gc).
2017-04-17 00:15:18 -04:00
Calvin Rose e90b66af58 Add struct type. 2017-04-15 16:05:59 -04:00
Calvin Rose e28e31f818 Begin implementing module system. 2017-04-12 21:21:46 -04:00
Calvin Rose 6365a007b6 More work on cleaning up string implementation. 2017-03-22 18:35:54 -04:00
Calvin Rose 841ee3696d Add cache for strings. 2017-03-22 00:27:18 -04:00
Calvin Rose f6e26d9893 Work on serialization. Move clibs into core. 2017-03-20 23:06:38 -04:00
Calvin Rose 9856142fef Refactor code. Separate code into different modules to
separate the minimum runtime from auxiliary functions.
Change makefile to allow building static libraries.
2017-03-15 20:56:37 -04:00
Calvin Rose 91f2766dd0 Rename binary 2017-03-15 01:27:56 -04:00
Calvin Rose 3274e87a45 Work on simplifying calling procedure 2017-03-12 18:23:27 -04:00
Calvin Rose b986e1b967 Redo calling convetion for more code reuse. Allow calling gst functions from c. 2017-03-10 00:09:42 -05:00
Calvin Rose 169e3de5a7 Work on basic stl. Add _ binding to repl for last value 2017-03-09 13:49:46 -05:00
Calvin Rose 69624495ec Remove longjump/setjump from vm loop. Add out of memory
behavior option.
2017-03-08 15:08:46 -05:00
Calvin Rose 68f834f03b Remove dsiasm from binary. 2017-03-08 10:54:50 -05:00
Calvin Rose 0d066d8754 Add tuple type. 2017-03-07 15:29:40 -05:00
Calvin Rose 7cdf33eb90 Modify some files. Also begin open addressing hash
dictionary for use in compiler. Might also move normal
object to open addressing for less pressure on gc.
2017-02-28 20:20:29 -05:00
Calvin Rose 33d09f98b1 Work on speeding up interpreter by moving state inside
interpreter loop.
2017-02-26 11:47:50 -05:00
Calvin Rose fd34837265 Breaking up functionality into more modules. 2017-02-23 17:21:13 -05:00
Calvin Rose 439650f26a Add get and set instructions. GC is still buggy and currently
crashes everything all the time. :(
2017-02-12 21:54:18 -05:00
Calvin Rose b9a9a9303c Several changes to VM and Compiler. Still WIP
and non functional.
2017-02-12 10:27:18 -05:00
Calvin Rose 9ffbdcb3e9 Add simple disassembler for debugging. Does not use labels. 2017-02-11 14:02:48 -05:00
Calvin Rose 3794ec3acd More work on compiler.
* Fix up while special form
* Change Value functions to pass-by-value
2017-02-09 23:28:11 -05:00
Calvin Rose 0557c8b2a6 Consolidate files
* Move GC struct into VM for easier use.
* Put all data structures into one file
2017-02-09 18:52:19 -05:00
Calvin Rose 3d7e574e05 Fix some memory leaks and buffer overrun bugs after profiling
debugRepl with valgrind.
2017-02-09 15:58:19 -05:00
Calvin Rose a80dd4bff3 First commit. 2017-02-09 15:02:59 -05:00