Calvin Rose
ff90b81ec3
Add some utilitites for dealing with unsigned integers in janet.h
2023-06-24 10:38:35 -05:00
Calvin Rose
9120eaef79
Merge pull request #1201 from pyrmont/bugfix.dup-fds
...
Avoid prematurely closing file descriptors when redirecting IO
2023-06-24 09:51:34 -05:00
Michael Camilleri
1ccd879916
Make test cross-platform
2023-06-24 10:56:47 +09:00
Michael Camilleri
f977ace7f8
Avoid prematurely closing file descriptors when redirecting IO
2023-06-23 15:50:19 +09:00
Calvin Rose
c3f4dc0c15
Merge pull request #1200 from sogaiu/use-vm_commit
...
Use vm_commit
2023-06-22 20:40:03 -05:00
sogaiu
78eed9b11c
Use vm_commit
2023-06-22 21:36:57 +09:00
Calvin Rose
3a4d56afca
Patch release.
2023-06-19 07:18:35 -05:00
Calvin Rose
63bb93fc07
Fix isatty code to not use functions only defined if ev is enabled.
2023-06-19 07:14:56 -05:00
Calvin Rose
5a39a04a79
Prepare for 1.29.0 release.
2023-06-19 06:48:33 -05:00
Calvin Rose
2fde34b519
Remove extra function call that cannot ever trigger.
2023-06-18 09:41:53 -05:00
Calvin Rose
1ef5c038db
Merge pull request #1187 from CosmicToast/peg-boolean
...
peg: add support for "true" and "false" primitives to always/never match
2023-06-18 09:40:46 -05:00
Calvin Rose
e2459cfb47
Merge pull request #1185 from chris-chambers/macro-lints-fix
...
Fix order in which *macro-lints* is set during expansion
2023-06-18 09:39:25 -05:00
Calvin Rose
cfffc0bcf1
Merge pull request #1190 from primo-ppcg/if-let
...
update if-let
2023-06-18 09:38:44 -05:00
Calvin Rose
7272f43191
Merge pull request #1188 from primo-ppcg/if-let
2023-06-11 07:21:38 -05:00
primo-ppcg
2a7ea27bb7
do not expand false branch more than once
...
Fixes #1191
2023-06-11 19:15:48 +07:00
primo-ppcg
32c5b816ae
use unquotes instead
2023-06-11 18:38:20 +07:00
Chloe Kudryavtsev
e54ea7a1d8
fixup! peg: add support for "true" and "false" primitives to always/never match
2023-06-11 12:38:40 +02:00
primo-ppcg
1077efd03a
update if-let
...
Fixes #1189
2023-06-11 17:19:29 +07:00
Chloe Kudryavtsev
f9ab91511d
peg: add support for "true" and "false" primitives to always/never match
...
The use cases involve user-expandable grammars.
For example, consider the IRC nickname specification.
> They SHOULD NOT contain any dot character ('.', 0x2E).
> Servers MAY have additional implementation-specific nickname restrictions.
To implement this, we can do something along these lines:
```janet
(def nickname @{:main '(some :allowed)
:allowed (! (+ :forbidden/dot :forbidden/user))
# for lax mode, (put nickname :forbidden/dot false)
:forbidden/dot "."
# to add your own requirements
# (put nickname :forbidden/user 'something)
:forbidden/user false})
```
Additionally, it's common in parsing theory to allow matches of the
empty string (epsilon). `true` essentially allows for this.
Note that this does not strictly add new functionality, you could
emulate this previously using `0` and `(! 0)` respectively, but this
should be faster and more intuitive.
The speed improvement primarily comes from `(! 0)` which is now a single
step.
2023-06-11 10:44:39 +02:00
primo-ppcg
2c3ca2984e
simplify if-let logic
2023-06-11 12:09:58 +07:00
primo-ppcg
94722e566c
if-let better test coverage
2023-06-11 12:07:13 +07:00
Christopher Chambers
163f7ee85d
Add test for maclintf in nested macro invocations
2023-06-10 16:52:20 -04:00
Christopher Chambers
52d3470cbe
Fix order in which *macro-lints* is set during expansion
...
Previously, `*macro-lints*` was set after the `macroexpand1` fiber was
resumed, rather than just before. And, `*macro-lints*` was never
cleared. This behavior was typically fine since the main users of
`compile` pass the same lint array repeatedly, and the first macro
expansion (somewhere in boot.janet) never produces a lint. But, when
compiling with a fresh lint array, if the first macro invocation
produced a lint, the lint was always lost.
2023-06-09 12:53:10 -04:00
Calvin Rose
0bd6e85c61
update changelog
2023-06-08 19:54:01 -05:00
Calvin Rose
e35c6b876f
Merge pull request #1183 from primo-ppcg/take-drop
...
Make take and drop more symmetric
2023-06-08 14:52:51 -05:00
Calvin Rose
9a2897e741
Run through astyle with manual corrections
2023-06-08 13:01:49 -05:00
primo-ppcg
70b2e8179d
nitpick performance tweak
2023-06-08 23:57:07 +07:00
primo-ppcg
5317edc65d
minor readability change
...
As suggested by @sogaiu
@zevv forget to push this change in a recent PR (https://github.com/janet-lang/janet/pull/1175#issuecomment-1576128152 ).
Incidentally, the affected lines were already reformatted in the current PR, via fmt/format-file.
2023-06-08 23:00:05 +07:00
Calvin Rose
866d83579e
Address #1165 - Allow for partial ffi support without totally removing testing.
...
Query at runtime which calling conventions are supported, including
a placeholder :none.
2023-06-08 09:07:16 -05:00
primo-ppcg
a238391b36
take-drop performance tweaks
...
Increase efficiency for `take` and `drop` with slices.
Check indexed types before bytes types.
2023-06-08 14:50:37 +07:00
Calvin Rose
5e152d30db
Merge pull request #1182 from chris-chambers/channel-close-resumptions
2023-06-07 17:15:45 -05:00
Christopher Chambers
57c954783d
Fix resumption values when closing a channel.
...
When suspended in `ev/give` or `ev/take`, closing the channel should
cause the result of `ev/give` or `ev/take` to be `nil`.
When suspended in `ev/select`, closing the channel should cause the
result of `ev/select` to be `[:close ch]`.
The results were flipped before.
2023-06-07 15:01:56 -04:00
primo-ppcg
b5407ac708
take-drop dictionaries
...
Return table for `take` of dictionary types.
Allow `drop` of dictionary types.
2023-06-07 19:20:05 +07:00
primo-ppcg
472ec730b5
take-drop symmetry
...
Allow `take` from the end of bytes or indexed (as `drop` does).
Allow `drop` from fibers (as `take` does).
2023-06-07 18:12:36 +07:00
Calvin Rose
8c819b1f91
Update README.md
2023-06-05 12:55:08 -05:00
Calvin Rose
528a516390
Add more sandbox capabilities.
...
Add more granularity to ffi sandbox capabilities - distinguish between
using FFI functions, creating FFI functions, and creating executable
memory.
2023-06-04 18:48:34 -05:00
Calvin Rose
6509e37c84
Update CHANGELOG.md and README.md
2023-06-04 16:11:17 -05:00
Calvin Rose
649173f661
Merge pull request #1175 from zevv/quicky
...
Added JANET_NO_AMALG flag to Makefile
2023-06-04 14:24:35 -05:00
Calvin Rose
1efb0adb35
Add 3 argument form to fiber/new
...
Allow passing in environment table at fiber creation since
it is a fairly common thing to do.
2023-06-04 14:17:18 -05:00
Calvin Rose
88a8e2c1df
Define *task-id* since it is part of the event-loop runtime.
2023-06-04 14:05:37 -05:00
Ico Doornekamp
bb4ff05d35
Added NO_AMALG flag to Makefile to build janet from the individual
...
source files instead of from the amalgamated janet.c; this considerably
speeds up parallel builds on modern CPUs
2023-06-04 20:02:47 +02:00
Calvin Rose
dd3b601c87
Don't do fiber double arity check.
2023-06-04 12:56:03 -05:00
Calvin Rose
e22d101a62
Merge pull request #1179 from zevv/zevv-tests
...
Added misc tests to increase test coverage
2023-06-04 12:53:43 -05:00
Calvin Rose
4b3c813f5a
Revert to old behavior of janet_fiber returning NULL.
...
When there is a bad arity function passed in to the fiber
constructor, return NULL so the runtime can choose what to do.
This is not the prettiest API but does work, and gives better error
messages for instance in the compiler.
2023-06-04 11:21:52 -05:00
Calvin Rose
67f375bea2
Small code style change to boot.janet
2023-06-04 11:10:39 -05:00
Calvin Rose
88ba99b87e
Merge pull request #1181 from chris-chambers/ev-gather-cancel
...
Ensure ev/gather fibers are fully canceled on error
2023-06-04 11:10:24 -05:00
Christopher Chambers
53447e9d0b
Ensure ev/gather fibers are fully canceled on error.
2023-06-04 10:49:30 -04:00
Calvin Rose
c4c86f8671
Run boot.janet through janet-format.
2023-06-03 16:47:59 -05:00
Calvin Rose
658941d26d
Fix macro declaration.
2023-06-03 14:24:41 -05:00
Calvin Rose
e4bf27b01c
Macro hack for meson-min build.
2023-06-03 14:22:16 -05:00