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
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
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
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
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
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
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
5b82b9e101
Address compiler warning on macos.
2020-04-04 13:34:16 -05:00
Calvin Rose
f089b2001f
Add several math functions to the math module.
2020-04-04 12:52:34 -05:00
Calvin Rose
8275da63fb
Address #331 - Add :octal-permissions
2020-04-03 18:29:45 -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
Andrew Chambers
3c2b1baff2
Add os/umask.
2020-04-02 23:33:50 +13: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
Josef Pospíšil
b6b70d54ef
Fix typo flie
2020-03-31 15:31:27 +02: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
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
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
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
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
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
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
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
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
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
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
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
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
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
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