Calvin Rose
7f1b5d4d70
Merge core.janet into boot.janet
...
This simplifies the build machinery a bit.
core.janet is never actually included in the final
binary, it is just used to generate an image file.
2019-03-22 18:34:50 -04:00
Calvin Rose
25aa7a26c5
Add experimental meson build.
...
Should help with IDE integration.
2019-03-22 18:07:10 -04:00
Calvin Rose
cb2caecbb3
Add janetconf.h for configuring builds.
...
Rather than edit the Makefile or the janet.h header yourself, use
janetconf.h to configure builds. This has the benefit of making it
easier to configure janet in a persitent but easy way.
2019-03-22 14:33:30 -04:00
Calvin Rose
95e54c66b6
Use one tag type true and false
...
We moved the literals true and false into one tag
type, so we an extra tag for raw pointer types
(light userdata). These can be used from the C API via
janet_wrap_pointer and janet_unwrap_pointer.
2019-03-13 14:50:25 -04:00
Calvin Rose
8d37e544ab
Fix BSD builds.
...
Try to silence some more undefined C warnings
with -fsanitize=undefined.
2019-03-04 12:16:49 -05:00
Calvin Rose
a4cc23971f
Only use -rdyanmic at link time
...
Before, we were using -rdynamic as a compiler flag, but
it is only needed at link time. This also gets rid of some
annoying warnings in clang.
2019-03-03 18:55:10 -05:00
Calvin Rose
6158ec0ce5
Add -undefined dynamic_lookup on mac.
2019-03-03 15:18:17 -05:00
Calvin Rose
172261b89f
Add a test-install target to the Makefile
...
This target will be used to check if an installation
of Janet is on the PATH, if native modules can be built
and used via the cook module, etc.
2019-03-03 14:48:17 -05:00
Calvin Rose
92a5567b4a
Remove some makefile crust from older scripts.
2019-02-24 14:25:04 -05:00
Calvin Rose
0823eb7327
Change order of directory creation.
2019-02-21 11:50:48 -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
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
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
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