Calvin Rose
c28df14e6b
Prepare for 1.26.0 release
2023-01-07 15:08:40 -06:00
Calvin Rose
b73855b193
Merge branch 'master' of github.com:janet-lang/janet
2023-01-07 15:05:16 -06:00
Calvin Rose
2093ab2baa
Update copyrights.
2023-01-07 15:04:56 -06:00
Calvin Rose
a0f40042cb
Update copyright year.
2023-01-07 15:03:35 -06:00
Calvin Rose
0a8eb9e3ba
Merge pull request #1057 from sogaiu/update-tests-for-meson
...
Add test files to meson suite 11 - 14
2023-01-04 04:13:18 -06:00
sogaiu
70e0c6f9ef
Add test files to meson suite 11 - 14
2023-01-04 12:59:26 +09:00
Calvin Rose
a8a78d4525
Merge pull request #1052 from dressupgeekout/cpu_count_reduced_os
...
(os/cpu-count) should not be defined at all with JANET_REDUCED_OS
2022-12-16 11:11:30 -06:00
Calvin Rose
57e6ee963d
Merge pull request #1046 from dressupgeekout/charlotte_sort_doc
...
Explicitly mention that `sort-by` sorts a list in place.
2022-12-16 11:11:07 -06:00
Calvin Rose
ce6bfb8420
Merge pull request #1049 from harryvederci/patch-1
...
Improve documentation for the `all` function.
2022-12-16 09:51:59 -06:00
Calvin Rose
f0672bdc59
Merge pull request #1051 from sogaiu/math-abs-vs-fabs-issue
...
Tweak math/abs to improve doc result
2022-12-16 09:51:43 -06:00
Charlotte Koch
23de953fbd
(os/cpu-count) should not be defined at all with JANET_REDUCED_OS
2022-12-15 20:16:43 -08:00
Calvin Rose
03c496bdd8
Update changelog
2022-12-15 21:38:36 -06:00
Calvin Rose
d5ee6cf521
Add malloc and free to ffi.
...
Very "unsafe", but a good tool of last resort. In most cases
a buffer is preferable, but the lifetime can be a bit unclear.
This allows very granular control over memory.
2022-12-15 21:35:44 -06:00
sogaiu
fb7981e053
Tweak math/abs to improve doc result
2022-12-11 00:09:50 +09:00
harryvederci
846123ecab
Improve documentation for the all function.
2022-12-09 11:16:42 +00:00
Calvin Rose
373cb444fe
Merge branch 'master' of github.com:janet-lang/janet
2022-12-04 11:08:28 -06:00
Calvin Rose
90f212df92
Add length method ffi/jitfn abstract values.
2022-12-04 11:08:17 -06:00
Calvin Rose
12286e4246
Add length method ffi/jitfn abstract values.
2022-12-04 10:27:28 -06:00
Calvin Rose
aa60c1f36a
Add ffi jit example.
2022-12-03 17:52:23 -06:00
Calvin Rose
c731f01067
Address windows compilation warning.
2022-12-03 12:10:22 -06:00
Calvin Rose
6c9c1cdb30
MAP_ANON(YMOUS) not strictly needed.
2022-12-03 11:45:33 -06:00
Calvin Rose
9ba2b40e87
Add MAP_ANON instead of MAP_ANONYMOUS for mac
2022-12-03 11:31:04 -06:00
Calvin Rose
7a3d055012
Add ffi/jitfn for JIT compilation.
...
Convert a byte sequence of machine code to an
an executable pointer that can be used with ffi/call.
2022-12-03 11:26:23 -06:00
Calvin Rose
0824f45e29
Format compile.c
2022-11-27 10:15:01 -06:00
Charlotte Koch
4debe3446c
Explicitly mention that sort-by sorts a list in place.
2022-11-20 20:51:49 -08:00
Calvin Rose
07fe9bcdf6
Update state header to include pthread
2022-11-11 11:48:50 -06:00
Calvin Rose
6a557a73f5
Simplify eval.
...
Also add more conventional handling of nil to the `compile` function.
2022-11-11 11:25:06 -06:00
Calvin Rose
8d1cfe0c56
Simplify eval-string implementation.
2022-11-11 11:15:53 -06:00
Calvin Rose
a3a42eebea
Create pthread threads with detached attribute.
...
Rather than calling pthread_detach on a default thread.
2022-11-11 11:01:59 -06:00
Calvin Rose
76be8006a4
Add channel marshalling.
2022-11-10 16:32:54 -06:00
Calvin Rose
bfcfd58259
Update for TCC to include stdatomic.h
2022-11-09 07:55:21 -06:00
Calvin Rose
914a4360e7
Indicate version bump since header file changed.
2022-11-05 16:38:52 -05:00
Calvin Rose
8c31874eeb
Remove unused assert.h
2022-11-05 11:44:14 -05:00
Calvin Rose
ef7afeb2ea
Add 64 bit integer support to printf and other formatting functions.
2022-11-05 11:33:19 -05:00
Calvin Rose
c8974fffbe
Fix docstring.
2022-11-04 11:23:08 -05:00
Calvin Rose
b75fb8dc9e
Add :@all: to module/expand-path
...
Allow more easily importing modules from custom directories
without jumping through too many hoops. Technically, this was
possible before but required circumventing the built-in module/paths
and was just a hassle.
Also add entries to module/path (and module/add-path) to allow code
like the following.
(setdyn :my-libs "/home/me/janet-stuff/")
(import @my-libs/toolbox)
Intended for things like test harnesses where code might not
be installed to the usual directories.
2022-11-04 11:15:48 -05:00
Calvin Rose
57356781a9
Fix typo.
2022-10-30 13:36:13 -05:00
Calvin Rose
e43eab5fd6
Fix panicf call.
2022-10-30 09:57:40 -05:00
Calvin Rose
894cd0e022
Prepare for 1.25.1 release.
2022-10-29 11:58:29 -05:00
Calvin Rose
db2c63fffc
Update CHANGELOG.md
2022-10-24 20:32:02 -05:00
Calvin Rose
60e0f32f1a
Fix os/open with :rw permissions on posix.
2022-10-24 19:39:58 -05:00
Calvin Rose
e731996a68
Allow overriding JANETCONF_HEADER in Makefile.
...
This allows a configuration workflow that is a bit simpler than before
and doesn't requiring applying patches. Instead, add a config.mk to
source dir with JANETCONF_HEADER=myconfig.h and compile as usual.
The patching workflow will of course still work exactly as before.
2022-10-24 09:49:51 -05:00
Calvin Rose
2f69cd4209
Add easier option for adding config.mk in root directory.
2022-10-23 13:11:07 -05:00
Calvin Rose
fd59de25c5
Add memcmp to the core. Useful in binary protocol implementations.
2022-10-18 11:54:07 -05:00
Calvin Rose
af12c3d41a
Typo fixes.
2022-10-10 18:38:24 -05:00
Calvin Rose
54b52bbeb5
Prepare for 1.25.0 release.
2022-10-10 18:24:48 -05:00
Calvin Rose
1174c68d9a
Update CHANGELOG.md
2022-10-10 18:23:15 -05:00
Calvin Rose
448ea7167f
Add CLOEXEC when calling accept on Linux.
...
Prevents leakage of file descriptors to subprocesses.
The symptom of the above issue is sockets that don't seem to close
until a subprocess completes.
2022-10-10 18:06:31 -05:00
Calvin Rose
6b27008c99
Fix os/date with nil argument.
2022-10-10 15:24:28 -05:00
Calvin Rose
725c785882
Formatting.
2022-10-10 14:24:03 -05:00
Calvin Rose
ab068cff67
Remove WNOWAIT code on linux.
...
Would cause os/proc-wait to block in some circumstances.
2022-10-10 14:23:17 -05:00
bakpakin
9dc03adfda
Fix pass by reference in windows FFI to accomodate stack shift.
2022-09-22 10:58:16 -05:00
bakpakin
49f9e4eddf
Fix ifdef in capi.c for janet_getuinteger64 and janet_getinteger64
2022-09-20 15:42:20 -05:00
bakpakin
43c47ac44c
Address #1037 - move stack hack after arg writing logic to avoid
...
clobber.
2022-09-20 15:37:20 -05:00
Calvin Rose
1cebe64664
Add some soft test cases for #1037 .
2022-09-20 10:01:12 -05:00
Calvin Rose
f33c381043
Improve sysv64 classify algorithm.
2022-09-20 09:45:17 -05:00
Calvin Rose
3479841c77
Address #1034 - add handling for 8-16 byte structs in FFI.
2022-09-20 09:28:46 -05:00
Calvin Rose
6a899968a9
Allow passing user signals to (signal) as keywords.
2022-09-17 21:18:07 -05:00
Calvin Rose
bb8405a36e
Merge pull request #1029 from locriacyber/patch-0
...
Fix documentation for ev/go, ev/spawn
2022-09-16 07:32:25 -05:00
bakpakin
c7bc711f63
Add windows FFI example test case for void functions with double
...
argument.
2022-09-15 13:58:54 -05:00
bakpakin
e326071c35
Fix void returns in windows FFI - address #1025
2022-09-15 13:51:11 -05:00
Locria Cyber
ad6a669381
Add doc for ev/go
...
Document that you can pass a function instead of a fiber to ev/go
2022-09-14 00:17:53 +00:00
Locria Cyber
e4c9dafc9a
Fix typo in ev/spawn doc
2022-09-13 23:49:42 +00:00
Calvin Rose
dfc0aefd87
Merge pull request #1028 from autumnull/master
...
Made peg 'not' and 'if-not' drop their captures on success
2022-09-13 15:20:10 -05:00
Calvin Rose
356b39c6f5
Add test case for #1027
2022-09-12 19:00:59 -05:00
Calvin Rose
8da7bb6b68
Fix peg/replace-all and family - Fix #1027
2022-09-12 18:58:48 -05:00
Autumn!
9341081a4d
Made peg 'not' and 'if-not' drop their captures on success
2022-09-12 23:07:56 +01:00
Calvin Rose
324a086eb4
Merge pull request #1023 from ScriptDevil/set-manpath
...
Set JANET_MANPATH environment variable while installing.
2022-09-10 09:55:01 -05:00
Ashok Gautham
ed595f52c2
Set JANET_MANPATH environment variable while installing.
...
JPM on windows currently installs its manpage to C:\ directly because this isn't set when installing Janet through the MSI installer
2022-09-09 13:24:36 +05:30
Calvin Rose
64ad0023bb
Merge pull request #1022 from autumnull/master
...
Removed unnecessary backslashes from documentation
2022-09-08 08:52:55 -05:00
Autumn!
fe5f661d15
Removed unnecessary backslashes from documentation
2022-09-08 13:21:17 +01:00
Calvin Rose
ff26e3a8ba
Remove end of string check that is now redudant.
...
The addition of some code to avoid valgrind warnings made this code
redundant.
2022-09-05 20:13:15 -05:00
Calvin Rose
14657a762c
Fix peg RULE_SET op code when at tail of string in some cases.
2022-09-05 14:11:03 -05:00
Calvin Rose
4754fa3902
Fix issue #1021 - bad format specifiers in run.c
2022-09-03 14:03:51 -05:00
Calvin Rose
f302f87337
Merge pull request #1019 from Techcable/fix/inttypes-overflow
...
Signed integer overflow is undefined behavior in C, avoid it in inttypes.c
2022-08-30 23:23:11 -05:00
Calvin Rose
94dbcde292
Merge pull request #1020 from pepe/comment-typo
...
Fix typo in define comment
2022-08-30 22:57:52 -05:00
Josef Pospíšil
4336a174b1
Fix typo in define comment
2022-08-30 09:21:20 +02:00
Techcable
0adb13ed71
inttypes.c: Avoid signed integer overflow (U.B.)
...
In C, signed arithmetic overflow is undefined behvior
but unsigned arithmetic overflow is twos complement
Unconditionally switch to unsigned arithmetic internally for +, -, *
This will not affect the result thanks to twos complement awesomeness.
I don't think this will be an issue in these functions,
but it has a history of causing bugs.....
2022-08-29 18:38:51 -07:00
Calvin Rose
03ba1f7021
Update CHANGELOG and version numbers.
2022-08-26 13:15:30 -05:00
Calvin Rose
1f7f20788c
Add line loop example for awk or sed like processing.
2022-08-26 12:29:23 -05:00
Calvin Rose
c59dd29190
Add stress test for marshalling to examples.
2022-08-26 12:27:53 -05:00
Calvin Rose
99f63a41a3
Improve pointer hashing to avoid hash collisions.
2022-08-26 12:18:10 -05:00
Calvin Rose
a575f5df36
Add option to marshal values without cycle detection.
2022-08-26 11:20:02 -05:00
Calvin Rose
0817e627ee
Prepare for 1.24.1 release.
2022-08-24 13:23:53 -05:00
Calvin Rose
14d90239a7
Merge branch 'master' of github.com:janet-lang/janet
2022-08-24 11:35:37 -05:00
Calvin Rose
f5d11dc656
Address #1014 improve parse errors when bad delimiters are found.
...
Reuse some existing logic for eof errors.
2022-08-24 11:34:59 -05:00
Calvin Rose
6dcf5bf077
Merge pull request #1012 from Techcable/doc/clarify-flag-E
...
Clarify the documentation of janet -E flag
2022-08-21 13:45:17 -05:00
Calvin Rose
ac2082e9b3
Allow adding name to short-fns.
...
When short-fn is used in a macro, it can be useful to
give the function a nicer name then a raw pointer.
2022-08-18 14:33:59 -05:00
Techcable
dbac495bee
Clarify the documentation of janet -E flag
...
This confused me, despite having a fair deal of janet experience.
2022-08-18 12:16:14 -07:00
Calvin Rose
fe5ccb163e
Merge branch 'master' of github.com:janet-lang/janet
2022-08-16 12:38:59 -05:00
Calvin Rose
1aea5ee007
Remove stack inversion code for sysv64 FFI.
2022-08-16 12:38:44 -05:00
Calvin Rose
13cd9f8067
Remove stack inversion code for sysv64 FFI.
2022-08-16 12:20:38 -05:00
bakpakin
34496ecaf0
Prepare for 1.24.0 release.
2022-08-14 20:20:09 -05:00
bakpakin
c043b1d949
Add win32 ffi example.
2022-08-14 15:40:09 -05:00
bakpakin
9a6d2a7b32
Fix FFI for reference return values and stack parameter passing.
2022-08-14 15:20:30 -05:00
bakpakin
f8a9efa8e4
Allow binding pre-loaded symbols in windows FFI.
...
Mimic the posix RTLD_NOW setting for dlopen by iterating
opened DLLs to look for symbols.
2022-08-14 13:26:13 -05:00
Calvin Rose
5b2169e0d1
Fix docstring.
2022-08-02 14:58:32 -05:00
Calvin Rose
2c927ea768
Add testcase for issue #1005
2022-08-02 12:34:24 -05:00
Calvin Rose
f4bbcdcbc8
Get rid of disabled tracing. #1005
2022-08-02 12:19:22 -05:00
Calvin Rose
79c375b1af
Address #1005 - Fix janet_call stack clobbering on dirty stack.
2022-08-02 12:13:56 -05:00
Calvin Rose
f443a3b3a1
Remove type_array option to meson_min build
2022-07-26 14:27:22 -05:00
Calvin Rose
684d2d63f4
Emphasize the ldconfig error is expected.
2022-07-20 11:19:09 -05:00
Calvin Rose
1900d8f843
Fix build warnings on Linux GCC version 12.1.0 x64
2022-07-20 08:04:03 -05:00
Calvin Rose
3c2af95d21
Update CHANGELOG.md
2022-07-19 20:05:21 -05:00
Calvin Rose
b35414ea0f
Merge branch 'master' of github.com:janet-lang/janet
2022-07-19 20:04:44 -05:00
Calvin Rose
fb5b056f7b
Address #1001 - don't process names passed to dlopen.
2022-07-19 20:04:17 -05:00
bakpakin
7248c1dfdb
Give up if ln fail.
2022-07-09 19:10:25 -05:00
bakpakin
4c7ea9e893
Merge branch 'master' of github.com:janet-lang/janet
2022-07-09 11:44:20 -05:00
bakpakin
c7801ce277
Address #997 - clang undefined behavior warning.
2022-07-09 11:43:51 -05:00
Calvin Rose
f741a8e3ff
Merge pull request #998 from autumnull/master
...
stop doc-format detecting other modes within code blocks
2022-07-09 11:40:51 -05:00
bakpakin
6a92e8b609
Update CHANGELOG and make tweaks to win32 shell
2022-07-09 11:39:06 -05:00
bakpakin
9da91a8217
Update shell.c to have smart behavior on windows.
2022-07-09 11:23:02 -05:00
bakpakin
69853c8e5c
Merge branch 'master' of github.com:janet-lang/janet
2022-07-08 09:49:56 -05:00
Autumn!
1f41b6c138
doc-format no longer detects other modes within code blocks
2022-07-07 14:41:46 +01:00
Calvin Rose
e001efa9fd
Fix #996 - linking command works on busybox.
2022-07-04 16:48:07 -05:00
Calvin Rose
435e64d4cf
Allow shorthand for setting task-id on new threads with flag.
...
Avoids the need to wrap function bodies in closures in many cases.
2022-07-03 12:08:21 -05:00
Calvin Rose
f296c8f5fb
Merge branch 'master' of github.com:janet-lang/janet
2022-07-02 21:11:55 -05:00
Calvin Rose
8d0e6ed32f
Fix function handlers for :out and :err.
...
They were not properly handled for formatting functions.
2022-07-02 21:11:05 -05:00
Calvin Rose
b6a36afffe
Merge pull request #994 from shassard/master
...
Use relative path for include/janet.h symlink
2022-07-02 12:30:39 -05:00
Stephen Hassard
e422abc269
Use relative path for include/janet.h symlink
...
When using make to build an rpm, the current symlink is
created with an absolute path to the buildroot as causes
the make install target to fail with:
error: Symlink points to BuildRoot: /usr/include/janet.h -> /home/stephen/rpmbuild/BUILDROOT/janet-1.23.0-3.x86_64/usr/include/janet/janet.h
We can create the link relatively which makes this more
portable, where:
ln -sf -t '/home/stephen/rpmbuild/BUILDROOT/janet-1.23.0-3.x86_64/usr/include' janet.h janet/janet.h
Resulting in the following symlink:
ls -la BUILDROOT/usr/include/janet.h
lrwxrwxrwx. 1 stephen stephen 13 Jul 2 08:17 BUILDROOT/usr/include/janet.h -> janet/janet.h
This symlink can then be properly packaged without path
issues.
Signed-off-by: Stephen Hassard <steve@hassard.net >
2022-07-02 08:52:17 -07:00
Calvin Rose
221d71d07b
Merge pull request #993 from pepe/test-tabseq
...
Add basic test for tabseq
2022-07-02 09:30:59 -05:00
Calvin Rose
9f35f0837e
Merge pull request #991 from pepe/master
...
Trace function to the stderr
2022-07-02 09:29:18 -05:00
Josef Pospíšil
515891b035
Add basic test for tabseq
2022-07-02 07:43:28 +02:00
Josef Pospíšil
94a506876f
Trace function to the stderr
2022-07-01 12:23:25 +02:00
Calvin Rose
9bde57854a
Add tabseq macro.
2022-06-28 22:51:41 -05:00
Calvin Rose
f456369941
Add support for a dyn :task-id
...
Adds extra information to default information from supervisor
channels. For threaded channels as supervisors, we don't get
the source fiber so identifying the source of messages was not
possible. This change allows better multithreading with supervisors.
2022-06-25 18:51:21 -05:00
Calvin Rose
8f0a1ffe5d
Github showing old git attributes.
2022-06-20 11:23:21 -05:00
Calvin Rose
e4bafc621a
Remove ssize_t usage.
2022-06-20 11:09:41 -05:00
Calvin Rose
cfa39ab3b0
Prepare for 1.23.0 release.
2022-06-20 10:49:25 -05:00
Calvin Rose
47e91bfd89
Fix docstring.
2022-06-19 18:52:37 -05:00
Calvin Rose
eecc388ebd
Add support for 0-element arrays in FFI.
...
Allows for flexible array member construct mapping.
2022-06-19 16:29:55 -05:00
Calvin Rose
0a15a5ee56
Prepare for 1.23.0 release.
2022-06-19 15:07:35 -05:00
Calvin Rose
cfaae47cea
Fix trailing :pack-all or :pack in struct.
2022-06-19 13:06:19 -05:00
Calvin Rose
c1a0352592
Fix unset field in JanetFFIType.
2022-06-19 12:58:45 -05:00
Calvin Rose
965f45aa3f
Update changelog to say FFI initially only available on non-windows
...
platforms.
2022-06-19 12:42:44 -05:00
Calvin Rose
6ea27fe836
Error message sounded a bit unsure.
2022-06-19 10:29:42 -05:00
Calvin Rose
0dccc22b38
Improve error messages when using bad metadata
...
Print metadata value as well as binding name.
2022-06-19 10:28:18 -05:00
Calvin Rose
cbe833962b
Remove bad suite0009 test. Close #871
...
The issue is that there was no synchronization on writes.
The stability of the test relied on the fact that the server
would read in an entire message in one call to ev/read, which
would _almost_ always happen since the messages are so small.
2022-06-19 10:01:10 -05:00
Calvin Rose
b5720f6f10
On suite0009 errors for localname/peername, add info
...
Tag when the issue in the server or in the client. On windows, sometimes
these seemed to get swapped for strange reason.
2022-06-19 09:31:43 -05:00
Calvin Rose
56b4e0b0ec
Update CONTRIBUTING.md
2022-06-19 09:18:59 -05:00
Calvin Rose
e316ccb1e0
Use _tzset() on windows before localtime_s
2022-06-19 08:49:54 -05:00
Calvin Rose
a6f93efd39
Support for array types in ffi.
2022-06-19 08:03:32 -05:00
Calvin Rose
20511cf608
Cast NULL pointer to nil in return in ffi.
2022-06-18 16:53:01 -05:00
Calvin Rose
1a1dd39367
Use __builtin_alloca if no other option.
2022-06-18 13:54:47 -05:00
Calvin Rose
589981bdcb
BSD systems put alloca in the stdlib
2022-06-18 12:18:06 -05:00
Calvin Rose
89546776b2
alloca
2022-06-18 12:15:16 -05:00
Calvin Rose
f0d7b3cd12
No alloca.h?
2022-06-18 11:19:14 -05:00
Calvin Rose
e37be627e0
Allow loading current process on windows as well.
2022-06-18 10:31:00 -05:00
Calvin Rose
d803561582
Fix ffi/defbind for non-lazy bindings.
...
Add testing to bind to symbols in current binary.
2022-06-18 10:14:42 -05:00
Calvin Rose
a1aab4008f
Update FFI example.
2022-06-18 10:06:39 -05:00
Calvin Rose
a1172529bf
Fix named arguments with optional args.
2022-06-18 09:46:28 -05:00
Calvin Rose
1d905bf07f
SRWLock is the size of a void pointer.
2022-06-17 17:49:02 -05:00
Calvin Rose
eed678a14b
Include windows.h for windows builds
2022-06-17 17:41:50 -05:00
Calvin Rose
b1bdffbc34
Don't inlcude pthread on windows.
2022-06-17 17:35:58 -05:00
Calvin Rose
cff718f37d
Add suite0012 stub with delay test.
2022-06-17 17:27:42 -05:00
Calvin Rose
40e9430278
Move examples to example directory.
2022-06-17 17:24:52 -05:00
Calvin Rose
62fc55fc74
Remove pthread.h from janet.h
...
Should make janet a bit easier to use. Also changes the
header to not expose the size of native mutexes and rwlocks, except
with janet_os_mutex_size and janet_os_rwlock_size.
2022-06-17 17:13:58 -05:00
Calvin Rose
80729353c8
Add :lazy option for ffi/context for jpm quickbin usage.
2022-06-13 21:26:03 -05:00
Calvin Rose
105ba5e124
Add ffi/context and ffi/defbind helpers.
...
Wrap the very bare-bones FFI library to be a bit more
useful out of the box.
2022-06-12 18:48:47 -05:00
Calvin Rose
ad1b50d1f5
Update dofile function signature.
2022-06-12 18:03:23 -05:00
Calvin Rose
1905437abe
Merge branch 'master' into ffi
2022-06-12 13:59:37 -05:00
Calvin Rose
87fc339c45
Add named arguments with the &named symbol.
...
Similar to &keys, but more ergonomic.
2022-06-12 13:53:18 -05:00
Calvin Rose
3af7d61d3e
Update gtk example.
2022-06-12 12:51:06 -05:00
Calvin Rose
a45ef7a856
Update CHANGELOG to reflect new function renames.
2022-06-12 10:17:25 -05:00
Calvin Rose
299998055d
Update meson min build to turn off ffi.
2022-06-12 10:15:36 -05:00
Calvin Rose
c9586d39ed
Add a :none calling convention.
...
The ffi module is useful even when true ffi calls
are not yet implemented. This lets the ffi be enabled
on any architecture, albeit with a degraded feature set
where calling conventions are not implemented.
2022-06-12 10:12:45 -05:00
Calvin Rose
2e9f67f4e4
Change all "native-*" to ffi/. Move new dll loading funcs.
...
native-close, raw-native and native-lookup have become
ffi/close, ffi/native, and ffi/lookup instead.
The new ffi module will be useful for any architecture even if we don't
support making calls to certain functions. We can simple add a
do-nothing calling convetion that panics on call. ffi/read and ffi/write
are useful in their own right.
2022-06-12 10:02:02 -05:00
Calvin Rose
e318170fea
Begin working on windows calling convetion.
...
Also remove inline assembly for making sysv64 calls.
Instead, use crafted function signatures to set all needed registers.
2022-06-12 09:16:10 -05:00
Calvin Rose
73c4289792
Fix define check.
2022-06-11 21:50:34 -05:00
Calvin Rose
ea45d7ee47
Convert to one big blob of assembly for sysv cc.
...
Also begin working on win64 calling convention.
2022-06-11 21:43:35 -05:00
Calvin Rose
6d970725e7
Update boot.janet for typos.
2022-06-11 21:19:42 -05:00
Calvin Rose
458c2c6d88
Make calling convention optional for trampoline
2022-06-11 15:47:51 -05:00
Calvin Rose
0cc53a8964
Get a GTK example working. Good proof of concept.
2022-06-11 14:47:35 -05:00
Calvin Rose
0bc96304a9
Add r32 and r64 aliases for real numbers in ffi types.
2022-06-11 09:40:37 -05:00
Calvin Rose
c75b088ff8
Format boot.janet with janet-format.
2022-06-10 19:13:23 -05:00
Calvin Rose
181f0341f5
Add :pack and :pack-all keywords to allow for struct packing.
...
Syntax may need some work but covers both fully packed structs
as well as packing of individual members.
2022-06-10 18:53:22 -05:00
Calvin Rose
33bb08d53b
Merge branch 'master' into ffi
2022-06-10 16:24:55 -05:00
Calvin Rose
6d188f6e44
Improve .ppasm function.
2022-06-10 16:24:40 -05:00
Calvin Rose
c3648331f1
Expose an easy to use debugger function.
2022-06-10 15:39:29 -05:00
Calvin Rose
a5b66029d3
Expose the built-in debugger in more places.
2022-06-10 15:23:15 -05:00
Calvin Rose
49bfe80191
Make sure void return types work as expected.
2022-06-10 12:33:01 -05:00
Calvin Rose
a5def77bfe
Add support for struct return values.
2022-06-10 12:25:08 -05:00
Calvin Rose
9ecb5b4791
Add native-read function as inverse to native-write.
2022-06-10 09:38:52 -05:00
Calvin Rose
1cc48a370a
Add native-write, which will write structs to buffers.
...
Useful for testing as well as useful in its own right. Begs
for an inverse, native-read which would convert byte data
to native structs.
2022-06-10 08:46:20 -05:00
Calvin Rose
f1ec8d1e11
Beginning of struct support.
...
TODO:
- struct return values
- support for unions in signatures
- more testing
- complex types
- packed structs
- writing structs to buffers (useful and we have most of the machinery).
2022-06-09 20:27:56 -05:00
Calvin Rose
55c34cd84f
Merge pull request #985 from masukomi/readme_update
...
added make install & install-jpm-git to Readme
2022-06-09 10:02:58 -05:00
masukomi
aca52d1e36
added make install & install-jpm-git to readme
2022-06-08 21:58:55 -04:00
Calvin Rose
6f90df26a5
Alloca included by default on some OS, but not all.
...
Do explcitly include alloca on non-msvc compilers.
2022-06-08 10:01:19 -05:00
Calvin Rose
9d9cb378ff
Don't include alloca.h, not in MSVC.
2022-06-08 09:59:13 -05:00
Calvin Rose
f92aac14aa
Only enable FFI on x86-64, non-windows OSes.
2022-06-08 09:50:31 -05:00
Calvin Rose
3f27d78ab5
Add some FFI testing and more improvements to sysv abi.
...
Add support for integer return and floating point return variants, as
well as arguments on the stack. Start flushing out struct arguments.
Still needed:
- structs (packed and unpacked)
- complex numbers
- long doubles
- MASM alternative for windows (you can technically use sysv abi on
windows)
- more calling conventions.
2022-06-08 09:44:49 -05:00
Calvin Rose
282d1ba22f
Implement sys v abi on x64 partially.
2022-06-06 18:54:17 -05:00
Calvin Rose
94c19575b1
Fix when clib is not pointer type.
2022-06-06 13:37:07 -05:00
Calvin Rose
e3e485285b
Prevent double usage of native objects after closing.
2022-06-06 13:36:03 -05:00
Calvin Rose
986e36720e
Update windows builds for raw-natives.
2022-06-06 13:08:12 -05:00
Calvin Rose
74348ab6c2
Fix symbol lookup when symbol isn't found.
2022-06-06 10:53:00 -05:00
Calvin Rose
8d1ad99f42
Add stubs that are precursor to FFI.
...
FFI may be best implemented as an external library
(libffi has incompatible license to Janet) or as code
that takes void * and wraps then into Janet C functions
given a function signature. Either way, we need to some way
to load symbols from arbitrary dynamic libraries.
2022-06-06 10:49:30 -05:00
Calvin Rose
e69bbff195
Update CHANGELOG.md
2022-06-05 17:40:50 -05:00
Calvin Rose
c9f33bbde0
Add rwlocks.
2022-06-05 16:42:18 -05:00
Calvin Rose
9c9f9d4fa6
Add some thread coordination primitives.
...
Due to the nature of event loops, it is a bit difficult to integrate
lock and other primitives such that they don't block fibers on the same
thread.
2022-06-05 15:24:34 -05:00
Calvin Rose
2f64a6b0cb
Add parse-all function as a natural extension to the parse function.
2022-05-28 19:02:17 -05:00
Calvin Rose
dfa78ad3c6
typo
2022-05-28 12:23:28 -05:00
Calvin Rose
677ae46f0c
Fix README links for sourcehut.
2022-05-28 12:22:28 -05:00
Calvin Rose
6ada2a458f
Fixes on bsd for os/cpu-count.
2022-05-28 12:21:44 -05:00
Calvin Rose
8145f3b68d
On linux, available CPUs is more useful information.
2022-05-28 12:19:25 -05:00
Calvin Rose
48289acee6
Add os/cpu-count functionality.
2022-05-28 12:01:23 -05:00
Calvin Rose
e5a989c6f9
Remove multiple outputs with same name for old meson versions.
2022-05-27 21:14:47 -05:00
Calvin Rose
4c56704935
Merge pull request #979 from turrisxyz/Pinned-Dependencies-GitHub
...
chore: Set permissions for GitHub actions
2022-05-27 17:03:54 -05:00
naveen
9cda44f443
chore: Set permissions for GitHub actions
...
Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.
- Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions
https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions
https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs
[Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/ )
Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com >
2022-05-27 00:32:28 +00:00
Calvin Rose
431451bac2
Make install work ok if meson is old.
2022-05-25 22:35:20 -05:00
Calvin Rose
395ca7feea
Fix meson.build for older versions of meson.
2022-05-14 10:27:28 -05:00
bakpakin
e0b7533c39
Add toggle macro.
2022-05-12 15:36:29 -05:00
bakpakin
5b2a402930
Fix version bump.
2022-05-09 10:28:09 -05:00
bakpakin
85129a1873
Prepare for 1.22.0 release.
2022-05-09 10:19:40 -05:00
Calvin Rose
487d333024
Add module/value function to make grabbing bindings out module tables.
2022-05-05 19:24:44 -05:00
Calvin Rose
fe7d35171f
Remove file/popen - address #974
2022-05-05 18:33:34 -05:00
Calvin Rose
b3aed13567
Use janet_getnat when non-negative integer needed.
2022-05-05 18:27:29 -05:00
Calvin Rose
a9d4d2bfa3
Merge pull request #976 from rick2600/master
...
Fix #975 - null ptr dereference when a table is created with negative capacity
2022-05-05 08:56:15 -05:00
rick2600
1ff521683f
Fix #975 - null ptr dereference when a table is created with negative capacity
2022-05-05 02:11:43 -03:00
Calvin Rose
0395a03b6b
Merge pull request #973 from rick2600/master
...
fix negative count passed to cfun_array_new_filled
2022-05-02 11:13:20 -05:00
rick2600
7fda7709ff
fix negative count passed to cfun_array_new_filled
2022-05-02 12:57:47 -03:00
Calvin Rose
65a9200cff
Merge pull request #972 from uvtc/patch-2
...
os.c doc formatting typo
2022-04-29 23:04:31 -05:00
John Gabriele
473eec26c1
os.c doc formatting typo
2022-04-29 23:57:37 -04:00
Calvin Rose
9fa945ad93
Don't include captures of last match from to combinator.
2022-04-29 19:21:10 -05:00
Calvin Rose
a895219d2f
Fix #971 - remove to rule optimization
...
For to and thru, we need to restore eveytime through the loop since rules need
run with the right captures on the stack, especially if they have any
sort of backrefs.
2022-04-29 19:15:56 -05:00
bakpakin
427f7c362e
Fix os/execute regression.
2022-04-27 22:59:27 -05:00
Calvin Rose
73f5c41fae
Address #968 Ignore :pipe arguments in os/execute.
...
They are only useful in os/spawn. Also update docstrings.
2022-04-27 20:13:10 -05:00
Calvin Rose
b4ec168401
Address #950 - add defn suggestion on bad def.
...
While generally we are not in the business of making a very chatty
compiler, this is a simple improvement that involves compiling
metadata before the binding, as well as adding a suggestion for `defn`
in case the compiler encounters an unexpected tuple.
2022-04-23 22:27:34 -05:00
Calvin Rose
726d35c766
Update changelog with a few fixes.
2022-04-22 23:13:08 -05:00
Calvin Rose
6db796e10c
Add janet.h (in addition to janet/janet.h) on install.
...
A number of bindings (many of which I have written) include
<janet.h> rather than <janet/janet.h>.
2022-04-22 22:29:12 -05:00
Calvin Rose
c38d9134cd
Merge pull request #967 from uvtc/patch-2
...
boot.janet docstrings (part 3, last part)
2022-04-20 20:53:30 -05:00
John Gabriele
471204b163
boot.janet docstrings (part 3, last part)
...
Added some backticks around code in docstrings to distinguish them from prose.
Also some light editing.
2022-04-20 18:31:06 -04:00
Calvin Rose
7f23bfa66d
Merge pull request #966 from uvtc/patch-2
...
boot.janet docstrings (part 2)
2022-04-19 20:24:32 -05:00
John Gabriele
9287b26042
boot.janet docstrings (part 2)
...
Added some backticks around code in docstrings to distinguish them from prose.
Also some light editing.
2022-04-19 01:55:37 -04:00
Calvin Rose
e22936fbf8
Merge pull request #964 from uvtc/patch-9
...
tuple.c docstrings
2022-04-18 14:07:41 -05:00
Calvin Rose
04ace9fc16
Merge pull request #963 from uvtc/patch-8
...
table.c docstrings
2022-04-18 14:07:26 -05:00
Calvin Rose
8466b333fb
Merge pull request #965 from uvtc/patch-2
...
boot.janet docstrings
2022-04-18 14:07:16 -05:00
John Gabriele
96602612ba
boot.janet
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 22:35:04 -04:00
John Gabriele
690b98bff9
tuple.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 21:26:53 -04:00
John Gabriele
8329131bfe
table.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
Light editing to `table/raw-get`. Is my change there correct? (t --> the key)
2022-04-17 21:21:01 -04:00
Calvin Rose
9986aab326
Merge pull request #960 from uvtc/patch-5
...
math.c
2022-04-17 20:03:25 -05:00
Calvin Rose
0b105bc535
Merge pull request #959 from uvtc/patch-4
...
io.c docstrings
2022-04-17 20:03:11 -05:00
Calvin Rose
51ac9c9506
Merge pull request #961 from uvtc/patch-6
...
os.c docstrings
2022-04-17 20:02:56 -05:00
Calvin Rose
0310176696
Merge pull request #962 from uvtc/patch-7
...
parse.c docstrings
2022-04-17 20:02:26 -05:00
Calvin Rose
84a7a2bc3e
Merge pull request #958 from uvtc/patch-3
...
buffer.c docstrings
2022-04-17 20:01:57 -05:00
Calvin Rose
1e66a7e555
Merge pull request #957 from uvtc/patch-2
...
array.c docstrings
2022-04-17 20:01:31 -05:00
John Gabriele
2bffb9d682
parse.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 20:53:36 -04:00
John Gabriele
811125a760
os.c docstrings
...
Some code backticks in docstrings where useful. Also some light editing of punctuation, etc.
2022-04-17 20:42:32 -04:00
John Gabriele
0dd91082a1
math.c
...
Fix typo, and backticks around one word.
2022-04-17 20:15:41 -04:00
John Gabriele
c80587868e
io.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 20:07:05 -04:00
John Gabriele
8c52dc86c7
buffer.c docstrings
...
Added backticks around code in docstrings to distinguish from prose.
2022-04-17 19:49:29 -04:00
John Gabriele
be24592bc3
array.c docstrings
...
Added some backticks around code in docstrings to distinguish from prose.
2022-04-17 19:35:57 -04:00
Calvin Rose
0d1a5c621d
Merge pull request #955 from uvtc/patch-2
...
string.c docstrings
2022-04-17 12:33:52 -05:00
Calvin Rose
8a3eff3b65
Merge pull request #956 from uvtc/patch-3
...
Update .gitattributes
2022-04-17 12:33:37 -05:00
John Gabriele
b1050b884d
Update .gitattributes
...
Github now supports Janet.
2022-04-17 12:17:54 -04:00
John Gabriele
181d883a1d
string.c docstrings
...
Add backticks around code values to distinguish them from prose.
2022-04-17 12:08:26 -04:00
Calvin Rose
e01b65fd3d
Fix some printing issues for docs.
2022-04-16 11:40:33 -05:00
Calvin Rose
bbd74b5ae2
Merge pull request #952 from rick2600/master
...
#951 - fix unchecked count in cfun_buffer_new_filled
2022-04-15 16:43:11 -05:00
rick2600
d5a5c49357
#951 - fix unchecked count in cfun_buffer_new_filled
2022-04-14 16:20:04 -03:00
Calvin Rose
a964b164a6
Merge branch 'master' of github.com:janet-lang/janet
2022-04-13 17:20:49 -05:00
Calvin Rose
1aac0489d7
Add a number of defs for used dynamic bindings.
2022-04-13 17:20:33 -05:00
Calvin Rose
e474755887
Merge pull request #949 from sogaiu/syspath-defdyn
...
Use defdyn for syspath in boot.janet
2022-04-13 15:52:14 -05:00
sogaiu
bf9a60f70d
Use defdyn for syspath in boot.janet
2022-04-13 19:39:41 +09:00
Calvin Rose
a2ba0913d3
Merge pull request #943 from cellularmitosis/make
...
Produce dylibs on macOS
2022-04-05 20:18:17 -05:00
Calvin Rose
f74df41fff
Merge branch 'master' into make
2022-04-05 20:18:12 -05:00
Calvin Rose
2a950e4ce9
Fix patch release - (version info)
2022-04-01 21:59:01 -05:00
Calvin Rose
f05e5f908e
Update SONAME in Makefile.
2022-04-01 21:41:07 -05:00
Jason Pepas
43139b43b1
Produce dylibs on macOS
2022-03-31 00:17:59 -05:00
Calvin Rose
5811b47aad
Merge pull request #942 from Techcable/patch-1
...
Correct version 1.21.1 in meson.build
2022-03-30 18:13:55 -05:00
Techcable
54e3db4d8c
Correct version 1.21.1 in meson.build
...
This causes incorrect version meson compiles (including homebrew)
2022-03-29 23:13:09 -07:00
Calvin Rose
7491421c31
Release patch relase due to bad version bumping.
2022-03-27 11:21:24 -05:00
Calvin Rose
9d0da74347
Merge pull request #937 from cellularmitosis/clock1012
...
Mac clock shim not needed after 10.12
2022-03-23 13:02:03 -05:00
Jason Pepas
e9870b293f
Remove unneeded includes
2022-03-21 21:28:13 -05:00
Jason Pepas
ab910d060b
Move AvailabilityMacros.h import into util.c
2022-03-21 21:23:09 -05:00
Calvin Rose
b60ef68ac6
Prepare for 1.21.0 Release.
2022-03-21 20:30:32 -05:00
Jason Pepas
c9986936ed
Mac clock shim not needed until 10.12
2022-03-21 20:20:20 -05:00
Calvin Rose
d77be46644
Fix master - check last change with stackn
2022-03-21 19:41:06 -05:00
Calvin Rose
3715d7a184
Auto update copyright date.
2022-03-21 18:22:59 -05:00
Calvin Rose
1c96c7163a
Address #926 - enter the event loop from janet_dobytes or
...
janet_dostring.
2022-03-21 18:06:14 -05:00
Calvin Rose
9f733b25db
Merge pull request #935 from jgarte/jgarte-patch-1
...
typo fix
2022-03-21 17:44:01 -05:00
Calvin Rose
1419a33b64
Merge pull request #936 from cellularmitosis/janetapple
...
Refactor __MACH__ to JANET_APPLE
2022-03-21 17:43:45 -05:00
Jason Pepas
f270739f9f
Refactor __MACH__ to JANET_APPLE
2022-03-17 01:20:55 -05:00
jgart
e51a391286
typo fix
2022-03-12 17:54:44 -05:00
Calvin Rose
c815185574
Merge pull request #931 from saikyun/norm-neg
...
normalize zero without branching
2022-03-07 09:18:22 -06:00
Calvin Rose
8045e29a52
Merge pull request #932 from ishehadeh/feature/int-to-bytes
...
Add int/to-bytes: Serialize int/[su]64 to a buffer
2022-03-06 13:11:08 -06:00
Ian Shehadeh
bbb3e16fd1
int/to-bytes: return a buffer instead of a tuple
...
Buffers make more sense for this function because one of their primary
use cases is working with bytes.
The tuple implementation was an array of floats, which is less
performant and ergonomic for common operations. (i.e: bit manipulation)
Buffers also have the advantage they are mutable, meaning the user
can write ints to an existing buffer.
2022-03-05 08:21:53 -05:00
Jona Ekenberg
3cd1657387
normalize zero without branching
2022-03-05 09:58:00 +01:00
Calvin Rose
d7ea122cf7
Fix #928 - Fix hashing of negative 0.
2022-03-04 21:20:20 -06:00
Ian Shehadeh
6aea7c7f70
add int/to-bytes
...
int/to-bytes unpacks the bytes of a 64-bit integer into a tuple.
2022-03-04 08:48:54 -05:00
Calvin Rose
56ba1d9cd3
Formatting cleanup.
2022-02-24 18:07:22 -06:00
Calvin Rose
408b03ae0d
Merge pull request #924 from uvtc/patch-2
...
Update docs for `describe`
2022-02-24 18:04:51 -06:00
Calvin Rose
d94fd746af
Merge pull request #923 from ishehadeh/feature/int64-unwrap
...
add `(int/to-number)`: convert int/s64 and int/u64 to a number
2022-02-24 18:03:48 -06:00
John Gabriele
dbd1316d1e
Update docs for describe
...
closes #524
2022-02-23 00:36:24 -05:00
Ian Shehadeh
75845c0283
int/to-number: restrict input to JANET_INTMAX/MIN
...
Previously int/to-number would fail if the input was outside
the range of an int32.
Because Janet numbers are doubles,
they can safely store larger ints than an int32.
This commit updates int/to-number to restrict the
value to the range of integers a double can hold, instead of an int32.
2022-02-21 12:54:38 -05:00
Ian Shehadeh
88db9751d7
add int/to-number: converts s64 and u64 to numbers
...
(int/to-number value) converts an s64 or u64 to a number.
It restricts the value to the int32 range,
so that `int32?` will always suceeded when called on the result.
2022-02-20 16:16:52 -05:00
Calvin Rose
6f645c4cb7
Update CHANGELOG.md
2022-02-12 11:04:24 -06:00
Calvin Rose
4e31d85349
Address #804 - save and restore module cache when flychecking.
...
Calling flychecking cannot change the module cache.
2022-02-12 10:36:45 -06:00
Calvin Rose
de542a81c0
Merge branch 'master' of github.com:janet-lang/janet
2022-02-11 20:38:10 -06:00
Calvin Rose
461576e7a2
Add defdyn macro to allow docs and checking for dyns.
...
Using keywords for the names of dynamic bindings emphasized their
dynamic nature and how they actually work, but is opaque when it comes
to documentation and error detection. Janet uses early binding for name
resolution by default in most places, dyns should be no different.
The `defdyn` macro allows one to create aliases for keywords that can
have docstrings, be imported and exported, etc. The aliases _must_
follow the usual lisp convention of earmuffs - this is not
restricting since the underlying keyword lookup mechanism is still
completely accessible to users.
Example:
(defdyn *my-dynamic-binding* "Sends the plumbus to the thingamizer when
enabled")
The above creates a normal binding (as created with `def`) for
`*my-dynamic-binding*` that is bound to the keyword
`:my-dynamic-binding`.
There is an optional prefix for defdyns that can be used to avoid name
collisions - *defdyn-prefix*
Example:
(setdyn *defdyn-prefix* "mylib/")
(defdyn *my-dynamic-binding* "Plumbus thingamizer")
(pp *my-dynamic-binding*)
> :mylib/my-dynamic-binding
2022-02-11 20:37:52 -06:00
Calvin Rose
21bd62b1ce
Merge pull request #922 from paulsnar/paulsnar/ev-fix-timeout-pruning
...
ev: Fix timeout pruning logic
2022-02-11 20:07:51 -06:00
paulsnar
838cd1157c
ev: Fix timeout pruning logic
2022-02-11 09:25:23 +02:00
Calvin Rose
2f068b91d8
Mark a fiber as a root fiber during scheduling, not resumption.
...
This is more intuitive and avoids the possibilty of strange code
to resume or cancel a fiber after it was scheduled but before it was
entered for the first time.
2022-02-10 17:40:08 -06:00
Calvin Rose
aba87bf1bd
MSVC unwilling to concatenate strings across preprocessor directives.
2022-02-09 22:36:37 -06:00
Calvin Rose
e64da8ede4
Update CHANGELOG.md
2022-02-09 22:31:27 -06:00
Calvin Rose
a9f38dfce4
Address #920 - fiber cancellation can hang event loop.
...
The main issue was cancellation of fiber using `cancel` rather than
`ev/cancel` could cause issues with the event loop internal ref count.
Since this is almost certainly bad usage (and is not something I want to
encourage or support), we will warn against trying to resume or error
fibers that have already been suspended or scheduled on the event loop.
The distinction between "task" fibers and normal fibers is now kept by a
flag that is set when a fiber is resumed - if it is the outermost fiber
on the stack, it is considered a root fiber. All fibers scheduled with
ev/go or by the event loop are root fibers, and thus cannot be cancelled
or resumed with `cancel` or `resume` - instead, use `ev/cancel` or
`ev/go`.
2022-02-09 22:16:49 -06:00
Calvin Rose
a097537a03
Fix #919 - strange quasiquote behavior.
...
Nested expression in the quasiquote were being compiled with the "hint"
flag passed to the expression compilation, essentially telling the
compiler to put intermediates into the final slot, possibly overwriting
other intermediate values. This fix removes that flags on any recursive
calls to quasiquote.
2022-02-09 20:31:10 -06:00
Calvin Rose
66e0b53cf6
Merge pull request #918 from paulsnar/paulsnar/shell-read-intr
...
Handle interrupts during `read` properly in mainclient
2022-02-04 22:39:22 -06:00
paulsnar
06f2e81dd5
shell: Handle EINTR on long reads
...
Many system I/O operations can fail due to being interrupted by a
signal. In the REPL's case, this poses a problem because in most cases
it's assumed that a read error is not recoverable and is equivalent to
EOF. This, however, is not the case for EINTR, in which case the I/O
should be tried again.
This commit fixes the most egregious violations of this, notably the
line getters, which would otherwise make the REPL exit on any signal,
even if the signal was caught and processed outside the REPL's purview.
2022-02-04 02:31:40 +02:00
Calvin Rose
40ae2e812f
Prepare for 1.20.0 release.
2022-01-27 21:38:07 -06:00
Calvin Rose
06f613e40b
Update signature of :missing-symbol hook.
...
don't take env table as explicit argument - it is already available
as the env table of the fiber.
2022-01-27 21:24:01 -06:00
Calvin Rose
61c8c1e8d2
Merge pull request #914 from pyrmont/feature.missing-symbols
...
Support looking up missing symbols during compilation
2022-01-24 18:16:53 -06:00
Michael Camilleri
ee924ee310
Fix declaration error in switch statement
2022-01-24 11:16:35 +09:00
Michael Camilleri
fad0ce3ced
Move missing symbol lookup to compiler
2022-01-24 11:08:33 +09:00
Michael Camilleri
d396180939
Avoid panicking when calling :missing-symbol lookup function
2022-01-23 17:29:52 +09:00
Calvin Rose
0d089abe67
Update CHANGELOG.md
2022-01-22 19:38:08 -06:00
Michael Camilleri
ed5c1dfc3c
Remove :modules dynamic binding
2022-01-23 01:54:58 +09:00
Calvin Rose
6b949a7375
Merge branch 'master' of github.com:janet-lang/janet
2022-01-21 17:16:29 -06:00
Calvin Rose
3028e2908f
Avoid possible infinite loop in rest destructuring.
2022-01-21 17:16:06 -06:00
Calvin Rose
578803b01f
Merge pull request #915 from AlbertoGP/master
...
Add ppc64 to os/arch
2022-01-21 16:44:59 -06:00
Calvin Rose
46738825c0
Fix formating on master.
2022-01-21 16:44:11 -06:00
Calvin Rose
56357699cb
Merge pull request #913 from ishehadeh/feature/destructuring-rest
...
Support for `& rest` pattern in destructure and match
2022-01-21 16:39:35 -06:00
Alberto González Palomo
fe8e718183
Add ppc64 to os/arch
...
Same as #431 (Add ppc to os/arch) but for the 64-bit version.
This is tested on a Power9 CPU in Little-Endian mode, on Linux.
2022-01-21 23:08:57 +01:00
Michael Camilleri
1eb34989d4
Support looking up missing symbols during compilation
2022-01-21 13:07:11 +09:00
Michael Camilleri
2f3b4c8bfb
Consolidate related tests
2022-01-21 13:02:56 +09:00
Ian Shehadeh
6412768000
Add match documentation for & rest pattern
2022-01-20 09:19:21 -05:00
Ian Shehadeh
82688b9a44
add checks to & _ pattern in match macro
...
This commit adds 2 checks for & rest pattern in the match macro:
- & is followed by exactly 1 item
- & is followed by a symbol
2022-01-20 09:16:02 -05:00
Ian Shehadeh
651e12cfe4
test nested '& destructure and empty rest array
...
This commit adds two new tests for destructure patterns with '&:
- Test that the rest array can be empty
- Test that & can be nested
2022-01-20 08:54:56 -05:00
Ian Shehadeh
4118d581af
error if '& is followed by 2+ items in destructure
...
The current destructure pattern ends when '& is encountered.
This commit adds an error if it is followed by more than
a symbol to bind the array to.
Although its not critical since the extra items can be ignored,
they're a sign of some kind of mistake so its best to complain.
2022-01-20 08:52:37 -05:00
Ian Shehadeh
62608bec03
use janet_checktype over janet_type and ==
...
In destructure janet_type(_) == JANET_SYMBOL was used to check if a
value was a symbol.
This commit replaces that with the janet_checktype function,
because that function is used for the same purpose in other places.
2022-01-20 08:12:05 -05:00
Ian Shehadeh
71cffc973d
add test: destructure with a nested tuple before &
...
This test ensures rest patterns work when
preceded by a more complicated pattern.
2022-01-19 14:01:28 -05:00
Ian Shehadeh
a8e49d084b
add checks for & _ destructuring pattern
...
This commit adds three checks to ensure & rest patterns are valid:
1. When checking for '& ensure the value is a symbol before unwrapping
2. Make sure '& is followed by a value
3. Make sure the value following '& is a symbol
2022-01-19 13:55:05 -05:00
Ian Shehadeh
db631097b1
add support for & _ to match macro
...
This commit adds support for using & _ syntax to bind the remaining
values in an array in the match macro.
The commit also adds a few tests for the new syntax in suite0008
2022-01-19 13:29:34 -05:00
Ian Shehadeh
0d31674166
remove debug print in test suite0001
2022-01-19 12:49:02 -05:00
Ian Shehadeh
cb5af974a4
POC "rest" pattern in destructuring
...
Add support for using [& rest] to match the remaining values
in an array or tuple when destructuring.
the rest pattern is implemented by pushing remaining values in the
rhs to the stack once & is found on the lhs.
Then tuple is called and the result is assigned
to the next symbol on the lhs.
This commit DOES NOT implement handling for malformed patterns.
2022-01-15 14:51:44 -05:00
Calvin Rose
f2f421a0a2
Merge pull request #910 from pyrmont/bugfix.redefinable-macros
...
Fix redefinable macros
2022-01-14 07:45:54 -06:00
Michael Camilleri
413c46e2ee
Fix redefinable macros
2022-01-14 17:15:42 +09:00
Calvin Rose
3b412d51f0
Merge pull request #909 from ishehadeh/master
...
correct stack frame table keys in debug/stack doc
2022-01-09 12:01:05 -06:00
Ian Shehadeh
4931e2aee2
correct stack frame table keys in debug/stack doc
...
doc for debug/stack listed :column and :line as keys in the frame table.
But doframe actually sets :source-column and :source-line.
2022-01-08 16:25:43 -05:00
Calvin Rose
ffadf673cf
Merge branch 'master' of github.com:janet-lang/janet
2022-01-08 11:27:48 -06:00
Calvin Rose
5b5a7e5a24
Make top level vars reuse ref cell when redefined at the top level.
...
This improves the repl experience while not messing with existing code
very much, if at all.
2022-01-08 11:27:08 -06:00
Calvin Rose
ab53208f47
Merge pull request #908 from ishehadeh/master
...
Windows: Fix `ev/read` hanging when called on stream from `os/open`
2022-01-08 11:26:48 -06:00
Calvin Rose
7c407705e8
Merge pull request #907 from pyrmont/bugfix.redefs-typo
...
Fix 'redefs' typo in test suite
2022-01-08 10:51:17 -06:00
Ian Shehadeh
60378ff941
windows: fix ev/read hang when called on fs stream
...
handles returned by CreateFileA and FILE_FLAG_OVERLAPPED
support reading from arbitrary offsets.
The offset is passed to ReadFile in through the OVERLAPPED structure.
Since state->overlapped is zeroed ev_machine_read
ReadFile would always read from the start of the file and never finish
This commit changes ev_machine_read to update the offset to
the number of bytes read before calling ReadFile.
2022-01-07 16:32:39 -05:00
Michael Camilleri
30a0c77d19
Fix 'redefs' typo in test suite
2022-01-07 13:28:22 +09:00
Calvin Rose
07ec89276b
Disable file read test to help CI.
2022-01-06 20:52:21 -06:00
Calvin Rose
a37dc1af9d
Merge branch 'redefs-work'
...
- Change the global binding name from :redefs to :redef
- Simplify internal representation of "redefinable bindings"
- Store "redefinable bindings in :ref rather than :value inside the
environment entries. This makes such bindings more like vars that
can't be set rather than defs.
2022-01-06 20:45:20 -06:00
Calvin Rose
03458df140
Merge pull request #898 from pyrmont/feature.redefs
...
Support redefinable `def` and `defmacro` bindings using `:redef`
2022-01-06 20:44:18 -06:00
Calvin Rose
164eb9659e
Merge pull request #905 from ishehadeh/master
...
Fix typo in janet_epoll_sync_callback, add test for "async" read from normal fd
2022-01-06 20:43:48 -06:00
Calvin Rose
99cfbaa63b
Tweaks on redef feature branch.
2022-01-06 20:38:15 -06:00
Ian Shehadeh
8d8a6534e3
add test for calling ev/read on normal fd
...
The test is almost identical to the os/open + :write test.
The only difference is the content is read back in with :read, not slurp
2022-01-06 19:35:30 -05:00
Ian Shehadeh
938c5013c9
fix typo in janet_epoll_sync_callback
...
JANET_ASYNC_LISTEN_WRITE was checked instead of JANET_ASYNC_EVENT_READ.
This caused ev/read to hang if it was called on a normal fd.
2022-01-06 19:33:34 -05:00
Michael Camilleri
ea9d5ec793
Change metadata keyword back to :redef
2022-01-02 12:35:22 +09:00
Michael Camilleri
ec65f038a8
Support :dynamic-defs dynamic binding
2021-12-29 16:39:00 +09:00
Calvin Rose
199ec36d40
Merge pull request #902 from sogaiu/tweak-match-doc
...
Tweak match docstring
2021-12-25 07:41:58 -06:00
sogaiu
1326ded048
Tweak match docstring
2021-12-25 16:56:10 +09:00
Michael Camilleri
8347439644
Support redefinable bindings
2021-12-18 13:05:16 +09:00
Calvin Rose
cddc2a8280
Merge pull request #896 from pyrmont/bugfix.run-context-current-file
...
Only set :current-file in run-context if source is a path
2021-12-16 17:19:48 -06:00
Michael Camilleri
97a8938407
Ensure value is of specified type or panic
2021-12-15 12:17:35 +09:00
Michael Camilleri
939d1dcae9
Only set :current-file in run-context if source is a path
2021-12-13 12:06:58 +09:00
Calvin Rose
9d5cc5c11f
Proper locking on select.
2021-12-09 18:59:59 -06:00
Calvin Rose
d998f24d26
Merge branch 'master' of github.com:janet-lang/janet
2021-12-09 18:47:36 -06:00
Calvin Rose
d543f8857b
Fix #892 - Remove racy ref counts for channels
...
Rather than manual reference counting for suspended fibers, we
automate the process by incrementing "extra_listeners" every time
we suspend a fiber in the event loop, and decrement when that fiber
is resumed. In this manner, we keep track of the number of suspending
fibers in a simpler, more correct way.
2021-12-09 18:44:55 -06:00
Calvin Rose
c48a942d22
Merge pull request #893 from pyrmont/docs.nested-loops
...
Clarify nested loop behaviour in loop macro
2021-12-09 14:09:59 -06:00
Calvin Rose
e1602618c3
Merge pull request #894 from pepe/fix-numarray-example
...
Improve numarray example
2021-12-09 14:09:11 -06:00
Calvin Rose
36be240623
Merge pull request #895 from pepe/add-path-to-async-execute-example
...
Add search on PATH for async execute example
2021-12-09 14:08:53 -06:00
Josef Pospíšil
04e499c97f
Add search on PATH for async execute example
2021-12-09 11:57:21 +01:00
Josef Pospíšil
f586a8a9dc
Add length to method and lib fn to numarray
2021-12-09 11:18:05 +01:00
Josef Pospíšil
5112ed77d6
Fix test import, and add sum as library fn too
2021-12-09 11:12:08 +01:00
Michael Camilleri
bf29a54272
Clarify nested loop behaviour in loop macro
2021-12-09 10:41:56 +09:00
Calvin Rose
6d9286a202
Add some more changes to hashing to improve pointer hashing.
2021-12-07 08:36:08 -06:00
Calvin Rose
92fdd07ca3
Address #889 - Switch high and low bits of part of number hash (Knuth's multiplicative hash)
...
Also make sure we weren't throwing away 3 bits of entropy.
2021-12-07 08:24:04 -06:00
Calvin Rose
1c937ad960
Prepare for 1.19.2 release. Update CHANGELOG.md
2021-12-06 17:27:09 -06:00
Calvin Rose
f9891a5c04
More improvements to hashing for #889
2021-12-06 17:23:00 -06:00
Calvin Rose
e8ad311d84
Don't use janet_stacktrace anymore.
...
Behavior of janet_stacktrace_ext is more consistent.
2021-12-06 08:51:40 -06:00
Calvin Rose
545c09e202
Update hash mixing behavior - address #889
...
Try to have better behavior when mixing sub-hashes that are not uniform and
randomly distributed. Premultiply by a large prime before mixing to
"spread entropy" if it is concentrated in a certain subset of bits.
2021-12-05 16:34:26 -06:00
Calvin Rose
4dc281a05f
Prepare for 1.19.1 release.
2021-12-04 13:34:41 -06:00
Calvin Rose
3a0af8caad
Update changelog.md
2021-12-04 13:28:35 -06:00
Calvin Rose
8ff2fecb26
Update readme.
2021-12-04 13:25:02 -06:00
Calvin Rose
1855c6aed5
Remove appveyor.
2021-12-04 13:23:34 -06:00
Calvin Rose
d4c6643311
Merge branch 'master' of github.com:janet-lang/janet
2021-12-04 13:03:33 -06:00
Calvin Rose
e8c738002b
Add extra "prefix" parameter to debug/stacktrace.
2021-12-04 13:03:05 -06:00
Calvin Rose
309c3aaeb8
Merge pull request #867 from pyrmont/feature.custom-out-functions
...
Support sending output to a function
2021-12-04 11:17:58 -06:00
Calvin Rose
1f8bcadb3b
Update changelog.md
2021-12-04 11:11:57 -06:00
Calvin Rose
6f4af5fef8
Merge branch 'master' of github.com:janet-lang/janet
2021-12-04 10:28:16 -06:00
Calvin Rose
868cdb9f8b
Fix channel packing bug.
2021-12-04 10:28:00 -06:00
Calvin Rose
2f76a429ef
Merge pull request #886 from Grazfather/patch-1
...
map: Fix indexing for 3+ data structures
2021-12-04 08:03:33 -06:00
Grazfather
a69799aa42
Add tests for mapping different length sequences
2021-12-03 20:47:48 -05:00
Grazfather
139bef2142
map: Fix indexing for 3+ data structures
2021-12-03 16:15:43 -05:00
Calvin Rose
8ba142bcf4
Merge branch 'master' of github.com:janet-lang/janet
2021-11-30 14:19:10 -06:00
Calvin Rose
c49e4966f6
Update to dev versions.
2021-11-30 14:19:03 -06:00
Calvin Rose
516fa4e49d
Merge pull request #883 from pyrmont/feature.netrepl-relative-imports
...
Update location of current file in run-context
2021-11-30 14:17:34 -06:00
Michael Camilleri
6bf9f89429
Update location of current file in run-context
2021-11-29 10:05:04 +09:00
Calvin Rose
a0ddfcb109
Prepare for 1.19.0 release.
2021-11-27 10:00:36 -06:00
Calvin Rose
3df7921fdc
Don't call wait twice when closing or gcing.
2021-11-27 09:05:43 -06:00
Calvin Rose
6172a9ca2d
Merge branch 'master' of github.com:janet-lang/janet
2021-11-26 18:44:33 -06:00
Calvin Rose
4a40e57cf0
Fix leaking file descriptors to subprocess causing hangs.
2021-11-26 18:44:11 -06:00
Calvin Rose
cdedda4ca1
Merge pull request #880 from pepe/gamma-fix
...
Fix math/gamma and add math/log-gamma
2021-11-26 12:34:54 -06:00
Josef Pospíšil
e6babd84f7
Fix math/gamma and add math/log-gamma
2021-11-24 10:55:32 +01:00
Calvin Rose
868ec1a7e3
Add test case for missing struct proto
2021-11-23 23:17:24 -06:00
Calvin Rose
e08394c870
Fix struct proto missing when making a struct with a nil value.
2021-11-23 23:16:06 -06:00
Calvin Rose
a99500aebf
Update suite0009 assert again.
2021-11-18 20:46:26 -06:00
Calvin Rose
aa5095c23b
Update assert message in suite0009
2021-11-18 20:39:29 -06:00
Calvin Rose
9e0f36e5a7
Fix unused variable warnings.
2021-11-18 20:35:41 -06:00
Calvin Rose
d481d079ba
Try bsd fix.
2021-11-18 20:30:06 -06:00
Calvin Rose
bc9ec7ac4a
Fix unitialized memory access in net/ module.
2021-11-18 20:10:10 -06:00
Calvin Rose
6f7e81067c
Address #876 Don't allow scheduling a fiber once it has been canceled already.
...
We were effectively cancelling the cancellation.
2021-11-18 20:06:29 -06:00
Calvin Rose
af946f398e
Turn off raw mode in shell on ctrl-C.
2021-11-18 19:58:52 -06:00
Calvin Rose
c7ca26e9c7
Merge branch 'master' of github.com:janet-lang/janet
2021-11-18 19:04:43 -06:00
Calvin Rose
ef7129f45d
Address #874 - Call waitpid on waiter thread with WNOWAIT.
...
This doesn't destory the pid until the original thread decides to
call waitpid again. Since the pid is exposed in the C API and now
in the Janet API, we don't want to destroy it until we are ready.
2021-11-18 19:03:08 -06:00
Calvin Rose
a20bdd334a
Merge pull request #873 from andrewchambers/procsig
...
Use kill instead of raise for SIGINT.
2021-11-15 07:44:30 -06:00
Andrew Chambers
2ef49a92cc
Use kill instead of raise for SIGINT.
...
Raise signals can only be handled by the current thread while
kill signals can be handled by background threads.
2021-11-15 20:38:23 +13:00
Calvin Rose
75f56b68c6
Merge pull request #872 from jgarte/jgarte-patch-aesthetics
...
Typo fix
2021-11-14 14:03:21 -06:00
jgart
d34d319d89
Typo fix
2021-11-14 14:19:04 -05:00
Calvin Rose
6660c1da38
Don't truncate test output on failures.
2021-11-12 20:06:28 -06:00
Michael Camilleri
4e263b8c39
Support using functions with :out dynamic binding
2021-11-13 01:42:44 +09:00
Calvin Rose
3cb604df02
Merge pull request #870 from andrewchambers/exposepid
...
Expose process :pid on unix like platforms.
2021-11-12 08:20:39 -06:00
Calvin Rose
af9dc7a69e
Merge pull request #869 from andrewchambers/typo2
...
Fix os/proc-kill doc typo.
2021-11-12 08:20:00 -06:00
Calvin Rose
1247e69c78
Merge pull request #868 from andrewchambers/sigint
...
Allow C code to block SIGINT.
2021-11-12 08:19:43 -06:00
Andrew Chambers
aab0e4315d
Expose process :pid on unix like platforms.
...
This at least means users can use something like jsys
or the kill command to signal processes when they want
to send unsupported signals (like SIGTERM).
2021-11-12 23:43:36 +13:00
Andrew Chambers
14f6517733
Fix os/proc-kill doc typo.
2021-11-12 23:29:13 +13:00
Andrew Chambers
5d75effb37
Allow C code to block SIGINT.
...
Previously the repl always exits on SIGINT, this change
means the repl will only exit on SIGINT if the SIGINT handler
causes it to exit.
2021-11-12 23:24:33 +13:00
Calvin Rose
ab4f18954b
Merge pull request #866 from pyrmont/fix.example-urlloader
...
Fix URL loader example to use os/spawn
2021-11-11 14:55:24 -06:00
Michael Camilleri
e1460c65e8
Fix URL loader example to use os/spawn
2021-11-11 17:33:25 +09:00
Calvin Rose
425a0fcf07
Add quoted literal support in the match macro.
2021-11-08 15:33:11 -06:00
Calvin Rose
7205ee5e0a
Update test output.
2021-11-06 19:29:15 -05:00
Calvin Rose
72c5db8910
Update test suite to better distinguish functional errors with
...
localname/peername.
2021-11-06 19:19:49 -05:00
bakpakin
3067f4be3a
Address #815 - gc mark issue in windows accept state machine.
...
We were casting a pointer to the wrong type, which caused all sorts of
wonderful chaos, but only on windows and only when the garbage collector
ran after setting up a server in a specific configuration. We were
casting a closure pointer to an abstract type during the mark phase,
which resulted in memory corruption.
2021-11-06 17:50:54 -05:00
Calvin Rose
2aa1ccdd76
Update test helper to be even les noisy.
2021-11-06 11:20:09 -05:00
Calvin Rose
0284df503f
Make test output less verbose
2021-11-06 11:01:21 -05:00
Calvin Rose
2833a983d8
Merge pull request #860 from sogaiu/short-fn-docstring-tweak
...
Tweak short-fn docstring
2021-11-04 19:39:55 -05:00
Calvin Rose
39c6be7cb7
Fix #861 - parser/produce caused state to be invalid for parser/state.
...
parser/produce was leaving a counter in the root state undecremented.
2021-11-04 19:38:37 -05:00
sogaiu
fdc94c1353
Tweak short-fn docstring
2021-11-04 18:11:53 +09:00
Calvin Rose
9cc4e48124
Update changelog and allow evaluating streams with dofile.
2021-10-30 14:43:06 -05:00
Calvin Rose
34c7f15d6d
Always return port in peername and localname
2021-10-30 10:56:40 -05:00
Calvin Rose
899a9b025e
Merge branch 'struct-proto'
2021-10-30 09:31:22 -05:00
Calvin Rose
deb4315383
Fix parse.c parser/state :args
2021-10-30 09:30:56 -05:00
Calvin Rose
9a06660fdb
fix call to table/proto-flatten
2021-10-30 09:15:23 -05:00
Calvin Rose
5c35d24e13
Fix nil check issue.
2021-10-29 19:29:54 -05:00
Calvin Rose
03f99752a7
Merge branch 'master' into struct-proto
2021-10-29 16:42:34 -05:00
Calvin Rose
fd37567c18
Docstring fix.
2021-10-29 11:13:07 -05:00
Calvin Rose
6e38bf1578
Use more inclusive check for the %j formatter for valid symbols.
...
We did not allow arbitrary utf8 to be printed with %j, even though the parser
allows. Thos changes uses the existing built in utf8 detectiotion to
exclude only unprintable symbols from the docstring.
2021-10-29 11:08:53 -05:00
Calvin Rose
8b2d278840
Add min-of and max-of.
2021-10-26 17:46:24 -05:00
Calvin Rose
06aa0a124d
Add math/gcd and math/lcm to the core.
2021-10-24 11:43:07 -05:00
Calvin Rose
eb4595158d
Allow compiling tables as peg grammars.
2021-10-23 09:59:36 -05:00
Calvin Rose
32103441f1
Merge pull request #850 from pyrmont/bugfix.anonymous-union
...
Use named union in JanetGCObject
2021-10-22 07:56:38 -05:00
Michael Camilleri
7ed0aa6630
Use named union in JanetGCObject
2021-10-22 09:52:57 +09:00
Calvin Rose
f690229f31
Merge pull request #848 from pyrmont/bugfix.uname-switches
...
Fix error for uname switch -o on macOS
2021-10-21 18:17:41 -05:00
Michael Camilleri
f3bab72a86
Add comment to explain Linux check in Makefile
2021-10-21 14:23:23 +09:00
Michael Camilleri
2bd63c2d27
Fix error for uname switch -o on macOS
2021-10-21 14:13:51 +09:00
Calvin Rose
545d9e85e9
Update CHANGELOG.md
2021-10-20 19:57:02 -05:00
Calvin Rose
21a4ab4ec7
Hang forever instead of exit early on channel deadlock.
...
While not technically needed, the behavior is more intuitive and will
prevent people from writing bad scripts.
2021-10-20 19:53:29 -05:00
Calvin Rose
66fbbeb5ec
Why is the copyright gone...
2021-10-20 18:05:32 -05:00
Calvin Rose
55879c7b6d
Fix checked for fiber being dead.
2021-10-19 09:03:24 -05:00
Calvin Rose
66c4e5a5e2
Prepare for patch release.
2021-10-16 15:05:48 -05:00
Calvin Rose
884139e246
Merge pull request #843 from jgarte/jgarte-patch-typo
...
Fix typo in docstring
2021-10-16 12:51:45 -05:00
Calvin Rose
c3d7b1541e
Merge branch 'master' into jgarte-patch-typo
2021-10-16 12:51:38 -05:00
Calvin Rose
51ada4d70b
Merge pull request #840 from bradms/android-termux
...
Support Android (termux)
2021-10-16 12:50:24 -05:00
jgart
e3a5d52c5e
Fix typo in docstring
2021-10-16 11:48:59 -04:00
Brad Svercl
559fd70737
Add android-spawn to meson.build if found
2021-10-15 21:39:03 -05:00
Brad Svercl
e0dba85cbb
Support Android (termux)
2021-10-14 21:18:35 -05:00
Calvin Rose
74c9cf03d0
Fix -r switch in repl
2021-10-14 17:25:12 -05:00
Calvin Rose
0774e79e4f
Pass non-blocking pipes to subprocesses on non-windows platform.
2021-10-14 13:57:51 -05:00
Calvin Rose
a3ec37741a
Merge pull request #835 from MorganPeterson/update-string-docs
...
Updated string/bytes docs to reflect return value as tuple
2021-10-12 00:22:50 -05:00
MorganPeterson
9bf5cd83c3
updated string/bytes docs to reflect return value as tuple
2021-10-11 13:45:31 -04:00
Calvin Rose
f0da793f99
Prepare for 1.18.0 release
2021-10-10 09:27:31 -05:00
Calvin Rose
684f3ac172
Add optional base to scan-number.
2021-10-10 09:07:56 -05:00
Calvin Rose
3e5bd460a5
Add line/col info to parse error in janet_[dobytes, dostring]
2021-10-08 09:25:00 -05:00
Calvin Rose
3b1d787fbe
Address #829 - Set state->event inside linked list traversal for epoll.
2021-10-08 08:35:47 -05:00
Calvin Rose
980f55ff69
Merge pull request #828 from sogaiu/add-argument-to-janet-panicf-call
...
Add argument to some janet_panicf calls
2021-10-08 08:23:55 -05:00
sogaiu
52ed68bfeb
Add argument to janet_panicf call (2)
2021-10-07 20:58:50 +09:00
sogaiu
be0d4c28e4
Add argument to janet_panicf call
2021-10-07 16:38:40 +09:00
Calvin Rose
79807bf2ab
Merge pull request #827 from sogaiu/tweak-format-strings
...
Tweak format strings
2021-10-06 17:48:53 -05:00
Calvin Rose
e48ca1a03f
Merge pull request #826 from rick2600/fix-uaf-cfun_array_concat
...
fix issue #825
2021-10-06 17:48:27 -05:00
sogaiu
eae18ce973
Tweak format strings
2021-10-06 20:34:33 +09:00
rick2600
591344ca9d
fix issue #825
2021-10-05 01:45:59 -03:00
Calvin Rose
fbe067823e
Merge pull request #824 from GrayJack/rnd-double-capi
...
Expose `janet_rng_double` to the C API
2021-10-04 13:54:10 -05:00
GrayJack
ffece911e6
Expose janet_rng_double to the C API
2021-10-03 00:52:34 -03:00
Calvin Rose
186afa9651
Merge pull request #823 from llmII/fix-kqueue-hang
...
Fix #822 - kqueue hang in suite 9.
2021-09-30 10:50:04 -05:00
llmII
6b3037106a
Fix #822 - kqueue hang in suite 9.
...
Priorly we only checked exactly one state when an event was received.
This was incorrect. A state may have a next state, an action to take
after the first in the list of states has been taken. This change
acknowledges that and makes the code work with the state list vs just
the head of the list.
2021-09-30 06:56:09 -05:00
Calvin Rose
1bf22288ee
Merge pull request #821 from llmII/fix-kqueue
...
Fix #819 timeouts under kqueue on FreeBSD broken
2021-09-29 15:51:46 -05:00
llmII
3cec470f25
Change the way timeouts work in kqueue.
...
Don't use a timer filter, just set the timeout on each call to kevent.
Should hopefully work around the 1ms minimum on NetBSD and be possibly
more performant.
2021-09-29 15:19:30 -05:00
llmII
e1ec0d13ae
Fixing kqueue under the BSDs.
...
FreeBSD is the only BSD supporting ABSTIME timers, whereas the rest
demand intervals. Janet operates on timestamps, which are absolute
times, as per ABSTIME. The idea was to use that under FreeBSD but not
the other BSDs. This commit changes that since ABSTIME breaks when the
timeout supplied is for a time prior to whatever the time is
now (invalid argument). We now utilize the same logic we use on the
other BSDs with FreeBSD to effect interval timeouts since intervals are
absolutely sometime beyond now, be it now and less than a millisecond,
or more than a millisecond. This will hopefully unbreak BSD builds when
running the test suite.
2021-09-28 17:40:38 -05:00
bakpakin
924fe97fc3
Address #820 - ev/cancel to work on already scheduled fibers.
2021-09-28 15:42:16 -05:00
bakpakin
504411eade
Update suite 009 to do read and write in parallel.
2021-09-28 12:05:28 -05:00
Calvin Rose
038ca1b9ca
Update README.md
2021-09-27 21:20:06 -05:00
Calvin Rose
544b192f8c
Fix bad docstring change.
2021-09-25 14:32:23 -05:00
Calvin Rose
7748ccdb8e
Fix network byte order port.
2021-09-25 14:31:19 -05:00
Calvin Rose
64e29c6fce
More simplification and removal of macros.
2021-09-25 13:53:27 -05:00
Calvin Rose
acdf097998
Refactor of peername and localname to be much more direct.
...
Also remove a lot of overly general code from cqueues. Janet has more
opinionated error handling so we can avoid a lot error propagation code.
2021-09-25 13:38:36 -05:00
Calvin Rose
ba3107c1fa
Merge branch 'master' of github.com:janet-lang/janet
2021-09-21 18:03:25 -05:00
Calvin Rose
9985f787eb
Add custom base option to number peg combinator.
...
Allows parsing custom bases without needed Janet specific prefixes.
2021-09-21 18:02:42 -05:00
Calvin Rose
d6f41bcf98
Merge pull request #811 from sogaiu/use-deprecation-mechanism-for-file-popen
...
Apply deprecation machinery to file/popen
2021-09-21 15:16:20 -05:00
Calvin Rose
50bced49ad
Merge branch 'master' into use-deprecation-mechanism-for-file-popen
2021-09-21 15:15:36 -05:00
Calvin Rose
4fd7470bbf
Remove accidental limit on max read size.
2021-09-21 09:55:40 -05:00
Calvin Rose
033c6f1fdb
Add -i flag to run .jimage files as scripts.
2021-09-19 19:47:57 -05:00
Calvin Rose
6c58347916
Remove thread module.
...
Instead, use the more general and non-blocing `ev/` module.
2021-09-19 14:19:32 -05:00
Calvin Rose
cccbdc164c
Add (number combinator to peg).
...
This allows using Janet's number parser without creating
intermediate strings.
2021-09-19 13:02:16 -05:00
Calvin Rose
cea14a6869
Fix typo in changelog.
2021-09-19 00:16:08 -05:00
Calvin Rose
9b4b24edf7
Prepare for 1.17.2 release.
2021-09-18 13:42:26 -05:00
Calvin Rose
8b10a5fb7c
Format and update CHANGELOG.md
2021-09-18 13:40:32 -05:00
Calvin Rose
b0d0d9cad2
Address #809 - treat first docstring line different from others.
...
Only do this if the docstring starts with an open parentheses.
2021-09-18 12:41:11 -05:00
sogaiu
d5c8eb048a
Apply deprecation machinery to file/popen
2021-09-18 17:08:56 +09:00
Calvin Rose
9abee3f29a
Add semi-colon.
2021-09-17 19:20:59 -05:00
Calvin Rose
bf9b6b1301
Avoid including windows.h in janet.h for JanetOSMutex.
2021-09-17 16:59:50 -05:00
Calvin Rose
8cd57025a0
Add makefile var to fix jpm to a tag/branch
2021-09-17 16:38:11 -05:00
Calvin Rose
faf60b6b1f
Pass DESTDIR directly to jpm bootstrap script.
2021-09-16 18:36:29 -05:00
Calvin Rose
da2c1be49c
Fix #801 threaded abstract cyclic references in marshalling.
...
We forgot to mark threaded abstract types as "seen" when marshalling so
we would mistakenly marshal them twice. This messed up unmarshalling.
2021-09-14 21:12:02 -05:00
Calvin Rose
92c02449f4
Merge pull request #800 from marler8997/fixUbInGC
...
add NULL check in gc.c to avoid UB
2021-09-14 16:04:12 -05:00
Jonathan Marler
e381622a9a
add NULL check in gc.c to avoid UB
...
After the UB was fixed in value.c, I tried running the build again and encoutered another instance of UB in gc.c. With this fixed I can now build janet with ubsan enabled, meaning there's no more UB encountered in janet_boot during the build.
2021-09-11 19:50:52 -06:00
bakpakin
b799223ebc
Merge branch 'master' of github.com:janet-lang/janet
2021-09-11 10:34:22 -05:00
bakpakin
40ef224a95
Update test code.
2021-09-11 10:34:08 -05:00
Calvin Rose
a4c20b6e1c
Merge pull request #797 from sogaiu/math-nan-doc-tweak
...
Tweak math/nan docstring
2021-09-11 09:13:38 -05:00
sogaiu
e6ee867f72
Tweak math/nan docstring
2021-09-11 16:54:35 +09:00
bakpakin
468a31f515
Address #795 - add NULL check to avoid UB
2021-09-09 07:20:26 -05:00
bakpakin
4d746794cc
Merge branch 'bindport'
2021-09-07 22:45:22 -05:00
bakpakin
02d2a66ef2
Merge branch 'master' of github.com:janet-lang/janet
2021-09-07 22:44:59 -05:00
Calvin Rose
4638baf545
Merge pull request #790 from llmII/feature-getsockname-getpeername
...
Work in progress - more socket functions
2021-09-07 22:44:40 -05:00
bakpakin
2be23d3768
Fix meson build.
2021-09-07 22:11:45 -05:00
bakpakin
b39b1746ba
Support bindport.
2021-09-07 21:59:17 -05:00
bakpakin
24f97510b0
Fix incorrect code that created socket twice.
2021-09-07 20:51:33 -05:00
llmII
325d5399fa
Code cleanup and attribution set.
...
All that is left is to test unix sockets.
2021-09-07 20:00:00 -05:00
Calvin Rose
d8f6fbf594
Merge pull request #789 from llmII/feature-bind-connect
...
Add bind option to net/connect
2021-09-07 18:47:17 -05:00
llmII
21b3e4052c
Don't print stuff in tests, CI looks wacky
2021-09-07 17:21:10 -05:00
llmII
bf2928805e
Had an extra plen definition, removed.
2021-09-07 17:03:34 -05:00
llmII
7d2bf334c8
Fix incorrect error when argv[3] is null
...
The `janet_get_addrinfo` function retained code that was meant for
compliance with 3 separate function signatures under a single function
name. Changing things to be a single function signature was broken until
the code pertaining to the aforementioned was stripped out.
2021-09-07 16:11:37 -05:00
llmII
7446802a70
Quit trying to make it 3 different functions
...
Prior commits was an attempt to make this one function adhere to 3
different function signatures! This puts an end to that and makes it
where it's a single function signature and if one wants to use the 4th
argument they'll need to explicitly set the 3rd argument (to nil for
default).
2021-09-07 14:56:13 -05:00
llmII
077bf5ebae
Create test case for localname/peername
2021-09-07 07:12:43 -05:00
llmII
c9bef39f96
Make net/connect special
...
Keeps net/listen from being affected by changes necessary to make bind
on connect work (while keeping from breaking the API).
2021-09-07 05:40:48 -05:00
llmII
3740eadb7d
Seeing if this fixes the last warnings for Windows
2021-09-06 19:57:56 -05:00
llmII
e29fa66a74
More Windows fixes
2021-09-06 19:42:45 -05:00
llmII
ca5406c8e4
More windows fixes
...
MSVC's output via appveyor is a little lacking in indication of all
issues so I'm hitting them as I can find them.
2021-09-06 19:31:16 -05:00
llmII
7217caacd1
Attempting some more windows related fixes.
2021-09-06 19:26:33 -05:00
Calvin Rose
8081082251
Merge pull request #785 from llmII/feature-kqueue
...
Add kqueue support to Janet
2021-09-06 18:42:05 -05:00
llmII
1597ca0de5
Cleanup code a bit
...
Inconsistent indentation and such fixed, superfluous newlines removed,
documentation of new functions.
2021-09-06 18:32:23 -05:00
llmII
8c938ceff9
Fix for Windows (possibly)
...
Windows does not have <arpa/inet.h> so only include it when not Windows.
2021-09-06 17:48:17 -05:00
llmII
65a6945ea5
Finalize peername and localname
...
Both now do the right thing and give back all information (host and
port) when possible as a tuple of (host port).
2021-09-06 17:35:49 -05:00
llmII
02640812af
Add getsockname (net/localname)
2021-09-06 17:01:09 -05:00
llmII
ba761d5c35
Work in progress - more socket functions
...
When this is complete we'll have getpeername, getsockname and possibly
getpeerid in the net/* API.
2021-09-06 16:15:01 -05:00
llmII
48a3b1f07f
Enable kqueue on MacOS
...
Make sure JANET_EV_KQUEUE is defined when JANET_APPLE is defined unless
disabled by configuration.
2021-09-06 16:01:06 -05:00
llmII
4370cb77e7
Update documentation.
...
Documenting the new bindhost parameter to net/connect.
2021-09-06 10:54:11 -05:00
llmII
470e8f6fc7
Reused address info struct incorrectly
...
Wrongly assumed that `ai` was done being used before binding, it's not,
so create a separate address info for binding...
2021-09-06 10:44:23 -05:00
llmII
b270d88427
More off by one error fixes
2021-09-06 10:12:36 -05:00
llmII
66ce247129
Fixing off by one indexing errors...
2021-09-06 10:01:16 -05:00
llmII
6ad016c587
Check type when getting socket type
...
janet_get_sockettype expects a keyword but we're making it optional that
the call to the functions that use it with arity >=3 will be guaranteed
to have it as a keyword value! If it's not a keyword then it's the same
as NULL.
2021-09-06 09:53:53 -05:00
llmII
532dac1b95
Check type instead of value
...
Primarily because trying to check the value results in a panic when the
value is not the type of value requested from the API. Also probably
cheaper and the previous idea of just getting the value then comparing
was pretty stupid (needed a string comparison... and was going to do
pointer comparison).
2021-09-06 09:48:29 -05:00
llmII
2a4bcc262f
Don't bind when address info doesn't exist
...
Simple logic issue, something overlooked.
2021-09-06 09:06:40 -05:00
llmII
1ce2361daf
Better error message in connect
...
Quick thing to help check when failing tests.
2021-09-06 09:02:56 -05:00
llmII
6e8584e8e0
Add bind option to net/connect
...
This will allow us to set the address we use for outgoing connections.
Builds, haven't checked it passes current tests, haven't checked it
actually works either.
2021-09-06 08:54:24 -05:00
llmII
121aa91139
Fixes for NetBSD (again)
...
Minimum interval for a timer must be 1 or more (or we get EINVAL) and
Janet fails tests and halts events that the programmer may still be
interested in.
2021-09-05 21:48:53 -05:00
llmII
bbc07c72d3
More NetBSD fixes
...
A comptime known value of 0 for data in EV_SET with EVFILT_TIMER causes
a complete compilation failure (fails to link). This fixes it by making
it a 1 instead of a 0 for amount of milliseconds in the interval to wait
under NetBSD.
2021-09-05 21:17:41 -05:00
llmII
43b48fdbea
More fixes for NetBSD
...
Kills compiler warnings with regards to implicit conversion of intptr_t
to void*
2021-09-05 21:01:24 -05:00
llmII
604f97aba1
Fixes for BSD where BSD != FreeBSD
...
NetBSD and OpenBSD lack NOTE_ABSTIME and NOTE_MSECONDS, so we define
those and create a macro that we use for all timeout values in EV_TIMER
events that will on all BSD excepting FreeBSD change an absolute time
into an interval.
2021-09-05 20:48:42 -05:00
Calvin Rose
dc980081cd
Fix #783 - change docstring for x86-64 to x64.
2021-09-05 12:32:33 -05:00
llmII
981f03fef3
Remove comments regarding NetBSD breakage
...
Since those no longer should apply, don't keep them around.
2021-09-05 10:45:45 -05:00
llmII
d40133dc72
NetBSD support
...
Checking throught NetBSD's man pages, excepting for NetBSD-current,
NetBSD uses `intptr_t` as the type for `.udata`. This change allows for
`.udata` to match whatever type (by cast) the underlying system uses.
2021-09-05 07:30:22 -05:00
llmII
c9fa586fce
Code style fixes (pt 2).
...
Missed some.
2021-09-04 09:37:07 -05:00
llmII
b847a7d90b
Code style fixes.
...
Pretty obvious I thought control statements were glued to their opening
parenthesis at first and then I realized not and voila, a bundle of
mixed style. Hopefully this fixes all of it.
2021-09-04 09:34:47 -05:00
llmII
8b67108dc8
Complete kqueue feature
...
From this point things should be bug fixes or code formatting most
likely.
Updated commentary (removed superfluous comments, and commented out
code). Refined commentary where it seemed important and may help whoever
comes behind me keep from making bad assumptions similar to the ones I
made.
All tests ran with `gmake test` now pass. `valgrind` with FreeBSD does
not support forking so `gmake valtest` fails once child processes are
started. Determined not an issue, can't fix valgrind.
2021-09-04 08:23:03 -05:00
llmII
b559f9625a
Timeout is an absolute time, not an interval.
...
Fixes the wrong assumption, passing all tests at that point.
2021-09-04 08:02:50 -05:00
llmII
1736c9b0f8
Handle null state, don't read/write on error
...
Need to guard against errors when reading/writing probably, if there is
an error, forgo those events.
Guard against null state (and the byproduct, a segfault), check if the
state is null before utilizing it.
2021-09-03 23:22:07 -05:00
llmII
4fb2d8d318
Logical error regarding length fixed.
2021-09-03 22:41:59 -05:00
llmII
95891eb0a5
Fix incorrect use of EV_SET on pipes (part 2)
...
Forgot that we use nearly the same routine for adding and deletion...
can't go around deleting things we haven't put into the changeset!
2021-09-03 22:33:28 -05:00
llmII
c133443eb7
Fix incorrect use of EV_SET on pipes.
...
It would seem adding a read and a write event filter on a pipe which is
unidirectional might just be a bad idea.
2021-09-03 19:44:27 -05:00
llmII
8f0641f36c
Disabling superfluous code
...
The code in question may be checking things in an erroneous manner?
2021-09-03 17:18:40 -05:00
llmII
f48dbde736
Better exit (error?) message
...
The prior calls to exit(-1) were wrong anyway and they may at this point
be hindering figuring out what's going on in suite 9.
2021-09-03 17:13:54 -05:00
llmII
f2e4c1ae9a
Forgot a semicolon...
2021-09-03 16:31:20 -05:00
llmII
a4aef38cc0
More typo and syntax fixes.
2021-09-03 16:29:39 -05:00
llmII
b445ecde51
Add kqueue option to meson, janetconf, fix typoes
2021-09-03 16:23:15 -05:00
llmII
a209a01284
Add kqueue support to Janet
...
Note that this is a work in progress and simply a first attempt at
getting some code into place before being able to test it. This code
follows of sorts both the poll and epoll sections of the codebase hoping
to achieve the exact same.
2021-09-03 14:33:47 -05:00
Calvin Rose
7037532943
Errored threads always emit stacktrace or supervisor event.
...
That way, it is much harder to swallow errors. Error swallowing behavior
would have to be done explicitly by wrapping fibers with `protect` or
`try`.
2021-09-01 21:05:05 -05:00
Calvin Rose
bb405ee1aa
Address #778
...
Relax check that number of closure environments in a function matches
that of the def.
The def could be partially constructed, and so there may be a false
negative. The runtime will check that this is consistent, and the
garbage collector should handle when this constraint is not kept.
2021-08-31 22:58:44 -05:00
Calvin Rose
ef23356309
Threaded supervisors return fiber->last_value instead
...
of the fiber itself.
2021-08-31 14:50:27 -05:00
Calvin Rose
1613e2593c
Update CHANGELOG.md
2021-08-30 22:24:34 -05:00
Calvin Rose
5464a7a379
Allow passing a function to directly to ev/go.
...
Makes ev/call less useful but ev/go more useful. No need
to construct as many identical intermediate fibers.
2021-08-30 22:22:22 -05:00
Calvin Rose
bb1331e449
Update changelog.
2021-08-30 22:06:28 -05:00
Calvin Rose
acbebc5631
Allow passing function to ev/thread.
...
Convenient when there is no need to create an entire fiber.
2021-08-30 22:04:15 -05:00
Calvin Rose
e1c4fc29de
Prepare for 1.17.1 release.
2021-08-29 11:29:41 -05:00
Calvin Rose
b903433284
Merge branch 'master' of github.com:janet-lang/janet
2021-08-29 11:15:43 -05:00
Calvin Rose
31a7fdc7b6
Add Make task to more easily install jpm.
2021-08-29 11:15:15 -05:00
Calvin Rose
9909adb665
Remove JANER_HEADERPATH from boot process.
...
That is a jpm thing.
2021-08-29 10:43:58 -05:00
Calvin Rose
26f8ba48ee
Merge pull request #775 from pepe/ev-docs
...
Fix typos in ev/go ev/select
2021-08-28 16:20:25 -05:00
Josef Pospíšil
29ea408980
Fix spawn-thread doc about its return
2021-08-28 15:39:49 +02:00
Josef Pospíšil
0bb7ca7441
Fix typos in ev/go ev/select
2021-08-28 15:35:55 +02:00
Calvin Rose
a992644c62
Merge branch 'master' of github.com:janet-lang/janet
2021-08-27 11:52:19 -05:00
Calvin Rose
1c15926e6f
Fix #773 - fix docstring.
2021-08-27 11:52:03 -05:00
Calvin Rose
c921315b3e
Merge pull request #774 from sogaiu/tweak-fiber-last-value-docstring
...
Tweak fiber/last-value docstring
2021-08-27 11:51:13 -05:00
Calvin Rose
ab740f92db
Fix ev thread swallowing error in some case.
2021-08-27 11:46:42 -05:00
sogaiu
1d7390fa7c
Tweak fiber/last-value docstring
2021-08-27 17:29:20 +09:00
Calvin Rose
0ab96b8e47
Fix #771
2021-08-26 22:23:21 -05:00
Calvin Rose
6f6edd37ef
Merge pull request #772 from pyrmont/feature.gh-test
...
Add GitHub Workflow to test
2021-08-26 22:20:48 -05:00
Michael Camilleri
f4282de068
Add GitHub Workflow to test
2021-08-25 10:49:56 +09:00
Calvin Rose
85c85c07b7
Merge pull request #770 from pyrmont/feature.gh-release
...
Use GitHub Workflow to create release (including building for Linux and macOS)
2021-08-24 08:36:57 -05:00
Michael Camilleri
7abcb1579a
Set JANET_DIST_DIR before making artifact
2021-08-23 15:47:25 +09:00
Michael Camilleri
7ce733cc16
Change lowercase step
2021-08-23 15:24:25 +09:00
Michael Camilleri
41a3c5f846
Add GitHub Workflow to draft release
2021-08-23 14:55:59 +09:00
bakpakin
7734e77dfc
Readd the janet_register function.
2021-08-22 10:38:15 -05:00
Calvin Rose
257c8b65c2
Fix destruction order.
2021-08-21 13:30:09 -05:00
Calvin Rose
846c9e5e12
Fix #759 - Add -E flag for one-liners.
...
Use the `short-fn` DSL here for argument passing.
2021-08-21 13:16:41 -05:00
Calvin Rose
685d2b460c
Address #765 . Make assert into a macro.
2021-08-21 12:27:58 -05:00
Calvin Rose
bd71e1cd02
Silence clang warning about comparing function pointers.
...
The comparison is used to create a set of function pointers.
2021-08-21 12:10:19 -05:00
Calvin Rose
43a5e12449
Merge branch 'master' of github.com:janet-lang/janet
2021-08-21 12:07:39 -05:00
Calvin Rose
ca97510a52
Prepare for 1.17.0 release.
2021-08-21 12:07:28 -05:00
Calvin Rose
50b753cb44
Merge pull request #768 from sogaiu/remove-threads-example
...
Remove threads example
2021-08-21 11:15:54 -05:00
sogaiu
5ca6704c4d
Remove threads example
2021-08-21 14:52:51 +09:00
Calvin Rose
49142fa385
Update for windows compiler warning.
2021-08-20 19:48:48 -05:00
Calvin Rose
d631d29cb4
Fix typo in header.
2021-08-20 18:53:22 -05:00
Calvin Rose
01b7891347
Windows header issues.
2021-08-20 18:49:13 -05:00
Calvin Rose
c786a4cbeb
Expose JanetOSMutex to make abstract types easier to write.
2021-08-20 17:57:23 -05:00
Calvin Rose
1920ecd668
Decrement thread channel pointer during cleanup without adding to heap.
2021-08-20 16:41:19 -05:00
Calvin Rose
c8827424e7
Fix memory leak and use after free
...
Use after free was caused by missing janet_gcroot call when
setting up thread.
2021-08-19 21:51:53 -05:00
Calvin Rose
cc066dd6a1
Add basic runtime support for threaded abstracts.
...
A threaded abstract is an abstract type that can be freely shared
between threads. While no synchronization is provided, refcounting
and transport between threads is. This will let implementers more easily
exploit OS-level parallelism in C library code. The caveat with these
types is that they need to be careful in how they interact with objects
on other heaps.
2021-08-19 21:16:20 -05:00
Calvin Rose
eb0b37f729
Initial threaded abstract types.
2021-08-19 20:56:48 -05:00
Calvin Rose
e552757edc
Fix threaded supervisor channels - Fix #766
...
Some pointer casting with abstract types was incorrect, resulting
in strange behavior when trying to use supervisor channels that were
threaded. This fix also adds the ability to supply a supervisor channel
directly when creating a thread.
2021-08-16 21:14:06 -05:00
Calvin Rose
87b8dffe23
Deprecate the thread module.
2021-08-15 17:36:47 -05:00
Calvin Rose
81b5904188
Add marshal/unmarshal to items pushed to threaded channel.
2021-08-15 16:12:40 -05:00
Calvin Rose
894a3b2fe2
Fix memory leak with threaded channels.
2021-08-15 15:33:26 -05:00
Calvin Rose
b75b3e3984
Working example for threaded channels.
...
Still no marshalling more complex values.
2021-08-15 15:25:07 -05:00
Calvin Rose
dea4906144
Merge branch 'master' of github.com:janet-lang/janet
2021-08-15 13:15:41 -05:00
Calvin Rose
97e5117a3f
Fix some issues and improve channel closing.
...
Still not fully working, seems to be deadlock/channel issue when
sending events between threads.
2021-08-15 13:14:33 -05:00
Calvin Rose
037215f7c4
Initial working draft of threaded channels.
...
Introduces close semtantics to channels as well, but otherwise
threaded channels behave much like non-threaded channels. They have
different marshalling behavior though, and can only send values over by
packing and unpacking them. For now, this means only primitive values
although this will be expanded.
Also missing some implementation for closing threaded channels, and a
whole lot of testing. Achtung!, Caveat emptor, here be dragons and bugs.
2021-08-15 11:48:13 -05:00
Calvin Rose
0277187fde
Merge pull request #763 from sogaiu/rng-uniform-doc-tweak
...
Tweak docstring for math/rng-uniform
2021-08-14 19:10:45 -05:00
sogaiu
c80a3c1401
Fix error
2021-08-15 06:57:46 +09:00
Calvin Rose
5614f85ea1
Merge pull request #762 from andrewchambers/race
...
Fix init race for environ lock.
2021-08-14 10:27:32 -05:00
sogaiu
1a3c8692e6
Tweak docstring for math/rng-uniform
2021-08-10 20:09:24 +09:00
Andrew Chambers
f2e8691ad5
Fix init race for environ lock.
2021-08-09 14:47:41 +12:00
Calvin Rose
c94d7574bc
Merge pull request #754 from harryvederci/patch-1
...
Improve docstring for the invert function.
2021-08-08 12:51:24 -05:00
Calvin Rose
a38cb5df18
Merge pull request #757 from subsetpark/document-match
...
Add documentation of @ pattern in match
2021-08-08 12:51:00 -05:00
Zach Smith
5407868620
Add documentation of @ pattern in match
2021-08-07 15:09:37 -04:00
Harry Prins
7edf77561b
Refer to argument. Change past tense to present.
2021-08-07 18:03:10 +02:00
Calvin Rose
a78cbd91da
Address #753 - fix gensym regression.
2021-08-06 16:25:53 -05:00
Calvin Rose
bb5c3773f1
Fix fiber aware combinators to use general iteration instead of fiber
...
specifics.
2021-08-06 16:17:47 -05:00
Calvin Rose
2e641a266d
Merge pull request #752 from sogaiu/get-in-tweak
...
Tweak get-in behavior
2021-08-06 15:14:33 -05:00
Calvin Rose
3a787afec6
Merge pull request #756 from subsetpark/take-streams
...
Make take/take-while/take-until fiber-aware
2021-08-06 15:13:35 -05:00
Zach Smith
34019222c2
Make take/take-while/take-until fiber-aware
2021-08-06 15:40:29 -04:00
Harry Prins
5f3378213b
Improve docstring for the invert function.
2021-08-06 18:33:49 +02:00
sogaiu
547fda6a40
Add tests
2021-08-06 10:05:34 +09:00
sogaiu
2080ac3bda
Tweak get-in behavior
2021-08-06 08:24:26 +09:00
Calvin Rose
61769c8f16
Merge pull request #747 from dbready/fractional_seconds
...
Note "int" vs "double" representation of seconds in os API
2021-07-31 15:49:09 -05:00
Damien Ready
934e091410
Note "int" vs "double" representation of seconds
2021-07-31 11:02:48 -05:00
Calvin Rose
7f7ee75954
Patch util.c
2021-07-31 10:00:43 -05:00
Calvin Rose
e76b8da269
Add semantics for closing channels.
...
This makes certain algorithms simpler as channels
now have an explicit lifetime - multiple readers can coordinate
closing without needing to ensure the same number of reads as writes.
2021-07-30 19:26:42 -05:00
Calvin Rose
7e5f226480
Put source mapping info in stack traces.
2021-07-29 21:29:08 -05:00
Calvin Rose
2f634184f0
Merge branch 'master' of github.com:janet-lang/janet
2021-07-28 21:41:34 -05:00
Calvin Rose
e3e01466ee
Merge pull request #741 from sogaiu/remove-duplicate-method
...
Remove duplicate of method recv-from
2021-07-28 20:35:33 -05:00
sogaiu
025918cfcc
Remove duplicate of method recv-from
2021-07-28 14:44:49 +09:00
Calvin Rose
28fb76e602
Merge pull request #740 from yumaikas/hotfix-new-style-math-bindings
...
Fix macro stringification for one-arg math functions
2021-07-27 23:56:16 -05:00
Andrew Owen
b0f97393a3
Fix macro stringification for one-arg math functions
2021-07-27 21:40:25 -06:00
Calvin Rose
2a7041e751
Merge pull request #739 from sogaiu/new-style-core-fn-decl-for-array
...
Update array.c with new style core function declarations
2021-07-27 22:37:35 -05:00
Calvin Rose
58c78d0d78
Merge pull request #730 from yumaikas/new-style-math-bindings
...
Update math.c for the new style
2021-07-27 22:37:13 -05:00
sogaiu
eed158afdd
Merge branch 'janet-lang:master' into new-style-core-fn-decl-for-array
2021-07-28 10:24:11 +09:00
Andrew Owen
1c7505e04a
Merge branch 'master' into new-style-math-bindings
2021-07-27 19:19:39 -06:00
Calvin Rose
617da24942
Merge pull request #726 from yumaikas/new-style-ev-bindings
...
Update ev.c to use the new binding style that provides source information
2021-07-27 20:17:19 -05:00
Andrew Owen
98bdbfd3d5
Add JANET_DEF and co, use in math.c
2021-07-27 19:13:09 -06:00
Andrew Owen
b289f253c7
Remove static function from the JANET_FN family of macros
2021-07-27 18:43:32 -06:00
Andrew Owen
aabae03305
Add rselect bindings
2021-07-27 00:48:28 -06:00
sogaiu
194d645551
Update array.c with new style core function declarations.
2021-07-27 15:34:12 +09:00
Calvin Rose
889d6f9e43
Merge pull request #737 from sogaiu/new-style-core-fn-decl-for-corelib
...
Update corelib.c with new style core function declarations.
2021-07-26 22:07:17 -05:00
Calvin Rose
151de093d0
Merge pull request #736 from sogaiu/new-style-core-fn-decl-for-debug
...
Update debug.c with new style core function declarations.
2021-07-26 22:06:17 -05:00
Calvin Rose
cc13e45f21
Merge pull request #738 from sogaiu/new-style-core-fn-decl-for-buffer
...
Update buffer.c with new style core function declarations.
2021-07-26 22:01:28 -05:00
sogaiu
7492a4c871
Update buffer.c with new style core function declarations.
2021-07-27 11:34:03 +09:00
sogaiu
d20543b92c
Update corelib.c with new style core function declarations.
2021-07-27 11:18:54 +09:00
sogaiu
59aab2ebbd
Update debug.c with new style core function declarations.
2021-07-27 08:01:56 +09:00
Calvin Rose
08f7b1b9e5
Run the formatter.
2021-07-26 17:54:26 -05:00
Calvin Rose
f2ac1c15e6
Merge pull request #735 from sogaiu/new-style-core-fn-decl-for-fiber
...
Update fiber.c with new style core function declarations.
2021-07-26 17:36:54 -05:00
Calvin Rose
eaf8f198c1
Merge pull request #733 from sogaiu/new-style-core-fn-decl-for-io
...
Update io.c with new style core function declarations.
2021-07-26 17:36:37 -05:00
sogaiu
2955286606
Update fiber.c with new style core function declarations.
2021-07-27 07:00:59 +09:00
Calvin Rose
40561340a8
Merge pull request #721 from uvtc/patch-1
...
docs for doc, searching for strings
2021-07-26 15:21:39 -05:00
Calvin Rose
4f00a7db88
Merge pull request #729 from sogaiu/new-style-core-fn-decl-for-os
...
Update os.c with new style core function declarations.
2021-07-26 15:21:15 -05:00
Calvin Rose
acc21d0b76
Merge pull request #724 from sogaiu/new-style-core-fn-decl-for-thread
...
Update thread.c with new style core function declarations.
2021-07-26 15:19:19 -05:00
Calvin Rose
db5df70d0c
Merge pull request #727 from sogaiu/new-style-core-fn-decl-for-string
...
Update string.c with new style core function declarations.
2021-07-26 15:19:07 -05:00
Calvin Rose
a6073dc237
Merge pull request #734 from sogaiu/new-style-core-fn-decl-for-inttypes
...
Update inttypes.c with new style core function declarations.
2021-07-26 10:29:53 -05:00
sogaiu
92c132381e
Update inttypes.c with new style core function declarations.
2021-07-26 21:52:02 +09:00
sogaiu
d0575e4087
Update io.c with new style core function declarations.
2021-07-26 21:39:13 +09:00
Calvin Rose
5ca48b96af
Merge pull request #728 from sogaiu/new-style-core-fn-decl-for-parse
...
Update parse.c with new style core function declarations.
2021-07-26 07:22:46 -05:00
Calvin Rose
2a9f30fc8a
Merge pull request #725 from sogaiu/new-style-core-fn-decl-for-table
...
Update table.c with new style core function declarations.
2021-07-26 07:16:28 -05:00
Calvin Rose
ba89a81a3e
Merge pull request #731 from sogaiu/new-style-core-fn-decl-for-net
...
Update net.c with new style core function declarations.
2021-07-26 07:11:15 -05:00
Calvin Rose
5f32300592
Merge pull request #732 from sogaiu/new-style-core-fn-decl-for-marsh
...
Update marsh.c with new style core function declarations.
2021-07-26 07:04:29 -05:00
sogaiu
15b4d9363b
Update marsh.c with new style core function declarations.
2021-07-26 18:29:59 +09:00
sogaiu
ceca0e7f0e
Update net.c with new style core function declarations.
2021-07-26 18:20:06 +09:00
Andrew Owen
700770b883
Update math.c for the new style
2021-07-26 01:51:13 -06:00
sogaiu
8365037be5
Update os.c with new style core function declarations.
2021-07-26 16:48:04 +09:00
sogaiu
dfaba7daa6
Update parse.c with new style core function declarations.
2021-07-26 15:42:33 +09:00
sogaiu
5756934144
Update string.c with new style core function declarations.
2021-07-26 15:23:04 +09:00
Andrew Owen
7b3ab2727f
Fix copy/paste mistake in ev/take docs
2021-07-26 00:11:05 -06:00
Andrew Owen
714ba808dd
Update ev.c to use the new binding style that provides source information
2021-07-25 23:25:38 -06:00
sogaiu
6e94e03baa
Update table.c with new style core function declarations.
2021-07-26 14:03:01 +09:00
sogaiu
ac98dbccb8
Update thread.c with new style core function declarations.
2021-07-26 13:46:31 +09:00
Calvin Rose
6e3355d7f2
Merge pull request #723 from sogaiu/new-style-core-fn-decl-for-tuple
...
Update tuple.c with new style core function declarations.
2021-07-25 22:41:42 -05:00
Calvin Rose
97907906c5
Merge pull request #722 from sogaiu/new-style-core-fn-decl-for-compile
...
Update compile.c with new style core function declarations.
2021-07-25 22:41:11 -05:00
Calvin Rose
eb84200f28
Fix linux issues with epoll on normal files.
...
We use the selfpipe trick if epoll fails with EPERM when trying to
register a file descriptor.
2021-07-25 21:47:52 -05:00
sogaiu
caaa26e153
Update tuple.c with new style core function declarations.
2021-07-26 11:33:46 +09:00
Calvin Rose
030dd747e9
Merge branch 'master' of github.com:janet-lang/janet
2021-07-25 20:21:59 -05:00
sogaiu
dccb98bb92
Update compile.c with new style core function declarations.
2021-07-26 09:07:53 +09:00
John Gabriele
e356b7141c
Update boot.janet
2021-07-25 17:26:31 -04:00
bakpakin
4cae7e6d5d
When building amalgamated build on windows, patch source-map.
...
We don't want any backslahes cropping up in the offical distribution of
janet.c.
2021-07-25 15:53:38 -05:00
bakpakin
cc07b4a89a
Merge branch 'master' of github.com:janet-lang/janet
2021-07-25 14:54:45 -05:00
bakpakin
7e8154e648
Update peg.c with new style core function declarations.
2021-07-25 14:54:25 -05:00
Calvin Rose
dfee997e45
Merge pull request #718 from uvtc/patch-1
...
Add some clarifying backticks to docs
2021-07-25 14:10:44 -05:00
Calvin Rose
f6b7cb9c49
Merge pull request #719 from uvtc/patch-2
...
Clarify docs on take and drop functions
2021-07-25 14:10:01 -05:00
bakpakin
4452d0e0f5
Update CHANGELOG.md
2021-07-25 13:08:17 -05:00
bakpakin
7fba44ccce
Add macro mechanism for defining C source information for functions.
...
This wil let us track source code for C functions more easily.
2021-07-25 13:03:01 -05:00
bakpakin
6f1695ecd4
Add utitities for interrupting the event loop.
...
janet_loop1_interrupt makes the event loop compatible
with safe interruptions for custom scheduling. Does this by exposing
custom events on the event loop. A custom event schedules a function pointer
to run in a way that can interrupt
epoll_wait/poll/GetQueuedCompletionStatus.
2021-07-25 09:08:46 -05:00
John Gabriele
76acbf9bb6
Clarify docs on take and drop functions
...
Pass in indexed and bytes, return tuples and strings, respectively.
2021-07-24 18:44:49 -04:00
John Gabriele
2769a62bb3
Add some clarifying backticks to docs
2021-07-24 16:58:21 -04:00
bakpakin
160dd830a0
Add janet_interpreter_interrupt for custom scheduling.
...
This would allow an embedder to suspend the current Janet fiber
via an external event like a signal, other thread, or really anything.
This is a useful primitive for custom schedulers that would call
janet_interpreter_interupt periodically (say, in an interval with SIG_ALRM),
do some work, and then use janet_continue on the janet_root_fiber, or
for embedding into other soft-realtime applications like a game. To say,
only allow about 5ms per frame of interpreter time.
2021-07-24 15:14:37 -05:00
bakpakin
aafc595e3a
Fix typo.
2021-07-24 12:47:51 -05:00
bakpakin
202783c67a
Add :d switch to os/spawn.
...
This allows for starting processes that can be turned into zombies.
2021-07-24 11:55:04 -05:00
Calvin Rose
f11b2c5a0d
Merge pull request #717 from yumaikas/fix-os-open-write-windows
...
Fix os open write windows, and add TerminateProcess calls
2021-07-24 07:52:40 -05:00
Andrew Owen
e8a86013da
Add fixes for :write on filestreams that come from os/open
2021-07-24 02:30:00 -06:00
Calvin Rose
a89c377c92
Add the fiber-fn macro which slightly generalizes coro.
2021-07-22 17:59:01 -05:00
Calvin Rose
54d73f6722
Make epoll the default on Linux for event loop implementations.
2021-07-21 21:46:26 -05:00
Calvin Rose
2e58f5f0d4
Add table/clear.
2021-07-21 19:58:42 -05:00
Calvin Rose
e7ea39f410
Prevent possible bad garbage collection when finalizing streams.
...
The GC finalizer for streams would sometimes try and use other objects
after they had already been freed.
2021-07-20 19:42:35 -05:00
Calvin Rose
a125218d03
Move some defines.
2021-07-20 18:24:56 -05:00
Calvin Rose
55b8563c08
Add janet_loop_fiber C function to run a fiber to completion from C.
...
This is mainly meant for use as the entry point to a C wrapper for a
janet program. This maeans the programmer doesn't need to use an ifdef
to handle if the event loop is enabled.
2021-07-18 09:39:37 -05:00
Calvin Rose
aea1f59f6e
Add option to build janet without thread library.
2021-07-17 15:13:28 -05:00
Calvin Rose
ab27b789e4
Fix minimal build.
2021-07-17 13:10:55 -05:00
Calvin Rose
3a1a59f1eb
Address windows build issue.
2021-07-16 21:10:02 -05:00
Calvin Rose
c20a76cddb
Update CHANGELOG and indicate next release will be 1.17.0
2021-07-16 21:05:42 -05:00
Calvin Rose
1ef6db16ed
Add janet_vm_save and janet_vm_load.
...
This lets a user multiplex multiple Janet VMs on a single
thread or process if they are willing to implement context switching
themselves.
2021-07-16 20:59:03 -05:00
Calvin Rose
230b734663
Delete jpm and related testing from this repository.
...
JPM and related functionality has been moved to it's own repository
and will be versioned separately from Janet. The distribution process
could later be modified to bundle a version of jpm with Janet but this
is perhaps not needed.
2021-07-15 20:49:41 -05:00
Calvin Rose
dc414f1239
Merge pull request #713 from yumaikas/fix-process-terminate-windows
...
Add TerminateProcess to janet_proc_gc and os_proc_kill on Windows
2021-07-11 09:30:07 -04:00
Calvin Rose
dafd2329c5
Merge pull request #712 from sogaiu/tweak-function-name
...
Tweak function name
2021-07-11 08:11:48 -05:00
Andrew Owen
12cfda1f58
Add TerminateProcess to janet_proc_gc and os_proc_kill on Windows
2021-07-11 04:05:11 -06:00
Andrew Owen
96b4e71704
Add TerminateProcess to janet_proc_gc and os_proc_kill on Windows
2021-07-11 03:56:08 -06:00
sogaiu
edb415d1a8
Tweak function name
2021-07-11 12:27:15 +09:00
Calvin Rose
72c1d1c484
Fix some error condiditions to have the right number of arguments.
2021-07-10 14:09:59 -04:00
Calvin Rose
41a7154aa5
Remove jhydro from CI pipeline.
2021-06-27 12:49:19 -05:00
Calvin Rose
346d024e48
Remove travis CI integration.
2021-06-27 12:48:07 -05:00
Calvin Rose
04a248dc37
Update CHANGELOG.md
2021-06-27 10:54:03 -05:00
Calvin Rose
5defc3b914
Fix bug with ev/go when passing supervisor and value.
...
value was incorrectly set to nil in these cases. Also
fix some typos in core docstrings.
2021-06-25 18:58:19 -05:00
Calvin Rose
04ca945ecf
Address #711 - don't persist (dyn :exit)
2021-06-24 14:51:08 -05:00
Calvin Rose
d687db71e7
Merge pull request #708 from subsetpark/patch-1
...
Update CHANGELOG.md [typo]
2021-06-12 10:34:45 -05:00
Calvin Rose
87f8fe14dd
Prepare for 1.16.1 release.
2021-06-09 19:08:24 -05:00
Zach Smith
af08124229
Update CHANGELOG.md
2021-06-08 12:22:54 -04:00
Calvin Rose
2eadb21eb7
Update changelog.
2021-05-31 16:51:53 -05:00
Calvin Rose
8b97a0dbbf
Merge pull request #707 from pepe/fix-shadow
...
Rename level const to not to shadow line in eval1
2021-05-31 16:05:41 -05:00
Calvin Rose
69afa2a7a3
Merge branch 'master' into fix-shadow
2021-05-31 16:05:29 -05:00
Calvin Rose
da5328bae5
Merge branch 'master' of git.sr.ht:~bakpakin/janet
2021-05-31 15:14:39 -05:00
Josef Pospíšil
a4325372e2
Rename level const to not to shadow line in eval1
2021-05-31 21:51:31 +02:00
Calvin Rose
4b96b73858
Add -w and -x flags to janet for linting.
2021-05-31 14:36:25 -05:00
Calvin Rose
bbae43f259
Update copyright dates.
2021-05-31 13:46:02 -05:00
bakpakin
14fedbf063
Update copyright.
2021-05-31 09:53:52 -05:00
Calvin Rose
ab974c409d
Remove externeous typedarray defines in janet.h
2021-05-31 09:23:45 -05:00
Calvin Rose
2040709585
Re-add make docs.
...
Wasn't hurting anything.
2021-05-30 16:44:37 -05:00
Calvin Rose
60214dc659
Update for windows compiler warning.
2021-05-30 16:42:58 -05:00
Calvin Rose
b990d77f16
Prepare for 1.16.0 release.
2021-05-30 12:15:56 -05:00
Calvin Rose
d204e06e11
Use lint information in run-context.
2021-05-30 10:33:46 -05:00
Calvin Rose
f6b37dbc77
Merge branch 'master' into linting
2021-05-30 09:34:32 -05:00
Calvin Rose
fab65d6c40
Merge branch 'master' into struct-proto
2021-05-30 09:33:59 -05:00
Calvin Rose
ff4d49f556
Set JANET_DIST_DIR on release.
2021-05-30 09:23:52 -05:00
Calvin Rose
dfa5fa1187
Remove some stupid shell gymnastics in Makefile.
2021-05-30 09:14:34 -05:00
Calvin Rose
1f4f69a5b6
Fix windows syntax issue.
2021-05-29 20:40:26 -05:00
Calvin Rose
84f82f5465
Remove code delimtiers from defn and defmacro.
2021-05-29 20:37:30 -05:00
Calvin Rose
c911f7c47e
Address #694 - Update doc-format with more features.
...
Also allows having doc-format print in color with
(dyn :doc-color).
2021-05-29 20:34:22 -05:00
Calvin Rose
4d983e54b5
Initial struct prototype code.
...
Also add a number of cfunctions for manipulating structs
with prototypes.
2021-05-29 11:43:18 -05:00
Calvin Rose
33c000daea
Expose linting array to macros.
...
This has a lot of possible uses, and would let users add a macro-based
type system on top of Janet that would integrate with the usual linting
and warning system.
2021-05-28 15:15:34 -05:00
Calvin Rose
7ff204ec44
Work on system for adding compiler warnings.
...
This is the beginning of a system for compiler warnings. This includes
linting, deprecation notices, and other compiler warnings that are best
detected by the `compile` function and don't require the partial
evalutaion of the flychecker.
2021-05-28 15:12:05 -05:00
Calvin Rose
7c757ef3bf
Make jpm configurable for environments like MinGW.
2021-05-26 10:07:11 -05:00
Calvin Rose
2db7945d6f
Fix peg bug when there is no default grammar set.
...
This could result in a segfault when we attempt to
read from a NULL pointer.
2021-05-20 21:57:22 -05:00
Calvin Rose
81186bf262
Merge branch 'master' of github.com:janet-lang/janet
2021-05-19 18:43:50 -05:00
Calvin Rose
eeef5b0896
Add as-macro and module/add-syspath
2021-05-19 18:18:00 -05:00
Calvin Rose
8189b6fc11
Merge pull request #690 from sogaiu/specials-doc
...
Make doc work for special forms
2021-05-09 13:54:46 -05:00
sogaiu
e5a2df93ab
Make doc work for special forms
2021-05-07 08:47:33 +09:00
Calvin Rose
c3f770da27
Fix meson build.
2021-04-29 15:59:44 -05:00
Calvin Rose
49f66a936c
Merge commit 'f4c9064b79d5b32fd74e5ddf25266356c22dd53b'
2021-04-29 15:58:41 -05:00
Calvin Rose
83dda98240
Update jpm to work post patch.
2021-04-29 14:28:54 -05:00
Calvin Rose
b4ddbd0097
Address #670 - Allow modifying jpm to link to extra libraries.
2021-04-29 14:04:18 -05:00
Calvin Rose
cbe92bb985
Merge branch 'master' of github.com:janet-lang/janet
2021-04-29 13:13:55 -05:00
Calvin Rose
60c6a0d334
Add :native-deps option to jpm.
...
Use is like:
```
(declare-native
:name "my-nuermical-library"
:source @["numerical_lib.c"]
:native-deps ["tarray"])
```
Where `tarray` is a native generated by o ne of the project
dependencies. This will lets us move more C functionality out of the
core of Janet while still allowing it's use from natives.
2021-04-29 13:11:46 -05:00
Calvin Rose
1baab5eb61
Remove typed arrays from the core.
...
Typed arrays will instead live in an external jpm nodule.
Also, changes have been made to `jpm` to allow other natives to use the
typedarray headers.
2021-04-29 12:33:49 -05:00
Calvin Rose
8fc8974b60
Add from-pairs to core. #683
...
This always creates a table, use `table/to-struct` to
create a struct.
2021-04-29 12:06:24 -05:00
Calvin Rose
ecb49c2e5e
Merge pull request #688 from cjones051073/use-nsgetenviron-on-apple
...
Use _NSGetEnviron() on Apple
2021-04-29 12:00:35 -05:00
Chris Jones
29797b9eb0
Use _NSGetEnviron() on Apple
2021-04-27 11:54:24 +01:00
Calvin Rose
e181ee586b
Prepare for 1.15.5 release.
2021-04-25 14:00:16 -05:00
Calvin Rose
7b7d742bec
Add declare-headers to jpm.
2021-04-25 13:38:24 -05:00
Calvin Rose
612eaff9ff
Fix #682 - Don't hardcode size of sun_path.
2021-04-15 14:57:40 -05:00
Calvin Rose
d76ef187e8
Merge pull request #681 from pyrmont/patch-2
...
Fix link to Introduction
2021-04-09 20:04:42 -05:00
Michael Camilleri
e01ab86a89
Fix link to Introduction
2021-04-08 16:10:24 +09:00
Calvin Rose
89b59b4ffc
Merge branch 'master' of github.com:janet-lang/janet
2021-04-06 23:36:11 -05:00
Calvin Rose
e367ecf806
Update cannonical link.
2021-04-06 23:35:57 -05:00
Calvin Rose
effc9e0f33
Merge pull request #677 from uvtc/patch-1
...
Add note about sponsorship to README
2021-04-02 15:00:21 -05:00
John Gabriele
da06e6c6e3
Update README.md
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2021-03-31 21:40:30 -04:00
John Gabriele
c258bee54f
Add note about sponsorship to README
2021-03-31 21:27:03 -04:00
Calvin Rose
cde4a505cf
Fix #673 - check typed array index bounds as well as buffer count.
2021-03-30 21:14:42 -05:00
Calvin Rose
2802e66259
Merge branch 'master' of github.com:janet-lang/janet
2021-03-26 15:45:14 -05:00
Calvin Rose
3a3003029a
Merge branch 'master' of github.com:janet-lang/janet
2021-03-26 15:44:43 -05:00
Calvin Rose
08bca8fb63
Merge branch 'master' of github.com:janet-lang/janet
2021-03-26 15:36:50 -05:00
Calvin Rose
7c7ff802fa
Add net/shutdown to allow better networking with streams.
2021-03-26 15:36:25 -05:00
Calvin Rose
0945acc780
Merge pull request #672 from Luewd/cc-file-ext
...
Allow .cc file extension in jpm declare-native
2021-03-26 15:13:12 -05:00
Lue
64ec9f9cb6
Allow .cc file extension in jpm declare-native
2021-03-25 13:19:05 -04:00
Calvin Rose
83f7de33c0
Merge pull request #671 from pyrmont/feature.metadata
...
Support adding arbitrary metadata to bindings
2021-03-24 16:56:25 -05:00
Michael Camilleri
ec2d7bf349
Support adding arbitrary metadata to bindings
2021-03-24 09:38:12 +09:00
Andrew Chambers
f4c9064b79
Add config support for custom allocators.
2021-03-23 23:00:48 +13:00
Calvin Rose
8ede16dc26
Merge pull request #669 from dbready/dist_layout
...
Create Folder Hierarchy for Linux Release
2021-03-22 11:51:21 -05:00
Damien Ready
27e400fba3
Prepare the .tar distribution with folder layout
2021-03-20 10:53:51 -05:00
Calvin Rose
37d6cb469b
Merge pull request #668 from ffontaine/master
...
meson.build: fix build without threads
2021-03-19 15:44:25 -05:00
Calvin Rose
100a82feb2
Version bump (development version).
2021-03-19 15:41:34 -05:00
Calvin Rose
90e5828d5d
Update printing when entering debugger.
2021-03-19 15:38:46 -05:00
Calvin Rose
b3e80308d4
Change inheritance rule.
2021-03-19 15:18:19 -05:00
Fabrice Fontaine
a7abe11105
meson.build: fix build without threads
...
Fix the following build failure with -Dsingle_threaded=true on embedded
toolchains without pthread:
FAILED: janet.p/meson-generated_.._janet.c.o
/home/buildroot/autobuild/run/instance-3/output-1/host/bin/arm-linux-gcc -Ijanet.p -I. -I.. -I../src/include -fdiagnostics-color=always -pipe -Wall -Winvalid-pch -std=c99 -O3 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -pthread -fvisibility=hidden -MD -MQ janet.p/meson-generated_.._janet.c.o -MF janet.p/meson-generated_.._janet.c.o.d -o janet.p/meson-generated_.._janet.c.o -c janet.c
In file included from /home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/stdlib.h:24,
from ../src/include/janet.h:300,
from src/core/features.h:57:
/home/buildroot/autobuild/run/instance-3/output-1/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/include/features.h:218:5: warning: #warning requested reentrant code, but thread support was disabled [-Wcpp]
218 | # warning requested reentrant code, but thread support was disabled
| ^~~~~~~
src/core/ev.c:39:10: fatal error: pthread.h: No such file or directory
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com >
2021-03-18 09:13:22 +01:00
Calvin Rose
3c63a48df4
( #667 ) Add constant inlining for tuples and structs.
...
Structs and tuples composed entirely out of constant values
will themselves be considered constant values during compilation.
This reduces the amount of generated code.
2021-03-16 20:52:55 -05:00
Calvin Rose
fcb88e5a98
Merge branch 'master' of github.com:janet-lang/janet
2021-03-16 20:12:47 -05:00
Calvin Rose
a467b34de4
Prepare for 1.15.4 release.
2021-03-16 20:12:33 -05:00
Calvin Rose
a24cc77ff8
Merge pull request #666 from pyrmont/patch-1
...
Remove instructions to add tags
2021-03-14 16:16:42 -05:00
Michael Camilleri
d6675d9909
Remove instructions to add tags
2021-03-14 15:07:33 +09:00
Calvin Rose
fa163093d2
Update CHANGELOG.md
2021-03-13 19:22:47 -06:00
Calvin Rose
e70f64e23d
Sort keys initial.
2021-03-13 19:17:07 -06:00
Calvin Rose
6f605f8141
Update pretty printing default depth.
2021-03-13 17:43:19 -06:00
Calvin Rose
d9419ef994
Merge pull request #660 from ffontaine/master
...
meson.build: fix static build
2021-03-12 19:06:33 -06:00
Calvin Rose
7e8639a682
Merge pull request #664 from leahneukirchen/meson-pkgconfig2
...
Fix include path when using meson
2021-03-12 17:11:54 -06:00
Leah Neukirchen
452b303b4c
Fix include path when using meson
...
Closes #661 .
2021-03-12 18:49:50 +01:00
Fabrice Fontaine
b0f1a4967d
meson.build: fix static build
...
Don't enforce -rdynamic when building statically to avoid the following
build failure:
/home/giuliobenetti/autobuild/run/instance-2/output-1/host/bin/arm-linux-gcc -o janet janet.p/meson-generated_.._janet.c.o janet.p/src_mainclient_shell.c.o -Wl,--as-needed -Wl,--allow-shlib-undefined -Wl,-O1 -rdynamic -Wl,-elf2flt -static -Wl,--start-group -lm -ldl -Wl,--end-group -pthread
arm-linux-gcc.br_real: error: unrecognized command line option '-rdynamic'
Fixes:
- http://autobuild.buildroot.org/results/a4f927f73a7b80e65408c992d7b6023609a1eacc
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com >
2021-03-12 08:46:05 +01:00
Calvin Rose
9eb4c59c04
Require opt-in behavior per script.
...
This means a binscript needs to indicate that it is a Janet script, and
then the user who is installing the script can choose whether or not to
do the magic shebang replacement.
2021-03-11 18:47:53 -06:00
Calvin Rose
0d42506cde
Merge branch 'master' of github.com:janet-lang/janet
2021-03-11 18:37:54 -06:00
Calvin Rose
c8a13ce475
Add --auto-shebang option to jpm.
2021-03-11 18:37:45 -06:00
Calvin Rose
05e3467d09
Merge pull request #655 from uvtc/patch-1
...
Update os.c
2021-03-11 18:12:54 -06:00
Calvin Rose
90639e5068
Merge pull request #658 from pyrmont/bugfix.jpm-realpath
...
Fix argument passing to os/realpath in jpm
2021-03-11 18:12:38 -06:00
Calvin Rose
73c7711c78
Merge pull request #657 from ffontaine/master
...
meson.build: defaults to c99 for "build.c_std"
2021-03-11 18:12:25 -06:00
Calvin Rose
78f6b6a507
Add auto-shebang functionality.
2021-03-11 18:10:33 -06:00
Michael Camilleri
84f0ab5356
Fix argument passing to os/realpath in jpm
2021-03-10 17:11:12 +09:00
Fabrice Fontaine
546437d799
meson.build: defaults to c99 for "build.c_std"
...
Since Meson 0.51, there are special build options for "native:true"
builds, prefixed with "build.". This change breaks cross builds
because `janet-boot/src_core_asm.c` is no longer built with `-std=c99`:
FAILED: janet-boot.p/src_core_asm.c.o
/usr/bin/gcc -Ijanet-boot.p -I. -I.. -I../src/include -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -pthread -DJANET_BOOTSTRAP -MD -MQ janet-boot.p/src_core_asm.c.o -MF janet-boot.p/src_core_asm.c.o.d -o janet-boot.p/src_core_asm.c.o -c ../src/core/asm.c
../src/core/asm.c: In function 'janet_disasm_bytecode':
../src/core/asm.c:866:5: error: 'for' loop initial declarations are only allowed in C99 mode
for (int32_t i = 0; i < def->bytecode_length; i++) {
^
Fixes:
- http://autobuild.buildroot.net/results/355e0992338a8d132050517f83a3884606b00529
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com >
2021-03-10 07:57:53 +01:00
John Gabriele
0f05aec563
Update os.c
...
Doc typo
2021-03-09 14:39:09 -05:00
Calvin Rose
c9097623d6
Add group-by and partition-by to the core.
...
Semantics are mostly emulated from Clojure.
2021-03-04 19:34:36 -06:00
Calvin Rose
6392b37c47
Merge branch 'master' of github.com:janet-lang/janet
2021-02-28 13:05:05 -06:00
Calvin Rose
4fcc8075d4
Release 1.15.3
2021-02-28 13:04:24 -06:00
Calvin Rose
b2d6a55335
Merge pull request #646 from pyrmont/bugfix.run-context-match
...
Fix call to match in run-context
2021-02-28 10:48:43 -06:00
Michael Camilleri
1fea5f8fe7
Fix call to match in run-context
2021-02-28 14:23:17 +09:00
Calvin Rose
d3e52a2afb
Fix makefile to attach build identifier.
2021-02-27 19:50:31 -06:00
Calvin Rose
d6ea1989cc
Merge branch 'master' of github.com:janet-lang/janet
2021-02-26 17:29:25 -06:00
Calvin Rose
96513665d6
Address #641 - add undef combinator.
...
The (undef rule :tag) combinator lets a user "scope" tagged captures.
After the rule has matched, all captures with tag :tag can no longer be
refered to by their tag. However, such captures from outside
rule are kept as is. If no tag is given, all tagged captures from rule
are unreferenced. Note that this doesn't `drop` the captures, merely
removes their association with the tag. This means subsequent calls to
`backref` and `backmatch` will no longer "see" these tagged captures.
2021-02-26 17:25:09 -06:00
Calvin Rose
b795d13f61
Merge pull request #642 from pyrmont/feature.run-context-location
...
Allow source location in run-context to be updated
2021-02-26 16:36:03 -06:00
Calvin Rose
970f9b3981
Merge pull request #643 from uvtc/patch-1
...
`sort` doc
2021-02-26 16:28:27 -06:00
John Gabriele
be7dab4d17
Update boot.janet
2021-02-23 22:30:42 -05:00
John Gabriele
0e44ce5cba
Update boot.janet
2021-02-23 22:26:53 -05:00
John Gabriele
1f8c2781dd
sort doc
...
Clarify doc for `sort` and `sorted`. Also in `sort`, changed arg name.
2021-02-23 22:24:59 -05:00
Michael Camilleri
f381a9c773
Check that new source location is a string
2021-02-22 12:50:44 +09:00
Michael Camilleri
855a9a01fc
Allow source location in run-context to be updated
2021-02-22 12:38:56 +09:00
Calvin Rose
a5f237993d
Don't fail testing when ev disabled.
2021-02-20 10:56:54 -06:00
Calvin Rose
c68264802a
Fix #638 - update fiber status in certain cases.
...
This fixes a regression from changes to janet_try. In some cases, we
would not update the status of a fiber when signaling, which left the
fiber's status as whatever it had previously. This could lead to strange
control flow issues.
2021-02-20 10:55:16 -06:00
Calvin Rose
742469a8bc
Address #640 .
...
Allow for a zero length match at the end of a string when using the
to or thru combinators.
2021-02-19 16:10:03 -06:00
Calvin Rose
92928d5c4f
Update definition of or.
2021-02-16 17:00:27 -06:00
Calvin Rose
8320e25d64
Merge pull request #639 from leahneukirchen/or
...
Fix or with zero arguments
2021-02-16 16:57:21 -06:00
Leah Neukirchen
c16a9d8463
Fix or with zero arguments.
...
The value is nil to be consistent for and/or and all/some.
Also add some tests for and/or.
2021-02-16 19:59:03 +01:00
Calvin Rose
f1819c916a
Fix build error for 1.15.2
2021-02-15 10:27:19 -06:00
Calvin Rose
dd14b24d2a
1.15.1 release.
2021-02-15 10:21:22 -06:00
Calvin Rose
050d7c12a3
Prepare for 1.15.1 release.
2021-02-15 10:19:24 -06:00
Calvin Rose
7e2c433abc
Fix #636
2021-02-14 14:34:52 -06:00
Calvin Rose
6713b23a65
Change behavior of empty env table passed to os/execute on windows.
2021-02-14 11:22:20 -06:00
Calvin Rose
60078e7950
Change os/execute implementation for windows.
2021-02-14 11:04:59 -06:00
Calvin Rose
69095fbb48
Merge pull request #633 from Alligator/master
...
Add missing argument to errorf in jpm
2021-02-10 17:51:47 -06:00
alligator
c88a3c64e3
Add missing argument to errorf
2021-02-10 22:45:43 +00:00
Calvin Rose
771b0d0ab1
Version bump.
2021-02-09 20:32:09 -06:00
Calvin Rose
c85310578b
Merge pull request #632 from sogaiu/tweak-spec-readint
...
Tweak spec_readint
2021-02-09 17:47:25 -06:00
sogaiu
60e2992158
Tweak spec_readint
2021-02-10 08:33:46 +09:00
Calvin Rose
2795e8a8b7
Update some sr.ht configs.
2021-02-08 18:26:04 -06:00
Calvin Rose
bdf14170a4
Get ready for 1.15.0 release.
2021-02-08 18:10:46 -06:00
Calvin Rose
10dcbc639a
Immediate instuctions will now call :compare method.
2021-02-08 11:53:25 -06:00
Calvin Rose
6a9bb0f4e4
Define immediate comparison instructions for non-integers.
...
Previous, the instructions were defined only for values that
fit into 32 bit integers for legacy reasons.
2021-02-08 11:41:48 -06:00
Calvin Rose
c941e5a8f4
Merge pull request #628 from yumaikas/master
...
Switch out `by` to `before?` in sort functions.
2021-02-05 18:17:52 -06:00
Calvin Rose
be91414c7a
Improve error message from janet_call.
...
List expected arity in error messages.
2021-02-05 18:01:52 -06:00
Calvin Rose
6839b603c8
x86 32 bit on windows.
2021-02-04 23:31:04 -06:00
Andrew Owen
926b68d62e
Switch out by to before? in sort functions.
...
Makes docstrings easier to read, and reduces confusion with sorted-by
and sort-by.
2021-02-04 22:28:46 -07:00
Calvin Rose
d374e90033
Update sort documentation.
2021-02-04 20:11:24 -06:00
Calvin Rose
b168b0758a
Fix #625 - no fancy mixing in number hasing
...
Just hash upper 32 bits with lower 32 bits. Trying to get too fancy
was causing slowdowns in very trivial cases. Assuming that all
combinations of 64 bits in a double are equally likely (suspect but
probably not that incorrect), the obvious method of xoring the top
32 bits with the lower 32 bits gives a uniform distribution.
2021-02-04 19:37:11 -06:00
Calvin Rose
54c66ecfc0
Merge pull request #622 from sogaiu/tweak-add-paths-docstring
...
Tweak module/add-paths docstring
2021-02-04 19:05:34 -06:00
sogaiu
1c158bd4ff
Tweak module/add-paths docstring
2021-02-03 21:11:16 +09:00
Calvin Rose
ff24143f54
Merge pull request #620 from sogaiu/marshal-doc
...
Tweak marshal docstring
2021-02-02 21:29:54 -06:00
Calvin Rose
dd117e81c2
Fix parser/insert.
...
We need to add the tuple wrapping code there as well.
2021-02-02 18:55:24 -06:00
sogaiu
f4744a18c6
Tweak marshal docstring
2021-02-02 15:00:57 +09:00
Calvin Rose
259d5fabd9
Update Makefile and build_win for better builds.
...
Use build/c/janet.c in both to prevent accidental inclusion
of build/janet.h (which may be stale) instead of the source headers.
2021-01-31 09:59:53 -06:00
Calvin Rose
d122a75efd
Cleanup boot.janet to be more like normal source code.
...
Don't use `undef`, just use private defines.
2021-01-31 09:08:39 -06:00
Calvin Rose
c9ea3ac304
Address #618 - clarify file/open docs.
2021-01-31 08:39:57 -06:00
Calvin Rose
c63fe6ef8a
Make flycheck follow GNU standards for errors.
2021-01-30 12:51:38 -06:00
Calvin Rose
72ec89dfe9
Change output format for line+col.
2021-01-30 11:33:15 -06:00
Calvin Rose
04805d106e
Simpler overflow check.
2021-01-29 20:11:38 -06:00
Calvin Rose
9aed578466
Address #616 Buffer extra overflow bug.
...
We should have a normal error instead of undefined behavior, wrap
around, or wait for realloc to fail.
2021-01-29 18:32:54 -06:00
Calvin Rose
77c5279296
Merge pull request #611 from subsetpark/doc-example-readme
...
Use a slightly clearer example of the `doc` fun in README
2021-01-24 17:25:37 -06:00
Calvin Rose
af75bf3b64
Update for sending streams to new threads.
2021-01-24 16:48:46 -06:00
Zach Smith
a5157e868b
Use a slightly clearer example of the doc fun in README
2021-01-24 15:44:34 -05:00
Calvin Rose
01a3d8f932
Address #478 - Disable core in static binaries/
...
Add --no-core option to quickbin, as well as :no-core option
to declare executable. This doesn't use the autodetection when
making binaries, instead opting for manual intervention.
2021-01-23 17:47:41 -06:00
Calvin Rose
f22472a644
Begin work on allowing small binaries.
2021-01-23 17:08:11 -06:00
Calvin Rose
5cac8bcf9f
Prepare for patch release.
2021-01-23 14:48:36 -06:00
Calvin Rose
a2801fbef9
Fix #610 - POLLHUP should cause us to continue reading.
2021-01-23 14:26:24 -06:00
Calvin Rose
0b14e913da
Merge branch 'master' of github.com:janet-lang/janet
2021-01-23 13:54:36 -06:00
Calvin Rose
85155bb2b4
Reference #478 Update peg/compile to use dyn for default grammar.
2021-01-23 13:54:02 -06:00
Calvin Rose
dd8de1e9ac
Merge pull request #609 from yumaikas/master
...
Change tracev to upscope instead of using let
2021-01-22 19:02:27 -06:00
Calvin Rose
c909835b0a
Update CHANGELOG.
2021-01-22 12:55:38 -06:00
Calvin Rose
a18aafedfd
Merge branch 'master' of github.com:janet-lang/janet
2021-01-22 12:53:28 -06:00
Calvin Rose
317ab6df6b
Add ev/thread and ev/do-thread.
...
- Also fix setting supervisor with net/accept-loop.
2021-01-22 12:52:45 -06:00
Andrew Owen
1fcaffe6b0
Change tracev to upscope, add test
2021-01-21 23:40:28 -07:00
Calvin Rose
3ae5c410dc
Merge pull request #606 from snimmagadda/master
...
Replace malloc + memset with calloc.
2021-01-21 12:59:21 -06:00
Sunil Nimmagadda
381128364e
Replace malloc + memset with calloc.
...
Fixes an overflow warning from gcc with '-Wstringop-overflow' on
NetBSD-current.
2021-01-21 19:35:57 +05:30
Calvin Rose
0acf167e84
Merge pull request #602 from pyrmont/feature.module-docstrings
...
Display module-level docstrings with (doc)
2021-01-20 22:11:38 -06:00
Calvin Rose
f7ca6deeb0
Merge pull request #603 from pepe/evcal-doc
...
Fix ev/call doc
2021-01-20 20:52:23 -06:00
Josef Pospíšil
251486e4aa
Fix ev/call doc
2021-01-20 20:31:41 +01:00
Michael Camilleri
c6467be60d
Conform display of path with existing display of source map info
2021-01-20 10:47:55 +09:00
Michael Camilleri
4dd512ad28
Use print-module-entry function to display docstring
2021-01-20 10:16:59 +09:00
Michael Camilleri
28076b9385
Display module-level docstrings with (doc)
2021-01-20 10:01:31 +09:00
Calvin Rose
49dcc816ae
Update os/shell to be non-blocking as well.
2021-01-18 16:44:22 -06:00
Calvin Rose
fa61c70103
Release 1.14.1
2021-01-18 11:51:42 -06:00
Calvin Rose
5ee6dbcdf4
Prepare for 1.14.1 release.
2021-01-18 11:43:53 -06:00
Calvin Rose
634219da2c
Fix windows swallowing IOCP events in many cases.
...
This fixes windows hanging on "failed" IO operations.
2021-01-17 20:41:59 -06:00
Calvin Rose
fbe3849b4b
Revert change to propagate op code.
2021-01-17 15:33:42 -06:00
Calvin Rose
bd2e335063
Allow 1 argument call of debug/stacktrace
...
Since fibers now track the last value signaled.
2021-01-17 13:55:40 -06:00
Calvin Rose
96262e7d87
Fix integer limit docs.
2021-01-17 13:44:53 -06:00
Calvin Rose
c5da87b860
Fix broken doc format.
...
Many assumptions in the parsing code that could cause infinite
loops, as well as assuming things were non-nil.
2021-01-17 11:36:48 -06:00
Calvin Rose
848d4a1498
Update man page.
2021-01-16 19:40:29 -06:00
Calvin Rose
70e23df6f8
Merge branch 'master' of github.com:janet-lang/janet
2021-01-16 18:29:41 -06:00
Calvin Rose
95af205681
Merge pull request #589 from yumaikas/master
...
Add support for a profile.janet
2021-01-16 18:29:00 -06:00
Calvin Rose
6dfb689d1f
Update versions to indicate 14.1
2021-01-16 15:54:27 -06:00
Calvin Rose
462e74ef87
Add os/proc-close to close all pipes associated with a subprocess.
...
This will not leak handles until the GC runs in most use cases.
2021-01-16 15:11:07 -06:00
Andrew Owen
c6aa536590
Clean up env dance
2021-01-16 12:47:50 -07:00
Calvin Rose
c79480342b
Remove unused defines.
2021-01-16 07:19:28 -06:00
Calvin Rose
a1cc5ca045
Fix #593 .
...
Also add ev/give-supervisor to the core.
2021-01-16 07:18:07 -06:00
Andrew Owen
7f74ff3dd7
Restore :source property to keep import* working at REPL
2021-01-15 02:59:17 -07:00
Andrew Owen
c4a95e9a1e
Update error handling, kill a bikeshed argument
2021-01-15 01:53:14 -07:00
Andrew Owen
71f9e2b1d7
Add support for a profile.janet
...
Add support for a profile.janet, along with a flag for disabling it's use.
2021-01-15 01:31:23 -07:00
Calvin Rose
16fe32215b
Merge pull request #584 from sogaiu/tweak-file-docs
...
Tweak file docs
2021-01-13 21:41:33 -06:00
Calvin Rose
dd7342a6cf
Merge pull request #583 from sogaiu/tweak-debug-docs
...
Tweak debug/stack docs
2021-01-13 21:41:26 -06:00
Calvin Rose
35c88d10cd
Merge pull request #582 from sogaiu/tweak-parser-docs
...
Tweak parser docs
2021-01-13 21:41:09 -06:00
Calvin Rose
42532de0eb
Merge pull request #585 from sogaiu/tweak-os-docs
...
Tweak os docs
2021-01-13 21:41:01 -06:00
sogaiu
122e2a9378
Tweak os docs
2021-01-14 08:44:56 +09:00
sogaiu
33c9395d79
Tweak file docs
2021-01-14 08:33:04 +09:00
sogaiu
fc49aa359c
Tweak debug/stack docs
2021-01-14 07:47:50 +09:00
sogaiu
fcf37942a7
Tweak parser docs
2021-01-14 07:31:20 +09:00
Calvin Rose
9b42d5a5e9
Merge pull request #579 from sogaiu/tweak-type-docs
...
Tweak type docs
2021-01-13 12:26:30 -06:00
Calvin Rose
ba92dfcbe9
Merge pull request #580 from sogaiu/tweak-update-docs
...
Tweak update docs
2021-01-13 12:26:10 -06:00
Calvin Rose
fd03603adb
Merge pull request #577 from sogaiu/tweak-expand-path-docs
...
Tweak module/expand-path docs
2021-01-13 12:25:55 -06:00
Calvin Rose
2008ddf8a8
Merge pull request #578 from sogaiu/tweak-disasm-docs
...
Tweak disasm docs
2021-01-13 12:25:30 -06:00
sogaiu
c56b876bfe
Tweak update docs
2021-01-13 23:04:06 +09:00
sogaiu
c4957d5dfb
Tweak type docs
2021-01-13 22:59:43 +09:00
sogaiu
068bd33afb
Tweak disasm docs
2021-01-13 22:27:03 +09:00
sogaiu
e9bd108be9
Tweak module/expand-path docs
2021-01-13 22:16:54 +09:00
Calvin Rose
4f2d1cdc00
Go back to a single supervisor channel per fiber.
...
We now also use the fiber mask to figure out which flags to wait for.
2021-01-12 21:35:28 -06:00
Calvin Rose
61cca10cf6
Allow iterating through the properties of core abstract types.
2021-01-11 23:14:07 -06:00
Calvin Rose
dfbdd17dce
Add doc-of function to core for reverse documentation lookup.
2021-01-11 20:32:26 -06:00
Calvin Rose
9078d3bd37
Update CHANGELOG.md
2021-01-11 18:54:50 -06:00
Calvin Rose
5e1a8c86f9
Add more network and subprocess testing with redirection.
2021-01-11 18:32:56 -06:00
Calvin Rose
bf01bf631d
More work on windows networking code.
...
Remove use of WSARecv and WSASend since for whatever reason
they seem suspect. We may want to revisit this later.
2021-01-11 18:00:31 -06:00
Calvin Rose
80c5ba32b5
Remove wait from CI testing for networking tests.
...
We want to expose any existing race conditions.
2021-01-11 15:55:12 -06:00
Calvin Rose
874cc79443
Fix #571 - fiber/status and fiber/new docstrings.
2021-01-11 15:44:46 -06:00
Calvin Rose
3883460202
Remove length checks to a number of core functions.
...
This lets them be more generic and implemented over a wider range of
data types, such as fibers.
2021-01-11 15:01:41 -06:00
Calvin Rose
f0dbc2e404
Fix subprocess spawning on windows.
...
Also fix (:read stream :all)
2021-01-11 11:10:23 -06:00
Calvin Rose
4df1ac5b23
Fix some issues in os.c to diagnose improve windows subprocess code.
2021-01-11 09:06:39 -06:00
Calvin Rose
1f6d0d342b
Fix #566 - bad docstring and bad arity for net/flush.
2021-01-10 12:02:28 -06:00
Calvin Rose
4625c28e6a
Merge branch 'master' of github.com:janet-lang/janet
2021-01-10 11:59:41 -06:00
Calvin Rose
5536ba20a8
Move socket setup code from ev.c to net.c
2021-01-10 11:58:47 -06:00
Calvin Rose
ef398e9036
Merge pull request #567 from Nananas/patch-1
...
Minor typo in ev/rselect docstring
2021-01-10 11:47:37 -06:00
Thomas Dendale
0c73c3f1cd
Minor typo in ev/rselect docstring
...
`ev/choice` is actually called `ev/select`
2021-01-10 16:42:52 +01:00
Calvin Rose
7ae7984f3c
Allow yielding from root fiber to ev loop.
2021-01-09 23:35:34 -06:00
Calvin Rose
8286b33c52
Add event-chan argument to ev/go.
...
The event-chan is the final piece of the puzzle for fibers, and
will be pushed to when a fiber yields to the event loop.
2021-01-09 23:33:23 -06:00
Calvin Rose
475775cc9d
Add a "new_channel" for root fibers.
...
When new fibers are scheduled on the event loop, this new_channel
receives the newly created fibers. This lets a fiber track which fibers
have been added and let's a user implement a supervisor.
Fix formatting.
2021-01-09 18:33:40 -06:00
Calvin Rose
11067d7a56
Update module and rem operator for int types.
2021-01-09 14:47:43 -06:00
Calvin Rose
5b05da65f0
Allow wrap around on u64.
...
This lets some math work as expected.
2021-01-09 12:43:33 -06:00
Calvin Rose
444e630783
Fix formatting.
2021-01-09 10:14:20 -06:00
Calvin Rose
8951b8de7a
Inherit the supervisor channel from the root fiber if not given.
2021-01-08 16:32:23 -06:00
Calvin Rose
2abb87eb63
Add space in docstring.
2021-01-07 18:57:13 -06:00
Calvin Rose
32e8ac912d
Merge branch 'master' of github.com:janet-lang/janet
2021-01-07 18:08:08 -06:00
Calvin Rose
e403fb4652
Do not try and preload imports that are relative.
2021-01-07 18:07:47 -06:00
Calvin Rose
daa37c22f5
Merge pull request #551 from pepe/remove-redundant-do
...
Remove redundant do
2021-01-07 10:38:21 -06:00
Josef Pospíšil
5a2a134c95
Remove redundant do
2021-01-07 14:38:58 +01:00
Calvin Rose
b9acb6dfa5
Update CHANGELOG.md
2021-01-06 23:25:00 -06:00
Calvin Rose
4e7ad3c7ce
Add initial implementation for supervisor channels.
...
Supervisor channels are a simple concept to more efficiently
enable dynamic, structure concurrency. When a top-level fiber
completes (or errors), it will push itself to it's supervisor
channel if it has one (instead of printing a stacktrace). This
let's another fiber poll a channel and "supervise" a set of fibers.
2021-01-06 23:19:22 -06:00
Calvin Rose
ee0e1a2342
Remove jpm.bat from windows dist.
...
It is still present in the MSI.
2021-01-06 19:36:37 -06:00
Calvin Rose
f206b476d1
Fix #550 - add varfn to safe forms for flycheck.
2021-01-06 17:31:08 -06:00
Calvin Rose
dd2595c53f
Merge branch 'master' of github.com:janet-lang/janet
2021-01-06 17:27:50 -06:00
Calvin Rose
545df28d71
Add flycheck function to core.
...
Also make flychecking work with stdin out of the box.
2021-01-06 17:27:17 -06:00
Calvin Rose
16f80b78cf
Merge pull request #546 from pepe/doc-thread-new-loop
...
Update doc for thread/new and remove ws in loop's
2021-01-05 20:31:46 -06:00
Calvin Rose
147bcce01b
Merge pull request #549 from pyrmont/docs.string-find-all-typo
...
Fix typos in string/find-all documentation
2021-01-05 20:31:12 -06:00
Calvin Rose
f5877ac6d1
Revert makefile.
2021-01-05 20:29:50 -06:00
Calvin Rose
adc41e31f4
Address #547 - don't drop references.
...
Keep a separate stack for tagged references. May cause pegs to
use more memory but makes the backref and backmatch features much more
powerful.
Also disables the second stack if backref and backmatch are not used in the peg.
2021-01-05 20:27:15 -06:00
Michael Camilleri
2e555a930f
Fix typos in string/find-all documentation
2021-01-06 10:14:49 +09:00
Calvin Rose
bcba0c0279
Fix #548 - string/split bug.
...
Also update docstrings for string/find. The 'skipping'
behavior that was documented only applies to to string/replace-all.
2021-01-05 18:54:51 -06:00
Josef Pospíšil
c7f382add6
Update doc for thread/new and remove ws in loop's
2021-01-04 18:29:00 +01:00
Calvin Rose
665b1e68d5
Pluralize arity compile warning.
2021-01-03 20:15:51 -06:00
Calvin Rose
2ca9300bf7
Add sort tests.
2021-01-03 16:45:37 -06:00
Calvin Rose
81f62b246c
Merge pull request #545 from felixr/master
...
Revert my buggy hybrid sort
2021-01-03 16:39:23 -06:00
Calvin Rose
87badc71d2
Remove :generate verb from loop.
...
Instead, one case use `:in` as with otehr data structures.
2021-01-03 16:38:38 -06:00
Calvin Rose
e5242c67ff
Update changelog and documentation.
2021-01-03 16:30:43 -06:00
Calvin Rose
4355420994
Remove function eachy.
...
Instead use `each`.
2021-01-03 16:19:23 -06:00
Calvin Rose
c357af02c2
Allow iterating over fibers with each and similar.
2021-01-03 16:17:36 -06:00
Felix Riedel
19576effbe
Revert "Tweak sort: use insertion sort for small arrays"
...
This reverts commit 0ea77cabfb .
2021-01-03 20:09:50 +00:00
Calvin Rose
ecc6eb7497
Don't fail jpm if os/realpath fails.
2021-01-03 13:09:41 -06:00
Calvin Rose
d0ac318980
Don't print to stderr in Makefile to detect version. Fix #544
2021-01-03 12:59:16 -06:00
Calvin Rose
7b030fe70d
Fix some return issues.
2021-01-03 11:54:31 -06:00
Calvin Rose
115556fcf2
Merge branch 'ev_execute'
2021-01-03 11:48:00 -06:00
Calvin Rose
9760cf1f4e
Fix MSVC warning.
2021-01-03 11:47:29 -06:00
Calvin Rose
47bb7fd21b
Begin implementing async subproccesses for windows.
2021-01-03 11:21:44 -06:00
Calvin Rose
1c7ed8ca48
Use PostQueuedCompletionStatus for threaded calls on windows.
...
Ore efficient than using a self pipe.
2021-01-03 11:08:12 -06:00
Calvin Rose
6b268c5df4
find-index now takes optional default.
2021-01-03 09:33:52 -06:00
Calvin Rose
62f783f1dc
Merge branch 'master' of github.com:janet-lang/janet
2021-01-03 09:26:31 -06:00
Calvin Rose
61c65f3df1
Fix valgrind warning.
2020-12-31 16:30:54 -06:00
Calvin Rose
05166b3673
Fix proc getter bug.
2020-12-31 16:23:20 -06:00
Calvin Rose
0a1c93b869
Add ev api for making threaded calls.
...
Easy way to make arbitrary functions in C async.
2020-12-31 16:12:42 -06:00
Calvin Rose
788f91a36f
Remove unneeded book keeping for sub processes.
...
Since we are not using signals we no longer need some bookkeeping.
2020-12-31 11:52:12 -06:00
Calvin Rose
c831ecf5d2
Working implementation of process waiting with threads.
...
Does not require all sorts of signal handling code
that is not thread-safe and can "steal processes".
However, there is a much simpler way to add this functionality
by creating a new stream and thread for each subprocess when it is
waited on. This is perhaps _slightly_ less efficient but oh so much
simpler, since we can reuse all of our concepts from streams and there
is no need to implement a whole system around the selfpipe.
2020-12-31 11:22:18 -06:00
Calvin Rose
9e42ee153c
Merge branch 'master' into HEAD
2020-12-30 12:19:13 -06:00
Calvin Rose
d457aa5951
Deprecate file/popen.
...
os/spawn is the prefered way of creating a subprocess and
communicating with it.
2020-12-30 10:22:45 -06:00
Calvin Rose
ab37ee6ebb
Add :all option to ev/read.
...
Brings ev/read more in line with file/read.
2020-12-29 20:37:59 -06:00
Calvin Rose
8655530b19
Rename predicates in module/paths
2020-12-29 19:52:26 -06:00
Calvin Rose
27b1f59aa9
Change Ctrl-C and move old behavior to Ctrl-Q
...
This lets Janet be a better unix citizen and lets Ctrl-C
raise an interrupt. Trying to make Janet behave superficially
like a shell by overriding Ctrl-C is not helpful.
2020-12-29 16:20:37 -06:00
Calvin Rose
cc2cc4db43
Merge pull request #541 from sogaiu/match-doc-formatting
...
Tweak match docstring
2020-12-29 13:10:35 -06:00
Calvin Rose
20bcd95279
Merge commit '0ea77cabfb30afc15433581f5888171c1f65aafd'
2020-12-28 12:20:21 -06:00
Calvin Rose
d7954be5e5
Update docstring for os/open.
2020-12-28 11:00:15 -06:00
Felix Riedel
0ea77cabfb
Tweak sort: use insertion sort for small arrays
2020-12-28 16:06:48 +00:00
Felix Riedel
0d46352ff4
Revert to better performing number hash.
2020-12-27 14:05:40 +00:00
sogaiu
ffa0d5fe45
Tweak match docstring
2020-12-27 13:42:22 +09:00
Calvin Rose
a2c837a99c
Merge remote-tracking branch 'felixr/master' into master
2020-12-26 20:06:34 -06:00
Calvin Rose
13d8d11011
Try new number hashing with frexp.
...
This may be a bit slower in some cases but generally should
have much better hashing for numbers.
2020-12-26 16:54:14 -06:00
Calvin Rose
2357b6162f
Update test-install target.
2020-12-26 15:42:13 -06:00
Calvin Rose
b4f242193d
Improve hash function for numbers.
2020-12-26 15:38:04 -06:00
Calvin Rose
7242ee0186
Merge pull request #540 from felixr/better-quicksort
...
Improve quicksort to avoid worst case performance on sorted input
2020-12-26 15:23:01 -06:00
Felix Riedel
3e742ffc4c
Improve quicksort to avoid worst case performance.
...
The current implementation will have quadratic behaviour for already
sorted arrays because it picks the last element as pivot. In an sorted
array this splits the array repeatedly into the biggest value and all
other values.
The implementation in this commit uses the *median of three* as pivot.
`janet -e "(sort (range 10000))"` to reproduce quadratic behaviour.
2020-12-26 19:18:17 +00:00
Felix Riedel
2ec12fe06f
Improve hashing of numbers
...
Using an integer hash (https://stackoverflow.com/a/12996028/60617 ) on
the number casted to int32 combined with lower bits of the number.
2020-12-26 13:09:11 +00:00
Felix Riedel
c76e0ae685
Use boost's way of combining hash values for arrays and kv pairs.
...
`seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);`
from https://www.boost.org/doc/libs/1_35_0/doc/html/boost/hash_combine_id241013.html
The current way of combining hashes peforms poorly on hash values of
numbers. Changing the way hashes are combined canlead to a significant speed up:
```
time janet_new -e '(def tbl @{}) (loop [x :in (range 1000) y :in (range 1000)] (put tbl {0 x 1 y} true))'
3.77s user 0.08s system 99% cpu 3.843 total
time janet_orig -e '(def tbl @{}) (loop [x :in (range 1000) y :in (range 1000)] (put tbl {0 x 1 y} true))'
48.98s user 0.15s system 99% cpu 49.136 total
```
2020-12-26 13:05:03 +00:00
Calvin Rose
25ded775ad
Add array/clear.
...
Also improve map, find-index, and find to work on data structures
which do not defined length.
2020-12-18 12:37:58 -06:00
Calvin Rose
cae4f19629
Merge pull request #532 from pyrmont/feature.parser-line-col-setting
...
Update (parser/where) to support optional line and column
2020-12-15 19:03:25 -06:00
Michael Camilleri
04f6c7b156
Clarify docstring of parser/where
2020-12-15 16:41:45 +09:00
Michael Camilleri
77b79e9899
Update (parser/where) to support optional line and column
2020-12-15 14:12:33 +09:00
Calvin Rose
a55354357c
Make dofile error if source file errors.
...
This should make dofile a bit easier to use.
It also means that import properly raises errors when
things go bad.
2020-12-14 08:23:06 -06:00
Calvin Rose
392d5d51df
Fix build info for 1.13.1
2020-12-13 11:59:52 -06:00
Calvin Rose
9bc996a630
Prepare for 1.13.0 initial release.
2020-12-13 11:17:10 -06:00
Calvin Rose
7b709d4c68
Prevent buffer/trim from shrinking buffer to 0 bytes as well.
2020-12-13 09:38:35 -06:00
Calvin Rose
eab5f67c5c
Fix buffer with NULL data pointer issue.
...
Simply prevent buffers from ever having a NULL data pointer.
2020-12-13 09:33:57 -06:00
Calvin Rose
6020106000
Address #529
2020-12-11 19:21:54 -06:00
Calvin Rose
12f470ed10
Use :_name instead of :name for printing tagged tables.
2020-12-11 18:28:09 -06:00
Calvin Rose
945cbcfad6
Tail recursive match implementation.
...
This implementation uses multiple passes on patterns
to remove the need for a sentinel value to check if there was a match.
This also re-uses extracted subpatterns for complicated patterns.
2020-12-10 08:35:34 -06:00
Calvin Rose
d53007739e
Invert read/write bits on pipe in os/execute.
...
It was backwards, breaking this functionality.
2020-12-09 19:04:05 -06:00
Calvin Rose
6eaf8272e1
Merge pull request #525 from uvtc/patch-1
...
light markup in some docs in corelib
2020-12-07 15:57:09 -06:00
Calvin Rose
6fb83dce06
Merge pull request #526 from sogaiu/tweak-comment
...
Tweak comment for janet_fiber_popframe
2020-12-07 15:56:25 -06:00
John Gabriele
52addc877d
Use xs
2020-12-07 14:07:13 -05:00
sogaiu
53a5f3d2dc
Tweak comment for janet_fiber_popframe
2020-12-07 12:23:27 +09:00
Calvin Rose
711ee5a36d
Merge branch 'preload'
2020-12-06 21:06:59 -06:00
Calvin Rose
cd09b696b5
Add :preload loader.
2020-12-06 21:06:17 -06:00
John Gabriele
df1ca255a9
parts/xs --> pieces
2020-12-06 21:29:30 -05:00
Calvin Rose
811a5d93f4
Prevent some potential bad characters in test out.
2020-12-06 17:10:18 -06:00
John Gabriele
adbe361b9b
light markup in some docs in corelib
2020-12-06 17:51:48 -05:00
Calvin Rose
0f16f21677
Make builds deterministic again.
...
Also prevent marshal from creating multiple copies of
a function - (marshal function pointer before function def pointer).
2020-12-06 16:32:23 -06:00
Calvin Rose
aa0de01e5f
Fix some formatting and undefined behavior.
2020-12-06 14:33:08 -06:00
Calvin Rose
785757f2f6
Remove pthreads from shell.c and update bsd build.
2020-12-06 13:51:06 -06:00
Calvin Rose
01120dfc46
Try and fix openbsd st.ht build.
...
Oneline meson configs, remove extra `cd janet`.
2020-12-06 11:57:40 -06:00
Calvin Rose
a119eb4ef0
Merge branch 'master' of github.com:janet-lang/janet
2020-12-06 11:47:46 -06:00
Calvin Rose
0aa4c3d217
Consolidate sr.ht builds to 1-per-platform.
...
This generally makes more sense from an infrastructure
point of view and works around 4 builds per push limit of sr.ht.
2020-12-06 11:46:45 -06:00
Calvin Rose
3c0cc59d77
Rename some srht build files.
2020-12-06 11:22:35 -06:00
Calvin Rose
7e1d095996
Merge pull request #522 from pyrmont/docs.keep-docstring
...
Clarify description of keep
2020-12-05 14:31:58 -06:00
Calvin Rose
cfa9fb6ee4
Update changelog.
2020-12-05 10:36:27 -06:00
Calvin Rose
9d23192614
Add ev/deadline and ev/with-deadline.
...
This should be more useful than timeouts in real-world
use cases. The deadline system is based on fibers and is target
to much more coarse-grained (and therfor reliable) timeouts than things
like ev/sleep and timeout arguments.
2020-12-05 10:32:34 -06:00
Michael Camilleri
7c1a52ae65
Use 'different from' in preference to 'different to'
2020-12-05 16:43:44 +09:00
Michael Camilleri
9aa1b9c740
Clarify description of keep
2020-12-05 16:02:36 +09:00
Calvin Rose
c4a4916055
Address #500 - update docs and add buffer/push
...
This updates the documentation and adds a function buffer/push, which
is a more useful function than buffer/push-string or buffer/push-byte by
combining both.
2020-12-04 17:56:47 -06:00
Calvin Rose
b402e0671a
Merge pull request #514 from uvtc/patch-2
...
boot.janet, fix possible typo
2020-12-04 17:40:46 -06:00
Calvin Rose
8144f83b66
Merge pull request #516 from uvtc/patch-4
...
doc for identity
2020-12-04 17:40:31 -06:00
Calvin Rose
cd2a55e268
Merge pull request #513 from uvtc/patch-1
...
boot.janet, cond doc
2020-12-04 17:38:02 -06:00
Calvin Rose
f92b5d69c8
Merge pull request #515 from uvtc/patch-3
...
C-style (hyphenate)
2020-12-04 17:37:24 -06:00
Calvin Rose
a8c21459c3
Merge pull request #517 from uvtc/patch-5
...
boot.janet, compare*, light formatting
2020-12-04 17:37:06 -06:00
Calvin Rose
4789b4c9f3
Merge pull request #520 from uvtc/patch-6
...
corelib.c, describe, add hyphen
2020-12-04 17:31:15 -06:00
Calvin Rose
ee1cd6f151
Merge pull request #521 from sogaiu/parser-with-a-colon
...
Minor tweak in changelog
2020-12-04 17:30:59 -06:00
sogaiu
dfcda296a3
Minor tweak in changelog
2020-12-02 17:52:29 +09:00
John Gabriele
4d38fcb289
corelib.c, describe, add hyphen
2020-12-01 11:56:53 -05:00
Calvin Rose
cbdea8f331
Make os/execute cooperate with ev module.
...
os/execute, os/proc-wait do not block (currently posix only).
This uses the self-pipe trick to turn signals into a pollable entity.
2020-11-29 15:36:21 -06:00
John Gabriele
51d6a13510
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:31:01 -05:00
John Gabriele
7b4eeecd9f
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:30:48 -05:00
John Gabriele
82eff7e082
Update src/boot/boot.janet
...
Agreed. That's more clear.
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:30:26 -05:00
John Gabriele
b922e36071
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:18:19 -05:00
John Gabriele
7c75aeaad2
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:17:38 -05:00
John Gabriele
2db9323671
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:17:23 -05:00
John Gabriele
31ae93de19
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:17:12 -05:00
John Gabriele
a81e9f23f0
Update src/boot/boot.janet
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:16:55 -05:00
John Gabriele
59f09a4386
Update src/boot/boot.janet
...
omit needless word
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-11-29 14:15:55 -05:00
John Gabriele
53400ecac1
boot.janet, compare*, light formatting
...
Since those represent code, they should get backticks.
2020-11-28 14:41:42 -05:00
John Gabriele
1b8928a8ec
doc for identity
...
This function only takes one argument anyway, and errors if you try to pass more.
2020-11-28 14:35:17 -05:00
John Gabriele
e706494893
C-style
2020-11-28 14:29:13 -05:00
John Gabriele
894aea7ce7
boot.janet, fix possible typo
...
Possible typo?
2020-11-28 14:25:10 -05:00
John Gabriele
87167a21c9
boot.janet, cond doc
...
Arranged this way seems to make more sense.
2020-11-28 14:18:35 -05:00
Calvin Rose
7c8f5ef811
Merge branch 'master' of github.com:janet-lang/janet
2020-11-28 12:18:51 -06:00
Calvin Rose
7aa4241662
Add testing for the new reindent behavior.
...
This also provides a reference function to reimplement
the behavior in Janet.
2020-11-28 12:18:36 -06:00
Calvin Rose
56a915b5b1
Long strings now autoindent contents - doc-format is simpler.
...
No need to try and auto detect the base indentation - it is 0.
This will be taken care of by the parser.
2020-11-28 10:04:25 -06:00
Calvin Rose
90a0dfa35f
Merge pull request #512 from timgates42/bugfix_typo_source
...
docs: fix simple typo, soucre -> source
2020-11-27 16:54:34 -06:00
Tim Gates
128d72785f
docs: fix simple typo, soucre -> source
...
There is a small typo in src/core/features.h.
Should read `source` rather than `soucre`.
2020-11-28 09:45:46 +11:00
Calvin Rose
21a6017547
typo
2020-11-27 12:27:44 -06:00
Calvin Rose
a0964d44d5
Fix some valgrind errors.
...
A null pointer dereference and a memory leak with the line/col mapping.
2020-11-27 12:21:23 -06:00
Calvin Rose
fb0859dfe6
Merge remote-tracking branch 'pyrmont/feature.markdown-docstrings' into longstring-autoindent
2020-11-27 12:13:45 -06:00
Calvin Rose
dadd6037bb
Merge branch 'master' into longstring-autoindent
2020-11-27 10:40:10 -06:00
Michael Camilleri
6f3eff3258
Add example docstring
2020-11-27 18:29:41 +09:00
Michael Camilleri
02224d5aa9
Fix bugs in parsing logic
2020-11-27 18:28:58 +09:00
Calvin Rose
bfd2845077
Add merge-module to core.
...
This is a little utility used for manually importing modules.
It is responsible for taking the output of dofile, run-context, or
require and merging into another environment as if import was called.
2020-11-27 00:16:54 -06:00
Michael Camilleri
ba2e0489e6
Add initial implementation of docstring formatter
2020-11-27 15:07:38 +09:00
Calvin Rose
ca7c5b8b10
ev/call uses current env as prototype of environment.
2020-11-26 21:13:41 -06:00
Calvin Rose
6c43489fb2
Fix #508 - nil fiber environment.
...
run-context did not handle a nil environment well, so that was fixed
and ev/call inherits the environment when creating the fiber.
2020-11-26 19:04:45 -06:00
Calvin Rose
d76f671d37
Update changelog and make arg to peg's error optional.
2020-11-26 18:57:24 -06:00
Calvin Rose
776ce586bc
Add line and column combinators to peg.
...
These capture the line and column number of the current position
in the matched text. This is useful for error reporting as well
as indentation checking.
This works by lazily creating an index on first use that stores all
newline character indices in order. We can then do a binary search on
this to get both line number and column number in log(n) time.
This is good enough for most use cases and doesn't slow down the common case at all
- these will not be commonly used patterns in a hot loop so it is not worth to try and
optimize this at all. Constant time look up should be possible but at
the cost of complicating code and slowing down all matching to check for
new lines.
2020-11-26 18:32:56 -06:00
Calvin Rose
adc3066dc8
Update doc-format and boot.janet docstrings.
...
Make doc-format respect leading indents, increase the default format
width to better accommodate markdown formatted documentation. We still
need to support single line style doc strings, such as those used
for most c functions which can be a single line of much longer than
80 or 120 characters.
Consecutive whitespace internal to lines is not preserved, though.
2020-11-26 14:58:36 -06:00
Calvin Rose
7fd2da1096
Add code in parser to automatically indent long strings.
...
Leading spaces are stripped based on the column index of the first
backtick character in the first delimiter. If there are
characters that are not newline or space before that column in the
string, then the behavior is the same as the old behvaior - no
re-indentation is performed.
2020-11-26 13:20:58 -06:00
Calvin Rose
451340e4c0
Update docstrings in boot.janet ( #506 )
...
Elaborate on usage of reduce and accumulate.
2020-11-26 10:34:51 -06:00
Calvin Rose
a3e812b86d
Fix #505 - bat int64 parsing.
...
Fixes an off-by-1 error.
Also makes windows testing hopefully a bit less flaky.
2020-11-25 09:45:46 -06:00
Calvin Rose
a3f98091c4
Fix #509
...
janet_fiber returns NULL if there is a bad arity, check that before
continuing.
2020-11-23 15:28:28 -06:00
Calvin Rose
6720b34868
Don't use peg for patch tool.
2020-11-18 19:37:18 -06:00
Calvin Rose
781ed0dc67
Merge branch 'master' of github.com:janet-lang/janet
2020-11-18 19:36:12 -06:00
Calvin Rose
8f00848c7b
Fix build issues on windows by using a size_t instead of int.
2020-11-18 19:31:20 -06:00
Calvin Rose
53aa19a916
Several changes to move pipe creation back into ev.c
2020-11-18 10:53:36 -06:00
Calvin Rose
2dc04d2957
On install, merge janetconf.h into janet.h
...
This results in a cleaner amalgmated build
2020-11-17 09:53:12 -06:00
Calvin Rose
306bdee673
Merge branch 'master' of github.com:janet-lang/janet
2020-11-16 18:47:28 -06:00
Calvin Rose
cff52ded58
Add JANET_ASYNC_EVENT_CANCEL
...
also fix bug that could cause event loop to hang.
2020-11-16 18:46:59 -06:00
Calvin Rose
fbe658a724
Merge pull request #503 from sogaiu/boot-janet-docstring-tweaks
...
Tweak docstrings in boot.janet
2020-11-16 17:03:54 -06:00
Calvin Rose
f9d0eb47b7
Merge branch 'master' of github.com:janet-lang/janet
2020-11-16 16:51:29 -06:00
Calvin Rose
078f50d45a
When reading from a stream, EPIPE is considered EOS.
...
Before, EPIPE caused an error, but in most cases it is better
to consider it an end of stream. In the future, we may want to allow
cusomtization of this behavior with flags on the stream but for now
let's keep it simpler.
2020-11-16 16:49:27 -06:00
Calvin Rose
974a45c804
When reading from a stream, EPIPE is considered EOS.
...
Before, EPIPE caused an error, but in most cases it is better
to consider it an end of stream. In the future, we may want to allow
cusomtization of this behavior with flags on the stream but for now
let's keep it simpler.
2020-11-16 16:42:09 -06:00
Calvin Rose
760e4e3d68
Add upscope special form.
...
Upscope is similar to do, but does not introduce a new lexical scope.
2020-11-16 16:41:27 -06:00
Calvin Rose
9ec5689d6b
Don't use gcroot/unroot for tracking IO operations.
...
This could have bad effects in higher load situations, and
duplicates code. It is better to keep a dedicated list of
scheduled IO operations which can be efficiently added and
removed from. It also provides and easy way to enumerate
scheduled IO operations.
2020-11-16 09:30:04 -06:00
sogaiu
c8b72431a3
Some more
2020-11-16 16:13:28 +09:00
sogaiu
0eb913fb9a
A couple more tweaks
2020-11-16 14:14:51 +09:00
sogaiu
fce27cb2e8
Tweak docstrings in boot.janet
2020-11-16 14:03:26 +09:00
Calvin Rose
1b6272db2e
Fix windows ifdef.
2020-11-15 19:55:58 -06:00
Calvin Rose
b1c0ad5e42
CD into source directory in build recipe.
2020-11-15 19:50:33 -06:00
Calvin Rose
3f7cdcb6a7
Add meson test build for epoll.
2020-11-15 19:47:11 -06:00
Calvin Rose
a25b030e36
Fix EPOLL implementation.
2020-11-15 19:40:47 -06:00
Calvin Rose
717fac02d1
Update janet.h for janet_thread_current
2020-11-15 16:12:02 -06:00
Calvin Rose
dcf8ba0edb
Update CHANGELOG.md
2020-11-15 15:35:50 -06:00
Calvin Rose
3ab2ae130b
Address #495 Add :read and :parser to run-context.
2020-11-15 15:26:16 -06:00
Calvin Rose
6e6900fa3a
os/execute and os/spawn can take streams.
2020-11-15 12:17:29 -06:00
Calvin Rose
d7af4596e1
Move math.h include out of windows ifdef
2020-11-15 10:21:37 -06:00
Calvin Rose
1759151875
Change suite 9 test a bit.
2020-11-15 10:12:10 -06:00
Calvin Rose
a7ed3dea4b
Remove some flags in os/open.
2020-11-15 10:06:20 -06:00
Calvin Rose
cdcb774dc8
Add os/pipe and os/open.
...
ev/pipe -> os/pipe, and os/open is a wrapper
around the open system call.
2020-11-15 09:57:29 -06:00
Calvin Rose
d199c817dc
Broken Pipe error on windows should just be end of stream.
2020-11-14 16:03:51 -06:00
Calvin Rose
dc51bd09f7
Make sure all test logs go to the same stream.
2020-11-14 15:56:48 -06:00
Calvin Rose
139e3fab25
Invert status check for (Read/Write)File
2020-11-14 15:52:01 -06:00
Calvin Rose
7a98f9aa02
Improve windows error messages on write failures.
2020-11-14 15:48:21 -06:00
Calvin Rose
b53dd67e74
Use custom pipe implementation for overlapped io.
2020-11-14 15:44:19 -06:00
Calvin Rose
e546731093
ev_lasterr -> janet_ev_lasterr
2020-11-14 15:24:13 -06:00
Calvin Rose
d50c4ef6da
Try again for windows build.
2020-11-14 15:01:52 -06:00
Calvin Rose
7d0b1955a2
typo
2020-11-14 14:55:26 -06:00
Calvin Rose
16cf7681f0
Fix some windows issues.
2020-11-14 14:40:39 -06:00
Calvin Rose
12f09ad2d7
Add ev/pipe and move stream code into ev.c
...
Also adds a lot to the C API and changes things up.
2020-11-14 14:29:11 -06:00
Calvin Rose
b3e88a8d80
Move read/write functions into ev.c from net.c
...
This code can also be used for non-network streams.
2020-11-14 11:48:23 -06:00
Calvin Rose
761273bcc4
Add janet_thread_current() to C api.
2020-11-12 18:42:41 -06:00
Calvin Rose
1a75f68cb2
Fix windows build.
2020-11-12 14:52:02 -06:00
Calvin Rose
1b0edf54f1
Fix gc leak.
...
Rather than trying to be clever with pinning/unpinning, always
mark the root fiber and that should serve as thei singular common root in almost
all cases.
2020-11-12 14:29:38 -06:00
Calvin Rose
caa6576719
Fix formatting.
2020-11-11 15:35:44 -06:00
Calvin Rose
93bd2c11fa
Merge pull request #502 from pepe/fix-net-server-fiber
...
Fix net server fiber
2020-11-11 15:33:42 -06:00
Josef Pospíšil
2be09790a9
Change fix with ev/call
2020-11-10 10:39:33 +01:00
Josef Pospíšil
bf6eae711a
Fix adding handler to loop with fiber
2020-11-10 10:32:47 +01:00
Calvin Rose
69b68c0091
Update changelog.
2020-11-09 11:24:28 -06:00
Calvin Rose
6f1d5d3b73
Add net/listen and net/accept-loop.
...
These are the elements that make up net/server, which has been moved
into pure Janet instead.
2020-11-09 11:18:09 -06:00
Calvin Rose
099a912992
Fix posix regression.
2020-11-08 19:48:44 -06:00
Calvin Rose
56b1ea3726
Include math.h to fix some bugs on 32 bit windows.
2020-11-08 19:06:35 -06:00
Calvin Rose
d6391f2d70
Get windows IOCP working for accept.
...
This also changes the api of servers slightly -
in light of having support for ev tasks, it is probably better
to remove the "simple" server code and replace it with some Janet
or remove it all together. While convenient, it has issues with error
handling and rigidity.
2020-11-08 18:56:13 -06:00
Calvin Rose
07910272e2
Get socket reads and writes working with IOCP.
2020-11-08 10:38:28 -06:00
Calvin Rose
1092013c2b
Merge branch 'master' into ev
2020-11-07 14:36:25 -06:00
Calvin Rose
0db83bd787
Merge pull request #498 from pepe/fix-asm-example
...
Fix asm example
2020-11-07 14:35:39 -06:00
Calvin Rose
f55316eabc
Merge pull request #494 from harryvederci/patch-1
...
Fix typo
2020-11-07 14:34:43 -06:00
Calvin Rose
840f59934e
Merge pull request #497 from ahungry/bugfix/Adjust-popen-doc
...
Fix function doc to match that of C POPEN
2020-11-07 14:34:11 -06:00
Calvin Rose
75a9c59ad8
Merge pull request #499 from sogaiu/disasm-doc-typo
...
Tweak disasm doc
2020-11-07 14:33:53 -06:00
sogaiu
adfccd33ae
Tweak disasm doc
2020-11-05 13:56:42 +09:00
Josef Pospíšil
9d41243c15
Fix comments formating
2020-11-04 10:18:31 +01:00
Josef Pospíšil
e33e182eb0
Fix assembly example
2020-11-04 10:16:02 +01:00
Matthew Carter
4dffd662f0
Fix function doc to match that of C POPEN
...
It may be misleading to some user to believe it is taking a path to a
file, when it is executing an arbitrary shell command for the first argument.
2020-11-03 20:52:02 -05:00
Calvin Rose
5064d579d4
Add net header instead of ifdef check.
2020-11-03 17:49:09 -06:00
Calvin Rose
540425a41b
Make docstring less confusing - Fix #493 .
2020-11-02 09:09:22 -06:00
Calvin Rose
4d21b582c7
Improve reading and writing from streams.
...
Handle errors earlier, and allow 0 length packets from UDP
but not from TCP. This should more closely follow the exact specs
of send and recv calls.
2020-11-02 09:06:31 -06:00
Calvin Rose
f288bc1790
Merge pull request #492 from drkameleon/master
...
Copy editing & fixing typos
2020-11-02 08:29:49 -06:00
Calvin Rose
8942e348bd
Small change to windows ev.
2020-11-02 08:27:45 -06:00
Calvin Rose
9f27336827
Update windows ev code.
2020-11-02 08:19:53 -06:00
Calvin Rose
f517cccf7b
Fix unix domain sockets.
...
Also allow abstract unix domain sockets on Linux
(prefixed with '@' as is customary).
2020-11-02 08:16:28 -06:00
Harry Prins
3a937ace51
Fix typo
2020-10-29 08:45:04 +00:00
Yanis Zafirópulos
b8661f8bff
Update README.md
...
Co-authored-by: Michael Camilleri <mike@inqk.net >
2020-10-26 16:21:06 +01:00
Yanis Zafirópulos
51828ab5f8
Copy editing :)
2020-10-26 14:46:31 +01:00
Yanis Zafirópulos
84fe5d7f34
Copy editing :)
2020-10-26 14:44:17 +01:00
Calvin Rose
2891d2b260
Address #489
...
Add gc pressure when resizing fiber stack.
2020-10-18 18:41:18 -05:00
Calvin Rose
edfb861a5f
Disable epoll by default for evloop.
2020-10-11 15:05:27 -05:00
Calvin Rose
88c1cf3ee7
Reformat files.
2020-10-11 09:33:07 -05:00
Calvin Rose
813e3fdcfd
Merge branch 'windows-ev' into ev
2020-10-11 09:32:17 -05:00
Calvin Rose
bbe10e4938
Add another select example.
2020-10-11 09:14:31 -05:00
Calvin Rose
cb4903fa86
Overhaul of poll loop, redo ev/select.
2020-10-11 09:14:14 -05:00
Calvin Rose
ea45165db8
Merge branch 'master' into ev
2020-10-10 09:04:05 -05:00
Calvin Rose
1fba699ed4
Merge branch 'master' of github.com:janet-lang/janet into master
2020-10-08 12:35:16 -05:00
Calvin Rose
ce3d574c41
Update docstring.
2020-10-08 12:34:08 -05:00
Calvin Rose
7a601a7eb2
Merge pull request #481 from sogaiu/remove-namespace-reference
...
Use "module" instead of "namespace" in docstring
2020-10-07 17:43:56 -05:00
sogaiu
9ec66ab826
Use "module" instead of "namespace" in docstring
2020-10-07 18:18:28 +09:00
Calvin Rose
ebfa07f8ce
Registering an abstract type is idemptotent.
2020-10-06 19:11:29 -05:00
Calvin Rose
964a800d51
More work on windows event loop code.
2020-10-06 19:07:29 -05:00
Calvin Rose
5c05dec65a
Merge pull request #479 from andrewchambers/mf
...
Add missing Makefile dependencies for install.
2020-10-06 18:26:16 -05:00
Andrew Chambers
bf6ebc4a68
Add missing Makefile dependencies for install.
2020-10-07 10:19:49 +13:00
Calvin Rose
2e944931b3
Update timestamp function to work on windows.
2020-10-04 15:18:31 -05:00
Calvin Rose
db67538311
Work on getting ev support on windows.
2020-10-04 12:46:15 -05:00
Calvin Rose
307c7e00e2
Merge branch 'master' into ev
2020-10-03 11:09:21 -05:00
Calvin Rose
45feb55483
Add integer parsing to pegs.
2020-09-27 12:19:00 -05:00
Calvin Rose
0a1d902f46
Fix #477
...
Make the walk function preserve bracket type, which should fix
threading macro behavior when threading into bracketed expressions.
2020-09-26 13:28:29 -05:00
Calvin Rose
959a577b5f
Merge branch 'master' into ev
2020-09-26 11:50:13 -05:00
Calvin Rose
b91fe8be5a
Update CHANGELOG.md
2020-09-20 12:03:59 -05:00
Calvin Rose
d1f0a13ddc
janet_try macro and janet_restore function.
...
This allows catching panics without using pcall.
2020-09-19 18:47:47 -05:00
Calvin Rose
c455bdad11
Get ready for 1.12.2 release.
2020-09-19 16:54:56 -05:00
Calvin Rose
bc1ef813c2
Fix whitespace.
2020-09-19 16:53:35 -05:00
Calvin Rose
603791c0ba
Add more help text to doc macro and default repl.
2020-09-19 16:40:07 -05:00
Calvin Rose
8091b1289f
Merge branch 'master' of github.com:janet-lang/janet into master
2020-09-19 16:35:43 -05:00
Calvin Rose
cc0035b1d7
Add help text to repl line.
2020-09-19 16:35:32 -05:00
Calvin Rose
ceba1ba4ee
Merge pull request #472 from uvtc/patch-1
...
fix jpm.1 typos
2020-09-18 20:19:22 -05:00
John Gabriele
468e13501c
Update jpm.1
...
Fix some typos.
2020-09-15 00:06:09 -04:00
Calvin Rose
32bf70571a
Fix os/spawn piping on windows and free handles on errors.
2020-09-13 20:49:38 -05:00
Calvin Rose
95f4bd8e23
Merge branch 'master' into ev
2020-09-13 11:24:27 -05:00
Calvin Rose
4c9624db64
Update CHANGELOG.md
2020-09-13 11:06:49 -05:00
Calvin Rose
2cbf4d8ad1
Update documentation for thread/send and thread/receive.
2020-09-13 08:38:37 -05:00
Calvin Rose
524c9b50d4
Add windows implementation for piping.
2020-09-12 19:56:48 -05:00
Calvin Rose
d3147b661b
Add :pipe to os/spawn for piping to subprocess.
...
Similar to Python's subprocess.PIPE, this creates and manages pipes
automatically for the caller.
2020-09-12 19:48:12 -05:00
Calvin Rose
d3182dce51
Merge branch 'master' into ev
2020-09-12 10:02:01 -05:00
Calvin Rose
8763df1cd0
Fix some typos.
2020-09-12 09:38:29 -05:00
Calvin Rose
15e05b692c
Windows CI remove those pesky carriage returns.
2020-09-07 16:32:31 -05:00
Calvin Rose
2bf5e341d3
Update for 1.12.1
2020-09-07 16:10:33 -05:00
Calvin Rose
b53890ddae
Make some changes for WASM build.
2020-09-07 16:08:43 -05:00
Calvin Rose
93602ad9ea
Prepare 1.12.0 Release.
2020-09-07 15:28:46 -05:00
Calvin Rose
191d0001f4
Add header on BSDs.
2020-09-07 15:22:18 -05:00
Calvin Rose
1a04ce33f1
Conditionally include epoll headers.
2020-09-07 13:13:28 -05:00
Calvin Rose
babfe50550
Merge branch 'master' into ev
...
Also add poll implementation for ev.
2020-09-07 12:52:50 -05:00
Calvin Rose
ff57b3eb72
Make zero?, one?, neg? and pos? polymorphic.
2020-09-06 19:05:58 -05:00
Calvin Rose
1837e89fe4
Address #470 - hyphen's in native module names.
2020-09-06 15:23:24 -05:00
Calvin Rose
24b8b0e382
Fix NaNboxing bug that cause flaky builds.
...
The macro janet_checktype(x, JANET_NUMBER) was incorrect when
x was NaN. This caused the initial unmarshalling dictionary to be missing
entries in certain cases.
2020-09-06 14:59:29 -05:00
Calvin Rose
321a758ab9
Change hash implementation for pointers.
2020-09-06 11:41:45 -05:00
Calvin Rose
1a9c14acde
Add checksum to build/janet.c to check for inconsistent builds.
2020-09-06 11:04:07 -05:00
Calvin Rose
e8734c77b4
Fix bug by casting to unsigned char.
...
Higher unciode codepoints where being read as negative char values.
We need to cast to unsigned char before comparing to 0x20 to check
for unprintable characters.
2020-09-06 10:47:05 -05:00
Calvin Rose
1eb00a9f74
Remove restriction on bytes being input to getline.
2020-09-06 10:36:38 -05:00
Calvin Rose
922a21d359
Run make format.
2020-09-05 21:26:21 -05:00
Calvin Rose
4a4f314768
Update changelog.
2020-09-05 20:23:55 -05:00
Calvin Rose
3c64596ea1
Add %t formatter to janet.
...
Was not present in printf and family.
2020-09-05 20:21:49 -05:00
Calvin Rose
33283b1b6e
Change linking process for standalone executables.
...
We separate compilation and linking so that mixed C/C++ binaries
will work.
2020-09-05 10:19:34 -05:00
Calvin Rose
2f89bdc672
Conditional compilation on some c99 syntax in header.
...
If the header is in a C++11 compilation unit, use C++11
aggregate initialization syntax instead.
2020-09-05 09:45:34 -05:00
Calvin Rose
2d275c4782
Enable exception handling for C++ with MSVC.
2020-09-04 21:43:34 -05:00
Calvin Rose
25156eb83e
For #469 - Add support for C++ and mixed C/C++
...
WIP and for native modules. Required a few changes to headers and
some changes to JPM.
2020-09-04 17:41:36 -05:00
Calvin Rose
39032b45c9
Remove extra file.
2020-09-04 14:55:47 -05:00
Calvin Rose
821a8dca3b
Fix os/spawn - os/execute switch.
2020-09-04 14:54:58 -05:00
Calvin Rose
0145b133a1
Add os/spawn instead of os/execute with :a
2020-09-04 08:09:05 -05:00
Calvin Rose
b0b137d7f0
Apply formatting to windows changes.
2020-09-02 19:12:27 -05:00
Calvin Rose
b0c09153c2
Allow IO redirection on windows.
2020-09-02 19:07:45 -05:00
Calvin Rose
0485078c6c
Fix some issues on BSD and Windows.
2020-09-01 21:47:08 -05:00
Calvin Rose
7079cc43c9
Make some improvements and add os/proc-kill as well.
2020-09-01 21:36:49 -05:00
Calvin Rose
e7fca0051e
Add :a option to os/execute, and allow redirecting stdio.
...
This should help cover a number of common cases for
use of subprocesses. This should also eventually work well
with the ev branch via
2020-09-01 20:06:35 -05:00
Calvin Rose
6273e56886
Add janet_getjfile to C API.
2020-08-29 17:36:14 -05:00
Calvin Rose
8b9ad2dce8
Add :x flag to os/execute.
2020-08-29 10:27:32 -05:00
Calvin Rose
301cbb0e68
Update changelog
2020-08-29 09:22:10 -05:00
Calvin Rose
5313963baf
Don't run main when flychecking.
2020-08-29 09:05:18 -05:00
Calvin Rose
f60348eee4
Merge branch 'master' of github.com:janet-lang/janet into master
2020-08-27 08:20:31 -05:00
Calvin Rose
a31e079f93
Fix import macro to not coerce everything to string.
2020-08-27 08:19:41 -05:00
Calvin Rose
556edc9f0d
Fix import macro to not coerce everything to string.
2020-08-27 07:46:51 -05:00
Calvin Rose
17d0b7a985
Improve import's handling of non constant args.
...
Be much more conservative about which arguments are cast to strings.
2020-08-27 07:40:51 -05:00
Calvin Rose
86e00e865e
Merge branch 'master' into ev
2020-08-23 11:25:04 -05:00
Calvin Rose
5dda83dc73
Add second argument to disasm.
2020-08-22 16:18:10 -05:00
Calvin Rose
28439d822a
Add cancel function.
...
This should allow better stack unwinding on a fiber that
no longer needs to complete.
2020-08-22 15:35:37 -05:00
Calvin Rose
b1d8ee19ca
Enable mutliline paste in shell.c with TCSADRAIN.
...
Replaces TCSAFLUSH.
2020-08-22 11:39:57 -05:00
Calvin Rose
f7c556ed8d
Add curenv to core.
2020-08-22 10:16:14 -05:00
Calvin Rose
5377e10532
Address #466 ?
...
Do not restore pc when returning from top most fiber frame.
Also add JANET_DEBUG config define for various debugging related
configurations. In fiber.c, when debug is enabled we reallocate the
entire stack everytime we push a frame to help uncover use after free
errors.
2020-08-17 07:01:58 -05:00
Calvin Rose
30522bbf7d
Merge branch 'master' into ev
2020-08-16 17:52:36 -05:00
Calvin Rose
58374623b7
Add a vm_commit before JOP_NEXT.
2020-08-13 22:28:50 -05:00
Calvin Rose
7e7498350f
Fix #463
...
Fix outdated code in macex1, such as checking for unquote-splicing,
which no longer exists. Also fix macex1 for quasiquoted tables and
structs. macex1 is not the macro expander used by the compiler, so
these bugs only affected code which called macex manually, such as
the short-fn macro.
2020-08-12 06:10:42 -05:00
Calvin Rose
06c268c274
Start working on throwing errors from async functions.
2020-08-11 08:33:24 -05:00
Calvin Rose
9b36e2b145
Be aggressive with setting SO_NOSIGPIPE on BSD/Apple.
2020-08-10 18:59:53 -05:00
Calvin Rose
ca75f8dc20
Address #463 - prevent sigpipe on client connections.
...
We erroneously did not set SO_NOSIGPIPE on connections aquired with
net/connect, only those quired thorugh net/server. This meant that
failed writes by a client could send sigpipe.
2020-08-10 18:45:44 -05:00
Calvin Rose
6f2f3fdb68
Return an error message if writes fail. Address #462 .
2020-08-10 11:06:31 -05:00
Calvin Rose
c903e49a4f
Change feature flags for BSD.
2020-08-10 10:42:56 -05:00
Calvin Rose
9121feb44f
Update changelog.`
2020-08-09 11:39:40 -05:00
Calvin Rose
7b42ed66f2
Add xprint, xprin, xprintf, and xprinf.
2020-08-09 09:30:58 -05:00
Calvin Rose
fb26c9b2c4
Add ev/select and ev/rselect initial implementation.
...
Getting closer to a CSP implmententation. Probably
useful to move scheduling fields outside of fibers
and into an external table.
2020-08-09 00:20:27 -05:00
Calvin Rose
78ffb63429
Disallow mutlitple state machines waiting for a single fiber.
...
A 'select' operator will be channel based, not state machine based.
2020-08-08 07:51:46 -05:00
Calvin Rose
1213990b7d
Merge branch 'master' into ev
2020-08-07 19:51:37 -05:00
Calvin Rose
c3af30d520
Fix broken links in README.md
2020-08-07 19:48:06 -05:00
Calvin Rose
2598123140
Rename test suites such that it is easier to add more of them.
2020-08-07 15:34:13 -05:00
Calvin Rose
40627191f3
Merge pull request #460 from andrewchambers/fix
...
Add missing JANET_API to janet_cryptorand.
2020-08-07 11:46:44 -05:00
Andrew Chambers
38dc844e85
Add missing JANET_API to janet_cryptorand.
2020-08-07 14:02:26 +12:00
Calvin Rose
abc4405a76
Address #459 - Update meson.build
...
Don't search for cross compilerUnless needed.
This should help prevent issues building Meson on debian. Also
fix issue using the wrong set of flags to build the native janet
interpreter vs. the cross compiled janet interpreter.
2020-08-06 20:45:18 -05:00
Calvin Rose
243c66442d
Add PRF enabled build to sourcehut builds.
2020-08-04 10:30:54 -05:00
Calvin Rose
9afcec77f6
Disable PRF by default.
2020-08-03 21:52:57 -05:00
Calvin Rose
70ad98cc6f
Fix arc4random_buf implementation.
2020-08-03 21:49:49 -05:00
Calvin Rose
76cfbde933
Add JANET_HASHSEED environment variable.
2020-08-03 20:56:11 -05:00
Calvin Rose
f200bd9594
Merge pull request #455 from andrewchambers/prfseed
...
Initialize PRF with random data when it is enabled.
2020-08-03 20:14:51 -05:00
Andrew Chambers
4d4ca7bb36
Initialize PRF with random data when it is enabled.
2020-08-04 12:13:36 +12:00
Calvin Rose
78c3c6dafa
Merge branch 'master' of github.com:janet-lang/janet into master
2020-08-03 17:44:37 -05:00
Calvin Rose
6d859dec67
Exit with error code if jpm install fails.
2020-08-03 17:41:16 -05:00
Calvin Rose
3563e7e1aa
Add -fPIC to default cflags when building boot image.
2020-08-03 17:32:41 -05:00
Calvin Rose
cb898fabf4
Set default channel size to 0.
2020-08-03 07:57:02 -05:00
Calvin Rose
5899671d96
Merge branch 'master' into ev
2020-08-03 07:54:53 -05:00
Calvin Rose
8c1eb23aa1
Add -fPIC to default cflags when building boot image.
2020-08-02 13:52:21 -05:00
Calvin Rose
b564087db0
Add index-of to core library.
2020-08-02 13:47:56 -05:00
Calvin Rose
1748e8510e
Fix typo in docstring.
2020-08-02 13:27:49 -05:00
Calvin Rose
742c5bb639
Use a common queue implementation.
...
Queues occur in three places, so we use a single
implementation rather than three separate ones. This also
has the result that janet_vm_spawn will not overflow in the case
of channel-heavy, IO-light operation.
2020-08-01 14:20:58 -05:00
Calvin Rose
297de01d95
Add preliminary channel implementation.
2020-08-01 13:13:58 -05:00
Calvin Rose
fb31c3b46d
Merge pull request #454 from soapdog/fix-windows-on-arm64
...
Make sure JANET_NO_NANBOX is defined for ARM targets
2020-07-29 13:13:47 -05:00
Andre Alves Garzia
ba2beffcd8
Make sure JANET_NO_NANBOX is defined for ARM targets
2020-07-28 16:51:19 +01:00
Calvin Rose
2eb2dddb59
Begin work on channels.
2020-07-26 23:45:25 -05:00
Calvin Rose
0601d851d0
Merge pull request #453 from niacat/master
...
Fix build on NetBSD.
2020-07-26 22:15:46 -05:00
nia
b731f6ab03
Fix build on NetBSD.
...
The NetBSD C library's headers do not expose extensions when
compiling with -std=c99 (as opposed to -std=gnu99 or no -std=
option), so define _NETBSD_SOURCE to get timegm, and functions
that would otherwise require an _XOPEN_SOURCE definition, e.g.
realpath.
Note that, as with FreeBSD, you need gmake to compile janet
on NetBSD, and can also install it from packages.
2020-07-27 00:21:15 +01:00
Calvin Rose
0403e306ed
Silence warnings from some compilers.
2020-07-26 08:48:22 -05:00
Calvin Rose
d393fbf360
Merge branch 'master' into ev
2020-07-25 14:07:47 -05:00
Calvin Rose
4cc680965c
Prepare for 1.11.1 release.
2020-07-25 13:48:43 -05:00
Calvin Rose
ba08e487cb
Disable PRF by default.
...
Since it is not any better by default without initializing the key, we
disable it by default. It can be turned on with JANET_PRF in
janetconf.h.
2020-07-25 13:34:40 -05:00
Calvin Rose
d37eda4e9b
Don't use x43bot to test install.
2020-07-25 13:23:57 -05:00
Calvin Rose
3960d0f6de
Merge branch 'master' into ev
2020-07-25 13:17:05 -05:00
Calvin Rose
5be5e5b58f
Update soname.
2020-07-25 13:11:52 -05:00
Calvin Rose
04ac9b8e32
Update README.md
2020-07-25 10:14:59 -05:00
Calvin Rose
409a8a3a43
Fix #452 - Bad file marshal
...
We forgot a call to janet_marshal_abstract, which corrupted the output.
2020-07-25 08:09:22 -05:00
Calvin Rose
1ba3f72e4c
Update meson build.
2020-07-24 13:03:10 -05:00
Calvin Rose
3e5e9e57e9
Fix sourcehut builds yml file.
2020-07-24 12:29:31 -05:00
Calvin Rose
02e5e49de2
Fix buffer overflow.
2020-07-24 07:04:32 -05:00
Calvin Rose
43438d3824
Allow getting typed arrays from byte sequences.
...
Fix native importing for .so files in current directory.
2020-07-24 07:01:34 -05:00
Calvin Rose
8f82d19fd1
Merge branch 'master' of github.com:janet-lang/janet
2020-07-21 13:40:58 -05:00
Calvin Rose
ee450bcd77
Fix jpm on windows with multiple git binaries.
2020-07-21 13:40:23 -05:00
Calvin Rose
553b4d9428
Add timeouts to net functions.
...
Further debugging of the general timeout system, as well
as having a single fiber wait on multiple state machines (select).
2020-07-19 19:41:12 -05:00
Calvin Rose
df145f4bc9
Merge branch 'master' into ev
2020-07-19 17:20:43 -05:00
Calvin Rose
fa55283f62
Release 1.11.0
2020-07-18 16:21:01 -05:00
Calvin Rose
9e163db491
Test building binaries with jpm.
...
Test in CI with both meson and normal build.
Also test windows.
2020-07-18 15:50:58 -05:00
Calvin Rose
286230f477
Fix meson paths.
2020-07-18 15:44:04 -05:00
Calvin Rose
3ba2c7e7e8
Address #394 and #451 - Prepare for 1.11.0
...
Prefix MANPATH and PKG_CONFIG_PATH variables
with JANET_ to disassociate with standard env variables
that have a different format.
2020-07-18 13:09:53 -05:00
Calvin Rose
b4f5e5bc00
Update docs for -l option.
2020-07-06 21:25:41 -05:00
Calvin Rose
f580d2e41a
Add forever macro and add names to anon fns.
...
Adding names to anon functions that may error improves
stack traces, especially for user visible traces.
2020-07-06 19:26:37 -05:00
Calvin Rose
cd197e8be3
Add ev/call.
...
This is a common operation, and making fibers manually can be tedious.
2020-07-06 19:13:32 -05:00
Calvin Rose
51cf6465ff
Merge branch 'master' into ev
2020-07-06 17:22:38 -05:00
Calvin Rose
a1feb32a2f
Update CHANGELOG.md
2020-07-06 17:21:55 -05:00
Calvin Rose
7478ad115f
Add any? predicate to core.
...
This is the contrapositive to `every?`, and is analagous to `or` as
`every?` is to `and`.
2020-07-06 09:19:10 -05:00
Calvin Rose
9d8e338a11
Update default repl prompt to match errors.
2020-07-05 23:32:59 -05:00
Calvin Rose
ed4163cfde
Replace copyright on boot with system information.
2020-07-05 23:24:07 -05:00
Calvin Rose
bd95f742c0
Merge branch 'master' into ev
2020-07-05 23:14:49 -05:00
Calvin Rose
463e6d9316
Merge pull request #448 from GrayJack/fix-table-remove
...
Fix janet_table_remove returning the key instead of the value
2020-07-05 18:36:54 -05:00
Calvin Rose
3358811788
Update changelog and sort listing.
2020-07-05 17:51:49 -05:00
Calvin Rose
a45509d28e
Add list-pkgs and list-installed to jpm.
2020-07-05 17:43:39 -05:00
Calvin Rose
9ba94d2c6b
More work on timeouts and racing listeners.
...
When two listeners are racing to resume the same fiber, the
first should cancel out the other.
2020-07-05 17:26:17 -05:00
Calvin Rose
a4de83b3a3
Merge branch 'master' into ev
2020-07-05 10:11:23 -05:00
Calvin Rose
68a12d1d17
Minor fixes for meson minimum build.
...
Also, fix regression that looses function name information.
2020-07-03 20:41:55 -05:00
Calvin Rose
c97d3cf359
Fix minimum meson build.
2020-07-03 20:30:09 -05:00
Calvin Rose
4721337c7c
issues with gettime on mach kernel.
2020-07-03 20:19:36 -05:00
Calvin Rose
2b36ed967c
Address some windows issues.
2020-07-03 20:13:49 -05:00
Calvin Rose
3bb8f1ac8d
Don't use CLOCK_MONOTONIC for pthread stuff.
...
Also fix marshalling functions without full
sourcemapping information, as well as thread/receive
ignoring bad messages. Instead, thread/receive will error
on bad messages.
2020-07-03 19:54:58 -05:00
Calvin Rose
617ec7f565
Threading improvements.
...
- Add thread/exit to kill the current thread.
- Add global lock aroung custom getline and add atexit handler
- to prevent any possible issues when exiting program.
- Allow sending stderr, stdout, and stdin over thread.
2020-07-03 16:28:07 -05:00
Calvin Rose
dc259b9f8e
Set fiber env for heavyweight threads.
...
Since you already incur the cost of creating the
core environment, this is probably what you want anyways.
This will make eval and other reflective code work as expected.
2020-07-03 15:20:19 -05:00
Calvin Rose
7b31a87b3c
Update integer limits and printing.
2020-07-03 14:14:59 -05:00
Calvin Rose
37a430c97c
Move declarations around.
2020-07-03 13:47:48 -05:00
Calvin Rose
f264cb0b18
Merge branch 'master' into ev
2020-07-03 12:26:01 -05:00
Calvin Rose
6ea530cc48
Address compilation warnings and errors.
2020-07-03 12:25:24 -05:00
Calvin Rose
a0abf307b4
Merge branch 'master' into ev
2020-07-03 12:14:48 -05:00
Calvin Rose
55cf9f5e1c
Don't break reverse backwards compat.
...
Breaking backwards compatibiliy here is not worth it.
Also update changelog.
2020-07-03 10:17:50 -05:00
Calvin Rose
b89f0fac7b
Move clock shims to util (Helps #430 ).
...
The thread module should also use these clock shims rather
than clock_gettime, which is not available on older mac systems.
2020-07-03 09:54:58 -05:00
GrayJack
8b3b3182bd
Add tests to check janet_table_remove behaviour
2020-07-02 11:03:08 -03:00
Calvin Rose
97c64f27ff
Remove duplicate code in loop macro.
...
Also evaluate for loop and range step exactly once.
Multiple evaluations can be inefficent and make infinite loop
detection impossible.
2020-07-01 22:37:04 -05:00
Calvin Rose
e548e1f6e0
Add peg/replace and peg/replace-all
2020-07-01 21:29:24 -05:00
GrayJack
7ea1c7d85a
Fix janet_table_remove returning the key instead of the value
2020-07-01 20:05:07 -03:00
Calvin Rose
e08235b575
Merge pull request #436 from cellularmitosis/no_arc4random_buf
...
Add support for systems which are missing arc4random_buf
2020-07-01 15:54:15 -05:00
Calvin Rose
783c672130
Merge pull request #437 from pepe/add-peg-find-tests
...
Add tests for peg/find and peg/find-all
2020-07-01 15:48:43 -05:00
Calvin Rose
5351a6b2ed
Merge pull request #447 from cellularmitosis/nan
...
math/nan
2020-07-01 15:47:13 -05:00
Jason Pepas
a110b103e8
math/nan
2020-07-01 15:35:36 -05:00
Josef Pospíšil
c26f573620
Add tests for peg/find and peg/find-all
2020-06-30 17:03:13 +02:00
Jason Pepas
f06e9ae30c
Switch to using /dev/urandom for OS X prior to 10.7
2020-06-30 04:18:08 -05:00
Jason Pepas
f5d208d5d6
eliminate large stack allocation from arc4random_buf bodge
2020-06-30 04:06:20 -05:00
Calvin Rose
7fb8c4a68d
Merge branch 'master' of github.com:janet-lang/janet
2020-06-29 22:57:46 -05:00
Calvin Rose
647fc56d47
Replace for with forv in most places in boot.janet
...
Generates slightly better bytecode with current compiler
(gets rid of a single extra move instruction per loop iteration).
2020-06-29 22:56:16 -05:00
Jason Pepas
597d84e263
Add support for systems missing arc4random_buf
2020-06-29 21:06:13 -05:00
Calvin Rose
977b0c3c0c
Merge pull request #429 from pepe/fix-reverse-doc
...
Tune reverse[d] docstrings
2020-06-29 20:55:04 -05:00
Calvin Rose
1b0d6de735
Merge pull request #432 from cellularmitosis/no_cloexec
...
Support for systems missing O_CLOEXEC
2020-06-29 20:54:41 -05:00
Calvin Rose
2f5bb7774e
Fix recursive post-deps.
2020-06-29 20:51:38 -05:00
Jason Pepas
5565f02dbd
Simplifying workaround for missing O_CLOEXEC
2020-06-29 19:36:18 -05:00
Calvin Rose
17a131ac21
Add peg/find and peg/find-all.
...
These peg functions should make pegs a bit easier to use
and more efficient in some common cases.
2020-06-29 19:13:06 -05:00
Calvin Rose
9a5cfe9f75
Merge branch 'master' of github.com:janet-lang/janet
2020-06-29 13:47:02 -05:00
Calvin Rose
cc936d9977
Merge pull request #435 from pepe/add-keyword-symbol-slice-tests
...
Add keyword/slice and symbol/slice tests
2020-06-29 09:11:35 -05:00
Josef Pospíšil
e9911fee4d
Add keyword/slice and symbol/slice tests
2020-06-29 09:18:26 +02:00
Calvin Rose
aefde67aa2
And lots of optimization functionality.
2020-06-28 18:16:57 -05:00
Calvin Rose
a1ea62a923
Fix optimization of do_get.
...
When the target slot (register) is the same as the default
register, do not clobber it.
2020-06-28 15:52:59 -05:00
Calvin Rose
7209ced446
Merge branch 'master' of github.com:janet-lang/janet
2020-06-28 15:09:01 -05:00
Calvin Rose
db63d352a2
Add specialization for 3 argument get.
...
This can be inlined with jmpnn instruction (jump if not nil) to
skip over the default value.
(get a b c)
can be exanded statically to
asm start:
(get $0 $1 $2)
(jmpnn $0 :label)
... Instructions to load default value to $0 - often a load.
:label
asm end.
2020-06-28 15:03:01 -05:00
Josef Pospíšil
289de840fd
Specify input types actions
2020-06-28 20:49:44 +02:00
Calvin Rose
cb34a8b620
Merge pull request #434 from elimisteve/master
...
Add .gitattributes: syntax highlight .janet files as Clojure
2020-06-27 17:01:45 -05:00
Calvin Rose
95c633914f
Add auto-resizing of gc interval.
...
This should prevent over use of GC and O(n^2)
behavior.
2020-06-27 16:51:20 -05:00
Calvin Rose
d033412b1f
Add symbol/slice and keyword/slice
2020-06-27 15:22:15 -05:00
Calvin Rose
9c5e97144d
More small changes to help with cross compilation
...
via makefile. Add option to turn off built in
getline via janetconf.
2020-06-27 12:39:16 -05:00
Calvin Rose
8b96289e2f
Merge branch 'master' of github.com:janet-lang/janet
2020-06-27 11:24:03 -05:00
Calvin Rose
51ff43e2f2
Update range checks for 64 bit integers.
2020-06-27 11:23:47 -05:00
Calvin Rose
1e30f4f973
Merge pull request #427 from pyrmont/nil-empty-string
...
Change default string representation of nil to empty string
2020-06-26 22:47:16 -05:00
Calvin Rose
36f66661f7
Merge pull request #431 from cellularmitosis/master
...
Add ppc to os/arch
2020-06-26 22:43:41 -05:00
Steve Phillips
de27fc15b6
Add .gitattributes: detect/syntax highlight .janet files as Clojure
2020-06-26 20:31:42 -07:00
Jason Pepas
f9f90ba1d6
Support for systems missing O_CLOEXEC
2020-06-26 14:44:57 -05:00
Jason Pepas
51bf8a3538
Add ppc to os/arch
2020-06-26 04:11:21 -05:00
Josef Pospíšil
7b033a48a3
Wrap both reverse and reversed docstring to 80 chr
2020-06-25 09:43:10 +02:00
Josef Pospíšil
1b420f69aa
Fix reverse docstring
2020-06-25 09:35:03 +02:00
Calvin Rose
6a187a384b
Make zipcoll more generic.
...
Work with any iterable (next) type.
2020-06-24 16:10:57 -05:00
Calvin Rose
ac5de1f96e
Change compare-primitive to cmp.
...
cmp is implemented as a VM instruction rather than
a function.
2020-06-24 16:00:00 -05:00
Calvin Rose
6c917f686a
Add :h default peg class, as well as ad \v to whitespace.
2020-06-24 08:40:23 -05:00
Calvin Rose
328ee94412
Merge branch 'master' into ev
2020-06-22 22:25:44 -05:00
Calvin Rose
de9951594e
Allow setting dynamic bindings at C top level.
...
Before, these bindings we just ignored. However, it useful for
controlling janet_printf and janet_eprintf, for example. These can
be called from C code without being inside a call to janet_continue.
2020-06-22 08:56:04 -05:00
Calvin Rose
561fc15ae9
Address #426 parse errors in *out janet_dostring
...
This should make its use a little more robust for
simple usage. To avoid printing to stderr, use
janet_table_put(env, janet_ckeywordv("err"), janet_wrap_false());
2020-06-22 08:34:17 -05:00
Calvin Rose
d65814c53f
Update changelog.md
2020-06-21 18:52:10 -05:00
Calvin Rose
803f17aa90
Add eachy and repeat to make looping easier.
...
Like eachk and eachp, use eachy and repeat to bring loop
verbs outside of the loop macro. These new macros are very simple
and easy to understand, in contrast to the loop macro which is of
medium complexity.
2020-06-21 18:48:06 -05:00
Calvin Rose
08a3687eb5
Fix #428
...
Add binding check for generate verb in loops. The check is present
in other loop verbs.
2020-06-21 15:57:55 -05:00
Michael Camilleri
c4035b2273
Change string representation of nil to empty string
2020-06-21 17:54:06 +09:00
Calvin Rose
5c364e0f7c
Better roundtrip jdn.
...
Use the most precise format specifier, such that output jdn numbers
are more accurate.
2020-06-18 21:54:34 -05:00
Calvin Rose
9cfc3d9d37
Update to 1.10.1
2020-06-18 19:24:17 -05:00
Calvin Rose
b5fdd30b77
Fix meson build version.
2020-06-18 18:43:10 -05:00
Calvin Rose
280292d3f5
Update CHANGELOG.md
2020-06-18 18:41:09 -05:00
Calvin Rose
c593d864be
Merge branch 'master' of github.com:janet-lang/janet
2020-06-18 18:38:17 -05:00
Calvin Rose
6d17348c72
Merge pull request #425 from pyrmont/bugfix.make-install-paths-fn
...
Make install-paths a function
2020-06-18 15:13:36 -05:00
Michael Camilleri
536648ec19
Use function for install-paths
2020-06-18 19:07:43 +09:00
Calvin Rose
b5e32a9ce5
Expose janet_table_clear.
2020-06-15 15:33:41 -05:00
Calvin Rose
4077822e37
Update changelog.
2020-06-15 11:54:51 -05:00
Calvin Rose
e2d8750625
Update jpm.
...
Silence git warnings on git pull, and fix issue with double
dependencies in rules.
2020-06-15 11:22:32 -05:00
Calvin Rose
79f5751375
Add array/trim and buffer/trim.
2020-06-14 17:40:48 -05:00
Calvin Rose
106437bd45
Fixes #423
...
Re-add ifdef for realpath config option.
2020-06-14 15:50:09 -05:00
Calvin Rose
b7cd13bb0b
Fix changelog typo.
2020-06-14 15:10:54 -05:00
Calvin Rose
be1ec1b973
Conditionally install jpm in meson.
2020-06-14 14:27:22 -05:00
Calvin Rose
1bddb87a0c
Fix MSVC Warnings.
2020-06-14 14:20:38 -05:00
Calvin Rose
fbe23d8c33
Prepare for 1.10.0 release.
2020-06-14 14:16:01 -05:00
Calvin Rose
f435bb24ab
Remove extra function on some installs.
2020-06-14 14:09:32 -05:00
Calvin Rose
853b33b67c
On nix platforms, patch jpm with path information.
...
This means we no longer need to guess paths after install.
Custom directory layouts can now be better supported at install
time without need for environment variables.
2020-06-14 14:04:23 -05:00
Calvin Rose
19f3568e18
Update for 1.10.0.
2020-06-14 12:15:56 -05:00
Calvin Rose
911c2cbe58
Update CHANGELOG.md
2020-06-14 12:12:41 -05:00
Calvin Rose
17bdfbb08b
Fix broken trace functionality.
...
This was an older regression that caused trace to emit
garbage output in most cases.
2020-06-14 11:58:20 -05:00
Calvin Rose
80f29ae859
Add some more bindings for jpm for future proofing.
2020-06-14 11:43:26 -05:00
Calvin Rose
0b114d680e
Update CHANGELOG.md.
2020-06-13 14:10:35 -05:00
Calvin Rose
c87a0910d0
Add some flags to creating threads for more control.
...
Allow lightweight/heavyweight threads, and make default lightweight.
This means multithreaded programs can save lots of memory by default.
2020-06-13 09:42:16 -05:00
Calvin Rose
b1a4f05b5a
Explicitly disallow handler for datagram server.
2020-06-13 08:29:48 -05:00
Calvin Rose
ce2079104a
Merge branch 'master' into ev
2020-06-11 19:20:51 -05:00
Calvin Rose
86e12369b6
Add alias for PEG repeat.
...
A tuple where the first element is an integer is
a shortand for this.
2020-06-11 11:23:43 -05:00
Calvin Rose
6d096551f0
Add Peg combinators 'to' and 'thru'.
...
Inpsired by the REBOL operators of the same name, these
combinators match bytes up to or inculding a given pattern.
(to patt) is (almost) equalivalent to (any (if-not patt 1)), and
(thru patt) is equivalent to (* (to patt) patt). The one difference
is that if the end of the input is reached and patt is not
matched, the entire pattern does not match.
2020-06-10 21:18:50 -05:00
Calvin Rose
2595c8a853
Properly hide private functions in boot.janet
2020-06-10 00:02:07 -05:00
Calvin Rose
2a9923999b
Merge pull request #422 from MikeBeller/compare
...
Implement polymorphic compare
2020-06-10 00:58:33 -04:00
Calvin Rose
03cbeac1ea
Remove snapcraft.yaml.
...
Removing explicit snapcraft support from janet. Getting things working
with snapcraft is not something I have had luck with, and snapcraft.io
has been spamming me with emails. Since this is not completely zero
overhead, I am simply removing support for snapcraft.
2020-06-06 11:35:43 -05:00
Calvin Rose
d64e9b6263
Remove snapcraft.
2020-06-06 10:31:16 -05:00
Mike Beller
9824a34d76
Remove dead code.
2020-06-06 08:55:20 -04:00
Mike Beller
76c3436377
Remove vestigial comparison methods from int types
2020-06-05 11:07:48 -04:00
Mike Beller
a4178d4b3c
All tests pass for compare.
2020-06-05 10:51:35 -04:00
Mike Beller
3e423722c6
Actually got the comparisons working for s64 (still need to fix u64)
2020-06-04 18:27:48 -04:00
Mike Beller
01837f2bb6
All tests pass.
2020-06-04 15:27:36 -04:00
Mike Beller
411c5da6d3
compare functions now work for built ins and 'objects'
2020-06-04 13:49:09 -04:00
Mike Beller
7658ea8335
primitive tests working. issues remain with polymorphic.
2020-06-04 12:46:58 -04:00
Mike Beller
81d301a42b
Initial commit of base functionality for compare
2020-06-04 12:23:54 -04:00
MikeBeller
0b500730e0
Merge pull request #1 from janet-lang/master
...
Bringing fork up to date
2020-06-04 10:35:03 -04:00
Calvin Rose
123710078d
Add unix domain socket support to net.
...
Code is a bit messy, as getaddrinfo does not support
unix domain sockets directly. We require a keyword :unix
instead of the usual hostname string, and the port is the
path to unix domain socket. The UDS should support both stream
and datagram sockets.
2020-06-03 00:53:17 -05:00
Calvin Rose
6c08dbab0e
Merge pull request #420 from leafgarland/master
...
Implement os/realpath with _fullpath
2020-06-02 20:57:28 -04:00
Calvin Rose
ec0d0ba368
Initial UDP implementation.
2020-06-02 19:47:50 -05:00
Leaf
bed02c2f95
Remove unused flags
2020-06-02 09:14:31 +00:00
Leaf
75bc69ba2f
Implement os/realpath on Window with _fullpath
...
This is similar to realpath but differs in that realpath will complain
if the path does not exist. We could add our own exists check if we
really wanted to match that behaviour.
2020-06-02 09:05:41 +00:00
Calvin Rose
3f434f2a44
Add backpressure capability to net.
2020-05-31 15:46:01 -05:00
Calvin Rose
71d8e6b4cd
Merge branch 'master' into ev
2020-05-30 11:35:19 -05:00
Calvin Rose
a78af0a7fb
Do not explicitly free state machines, instead return a status.
...
This makes it harder to have some kind of use after free issue.
2020-05-30 11:31:05 -05:00
Calvin Rose
eb9f74a273
Silence MSVC warning.
2020-05-30 10:06:39 -04:00
Calvin Rose
117ae196fd
Add net/flush.
...
Useful for simple TCP protocols (netrepl), which benefit from being able
to immediately send a message.
2020-05-28 19:22:38 -05:00
Calvin Rose
4c211c8dce
More updates to the ev library.
2020-05-28 16:51:11 -05:00
Calvin Rose
4056b94e01
Merge pull request #418 from ahungry/bugfix/Fix-double-free-fclose
...
Fix for double free on fclose due to GC not knowing it failed
2020-05-28 17:24:09 -04:00
Matthew Carter
ee94828355
Fix for double free on fclose due to GC not knowing it failed
2020-05-28 15:35:09 -04:00
Calvin Rose
c10d9b9d9d
Merge branch 'master' into asyncio
2020-05-28 10:57:10 -05:00
Calvin Rose
fff66649aa
Fix issue #416 .
...
Be really sure we don't pass too large of a size to memcpy.
There seem to be some situations where the slotcount and the ua.count
do not match at all, so use the mimimum for copying.
2020-05-28 10:47:22 -05:00
Calvin Rose
b68b0a256e
Start with ev module.
2020-05-28 10:39:40 -05:00
Calvin Rose
b33fdc1674
Merge pull request #415 from leafgarland/fix_numarray_example
...
Fix numarray example to work with jpm and latest Janet c-api
2020-05-25 14:04:58 -04:00
Leaf Garland
6909d9c9c9
Fix c code for latest Janet
2020-05-24 21:30:23 +12:00
Leaf Garland
0d5d820f4f
Remove cook code
2020-05-24 21:29:20 +12:00
Leaf Garland
6fbca3416a
Move tests to tests dir
2020-05-24 21:28:16 +12:00
Leaf Garland
466d9b31ce
Add project.janet for numarray
2020-05-24 21:25:52 +12:00
Calvin Rose
b6fdaaac41
Merge pull request #414 from roobie/update-readme
...
adds WiX details to README
2020-05-23 12:08:35 -04:00
Calvin Rose
c19bbfce78
Make style consistent.
2020-05-23 11:07:57 -05:00
Calvin Rose
e9fdbe0c89
Merge pull request #411 from LouisJackman/make-ctrl-c-interrupt-current-form
...
Make Ctrl-C Cancel the Current Form; Only Exit if Column 0 Outside of Form
2020-05-23 11:33:19 -04:00
bjorn roberg
f2299eab8f
rephrase the info about WiX and .msi
2020-05-23 14:15:19 +02:00
LouisJackman
e220f44953
Simplify and don't replace history for cancelled forms
2020-05-23 08:36:40 +01:00
bjorn roberg
b750a84ab1
adds WiX details to README
2020-05-22 23:53:31 +02:00
Calvin Rose
41f8be2c53
Fix flycheck when using the use macro.
...
Flycheck originally expected `use` to have
the same arguments as `import`, but this is not the case.
2020-05-21 18:51:17 -05:00
LouisJackman
c3e4cbe950
Address compilation warning about modifier order
2020-05-21 18:51:25 +01:00
LouisJackman
50df5000c2
Update older run-context code
2020-05-21 18:47:47 +01:00
LouisJackman
3c8930b72b
Get tests passing again by returning keyword rather than nil from chunks
2020-05-21 18:37:15 +01:00
LouisJackman
f0572c4d5f
Remove REPL-within-form thread-local bool
2020-05-21 18:31:21 +01:00
Calvin Rose
057ba8a4e1
Fixes #409
...
Use the correct count in a memcpy.
2020-05-21 01:35:37 -05:00
Calvin Rose
677737d345
Fixes #412 Lookahead does not move cursor.
2020-05-21 01:22:08 -05:00
Calvin Rose
930ac9c57d
Merge branch 'master' of https://github.com/janet-lang/janet
2020-05-21 00:18:45 -04:00
Calvin Rose
5caa0371c4
Replace forward slash in xcopy commands.
...
xcopy doesn't handle them in paths.
2020-05-21 00:18:07 -04:00
Calvin Rose
e6e1cb1b43
Merge pull request #410 from MikeBeller/tarray-next
...
Fix issue #408 -- make "next" work for typed arrays, and also fix
2020-05-20 19:00:06 -04:00
LouisJackman
164ed0b325
Get expected behaviour; cleanup after confirming behaviour is desired
2020-05-20 22:40:05 +01:00
Mike Beller
8263789602
Fix issue #408 -- make "next" work for typed arrays, and also fix
...
bug where tarray/new failed to fully check the type of it's last
argument.
2020-05-20 13:30:48 -04:00
Calvin Rose
a99906c6f0
Remove NSIS artifacts.
...
NSIS installer has been replaced by WiX installer.
2020-05-19 22:25:04 -05:00
Calvin Rose
617338457d
More windows shenanigans with jpm.
...
Cannot remove open file, get rid of double rm.
2020-05-19 20:03:49 -04:00
Calvin Rose
1026d2173b
Quick fix.
2020-05-19 19:21:30 -04:00
Calvin Rose
ca9c9ee807
Add the clear-manifest command.
2020-05-19 19:20:09 -04:00
Calvin Rose
bef51fe9ff
Fix jpm.
2020-05-19 18:41:17 -04:00
Calvin Rose
b72845609f
Add JANET_GIT to jpm.
...
This should allow work arounds for some windows installs.
Also, be clever about finding the location of te current git
executable on windows to avoid some path issues that seem to
occur on some windows installations.
2020-05-19 18:36:58 -04:00
Calvin Rose
ccd8b71c4b
Fix os/shell usage in jpm on windows.
2020-05-19 16:28:43 -05:00
Calvin Rose
e623690295
Use keywords in the assembly interface.
...
This is simply more idiomatic, removes some unused and undocumented
features of the assembly interface, and simplifies it somewhat.
2020-05-19 13:51:39 -05:00
Calvin Rose
070baea3c4
Merge branch 'master' of github.com:janet-lang/janet
2020-05-19 09:47:11 -05:00
Calvin Rose
0e828792ae
Fix segfault on bad loop. Fixes #407 .
2020-05-19 09:45:45 -05:00
Calvin Rose
31a8dfa063
Merge pull request #406 from leafgarland/master
...
Add Wix/msi installer for Windows
2020-05-19 06:49:41 -04:00
Leaf Garland
338ef8f2e4
Update Appveyor to build Wix installer
2020-05-19 17:00:42 +12:00
Leaf Garland
737fee94d0
Change build_win.bat to build Wix installer
2020-05-19 16:57:26 +12:00
Leaf Garland
4a2d770066
Add Wix/msi installer for Windows
2020-05-19 16:56:50 +12:00
Calvin Rose
b7cfc08fc5
Improve line and col tracking in parser.
...
Unconditionally add line and column information if
a parsed value is a tuple - before, some parsed tuples
had line and col information omitted.
2020-05-18 19:05:27 -05:00
Calvin Rose
92f0e1719b
Be less eager to set macro-form in macex1.
2020-05-18 18:37:41 -05:00
Calvin Rose
9e5f203302
Expose line, col in macros via (dyn :macro-form)
...
This exposes line and column indirectly via
tuple/sourcemap and allows interesting debug macros.
2020-05-18 18:27:35 -05:00
Calvin Rose
17cb0c1aee
Merge pull request #402 from andrewchambers/linelockfiles
...
Format lock files for nicer diffs.
2020-05-18 18:45:25 -04:00
Calvin Rose
df32cd0aca
Update tracev macro to be simpler and single arity.
...
Reference #401
2020-05-18 17:43:41 -05:00
Calvin Rose
ae5dc8c45b
Merge pull request #401 from LouisJackman/add-dbg-core-macro
...
Add a dbg macro for easy var dumping
2020-05-18 18:30:14 -04:00
LouisJackman
b1ed5b0707
Add "trace " prefix missed out from previous commit
2020-05-18 22:02:56 +01:00
Calvin Rose
eefdb3f156
Merge pull request #403 from kryptine/master
...
Fix spelling errors
2020-05-18 17:01:41 -04:00
LouisJackman
e9a5cfaddd
Adopt Andrew Chamber's suggestions
2020-05-18 21:55:21 +01:00
kryptine
f5f2997cc2
Fix spelling errors
2020-05-18 06:32:00 +00:00
Andrew Chambers
43d2ba6275
Format lock files for nicer diffs.
2020-05-18 15:43:52 +12:00
Calvin Rose
8b98b331cc
Add :hardcode-syspath option to declare-binscript.
...
This should make fully correct installs easier.
2020-05-17 09:29:45 -05:00
LouisJackman
e0130e7fd7
"Literal" -> "Expression" for trace-pp msg
2020-05-17 08:18:44 +01:00
LouisJackman
fb491f0d7c
Put back erroneously deleted "Literal"
2020-05-17 08:12:54 +01:00
Calvin Rose
33b5d9651f
Remove more mentions of lisp in descriptions.
2020-05-16 15:22:34 -05:00
LouisJackman
9109e369ff
Incorporate suggestions from PR
2020-05-16 20:18:00 +01:00
Calvin Rose
b97e011715
Remove some lisp claims from README for branding.
2020-05-16 14:12:21 -05:00
Calvin Rose
1bb9a9368b
Make sure winsock2.h is included before windows.h
...
This should be true in the normal build, and especially in the
amalgamated build.
2020-05-16 12:41:26 -05:00
LouisJackman
ca3dac7e87
Return an immutable tuple instead
2020-05-16 15:50:47 +01:00
LouisJackman
59302d4f42
Return dbg values to work inside complex exprs
2020-05-16 15:42:16 +01:00
LouisJackman
fabb722c8d
Add a dbg macro for easy var dumping
2020-05-16 15:15:57 +01:00
Calvin Rose
657fae490c
Update CHANGELOG.md
2020-05-16 08:36:32 -05:00
Calvin Rose
e9acebe0e8
Merge branch 'master' of github.com:janet-lang/janet
2020-05-16 08:29:30 -05:00
Calvin Rose
7a84fc4742
Fix infinite loop in some cases.
...
Problem - reusing a tainted variable without reinitializing.
2020-05-16 08:28:50 -05:00
Calvin Rose
4be3d66a32
Merge pull request #395 from zyga/master
...
Add snapcraft packaging
2020-05-15 19:04:26 -04:00
Calvin Rose
92df01b99d
Add valtest and debug to Makefile help.
2020-05-15 17:59:05 -05:00
Calvin Rose
5c9c738913
Merge pull request #399 from LouisJackman/add-make-help-target
...
Add make help target
2020-05-15 18:55:23 -04:00
Calvin Rose
83c357d9d1
Merge branch 'master' of github.com:janet-lang/janet
2020-05-15 17:24:21 -05:00
Calvin Rose
3bb3adefbb
Rename jpm repl to jpm debug-repl.
2020-05-15 17:22:30 -05:00
Calvin Rose
cf670153f9
Add :fresh option to import.
2020-05-15 17:19:37 -05:00
LouisJackman
d6cd69e659
Add make help target
2020-05-15 07:51:21 +01:00
Calvin Rose
48d31ad7bc
Merge pull request #396 from halfhorst/documentation/update-readme-embedding
...
update janetconf.h path in README embedding section
2020-05-13 18:13:53 -04:00
halfhorst
20aa258f0e
update janetconf.h path in README embedding section
2020-05-13 14:54:44 -07:00
Zygmunt Krynicki
45a60956a6
Add snapcraft packaging
...
Snapcraft allows the latest version of Janet to be immediately available
to developers on most popular Linux distributions. This patch provides
the snapcraft.yaml file, which provides information about the package,
how to build it and how to install it.
Both janet and jpm are exposed, though the latter requires a store side
alias to be provided, as snap names also control application names, to
avoid clashes between applications.
For this prototype I've selected classic confinement. Application
language packages are usually provided with classic confinement, as that
is most flexible for developers.
Snaps do not support providing manual pages yet, so no entries for those
were created.
Signed-off-by: Zygmunt Krynicki <me@zygoon.pl >
2020-05-13 19:04:10 +02:00
Calvin Rose
4ae372262b
1.9.1 release.
2020-05-12 09:19:09 -05:00
Calvin Rose
02167a15d1
Add new Makefile options to meson.
2020-05-12 09:04:38 -05:00
Calvin Rose
b50a4669d2
Update README and CHANGELOG.
2020-05-12 08:56:58 -05:00
Calvin Rose
c947bda604
Remove .breakall and .clearall conditionally.
...
If disasm not available, these functions cannot be implemented.
2020-05-12 08:52:36 -05:00
Calvin Rose
00451777fe
Add meson builds to sourcehut CI.
2020-05-12 08:46:26 -05:00
Calvin Rose
a65386e925
Merge branch 'master' of github.com:janet-lang/janet
2020-05-11 01:10:58 -05:00
Calvin Rose
2d7d154ffc
Merge pull request #392 from t6/patch-meson
...
Unbreak Meson build
2020-05-11 00:08:25 -04:00
Calvin Rose
3100080a50
Add NO_UMASK and NO_REALPATH config options.
2020-05-10 23:07:54 -05:00
Tobias Kortkamp
7275370ae5
Unbreak Meson build
...
The Meson build system
Version: 0.54.0
Source dir: /wrkdirs/usr/ports/lang/janet/work/janet-1.9.0
Build dir: /wrkdirs/usr/ports/lang/janet/work/janet-1.9.0/_build
Build type: native build
meson.build:225:2: ERROR: Expecting rbracket got string.
'test/suite9.janet'
^
For a block that started at 215,13
test_files = [
^
2020-05-11 06:02:26 +02:00
Calvin Rose
e013381e72
Conditionally ignore pclose as well as popen.
2020-05-10 21:06:52 -05:00
Calvin Rose
d05bb1c125
Fix nanboxing issue.
2020-05-10 20:14:47 -05:00
Calvin Rose
273d1ff2d0
Fix external grammar to disallow | and \ in symbols.
2020-05-10 16:57:42 -05:00
Calvin Rose
235605bfa4
1.9.0 Release.
...
Fix up some documentation as well.
2020-05-10 16:45:33 -05:00
Calvin Rose
e8b3587946
Silence clang warnings about missing initializers.
2020-05-10 16:00:55 -05:00
Calvin Rose
9040ac6a0c
Silence some warnings about pointer signedness.
2020-05-09 23:58:45 -05:00
Calvin Rose
a73ba56ebb
Address #387
...
Introduce linker flags vs. library flags in jpm
in a backwards compatible way - most usage of lflags was for library
flags, so we will preserve that behavior.
2020-05-09 21:11:26 -05:00
Calvin Rose
1168f47768
Update default path for installed binaries.
...
This is useful for installing binaries in a default install
(when JANET_PATH or JANET_MODPATH is not explicitly set).
2020-05-09 19:02:12 -05:00
Calvin Rose
73dba691b1
Re-disable processes on emscripten build.
2020-05-09 12:04:47 -05:00
Calvin Rose
b1f76139a7
Add several configurable options - #379
2020-05-09 12:00:01 -05:00
Calvin Rose
6b986fecb0
Merge branch 'master' of github.com:janet-lang/janet
2020-05-09 11:07:15 -05:00
Calvin Rose
535ab8302b
Add errorf to core.
2020-05-09 11:06:20 -05:00
Calvin Rose
7125b3430c
Merge pull request #383 from andrewchambers/rngdoc
...
Improve rng doc string accuracy.
2020-05-09 11:35:01 -04:00
Calvin Rose
0615d09b7a
Merge pull request #385 from andrewchambers/fnctlfix
...
Avoid setting O_CLOEXEC on stdin/stdout/stderr.
2020-05-09 11:34:37 -04:00
Calvin Rose
1add0c7d43
make test-install should be easier to clean.
2020-05-09 10:30:09 -05:00
Calvin Rose
8194f5ccaf
Refactor jpm.
...
Make install and uninstall commands variadic.
Add :libs option to many decalre commands. This behaves much like
lflags, but will be places after all linker flags are given.
2020-05-09 10:22:46 -05:00
Andrew Chambers
057486cf56
Avoid setting O_CLOEXEC on stdin/stdout/stderr.
2020-05-09 22:26:50 +12:00
Andrew Chambers
f94e726271
Improve rng doc string accuracy.
2020-05-09 12:11:08 +12:00
Calvin Rose
95660002e1
fix include sys/fcntl.h to fcntl.h
2020-05-07 14:54:03 -05:00
Calvin Rose
95c669389b
Merge pull request #378 from andrewchambers/tweak
...
Tweak comment, remove extra include.
2020-05-07 10:33:19 -04:00
Calvin Rose
084fc9776d
Use SOCK_CLOEXEC correctly.
2020-05-07 07:55:08 -05:00
Andrew Chambers
1498fdb7b0
Tweak comment, remove extra include.
2020-05-07 20:44:04 +12:00
Calvin Rose
79c3139748
Check for SOCK_CLOEXEC.
...
Not available on all platforms.
2020-05-06 23:44:01 -05:00
Calvin Rose
bdd64f5656
Merge branch 'master' of github.com:janet-lang/janet
2020-05-06 18:52:57 -05:00
Calvin Rose
dc3e9fb77c
Add CLOEXECs when getting file descriptors ( #374 )
...
This should help address leaking file descriptors in multithreaded
programs. There are a few cases where a race can occur though, as
some apis (fopen and mktemp).
2020-05-06 18:33:25 -05:00
Calvin Rose
4b417c0e9d
Merge pull request #375 from andrewchambers/mttemp
...
Set the CLOEXEC flag on file/temp files.
2020-05-06 18:19:11 -04:00
Andrew Chambers
06c28f3a4d
Set the CLOEXEC flag on file/temp files.
2020-05-06 11:16:08 +12:00
Calvin Rose
688fe6db5e
Merge pull request #370 from andrewchambers/spawnrace
...
Fix (mostly nonsensible) race condition in multi threaded processes
2020-05-05 10:33:41 -04:00
Calvin Rose
9aefb59afe
Format jpm with spork.
2020-05-05 09:21:50 -05:00
Calvin Rose
e3862b86b5
Use spork indent on boot.janet.
2020-05-05 09:17:09 -05:00
Calvin Rose
125cd222bb
Pretty print tab characters as \t.
2020-05-05 00:03:12 -05:00
Andrew Chambers
a0f351c9fa
Fix (mostly nonsensible) race condition in multi threaded processes using os/execute with os/setenv.
2020-05-05 16:03:13 +12:00
Calvin Rose
f7b49a2c91
Improve use of @ in match.
2020-05-04 18:28:20 -05:00
Calvin Rose
fd70b47768
Merge branch 'master' of github.com:janet-lang/janet
2020-05-02 23:40:11 -05:00
Calvin Rose
5d1fd390a6
Fix debugger regression.
2020-05-02 23:40:00 -05:00
Calvin Rose
8b5663e385
Merge pull request #363 from uasi/fix-typo-in-doc
...
Fix typo in doc
2020-05-02 12:11:18 -04:00
Calvin Rose
8b5bcaee3c
Add lenprefix combinator to pegs.
...
This lets peg match n repeitions of a pattern, where
n is supplied from other parsed input and is not a constant.
2020-05-02 10:39:35 -05:00
Tomoki Aonuma
ca845aa256
Fix typo in doc
2020-05-02 02:36:55 +09:00
Calvin Rose
761ea65d81
Add fiber/roor and allow net/server to take
...
a numeric port.
2020-04-30 23:21:26 -05:00
Calvin Rose
1dc32d5e3d
Revert inclusion of dedent.
...
Dedent has been moved to spork as misc function.
There are two many different, incompatible ways to 'dedent'
as string, and it seems rather specific to add to the core like it is.
2020-04-30 21:35:22 -05:00
Calvin Rose
1c0a015cc8
s/WSALastError/WSAGetLastError()/g
2020-04-30 13:26:14 -05:00
Calvin Rose
bee415217d
Fix extra bindings.
2020-04-29 21:57:19 -05:00
Calvin Rose
73989f5cc7
Consolidate windows and posix socket code.
...
Also remove code that ignored sigpipe and instead try
our best to ignore through various platform specific mechanisms.
2020-04-29 21:07:21 -05:00
Calvin Rose
dd458c8ab5
Make JANET_NO_ASSEMBLER not break build.
2020-04-28 23:04:24 -05:00
Calvin Rose
63e9790123
Fix flag check in pretty print.
2020-04-28 10:00:24 -05:00
Calvin Rose
70e1f3ac81
Fix regression in repl.
2020-04-28 08:20:07 -05:00
Calvin Rose
67f1872f4a
Expose debugger-env
...
This makes it easier/possible to use the debugging
functionality in a more flexible way.
2020-04-27 23:32:21 -05:00
Calvin Rose
8bbb7907d6
Run parser error handler in the correct env in run-context.
2020-04-27 20:29:16 -05:00
Calvin Rose
c98e1f3cae
Update documentation for net/read and net/chunk.
2020-04-27 19:26:05 -05:00
Calvin Rose
6b0f93ce8a
Update documentation for the -q flag.
2020-04-27 18:57:53 -05:00
Calvin Rose
80f19a0ab7
Fix behavior of -q flag.
...
Don't surpress errors at the repl.
2020-04-27 18:12:22 -05:00
Calvin Rose
41894eb285
Add docstrings to net.c
2020-04-26 14:11:47 -05:00
Calvin Rose
3535efd977
Remove %u format specifiers.
2020-04-26 13:47:36 -05:00
Calvin Rose
f6bd41ada7
Add %M, %m, %N, and %n formatters.
...
These will not truncate long values.
2020-04-26 13:17:28 -05:00
Calvin Rose
7b5f40772f
Disable networking for emscripten build.
2020-04-26 12:37:27 -05:00
Calvin Rose
d2ebf4b52d
Merge branch 'net'
2020-04-26 12:27:37 -05:00
Calvin Rose
0fe5c672a6
Use dedent in jpm create-executable.
2020-04-26 12:14:43 -05:00
Calvin Rose
ce7d51f9be
Add dedent to core.
...
Makes longstrings easier to use - can be combined with comptime
for overhead free long strings.
2020-04-26 11:53:26 -05:00
Calvin Rose
cc1f84d1d3
Fix NSIS installer after moving jpm.
2020-04-26 08:58:53 -05:00
Calvin Rose
74126d9f24
Merge branch 'master' of github.com:janet-lang/janet
2020-04-26 08:55:59 -05:00
Calvin Rose
69eb9531da
Rename auxbin/jpm -> jpm.
2020-04-26 08:55:32 -05:00
Calvin Rose
da4d8254fa
Silence warning in MSVC about VLAs.
...
When janet.h is included as a C++ header in
MSVC, shows warnings.
2020-04-25 17:13:25 -04:00
Calvin Rose
57332c5ccf
Change order of declarations for MSVC C++ support.
2020-04-25 15:42:44 -05:00
Calvin Rose
9bc5ac05c4
Add the parse function.
2020-04-25 12:46:32 -04:00
Calvin Rose
0a4d58468e
Remove Debug build from appveyor.
2020-04-25 12:06:22 -04:00
Calvin Rose
8ce092da68
Update create-dirs to work on windows style paths.
2020-04-25 12:01:09 -04:00
Calvin Rose
fce1529bf2
Re-enable NSIS unicode.
2020-04-25 10:01:27 -05:00
Calvin Rose
61edf22a45
Remove Unicode True
...
This seems like it might trigger mS defender based on an old bug.
Don't think we really need it, so I will remove it just in case.
2020-04-25 09:26:56 -05:00
Calvin Rose
84974d6c56
Make repl printing work from current environment.
...
Although this "unprotects" output in the repl, people
in a repl usually want control, not protection.
2020-04-24 22:29:02 -05:00
Calvin Rose
da438a93e0
Restore lexicographic comparison of tuples.
2020-04-24 16:51:04 -05:00
Calvin Rose
a87015598c
Make janet_equals and janet_compare non recursive
...
This makes these operatios use constant stack space rather
than linear stackspace given the size of the inputs. This is important
to prevent certain parser input from causing a stack overflow - in
general, we try to avoid unbounded recursion.
2020-04-24 16:18:31 -05:00
Calvin Rose
c335bf5dc5
Update doc doc.
2020-04-23 12:15:12 -05:00
Calvin Rose
c6a782c0ce
Add information on lockfiles to the man page.
2020-04-23 12:10:22 -05:00
Calvin Rose
d148e14aa2
Merge pull request #357 from andrewchambers/lockfilejdn
...
Lockfiles are jdn, not code.
2020-04-23 13:03:51 -04:00
Andrew Chambers
748a5d41c1
Lockfiles are jdn, not code.
2020-04-23 21:53:36 +12:00
Calvin Rose
c876e63010
Fix overflow in exponent estimation in strtod.c.
...
Found by OSS-Fuzz.
2020-04-21 18:32:59 -05:00
Calvin Rose
23b811243f
Update CHANGELOG.md
2020-04-21 18:24:46 -05:00
Calvin Rose
99d9c57154
Add the --offline flag to jpm.
...
This will let jpm install things only from the cache, and not
try and sync the latest from git.
2020-04-21 12:41:08 -05:00
Calvin Rose
13559baecc
Merge pull request #354 from andrewchambers/safeclean
...
Do not recurse into symlinks when cleaning.
2020-04-21 13:21:42 -04:00
Calvin Rose
481647ed5d
Merge pull request #355 from sogaiu/fiber-new-err-msg
...
Add flags to fiber/new error message
2020-04-21 13:21:11 -04:00
sogaiu
5c162ce588
Add flags to fiber/new error message
2020-04-21 13:47:56 +01:00
Andrew Chambers
e1b6175efd
Do not recurse into symlinks when cleaning.
2020-04-21 15:11:51 +12:00
Calvin Rose
ea46f096c2
Remove placeholder config variables.
2020-04-20 20:10:24 -05:00
Calvin Rose
da88dd8cfa
Streamline tree printing code.
2020-04-20 19:50:32 -05:00
Calvin Rose
9b5c6112e5
The -q option no longer disables repl output.
2020-04-20 19:28:30 -05:00
Calvin Rose
ea1341a129
Show post-deps rules in rule tree.
2020-04-20 19:19:53 -05:00
Calvin Rose
343cb779d2
Remove extra os/mkdir.
2020-04-20 19:06:53 -05:00
Calvin Rose
b0af01a762
Remove ./build as default rule.
...
Instead, all compilation rules do the equivalent of
mkdir -p to make sure that we can build the output file.
2020-04-20 19:02:09 -05:00
Calvin Rose
d8617514f8
Add jpm rule-tree.
...
Useful for debugging jpm project.janet files.
This tree printing logic can also be reused for
showing dependency information in the future.
2020-04-20 18:32:25 -05:00
Calvin Rose
e579d1d89f
Add jpm rule-tree.
...
Useful for debugging jpm. This funtionality also maybe reused for
for showing a dependency tree as well.
2020-04-20 18:31:14 -05:00
Calvin Rose
63812c9f80
Merge pull request #350 from DavidKorczynski/master
...
Updated the libfuzzer to target marshalling.
2020-04-19 18:56:51 -04:00
David Korczynski
676a0afe4c
Fixed up very wrong fuzzer to go more for the parser.
2020-04-19 20:36:38 +01:00
Calvin Rose
42c257d0fc
Merge branch 'master' into net
2020-04-19 13:38:51 -05:00
Calvin Rose
d5e5c98dc8
Merge branch 'net' of github.com:janet-lang/janet into net
2020-04-19 13:37:54 -05:00
Calvin Rose
12d21dcb85
Update CHANGELOG.md
2020-04-19 10:57:50 -05:00
Calvin Rose
5054eb4276
Add JANET_MARSH_UNSAFE flag.
...
This allows unmarshal to optional marshal raw
pointers and cfunctions and send them across threads.
This flag is only exposed in the C API as it is very easy
to misuse and cause segfaults.
2020-04-19 10:56:39 -05:00
Calvin Rose
122c77dbf6
Merge pull request #353 from andrewchambers/require
...
Fix outdated require docstring.
2020-04-19 10:44:37 -04:00
Calvin Rose
3c66cab4e7
Remove extra binding in require.
2020-04-19 09:44:02 -05:00
Calvin Rose
738fd479b3
Merge branch 'master' of github.com:janet-lang/janet
2020-04-19 09:41:49 -05:00
Calvin Rose
5c612095a1
Address #352 , #351 , Use :source argument in dofile
...
Also re-add circular dependency detection.
2020-04-19 09:38:18 -05:00
Calvin Rose
3e60e82529
Add circular dependency detection.
...
This detection will not stop compilation, as errors
in general do not stop compilation unless exit on error
is passed inside an import, but should notify the user something
is going on.
2020-04-19 09:35:14 -05:00
Calvin Rose
60f8dd0bfc
Renable :source argument to dofile.
...
Allows for some more interesting usage of
loaders.
2020-04-19 08:54:24 -05:00
Andrew Chambers
2a7008a82c
Fix outdated require docstring.
2020-04-19 23:02:35 +12:00
Calvin Rose
0d3c6abee8
POLLER -> POLLERR
2020-04-18 19:15:59 -04:00
Calvin Rose
4a693222b4
Port net code to windows.
...
Use winsock2 and WSAPoll. Not the most high performance
solution but should work well.
2020-04-18 19:14:38 -04:00
David Korczynski
82e052f2ec
Updated the libfuzzer to target marshalling.
2020-04-18 22:04:26 +01:00
Calvin Rose
0745c15d7b
Fix return value from shell.c
2020-04-18 15:31:46 -05:00
Calvin Rose
2904c19ed9
Switch to poll from select.
...
Simpler and more flexible interface, and also lets
us use epoll more easily on linux, which is the most important
plantform to optimize for network performance.
2020-04-18 15:22:20 -05:00
Calvin Rose
16fe0a301c
Merge pull request #349 from sogaiu/tweak-unknown-signal-handling
...
Tweak unknown signal handling
2020-04-18 06:22:29 -05:00
sogaiu
aebb8010d4
Tweak unknown signal handling
2020-04-18 08:26:16 +01:00
Calvin Rose
4ac382e553
Add alias JANET_SIGNAL_EVENT.
2020-04-17 16:27:02 -05:00
Calvin Rose
596111c988
Merge branch 'master' into net
2020-04-17 15:08:26 -05:00
Calvin Rose
e202d30835
Use make format.
2020-04-17 13:39:23 -05:00
Calvin Rose
fbe903b277
Add janet_cfuns_prefix to janet.h
...
Makes adding functions to the current environment easier.
2020-04-17 13:37:52 -05:00
Calvin Rose
8a89e50c13
:octal-permissions -> :int-permissions ( #347 )
2020-04-16 19:05:00 -05:00
Calvin Rose
6cb0e0dcea
Merge branch 'master' of github.com:janet-lang/janet
2020-04-16 19:02:58 -05:00
Calvin Rose
a147ea3e80
Use JANET_PRETTY_DICT_LIMIT.
2020-04-16 19:01:49 -05:00
Calvin Rose
557988e530
Merge pull request #344 from DavidKorczynski/master
...
Added a fuzzer and integration with OSS-Fuzz.
2020-04-16 18:50:07 -05:00
Calvin Rose
67fb2c212f
Address #348
...
Remove extreneous data from lockfile.
2020-04-16 18:44:21 -05:00
Calvin Rose
3765b08cca
Merge branch 'master' of github.com:janet-lang/janet
2020-04-16 12:11:59 -05:00
Calvin Rose
3eb84fcb13
Fix some typos, make jpm repl work without a project.janet.
2020-04-16 12:11:17 -05:00
Calvin Rose
bea76e8e08
Merge pull request #345 from sogaiu/checks-after-allocs
...
Check some *alloc return values
2020-04-15 19:45:39 -05:00
Calvin Rose
f5433dcaa4
Fix core getline that doesn't use replacement.
2020-04-15 19:45:17 -05:00
Calvin Rose
ef3b953a42
Fix docstrings.
2020-04-14 21:32:50 -05:00
Calvin Rose
605a205008
Range errors for slice-likes include negatives.
...
Makes for less confusing errors when calling something
like `(slice [] 0 -10)`.
2020-04-14 21:27:48 -05:00
Calvin Rose
058f63b440
Add sh-rule and sh-phony to jpm dialect.
...
Provides useful shorthand for writing rules that invoke
shell commands.
2020-04-14 20:43:53 -05:00
Calvin Rose
71882475d6
janet_formatb -> janet_formatbv, new janet_formatb
...
The old function was not very useable. In the likely
case that there is no external code using this
(not well documented/janet_formatc is more convenient), we
can change this.
2020-04-14 07:38:41 -05:00
sogaiu
a3d29a15df
Check some *alloc return values
2020-04-14 10:22:45 +01:00
Calvin Rose
a09112404d
Add better error message on unexpected eos.
...
Show innermost open delimiter
2020-04-13 23:18:27 -05:00
Calvin Rose
93fc11ea21
Add edefer.
...
Also improve error messages from vm internal errors.
(Show bad value, not its type).
2020-04-13 20:24:11 -05:00
davkor
4faa129b8e
Added a first fuzzer.
2020-04-13 17:33:58 +01:00
Calvin Rose
6c4ed0409d
Add emscripten check to features.h.
2020-04-12 14:13:55 -05:00
Calvin Rose
ea2811f14f
Merge branch 'master' of github.com:janet-lang/janet
2020-04-11 13:42:34 -05:00
Calvin Rose
8bc2987a71
(struct ...) with duped keys will use last value.
2020-04-11 13:42:25 -05:00
Calvin Rose
1d13095d19
Merge pull request #340 from pepe/get-vs-in-last
...
Fix last for empty collection, add tests
2020-04-10 19:03:21 -05:00
Calvin Rose
5ed76f197a
Differentiate error from resume and error from resumed fiber.
2020-04-10 18:29:10 -05:00
Calvin Rose
e1f4cadf41
Add debugger to the core repl.
...
Debugger functions are prefixed by periods.
2020-04-10 17:20:23 -05:00
Calvin Rose
3b0e6357ad
Make Ctrl-G in repl show docstring for symbol.
...
Can be used to browse docs without poluting your repl session.
2020-04-10 11:36:23 -05:00
Calvin Rose
02f17bd4e4
Add sort-by and sorted-by.
2020-04-09 20:43:51 -05:00
Josef Pospíšil
b63a0796fd
Fix last for empty collection, add tests
2020-04-09 14:35:57 +02:00
Calvin Rose
e6d4e729fb
Keep reference alive so unmarshalled object not collected.
2020-04-06 17:24:52 -05:00
Calvin Rose
b75a22b753
Make JANET_FRAME_SIZE consistent across architectures.
...
This means unmarshalling fibers should work across arches.
2020-04-06 12:41:56 -05:00
Calvin Rose
72beeeeaaa
Move funcenv verification to runtime.
...
Lazy verification makes it easier to not leave funcenvs
in an invalid state, as well as be more precise with the validation.
We needed to verify the FuncEnvs actually pointed to a stack frame if
they were of the "on-stack" variant. There was some minor checking
before, but it was not enough to prevent func envs from pointing to
memory that was off of the fiber stack, overlapping stack frames, etc.
2020-04-06 10:58:47 -05:00
Calvin Rose
c3c42ef56f
Fix case for #336 .
...
Also consider ascii 127 (delete) non-printable for string escapes.
2020-04-06 00:11:22 -05:00
Calvin Rose
a3c55681b2
Address #336 case 6
2020-04-05 21:39:39 -05:00
Calvin Rose
cc70388846
Merge pull request #338 from andrewchambers/unmarshalfuzz2
...
Make unmarshal fuzzer exercise more code paths.
2020-04-05 20:36:30 -05:00
Calvin Rose
fcc610f539
Address #336 case 4
...
Set funcenv fields to NULL before any possible panics.
2020-04-05 19:18:59 -05:00
Calvin Rose
5bbd507858
Address #336 case 3
...
Fix error condition for bad abstract types - don't return NULL, panic.
2020-04-05 17:38:14 -05:00
Andrew Chambers
45156c0c47
Make unmarshal fuzzer exercise more code paths.
2020-04-06 09:59:00 +12:00
Calvin Rose
553e38ffd6
Merge pull request #337 from andrewchambers/fuzzunmarshal
...
Setup some simple fuzz helpers for unmarshal.
2020-04-05 08:17:42 -05:00
Calvin Rose
c4ca0490ee
Prevent unmarsal DOS in arrays,buffers,tables,and structs.
2020-04-05 08:16:40 -05:00
Calvin Rose
b145d47863
Address cases 1 and 2 of #336 .
...
Mainly related to not checking ints < 0.
2020-04-05 08:01:18 -05:00
Calvin Rose
095827a261
Update CHANGELOG.md
2020-04-05 07:12:00 -05:00
Calvin Rose
87ecdb8112
Change \UXXXXXXXX -> \UXXXXXX and check codepoint max.
...
No need to add two extra leading zeros, as the max unicode
codepoint is 0x10FFFF.
2020-04-05 07:09:53 -05:00
Andrew Chambers
98b2fa4d64
Setup some simple fuzz helpers for unmarshal.
2020-04-05 23:05:18 +12:00
Calvin Rose
810ef7401c
Update changelog and bump version to dev version.
2020-04-04 21:50:27 -05:00
Calvin Rose
ae70a03383
Address #306 - Add unicode escapes.
...
Unicode escapes have the same syntax as go - \uXXXX or \UXXXXXXXX.
2020-04-04 21:46:08 -05:00
Calvin Rose
081d132538
Address #321
...
Also improve docs for dofile and related functions.
2020-04-04 21:17:15 -05:00
Calvin Rose
bb5c478704
Switch to two digit sonames.
...
Janet's versioning scheme is not 'true' semantic versioning.
Minor versions can have and often do have breaking changes.
Although such breakages are mostly avoided, only limited effort is
made to prevent this, and no system is in place to verify this.
Thus, stricter version pinning is needed.
2020-04-04 18:30:18 -05:00
Calvin Rose
ff6601f29e
Add version and soversion to meson libjanet.
2020-04-04 18:04:22 -05:00
Calvin Rose
320c6c6f05
Increase NSIS installer verbosity.
2020-04-04 13:58:27 -05:00
Calvin Rose
6b89da4bb2
Use -Wl,-install_name,... on macos.
2020-04-04 13:44:21 -05:00
Calvin Rose
5b82b9e101
Address compiler warning on macos.
2020-04-04 13:34:16 -05:00
Calvin Rose
1d0e862129
Update Makefile for pkg-config issues and soname.
2020-04-04 13:09:59 -05:00
Calvin Rose
f089b2001f
Add several math functions to the math module.
2020-04-04 12:52:34 -05:00
Calvin Rose
9f8420bf50
Add jpm repl subcommand and post-deps macro for jpm.
...
This will allow more flexibility in writing jpm project files.
2020-04-03 19:33:54 -05:00
Calvin Rose
8275da63fb
Address #331 - Add :octal-permissions
2020-04-03 18:29:45 -05:00
Calvin Rose
72696600d8
Add :deps opiton to declare-executable.
...
This allows the addition of custom dependencies.
2020-04-03 17:53:41 -05:00
Calvin Rose
1aeb317863
Revise, revise, revise, and proofread.
2020-04-03 17:04:05 -05:00
Calvin Rose
b49b510732
Update os/link docstring.
2020-04-03 16:58:45 -05:00
Calvin Rose
a0d61e45d5
Change os/perm-str to os/perm-string.
2020-04-03 15:23:29 -05:00
Calvin Rose
95f1ef7561
Add umask support for windows, and allow parsing mode strings.
2020-04-03 15:14:11 -05:00
Calvin Rose
edb2fab64c
Merge branch 'master' of github.com:janet-lang/janet
2020-04-03 15:04:39 -05:00
Calvin Rose
464fb73d83
Add os/perm-int and os/perm-str.
...
This helps address #331 . While we could also
make os/stat return an integer, we don't do that yet
for api breakage reasons.
This also lets us use this logic on other functions
that take permission strings.
2020-04-03 15:02:12 -05:00
Calvin Rose
6a4e63a17d
Merge pull request #333 from andrewchambers/umask
...
Add os/umask.
2020-04-03 14:48:52 -05:00
Calvin Rose
168f94d29a
Merge pull request #330 from DEADB17/patch-1
...
Correct typo and match wording for consistency
2020-04-03 14:46:15 -05:00
Andrew Chambers
3c2b1baff2
Add os/umask.
2020-04-02 23:33:50 +13:00
Calvin Rose
f2815d7068
Actually run the installer in build_win.bat.
2020-04-01 09:26:20 -05:00
Calvin Rose
f48d9465f5
Fix appveyor.yml
2020-04-01 09:23:19 -05:00
Calvin Rose
6b1d5c6d7b
Work on improving deployment for windows.
2020-04-01 09:22:27 -05:00
Calvin Rose
789ef3608b
Make format.
2020-04-01 08:54:01 -05:00
DEADB17
57b08a57a0
Corret typo and match wording for consistency
2020-03-31 23:32:17 -04:00
Calvin Rose
5b6b9f1597
Prepare for 1.8.1 release.
2020-03-31 09:49:09 -05:00
Calvin Rose
47f246ba66
Merge pull request #329 from pepe/master
...
Fix typo flie
2020-03-31 09:17:39 -05:00
Josef Pospíšil
b6b70d54ef
Fix typo flie
2020-03-31 15:31:27 +02:00
Calvin Rose
417d9a14cc
s/yaml/yml/g in README.md
2020-03-31 08:03:38 -05:00
Calvin Rose
244566ccd4
Remove manual feature definitions in boot.
...
Instead, reuse features as defined in features.h
2020-03-31 07:52:20 -05:00
Calvin Rose
ca4a35c90a
Update CHANGELOG.md
2020-03-30 16:59:51 -05:00
Calvin Rose
e4ea8bc867
Fix features for bsd.
...
Don't define XOPEN_SOURCE unless we actually need it.
2020-03-30 15:38:03 -05:00
q66
5d840b944b
Fix wrong check on big endian systems
...
We can't randomly type pun random-sized types on big endian
systems.
2020-03-30 13:38:49 -05:00
q66
1e28876494
Fix typo in big endian unmarshalling code
...
This was subtly breaking everything.
2020-03-30 13:38:49 -05:00
q66
a40b2767c5
Fix endian check for little endian PowerPC and maybe others
...
This fixes various subtle breakage on ppc64le at very least.
2020-03-30 13:38:49 -05:00
Calvin Rose
279b536646
Prepare for 1.8.0 release.
2020-03-29 14:18:28 -05:00
Calvin Rose
ff163a5ae4
Use modulo instead of remainder for even?/odd?.
...
Works better for negative and fractional numbers.
2020-03-28 10:23:28 -05:00
Calvin Rose
65379741f7
Address edge case of reduce2 when ind is empty.
...
Same for accumulate 2.
2020-03-27 12:45:40 -05:00
Calvin Rose
3eb0927a2b
Add accumulate(2) and reduce2
...
These functions are variations on reduce and can be quite useful.
Improve error message for jpm as well.
2020-03-26 21:35:11 -05:00
Calvin Rose
a3a45511e5
Remove lockfile.janet
2020-03-26 00:40:03 -05:00
Calvin Rose
a20ea702e2
Add infinite loop detection and complex deps.
...
We needed to handle dependencies that had both a url
and a tag component.
2020-03-26 00:34:34 -05:00
Calvin Rose
d2d0300c7e
Remove use of cd in make-lockfile.
2020-03-26 00:12:18 -05:00
Calvin Rose
6e8aac984f
Update CHANGELOG.md
2020-03-25 21:06:45 -05:00
Calvin Rose
6721c70b9e
Fix typo in jpm.
2020-03-25 21:01:54 -05:00
Calvin Rose
b8c1c1c144
Get lockfile info from manifest, not cache.
...
Make manifest files track more information.
Use jdn to store manifest files, as well as repo url and
sha.
2020-03-25 20:58:53 -05:00
Calvin Rose
e380c01dd1
Add lockfiles to jpm.
...
Add make-lockfile and load-lockfile commands.
2020-03-25 19:44:30 -05:00
Calvin Rose
655633ef34
Tweak docstring.
2020-03-25 18:00:15 -05:00
Calvin Rose
3d1de237f6
Several changes to the os module.
...
- Add os/symlink
- Add os/realpath
2020-03-24 19:47:21 -05:00
Calvin Rose
6a63b13d69
Fix os/link docstring - Address #323
2020-03-21 16:18:58 -05:00
Calvin Rose
3aca5502dc
Allow :dst to be nil to set tm_isdst to be -1.
2020-03-18 22:23:27 -05:00
Calvin Rose
665f4bf248
Remove windows MSVC warnings about _stat.
2020-03-18 21:37:55 -05:00
Calvin Rose
b76ff3bdfc
Fix omission of daylight savings time in mktime
...
Since with daylight savings times, certain times
are ambiguous (the hours before and after the switch), mktime
needs to allow reading a dst flag.
2020-03-18 21:23:35 -05:00
Calvin Rose
00450cd9db
try and remove warnings on windows, format os.c.
2020-03-18 21:15:50 -05:00
Calvin Rose
c344a543b0
Merge pull request #318 from leahneukirchen/mktime
...
os/date fixes and os/mktime
2020-03-18 20:59:08 -05:00
Calvin Rose
554202f6e8
Merge branch 'master' of github.com:janet-lang/janet
2020-03-18 18:37:11 -05:00
Calvin Rose
7590cfc610
Update meson build file to try and fix LGTM.
2020-03-18 18:36:41 -05:00
Calvin Rose
eee8338064
Merge pull request #319 from leahneukirchen/lstat
...
os/lstat and os/readlink
2020-03-18 17:58:32 -05:00
Calvin Rose
3b5183a74e
Fixes #316 : os/execute should return non-zero on signals
...
Behave more like shells, and catch segfaults.
2020-03-18 17:49:20 -05:00
Leah Neukirchen
3ee43c3abb
add os/mktime, an inverse to os/date.
2020-03-18 23:45:02 +01:00
Leah Neukirchen
efdb13f0c7
os/date: allow negative timestamps.
...
Why not? Even on 32-bit time_t systems this lasts until late 1901.
2020-03-18 23:45:02 +01:00
Leah Neukirchen
f013c6e48d
os/date: check the second argument truthy, not the third.
2020-03-18 23:45:02 +01:00
Leah Neukirchen
6e67899401
Add os/readlink.
2020-03-18 20:05:48 +01:00
Leah Neukirchen
381dd1ce98
Add os/lstat.
2020-03-18 20:05:48 +01:00
Calvin Rose
b0d8369534
Increase reference accuracy of on-stack close envs.
...
Using a bitset to indicate which stack values are upvalues, we
can more accurately track when a reference to a stack value
persists after the stack frame exits.
2020-03-18 09:30:10 -05:00
Calvin Rose
4a7b18d841
Merge pull request #317 from andrewchambers/closureenvs
...
Add test cases for closure edge cases.
2020-03-17 22:05:35 -05:00
Andrew Chambers
7c4ffe9b9a
Add test cases for closure edge cases.
2020-03-18 15:40:41 +13:00
Calvin Rose
de4f8f9aaf
Marshal alive fibers in func envs as detached.
...
This will help with marshaling fibers.
2020-03-17 20:53:11 -05:00
Calvin Rose
6554cc4a8d
Merge branch 'master' of github.com:janet-lang/janet
2020-03-17 18:58:33 -05:00
Calvin Rose
fac47e8ecb
When marshalling a closure, try to detach funcenvs
...
If possible, this will reduce the need to marshal fibers
in many cases. Also add this logic to the GC so holding a closure
that originally came from a fiber that crashed does not cause that fiber
to hang around forever.
2020-03-17 18:55:32 -05:00
Calvin Rose
7443305039
Merge pull request #315 from andrewchambers/u64
...
Properly export u64_type
2020-03-16 17:15:20 -05:00
Andrew Chambers
635ae3a523
Properly export u64_type
2020-03-17 11:02:57 +13:00
Calvin Rose
4a05b4556e
Fix MSVC build warning.
2020-03-14 12:02:31 -05:00
Calvin Rose
c074615550
Revert to 9 char permission strings on windows.
2020-03-14 12:00:11 -05:00
Calvin Rose
bac2b74b3d
Add os/chmod.
2020-03-14 11:57:04 -05:00
Calvin Rose
a3aaa6634d
Use separate registry table for abstract types.
...
This avoids overloading the registry table, which is intended
for names of c functions.
2020-03-14 10:25:39 -05:00
Calvin Rose
6a3a983f43
Expose abstract type definitions in janet.h
...
This makes certain operations easier, and allows
more access to built in APIs.
2020-03-14 10:12:47 -05:00
Calvin Rose
7996edfef9
Update README.md - Fixes #308
2020-03-13 20:00:32 -05:00
Calvin Rose
0600b32908
Fix docstring for os/cd - Fixes #307
2020-03-13 15:01:48 -05:00
Calvin Rose
77343e02e9
Fixes #304
...
Add chr macro.
2020-03-10 22:46:50 -05:00
Calvin Rose
a3d4ecddba
Address #301
...
Incorrect bounds checking and offset calculation in buffer/blit.
2020-03-08 20:44:03 -05:00
Calvin Rose
65403ec9fe
Merge branch 'master' into net
2020-03-07 14:06:51 -06:00
Calvin Rose
3d3d314fb7
Remove warning about math.h on aarch64 ubuntu gcc.
2020-03-07 14:05:28 -06:00
Calvin Rose
90b3730a0a
Merge branch 'master' into net
2020-03-07 13:34:13 -06:00
Calvin Rose
3f3b756b61
Merge pull request #298 from leahneukirchen/m-del
...
Make alt-backspace behave like ctrl-w.
2020-03-07 10:14:14 -06:00
Calvin Rose
d3b9b8d452
For #293 , correct wildcards in dictinoaries.
2020-03-07 10:13:10 -06:00
Calvin Rose
390c042027
Update README.md
2020-03-07 09:49:25 -06:00
Calvin Rose
c864828735
Address #293 - wildcard to match macro.
...
The _ symbol will match any value without creating a binding.
2020-03-07 09:40:02 -06:00
Calvin Rose
e0c9910d85
Add :range-to and :down-to to loop.
...
Fully inclusive ranges are generally useful and
do not complicate implementation much.
2020-03-07 09:34:11 -06:00
Calvin Rose
e62f12426b
Update ci build files.
2020-03-06 18:11:29 -06:00
Calvin Rose
d3af50e4cc
Rename: s/yaml/yml/g
2020-03-06 17:42:35 -06:00
Calvin Rose
cbdb700edf
No need for doubly hidden files.
2020-03-06 17:35:03 -06:00
Calvin Rose
6010b95fca
Remove spaces from build manifests for sourcehut.
2020-03-06 17:30:36 -06:00
Calvin Rose
e351dde651
Update CHANGELOG.md and docs for loop and pp.
2020-03-06 17:12:06 -06:00
Calvin Rose
714bd61d56
Address #300
...
Check for empty capture stack in replace rule.
2020-03-06 10:05:20 -06:00
Calvin Rose
f9e9c70b6c
Update CHANGELOG.md
2020-03-06 08:40:51 -06:00
Calvin Rose
6123c41f13
Harden semantics for and and or macros.
...
There was perviously a bit of fuzziness on returning false/nil
from these macros that has been removed.
2020-03-06 08:37:59 -06:00
Leah Neukirchen
1aaa5618de
Make alt-backspace behave like ctrl-w.
...
Another common binding in readline and its clones.
2020-03-06 10:55:45 +01:00
Calvin Rose
16202216b2
Address #291
...
When resuming a fiber with a child, the root fiber was set incorrectly.
2020-03-05 19:18:45 -06:00
Calvin Rose
8f1527712e
Merge branch 'master' into net
2020-03-05 18:08:35 -06:00
Calvin Rose
fbe8998ca8
Merge branch 'master' of github.com:janet-lang/janet
2020-03-05 09:35:04 -06:00
Calvin Rose
47e8f669f5
Fix match behavior for lone nil.
2020-03-05 09:35:00 -06:00
Calvin Rose
d804ee3c07
Merge pull request #296 from leahneukirchen/ctrl-d
...
Make ctrl-d behave like delete, but exit on an empty line.
2020-03-04 20:42:05 -06:00
Calvin Rose
06a78d90d9
Merge pull request #295 from leahneukirchen/meson-pkgconfig
...
Create janet.pc also from Meson.
2020-03-04 20:39:24 -06:00
Leah Neukirchen
bc2ebce086
Make ctrl-d behave like delete, but exit on an empty line.
...
This is the default readline behavior.
2020-03-04 14:56:04 +01:00
Leah Neukirchen
a07de921d0
Create janet.pc also from Meson.
2020-03-04 14:35:57 +01:00
Calvin Rose
6bc67b70a6
Address #294
...
Correct invalid format string, which masked a panic
with another, less useful panic.
2020-03-03 22:26:26 -06:00
Calvin Rose
f06addfe06
For #240 , address case when LDCONFIG is empty
2020-03-03 18:13:25 -06:00
Calvin Rose
7c2c50ee16
For #240 - don't run ldconfig for DESTDIR installs.
2020-03-03 18:03:44 -06:00
Calvin Rose
8580d3c27e
Address #240 - Support DESTDIR in Makefile.
2020-03-03 17:45:59 -06:00
Calvin Rose
951e10f272
Address #292
...
Faulty Makefile fallback.
2020-03-03 08:21:14 -06:00
Calvin Rose
2349ea9405
Update docs for buffer/push-word
...
Should be little endian, not big endian.
2020-03-01 12:05:24 -06:00
Calvin Rose
b17bf259f7
Fix typo: destory -> destroy
2020-02-28 09:04:28 -06:00
Calvin Rose
6b093bdcca
Address #288 and partially #287
...
The %q formatter for janet_formatc now expects a Janet, not a JanetString or
JanetSymbol or JanetKeyword.
Also fix some reference counting issues with threads when destroying
threads, which should fix #287 's
SIGSEGV. Still fails to send messages sometimes, though.
2020-02-27 17:58:17 -06:00
Calvin Rose
10ec319c32
Add better debug info to amalgamated source.
2020-02-27 00:16:54 -06:00
Calvin Rose
8cb63cebbe
Remove 'make test-amalg' from CI.
2020-02-25 20:31:38 -06:00
Calvin Rose
7d26de6697
Update changelog.
2020-02-25 20:08:22 -06:00
Calvin Rose
8262290bff
Improve C string format (janet_formatc, janet_panicf)
...
The supported formatters here now match up more with
the string/format, buffer/format, printf, eprintf, etc.
2020-02-25 20:05:45 -06:00
Calvin Rose
2779037f13
Clean up Makefile.
2020-02-25 20:02:03 -06:00
Calvin Rose
734c85d7ef
Properly handle recursion with labels.
...
Use an empty buffer, which has pointer equality semantics, for
tag from a label.
2020-02-23 17:35:01 -06:00
Calvin Rose
05bd5767de
Add label macro.
...
A lexically scoped version of prompt is often useful.
2020-02-23 17:15:04 -06:00
Calvin Rose
59d288c429
Add prompt and return.
...
User friendly delimited continuations. While this was doable with
signals before, this does not require C and will play nicely with
existing error handling, defers, and with statements.
2020-02-23 16:46:54 -06:00
Calvin Rose
8c41c0b6a7
Address MSVC warning.
2020-02-23 15:27:57 -06:00
Calvin Rose
f5f3858da1
Update CHANGELOG.md
2020-02-23 14:55:21 -06:00
Calvin Rose
738490e674
Allow function that takes 1 argument to fiber/new.
...
This allows reuse of closures when creating many fibers.
2020-02-23 14:47:29 -06:00
Calvin Rose
6a13703e32
Add signal and fiber/can-resume?.
...
These additions, along with the change that user signals 0-4 cannot
be resumed, allow delimited continuation semantics, while repsecting
existing forms like `defer`, `with`, `with-vars`, etc.
2020-02-23 13:31:27 -06:00
Calvin Rose
20d5d560f3
Add bf to main test suite.
2020-02-22 19:18:08 -06:00
Calvin Rose
aaabca6fc7
Make flychecker handle more kinds of defs.
...
This should help when redefining certain forms. Will also
not do functional arity checking against nil forms, as that
is the default value when a def doesn't evaluate.
2020-02-21 21:20:40 -06:00
Calvin Rose
4b440618d6
Correct docs for type form.
2020-02-21 20:22:43 -06:00
Calvin Rose
01a79dc965
Remove extra functionality.
2020-02-20 20:10:03 -06:00
Calvin Rose
0df220780a
Fix issues with #282
...
Bad handling of write errors, as well as janet_root_fiber().
2020-02-20 19:54:31 -06:00
Calvin Rose
a360cb7922
Update marshal to take 3 arguments.
2020-02-15 10:04:44 -06:00
Calvin Rose
b9a2bb8104
Fix documentation for defer.
2020-02-12 09:34:23 -06:00
Calvin Rose
f4a46ba6ea
Add methods to streams.
...
This makes streams polymorphic with files in many cases.
printf family functions still need porting.
2020-02-12 09:32:41 -06:00
Calvin Rose
79bb9e54d5
Remove direct references to file descriptors.
...
If a descriptor is freed by the Janet code, other
uses of that descriptor, say in the event loop, need
to know that it has been closed.
2020-02-11 08:57:44 -06:00
Calvin Rose
135aff9e17
Add janet_loop() call to static binaries.
2020-02-09 20:02:35 -06:00
Calvin Rose
8ae6ae65a1
Merge branch 'master' into net
2020-02-09 20:00:58 -06:00
Calvin Rose
f4d7fd97f6
Working TCP echo server and client.
...
Required a few changes to APIs, namely janet_root_fiber()
to get topmost fiber that is active in the current scheduler.
This is distinct from janet_current_fiber(), which gets the bottom
most fiber in the fiber stack - it might have a parent, and so cannot
be reliably resumed.
This is the kind of situation that makes symmetric coroutines more
attractive.
2020-02-09 20:00:50 -06:00
Calvin Rose
031a9894b0
Update inlining options for next and resume.
2020-02-08 13:03:03 -06:00
Calvin Rose
fcc09d7ea9
Clarify docs for some and all.
2020-02-05 21:06:39 -06:00
Calvin Rose
7f1f684b21
Merge branch 'master' into net
2020-02-03 20:46:32 -06:00
Calvin Rose
d8d482e433
Merge branch 'master' of github.com:janet-lang/janet
2020-02-03 18:18:29 -06:00
Calvin Rose
3fdc053d6c
Add flush and eflush ( #278 )
...
These functions interact with Janet's dynamically scoped
IO functions in a manner that is more useful the file/flush.
We can still redirect to a buffer without changing our code.
2020-02-03 18:14:32 -06:00
Calvin Rose
8be3ce18aa
Merge pull request #280 from pepe/fix-next-arity
...
Fix next function arity
2020-02-03 18:00:36 -06:00
Calvin Rose
eda61455d3
Work on tcp server code.
2020-02-03 09:29:51 -06:00
Josef Pospíšil
00107c092c
Fix next function arity
2020-02-03 15:36:42 +01:00
Calvin Rose
c5907258c3
Merge branch 'master' into net
2020-02-02 13:16:47 -06:00
Calvin Rose
64e1961193
Update version strings to 1.7.1-dev.
2020-02-02 09:38:44 -06:00
Calvin Rose
f7ee8bd30d
Update to version 1.7.0.
2020-02-01 23:35:17 -06:00
Calvin Rose
c0d2140d14
Begin net/ module in core.
...
Humble beginnings.
2020-02-01 20:39:54 -06:00
Calvin Rose
1bdde9c4f7
Fix warnings.
2020-01-28 23:46:14 -06:00
Calvin Rose
333ae7c4f8
Make amalgamtion the default when building.
...
This way we can support fewer build configurations. Also, remove
all undefined behavior due to use of memcpy with NULL pointers. GCC
was exploiting this to remove NULL checks in some builds.
2020-01-28 23:38:52 -06:00
Calvin Rose
f7b7c83264
Address #276
2020-01-25 12:08:43 -06:00
Calvin Rose
6f9c9879ca
Add var-
...
We had defn-, def-, defmacro-, but no var-.
2020-01-24 22:52:28 -06:00
Calvin Rose
b8df47e063
Fix regression in take/drop.
2020-01-24 17:39:25 -06:00
Calvin Rose
9dad8bf56d
Remove min-order and max-order.
...
Also address #275 by exposing lflags and cflags
to declare-executable
2020-01-24 17:35:21 -06:00
Calvin Rose
689f2dcbb4
Change default import prefix.
...
Changed from `(string path "/")` to
`(string (last (string/split "/" path)) "/)`.
2020-01-24 16:54:06 -06:00
Calvin Rose
163e2a5b22
Add string support to %j format.
2020-01-24 08:52:27 -06:00
Calvin Rose
e36334e14b
Revert issue with removing buffer self print check.
2020-01-23 23:39:49 -06:00
Calvin Rose
60304c7e27
Update CHANGELOG.md
2020-01-23 19:07:09 -06:00
Calvin Rose
28d41039b8
Add mod function to core.
...
The `mod` function is a pair function with `%`, or te remainder
function and is distinct from it. This is taken from common lisp.
2020-01-23 18:54:30 -06:00
Calvin Rose
b8d530da36
Remove file/fileno and file/fdopen.
...
Also fully add call function pointer to
abstract types, including in methods, etc.
2020-01-23 09:01:33 -06:00
Calvin Rose
4fad0714e7
Add janet_gcpressure. Address #269 .
2020-01-22 20:52:35 -06:00
Calvin Rose
ca17eb4a2b
Address #273
2020-01-22 19:01:49 -06:00
Calvin Rose
4fe005e3c3
Add righthand operator overloading.
...
This is like python. Now, we just need to readd fuzzy
comparisons to have what python needs. Overloading
math functions would be neat, too.
2020-01-22 18:59:41 -06:00
Calvin Rose
2f9ed8a572
Use memmove instead of copying.
...
Also some comment things, and re-add old code from linenoise.
It seems to have a purpose for some keyboard layouts, so I will leave
it.
2020-01-21 23:11:00 -06:00
Calvin Rose
688e18a891
Merge pull request #268 from crocket/master
...
Make REPL key bindings more similar to those on GNU readline.
2020-01-21 23:09:45 -06:00
crocket
8162c64ca3
Make REPL key bindings more similar to those on GNU readline.
...
* I deleted Alt-H and Alt-L because Ctrl-F and Ctrl-B serve the same
roles.
* Ctrl-W, Alt-D, Alt-F, and Alt-B behave more similarly to the same
key bindings on GNU readline.
* Improved documentation of REPL keybindings on man page.
* Home and End keys now work on more terminal environments.
* Removed bindings for `Esc OH` and `Esc OF` because andrewchambers
doesn't need those bindings and the bindings don't seem to make much
sense for Home and End. `Esc O` is Single Shift Select of G3 Character
Set in xterm. https://invisible-island.net/xterm/ctlseqs/ctlseqs.html
2020-01-22 13:55:44 +09:00
Calvin Rose
e179f26d50
Add call function pointer to abstract types.
...
This will allow better JITs, FFIs, DSLs, etc.
2020-01-21 18:22:24 -06:00
Calvin Rose
8db68c04c4
Merge branch 'master' of github.com:janet-lang/janet
2020-01-21 17:48:54 -06:00
Calvin Rose
7c92c64730
Remove mutable operators on inttypes.
...
Mutations break hash table invariants, are a rather
silly performance optimization for a language like Janet.
2020-01-21 17:47:34 -06:00
Calvin Rose
01c6ffe1d5
Merge pull request #266 from andrewchambers/idempotentclose
...
Make file/close idempotent.
2020-01-21 10:16:06 -06:00
Andrew Chambers
46f57f5c38
Make file/close idempotent.
...
It is easier to use constructs like defer
with complex control flow if it is safe to close
a file twice.
2020-01-21 22:03:57 +13:00
Calvin Rose
1ec2e08f21
Add manpage docs for repl keybindings.
2020-01-20 17:29:29 -06:00
Calvin Rose
77742dec11
Add source file info on macro compiler error.
2020-01-20 16:45:57 -06:00
Calvin Rose
3cb947b37e
Fix macro errors.
...
debug/stacktrace was being called incorrectly.
2020-01-20 16:05:08 -06:00
Calvin Rose
62cf407f0c
Remove lto.
...
Gosh Darnit, Travis!
2020-01-20 13:53:59 -06:00
Calvin Rose
bbed72f39f
Only enable lto on linux for now.
...
Was failing with clang, as the default clang linker doesn't
do LTO.
2020-01-20 13:37:10 -06:00
Calvin Rose
99c94a78d6
Add -flto to jpm builds as well.
2020-01-20 13:28:57 -06:00
Calvin Rose
2dd852da54
Use ATEND macros to add fields to abstract types.
...
This means we can add new properties to abstract types without
breaking old code. We can also make simple abstract types without
needing to add many NULL fields to the type.
2020-01-20 13:06:50 -06:00
Calvin Rose
3c87d89df3
Enable LTO by default
...
Most compilers support it, and it gives a good perf increase OOTB.
2020-01-20 11:38:22 -06:00
Calvin Rose
f4ad627b54
Fix regression in while loops inside each macros.
...
There was a specialization for `(while (not= nil _) ...)` that
was incorrect when the while loop regresses to a thunk.
2020-01-19 16:25:10 -06:00
Calvin Rose
68a5667a1a
Add history first and history last shortcuts.
...
Alt-, and Alt-.
2020-01-19 15:45:04 -06:00
Calvin Rose
693c6d63d4
Add alt-d binding to repl.
2020-01-19 11:39:10 -06:00
Calvin Rose
f18c3323ea
Clear completion list if fully complete.
2020-01-19 11:31:42 -06:00
Calvin Rose
f74e19e673
Improve alt keys and at alt-f and alt-b to repl
2020-01-19 11:16:41 -06:00
Calvin Rose
da70807292
Make autocompletion more zsh like
...
Also add a few ctrl sequences from readline, and
ignore unknown ctrl sequences.
Address #264
Adds Ctrl-n, Ctrl-p, and Ctrl-w
Ignores unknown ctrl sequences
No alt-* sequences yet.
2020-01-19 10:38:35 -06:00
Calvin Rose
9f8bc6bb8a
Please, sir hat?
2020-01-18 21:00:06 -06:00
Calvin Rose
64b9482602
Make history not duplicate itself in getline.
2020-01-18 20:56:35 -06:00
Calvin Rose
8fbcae6029
Remove -march=native from Makefile
...
Instead, one can pass in CFLAGS to make
2020-01-18 20:01:12 -06:00
Calvin Rose
064475cb8d
Add eachk and eachp.
...
These should make iterating over datastructures easier
without needing the loop macro.
2020-01-18 18:46:49 -06:00
Calvin Rose
f4077b678a
Allow calling next on abstracts.
...
This will allow the creation of infinte
streams, low cost generators, etc.
2020-01-18 18:09:20 -06:00
Calvin Rose
51678c1aba
Extend power of the each form
...
This changes the implementation of the `next` function which
is now used to implement each. This let's us iterate over
more types, not just tables and structs.
2020-01-18 17:55:07 -06:00
Calvin Rose
17a2fdbf1b
Update for sourcehut builds.
...
We needed to include repo in sources array.
2020-01-18 14:42:02 -06:00
Calvin Rose
65d7c3eed1
Use stderr for getline output instead of stdout.
2020-01-18 14:34:29 -06:00
Calvin Rose
41bb8c543b
Merge branch 'master' of github.com:janet-lang/janet
2020-01-18 09:46:37 -06:00
Calvin Rose
bbd7355313
Merge pull request #259 from andrewchambers/futureproofhash
...
Make hash api more future proof.
2020-01-18 09:45:47 -06:00
Calvin Rose
772916593b
Address #262
...
Pressing tab only does one thing at a time.
2020-01-18 09:44:59 -06:00
Calvin Rose
9d8af7355f
Improve getline.
2020-01-18 00:30:46 -06:00
Calvin Rose
521a29446f
Don't rely on obscure printf features.
...
They may not work on all platforms.
2020-01-18 00:27:40 -06:00
Calvin Rose
a8e4c4bed0
Add special forms and sort completions.
...
Also fix case when no completion is needed.
2020-01-18 00:17:08 -06:00
Calvin Rose
6471b4d100
Add preliminary repl completion via tab.
2020-01-17 23:03:50 -06:00
Calvin Rose
7f9b2b34d1
Clarify import docs for dynamic bindings.
2020-01-17 18:06:00 -06:00
Calvin Rose
789c5f135a
Add ctrl-a and ctrl-e to control line in repl
...
Emacs to start of line and to end of line key bindings.
2020-01-17 09:33:30 -06:00
Andrew Chambers
344f0b743d
Make hash api more future proof.
2020-01-17 17:25:40 +13:00
Calvin Rose
d8841de180
Address #188
...
Delete repo folder if clone fails.
2020-01-16 22:14:23 -06:00
Calvin Rose
23c7c3bf1c
Allow disabling keyed hash function (prf) in conf
...
In some cases, one might want to disable what is currently
SipHash for speed / better security mechansims. For example, using
red black trees for caches rather than hash tables.
2020-01-16 21:06:03 -06:00
Calvin Rose
3d117804dd
Merge branch 'master' into HEAD
2020-01-16 20:08:34 -06:00
Calvin Rose
77bb0ebe3f
Add limits to format to discourage huge prints.
...
This should make system crashing prints happen less often in repl.
Instead, display a ...
2020-01-16 18:57:01 -06:00
Calvin Rose
6d9e51e4be
Fix documentation for if-with.
...
It was the same as when-with.
2020-01-16 18:12:05 -06:00
Calvin Rose
174ff87946
Change printing of abstracts with tostring in pp
...
This change makes pretty printing not hide "abstractness".
2020-01-16 18:10:17 -06:00
Andrew Chambers
ea02b2fde9
Use siphash for string hashing.
...
The hash key still needs to randomly initialized
for the security advantage, but this patch is a
step closer to avoiding hash based DOS.
Further work may including exposing the raw hash
function for use by abstract types who also choose to
implement hash.
2020-01-17 12:06:55 +13:00
Calvin Rose
962cd7e5f5
Add when-with and if-with
...
This is useful for reading from files.
2020-01-15 22:56:40 -06:00
Calvin Rose
65be9ae095
Add defer and assert to the core.
2020-01-15 22:39:14 -06:00
Calvin Rose
bc2bac8cd3
Fix memory issue in allocating decode buffer.
...
Since the decode table is currently a single table
per thread, we just make it a thread local to avoid
issues.
2020-01-15 19:58:14 -06:00
Calvin Rose
b567ece401
Address #252
...
Add repeat form (instead of exactly).
2020-01-14 19:58:03 -06:00
Calvin Rose
f001b0a40c
Update Changelog
...
Also change how add-body in jpm works. We keep an array of thunks
instead of a single thunk.
2020-01-13 20:51:11 -06:00
Calvin Rose
04579664fd
update parse.c
2020-01-12 22:43:39 -06:00
Calvin Rose
f709d7eb40
Add module/add-paths
...
This should make it much easier to make custom DSLs work
well with the import system. No need to mess about with import paths,
things will just work.
2020-01-12 20:59:45 -06:00
Calvin Rose
2df8660f8b
Avoid buffer overrun
...
On very long binding names > 256 characters, a buffer overrun would be
trigger in janet_cfuns. Not a huge issue, since this is not really code
that would ever be user facing, but we can fix this.
2020-01-12 11:31:41 -06:00
Calvin Rose
a68ee7aac6
Update Copyright 2020.
2020-01-12 10:50:37 -06:00
Calvin Rose
f0e04e734c
Test for regressions in #249
...
Use two separate natives in compiled executable.
2020-01-12 10:45:59 -06:00
Calvin Rose
0e7cf51890
Fix MSVC warnings.
2020-01-12 10:19:51 -06:00
Calvin Rose
b54d9725d8
Fix MSVC errors.
2020-01-12 10:18:03 -06:00
Calvin Rose
2f0570aad6
Address #249
...
If JANET_ENTRY_NAME is defined, we are compiling into a single binary.
In this case, we don't want to define the config symbol multiple times
with same name, as this causes the linker error.
2020-01-12 10:13:06 -06:00
Calvin Rose
3d40c95e80
Add ability to Janet signal from C functions.
...
While C functions are not re-entrant, signaling from a C function
can be used to implement async returns. When resuming a fiber that
signalled from within a C function, the fiber is started after the
instruction that emitted the signal. The resume argument is used
as the return result from the c function.
2020-01-10 20:44:16 -06:00
Calvin Rose
ed5027db5d
Address #242
...
Synchronize critical sections in setenv/getenv/environ.
2020-01-06 22:41:18 -06:00
Calvin Rose
c4047f3f88
Merge pull request #247 from andrewchambers/getenvdflt
...
Optional default value for os/getenv.
2020-01-06 17:27:33 -06:00
Andrew Chambers
ec1a06cfaf
Optional default value for os/getenv.
2020-01-07 11:21:05 +13:00
Calvin Rose
17e47a798c
Address #244
2020-01-05 09:26:21 -06:00
Calvin Rose
212aceedc6
Fix useless type conversion.
2020-01-02 22:12:07 -06:00
Calvin Rose
e6f897f4ef
Merge branch 'master' of github.com:janet-lang/janet
2020-01-02 22:10:13 -06:00
Calvin Rose
6c7f376410
Try to remove potential overflow bugs.
...
Also make integer to size_t casts explicit rather than relying on
int32_t * sizeof(x) = size_t. This is kind of a personal preference for
this problem.
2020-01-02 22:08:17 -06:00
Calvin Rose
e93e237c67
Merge pull request #236 from andrewchambers/scratch_calloc
...
Add scratch calloc.
2020-01-02 20:29:10 -06:00
Calvin Rose
a1cd759759
Merge branch 'master' of github.com:janet-lang/janet
2020-01-02 20:28:10 -06:00
Calvin Rose
a2c45a697b
Address #234 in array.c
2020-01-02 20:27:38 -06:00
Andrew Chambers
acdbf8911c
Add scratch calloc.
2020-01-03 12:10:17 +13:00
Calvin Rose
9269372768
Merge pull request #235 from theosotr/fix
...
Fix faults in Make build
2020-01-02 15:05:04 -06:00
Thodoris Sotiropoulos
5575e7577a
Fix faults in Make build
2020-01-02 22:15:55 +02:00
Calvin Rose
ef02dacdb4
Update changelog.
2019-12-31 12:17:32 -05:00
Calvin Rose
c6b639b939
Add comptime error test.
2019-12-31 12:16:19 -05:00
Calvin Rose
0b0fb18c42
Can we fix NSIS?
2019-12-31 12:10:57 -05:00
Calvin Rose
b872ee024f
Add test for issue #232
2019-12-31 11:36:21 -05:00
Calvin Rose
a15d841b5b
Address #232
...
Fix segfault on macro arity mismatch in compile.c by adding missing return statements.
2019-12-31 11:33:03 -05:00
Calvin Rose
bfb638cfc2
Try EnVar_plugin for updating path.
...
This should be more robust and not fail after upgrading.
2019-12-31 10:26:54 -05:00
Calvin Rose
3a47ad5d99
Remove some NSIS cruft to see if we can fix 3.05
2019-12-31 09:49:50 -05:00
Calvin Rose
e3c88295f2
Update to NSIS 3.05
...
Lock version in appveyor.yml
2019-12-31 09:40:36 -05:00
Calvin Rose
75bb8fbcd1
Amalg script included janet.h before test macros.
2019-12-30 22:08:12 -05:00
Calvin Rose
9cb25ad7b1
Remove some feature test macros.
...
_BSD_SOURCE is deprecated and not needed.
2019-12-30 21:30:13 -05:00
Calvin Rose
f361830cb2
Update feature test macro in line.c
2019-12-30 20:24:40 -05:00
Calvin Rose
9dd152dc28
Add features.h for feature test macros.
...
Because we use an amalgated build, feature
test macros should be set in a single file that
is included before any other headers, and is placed
at the top of the amalgamated build.
2019-12-30 19:06:15 -05:00
Calvin Rose
2ba4337e6f
Remove all feature test macros from janet.h
...
This should help improve compatibility with other C code.
2019-12-30 15:12:17 -05:00
Calvin Rose
48fcd927ab
Merge branch 'master' of github.com:janet-lang/janet
2019-12-30 14:26:38 -05:00
Calvin Rose
407d8af026
Address #233
...
Move _POSIX_C_SOURCE to internal header.
2019-12-30 12:31:26 -05:00
Calvin Rose
d0570b55b1
Merge pull request #231 from andrewchambers/tempfile
...
Add file/temp.
2019-12-29 20:00:17 -05:00
Calvin Rose
a964a95c1e
Fix warnings on BSDs.
2019-12-29 19:53:35 -05:00
Andrew Chambers
c2f8441572
Add file/temp.
2019-12-30 12:00:35 +13:00
Calvin Rose
099a957e6c
Update macex1 to properly handle break
...
Things mostly worked fine, but technically
break should be handled as a special form not a function call.
2019-12-29 16:44:53 -05:00
Calvin Rose
a2e515ab89
Merge pull request #230 from andrewchambers/file_api
...
Extend file api to allow creating and checking.
2019-12-29 10:22:03 -05:00
Andrew Chambers
2bebace8eb
Extend file api to allow creating and checking.
2019-12-30 04:02:46 +13:00
Calvin Rose
5142722da3
Remove aliases for deprectaed functions.
2019-12-28 17:51:05 -05:00
Calvin Rose
52dd0f132a
Remove emscripten build.
...
Prefer using custom toolchain with amalgmated build.
2019-12-28 16:11:15 -05:00
Calvin Rose
022be217a2
Remove ==, not==, and order[<,<=,>,>=].
...
This unifies equality and comparison checking. Before, we had
separate functions and vm opcodes for comparing general values vs.
for comparing numbers, where the numberic functions were polymorphic and
had special cases for handling NaNs. By unfiying them, abstract types
can now better integrate with other number types and behave as keys.
For now, the old functions are aliased but will eventually be removed.
2019-12-28 16:04:15 -05:00
Calvin Rose
5528bca7a9
Version bump to dev version.
2019-12-28 11:58:40 -05:00
Calvin Rose
ae474bc8d0
Merge pull request #228 from andrewchambers/pclose
...
Expand docs to explain pclose semantics.
2019-12-28 08:27:16 -05:00
Andrew Chambers
ddc4274314
Expand docs to explain pclose semantics.
2019-12-28 15:24:10 +13:00
Calvin Rose
da93a73dbd
Version bump to 1.6.0.
2019-12-22 12:09:56 -05:00
Calvin Rose
31f8778aa3
Fix makensis invocation.
2019-12-19 13:46:59 -05:00
Calvin Rose
0ecd74d01d
Echo calculated version.
2019-12-19 13:45:38 -05:00
Calvin Rose
bd20b16a32
Capture typo.
2019-12-19 13:28:17 -05:00
Calvin Rose
933f4b9111
build_win.bat: Parse out smv of janet/version.
2019-12-19 13:25:45 -05:00
Calvin Rose
3492ed6d88
Windows installer pulls version from interpreter.
...
This should make version updates simpler. Also
try an make installer write to ProgramFiles instead
of ProgramFiles (x86) for 64 bit build.
2019-12-19 13:18:46 -05:00
Calvin Rose
e28262f5ab
Add array/fill
...
This function has similar semantics to buffer/fill.
2019-12-19 12:58:11 -05:00
Calvin Rose
94246f7574
Use infinite timeout to indicate non-blocking.
...
Makes more sense than negative numbers.
2019-12-18 16:07:06 -05:00
Calvin Rose
07b0ef1648
Throw error on bad thread creation.
2019-12-18 15:49:57 -05:00
Calvin Rose
6a39c4b91d
Pass thread body explicitly in thread/new.
...
Doing it via thread/send make sense, but is a bit
strange. Passing the body explicitly will make more
sense to API users.
2019-12-18 15:07:46 -05:00
Calvin Rose
b9f0f14e31
Add array/new-filled
...
Similar function signature to buffer/new-filled.
2019-12-18 13:02:50 -05:00
Calvin Rose
4238379552
Use _setjmp/_longjmp on BSDs.
...
This doesn't save the signal mask so should be a bit faster.
2019-12-18 12:18:31 -05:00
Calvin Rose
8cc43ad2d1
Fix debugger example.
2019-12-17 23:06:41 -06:00
Calvin Rose
94b472df64
Update jpm with show-paths
...
Update CHANGELOG.md as well.
2019-12-15 22:02:33 -06:00
Calvin Rose
2b2c1ff917
Get rid of warning on BSDs.
2019-12-15 16:04:43 -06:00
Calvin Rose
c7912249b2
Typo in #ifdef.
2019-12-15 15:56:26 -06:00
Calvin Rose
b8004555ea
Start cleaning up defines in janet.h
2019-12-15 15:41:58 -06:00
Calvin Rose
58ff7f0788
BSD os.c fix with arc4random.
2019-12-15 12:47:12 -06:00
Calvin Rose
f1afc5b0b4
Address #214
...
This adds several common patterns, which are defined in
boot.janet. This essentially gives more primitive patterns
to work with out of the box.
Fix build when JANET_REDUCED_OS is defined.
2019-12-14 20:39:14 -06:00
Calvin Rose
bc8ee207d5
Address #219 .
...
Adds several shorthands to the C API.
2019-12-14 11:31:46 -06:00
Calvin Rose
76342540dc
Add buffer/fill. Address #221
2019-12-14 10:54:29 -06:00
Calvin Rose
56784a34a1
Address #224 - Exposed file flags in janet.h
...
A caller can check if a file is closed with
if (flags & JANET_FILE_CLOSED) ...
2019-12-14 09:03:56 -06:00
Calvin Rose
eca42e98f6
Update CHANGELOG.md
2019-12-12 19:39:00 -06:00
Calvin Rose
c3f1b54171
Update jpm path settings.
...
This will make it easier to use jpm as a per-project
management tool, as well as easier to set up individual
module trees.
2019-12-12 19:35:40 -06:00
Calvin Rose
9b7d642c38
Window x86 needs isnan.
2019-12-12 19:04:13 -06:00
Calvin Rose
f24e2f8706
Update CHANGELOG.md
2019-12-12 17:51:49 -06:00
Calvin Rose
aa7f3411f5
Use JANET_SINGLE_THREADED to disable threads.
2019-12-12 17:39:22 -06:00
Calvin Rose
5b9eda5e87
Add root-env
...
This makes images smaller without needing to make sure
that no references to the root environment occur in the final
image.
2019-12-12 17:25:04 -06:00
Calvin Rose
7c2ae45809
Fix some merge issues.
...
Make everything compile, and test-install pass.
2019-12-12 17:14:36 -06:00
Calvin Rose
36b2f27873
Merge branch 'master' into threads-3
2019-12-12 17:07:03 -06:00
Calvin Rose
b8e02afd1a
Improve error messages in os.c and jpm
...
In os/* functions, show failed path name. In jpm, indicate
a permission issue if we can't stat the file.
2019-12-12 03:20:20 -06:00
Calvin Rose
0fc36aa5d0
Signal to pending threads more often.
2019-12-12 02:19:56 -06:00
Calvin Rose
38f7e256d0
Port threads code to Windows API
...
Can run demo in examples/threads.janet
2019-12-10 20:32:41 -05:00
Calvin Rose
4187c972a3
Switch to multiple buffers per mailbox.
...
Needs less copying.
2019-12-10 13:26:00 -06:00
Calvin Rose
2d5af32660
Refine typedefs.
2019-12-09 20:12:10 -06:00
Calvin Rose
e592b24333
Added some type aliases to janet.h
...
This should make it clearer if a pointer is really just a
plain pointer, or a pointer with a header.
2019-12-09 20:05:53 -06:00
Calvin Rose
8700a407ce
Update janet_getmethod to better match new get api.
2019-12-09 18:45:05 -06:00
Calvin Rose
8ecf359bbe
Merge pull request #226 from andrewchambers/abstractget
...
Abstract type getters can indicate key absence.
2019-12-09 18:39:40 -06:00
Calvin Rose
eb1988a5ae
Update CHANGELOG.md
2019-12-09 18:26:58 -06:00
Calvin Rose
5b6dffe93d
Version bump.
2019-12-09 18:04:38 -06:00
Calvin Rose
1a6eb52f11
Add protect macro.
...
A more functional version of try catch.
2019-12-09 17:32:02 -06:00
Andrew Chambers
57ccfb692c
Abstract type getters can indicate key absence.
...
This change to the c api allows abstract types to indicate
to the runtime if a key was absent, or if it meant to return nil.
2019-12-09 16:50:33 +13:00
Calvin Rose
eb1c21b0da
Fix some example issue and warnings under -Os.
2019-12-08 12:40:05 -06:00
Calvin Rose
66d82c4513
Add mailbox capacity for back pressure.
...
(thread/send thread msg &opt timeout) can now timeout. Also
changed thread/self to thread/current for better consistency with
fibers, and all blocking operations will by default timeout after 1
second. I think its bad to make things block forerver by default.
2019-12-08 12:30:30 -06:00
Calvin Rose
c9c4424261
Add thread/self.
2019-12-07 17:54:08 -06:00
Calvin Rose
131733549d
Get mailbox API working.
2019-12-07 16:51:00 -06:00
Calvin Rose
ee646dadf2
Merge branch 'master' into threads-3
2019-12-07 12:14:44 -06:00
Calvin Rose
73f5314141
Work on moving to mailbox abstraction.
...
Should be more efficient in the common case.
2019-12-07 12:14:16 -06:00
Calvin Rose
4c5734c2ee
Update CHANGELOG.md
2019-12-07 10:35:40 -06:00
Calvin Rose
546669082f
New unmarshal proposal.
...
Gives more control over unmarshalling
abstract types. This should also
make it possible/easy to write abstract types that cannot
cause unmarshal to segfault.
2019-12-06 22:12:18 -06:00
Calvin Rose
4a0ee5df7d
Address #215
...
Also update docs for module/expand-path.
2019-12-06 19:54:11 -06:00
Calvin Rose
4de6c2ad61
Address #211
...
Scripts run from the command line will automatically
call a main function if it exists.
2019-12-06 19:14:12 -06:00
Calvin Rose
1fa7e73c58
Address #218
...
Quote output to :lfags in meta data.
2019-12-06 18:45:29 -06:00
Calvin Rose
0e690b4fa0
Add timeout to thread/receive.
...
If provided, throws an error if no message is received before
timeout. Perhaps should return nil?.
2019-12-06 09:21:36 -06:00
Calvin Rose
c804ae9f7c
Update threads.c to avoid a deadlock.
2019-12-06 01:46:23 -06:00
Calvin Rose
dbcceefc20
Fix bad merge.
2019-12-04 22:41:30 -06:00
Calvin Rose
1a4035b02c
Merge branch 'master' into threads-3
2019-12-04 22:39:30 -06:00
Calvin Rose
e908029392
Work on thread/receive doubling as select.
2019-12-04 22:31:01 -06:00
Calvin Rose
fd4220f254
Keep single global pthread_cond_t per thread.
...
This will allow thread/select to be implemented.
Also add thread/close and close method to threads.
2019-12-04 21:44:53 -06:00
Calvin Rose
de6c3d6d70
Simplify structure JanetThread and JanetChannel.
...
Remove JanetThreadShared.
2019-12-04 21:04:43 -06:00
Calvin Rose
77cb823719
Update CHANGELOG.md
2019-12-04 20:02:15 -06:00
Calvin Rose
49954c7a30
Remove top-level unquote for comptime macro
...
True top level unquote currently requires basically double compilation
as it currently stands. Also, implementing such double compilation
looses all source mapping information. This is a compromise
implementation that makes it clear that this works differently than
a true top-level unquote.
2019-12-04 19:53:13 -06:00
Calvin Rose
11a7a7069a
Update CHANGELOG.md
2019-12-04 18:46:36 -06:00
Calvin Rose
2487162ccf
Add top level unquote and macro envs.
...
This improves macros that eval their arguments and
makes them easier to write.
2019-12-04 18:39:13 -06:00
Calvin Rose
8ca10f37bd
Update CHANGELOG.md
2019-12-04 16:51:34 -06:00
Calvin Rose
4199c42fe2
Add support for nested quasiquotation.
...
This brings Janet more in line with Scheme,
Common Lisp, and Clojure.
2019-12-04 16:40:53 -06:00
Calvin Rose
f39cf702db
Address #212 - don't include janet args in script args.
2019-12-04 08:30:36 -06:00
Calvin Rose
db9e431bf7
Address #213 - disallow non-indexed ds for loop range.
2019-12-04 08:18:54 -06:00
Calvin Rose
328454729e
Add nan?
2019-12-03 21:24:22 -06:00
Calvin Rose
73a4c395d2
Address #190
...
We don't ever invoke ld directly, so ignore --linker on non-windows.
For --compiler and --archiver, default to $CC and $AR. These are
overshadowed by CLI flags or settings in project.janet.
2019-12-03 21:00:59 -06:00
Calvin Rose
70328437f1
Add math/rng-buffer.
...
Allow math/seedrandom to use buffer as seed.
2019-12-03 20:33:21 -06:00
Calvin Rose
600bed9f6d
Merge pull request #209 from andrewchambers/cryptorand2
...
Add os/cryptorand.
2019-12-03 19:12:32 -06:00
Calvin Rose
55eca44c54
Merge pull request #210 from andrewchambers/unhandled_buffer_get
...
Handle missing get case.
2019-12-03 19:07:44 -06:00
Andrew Chambers
0ac5b243c7
Add os/cryptorand.
2019-12-04 14:02:37 +13:00
Andrew Chambers
9911c90b1d
Handle missing get case.
2019-12-04 13:58:21 +13:00
Calvin Rose
a1f35e21c7
Merge branch 'master' into threads-3
2019-12-03 18:11:32 -06:00
Calvin Rose
9ccdab0bc7
Merge pull request #208 from andrewchambers/explain_why
...
Explain the logic behind negative slice indices.
2019-12-03 10:42:46 -05:00
Andrew Chambers
a20e956f6d
Explain the logic behind negative slice indices.
2019-12-03 22:05:43 +13:00
Calvin Rose
59668133a2
Merge pull request #206 from andrewchambers/unkown
...
Fix typo.
2019-12-03 03:34:46 -05:00
Andrew Chambers
73db8584e0
Fix typo.
2019-12-03 21:14:00 +13:00
Calvin Rose
cecc7e6b9d
Rename 'get' opcode to 'in', add new 'get' opcode.
...
This makes the names of the opcodes match their implied functionality.
We also rename the C functions to match the opcodes and source level
functionality.
2019-12-02 21:26:28 -06:00
Calvin Rose
3a14aad615
Address issue #205 .
2019-12-02 18:34:08 -06:00
Calvin Rose
8368e55151
Merge branch 'master' into threads-3
2019-12-02 17:49:39 -06:00
Calvin Rose
ac85fca8a1
Fix warnings for appveyor.
2019-12-02 09:07:49 -06:00
Calvin Rose
e5fbe5c557
Change printf to add trailing newlines.
...
Also add prinf and eprinf for old behavior. This
is consistent with the naming of print and prin.
2019-12-02 04:45:03 -06:00
Calvin Rose
474bcd50a1
Add methods to threads.
2019-12-02 04:39:13 -06:00
Calvin Rose
70c8b6838d
Use make-image-dict and load-image-dict in thread/new
...
Rather than messing with janet_core_dictionary, we
instead cache the core enevironment, and pull out the
needed tables from there. This is more flexible, more correct, and
also exposes janet_resolve_core, which can be easily used from the C
API.
2019-12-02 04:15:22 -06:00
Calvin Rose
212479188a
Have separate encode and decode dicts for threads
...
This is more correct and mirrors the way marshal -> unmarshal works.
2019-12-01 21:53:39 -06:00
Calvin Rose
5b1e59b535
Merge branch 'master' of github.com:janet-lang/janet into threads-3
2019-12-01 21:26:22 -06:00
Calvin Rose
779d788efa
Merge pull request #204 from andrewchambers/get_permissive
...
New capi janet_get_permissive
2019-12-01 22:06:44 -05:00
Andrew Chambers
6233d804c8
New capi janet_get_permissive
...
The janet_get_permissive function implements the core semantics
of the 'get' function. The original janet_get implements the semantics of
the 'in' function and also the OP_GET opcode. This slight oddity is
to avoid a backwards incompatible change.
2019-12-02 15:49:51 +13:00
Calvin Rose
8f31a53276
Add thread example.
...
Also remove reference to pthread_t in the JanetThread structure.
2019-12-01 20:47:22 -06:00
Calvin Rose
6a763aac95
Work on threads.
...
Add send and receive.
2019-12-01 20:28:12 -06:00
Calvin Rose
5cd6580c2d
Merge branch 'threads-3' of github.com:janet-lang/janet into threads-3
2019-12-01 20:25:57 -06:00
Calvin Rose
81a2af700a
Merge pull request #201 from andrewchambers/in_docs
...
Update documentation for in and get builtins.
2019-12-01 20:49:47 -05:00
Andrew Chambers
8a58be81ba
Update documentation for in and get builtins.
...
Try to clarify documentation and teach users the correct
way to read the 'in' so it is less likely to be confused
with python's usage of the keyword.
2019-12-02 12:35:54 +13:00
Calvin Rose
fc53445d08
Merge pull request #198 from andrewchambers/intprint
...
Integers convert to plain number strings.
2019-12-01 13:00:09 -05:00
Calvin Rose
db261aabf4
Fix bad integer printing range.
2019-12-01 09:46:20 -05:00
Calvin Rose
36ef1c4749
Print proper integers as integers.
2019-12-01 09:40:34 -05:00
Andrew Chambers
5ae520a2c9
Integers convert to plain number strings.
...
A user can use (type n) to find the true type, the old behavior did not
seem useful for most uses of the string function.
2019-12-01 23:10:52 +13:00
Calvin Rose
8e31bda8f6
Fix issue #189
2019-11-30 21:54:23 -05:00
Calvin Rose
474aed8cfe
Merge branch 'master' of github.com:janet-lang/janet
2019-11-30 21:34:38 -05:00
Calvin Rose
0509376aea
Merge pull request #193 from andrewchambers/truthy
...
Add truthy? to core.
2019-11-30 21:32:14 -05:00
Calvin Rose
570f04ca05
Fix typo.
2019-11-30 21:27:36 -05:00
Andrew Chambers
ded08b6e1e
Add truthy? to core.
2019-12-01 14:34:41 +13:00
Calvin Rose
f3c0d9115f
Fix calling jpm quickbin binary with no arguments.
2019-11-30 15:11:34 -05:00
Calvin Rose
bf609445c1
Merge pull request #186 from quexxon/fix-array-ensure-documentation
...
Add missing documentation for array/ensure's growth parameter
2019-11-29 22:39:04 -05:00
Calvin Rose
13ef2bd905
Merge pull request #185 from andrewchambers/afl
...
Add afl fuzzing helpers.
2019-11-29 22:36:47 -05:00
Calvin Rose
4e4cdb6356
Run formatter.
2019-11-28 23:26:11 -05:00
Calvin Rose
688d297a18
Address Issue #184 .
...
Fix strtod.c with better range checking to prevent DOS.
2019-11-28 23:23:37 -05:00
Will Clardy
9e1c3e0f41
Add missing documentation for array/ensure's growth parameter
2019-11-28 23:16:32 -05:00
Andrew Chambers
4acc63e325
Add afl fuzzing helpers.
2019-11-29 16:43:14 +13:00
Calvin Rose
967a8b5a70
Merge pull request #183 from andrewchambers/environ
...
Add os/environ.
2019-11-28 21:33:43 -05:00
Calvin Rose
92b7d91697
Merge pull request #182 from andrewchambers/scratch_finalizer
...
Add an optional finalizer to scratch resources.
2019-11-28 21:07:42 -05:00
Andrew Chambers
07db4c530e
Add os/environ.
2019-11-28 19:00:52 +13:00
Andrew Chambers
a3fb2d6e0a
Add an optional finalizer to scratch resources.
...
A finalizer can be attached to scratch allocations efficiently at any point in
it's lifecycle via janet_sfinalizer. Care was taken to keep allocations aligned
with platform alignment requirements.
A big drawbacks to this approach is the waste of up to 16 bytes per scratch
allocation in the case the scratch memory does not require a finalizer.
2019-11-28 17:32:12 +13:00
Calvin Rose
5b9e37e2cc
Merge pull request #181 from andrewchambers/fileno
...
Add missing fileno method to file, sort method list.
2019-11-27 21:06:30 -05:00
Andrew Chambers
88f28773da
Add missing fileno method to file, sort method list.
2019-11-28 14:47:16 +13:00
Calvin Rose
66e6979812
Add thread flags to standalone executables.
2019-11-27 15:06:31 -06:00
Calvin Rose
8a91c52fa2
Change pthreads linking with jpm, make, and meson.
...
Try to add pthread deps when compiling programs with jpm.
2019-11-27 14:52:20 -06:00
Calvin Rose
e542ba7e4d
Fix amalg build.
2019-11-27 12:43:45 -06:00
Calvin Rose
bca0392738
First work on threading.
...
Posix only, needs to be disabled on windows. Also
the Makefile needs to be configurable, and meson.build
needs to take pthreads into account.
2019-11-26 23:13:53 -06:00
Calvin Rose
74d51ab08b
Address issue #180 - string/check-set
...
Fix the function and add test to further clarify that
implementation is correct. Also fix empty string case.
2019-11-25 20:33:16 -06:00
Calvin Rose
6bc400eb8c
Update CHANGELOG.md
2019-11-25 20:11:10 -06:00
Calvin Rose
7df0ec6aed
Fix up debug/step and janet_step.
...
Also allow debugging on all signals, including errors.
This is gated behind (setdyn :debug true) in the repl.
2019-11-25 20:00:13 -06:00
Calvin Rose
a0a980e0ef
Update sample debugger.
...
Add .break and .step.
2019-11-25 18:21:53 -06:00
Calvin Rose
6988fd3cab
Add debug/step to single step a fiber.
...
Very useful for implementing debuggers.
2019-11-25 18:14:34 -06:00
Calvin Rose
c3273e8751
Merge branch 'master' of github.com:janet-lang/janet
2019-11-24 17:54:14 -06:00
Calvin Rose
d37c43716a
Lots of work on improving debugging.
...
doc macro can take no arguments and print out
all bindings. Fix an issues with the vm skipping
over a breakpoint in some situations.
Add examples/debugger.janet for proof of concept
debugger.
2019-11-24 17:45:53 -06:00
Calvin Rose
1bf751367b
Merge pull request #177 from andrewchambers/parse_review
...
Minor fixes for parser.
2019-11-23 14:23:57 -05:00
Andrew Chambers
976dfc7195
Minor fixes for parser
...
Check length before dereferencing buffer in tokenchar.
Check keywords are valid utf-8.
Fix minor typos.
2019-11-24 08:19:04 +13:00
Calvin Rose
8372d1e499
uint32_t -> uint8_t
2019-11-21 23:31:35 -06:00
Calvin Rose
e65716f6ee
Add janet_rng_longseed to janet.h
2019-11-21 23:26:31 -06:00
Calvin Rose
4b24d77b2c
Switch back to well tested RNG.
2019-11-21 23:22:21 -06:00
Calvin Rose
02fc4ae27b
Allow seeding RNG with a byte sequence.
2019-11-21 22:53:39 -06:00
Calvin Rose
624f5f428e
Add a number of math functions.
...
Most of these functions are wrappers around math.h.
2019-11-17 10:54:44 -06:00
Calvin Rose
5171dfd2a8
Fix docstring.
2019-11-16 20:43:21 -06:00
Calvin Rose
8ff5e49d1f
Merge pull request #176 from staab/repl-delete
...
Add support for delete key in repl
2019-11-16 21:42:38 -05:00
Jon Staab
134163708a
Fix formatting
2019-11-16 16:07:15 -08:00
Jon Staab
40e6616df0
Add support for delete key in repl
2019-11-16 16:01:52 -08:00
Calvin Rose
bcd2089f71
Version 1.5.1
2019-11-16 17:17:13 -06:00
Calvin Rose
7553b277db
Fix return value of update.
2019-11-16 15:50:21 -06:00
Calvin Rose
d71cf093bb
Add /i switch to xcopy in jpm
2019-11-12 02:51:37 -05:00
Calvin Rose
86d21816b6
Fix jpm mendoza install on windows.
2019-11-12 02:45:20 -05:00
Calvin Rose
c9521e093e
Fix windows issue with (file/read file :all)
...
When file was created with file/popen, the current optimization
of using fseek on windows fails due to windows not properly returning
and error code and just returning 0. Windows :(.
2019-11-11 20:05:00 -05:00
Calvin Rose
16f6261b44
Improve randomness of numbers from new rng.
...
First few numbers are very biased.
2019-11-10 17:44:59 -06:00
Calvin Rose
6b76ac3d18
Fix bug when appending buffer to self.
...
janet_to_string_b had a bug when printing buffers.
2019-11-10 14:57:09 -06:00
Calvin Rose
5681e02e0f
Update deployment and fix changelog.
2019-11-10 11:30:31 -06:00
Calvin Rose
41a22f258e
Fix appveyor.yml to build windows installer.
2019-11-10 11:12:28 -06:00
Calvin Rose
0d2844b7c9
Update to 1.5.0
2019-11-10 10:57:18 -06:00
Calvin Rose
719f7ba0c4
Default to UTC for date.
2019-11-09 16:57:21 -06:00
Calvin Rose
44ed2c6b47
Tag artifacts with platform name.
2019-11-09 16:20:52 -05:00
Calvin Rose
c9292ef648
Use /MD on windows.
...
Just makes things easier. Assume machines have msvcrt.dll
on them. If not, we can add msvcrt.dll to the dist folder and add to
installer.
2019-11-09 16:05:07 -05:00
Calvin Rose
135abff100
Try again with vcvarsall.bat
2019-11-09 13:29:01 -05:00
Calvin Rose
7252db1e63
Try 32 bit and 64 bit builds for windows.
2019-11-09 13:25:57 -05:00
Calvin Rose
05e3fd3cc6
Fix build_win.
2019-11-09 13:22:07 -05:00
Calvin Rose
6f1b03b67e
Fix build_win test-install.
...
On failure, cd back to original directory.
2019-11-09 11:28:40 -05:00
Calvin Rose
dca247f01d
Fix MSVC build warnings.
2019-11-09 10:12:40 -06:00
Calvin Rose
63e7ca4623
Fix warning on travis CI with Clang.
2019-11-09 10:10:07 -06:00
Calvin Rose
75d21d9f45
Update CHANGELOG.md
2019-11-09 10:05:29 -06:00
Calvin Rose
8911daaf6c
Add --test flag to jpm.
...
Also test some select packages when testing installation.
This is used in CI to make sure that versions of Janet work with
the most libraries.
2019-11-09 10:03:56 -06:00
Calvin Rose
1f55d40a10
Fix janet_opt* api.
...
Inverted conditional made behavior incorrect. These
were not used in the core library, so were not tested.
2019-11-09 09:39:14 -06:00
Calvin Rose
6591e7636d
Copy janetconf to build for amalg target.
...
This makes testing the amalg easier.
2019-11-08 20:36:16 -06:00
Calvin Rose
c12eaa926a
Make sure $prefix/lib/janet is created
...
After we removed cook.janet, jpm didn't work well out of the box
with a meson install.
2019-11-08 18:43:53 -06:00
Calvin Rose
0e464ded3d
Fix meson.build typo.
2019-11-08 18:26:43 -06:00
Calvin Rose
aee1687215
Add RNG functionality to the math/ module.
...
The new RNG wraps up state for random number generation, so
one can have many rngs and even marshal and unmarshal them.
Adds math/rng, math/rng-uniform, and math/rng-int.
Also introduce `in` and change semantics for
indexing out of range. This commit enforces stricter
invariants on keys when indexing via a function call
on the data structure, or the new `in` function.
The `get` function is now more lax about keys, and will
not throw an error when a bad key is used for a data structure, instead
returning the default value.
2019-11-08 17:40:04 -06:00
Calvin Rose
58e3e63a89
Add jpm to release bundle.
2019-11-08 11:00:12 -06:00
Calvin Rose
9b605b27bd
Address #174 - fix string/trim
2019-11-08 08:47:37 -06:00
Calvin Rose
c5010dffb4
Print error message on bad CLI usage.
...
This was a small regression when bundling cli-main
into boot.janet.
2019-11-05 12:51:15 -06:00
Calvin Rose
026f26f05f
Improve error message in slice functions.
...
Check the first argument before trying to do range
checks.
2019-11-05 09:41:30 -06:00
Calvin Rose
cf2d3861d6
Make slice a c function.
...
This will allow future integration into the compiler
for more general destructuring.
2019-11-05 09:29:32 -06:00
Calvin Rose
6ceaf9d28d
Add with-vars
...
This helps for temporarily setting vars in a safe
manner that is guaranteed not to leave vars in a bad state
(assuming that a fiber does not emit debug or use signal and
is never resumed).
2019-10-31 21:58:43 -05:00
Calvin Rose
25a9804d91
Fix build_win test-install
2019-10-29 20:40:09 -05:00
Calvin Rose
cf19cd5292
Add the quickbin command to jpm.
...
This is useful for making one off executable scripts
without needing to set up a project.janet file.
2019-10-29 20:33:18 -05:00
Calvin Rose
03824dd9f7
Update CHANGELOG.md
2019-10-29 19:41:48 -05:00
Calvin Rose
280dca3998
Add shell.c to the amalgamation.
...
This allows easy builds of the full interpreter with no
build system.
1. Get janet.c, janet.h, janetconf.h, and shell.c in a directory. Edit
janetconf.h as desired.
2. gcc shell.c janet.c -lm -ldl -O2 -o janet (on GNU-Linux for example)
3. ./janet -h (Yay!)
2019-10-29 19:18:44 -05:00
Calvin Rose
46e09e4c71
Fix tools/removecr.janet
2019-10-29 18:56:32 -05:00
Calvin Rose
427b2638e0
Fix startup environment.
2019-10-29 18:47:54 -05:00
Calvin Rose
2541806dc1
Fix suite7 failing when run with no docstrings.
2019-10-29 18:28:41 -05:00
Calvin Rose
0d16b9e1a1
Move init.janet into cli-main in boot.janet
...
This makes it easier to get the CLI functionality when
embedding Janet, although the main reason is the init script
is now pre-compiled to bytecode when generating the boot image.
2019-10-29 18:16:32 -05:00
Calvin Rose
b2263ed5b5
Update CHANGELOG.md
2019-10-29 17:52:41 -05:00
Calvin Rose
45c2819068
Improve flychecking.
...
Flychecking will now work correctly with arity checking, and
will better handle imports. Well structured modules should interact
cleanly with the flychecker in a mostly safe manner, but maliciously
crafted modules can execute arbitrary code. As such, the flychecker is
not a good way to validate completely untrusted modules.
We also extend run-context with an :evaluator option to replace
:compile-only. This is more flexible and allows users to create their
own flychecker like functionality.
2019-10-27 16:15:41 -05:00
Calvin Rose
d28925fdab
Relax type checking when fuction position is nil
...
This lets the flychecker work as expected.
2019-10-24 15:17:19 -05:00
Calvin Rose
9097e36ea0
[] should evaluate to ()
...
This is consistent with most bracket tuples.
2019-10-20 14:06:28 -05:00
Calvin Rose
99ef4c7510
Fix an issue with the removecr script
2019-10-19 19:11:13 -04:00
Calvin Rose
b9e05d06fe
Update amalg step.
2019-10-19 18:00:29 -05:00
Calvin Rose
423b6db855
Fix memory leak with some string/ functions.
...
kmp_init leaked memory when called with an empty string.
2019-10-19 15:14:19 -05:00
Calvin Rose
bb54b940c0
Don't call fwrite with size = 0
2019-10-19 10:51:11 -05:00
Calvin Rose
4149df1fca
Update CHANGELOG.md
2019-10-19 10:35:56 -05:00
Calvin Rose
8dd8af742a
Add eprintf and make printf a C function.
...
This allows some more optimizations when printing to
buffers or when output is disabled. It also makes printf
more consistent with print and prin (Same with eprintf).
2019-10-19 10:30:29 -05:00
Calvin Rose
d47804d222
Add prin, eprint, and eprin functions.
...
The print family of functions now writes output
to an optional buffer instead of a file bound to :out.
This means output can be more easily captured an redirected.
2019-10-19 09:44:27 -05:00
Calvin Rose
8dd322c0be
Fix webclient.
2019-10-14 20:55:04 -05:00
Calvin Rose
7fd0748c19
Update to 1.4.0
2019-10-14 20:35:13 -05:00
Calvin Rose
655d4b3aad
Fix test.
2019-10-13 08:00:43 -05:00
Calvin Rose
5f51476526
Remove a git attribute for linguist.
2019-10-12 22:03:34 -05:00
Calvin Rose
d47b5f8c6a
Update CHANGELOG.md
2019-10-11 00:11:19 -05:00
Calvin Rose
a18a251d16
Address some issues found in lgtm
...
Caught a few potentially issues with overflows, as well as use of
unsafe function localtime.
2019-10-10 22:59:43 -05:00
Calvin Rose
8ee54e887f
Update changelog.
2019-10-10 19:06:16 -05:00
Calvin Rose
088c926196
Add update-pkgs to jpm.
...
This allows for periodically updating the package listing.
2019-10-10 18:46:24 -05:00
Calvin Rose
54b66a4199
Add shorthand package name support in jpm.
...
Package installation checks in the package listing if
the package name is not a url. The package listsing can be specified
via switch or env variable.
2019-10-10 18:11:45 -05:00
Calvin Rose
f9d57103f4
Improve peg error on unknown rule.
...
This helps a lot when debugging large, failing grammars.
2019-10-09 17:59:48 -05:00
Calvin Rose
f780df0aa6
Fix single threaded build option with meson.
...
By default, was building with the opposite of what was provided.
2019-10-05 20:35:11 -05:00
Calvin Rose
fede40f279
Relax requirement minimum arity of fn
...
A valid `fn` special could have only a parameter list, as
recommended by R. DuPlain.
2019-10-05 11:53:30 -05:00
Calvin Rose
6ae5a9be60
Add -fvisibility in Makefile, provide meson example commands.
...
Shaves off 10 kb in binary. Also -fpic -> -fPIC in Makefile and jpm.
2019-10-05 10:38:58 -05:00
Calvin Rose
e9f3dc7d5c
Add varfn.
2019-10-03 20:20:42 -05:00
Calvin Rose
841b58042f
Merge pull request #168 from Crestwave/haiku
...
Fix installation on Haiku
2019-10-02 13:54:03 -04:00
Crestwave
63e3e02a39
Fix installation on Haiku
2019-10-02 05:52:55 +00:00
Calvin Rose
944347e828
Fix formatting.
...
Run make format.
2019-09-30 20:00:29 -05:00
Calvin Rose
7910a5feef
Add compile time arity checking.
...
This should help catch a number of errors, but it
is a very shallow implementation of type checking. It will
catch some common misuses of functions at compile time
rather than runtime.
2019-09-30 19:50:42 -05:00
Calvin Rose
2becd196dd
Fix incomplete error message.
2019-09-25 09:29:29 -05:00
Calvin Rose
bcb45157a8
Update CHANGELOG.md
2019-09-24 21:25:21 -05:00
Calvin Rose
70ffe3b6bd
Add slice function to core.
...
Returns immutable slices.
2019-09-24 19:44:36 -05:00
Calvin Rose
339dea9390
Add optional argument functions to c api.
...
These are just helpers to make parameters than can be nil with a
default value easier to handle in a consitent way.
2019-09-24 19:40:49 -05:00
Calvin Rose
b26a7bb22a
Disallow the empty string for some string fns.
...
This will prevent these functions from being run
with empty strings, which usually produces useless
output, as the internal string search algorithm will
never "find" empty strings. This is by design, as it is
not always obvious which empty strings should be found in
the search text.
2019-09-24 13:23:18 -05:00
Calvin Rose
45dfc7cc96
Fix debug/break search algorithm.
2019-09-22 18:08:38 -05:00
Calvin Rose
9d020c3ec5
Update CHANGELOG.md
2019-09-22 18:00:53 -05:00
Calvin Rose
8cda06b995
GCC seemed to not fill array of computed gotos.
...
This is expected as per the C standard, but segfaulted
unless all 255 labels were added.
2019-09-22 17:56:33 -05:00
Calvin Rose
a8afc5b81f
Sourcemapping uses line, column instead of offsets.
...
This should be friendlier to most users. It does, however, mean
we lose range information. However, range information could be
recovered by re-parsing, as janet's grammar is simple enough to do this.
2019-09-22 17:18:28 -05:00
Calvin Rose
228d045a06
Fix formatting.
2019-09-22 15:17:06 -05:00
Calvin Rose
c447e7b3a5
Update changelog.
2019-09-22 15:15:28 -05:00
Calvin Rose
803c3fc235
Add line, col to error messages when available.
2019-09-22 15:13:21 -05:00
Calvin Rose
a032529437
Let jpm projects work better on windows.
...
Handle paths with normal, forward slashes better.
2019-09-22 14:01:14 -04:00
Calvin Rose
7bee204390
Fix installer.
2019-09-22 13:29:34 -04:00
Calvin Rose
064a700edd
Merge branch 'master' of github.com:janet-lang/janet
2019-09-22 12:54:50 -04:00
Calvin Rose
7809f89dfc
1.3.1 Release
...
Small changes, mostly just fixing minor bugs.
2019-09-21 19:15:02 -05:00
Calvin Rose
940860755c
jpm: Read :lflags from meta file when linking.
...
Let us link in native code that itself neads to be linked
to native code when creating standalone executables.
2019-09-21 18:57:04 -05:00
Calvin Rose
1b283c47b4
Remove macos update_dyld_shared_cache
...
This just doesn't work well for a non global install.
It is better packages that need this to run it themselves.
2019-09-20 13:13:05 -05:00
Calvin Rose
8e427317cd
Add mean function to boot.janet
...
Update changelog.
2019-09-19 21:21:14 -05:00
Calvin Rose
908a3b6f5c
Address #160 : Use ldconfig alternative on macos.
...
update_dyld_shared_cache seems to work on macos.
2019-09-18 12:20:59 -05:00
Calvin Rose
f2ba91899f
jpm test now starts a new interpreter per test.
...
This should help with setup/teardown semantics, especially
with native modules.
2019-09-16 00:48:35 -05:00
Calvin Rose
16127fc55c
Remove printf in regalloc.c
...
This should never be hit unless there is a
bug in the compiler, but should be removed.
2019-09-15 18:17:43 -05:00
Calvin Rose
97d874f16b
Fix small compiler bug (not freeing temp register).
2019-09-15 13:27:49 -05:00
Calvin Rose
8aba5e76ae
Sort files when running tests.
2019-09-14 19:39:14 -05:00
Calvin Rose
0e7144f2dc
Add :headers option to build recipes
...
This lets recipes do better change detection.
2019-09-14 12:40:01 -05:00
Calvin Rose
9f48c3e2db
Remove :r from amalg.janet
2019-09-12 23:34:14 -05:00
Calvin Rose
e6306ea188
Add script for removing <CR> on windows.
...
This caused bad stuff to be generated on windows, specifically
the amalg file. We cause totally strip <CR> from files on windows
using this script.
2019-09-12 23:18:52 -05:00
Calvin Rose
0e99d8d80f
Merge pull request #167 from ato/patch-1
...
Correct old name all-symbols to all-bindings in README
2019-09-10 23:21:58 -04:00
Alex Osborne
de5cd73cd7
Correct old name all-symbols to all-bindings
2019-09-11 12:05:41 +09:00
Calvin Rose
b585d19519
Merge pull request #164 from AlbertoGP/master
...
Defuse tarbomb: wrap tar file contents in directory, fix #163
2019-09-09 19:16:43 -04:00
Alberto González Palomo
8753d2dcb8
Defuse tarbomb: wrap tar file contents in directory
...
https://en.wikipedia.org/wiki/Tar_(computing)#Tarbomb
http://www.linfo.org/tarbomb.html
2019-09-09 18:59:29 +02:00
Calvin Rose
39f1d81fd4
Use :length method for (length abstract)
...
Also adds the janet_lengthv API call. This is
needed because janet_length returns a 32 bit integer, where
as lengthv lets us return larger values (useful for typed arrays).
janet_mcall is an api function that should make it easier to call
a janet method from C code. It shares a similar signature with
janet_call.
2019-09-08 19:26:16 -05:00
Calvin Rose
fcd203c646
Merge branch 'master' of github.com:janet-lang/janet
2019-09-05 21:10:50 -04:00
Calvin Rose
4ebb749131
Update appveyor configuration.
2019-09-05 19:43:06 -05:00
Calvin Rose
37a943d9b5
1.3.0 Release
2019-09-05 19:33:08 -05:00
Calvin Rose
2f2b875c2a
Update CHANGELOG.md
2019-09-05 13:21:17 -05:00
Calvin Rose
99f147219a
Add put-in.
2019-09-05 13:19:25 -05:00
Calvin Rose
7a13d24e6f
Add get-in, update-in, and freeze to core.
2019-09-05 13:11:53 -05:00
Calvin Rose
8dc91755f7
Work on makefile and build for jpm.1
2019-09-05 12:28:11 -05:00
Calvin Rose
96a3104fe2
Update to 1.3.0, add jpm.1
2019-09-04 23:44:23 -05:00
Calvin Rose
97f525d069
Update CHANGELOG.md
2019-09-01 11:37:43 -05:00
Calvin Rose
4ad1bdec15
Add jpm run and jpm rules
2019-09-01 11:26:48 -05:00
Calvin Rose
530d94a4b9
Allow relative paths for jpm commands (deps)
...
Also default headerpath, libpath, and binpath of
of (dyn :syspath) instead of $JANET_MODPATH. This
allows setting $JANET_MODPATH without needing to
mess with the other settings.
2019-09-01 11:08:39 -05:00
Calvin Rose
141d3e9588
Add option for using tags in jpm deps.
2019-08-30 18:23:13 -05:00
Calvin Rose
98eaadf2d1
Simplify peg caching further.
...
Remove the multiple caching tables we were using
and use the grammar table for caching. This works
well because we can use raw_get for checking the local cache, and normal
get fro checking the global cache.
2019-08-30 08:57:45 -05:00
Calvin Rose
54a04b5894
Fix some more recursion issues with pegs.
...
A keyword reference only counts as visited if we have
it as cached in the memoized->table, and we know it was
originally referenced from the same grammar table. If these
two conditions are true, then compilation must work correctly.
Also add janet_table_get_ex.
2019-08-29 19:56:04 -05:00
Calvin Rose
8bc8709d0e
Try to address memoization problem in pegs.
2019-08-29 19:09:43 -05:00
Calvin Rose
730080e6fd
Get rid of robocopy nonsense.
...
xcopy works fine, just need /s flag.
2019-08-29 02:57:47 -04:00
Calvin Rose
d4b49cd622
Windows fixes for jpm.
2019-08-29 02:02:05 -04:00
Calvin Rose
7e0586cb55
Fix test-install on windows.
2019-08-28 23:50:15 -04:00
Calvin Rose
05695a35c7
Fix test-install after removing cook.
2019-08-28 21:05:34 -05:00
Calvin Rose
58ffb9d7a5
Remove cook and path from default install
...
Instead, combine cook into jpm so we can manipulate
JANET_PATH without messing with jpm. path was moved to
and external repository, https://github.com/janet-lang/path.git
2019-08-28 20:54:31 -05:00
Calvin Rose
7eb487d998
Merge branch 'master' of github.com:janet-lang/janet
2019-08-27 18:11:22 -05:00
Calvin Rose
f903ee8acc
Add quotes and remove input path as make target.
...
Make doesn't handle that or auto escape that very well, so
we only put known paths as Make targets.
2019-08-27 18:10:03 -05:00
Calvin Rose
91cbe2e22c
Add quotes to shim if install-dir has spaces.
2019-08-25 17:18:01 -04:00
Calvin Rose
c45bad9437
Better shim for scripts on windows.
...
Arguments should be passed in properly.
2019-08-25 17:16:44 -04:00
Calvin Rose
4aa6afbf47
Fix binscripts on windows.
2019-08-25 16:54:54 -04:00
Calvin Rose
29054e8072
Update changelog.
2019-08-24 23:43:51 -04:00
Calvin Rose
060d11e4c2
Add Q and q formatters to buffer/format.
...
These are similar to P and p, but print values
on a single line for a much more compact version.
2019-08-24 22:53:45 -04:00
Calvin Rose
77870508de
Update CHANGELOG.md
2019-08-24 19:06:02 -04:00
Calvin Rose
133ad0d355
Add test for longstring matcher using backmatches.
2019-08-24 19:02:55 -04:00
Calvin Rose
711fe64a51
Add backmatch operator to pegs.
...
(backmatch [tag?]) is similar to a back reference in regular expressions
(NOT to backwards capture in a peg). It only matches a pattern if
it exactly matches the text of the last capture. It does not consume
or push any captures to the capture stack.
2019-08-24 18:57:01 -04:00
Calvin Rose
78b5c94cb0
jpm updates.
...
Add better error message if no c compiler detected on windows.
2019-08-24 17:36:50 -04:00
Calvin Rose
95266bdcf8
fix git submodule update command with :p flag
2019-08-23 08:57:41 -05:00
Calvin Rose
b78879dc18
missing closing paren
2019-08-23 08:40:11 -05:00
Calvin Rose
5d29079393
Merge branch 'master' of github.com:janet-lang/janet
2019-08-23 08:35:37 -05:00
Calvin Rose
b052a57fc8
Add error message when dep fails to build.
2019-08-23 08:35:18 -05:00
Calvin Rose
292be33b9d
Fix some stack overflow bugs.
2019-08-19 01:19:51 -04:00
Calvin Rose
0360942942
Add build commit hash to windows build from appveyor.
2019-08-18 21:01:47 -04:00
Calvin Rose
c35d6d2396
More batch syntax issues.
2019-08-18 20:27:26 -04:00
Calvin Rose
1c73d8ce2b
Remove some parens
2019-08-18 20:19:50 -04:00
Calvin Rose
6a539df480
Make sure all appveyor artifacts get deployed
2019-08-18 20:07:12 -04:00
Calvin Rose
1de09ec149
release test 5
2019-08-18 20:02:06 -04:00
Calvin Rose
a1f785038d
release-test4
2019-08-18 19:53:18 -04:00
Calvin Rose
5d475848a6
Fix appveyor.yml
2019-08-18 19:35:17 -04:00
Calvin Rose
2695f2da46
Update installer with appveyor commands.
2019-08-18 19:16:15 -04:00
Calvin Rose
3cdbf5753d
Add some more artifacts to automate release.
2019-08-18 18:02:28 -04:00
Calvin Rose
daf92be5bc
Better deploy test.
2019-08-18 17:54:52 -04:00
Calvin Rose
79bbb0ee1c
Appveyor test2.
2019-08-18 17:05:53 -04:00
Calvin Rose
826bb1abbe
Update appveyor deployment.
2019-08-18 16:54:43 -04:00
Calvin Rose
81789a6930
Add wasm to architectures returned by os/arch.
2019-08-18 10:08:52 -05:00
Calvin Rose
28fb2403d9
Add os/arch to core.
...
Also allow setting custom keywords for compiled
os name and architecture name.
2019-08-18 10:00:04 -05:00
Calvin Rose
1872bd344f
Address #158
...
Use string/join to prevent stack overflow.
2019-08-18 08:41:22 -05:00
Calvin Rose
54170d92db
Add some color to stacktraces in repl.
2019-08-12 19:20:01 -05:00
Calvin Rose
ec62e871dd
Update to version 1.2.0.
2019-08-08 18:51:24 -05:00
Calvin Rose
4ba912cd57
Switch to 32 bit build.
2019-08-07 22:51:58 -04:00
Calvin Rose
7713674ff6
Fix appveyor.yml
2019-08-07 22:23:19 -04:00
Calvin Rose
0fce440455
See if we can use a different build of NSIS.
2019-08-07 22:19:49 -04:00
Calvin Rose
ab782d8896
Add optional default value to get.
...
Also update CHANGELOG.md
2019-08-06 18:12:00 -05:00
Calvin Rose
c84ddefc53
Merge pull request #156 from curist/take-and-drop
...
Take and drop
2019-08-06 17:35:55 -05:00
curist
5802155882
Update take/drop - while/until.
...
to be more consistent with take/drop
2019-08-06 15:33:55 +08:00
curist
ee8a68f7b2
Fix take/drop comments.
2019-08-06 14:25:09 +08:00
curist
61bbeebfba
Update take/drop implementation.
...
No more preserves input type.
2019-08-06 14:19:22 +08:00
curist
18da183ef7
Add take/drop.
2019-08-06 14:00:05 +08:00
Calvin Rose
19c6714f06
Fix MSVC warnings and errors.
2019-08-05 20:19:46 -05:00
Calvin Rose
2193193b12
Improve error message on bad method calls.
2019-08-05 19:06:58 -05:00
Calvin Rose
850a2d7f79
Allow method calls on typed arrays.
2019-08-05 18:51:53 -05:00
Calvin Rose
ca5dce5d9f
Address #155 .
...
Fix bug in janet_table_clone that leaked memory.
2019-08-05 17:52:05 -05:00
Calvin Rose
40eff3e4a3
Merge pull request #153 from curist/docstring-fix
...
Update several docstrings.
2019-08-05 10:20:11 -05:00
curist
d334f070a3
Update several docstrings.
2019-08-05 19:58:51 +08:00
Calvin Rose
44e752d737
Add shorthand function literals to janet.
...
These are similar to the function literals from Clojure
(also Fennel), and should make short functions for maps, filters, etc.
easier to write.
2019-08-04 12:25:52 -05:00
Calvin Rose
5c83ebd75d
Update test suites.
2019-08-03 14:56:02 -05:00
Calvin Rose
02ce3031e9
Fix comp case with arity of exactly 5.
2019-08-03 14:53:14 -05:00
Calvin Rose
2b295a5459
Exit janet if import-rules fails.
2019-08-03 14:15:45 -05:00
Calvin Rose
6caf8d3d56
Make comp create variadic functions.
2019-08-03 13:57:11 -05:00
Calvin Rose
b18f1e8127
Keep count fo allocated memory via malloc.
...
We normally only track memory allocated with janet_gcalloc, but
if only a few very large normal memory blocks are allocated, the GC
will never run. Se simply need to increment a count when we allocate
memory so that the next time we enter the VM, we will be able to
run a collection if needed.
2019-07-31 00:24:13 -05:00
Calvin Rose
3e67916971
Fix MSVC warning.
2019-07-28 18:44:00 -05:00
Calvin Rose
21cccc00d7
Change link order once more.
2019-07-28 18:06:55 -05:00
Calvin Rose
4809867b33
Changes to let circlet test app work.
...
Change cook tool linking for executables, disable
GC while constructing marhsalling codebook (mdict).
2019-07-28 17:55:37 -05:00
Calvin Rose
8bbe518696
Executables linking to natives working on linux.
...
This involves a bunch of machinery in cook.janet
and even a little bit in the janet C API.
2019-07-28 13:27:20 -05:00
Calvin Rose
17b4dc1fc6
Tweak man page.
2019-07-28 11:11:31 -05:00
Calvin Rose
cca19e921e
Merge pull request #147 from curist/master
...
Update documentation
2019-07-28 12:10:34 -04:00
curist
de50a38bb1
Update man page
2019-07-28 22:19:50 +08:00
curist
c2ef58d880
Update math/log docstring
2019-07-28 22:18:36 +08:00
Calvin Rose
eafcb548ce
Fix file mode.
2019-07-28 00:19:01 -05:00
Calvin Rose
ec32d11b76
Update installer and make things build on windows.
...
We can now build windows executables with jpm.
2019-07-28 01:05:15 -04:00
Calvin Rose
7e97687c9e
Update windows installation and automation.
2019-07-27 21:44:44 -04:00
Calvin Rose
da5a64131f
Progress towards making windows work again.
2019-07-27 16:16:28 -04:00
Calvin Rose
71e5278364
Remove bsd check in cook.janet.
2019-07-27 11:45:10 -05:00
Calvin Rose
d6a1faa380
Typos.
2019-07-27 11:36:48 -05:00
Calvin Rose
166862ecff
Hold off on adding file associations on windows.
2019-07-27 11:34:47 -05:00
Calvin Rose
3c133bd677
Add more values for (os/which)
...
Some bsd flavors.
2019-07-27 11:29:40 -05:00
Calvin Rose
b0b1024f8a
Try to fix some tests for CI.
2019-07-27 11:05:53 -05:00
Calvin Rose
cc07ff987d
Fix normal native building and make test-install.
...
Add executable generation testing to make test-install.
2019-07-27 09:53:28 -05:00
Calvin Rose
efc38b87de
Preemptive version bump.
2019-07-27 09:40:35 -05:00
Calvin Rose
a3a3e4c0dc
Add (dyn :executable).
...
Also remove process/args.
2019-07-27 09:31:03 -05:00
Calvin Rose
d46bcd5b8f
Update CHANGELOG.md
2019-07-26 22:47:42 -05:00
Calvin Rose
dfe00fee94
Building standalone binaries on linux working.
...
Mostly changes to cook and jpm. Also some
code for file associations in the windows installer, and
adding the :linux value from os/which (instead of just :posix).
2019-07-26 22:43:54 -05:00
Calvin Rose
9118f2ce08
Update CHANGELOG.md
2019-07-20 16:59:11 -05:00
Calvin Rose
a0e98b9aa8
Deprecate process/args and add use macro.
...
Use is a shorthand for (import module :prefix "").
process/args has been replaced by (dyn :args) at
the top level.
2019-07-20 16:57:07 -05:00
Calvin Rose
0d3986abbb
Update cook and add an install test.
2019-07-19 19:40:51 -05:00
Calvin Rose
529b34d84e
Fix jpm stupid bug.
2019-07-19 17:01:50 -05:00
Calvin Rose
e0fe8476aa
Address issue #143
...
Fix some logic in module/expand-path.
2019-07-15 17:39:50 -05:00
Calvin Rose
0ca0180f27
More "correct" emscripten support.
2019-07-14 16:11:00 -05:00
Calvin Rose
21a355c89f
Small changes to help with latest emscripten.
2019-07-14 09:58:11 -05:00
Calvin Rose
e528b86a2a
Ensure no carriage returns end up in doc strings.
2019-07-12 09:14:37 -04:00
Calvin Rose
2e6ee39506
Fix windows build issues.
2019-07-12 08:47:11 -04:00
Calvin Rose
894877a0e3
Address issue #142
...
Also add janet_wrap_number_safe to API.
2019-07-12 07:23:24 -05:00
Calvin Rose
6887dd05f6
Merge pull request #139 from Barakat/master
...
Remove amalg.janet dependency on os/date
2019-07-09 07:39:27 -05:00
Barakat
95dbad6ec1
Remove amalg.janet dependency on os/date
...
When compiling Janet with `JANET_REDUCED_OS`, `os/date` will not be available which breaks the tool amalg.janet. One can check file modification time on the filesystem instead.
2019-07-09 13:49:37 +03:00
Calvin Rose
ea88ae1a5b
Use paths in cache for jpm that will work on windows.
2019-07-08 21:45:51 -04:00
Calvin Rose
e8e4d637ef
Fix jpm.bat on a normal install
...
The path to jpm.janet will likely have spaces.
2019-07-08 19:54:14 -04:00
Calvin Rose
3928136670
Begin update to 1.1.0.
2019-07-08 18:16:17 -05:00
Calvin Rose
0dcae6c3d6
Update regression test.
2019-07-07 23:23:45 -05:00
Calvin Rose
b639ccdad1
Merge branch 'master' of github.com:janet-lang/janet
2019-07-07 23:20:20 -05:00
Calvin Rose
affcb5b459
Address #137
...
Fix compiler bug when compiling desturctured bindings in a top-level
def or var. Also introduce janet_table_clone API call to make this
easier.
2019-07-07 23:18:39 -05:00
Calvin Rose
70c80d7899
Merge branch 'master' of github.com:janet-lang/janet
2019-07-05 14:08:58 -04:00
Calvin Rose
fb7914a3c8
Merge pull request #135 from krysros/master
...
Fix typo in jpm.bat
2019-07-05 12:56:10 -05:00
Krystian Rosiński
6099d2a45d
Fix typo in jpm.bat
2019-07-05 19:49:55 +02:00
Calvin Rose
044fc7c461
Update jpm tool.
...
The jpm tool can now use git to download dependencies, install
packages from urls, and use a manifest file for better uninstalls.
2019-07-05 11:00:46 -05:00
Calvin Rose
7c4670c3de
Change semantics of -l flag to be more useful.
2019-07-04 12:42:54 -05:00
Calvin Rose
c1113d61d6
Make installer correctly versioned.
2019-07-02 07:33:30 -05:00
Calvin Rose
2c4366dd71
Update some verion stuff.
2019-07-01 16:45:50 -04:00
Calvin Rose
d66f8333c1
Prepare for 1.0.0
2019-07-01 14:47:03 -05:00
Calvin Rose
1588359ebc
Fix memory leak caused by casting error.
...
janet_abstract_end improperly modified a gc tag.
2019-06-30 10:32:52 -05:00
Calvin Rose
a861399ecb
Indicate better support for Meson.
2019-06-30 09:57:49 -05:00
Calvin Rose
a7f3d3436f
Update CHANGELOG.md
...
Also change `with-resource` to `with`.
2019-06-24 22:02:37 -04:00
Calvin Rose
75f1bb6a7c
Fix up webclient.
2019-06-24 17:27:03 -04:00
Calvin Rose
0384b83c31
Update emscripten makefile.
2019-06-24 17:23:01 -04:00
Calvin Rose
c68361a03f
to the top
2019-06-24 17:11:36 -04:00
Calvin Rose
0bda455cad
donate
2019-06-24 17:10:27 -04:00
Calvin Rose
bb7bef7188
Add Donate link in README.md
2019-06-24 17:09:40 -04:00
Calvin Rose
b8032ec61d
Add propagate function and opcode
...
This allows better stacktraces when manually intercepting
signals to clean up resources. Also allows functionality
from Common Lisp's unwind-protect, such as calling cleanup code
while unwindinding the stack, restarting on certain signals, and
just in general having more control over signal and signal propagation.
Also fix a bug encountered while implementing with-resource in the
compiler. Desturcturing arguments that were not the last argument
would often result in bad code generation, as slots used to destructure
the earlier arguments would invalidate the later parameters. This is
fixed by allocating all named parameters before doing any destructuring.
2019-06-24 12:44:13 -04:00
Calvin Rose
8d1e6ddffc
Add reduced_os option functionality.
2019-06-24 09:40:19 -04:00
Calvin Rose
f7f2f5e84f
Address #129 .
...
Don't rm -rf the wrong directory on uninstall.
2019-06-24 08:28:40 -04:00
Calvin Rose
bedd9ccaa1
Verify working meson build on windows.
...
Using MSVC, no need for GNU tools.
2019-06-20 17:28:22 -04:00
Calvin Rose
a29e717fd7
Start working to a full meson build.
...
One build system instead of three for Make + Meson + build_win.bat.
2019-06-20 16:33:28 -04:00
Calvin Rose
522545287e
Add janet_abstract_begin and janet_abstract_end
...
This will allow some one constructing an abstract to
only make it visible to the garbage collector after it
is in a valid state. If code in the constructing cfunction
panics before janet_abstract_end is called, the GC will not try
to mark the incomplete abstract type. This is often not needed through
careful programming, but should work well.
2019-06-20 12:37:57 -04:00
Calvin Rose
4b4fe80404
Be more complete with JANET_NO_SOURCEMAPS
...
This actually removed sourcemaps, not just
the top level annotation in bindings.
2019-06-20 11:55:52 -04:00
Calvin Rose
cf05ff610f
Add some fixes for serializing complex grammars.
2019-06-19 23:23:27 -04:00
Calvin Rose
300124961f
Change -c option to use dofile instead of require
2019-06-19 22:05:13 -04:00
Calvin Rose
7eb78c8028
Load jimage files before janet source files.
...
This should allow precompiled files to be placed
right next to the source files in the file system with
the expected behavior.
2019-06-19 20:18:44 -04:00
Calvin Rose
1a7691dade
Flatten environment binding tables.
...
For some reason, these tables used prototypes. There
seems to be no need for this.
2019-06-19 20:07:40 -04:00
Calvin Rose
3b51501847
Update CHANGELOG.md
2019-06-19 19:52:41 -04:00
Calvin Rose
fc46030e7d
Add options to not include docstrings in binary.
...
This lets us build a smaller binary. The minimal tested
binary on x86-64 (with -Os, -s, and all options that shrink binary size
turned on) is about 240 kB.
2019-06-19 19:43:38 -04:00
Calvin Rose
ff3bb66272
Add some test cases for module/expand-path
2019-06-19 12:48:29 -04:00
Calvin Rose
1ceaceada4
Fix doc generation.
2019-06-19 09:48:33 -04:00
Calvin Rose
19a0444f41
Appease MSVC
2019-06-19 09:45:56 -04:00
Calvin Rose
0102a72538
Update module/paths for saner defaults.
...
Relative imports will only check the paths
directly concerning relative imports.
2019-06-19 09:01:21 -04:00
Calvin Rose
9943bdd907
Update cook.janet and jpm
...
They should throw better error messages when project.janet
not found.
2019-06-19 00:48:57 -04:00
Calvin Rose
264c5bc02b
Change default module/path.
...
Disallow loading directly with extension to be more
consistent and keep things simpler.
2019-06-19 00:34:15 -04:00
Calvin Rose
9ba8728176
Update module system.
...
Add relative imports and path normalization. This should
help towards a more composable build/dependency system.
2019-06-18 22:10:13 -04:00
Calvin Rose
8839731951
Update changelog.
2019-06-18 15:41:48 -04:00
Calvin Rose
e88a9af2f6
Add bytecode verification for peg unmarshaling.
2019-06-18 13:01:49 -04:00
Calvin Rose
a5e50a0f65
Fix windows getline.
2019-06-18 00:04:29 -04:00
Calvin Rose
7c35acca75
One more MSVC warning.
2019-06-17 23:53:38 -04:00
Calvin Rose
4bb57550c8
Silence some windows build warnings.
2019-06-17 23:50:39 -04:00
Calvin Rose
446ab037b0
Allow marshaling pegs.
2019-06-17 23:40:02 -04:00
Calvin Rose
4adfb9f2d3
Update changelog.
2019-06-17 22:46:38 -04:00
Calvin Rose
9c89d1c658
Inline yield when called with no arguments.
...
It was already inline when called with one argument.
2019-06-15 12:21:08 -04:00
Calvin Rose
3598f056bb
Reformat capi.c
2019-06-15 11:04:24 -04:00
Calvin Rose
779fcf2d54
Merge pull request #124 from ALSchwalm/parse-state
...
Add support for getting more detailed parser state
2019-06-15 11:00:06 -04:00
Adam Schwalm
3bbc121c6a
Add support for getting more detailed parser state
2019-06-15 07:37:01 -05:00
Calvin Rose
82edc19137
Update cook to take headers for natives.
...
This should help incremental building.
2019-06-13 00:41:20 -04:00
Calvin Rose
5689ef1af1
Add keyword flag utility for modules.
2019-06-12 12:05:48 -04:00
Calvin Rose
b4e25e5597
Add some string/check-set tests.
2019-06-10 14:11:07 -04:00
Calvin Rose
647139cdf9
Fix string/check-set.
...
Also change external unification identifier in match macro
to @. This means we can more easily match symbol literals.
2019-06-10 14:00:51 -04:00
Calvin Rose
6225f8d334
Fix defn docstring typo.
2019-06-09 09:18:16 -04:00
Calvin Rose
95eb54045f
Update changelog.
2019-06-08 17:22:42 -04:00
Calvin Rose
43520ac67d
Add parser/clone. ( #120 )
2019-06-08 17:16:36 -04:00
Calvin Rose
802a2d6b71
Add more dynamic bindings for printing.
2019-06-08 15:27:13 -04:00
Calvin Rose
d9a4ef05ac
Update docstring format.
...
Also add :p flag to fiber/new, change implemntation of with-dyns, and
make meson build install static library by default.
2019-06-08 10:30:43 -04:00
Calvin Rose
f00a2770ef
Follow meson guidlines for static/shared libs
...
Use only one library definition for faster builds.
2019-06-08 09:05:38 -04:00
Calvin Rose
b83fe146fa
Add static library to meson build.
2019-06-07 23:11:34 -04:00
Calvin Rose
6249f03367
Add janet_dep to meson build file.
2019-06-07 22:42:09 -04:00
Calvin Rose
bfc00b67bd
Merge pull request #123 from andrewchambers/stdlibfd
...
Add file/{fdopen,fileno} functions.
2019-06-07 19:31:41 -04:00
Andrew Chambers
2b7428ed2b
Add file/{fdopen,fileno} functions.
2019-06-08 10:33:29 +12:00
Calvin Rose
64a80c57e3
Tables created via table_init cannot leak memory.
...
Before, if Janet paniced without calling table_deinit
on a table created via table_init, Janet leaked memory.
This changes tables so that tables created via table_init
us scratch memory for auto cleanup instead of normal
malloc/free.
2019-06-05 17:08:49 -04:00
Calvin Rose
efb2ab06cb
Remove array_init and array_deinit
...
These functions made it very easy to create memory
leaks, and are better replaced with functions in vector.h or
simply using non-stack allocated arrays.
2019-06-05 16:19:51 -04:00
Calvin Rose
b082c8123e
Update tm_language_gen.
2019-06-05 11:07:08 -04:00
Calvin Rose
cc1ff9125a
Add b_lundef=false for meson build.
2019-06-04 23:58:04 -04:00
Calvin Rose
5734e02034
Update CHANGELOG.md
2019-06-03 10:55:26 -04:00
Calvin Rose
6e8beff0a0
Add optional argument to parser/where to set index.
...
DSLs that use the parser API can use this to more accurately
report source location.
2019-06-03 10:48:16 -04:00
Calvin Rose
c21eaa5474
Fix redefinition.
2019-06-02 20:09:16 -04:00
Calvin Rose
13667292c6
Expose signal, type, and status name arrays.
...
Makes it easier to print status stuff.
2019-06-02 20:05:17 -04:00
Calvin Rose
22eb8372dd
Make meson build file do cross compilation.
2019-06-02 17:05:17 -04:00
Calvin Rose
1b7a9def25
Fix path separators.
2019-06-02 14:10:12 -04:00
Calvin Rose
d7954e6fe3
Update installers for path.janet
2019-06-02 13:30:52 -04:00
Calvin Rose
c20c9cd5d7
Merge branch 'master' of github.com:janet-lang/janet
2019-06-02 13:28:48 -04:00
Calvin Rose
46531d9a60
Add path.janet.
2019-06-02 13:26:51 -04:00
Calvin Rose
d9a366fbed
Merge pull request #118 from ALSchwalm/all-bindings-env
...
Allow all-bindings and dynamics to search specific env
2019-06-02 12:08:38 -04:00
Adam Schwalm
64bf52372a
Allow all-bindings and dynamics to search specific env
2019-06-02 10:12:46 -05:00
Calvin Rose
0a9715a94c
Bump version to 1.0.0
2019-06-01 23:52:01 -04:00
Calvin Rose
c82aac1365
Refer to @ as atsign not ampersand.
2019-06-01 23:40:59 -04:00
Calvin Rose
e697cc3811
Make os/execute not leak memory on panics.
...
Since many calls can panic, it's best
to only use scratch memory for temporary values.
2019-06-01 23:38:10 -04:00
Calvin Rose
c150f2f2c1
Add scratch memory API.
...
This should make it easier to write
code that does not leak memory on panics.
2019-06-01 23:31:39 -04:00
Calvin Rose
0a54e1ed62
Fix installer.
2019-06-01 11:34:28 -04:00
Calvin Rose
b9daf41327
NSIS installer fix.
2019-06-01 10:43:40 -04:00
Calvin Rose
2d2bc436e6
Quick fix.
2019-06-01 10:40:59 -04:00
Calvin Rose
3d76d988c3
More work on installation and moving files around.
...
Move all installed libraries into auxlib.
Move all installed executable scripts into auxbin.
2019-06-01 10:38:28 -04:00
Calvin Rose
bea6dbbf3d
Hint utf8 output on windows console.
2019-05-31 15:30:23 -04:00
Calvin Rose
e1bd24c2ab
Make os/execute on windows closer to posix version
2019-05-31 15:02:44 -04:00
Calvin Rose
1f30ea66e9
Windows quick fix.
2019-05-31 13:45:39 -04:00
Calvin Rose
c43aaf8986
More work to os/execute.
...
Use environ when eflag not given. Also try to escape windows
command line strings correctly.
2019-05-31 13:44:14 -04:00
Calvin Rose
2acc81d1c5
Add noreturn attribute to panic functions.
2019-05-31 10:10:20 -04:00
Calvin Rose
26513a7a16
Update changelog
2019-05-30 19:33:09 -04:00
Calvin Rose
d005ac6888
Appease MSVC.
2019-05-30 19:21:11 -04:00
Calvin Rose
7fdb098a20
Add process.h.
2019-05-30 19:14:54 -04:00
Calvin Rose
a4a200e037
Spawn.h not found in windows.
2019-05-30 19:13:13 -04:00
Calvin Rose
15d95d8803
Windows include issue.
2019-05-30 18:50:52 -04:00
Calvin Rose
46950a8cb3
Convert os/execute to use posix_spawn.
2019-05-30 18:40:10 -04:00
Calvin Rose
4867cab569
Correct changelog date.
2019-05-29 22:21:06 -04:00
Calvin Rose
c8cf7c2445
Appease MSVC.
2019-05-29 22:12:24 -04:00
Calvin Rose
1b63215aad
Remove extra functions.
2019-05-29 22:00:47 -04:00
Calvin Rose
bcbe42ab23
Add API version checking for modules.
...
Checking now actively implemented for dynamic modules
in a fully backwards compatible way.
2019-05-29 21:58:20 -04:00
Calvin Rose
c8c6419013
Update installer again.
2019-05-29 19:48:31 -04:00
Calvin Rose
e8516c29e0
Update installer and jpm to work better on windows.
2019-05-29 19:01:12 -04:00
Calvin Rose
12247bd958
Update installer.
2019-05-29 17:48:46 -04:00
Calvin Rose
9d30d5f6e3
Update installer.
2019-05-29 13:02:15 -04:00
Calvin Rose
ba0956488d
Prepare for 0.6.0 release
2019-05-29 12:19:39 -04:00
Calvin Rose
31f502b508
Add more to util.h to help with amalg build.
2019-05-29 12:07:53 -04:00
Calvin Rose
efaaead378
Update changelog
2019-05-29 11:58:41 -04:00
Calvin Rose
4d47d92a4a
Windows WEXITSTATUS fix?
2019-05-29 11:53:57 -04:00
Calvin Rose
b39ad97a87
Fix up close to return proper exit code.
2019-05-29 11:50:46 -04:00
Calvin Rose
af23040d9c
file/close returns an integer.
...
If opened with popen, returns the exit code. Otherwise
returns nil.
2019-05-29 11:40:58 -04:00
Calvin Rose
fd2d706e33
Add os/remove.
2019-05-29 11:31:19 -04:00
Calvin Rose
178d175bcf
Update options for jpm and path stuff.
2019-05-29 11:04:38 -04:00
Calvin Rose
7a7f586094
Merge branch 'master' of github.com:janet-lang/janet
2019-05-28 23:03:08 -04:00
Calvin Rose
5124587c96
Merge pull request #114 from andrewchambers/configcheck
...
Add api for checking build compatibilty.
2019-05-28 23:02:08 -04:00
Calvin Rose
6c897b1a37
Add default for bindir.
2019-05-28 22:41:47 -04:00
Calvin Rose
c6ac53f4be
Try distributing only the installer.
2019-05-28 21:05:47 -04:00
Calvin Rose
2d7812a06c
Update appveyor.yml
2019-05-28 20:52:36 -04:00
Calvin Rose
db55277b58
Work on windows installer.
...
We will probably shift to NSIS as the default
installation method for windows. Shipping around a
single binary just doesn't cut it if we want to be able
to reliably use tools like `jpm` to build things.
2019-05-28 20:45:39 -04:00
Calvin Rose
75818217a6
Update CI tasks.
2019-05-28 14:02:45 -04:00
Calvin Rose
486b80fa7b
Update changelog, change version to 0.6.0
2019-05-28 13:59:12 -04:00
Calvin Rose
873054d055
Update CI test-install.
2019-05-28 13:03:47 -04:00
Calvin Rose
f12f896020
Change test-install
2019-05-28 12:59:21 -04:00
Calvin Rose
09ab391d13
Add import-rules to cook.
...
First steps to recursive rules. Just needs normalized paths
relative to the directory of the imported file.
2019-05-28 09:49:10 -04:00
Calvin Rose
7569930b0c
More work on cook and jpm.
2019-05-28 08:48:35 -04:00
Calvin Rose
e7189438dd
More work on jpm
...
Switch to rea dependency graph for a rake-like tool.
This model is more powerful for writing build scripts.
2019-05-27 22:14:24 -04:00
Andrew Chambers
3c304ddc35
Add api for checking build compatibilty.
2019-05-28 13:51:40 +12:00
Calvin Rose
1696de233c
Add jpm tool, based on cook.
...
Modify cook as well.
2019-05-27 16:50:57 -04:00
Calvin Rose
ce9cd4fcef
Issue #113 Color console support for windows 10
...
Use SetConsoleMode winapi function to enable ANSI
escape codes if we can.
2019-05-26 22:31:30 -04:00
Calvin Rose
698e89aba4
Fix comment macro arity #110
2019-05-25 22:50:15 -04:00
Calvin Rose
4c8dd4b96c
Fix shell like scripts.
2019-05-25 19:28:00 -04:00
Calvin Rose
11998b3913
Remove resolver element in path tuple.
...
Try to simplify module/paths back to how it used to be.
2019-05-25 17:27:56 -04:00
Calvin Rose
840610facf
Add urlloader example.
...
Demonstrate loading files from URL.
2019-05-25 17:10:25 -04:00
Calvin Rose
0280deccae
Allow filters on templates in module/paths
...
This lets us make loaders depend on file suffixes, which
lets us more efficiently use full paths.
2019-05-25 16:13:02 -04:00
Calvin Rose
4d5a95784a
Add LDFLAGS to Lflags in generated janet.pc
2019-05-24 19:58:52 -04:00
Calvin Rose
b43d93cf55
Add pkg-config to install.
2019-05-24 19:38:13 -04:00
Calvin Rose
3f137ed0b1
Add keyword argument tests
2019-05-24 17:53:34 -04:00
Calvin Rose
5deb13d73e
Update version 1.0.0 instead of 1.0.0-dev
2019-05-24 17:49:33 -04:00
Calvin Rose
82a1c8635e
Update changelog.
2019-05-24 17:14:05 -04:00
Calvin Rose
010e2e4652
Add keyword arguments via &keys.
...
This makes it easier to document functions that
take keyword arguments and also prevents some allocations
with these functions. Before, this was possible via normal
variadic functions but created an intermediate tuple, and
the generated docstrings did not document the keys.
2019-05-24 17:03:22 -04:00
Calvin Rose
ddedae6831
Reenable computed gotos - they were disabled.
2019-05-24 13:54:23 -04:00
Calvin Rose
6c63c4f129
Disable faulty embed test.
...
This needs more work on windows. However, the initial
goal of fixing the amalgamated build on windows should be ok
for now.
2019-05-23 20:32:51 -04:00
Calvin Rose
802686e3df
Apply patch from Dave Cottlehuber for bsd.
...
Update the install instructions.
2019-05-23 20:31:12 -04:00
Calvin Rose
3be79e8735
Link freebsd build.
...
Also begin work on CI amalg test for windows.
2019-05-23 11:15:58 -04:00
Calvin Rose
a303704a7d
Add some tests for the amalgamated source/
...
Adds tests to Makefile and CI on Poisx platforms.
2019-05-23 10:34:01 -04:00
Calvin Rose
b5e6c0b8fc
Address #109
...
Make repl work when default chunks not supplied.
2019-05-22 23:56:59 -04:00
Calvin Rose
98c46fcfb1
Update
2019-05-21 15:35:39 -04:00
Calvin Rose
409da697dd
Update JANET_TFLAG_CALLABLE.
...
Most datatypes in Janet are callable.
2019-05-21 15:33:35 -04:00
Calvin Rose
91c3685705
Remove JANET_WALIGN
...
It was not used anywhere in the source after some
refactoring to make better use of structs and unions for automatic
alignment.
2019-05-21 11:12:56 -04:00
Calvin Rose
411fc77ecf
Make env optional for compile.
2019-05-20 11:34:07 -04:00
Calvin Rose
0378ba78cc
Add regression test.
2019-05-20 09:20:50 -04:00
Calvin Rose
55d8e8b56b
Fix issue with compilation with source name.
...
Also add tuple/sourcemap and tuple/setmap.
2019-05-20 04:02:38 -04:00
Calvin Rose
97ad4c4f89
Update manpage and make -k mode not exit on error.
2019-05-19 15:20:59 -04:00
Calvin Rose
8de999c8f7
Merge pull request #107 from ALSchwalm/compile-only
...
Add a 'compile-only' flag to the command line
2019-05-19 15:06:35 -04:00
Adam Schwalm
f444bd25ef
Add a 'compile-only' flag to the command line
...
This allows syntax checkers like the emacs 'flycheck-mode' to check
the source without side effects.
2019-05-19 12:55:28 -05:00
Calvin Rose
43c0db4b0e
Add FAQ to readme for color terminal issues.
2019-05-17 09:48:08 -04:00
Calvin Rose
8f168c600d
Merge pull request #105 from andrewchambers/doc
...
Minor documentation fixes.
2019-05-17 07:59:08 -04:00
Andrew Chambers
ec43afb426
Minor documentation fixes.
2019-05-17 20:58:06 +12:00
Calvin Rose
880049c0ee
Merge pull request #104 from andrewchambers/openbsd
...
Add openbsd build file.
2019-05-16 22:13:26 -04:00
Andrew Chambers
2b7ac16784
Add openbsd build file.
2019-05-17 10:54:58 +12:00
Calvin Rose
56d903d75b
Remove extra closing paren.
2019-05-16 12:12:55 -04:00
Calvin Rose
7054e878fb
Add module/loaders for custom file types.
...
This will allow other languages/DSLs to very easily
integrate with Janet.
2019-05-16 12:05:40 -04:00
Calvin Rose
dde5351d11
Small changes to some doc strings.
2019-05-16 11:43:21 -04:00
Calvin Rose
7d49e3e6f1
Add unification to match macro.
...
Using a quote on a symbol prevents the match
macro from trying to create a binding to it, and
instead tells it that we are binding to a symbol
that is already in scope.
2019-05-16 10:05:54 -04:00
Calvin Rose
30cb01e2f0
Merge pull request #102 from PaulBatchelor/master
...
Add static library
2019-05-16 07:30:42 -04:00
Calvin Rose
018e836ef5
Merge branch 'master' of github.com:janet-lang/janet
2019-05-16 07:19:54 -04:00
Calvin Rose
7b25125431
Merge pull request #103 from VedVid/master
...
Primes example fixed
2019-05-16 06:15:05 -04:00
Vedor Vidurakis
0aa2f68793
Primes example fixed
...
It was failing due to unknown symbol "string/pretty"; (pp (primes 100)) works properly.
2019-05-16 12:03:54 +02:00
Paul Batchelor
516e031f67
Add static library
2019-05-15 22:38:18 -04:00
Calvin Rose
3331f2fa02
Update soname.
2019-05-15 11:39:18 -04:00
Calvin Rose
dd1a199ebd
Don't copy headers to JANET_PATH
2019-05-15 10:53:26 -04:00
Calvin Rose
f35b5765d6
Set module/*headerpath* during bootstrap
...
Cook also uses module/*headerpath* for finding headers
rather than using module/*syspath*.
2019-05-15 10:49:16 -04:00
Calvin Rose
8359044408
Don't symlink into $(PREFIX)/lib/janet
...
Using the AUR installer, this seems to result in
symlinks into the cache, which may be an issue and looks
strange. Instead, we can just copy the file once for
the cook module.
2019-05-15 08:46:12 -04:00
Calvin Rose
9f3dde3cc7
Update meson build for #98
2019-05-15 08:20:39 -04:00
Calvin Rose
ad0f7d9b0d
Merge branch 'master' of github.com:janet-lang/janet
2019-05-15 00:05:00 -04:00
Calvin Rose
f647ac5631
Address #95
...
A very minimal code change made partition take strings.
2019-05-15 00:04:25 -04:00
Calvin Rose
e4c5eb4c76
Merge pull request #97 from Crestwave/haiku
...
Add support for Haiku
2019-05-14 21:53:40 -04:00
Crestwave
dc9fc9c3f5
Add 32-bit Haiku build instructions
2019-05-15 01:27:55 +00:00
Crestwave
3b6a51df24
Add support for Haiku
2019-05-15 01:03:17 +00:00
Calvin Rose
f2313b9959
file/read on eof will return nil.
...
Also add documentation for :exit in import.
Address issue #91
Partially adress issue #93
2019-05-14 11:05:19 -04:00
Calvin Rose
805b3bbb88
Numbers require at least 1 significant digit.
...
Address issue #96
2019-05-14 08:44:38 -04:00
Calvin Rose
232ea22dc5
Add string/triml, string/trimr, and string/trim.
2019-05-10 16:09:49 -04:00
Calvin Rose
3388acd2db
Add dofile function.
...
Abstracts the actually running of a file from
the require function, so a file can be easily
evaluated without being cached.
2019-05-10 10:19:51 -04:00
Calvin Rose
52ab9fb475
Update cook tool and headers.
2019-05-09 17:37:46 -04:00
Calvin Rose
c7dc3611bc
Prepare for 0.5.0 release
2019-05-09 13:45:19 -04:00
Calvin Rose
7a313f6038
Update CHANGELOG, string/has-suffix?|prefix?
...
string/has-suffix? and string/has-prefix? can now accept
all byte data types for both arguments.
2019-05-09 13:42:14 -04:00
Calvin Rose
bbcfaf1289
Fix use after free bug in buffer/format when printing self.
2019-05-08 15:25:25 -04:00
Calvin Rose
bfb0cb331e
No temporary buffer in PR #87
2019-05-08 10:53:23 -04:00
Andrew Chambers
1759252071
Fix use after free in buffer/push-string.
2019-05-08 10:49:25 -04:00
Calvin Rose
fff60b053b
Use memmove in buffer/blit when needed.
2019-05-08 09:29:21 -04:00
Calvin Rose
65ac17986a
Address similar issue to #86
...
buffer/blit could trigger a use after free if a buffer is
blitted with itself and modifies its length.
2019-05-08 08:55:43 -04:00
Calvin Rose
ff720f1320
Expose current fiber via janet_current_fiber().
2019-05-04 19:07:04 -04:00
Calvin Rose
5a28d8d1fa
fix cook error.
2019-05-04 18:55:36 -04:00
Calvin Rose
ea25766374
fix cook.
2019-05-04 17:59:48 -04:00
Calvin Rose
88b8418253
Add simple tracing functionality to VM.
...
Also disable debugger for normal errors.
2019-05-04 15:05:00 -04:00
Calvin Rose
4fa1b28cad
Update changelog (string module)
...
Also run `make format` on code.
2019-05-04 10:11:52 -04:00
Andrew Chambers
c70d59edee
Add string/has-prefix? and string/has-suffix?.
2019-05-04 10:05:58 -04:00
Calvin Rose
5694998382
Update changelog
2019-05-02 18:05:06 -04:00
Calvin Rose
1cfc7b3b0d
Add preliminary debugger to default repl.
...
Also upddate colors, and fix formatting.
2019-05-02 17:11:30 -04:00
Calvin Rose
03e3ecb0a1
Update cook tool.
2019-05-02 13:10:14 -04:00
Calvin Rose
f8935b0692
test your links before committing
2019-05-01 11:06:20 -04:00
Calvin Rose
702b50b7a1
Indicate that the source is on sourcehut as well.
2019-05-01 11:04:41 -04:00
Calvin Rose
e7baa2ae3d
Update broken links in README.md
2019-04-29 18:35:09 -04:00
Calvin Rose
bfb354b469
Fix 32 bit platforms.
2019-04-28 16:22:24 -04:00
Calvin Rose
3c0f12ea4d
Add library installation during make install
...
Got removed a while ago for some reason, I forgot why.
2019-04-28 16:02:05 -04:00
Calvin Rose
25a93ac4a6
Fix loop :iterate.
2019-04-28 00:34:32 -04:00
Calvin Rose
0bad523913
Fix wrap functions.
2019-04-27 19:47:32 -04:00
Calvin Rose
5b36199aea
Fix MSVC warning.
2019-04-27 16:50:40 -04:00
Calvin Rose
a474a640be
Merge branch 'master' of github.com:janet-lang/janet
2019-04-27 15:48:28 -04:00
Calvin Rose
f10028d41a
Add function versions of macro API bindings.
...
This should help address #81 . Also hide janet_exit
and janet_assert, as they are really meant for internal usage.
I have not verified that this yet actually works with Rust's
bindgen.
2019-04-27 15:47:12 -04:00
Michael Forney
eb4684a64d
Remove spurious ';' after function definitions
...
The function definition is complete after the last '}', so the ';' is
a separate empty declaration, which is not actually valid in C99.
2019-04-25 16:24:27 -04:00
Calvin Rose
73b81e0253
Fix os/date doc typo.
2019-04-23 22:43:51 -04:00
Calvin Rose
027f106a56
Update CHANGELOG.md
...
Indicate support for longstrings with non semantic newlines.
2019-04-21 15:45:55 -04:00
Calvin Rose
20e94adb61
Update documentation for update function.
2019-04-21 15:44:03 -04:00
Calvin Rose
9100794cea
Drop leading and trailing newlines in longstrings.
...
Long, heredoc style strings can now have
a non semantic leading newline character. This makes it
easier to define large columns of text.
2019-04-21 13:34:41 -04:00
Calvin Rose
4ddf90e301
Make nanboxing on 64 bit platforms not the default.
...
64 bit nanboxing is kind of sketchy on non x86 architectures.
32 bit architectures seem to work better as the 32 implementation
doesn't rely on the format of the address space and layout of
double's in memory.
2019-04-18 12:52:28 -04:00
Calvin Rose
d1eca1cf52
Add all-dynamics to list current dynamic bindings.
2019-04-17 09:47:33 -04:00
Calvin Rose
7918add47d
Allow dynamically setting output for printers
...
Some functions like print and debug/stacktrace print
to a file, usually stdout. This file can now be optionally set
via a dynamic variable.
2019-04-16 21:44:19 -04:00
Calvin Rose
513d551df6
Move print in source code to io module.
...
print now reads the dynamic binding for :out
when choosing where to write to.
2019-04-16 19:10:01 -04:00
Calvin Rose
ddaa5e34e6
Fix web versinon repl colors.
2019-04-16 16:06:52 -04:00
Calvin Rose
208eb7520a
Update CHANGELOG.md and bump version.
2019-04-16 15:48:53 -04:00
Calvin Rose
2d7df6b78e
Many changes for adding dynamic (fiber-level) scope.
...
- Allow passing a table to fibers, which make fiber level scope easier.
- Add fiber/getenv, fiber/setenv, dyn, and setdyn
- Remove meta, *env*, and *doc-width*
- Some functions changed dignatures, and no longer take an env
2019-04-16 15:41:45 -04:00
Calvin Rose
7527142549
Prepare for 0.4.1 release
2019-04-14 11:42:41 -04:00
Calvin Rose
4e6193b67e
Fix parse insert bug.
2019-04-13 14:38:30 -04:00
Calvin Rose
4ded5e10a2
Update cook tool to export shell function.
2019-04-12 13:48:45 -04:00
Calvin Rose
1596511175
Fix undefined behavior bug with errors.
...
janet_vm_return_reg should only be set when janet_continue
is called. Otherwise, a panic may dump it's error message in
the wrong place, resulting in undefined behavior (often showing
the last return value or worse, segfaulting).
2019-04-10 23:29:40 -04:00
Calvin Rose
d514eab627
Add regression test for #78
2019-04-09 09:14:40 -04:00
Calvin Rose
5287007cd6
Fix typo in comment.
2019-04-09 09:05:47 -04:00
Calvin Rose
e5a56174e2
Switch fexists to use os/stat when available.
...
When os/stat is not available, we first
try to read one byte from the file before
saying it is good. If that fails, it is not
a file that we can read from so it counts as not found.
2019-04-09 09:01:52 -04:00
Calvin Rose
6c68c7a35f
Address issue #78
...
(file/open path :r+) should help. On windows, result
is unknown as of now.
2019-04-09 08:38:56 -04:00
Calvin Rose
675c1030fd
Fix error message on an arity mismatch.
...
janet_call had a bad janet_printf.
2019-04-07 23:53:50 -04:00
Calvin Rose
ed65d04b81
Fix peg bug with arguments.
...
By holding on a reference to argv for a long time, we
may trigger a use after free bug if the stack is resized. In
janet c function, argv is only vvalid up until the next stack operation
on the fiber. We could say that this is the dynamic lifetime of
argv.
To fix this, we copy extra arguments into a tuple, which is properly
garbage collected.
2019-04-07 15:14:54 -04:00
Calvin Rose
fa1c5c85b5
Remove no-capture mode in pegs.
...
Some peg grammars could not capture values based on their position in a
larger grammar. This is a design limitation inheritted from LPeg, but no
longer needed as the replace mode is superseded by the accumulator mode,
which is more general if slightly harder to use.
2019-04-06 11:38:00 -04:00
Calvin Rose
59c69e6896
Update cook cleaning up directory.
2019-04-05 20:01:03 -04:00
Calvin Rose
ee35786c8f
semicolon
2019-04-05 14:45:45 -04:00
Calvin Rose
ec6e2cfd62
os/stat returns nil if file does not exist.
2019-04-05 14:45:04 -04:00
Calvin Rose
7d48e7fd1f
Remove some extra search paths.
2019-04-01 14:07:13 -04:00
Calvin Rose
0063e3a69d
Fix module path typo.
2019-04-01 13:48:30 -04:00
Calvin Rose
cd6c009c03
Reformat and use new os/stat capabilities.
2019-04-01 11:21:45 -04:00
Calvin Rose
b15cf193a0
Update os/stat
...
os/stat can now take a keyword as the second argument
to avoid creating a table if one only wants on value
from stat.
2019-04-01 11:11:15 -04:00
Calvin Rose
429dc70374
Update cook tool to use os/stat for file age.
2019-03-31 21:35:44 -04:00
Calvin Rose
e50e77e5f9
Add build instructions back to README.md
2019-03-31 20:24:56 -04:00
Calvin Rose
2fdd6aa0f7
<br>
2019-03-31 18:15:28 -04:00
Calvin Rose
cc55364b21
Remove some more info from README.
2019-03-31 18:13:59 -04:00
Calvin Rose
71526d1d9b
Update README.md
...
Redirect to janet-lang.org to avoid repeating
prose or leaving outdated prose.
2019-03-31 18:11:29 -04:00
Calvin Rose
e239980da7
Quasiquoting bracketed tuples.
2019-03-31 14:15:26 -04:00
Calvin Rose
1709bce77e
Add os/rm and os/rmdir
2019-03-30 15:39:24 -04:00
Calvin Rose
d6ba2de888
Fix os/dir on windows.
2019-03-30 13:46:52 -04:00
Calvin Rose
61c0a4bc87
Windows has different defines for file modes.
2019-03-30 13:09:35 -04:00
Calvin Rose
8af28d3fa5
Windows bump.
2019-03-30 13:06:24 -04:00
Calvin Rose
970923d0e5
Update os/dir for windows.
2019-03-30 13:01:57 -04:00
Calvin Rose
5d7dc0a57c
Add os/dir support for linux/posix.
2019-03-30 12:36:27 -04:00
Calvin Rose
c5090606a4
Add os/stat function.
...
Allows getting more information about files. This
is really useful for writing software that needs to inspect
the file system (like a static site generator). We still need
a way to iterate directories though.
2019-03-30 12:06:14 -04:00
Calvin Rose
bf2d9ae634
Mess with includes for os.c
2019-03-28 23:34:24 -04:00
Calvin Rose
871a58e1db
Remove extreneous source reference on sr.ht build
2019-03-28 23:25:11 -04:00
Calvin Rose
53c7f2eedd
Add more os module functions.
2019-03-28 23:23:58 -04:00
Calvin Rose
bfd3845218
Fix cfunction debugging issue
...
Cfunction were not describing themselves very well, as
their names were not be added to the registry.
2019-03-27 00:14:51 -04:00
J.-F. Cap
22d75d017f
fix AbstractType get/set error message
2019-03-26 21:47:12 -04:00
Calvin Rose
37e6ea0a23
Update changelog
2019-03-24 15:11:00 -04:00
Calvin Rose
10769f6f2e
Appveyor build issues
...
Revert some externeous changes in build_win.bat to
see what happens.
2019-03-24 15:04:47 -04:00
Calvin Rose
082639319e
Add colors to repl and string/format.
...
This makes the repl look nicer using ANSI
color codes, which are widely supported. The codes
can also be turned off via the -m flag.
2019-03-24 15:00:22 -04:00
Calvin Rose
f20ad34c76
Add instructions for Scoop installation.
2019-03-23 23:27:13 -04:00
Calvin Rose
c045eadefa
Update changelog.
2019-03-23 22:16:12 -04:00
Calvin Rose
e2337b2ec4
Update build_win.bat to handle new amalg script.
2019-03-23 19:59:54 -04:00
Calvin Rose
90c5d12613
Add include_directories to meson
...
Before, a local build would only work if system
headers were installed.
2019-03-23 15:02:59 -04:00
Calvin Rose
6016662807
Ignore eclipse files.
2019-03-23 14:05:38 -04:00
Calvin Rose
2c9195b507
More updates to meson
...
Redo amalg script so we can more easily run
it from Meson.
2019-03-23 13:50:50 -04:00
Calvin Rose
b47c48b59a
Add Meson build setup to README.md
2019-03-22 18:47:16 -04:00
Calvin Rose
98758b68ab
Boot executable invocation has changed.
2019-03-22 18:37:46 -04:00
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
1e299632e4
Fix example.
2019-03-21 14:32:08 -04:00
Calvin Rose
94a2084723
Add tostring method for abstract types.
...
This lets abstract types customize how they
print for debugging.
2019-03-19 13:36:26 -04:00
Calvin Rose
22e24fb47b
Remove some dead code in bigint.
2019-03-19 12:30:44 -04:00
Calvin Rose
93f0d5f626
Quiet appveyor warnings.
2019-03-18 22:00:20 -04:00
Calvin Rose
bad040665f
Renamed bigint -> inttypes / int
...
A lot of refactoring larger integer types. Fix a number
of casting errors, but mostly rename things. Also try to
limit use of template-like macros as they bloat the binary
if not used in moderation. We were able to reduce the size of
typed array code as well by using a single view types.
2019-03-18 18:36:53 -07:00
J.-F. Cap
a07d76b264
use custom string to bigint reader in place of strtol
...
for better compatibility with default janet number reader
2019-03-18 18:36:53 -07:00
J.-F. Cap
1db6d0e0bc
Trap INT64_MIN / -1 exception
2019-03-18 18:36:53 -07:00
J.-F. Cap
34849ea7b3
added (u)int64 typed arrays back
2019-03-18 18:36:53 -07:00
J.-F. Cap
5a9f7c3a85
added in place op! operators
2019-03-18 18:36:53 -07:00
J.-F. Cap
15c6300608
added bitwise operators and guard for division by zero
2019-03-18 18:36:53 -07:00
J.-F. Cap
c6a4485623
code cleanup
2019-03-18 18:36:53 -07:00
J.-F. Cap
090c6ac975
added marshal/unmarshal
2019-03-18 18:36:53 -07:00
J.-F. Cap
319575c864
bigint operators and some tests
2019-03-18 18:36:53 -07:00
J.-F. Cap
42a0af3b1b
bigint pretty printing
2019-03-18 18:36:53 -07:00
J.-F. Cap
9bc899ccf2
added core/bigint.c
2019-03-18 18:36:53 -07:00
J.-F. Cap
d29e3a1199
first experiment with bigint
2019-03-18 18:36:53 -07:00
rncar
41bb6a9833
Added a getter to the new pointer type.
2019-03-14 14:21:44 -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
31e2415bbb
Fix some indentation problems.
2019-03-12 20:56:16 -04:00
Calvin Rose
2a5234b390
Properly bail on parse and compile errors
...
If -p flag is not set, we should bail on all three kinds
of errors, not just runtime errors. This includes
parse and compile errors. Before, parse and compile errors
were not properly affected by the :exit parameter to require, which
in turn caused scripts to not bail on parse or compile errors.
2019-03-12 20:41:17 -04:00
Calvin Rose
ad5b0a371e
Optional param in bars.janet
2019-03-12 11:35:27 -04:00
Calvin Rose
ba4dd9b5bb
Fix splice -> unquote splice
2019-03-12 11:16:27 -04:00
Calvin Rose
d42bdf2443
Add proper optional arguments.
...
Use &opt in the parameter list to get optional arguments.
2019-03-12 00:23:14 -04:00
Calvin Rose
a246877c1e
Remove iterate-template from exported core symbols.
2019-03-11 01:01:59 -04:00
Calvin Rose
98e68a5cb4
Update special form lists to include break.
2019-03-11 00:58:26 -04:00
Calvin Rose
e12aace02c
Update web build.
2019-03-10 23:06:10 -04:00
Calvin Rose
51a9c7104d
Hide each-template
2019-03-10 13:31:42 -04:00
Quan Nguyen
75dc08ff21
Fix nil error on drop-until fn
2019-03-10 12:39:55 -04:00
Calvin Rose
6fa60820a3
Merge pull request #64 from quan-nh/master
...
Correct doc for drop-until fn
2019-03-09 23:47:00 -05:00
Quan Nguyen
609a9621af
Correct doc for drop-until fn
2019-03-10 11:36:27 +07:00
Calvin Rose
8ba1121161
Add early returns via break.
...
Inside a while loop, the argument to
break does nothing as while loops always
return nil.
2019-03-09 22:01:10 -05:00
Calvin Rose
9a080197e7
Switch some instances of loop in core
...
Several instances of loop in the core library are
switched over to the simpler each and for macros.
2019-03-09 21:01:47 -05:00
Calvin Rose
e65375277a
Update the loop macro.
...
Using the new break special form, the loop
macro was cleaned up. Loop bindings are also
able to be used immediately after declaration, so
forms like (loop [x :range [0 10] :while (< x 5)] (print x)) will
now compile correctly.
2019-03-09 20:47:07 -05:00
Calvin Rose
4a111b38b1
Add break special.
...
The break special form can break out of both loops
and functions with an early (nil) return. Mainly useful
for generated code in macros, and should probably be discouraged
in user written code.
2019-03-09 17:15:50 -05:00
Calvin Rose
a363dce943
Allow proper overriding of cfunctions in the core.
...
Allow overriding functions in the core libray to provide better
functionality on startup. Used to include our getline function in
the repl but use a simpler version in the core library.
2019-03-08 11:39:18 -05:00
Calvin Rose
687a3c91f5
Add array/remove and update CHANGELOG.
2019-03-08 10:24:21 -05:00
Calvin Rose
951aa0d8cd
Add typed array code to amalg.
2019-03-08 10:02:09 -05:00
Calvin Rose
a61b59be87
Mark release for 0.4.0
2019-03-08 00:56:19 -05:00
Calvin Rose
91f3c17a5b
Update CHANGELOG.md
2019-03-08 00:54:53 -05:00
Calvin Rose
0382dc976b
More code to better integrate with size_t
...
Typed arrays use proper size_t support in more
places now.
2019-03-08 00:44:26 -05:00
Calvin Rose
69dcab2b55
Silence some casting size_t to double errors.
2019-03-07 22:44:17 -05:00
Calvin Rose
c4f6f1d256
janet_marshal_bytes, janet_unmarshal_bytes size_t
...
Instead of a int32_t as the length argument, use
size_t to match up better with typearray.c and probably
most idiomatic C libraries.
Janet uses int32_t for length internally for consistency, space
efficiency, ability to fit int32_t in double, and various
other reasons.
2019-03-07 22:23:46 -05:00
Calvin Rose
b57e530553
Some more small changes to typedarray.c.
...
We want to compile janet with MSVC warning free.
2019-03-07 22:12:06 -05:00
Calvin Rose
021b71ad62
Allow proper serialization of size_t in marsh.c
...
Typed arrays used size_t in serialization: C APIs will
also often use it, so it makes sense to add first class support
for it rather than assume it will will fint into an integer.
These changes should quiet some visual studio warnings.
Also make some spacing more consistent.
2019-03-07 22:08:44 -05:00
Calvin Rose
0ee2ff1b05
Add :fiber-flags options to run-context.
...
This also improves eval-string error behavior.
2019-03-07 18:55:19 -05:00
Calvin Rose
adaa014d7c
No div by 0 - will fix later.
2019-03-07 16:20:36 -05:00
Calvin Rose
dc9dc98e80
Update for issue #62
2019-03-07 16:17:18 -05:00
Calvin Rose
4a2d4f52b5
Allow inverted ranges with negative steps.
2019-03-04 15:44:56 -05: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
b07adce2b9
Fix some issues found with -fsanitize=undefined
...
Leave in issues with calling memcpy with size=0. If these
become a problem, will probably add a janet_memcpy as memcpy
is used so much in the code without 0 checks.
2019-03-04 11:17:34 -05:00
Calvin Rose
624be87c97
Add test for :down verb.
2019-03-03 23:55:38 -05:00
Calvin Rose
1b9591b5e3
Add :down verb to loop macro.
...
Also remove with-idemp from core, which was both confusing
(to the author) and not generally useful.
2019-03-03 23:52:20 -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
9ed1c35d30
Add sudo permissions to freebsd build.
...
'sudo gmake install'.
2019-03-03 15:21:40 -05:00
Calvin Rose
6158ec0ce5
Add -undefined dynamic_lookup on mac.
2019-03-03 15:18:17 -05:00
Calvin Rose
009bed158b
Travis add sudo.
2019-03-03 14:54:01 -05:00
Calvin Rose
402dc2a767
Test installation on sourcehut free bsd as well.
2019-03-03 14:52:11 -05:00
Calvin Rose
b5eb888af6
Add test-install to travis CI.
...
Users have been reporting installation trouble on
platforms like OSX and BSDs, so we need to make sure
that the cook module is more portable.
2019-03-03 14:50: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
8cc2c964c1
Add :export option to import
...
Also allow NULL ptr to janet_getfile for flags.
2019-03-02 11:46:31 -05:00
Calvin Rose
efbb704247
Merge pull request #56 from jfcap/register-corefile
...
Register core/file abstract type
2019-03-02 11:40:05 -05:00
J.-F. Cap
7fef5be3af
Merge remote-tracking branch 'upstream/master' into register-corefile
2019-03-02 15:38:31 +01:00
J.-F. Cap
1753f8bc18
Added janet_getfile C API function and revert core/file AT registering
2019-03-02 15:36:34 +01:00
Calvin Rose
235019ec39
Merge branch 'master' of github.com:janet-lang/janet
2019-02-27 16:30:04 -05:00
Calvin Rose
7d17159ae4
Make JANET_STACK_MAX configurable option.
...
Also double default value from 8192 to 16384
2019-02-27 16:28:43 -05:00
Calvin Rose
56d7d4ef39
Merge pull request #57 from tekknolagi/patch-1
...
Fix typo in README
2019-02-27 15:43:29 -05:00
Max Bernstein
77c379faa8
Fix typo in README
2019-02-27 11:39:00 -08:00
Calvin Rose
3014a59c3e
Fix parse error with comment on last line.
...
If a comment is not followed by a newline character, then
we got a false parse error. This is because the comment
state is left on the parse stack when we finished parsing, and
since the parse stack was not emtpy, we assumed an error.
This commit adds the parser/eof function, which lets the parser know
that an eof was reached. Before, we simply added a fake newline
character in some cases, and in the case of reading a file, we did
nothing, hence the bug.
2019-02-27 13:59:25 -05:00
J.-F. Cap
d70049dbb1
Register core/file abstract type
2019-02-27 10:54:10 +01:00
Calvin Rose
4713219317
Update whitespace and some doc strings.
2019-02-25 23:48:04 -05:00
Calvin Rose
36f92db61e
Merge pull request #55 from jfcap/typed-array
...
Binary Typed Array for Janet
2019-02-25 23:40:19 -05:00
J.-F. Cap
59393fc73b
Added some guards in ta_view unmarshalling
...
to protect against bad marshalled data.
2019-02-26 02:28:24 +01:00
J.-F. Cap
3eb44f1f79
Fix buffer allocation
2019-02-26 00:21:03 +01:00
J.-F. Cap
fb5119bf43
Added some tests (suite 5)
2019-02-25 18:49:04 +01:00
J.-F. Cap
febfefa4b2
Added tarray/slice and fix buffer size
2019-02-25 02:21:10 +01:00
J.-F. Cap
632b920e97
fix C format
2019-02-24 22:36:35 +01:00
J.-F. Cap
c81bf42f6b
Merge remote-tracking branch 'upstream/master' into typed-array-work
2019-02-24 22:25:33 +01:00
J.-F. Cap
4147c0ce1f
Added typed array C API
2019-02-24 22:24:18 +01:00
Calvin Rose
602e30a421
Add "\v" string esca[e sequence.
2019-02-24 14:46:16 -05:00
Calvin Rose
92a5567b4a
Remove some makefile crust from older scripts.
2019-02-24 14:25:04 -05:00
Calvin Rose
9495be328c
Be more careful about data alignment
...
Alingment issues can happen anywhere we do casting
on pointer types. Be more careful in the peg module about
ensuring that pointers are aligned well.
2019-02-24 13:43:38 -05:00
J.-F. Cap
0eae75a5c2
added MARSH_EOS check
2019-02-24 18:45:14 +01:00
J.-F. Cap
8e0d7f2539
Merge remote-tracking branch 'upstream/master' into typed-array
2019-02-24 03:06:26 +01:00
J.-F. Cap
9c1c7fb384
Remove AT id use name as tag
2019-02-24 02:51:34 +01:00
J.-F. Cap
af48912f11
Simplify Abstract type introspection
2019-02-24 02:02:54 +01:00
Calvin Rose
327d2ed849
Remove extra "compile error: " string.
2019-02-23 15:38:49 -05:00
J.-F. Cap
db64a682be
fix incompatibilities with upstream/master changes in marsh.c
2019-02-23 17:54:09 +01:00
J.-F. Cap
4d3c655058
Merge remote-tracking branch 'upstream/master' into typed-array
2019-02-23 17:36:38 +01:00
J.-F. Cap
2becebce92
fix C source format
2019-02-23 17:13:43 +01:00
J.-F. Cap
0cc6c6ff33
implement typed array marshal/unmarshal and
...
generic marshaling capabilities to abstract types.
2019-02-23 16:58:47 +01:00
Calvin Rose
115bc6140b
Fix NULL ptr issue.
2019-02-22 17:12:34 -05:00
Calvin Rose
b14fcb068b
Update janet_pcall interface
...
The programmer can now not only get the used fiber, but
provide a fiber to reuse if many calls are made in succession.
2019-02-22 17:10:24 -05:00
Calvin Rose
2ea28f29b0
Shut up some warnings from clang's static analyzer.
...
Not particularly useful actually, by and large false positives.
2019-02-22 12:10:27 -05:00
J.-F. Cap
7cb1c7cef2
added ta marshalling
2019-02-22 17:41:27 +01:00
Calvin Rose
9d60e8b343
Address issue #54
...
Bug when marshalling function environments that were still on a fiber
stack.
2019-02-22 10:16:32 -05:00
Calvin Rose
340a6c4d8d
Update marsh.c to use janet_panic for errors.
...
Before, we used a local setjmp/longjmp for error handling.
Using janet_panic means errors can be more easily expressive and
code can be smaller.
However, we still need to make vector memory get gc collected, as
panics can cause the runtime to skip janet_v_frees.
2019-02-22 10:12:25 -05:00
J.-F. Cap
e5a4c6fc2b
Merge remote-tracking branch 'upstream/master' into ta-with-marshal
2019-02-22 15:58:47 +01:00
J.-F. Cap
db9ac6dba5
marshal buffer ok
2019-02-22 15:57:48 +01:00
J.-F. Cap
d570aae817
Merge branch 'ta-marshal' into ta-with-marshal
2019-02-22 11:13:12 +01:00
J.-F. Cap
59e4b15fad
added some abstract type instrospection capabilities
...
registering abstract type in vm_register table
2019-02-22 10:54:22 +01:00
Calvin Rose
b3401381fa
Update CHANGELOG.md
2019-02-21 20:40:13 -05:00
Calvin Rose
beed839d12
Remove the callable? predicate.
...
Many times are callable now in some circumstances, so
the predicate is not that useful.
2019-02-21 20:38:22 -05:00
Calvin Rose
f4908ebc41
Update issue 53 regression test.
...
Some tests did not call assert so did not show up on report.
2019-02-21 19:19:47 -05:00
Calvin Rose
1147482e62
Address #53 - marshalling fiber strangeness
...
The unmarshaller was not tracking fibers in references.
2019-02-21 19:11:28 -05:00
J.-F. Cap
4d07176f1c
work in progress
2019-02-21 20:52:39 +01:00
Calvin Rose
8c67bf82f6
Remove restriction on variable length arrays.
2019-02-21 11:54:06 -05:00
Calvin Rose
0823eb7327
Change order of directory creation.
2019-02-21 11:50:48 -05:00
Calvin Rose
8cff3dd2c3
Fix one more warning.
2019-02-21 11:46:39 -05:00
Calvin Rose
df550efb6b
Fix MSVC compiler warnings.
2019-02-21 11:34:04 -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
811b1825cb
Remove tuple/append and tuple/prepend.
...
Use the splice special instead.
2019-02-20 21:08:54 -05:00
J.-F. Cap
2ca252bc0e
Merge remote-tracking branch 'upstream/master' into typed-array
2019-02-21 01:43:22 +01:00
J.-F. Cap
6054858359
fix C format
2019-02-21 00:20:54 +01:00
J.-F. Cap
1d50fd9485
First exeperiments with JS style Binary Typed Arrays
2019-02-21 00:15:48 +01:00
Calvin Rose
a982f351d7
Address #50
...
Issues with range when called with 3 arguments.
2019-02-20 12:07:20 -05:00
Calvin Rose
27a274b686
Update some corelib functions.
...
Some corelib functions that were created via janet_quickasm
were missing some flags for arity checking, so they were marked as
accepting any arity.
2019-02-19 23:41:16 -05:00
Calvin Rose
cb002e7b84
Update generating tools to produce stylish code.
...
Really small whitespace changes in generated code.
2019-02-19 21:28:22 -05:00
Calvin Rose
c022a1cf1a
Add astyle guidelines to the contributing document.
2019-02-19 20:59:34 -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
7c19ed8a48
Merge pull request #49 from boardwalk/fix_indentation
...
Fix indentation, converting some tabs to spaces.
2019-02-19 19:08:18 -05:00
Dan Skorupski
ef5f80ad38
Fix indentation, converting some tabs to spaces.
2019-02-19 17:54:13 -06: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
b61c9eb991
Update build script for windows.
2019-02-18 20:15:20 -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
Calvin Rose
9480ad24cc
Merge pull request #46 from tssva/remove_mandb
...
Don't call mandb during install
2019-02-18 19:01:22 -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
8d9a88e759
Add JANET_PATH back in.
2019-02-18 15:31:15 -05:00
Calvin Rose
732de8f88d
Update man page.
2019-02-18 15:26:53 -05:00
Calvin Rose
6af5800d21
Add -m option to command line
...
The -m option set the default system path for finding libraries
for that invocation of Janet.
2019-02-18 15:11:59 -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
Calvin Rose
07912f5ab2
Update comments in strtod.c
2019-02-17 21:44:58 -05:00
Calvin Rose
ffc14f6019
Oops, peg option issue fixed.
2019-02-17 21:25:30 -05:00
Calvin Rose
1e70c97ef0
Allow enabling/disabling of peg module.
...
Use compiler define -DJANET_NO_PEG to turn off the peg module.
2019-02-17 21:22:03 -05:00
Calvin Rose
54227ebff1
Update README.md
2019-02-17 14:00:15 -05:00
Calvin Rose
33087fe9de
Update game of life example.
2019-02-17 11:20:24 -05:00
Calvin Rose
6d5ff43de7
Make amalg build cleaner.
...
Don't pull in a global header <janet/janet.h> unless we need to.
2019-02-16 23:33:24 -05:00
Calvin Rose
c715912ea3
Update changelog.
2019-02-16 21:57:47 -05:00
Calvin Rose
3b6ff3c09a
Add -c option to main client
...
This allows compile janet source modules to images.
2019-02-16 21:55:53 -05:00
Calvin Rose
efab484fff
Remove some more extra text in core api doc.
2019-02-16 18:39:44 -05:00
Calvin Rose
4ba7fbb8bb
Remove extra 'at' in generated doc.
2019-02-16 18:38:34 -05:00
Calvin Rose
53cc7ebd29
Fix gendoc.
2019-02-16 18:37:15 -05:00
Calvin Rose
c6f032340a
Update CHANGELOG.md
2019-02-16 17:55:08 -05:00
Calvin Rose
0ce5acec89
Begin cleaning up string API.
...
Remove string/pretty in favor of buffer/format and string/format. Also
drop string/number, which is more verbose and less flexible than
string/format.
2019-02-16 15:12:34 -05:00
Calvin Rose
44e31cac5d
Merge pull request #40 from jfcap/string-format
...
string/format
2019-02-16 15:02:47 -05:00
Calvin Rose
029394db31
Add buffer/format as well as string/format.
...
buffer/format uses the old string/format behavior. `string/format` no
longer requires a buffer, and returns a string.
2019-02-16 13:59:38 -05:00
Calvin Rose
00020ba8ab
Whitspace and style changes.
2019-02-16 13:40:51 -05:00
Calvin Rose
1f91ee30fe
Make require simpler and module/find more useful.
...
This replaces a lot of the functionality in require by moving
it to module/find. module/native-paths and module/image-paths are also
merged into the one module/paths to make it easier to extend. This of
course breaks some of the less important API - module/native-paths no
longer exists.
2019-02-16 13:21:29 -05:00
J.-F. Cap
0f0c415bcf
Adde some tests for string/format
2019-02-16 16:28:10 +01:00
J.-F. Cap
a6f022a73d
Added string/format function (snprintf like)
2019-02-16 03:29:04 +01:00
Calvin Rose
ec02d55145
Update README to show sourcehut build.
2019-02-15 19:58:25 -05:00
Calvin Rose
cb1a773ca8
Update sr.ht build.
2019-02-15 19:43:30 -05:00
Calvin Rose
0dc1217d69
Merge pull request #36 from charles-l/master
...
Update makefile for OpenBSD
2019-02-15 19:07:10 -05:00
charles
06f38d3380
Update makefile for OpenBSD
2019-02-15 19:02:14 -05:00
Calvin Rose
2e1ec3700d
Fix compilier warning on -Os, gcc.
2019-02-15 19:01:47 -05:00
Calvin Rose
9e6b1d1b16
Add images.
...
Images are precompiled libraries. They can be created programmatically
via the `write-image` function and then loaded with `require` or
`import`. They can also be run by the command line tool - you must
specify the path to the image without the .jimage extension.
2019-02-15 18:56:41 -05:00
Calvin Rose
bdf03b4706
Fix unmarshalling integers directly, not through readint.
2019-02-15 14:01:32 -05:00
Calvin Rose
4d96ba3ba9
Merge branch 'master' of github.com:janet-lang/janet
2019-02-15 13:21:00 -05:00
Calvin Rose
f161002390
Address #35
2019-02-15 13:20:20 -05:00
Calvin Rose
eb576d6caf
Merge pull request #33 from jfcap/master
...
Fix buffer (and string) used as callee for indexing.
2019-02-12 20:21:44 -05:00
J.-F. Cap
e0d26629e0
Fix buffer (and string) used as callee for indexing.
2019-02-12 23:40:59 +01:00
Calvin Rose
17783c3c3e
Add tuple/brackets
...
Fix macro expansion via macex for bracketed tuples.
2019-02-11 18:37:59 -05:00
Calvin Rose
c64e92a5de
Add some unused math functions.
...
Several functions from the C math library were
forgotten in the math module. These have been
added to the core library.
2019-02-10 12:03:22 -05:00
Calvin Rose
291c13bafc
Merge pull request #32 from jfcap/master
...
Added math/abs binding
2019-02-10 11:57:28 -05:00
J.-F. Cap
c6672e62ac
Added math/abs binding
2019-02-10 14:06:10 +01:00
Calvin Rose
eb9bd38256
Merge branch 'master' of github.com:janet-lang/janet
2019-02-09 12:24:20 -05:00
Calvin Rose
3ac6b2335a
Merge pull request #31 from jfcap/crazy-brackets
...
Crazy brackets
2019-02-09 12:23:41 -05:00
Calvin Rose
c6edf03ae8
Fix some code style, add tuple/type function.
...
We need to be able to detect tuple type from janet code, otherwise
tuples will contain hidden state. The tuple/type function is able
to detect the flags in the tuple so the programmer can access them
if needed.
2019-02-09 12:21:11 -05:00
J.-F. Cap
5020a1bae9
Added marshalling code to save tuple_flag
2019-02-09 17:00:35 +01:00
J.-F. Cap
86ba69c16b
Merge remote-tracking branch 'upstream/master' into crazy-brackets
2019-02-08 23:45:55 +01:00
J.-F. Cap
5f70024f87
Experimental stuffs with bracket syntax
2019-02-08 21:49:28 +01:00
Calvin Rose
9ff819a4a1
Fix build_win.bat
2019-02-08 15:02:36 -05:00
Calvin Rose
1244e2e93b
Update changelog
2019-02-08 13:45:04 -05:00
Calvin Rose
b61d1a0a0e
Try to update windows build for core image.
2019-02-08 13:37:14 -05:00
Calvin Rose
89ef4eb634
Update emscripten build.
2019-02-08 11:04:33 -05:00
Calvin Rose
114a45306d
Add more specialization for marshaling integers.
...
This decreases the core image size by about 16.5k.
2019-02-08 10:14:36 -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
J.-F. Cap
8ab60e475a
typo in janet_indexed_view
...
(no consequence but look strange)
2019-02-08 01:10:07 +01:00
Calvin Rose
6321c30cb1
Add methods for file io.
2019-02-06 17:58:27 -05:00
Calvin Rose
8343c9edd1
Update example to use API.
2019-02-05 19:49:10 -05:00
Calvin Rose
74e1a3273f
Add method syntax to parser.
2019-02-05 19:43:41 -05:00
Calvin Rose
1394dbbd57
Update license to include contributors.
...
Use 4 spaces for indentation.
2019-02-05 19:11:43 -05:00
Calvin Rose
f6a3853131
Merge pull request #30 from jfcap/get-set-abstract
...
Get set abstract
2019-02-05 19:09:56 -05:00
J.-F. Cap
49465f71f3
Added a simple C module to test getter/setter.
2019-02-05 18:45:04 +01:00
J.-F. Cap
960cf76eb5
Experimental getter/setter for abstract types
2019-02-05 17:14:13 +01:00
Calvin Rose
1b735564fa
Update copyright.
2019-02-03 15:34:41 -05:00
Calvin Rose
7ae01d25dd
Merge branch 'master' of github.com:janet-lang/janet
2019-02-03 15:32:53 -05:00
Calvin Rose
cb5263d2d8
Remove extra comment.
2019-02-03 15:32:39 -05:00
Calvin Rose
602092f6d5
Merge pull request #29 from honix/master
...
Gitter badge added
2019-02-02 18:06:06 -05:00
Fyodor Shchukin
d3a067a665
Gitter badge added
2019-02-02 10:30:15 +03:00
J.-F. Cap
98a26f5ce3
Merge remote-tracking branch 'upstream/master'
2019-02-02 00:38:29 +01:00
Calvin Rose
09d9dca5f5
Add Gitter channel to README.md
2019-02-01 13:43:16 -05:00
Calvin Rose
8a3f512746
Experimental changes to janet_call to make it faster.
...
Remove setjmp and fiber creationg from janet_call. This
adds the constraint to janet_call can only be called when there
is already a current fiber.
2019-02-01 11:56:25 -05:00
Calvin Rose
19e59705b9
Main rule in peg is always 0
...
After we changed peg bytecode emission to
preallocate space for an instruction before
emitting sub rules, the rules are numbered
in the order that they are compiled. This means
that the main rule is always 0.
We can remove the explicitly stored main rule in
the peg structure.
2019-01-31 23:39:33 -05:00
Calvin Rose
367c9da856
Fix some typos and update style.
...
Add bars.janet tool for templating arbitrary
strings, especially HTML.
2019-01-31 22:38:59 -05:00
Calvin Rose
4bcf6565cd
Add parser/insert and bump to 0.4.0
2019-01-31 14:48:28 -05:00
Calvin Rose
0c950d0846
Fix emscripten build.
2019-01-31 13:02:09 -05:00
Calvin Rose
7ba925c50a
Make getline more useful.
2019-01-31 12:34:22 -05:00
Calvin Rose
cb3b9dd76f
Update changelog an fix typos.
2019-01-31 10:09:34 -05:00
Calvin Rose
f4fa55027b
Merge pull request #27 from jfcap/master
...
Added :lflags option to cook/make-native
2019-01-31 09:39:59 -05:00
J.-F. Cap
0fe11adb9c
typo in REAME.md
2019-01-31 13:52:57 +01:00
J.-F. Cap
b138ee6e8e
Added :lflags option to cook/make-native
2019-01-31 13:30:37 +01:00
Calvin Rose
a66f19f636
Merge branch 'master' of github.com:janet-lang/janet
2019-01-30 23:11:42 -05:00
Calvin Rose
c76f4e89d8
Remove redundancies in stacktraces.
...
There was an implementation for stacktraces in both
run.c and in core.janet, status-pp. The commit removes
the one in core.janet in favor of the C based stacktrace, which
is exposed via debug/stacktrace. Lots of reshuffling of run-context
ensued as well, which resulted in an api that is a bit cleaner.
2019-01-30 23:11:12 -05:00
Calvin Rose
85a211b26b
Remove extra vector function.
2019-01-30 21:22:40 -05:00
Calvin Rose
fe3620529f
Merge pull request #26 from honix/master
...
Cooking on windows
2019-01-30 10:13:35 -05:00
Fyodor Shchukin
a7551e9b4e
Cooking on windows
2019-01-30 17:31:53 +03:00
Calvin Rose
46c540b93e
Add math headers for emscripten
...
We now check for NaN in table.c and struct.c
as we disallow NaN keys.
2019-01-29 18:18:14 -05:00
Calvin Rose
32c209ede9
Address #25
2019-01-29 13:59:08 -05:00
Calvin Rose
0d293cd3f5
Update require to use real path name rather than module name.
2019-01-28 21:48:13 -05:00
Calvin Rose
f284776490
Address #24
2019-01-28 20:30:45 -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
c333cbfa55
0.3.0
2019-01-26 21:40:04 -05:00
Calvin Rose
f72aa64f41
0.3.2
2019-01-26 21:36:29 -05:00
Calvin Rose
d85892edc8
0.3.1
2019-01-26 21:34:08 -05:00
Calvin Rose
56383b2ecc
Remove all traces of 'bakpakin/janet' from repo.
2019-01-26 21:26:40 -05:00
Calvin Rose
0d729eaab1
Appveyor is annoying.
2019-01-26 21:14:04 -05:00
Calvin Rose
17ab654ccb
Messing with appveyor, trying travis.
2019-01-26 21:00:13 -05:00
Calvin Rose
872d03ae1d
Update for version 0.4.0.
...
Version 0.3.0 never really happened, as no release
binaries were ever generated.
2019-01-26 20:46:40 -05:00
Calvin Rose
ee5fa54134
Generated files go to the same location on win32.
2019-01-26 17:33:30 -05:00
Calvin Rose
68e00cdb7a
Update slurp and spit error handler.
2019-01-26 17:27:05 -05:00
Calvin Rose
5bf9e4fc89
Make amalg tool windows friendly
...
Convert / to \ in file paths for windows.
2019-01-26 17:17:56 -05:00
Calvin Rose
7350bf5dd9
Add anchors in generated docs
...
This allows us to link to specific functions.
2019-01-26 10:12:33 -05:00
Calvin Rose
e755f98300
Address #23
2019-01-25 20:31:08 -05:00
Calvin Rose
8ee2f0a1d6
Add amalgamation to windows distribution
2019-01-24 10:19:48 -05:00
Calvin Rose
0726de34ff
Add description of embedding to README.md
2019-01-24 10:16:24 -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
4d81fbc238
Add a changelog.
2019-01-22 15:23:42 -05:00
Calvin Rose
c5012ca4c1
Update man page.
2019-01-21 16:04:47 -05:00
Calvin Rose
e68a889fa9
Remove doc markdown and move it to website.
2019-01-21 13:49:44 -05:00
Calvin Rose
795e7a9de8
Make os/date results more consistent.
2019-01-20 16:49:39 -05:00
Calvin Rose
090a6a8c5c
Add optional env arguments to eval functions.
2019-01-20 16:06:30 -05:00
Calvin Rose
2bbf9fdcc5
Add os/date to core library.
2019-01-20 14:34:33 -05:00
Calvin Rose
0025f6ac87
Export html-escape from highlight tool.
2019-01-20 13:31:26 -05:00
Calvin Rose
737b2449f0
Update highlight and the mainclient.
2019-01-20 10:05:51 -05:00
Calvin Rose
f7a0133eb1
Update highlight.janet (allow ! in symbols).
2019-01-20 08:53:34 -05:00
Calvin Rose
48b179d67e
Add slurp and spit to the core library.
2019-01-19 22:00:33 -05:00
Calvin Rose
d1a075b2a6
Switch order of some text in the README.md
2019-01-19 13:03:42 -05:00
Calvin Rose
2bad24371d
Add IRC location to README.md
2019-01-19 12:42:33 -05:00
Calvin Rose
bf8d5da3dc
Fix possible memory leak on buffer overflow.
...
(All buffer push functions can panic (longjmp), skipping
deinit. Instead, we should use the garbage collected api).
2019-01-19 12:32:52 -05:00
Calvin Rose
4a6fcb5e23
Address issue #21
...
Add some github highlighting to janet files (clojure is pretty close)
2019-01-19 12:11:54 -05:00
Calvin Rose
5ba969f91d
Make match macro prettier.
2019-01-18 15:24:58 -05:00
Calvin Rose
26818a5e5c
Fix doc generation.
2019-01-18 12:26:04 -05:00
Calvin Rose
b84b0e4828
Expose more of the module system.
...
The system path can more easily modified at runtime,
and the module/cache and module/loading tables are now exposed.
Properly cache native modules as well.
2019-01-18 12:04:34 -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
c4114fbcdb
Add quote special to peg syntax to make captures terser.
2019-01-17 19:28:42 -05:00
Calvin Rose
95f2bbe0a0
Add highlight.janet tool which can highlight
...
janet source code and output html or terminal escaped code.
Also made re entrant calls into the vm provide better
error messages.
2019-01-17 18:12:26 -05:00
Calvin Rose
63137b8107
Fix parsing bug for numbers.
2019-01-17 12:32:51 -05:00
Calvin Rose
2c1b506213
Add tagged captures for a better (more correct) form of look behind.
2019-01-16 22:38:11 -05:00
Calvin Rose
612a245961
More work on peg. Disable indexed backrefs and replace substitution
...
with accumulation.
2019-01-16 21:11:55 -05:00
Calvin Rose
4b8edef58c
Typo.
2019-01-16 12:34:01 -05:00
Calvin Rose
82cddef5bb
Update man page and add early exit to number scanning for parser.
2019-01-16 12:32:33 -05:00
Calvin Rose
d0fc29338c
Add error special form in Peg to allow construction of grammar errors
...
for more useful grammars that could eventually be used in a compiler.
2019-01-15 16:04:47 -05:00
Calvin Rose
4eeadd7463
Add optional form to peg (shorthand for (between 0 1 patt)).
2019-01-15 14:08:03 -05:00
Calvin Rose
f0fcdf6bc5
Update Peg.md text
2019-01-15 11:09:22 -05:00
Calvin Rose
2a333f8359
Add simple pattern examples to peg doc.
2019-01-15 11:05:51 -05:00
Calvin Rose
0dd867d508
Fix markup.
2019-01-14 22:33:33 -05:00
Calvin Rose
e3f902cb8a
Update docs.
2019-01-14 22:31:57 -05:00
Calvin Rose
c651b6f67c
Fix peg doc table.
2019-01-14 22:18:51 -05:00
Calvin Rose
3a9b50ea4a
Update peg doc and remame some peg specials.
2019-01-14 22:17:13 -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
90313afd40
Update PEG documentation and peg syntax.
...
Disable tail calls in the root scope for better
stacktraces, as the root scope may contain a single call
to a failing function, as in the case of the test suite.
2019-01-14 20:41:32 -05:00
Calvin Rose
99f176f37b
Fix windows build warnings.
2019-01-14 17:48:32 -05:00
Calvin Rose
d0ec89c7c1
Update Matchtime captures to not include all of the
...
matched text automatically, and fix pattern recursion
in grammars.
2019-01-14 17:44:21 -05:00
Calvin Rose
170e785b72
Fix recursion in grammars.
2019-01-14 15:06:35 -05:00
Calvin Rose
e53778d5d8
Remove annoying (fiber) text from stacktrace.
2019-01-14 12:08:36 -05:00
Calvin Rose
192705113e
Add Matchtime captures to peg (Equivalent to LPegs lpeg.Cmt).
...
This allows that pattern to call an external function to
check if some text should match or not. This allows for
matching any possible language a computer can recognize.
2019-01-14 11:45:45 -05:00
Calvin Rose
97a42ea17b
Address some windows issues in buffer.c
2019-01-14 00:12:25 -05:00
Calvin Rose
2cd489b9d4
Address windows build warnings.
2019-01-14 00:09:27 -05:00
Calvin Rose
ff0d3a0081
Compile pegs to bytecode with (peg/compile). Peg
...
performance is improved, and peg syntax has been expanded with a few
more keywords.
2019-01-13 23:54:41 -05:00
Calvin Rose
282c02c475
Update comments and text.
2019-01-12 20:22:03 -05:00
Calvin Rose
798c88b4c8
Update peg to allow functions over captures. Update C API
...
to make janet function calls easier and faster from C (still
needs an object pool for fibers, though). Fix bug in scan-number
and add many more peg tests.
2019-01-12 17:31:15 -05:00
Calvin Rose
83f4a11bf3
Add some more tests, add parameterized captures to patterns,
...
and fix some bugs.
2019-01-12 11:04:47 -05:00
Calvin Rose
d7626f8c57
Add more capturing capabilities including substitutions, as well
...
as back references for PEGs. More documentation is needed for PEG
syntax, but the amount required will need an external document, not
just a docstring.
2019-01-12 10:16:25 -05:00
Calvin Rose
1efca2ebe7
Add some preliminary capturing ability to PEGs.
2019-01-11 21:09:49 -05:00
Calvin Rose
40845b5c1b
Initial peg implementation. Tree walk interpretted with
...
no captures, so not yet ready.
2019-01-11 19:22:24 -05:00
Calvin Rose
84fb07dd5a
Add quiet option to main client.
2019-01-10 17:10:12 -05:00
Calvin Rose
62cb3f81fe
Fix sorting in asm.c. Add README text.
2019-01-09 17:09:16 -05:00
Calvin Rose
16ebb11181
Add buffer/bit functions and buffer/blit. Expose janet_gethalfrange
...
in the C api for less duplicated range checking code.
2019-01-09 13:25:51 -05:00
Calvin Rose
115ed9cbb9
Move pretty printing to separate file pp.c
...
Simplify string.c and remove janet_puts.
2019-01-09 11:47:29 -05:00
Calvin Rose
3ae6f64de5
Fix popen bug.
2019-01-08 21:42:16 -05:00
Calvin Rose
ff3f7487a4
Add splice special form to grammar.
2019-01-08 20:05:36 -05:00
Calvin Rose
f0afb3c311
Update README to indicate how to get latest grammar file.
2019-01-08 20:02:01 -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
b1e0849a2f
Restore old status logic - (status checks in run_vm should be using
...
the previous status, not the current which is always JANET_STATUS_ALIVE)
2019-01-08 13:42:29 -05:00
Calvin Rose
67f26b7d72
Fix = should have been ==. Add some tests for vm type asserts.
2019-01-08 12:26:01 -05:00
Calvin Rose
d5bab72620
Add a test for making method calls
2019-01-07 14:54:39 -05:00
Calvin Rose
aa079e3145
Fix parser regression.
2019-01-07 14:49:38 -05:00
Calvin Rose
d64a57297d
Update examples, add method like semantics to calling keywords.
2019-01-07 14:47:47 -05:00
Calvin Rose
be85196de8
Add callgrind task to Makefile.
...
Unify some parser states.
2019-01-06 21:49:24 -05:00
Calvin Rose
eae4e0dede
Add functionality that allows the set macro to
...
take a tuple as an l-value. Remove the old
multi-sym report in anticipation of a different
mechanism.
2019-01-06 19:33:27 -05:00
Calvin Rose
92e9e64945
Update CONTRIBUTING.md and make valtest
2019-01-06 12:32:44 -05:00
Calvin Rose
63dd6d03f4
Fix english
2019-01-06 12:05:40 -05:00
Calvin Rose
2a79d2e749
Remove check for function calls to enable all types,
...
even nil. Now any value can be called as a function, usually
looking itself up in an associative data structure.
2019-01-06 11:56:40 -05:00
Calvin Rose
6f3bc3d577
Update copyright date, fix types, remove trailing whitespace.
2019-01-06 03:23:03 -05:00
Calvin Rose
ef5eed2c21
Add source location to doc macro.
2019-01-06 02:10:56 -05:00
Calvin Rose
5865692401
Surround embedded documentation with a macro so it
...
can be disabled in a future build.
2019-01-06 01:49:56 -05:00
Calvin Rose
b626e73d19
Add extra argument to (native) to allow for passing
...
in custom environment to add stuff to.
2019-01-05 23:37:10 -05:00
Calvin Rose
b535c91ee1
Fix native module issue.
2019-01-05 22:52:28 -05:00
Calvin Rose
7b28032f5c
More explicit casts to please Microsoft compiler.
2019-01-05 21:58:39 -05:00
Calvin Rose
0fdd404a71
Remove duplicate functionality in string.c
2019-01-05 21:23:44 -05:00
Calvin Rose
1f98eff33a
Fix compiler warnings on emscripten.
2019-01-05 20:52:32 -05:00
Calvin Rose
338b31f5a2
Add janet_fixarity. Update emscripten source.
2019-01-05 20:45:24 -05:00
Calvin Rose
b60e3e302a
Update C API to use friendlier functions rather than macros.
...
Error handling is implemented with setjmp/longjmp so code
can be more concise. This required a very large but straight forward refactor for all
of the libraries.
2019-01-05 20:09:03 -05:00
Calvin Rose
5b62c8e6db
Better working panic implementation and more cleanup in main vm loop.
2019-01-05 00:33:20 -05:00
Calvin Rose
cd6a7793e8
WIP panic functionality.
2019-01-04 23:20:34 -05:00
Calvin Rose
5afb00859a
More cleanup in vm.c
2019-01-04 21:15:37 -05:00
Calvin Rose
001917f8d9
Begin clean up of vm.c
...
Replace the oparg macro with 5 named virtual registers, combine
pc++ with vm_next() macro to be more terse, and move setup and
teardown logic of janet_continue into a separate function.
These changes are preparation for using setjmp/longjmp to do
error handling in the VM. Introducing longjmp for error handling in
the VM would allow it to be used in the C API, which could result in
simpler, more compact code.
2019-01-04 20:08:43 -05:00
Calvin Rose
b9c0fc8201
Allow calling keywords and symbols as functions to look
...
themselves up in a data structure. Allow calling a data
structure to look up the argument.
2019-01-03 22:48:43 -05:00
Calvin Rose
d8b0a5ed01
Make parser API more robust - the value queue is now
...
distinct from the parse state, and is queried separately.
2019-01-03 20:48:54 -05:00
Calvin Rose
5fa96a6f8c
Add documentation on all of the special forms.
2019-01-03 17:16:34 -05:00
Calvin Rose
dd3fc24a1e
Make number syntax a bit stricter - no leading underscores
...
and no underscores in exponent.
2019-01-03 12:13:14 -05:00
Calvin Rose
ddba0010b0
Make test output less verbose.
2019-01-02 23:06:23 -05:00
Calvin Rose
337a498edb
Fix some keyword related issues.
2019-01-02 22:08:51 -05:00
Calvin Rose
5fff36d047
Remove janet_symbol_from_string api function.
2019-01-02 20:50:31 -05:00
Calvin Rose
a679f60e07
Add assembly test.
2019-01-02 19:58:27 -05:00
Calvin Rose
58d480539c
Fix assembler labels after keyword update.
2019-01-02 19:55:42 -05:00
Calvin Rose
6afaacf2af
Update documentation on keywords.
2019-01-02 19:46:24 -05:00
Calvin Rose
e9c94598e6
Add native keyword type to replace symbols with leading ':'
...
character.
2019-01-02 19:41:07 -05:00
Calvin Rose
29ec30c79f
Fix number parsing for bases between 2 and 9.
...
Allow multisyms to have number keys.
2019-01-02 16:39:24 -05:00
Calvin Rose
122312dbf6
Fix some typos and update comments.
2019-01-02 12:21:59 -05:00
Calvin Rose
618f8d6818
Add with-syms and combine bignat_add and bignatr mul
...
into a single operation for strtod.c
2019-01-02 10:23:11 -05:00
Calvin Rose
0d4ab7dee0
Add some more test cases for bad arities.
2018-12-30 18:44:00 -05:00
Calvin Rose
6b4824c2ab
Fix error behavior when calling functions with incorrect arities.
2018-12-30 18:41:44 -05:00
Calvin Rose
8dde89126e
Fix -s flag in janet binary.
2018-12-30 18:23:29 -05:00
Calvin Rose
56927e1b81
Fix -e option.
2018-12-30 17:51:15 -05:00
Calvin Rose
9e6254bf56
Rename pre-walk and post-walk to prewalk and postwalk.
2018-12-30 15:34:01 -05:00
Calvin Rose
fe22a8db39
Fix 32 bit platforms janet number handling.
2018-12-30 14:23:52 -05:00
Calvin Rose
d724c5b959
Update number representation so that wrapping numbers isn't
...
doesn't need to check for NaNs. Change ordering of types.
2018-12-30 12:37:50 -05:00
Calvin Rose
ca9c017ec4
Remove some unnecessary bounds checks.
2018-12-29 20:07:56 -05:00
Calvin Rose
65be318306
Update grammar.
2018-12-29 18:04:23 -05:00
Calvin Rose
7c4671d98f
Update loop documentation.
2018-12-29 17:42:44 -05:00
Calvin Rose
7880d73201
Add some documentation for looping and the loop macro.
...
Also add :pairs verb to the loop macro and some more tests.
2018-12-29 17:23:31 -05:00
Calvin Rose
00f0f628e8
Shrink gif some more.
2018-12-29 13:21:13 -05:00
Calvin Rose
21b7583a7c
Shrink image in README
2018-12-29 13:20:13 -05:00
Calvin Rose
42c6aca526
Shrink gif.
2018-12-29 13:17:45 -05:00
Calvin Rose
52b8781684
..
2018-12-29 13:14:59 -05:00
Calvin Rose
5d39570ec9
Update README.md
2018-12-29 13:13:57 -05:00
Calvin Rose
28331ad6ab
Update buffer/push-integer to buffer/push-word.
2018-12-29 13:07:18 -05:00
Calvin Rose
129ec1e3c5
Don't use initialization syntax {0}.
2018-12-29 12:02:51 -05:00
Calvin Rose
bdcd3a3dbf
Update strtod.c, cleaning up code.
...
Rename Mant -> BigNat, fix multiply code
so we can use 31 bits per digit.
2018-12-29 11:29:20 -05:00
Calvin Rose
6c8f49206d
Add some more number tests. Crossing fingers
...
hoping windows will work.
2018-12-29 01:31:01 -05:00
Calvin Rose
b06f7226c4
Add number test.
2018-12-29 01:16:54 -05:00
Calvin Rose
2bcedd5920
Remove indexing with numeric constants from janet.
2018-12-28 23:44:39 -05:00
Calvin Rose
5c84f0f5d9
Work on number code for more expected behavior and better rounding.
...
Still needs work and testing.
2018-12-28 23:32:09 -05:00
Calvin Rose
424073bbb8
Update cook tool to not rebuild files unless it needs to.
2018-12-27 14:13:10 -05:00
Calvin Rose
e9a80d4e4a
Bump version, fix doc and typos, update grammar.
2018-12-27 13:36:27 -05:00
Calvin Rose
1ec7f04642
Avoid warning in asm.c on windows.
2018-12-27 13:19:16 -05:00