Max Schillinger
c29ab22e6d
Fix documentation of peg/replace
2024-02-23 12:46:45 +01:00
sogaiu
592ac4904c
Doc tweaks for ev/deadline and ev/with-deadline
2024-02-23 10:59:43 +09:00
Calvin Rose
03ae2ec153
Merge pull request #1394 from amano-kenji/master
...
Improve documentation on subprocess API
2024-02-19 11:25:17 -08:00
Calvin Rose
3bc42d0d37
Only re-register when using poll.
2024-02-19 13:19:23 -06:00
Calvin Rose
12630d3e54
Register stream on unmarshal
2024-02-19 13:16:45 -06:00
Calvin Rose
c9897f99c3
Address #1405 - don't try and resume fibers that can't be resumed.
...
FOr fibers that _can_ be resumed and then get cancelled, the sched_id
will be incremented later prevent the spurious wake ups.
2024-02-19 08:37:49 -06:00
Calvin Rose
e66dc14b3a
Formatting.
2024-02-17 13:35:07 -06:00
Calvin Rose
7a2868c147
Fix macex1 to keep syntax location for all tuples - Address #1404
2024-02-17 13:34:23 -06:00
Calvin Rose
9e0daaee09
Address #1401 - restore if-let tail calls.
...
Changes to avoid multiple macro expansions of the "false" branch caused
a regression in this functionality.
2024-02-15 06:30:26 -06:00
Calvin Rose
c293c7de93
Merge pull request #1402 from sogaiu/each-body-before-set
...
Swap set / body order for each (#1400 )
2024-02-15 04:05:15 -08:00
amano.kenji
674b375b2c
Improve documentation on subprocess API
2024-02-13 05:34:52 +00:00
llmII
7e94c091eb
Fix: os/proc-wait
...
As discused over gitter, `WIFSIGNALED` macro must be checked before one
uses the WTERMSIG macro. This change reflects that necessity and adds a
final else clause which will panic if no status code could be
determined.
2024-02-12 23:06:08 -06:00
sogaiu
5885ccba61
Swap set / body order for each ( #1400 )
2024-02-13 11:12:18 +09:00
Calvin Rose
431ecd3d1a
Abort on assert failure instead of exit
2024-02-03 14:12:10 -06:00
Calvin Rose
f6df8ff935
Expose _exit to skip certain cleanup with os/exit
2024-02-03 14:12:10 -06:00
sogaiu
354896bc4b
Add to propagate docstring ( #1365 )
2024-02-03 15:48:19 +09:00
sogaiu
91827eef4f
Tweak fiber/last-value docstring
2024-02-02 19:06:56 +09:00
Calvin Rose
9c14c09962
Add explicit stdatomic config setting for #1374
...
There was some hacky workaround code for development versions of TCC
that interfered with other compilers and technically was not legal
c99.
2024-01-28 15:53:41 -06:00
Calvin Rose
e85a84171f
Revert local change that removes stdatomic.h
2024-01-28 07:58:22 -06:00
Calvin Rose
3a4f86c3d7
Make host and port configurable for suite-ev.janet
2024-01-28 07:56:59 -06:00
Calvin Rose
5e75963312
Merge pull request #1367 from sogaiu/debug-stacktrace-doc-tweak
...
Tweak debug/stacktrace docstring (#1365 )
2024-01-28 05:33:11 -08:00
Calvin Rose
184d9289b5
Merge pull request #1371 from pepe/destructuring-typo
...
Fix typo in destructuring
2024-01-28 05:33:05 -08:00
sogaiu
942a1aaac6
Address #1370
2024-01-27 21:20:27 +09:00
Josef Pospíšil
69f0fe004d
Fix typo in destructuring
2024-01-26 14:36:56 +01:00
sogaiu
2a04347a42
Tweak debug/stacktrace docstring ( #1365 )
2024-01-24 16:52:37 +09:00
sogaiu
cf4d19a8ea
Cosmetically tweak module/expand-path docstring
2024-01-22 22:16:14 +09:00
Calvin Rose
df5f79ff35
Merge pull request #1359 from pnelson/binary
...
Add buffer/push-* sized int and float
2024-01-15 08:56:57 -08:00
Calvin Rose
6d7e8528ea
Merge pull request #1346 from ianthehenry/peg-split
...
add a new (split) PEG special
2024-01-15 08:16:06 -08:00
Philip Nelson
197bb73a62
Add buffer/push-* sized int and float
2024-01-14 15:32:13 -08:00
Josef Pospíšil
5b9aa9237c
Prepare for 1.33.0 release
2024-01-07 16:26:20 +01:00
Ian Henry
61f38fab37
add a new (split) PEG special
...
This works similarly to string/split, but the separator is a PEG.
2024-01-05 22:02:52 -08:00
Calvin Rose
9142f38cbc
Fix #1341 .
2024-01-01 08:58:31 -06:00
Calvin Rose
e8ed961572
Merge pull request #1344 from ianthehenry/peg-sub-special
...
Add a new (sub) PEG special
2023-12-31 18:40:47 -06:00
Calvin Rose
be11a2a1ad
Fix #1342
2023-12-31 18:36:55 -06:00
Ian Henry
ea75086300
add a new (sub) PEG special
...
(sub) will first match one pattern, then match another pattern against the
text that the first pattern advanced over.
2023-12-28 22:15:54 -08:00
sogaiu
c573a98363
Cosmetically tweak string/format docstring
2023-12-19 18:33:47 +09:00
Calvin Rose
11d7af3f95
Work on addressing #1337 - fix valgrind case.
2023-12-18 08:56:27 -06:00
Calvin Rose
a10b4f61d8
Address #1337 (leet!).
...
Changes a few scheduling details and adds a 0 byte explicitly to
symbols created via gensym.
2023-12-16 16:15:46 -06:00
Josef Pospíšil
938f5a689e
Fix arity typo in peg
2023-12-07 14:08:03 +01:00
Locria Cyber
6b5d151beb
fix typo in (doc next)
2023-12-02 15:38:35 +00:00
Calvin Rose
a9176a77e6
Prevent bytecode optimization from remove mk* instructions.
...
These instructions read from the stack, and therefor have side effects.
Removing them without clearing the stack results in broken bytecode.
2023-11-22 08:18:23 -06:00
Calvin Rose
16f409c6a9
Typo for SIGALARM in os/proc-kill
2023-11-21 21:51:56 -06:00
Calvin Rose
9593c930de
Address #1326 in a dynamic way that is fairly conservative.
...
Another optimization would be to keep track of immutable closure
captures (vs. mutable closure captures) and always detach them.
2023-11-14 21:13:21 -06:00
Calvin Rose
56f33f514b
Fix regression #1327
2023-11-14 19:52:22 -06:00
Calvin Rose
1ccd544b94
Address #1326 - marshal_one_env w/ JANET_MARSHAL_UNSAFE.
...
This allows uses the precise closure state capture
when marshalling data between threads. This prevents
accidental state capture when using ev/do-thread or similar
with closures that reference the current state.
2023-11-10 15:36:45 -06:00
Calvin Rose
93c83a2ee2
Fix warnings w/ MSVC and format.
2023-11-10 15:02:10 -06:00
Ico Doornekamp
9b640c8e9c
net/ev: Cleaned up unused NetStateConnect, fixed janet_async_end() ev refcount
2023-11-10 20:34:17 +01:00
Calvin Rose
a3228f4997
Add changes and test cases for #1324
2023-11-09 11:18:03 -06:00
Calvin Rose
715eb69d92
Add more ipv6 feature detection.
2023-11-03 18:24:35 -05:00
Calvin Rose
dfd05ddf7e
Merge branch 'master' into compile-opt
2023-11-02 10:58:51 -05:00
Calvin Rose
df2d5cb3d3
Add ipv6, shared, and cryptorand options to meosn.
...
Allows for builting with cosmopolitan, both with meson
and Makefile. Use:
CC=comsocc meson setup -Dipv6=false -Ddynamic_modules=false
-Dshared=false -Dos_name=cosmopolitan
to configure for cosmopolitan build.
2023-11-02 08:56:10 -05:00
Calvin Rose
31be7bad8e
Merge branch 'master' into compile-opt
2023-11-01 17:36:14 -05:00
Calvin Rose
3b189eab64
Fix #1321 , poll event loop CPU usage issue
...
A stream may have a fiber attached for memory management purposes, but
not actually be waiting on anything. Be more seletive with poll, which
is not edge-triggered, to not poll for readiness on these streams.
2023-10-29 11:34:21 -05:00
Calvin Rose
3a782d27b1
Allow for multiple functions in a sysir "context".
...
Allows for in memory linking.
2023-10-22 16:05:38 -05:00
Calvin Rose
f08874e65e
Merge branch 'master' into compile-opt
2023-10-22 09:03:52 -05:00
Calvin Rose
609b629c22
Add support for atomic loads in Janet's atomic abstraction.
2023-10-21 10:40:57 -05:00
Calvin Rose
e74365fe38
Be a bit safer with reference counting.
...
We might want to revisit some uses of refcounts in the
ev module to be more efficient if we care about signal atomicity
(where memory order isn't really important) or multithreading atomicity.
2023-10-21 09:55:00 -05:00
Vincent Lee
045c80869d
Use libc strlen in janet_buffer_push_cstring
...
Platform libc's often contains optimized assembly implementations of strlen, so take
advantage of them here instead of doing a naive count.
2023-10-19 23:30:28 -07:00
sogaiu
1b17e12fd6
Add more + and * keywords to default-peg-grammar
2023-10-19 18:45:20 +09:00
Calvin Rose
cc5beda0d2
Update patch release.
2023-10-15 14:33:43 -05:00
Calvin Rose
21ebede529
Move posix-fork inside correct if-def
...
Don't compile if processes are disabled.
2023-10-15 11:03:26 -05:00
Calvin Rose
15d67e9191
Merge pull request #1310 from Andriamanitra/patch-forward-word
...
Change Alt-f in the REPL move to next end of word instead of beginning
2023-10-14 18:36:05 -07:00
Calvin Rose
b5996f5f02
Update for 1.32.0
2023-10-14 19:48:20 -05:00
Andriamanitra
83204dc293
Change Alt-f in the REPL move to next end of word instead of beginning
2023-10-14 14:21:16 +03:00
Calvin Rose
e3f4142d2a
Update result value from janet_do* functions.
2023-10-12 05:26:23 -05:00
Calvin Rose
f18ad36b1b
Rework #1306 - better default for pretty printing numbers.
...
Not perfect for serialization, but a representation that
plays well with both safe integers (z where abs(z) < 2^54) and
non-integer floats.
2023-10-11 00:59:57 -05:00
Calvin Rose
6a78b6d1c6
Merge remote-tracking branch 'origin/compile-opt' into compile-opt
2023-10-10 20:28:09 -05:00
Calvin Rose
cb25a2ecd6
Avoid using execvpe function.
2023-10-08 21:33:15 -05:00
Calvin Rose
741a5036e8
Add %D and %I for 64 bit formatting.
...
Instead of breaking old code with changing %i and %d.
2023-10-08 21:23:03 -05:00
Calvin Rose
549ee95f3d
Add os/posix-exec (along os/posix-fork)
...
Useful for old-style unix daemons, start up scripts, and so on.
Easy to add on top of os/execute.
May want to consider allowing the same IO redirection as os/execute
and os/spawn.
May also want to put both fork and exec behind a config switch since I
suppose some systems may not support them, although I don't know of any
concrete examples.
2023-10-08 21:03:08 -05:00
Calvin Rose
6ae81058aa
Be more consistent with va_arg types.
2023-10-08 19:09:35 -05:00
Calvin Rose
4139e426fe
Refine interface for janet's new event loop.
...
Infer the current root fiber and force user to
allocate state for async events.
2023-10-08 18:25:46 -05:00
Calvin Rose
990f6352e0
Allow for unregistered streams w/ kqueue.
2023-10-08 17:21:42 -05:00
Calvin Rose
b344702304
Merge branch 'master' into ev-epoll-fewer-syscalls
2023-10-08 17:20:20 -05:00
Calvin Rose
894aaef267
Mac please
2023-10-08 15:42:54 -05:00
Calvin Rose
e209e54ffe
bsds are very strict on C standards
...
No labels before declarations.
2023-10-08 15:37:23 -05:00
Calvin Rose
7511eadaa7
Update code for freebsd and ENODEV on stream register
2023-10-08 15:26:02 -05:00
Calvin Rose
6c4906605a
Some bsds return ENODEV for devices like /dev/null
2023-10-08 15:09:53 -05:00
Calvin Rose
8a9be9d837
Make sure posted events are read from non-blocking socket.
2023-10-08 13:46:24 -05:00
Calvin Rose
b72098cc71
remove extra decref
2023-10-08 13:24:42 -05:00
Calvin Rose
defe60e08b
Handle refcounts in posted events.
2023-10-08 13:18:08 -05:00
Calvin Rose
7f852b8af4
Handle refcounts in posted events.
2023-10-08 13:14:36 -05:00
Calvin Rose
d71c100ca7
Revert "Add EV_EOF and EV_CLEAR to selfpipe for kqueue"
...
This reverts commit 5442c8e86d
.
2023-10-08 13:13:58 -05:00
Calvin Rose
5442c8e86d
Add EV_EOF and EV_CLEAR to selfpipe for kqueue
2023-10-08 12:34:13 -05:00
Calvin Rose
cf4901e713
Update docstring for os/posix-fork
2023-10-08 11:54:25 -05:00
Calvin Rose
4b8c1ac2d2
Add os/posix-fork
...
Very simple fork function that returns a process object that can be
waited on.
2023-10-08 11:09:00 -05:00
Calvin Rose
555e0c0b85
Try to capture more events in kqueue.
2023-10-08 10:52:27 -05:00
Calvin Rose
f1111c135b
Work on kq
2023-10-07 21:32:20 -05:00
Calvin Rose
3905e92965
kqueue mirror master branch implementation a bit better.
2023-10-07 12:53:59 -07:00
Calvin Rose
1418ada38f
Remove duplicate code in kqueue event handling.
2023-10-07 12:40:43 -07:00
Calvin Rose
9256a66b76
Update ev.c for removing msvc warnings
2023-10-07 12:11:14 -07:00
Calvin Rose
e8c013a778
Remove some extra fiber state and use a flag.
2023-10-07 12:07:05 -07:00
Calvin Rose
fea8242ea7
Reuse overlapped overhead on windows for something useful.
2023-10-07 11:25:20 -07:00
Calvin Rose
7bfb17c209
Lots of work to make iocp work again.
...
Big issue with IOCP vs. poll variants is that the overlapped
structures have a longer lifetime than intermediate state needed
for epoll. One cannot free overlapped structures after closing a
handle/socket, like one can do with any intermediate state when using
readiness-based IO.
2023-10-07 11:18:43 -07:00
Calvin Rose
e7e4341e70
Add EV_EOF for kqueue.
2023-10-06 17:39:52 -05:00
Calvin Rose
d07f01d7cb
Update kqueue
2023-10-06 01:33:51 -05:00
Calvin Rose
73291a30a0
Update marsh.c
2023-10-06 01:26:07 -05:00
Calvin Rose
a3b129845b
Quick blind take on getting kqueue similar to poll and poll.
2023-10-06 00:48:05 -05:00
Calvin Rose
0ff8f58be8
Simpler async model that is better suited to epoll
2023-10-06 00:37:19 -05:00
Calvin Rose
66292beec9
Don't mess with async connect on BSDs.
2023-10-04 23:33:40 -05:00