Calvin Rose
3441bcbd69
Add more cases for checking coerce error.
...
Channel operations inside a janet_call could wreak more
havoc later, when scheduled fibers are shooting off when they shouldn't
be. The easiest way to prevent this is simply check that we are not
inside janet_call before doing channel operations. We also get nicer
error messages this way.
2025-02-16 10:40:38 -06:00
Calvin Rose
2e6001316a
Work on bug #1556
2025-02-16 09:09:33 -06:00
Calvin Rose
53bcc15207
Merge pull request #1557 from sogaiu/update-changelog-2025-02
...
Update CHANGELOG.md
2025-02-09 23:22:45 -08:00
sogaiu
dd609bb1bb
Update CHANGELOG.md
2025-02-08 14:29:22 +09:00
Calvin Rose
5c56c7fa91
Formatting in peg.c
2025-02-07 21:05:28 -06:00
Calvin Rose
9a892363a3
Address issue #1558
...
Don't attempt SO_REUSEPORT on unix domain sockets since it doesn't make
sense and may cause a failure to bind without extra effort by the
programmer.
2025-02-07 21:05:07 -06:00
Calvin Rose
5f550ea5d4
Merge pull request #1555 from sogaiu/tweak-apply-short-fn-docstrings
...
Tweak apply and short-fn docstrings
2025-02-06 16:44:45 -08:00
sogaiu
1b6cc023a5
Tweak apply and short-fn docstrings
2025-02-06 22:35:59 +09:00
Calvin Rose
410f8d69bc
Merge pull request #1528 from ianthehenry/til-peg-special
...
add (til) PEG special
2025-02-03 19:07:08 -08:00
Calvin Rose
6da44bdb6a
Get rid of early termination rule in all finite loops.
2025-02-03 07:36:00 -06:00
Calvin Rose
d30fd27575
Address #1554 - capture first 0-width match in repeating rules and
...
optionals.
This fixes some undesirable interplay between lookaheads and looping
(repeating) rules where lookaheads caused the loop to immediately
terminate _and_ discard any captures. This change adds an exception if
there is a 0-width match at the first iteration of the loop, in which
case captures will be kept, although the loop will still be terminated
(any further iteration of the loop would possibly cause an infinite
loop).
This allows optionals to work as expected when combined with lookahead.
There is also a question of whether or not optional should be
implemented as separate rule rather than as `(between 0 1 subrule)`.
2025-02-02 20:34:36 -06:00
Calvin Rose
1b278fc657
Update reduce2 documentation to fix issue #1545
2025-02-01 17:31:55 -06:00
Calvin Rose
eecffe01a5
Add some more test cases for hex floats.
2025-02-01 08:09:57 -06:00
Calvin Rose
f63a33884f
Add hexfloats - Address #1550
2025-01-30 07:36:18 -06:00
Calvin Rose
fa75a395cb
Add support for buffer peg literals - address #1549
2025-01-26 09:48:48 -06:00
Calvin Rose
1f34ec9902
Merge pull request #1547 from pyrmont/bugfix.codeql-upgrade
...
Update CodeQL actions to latest version
2025-01-25 09:24:40 -08:00
Michael Camilleri
f75c08a78e
Add 'tools: linked' to CodeQL workflow
2025-01-24 04:00:52 +09:00
Michael Camilleri
5e93f0e34b
Trigger workflow to run again
2025-01-24 03:02:15 +09:00
Calvin Rose
49f151e265
Allocate parser with GC.
...
This fixes janet_dobytes, which manually allocated a parser on the
stack, and then possibly ran garbage collection before it was
deallocated.
2025-01-22 09:21:56 -06:00
Michael Camilleri
2b73a15ad8
Update CodeQL actions to latest version
2025-01-22 23:47:44 +09:00
Calvin Rose
06d581dde3
Fix #1546 - large ranges.
...
Raise an error for very large ranges instead of internal assert.
2025-01-20 09:02:22 -06:00
Calvin Rose
2b49903c82
Merge pull request #1544 from cideM/docstring-fixes
...
Fix docstrings for int/u64, int/s64 and int/to-number
2025-01-14 06:30:08 -08:00
Florian Beeres
a17ae977a5
docstring int/u64 int/s64: supports number as well
...
Update the docstrings of the u64 and s64 functions to indicate that they
work on numbers as well strings. Previously the docstring only mentioned
string support.
2025-01-11 22:51:21 +01:00
Florian Beeres
8a6b44cb4e
docstring int/to-number: supports int64, not int32
...
Update the cfun_to_number docstring to indicate that it handles values
up to JANET_INTMAX_INT64 (75845c028364b8a25f06d620a61851cfa4505e64),
rather than up to int32, what the current docstring says.
2025-01-11 22:46:44 +01:00
Calvin Rose
60d9f97750
Address issue #1539 - infinite loop in peg split
...
Other looping rules ensure forward progress by terminating if an
iteration is at the same location as the previous iteration. Do the same
for split.
2025-01-01 11:28:10 -06:00
Calvin Rose
f252933f62
Merge pull request #1541 from rwtolbert/feature/win_arm64_dist
...
Brief: Add Arm64 .msi support on Windows
2025-01-01 09:19:57 -08:00
Calvin Rose
6dbd7b476c
Merge pull request #1538 from sogaiu/tweak-exit-value-doc
...
Tweak *exit-value* doc - address #1537
2024-12-31 10:28:03 -08:00
Bob Tolbert
a47eb847fb
Brief: Add Arm64 .msi support on Windows
...
Summary: Small update to add Windows on Arm64 support.
Also requires the latest version 3.14 of the WiX toolset.
2024-12-31 11:47:27 -06:00
Calvin Rose
ba5990ef21
Add switch to turn off "reuse" behavior for server sockets.
2024-12-31 09:05:54 -06:00
sogaiu
753911fe2d
Tweak *exit-value* doc - address #1537
2024-12-27 16:02:45 +09:00
Calvin Rose
746ced5501
Revert behavior of deep= on mutable keys.
...
Mutable keys are a minefield for comparisons, as resolving
equality require re-implementing a lot of the internal structures, as
well as dealing with multiple mutable keys that are in the same
equivalency class by deep=.
Simplifying the implementation to not resole mutable keys is much
simpler, faster, and has the benefit that deep= and deep-not= do not
need to allocate.
2024-12-21 09:03:01 -06:00
Calvin Rose
1b49934e4f
Allow table/to-struct to take a prototype.
...
Use this prototype struct in freeze.
2024-12-19 19:41:19 -06:00
Calvin Rose
682f0f584f
freeze with mutable keys should be determinsic help address #1535
2024-12-19 19:31:01 -06:00
Calvin Rose
611b2a6c3a
Add more test cases for #1535
2024-12-19 18:37:51 -06:00
Calvin Rose
8043caf581
Update CHANGELOG.
2024-12-19 18:31:05 -06:00
Calvin Rose
b2d2690eb9
Merge pull request #1534 from pyrmont/bugfix.windows-longstrings
...
Support dedenting long-strings with Windows EOLs
2024-12-19 16:24:21 -08:00
Calvin Rose
7f745a34c3
Allow for mutable keys correctly in deep=
2024-12-19 18:20:05 -06:00
Calvin Rose
b16cf17246
Merge pull request #1533 from pyrmont/feature.file-socket
...
Add `ev/to-file` for synchronous resource operations
2024-12-17 20:50:47 -08:00
Michael Camilleri
67e8518ba6
Support dedenting longstrings with Windows EOLs
2024-12-17 05:14:59 +09:00
Michael Camilleri
e94e8dc484
Remove special casing for MinGW
2024-12-16 08:12:14 +09:00
Michael Camilleri
1a24d4fc86
Raise error if using ev/to-file
on MinGW
2024-12-15 21:00:52 +09:00
Michael Camilleri
6ee05785d1
Disable buffering for files created with ev/to-file
2024-12-15 20:37:58 +09:00
Michael Camilleri
268ff666d2
Move <fcntl.h> header to general imports
2024-12-15 20:02:41 +09:00
Michael Camilleri
91bb34c3bf
Add missing <io.h> header for Windows
2024-12-15 19:17:48 +09:00
Michael Camilleri
17d5fb3210
Fix ev/to-file
on Windows
2024-12-15 18:56:35 +09:00
Michael Camilleri
687b987f7e
Add ev/to-file
for synchronous resource operations
2024-12-15 17:38:01 +09:00
Calvin Rose
4daecc9a41
Prevent await inside janet_call - address #1531
...
This was partially implemented before, but not in the case where the
await or other signal itself was created by a C function. We have to
separate code paths for generating signals - one via normal returns in
janet_vm_continue, and the other via longjump. This adds handling for
the longjump case, as well as improved messaging.
2024-12-14 10:34:36 -06:00
Calvin Rose
a85eacadda
Merge pull request #1532 from strangepete/fstat-directory-test
...
file/open: check if directory
2024-12-14 06:00:41 -08:00
peteee
ed63987fd1
use fileno()
...
Should use fileno() instead of direct
2024-12-14 07:17:28 -05:00
peteee
ff173047f4
file/open: check if directory
...
Adds fstat() directory test after fopen(), which can return non-NULL when passed a directory name on Linux
2024-12-13 00:20:44 -05:00