Calvin Rose
980981c9ee
Print message if no hook found, but looked for
2024-05-15 07:30:29 -05:00
Calvin Rose
3c8346f24e
Install to bundle/ instead of _bundles/
2024-05-14 20:51:29 -05:00
Calvin Rose
42bd27c24b
Use a single janet file for hooks..
2024-05-14 16:45:27 -05:00
Calvin Rose
4a0f67f3bd
Update copyright.
2024-05-13 21:35:55 -05:00
Calvin Rose
09b6fc4670
Change storage locations for bundles.
...
Organize metadata a bit more cleanly under .bundles/<bundle-name>/
2024-05-13 20:59:06 -05:00
Calvin Rose
4d9bcd6bcc
Add is-backup option to bundle/pack.
...
We don't always to keep the old manifest and hooks.
2024-05-13 19:42:44 -05:00
Calvin Rose
cd34b89977
Rename bundle/backup to bundle/pack.
2024-05-13 19:38:14 -05:00
Calvin Rose
3151fa3988
Don't expose bundle/do-hook.
...
This is really an internal detail - rather than users writing
custom hooks, custom functionality should just be normal janet scripts.
2024-05-13 18:45:43 -05:00
Calvin Rose
5e58110e19
Add copyfile for copying large files.
2024-05-13 18:39:45 -05:00
Calvin Rose
1f39a0f180
Add bundle/backup and buffer/format-at
...
bundle/backup is needed to make failed reinstalls able to rollback. It
also allows python wheel like functionality, where bundles can be build
on one machine, packaged, and then distributed and installed on other
compatible machines without compilers.
buffer/format-at is to buffer/format as buffer/push-at is to
buffer/push. It allows us to format in the middle of an existing
buffer. Prior, to do this operation and extra buffer creating was
required.
2024-05-13 12:06:17 -05:00
Calvin Rose
367c4b14f5
Sync manifest on error so that we uninstall the correct files.
...
If we cannot create files during install, we want to be able
to do a correct rollback.
2024-05-12 15:08:27 -05:00
Calvin Rose
9c437796d3
Add first versions of bundle/* module
...
The bundle module contains tools for modifying the contents of
(dyn *syspath*) and providing a common interface for installing
packages (called "bundles").
The functions are:
* bundle/install
* bundle/uninstall
* bundle/manifest
* bundle/do-hook
* bundle/list
* bundle/add-file
* bundle/add-directory
A bundle is a directory that contains any number of source files and
other extra files, as well as a directory "hooks/", which contains a
flat listing of janet scripts. This version of the bundle module is not
responsible for building C source modules or for downloading files over
the network.
2024-05-12 14:42:05 -05:00
Calvin Rose
60e22d9703
Merge pull request #1445 from wishdev/defbind-alias
...
Add ffi/defbind-alias
2024-05-11 14:25:03 -05:00
John W Higgins
ee7362e847
Add ffi/defbind-alias
2024-05-09 21:31:22 -07:00
Calvin Rose
7c5ed04ab1
A few minor improvements.
...
- Add long-form CLI options
- Update changelog.
- Use snprintf instead of sprintf for linters.
2024-05-02 09:13:29 -05:00
Calvin Rose
4779a445e0
Fix BSD/Macos issue for #1431
2024-04-26 19:32:47 -05:00
Calvin Rose
f0f1b7ce9e
Address #1431 - level-trigger mode for net/accept-loop
...
In the edge-trigger mode before this change, if a socket
receives 2 connections before one can be handled, then only a single
connection is handle and 1 connection will never be handled in some
cases. Reverting to level-trigger mode makes this impossible.
2024-04-26 19:28:20 -05:00
Calvin Rose
7c9157a0ed
Remove unneeded string
functions.
2024-04-26 18:11:10 -05:00
Calvin Rose
bf19920d65
Improve casting.
2024-04-18 03:29:45 -05:00
Calvin Rose
2f0c789ea1
More work to address #1391
...
Properly set read_fiber and write_fiber to NULL when unused.
This was causing extra listening in the poll implemenation leading to
busy loops where a read was accidentally listening for POLLOUT.
2024-04-15 21:32:17 -05:00
Calvin Rose
a9b8f8e8a9
Address #1391 - set fd to negative value if not used.
...
See https://groups.google.com/g/comp.unix.programmer/c/bNNadBIEpTo/m/G5gs1mqNhbIJ?pli=1 for a conversation and workaround.
2024-04-15 18:12:42 -05:00
Calvin Rose
f92f3eb6fa
Address #1434 - add dynamic bindings for module state.
2024-04-15 16:20:13 -05:00
John W Higgins
623da131e5
os/clock docstring typos
2024-03-27 22:32:27 -07:00
John W Higgins
e89ec31ae5
Add additional format options for os/clock
2024-03-27 22:32:27 -07:00
Josef Pospíšil
9f9146ffae
Prepare for 1.34.0 release
2024-03-20 10:11:08 +01:00
Calvin Rose
ebb8fa9787
Merge pull request #1410 from sogaiu/ev-deadline-and-friends-doc-tweaks
...
Doc tweaks for ev/deadline and ev/with-deadline
2024-03-12 06:18:40 -07:00
Calvin Rose
9e6abbf4d4
Fix asm roundtrip issue.
2024-03-10 09:07:11 -05:00
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
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
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
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
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
Calvin Rose
bf2af1051f
Missing &&
2023-10-04 23:29:54 -05:00
Calvin Rose
b6e3020d4c
Attempt 2 to fix bsd compilation errors.
2023-10-04 23:27:56 -05:00
Calvin Rose
8f516a1e28
Address some bsd issues.
2023-10-04 23:24:40 -05:00
Calvin Rose
5f2e287efd
Make epoll event loop use EPOLLET and not reregister file descriptors.
...
This results in fewer system calls and presumably more effcient code. It
also brings the epoll (and kqueue) code more in line with how the
windows IOCP code works, incidentally.
2023-10-04 22:35:04 -05:00
Ian Henry
fa609a5079
fix some typos in docstrings
2023-10-03 19:17:18 -07:00
Calvin Rose
2ea90334a3
Remove some checking code for iocp events.
...
Be more permissive abouts events we get.
2023-10-02 23:25:26 -07:00
Calvin Rose
eea8aa555f
Revert dccb60b
to address #1299
...
This commit was to address issues with a use after free error in the
windows event loop, but the erroneous code was later reworked.
2023-10-03 00:14:25 -05:00
Calvin Rose
51a75e1872
Update janet_interpreter_interrupt to use new atomics
2023-10-01 10:52:05 -05:00
Calvin Rose
af7ed4322e
Get rid of req for 64 bit atomics
2023-10-01 10:27:51 -05:00
Calvin Rose
7cdd7cf6eb
Expose atomic refcounts to be easier to port.
...
This code was duplicate in a few places.
2023-10-01 10:09:23 -05:00
Calvin Rose
84ad161f1e
Add support for weak references in arrays.
...
Also change weak table syntax to not require keyword arguments.
2023-09-30 10:56:43 -05:00
Calvin Rose
6efb965dab
Merge branch 'weak-tables'
2023-09-29 07:38:21 -05:00
Calvin Rose
e05bc7eb54
Address compiler bug with break
.
...
Using result from `break` expression could trigger code that would
work, yet contain invalid, dead code preventing good marshalling.
2023-09-28 20:14:22 -05:00
Calvin Rose
b3a6e25ce0
Add weak references in the form of weak tables.
...
Any references exclusively held by a weak table may be collected
without the programmer needing to free references manually. A table
can be setup to have weak keys, weak values, or both.
2023-09-27 23:36:09 -05:00
Calvin Rose
d12464fc0e
Make poll work by going back to array of listeners for gc keeping.
2023-09-26 23:02:06 -05:00
Calvin Rose
a96971c8a7
More work on epoll implementation.
2023-09-26 12:05:06 -05:00
Calvin Rose
f6f769503a
Fix up ev.c to pass tests.
2023-09-26 11:11:29 -05:00
Calvin Rose
82917ac6e3
Kqueue fix.
2023-09-25 19:17:51 -07:00
Calvin Rose
a6ffafb1a2
Patches to kqueue implementation.
2023-09-25 19:07:18 -07:00
Calvin Rose
fb8c529f2e
Partial work updating epoll reimplentation.
2023-09-25 18:52:15 -07:00
Calvin Rose
1ee98e1e66
Get IOCP reworked event loop passing tests.
2023-09-25 15:19:39 -07:00
Calvin Rose
81f35f5dd1
Redo state management for Janet listeners.
...
Make more use of the built in GC code for abstracts to
be sure things are more correct. Issue before was streams could
be freed before IOCP events arrived.
2023-09-25 00:43:36 -07:00
Calvin Rose
1b402347cd
Work on debugging issue with server spawning.
2023-09-24 18:15:58 -07:00
Calvin Rose
dccb60ba35
Ignore IOCP where the event failed to deque.
2023-09-24 12:53:06 -07:00
Calvin Rose
471b6f9966
Add TOCLOSE back.
2023-09-24 12:28:35 -07:00
Calvin Rose
5dd18bac2c
More fixups to gc.c
2023-09-24 11:51:22 -07:00
Calvin Rose
018f4e0891
Remove some old code.
2023-09-24 10:30:58 -07:00
Calvin Rose
e85809a98a
Remove remains of gc instrumentation code.
2023-09-24 10:11:24 -07:00
Calvin Rose
e6e9bd8147
Redo async connect code to be moved out of ev.c.
...
Async connect is different than write.
2023-09-24 10:08:40 -07:00
Calvin Rose
e00a461c26
Add optional buffer-size to file/open.
...
This calls setvbuf to change FILE buffering. A goal is
to be able to use the existing file/* functions for blocking
IO analogous to `read` and `write` system calls.
2023-09-23 09:40:17 -05:00
Andriamanitra
ee142c4be0
truthy/falsey is more accurate than true/false
2023-09-22 03:04:41 +03:00
Andriamanitra
aeacc0b31b
add :unless modifier to (doc loop)
2023-09-21 19:23:40 +03:00
Calvin Rose
7b4c3bdbcc
Address issues from #1294 on non-nanboxed platforms.
...
Underlying bug was obscured by nanbox implementation.
2023-09-21 07:36:53 -07:00
Calvin Rose
910b9cf1fd
Distinguish between JANET_API and JANET_EXPORT
...
One is a way to export symbols, the other a way to reference
API functions. Also include prebuilt dlljanet.dll and dlljanet.lib
for windows to save people the trouble of compiling janet.c themselves.
2023-09-20 20:07:03 -07:00
Calvin Rose
b10aaceab0
Work on dllimport option for janet.
2023-09-20 17:34:42 -07:00
Calvin Rose
169bd812c9
Update state.h to #include <windows.h>
...
Should fix usage with msvc in some pipelines.
2023-09-18 23:51:15 -05:00
sogaiu
4f642c0843
Tweak janetconf.h
2023-09-19 10:34:50 +09:00
Calvin Rose
4e5889ed59
Prepare for 1.31.0 release.
2023-09-17 14:53:03 -05:00
Calvin Rose
a1b848ad76
Merge pull request #1288 from sogaiu/more-error-loc-info-in-dobytes
...
Report line and col more in janet_dobytes
2023-09-14 08:21:52 -07:00
primo-ppcg
db366558e7
add :unless
loop modifier
2023-09-13 15:21:46 +07:00
sogaiu
a23c03fbd0
Report line and col more in janet_dobytes
2023-09-13 15:41:14 +09:00
Josef Pospíšil
7f148522ab
Document array/push variadic argument
2023-09-12 09:34:21 +02:00
Calvin Rose
b95dfd4bdf
Update docstring.
2023-09-09 10:58:20 -05:00
primo-ppcg
a7536268e1
update partition
2023-09-08 12:38:58 +07:00
primo-ppcg
541469371a
update mean
2023-09-08 11:35:37 +07:00
primo-ppcg
9cf674cdcb
update interleave
, interpose
2023-09-04 17:09:53 +07:00
primo-ppcg
4cb1f616c5
allow reverse
on non-lengthable
2023-09-01 16:04:21 +07:00
primo-ppcg
645109048b
update keys
, values
, pairs
2023-09-01 13:18:31 +07:00
primo-ppcg
f969fb69e1
add lengthable?
2023-09-01 13:04:53 +07:00
primo-ppcg
2f43cb843e
Allow one-term :range
and :down
forms
2023-08-29 10:59:16 +07:00
Calvin Rose
874fd2aba7
don't crash repl if someone sets a bad *pretty-format*
2023-08-27 13:09:22 -05:00
Calvin Rose
33d1371186
Update specials.c for formatting.
2023-08-25 16:28:41 -05:00
Calvin Rose
d2dd241e6b
Merge pull request #1269 from primo-ppcg/check-nil-form
...
Optimize nil conditions for while and if
2023-08-24 09:30:58 -05:00
Calvin Rose
4ecadfabf4
Fix atomics - warnings on windows
2023-08-24 08:00:50 -05:00
Calvin Rose
ffd79c6097
Allow multiple simultaneous interrupts cleanly for #1262
...
Instead of setting a flag, each interrupt increments an atomic
counter. When the interrupt is finally handled, either by scheduling
code to run on the event loop or executing some out of band code, the
user must now decrement the interrupt counter with
janet_interpreter_interrupt_handled. While this counter is non-zero, the
event loop will not enter the interpreter. This changes the API a bit but
makes it possible and easy to handle signals without race conditions
or scheduler hacks, as the runtime can ensure that high priority code is
run before re-entering possibly blocking interpreter code again.
Also included is a new function janet_schedule_soon, which prepends to
the task queue instead of appending, allowing interrupt handler to skip
ahead of all other scheduled fibers.
Lastly, also update meson default options to include the
interpreter_interrupt code and raise a runtime error if os/sigaction
is used with interpreter interrupt but that build option is not enabled.
2023-08-24 07:38:53 -05:00
primo-ppcg
35a8d2a519
Optimize nil conditions for while and if
2023-08-24 17:50:31 +07:00
Calvin Rose
21eab7e9cc
Update sigaction to help address #1262 .
...
Update example to have 4 cases - case 3 was previously broken but should
now work.
2023-08-23 09:16:59 -05:00
Calvin Rose
d9605c2856
Allow iterating over generators with pairs, keys, and values.
2023-08-22 19:25:05 -05:00
primo-ppcg
6e8979336d
speed up min
, max
2023-08-22 00:39:28 +07:00
Calvin Rose
b7f8224588
Address #1263
...
Fix reference counting when cleaning up unused abstract types
per-thread.
2023-08-20 14:53:25 -05:00
Calvin Rose
ca4c1e4259
Try to use atomics inside signal handler for ref count.
2023-08-20 08:49:49 -05:00
Calvin Rose
91712add3d
Fix threaded abstracts in min build.
2023-08-19 20:19:05 -05:00
Calvin Rose
7198dcb416
Add sanboxing for signal handling.
2023-08-19 17:44:04 -05:00
Calvin Rose
08e20e912d
Use pthread_sigmask when adding signal handlers.
2023-08-19 17:30:55 -05:00
Calvin Rose
f45571033c
Add os/sigaction for signal handling.
...
Also improve interrupts to work better with busy loops
and signals.
2023-08-19 13:26:29 -05:00
Calvin Rose
2ac36a0572
Merge pull request #1257 from primo-ppcg/any-every
...
Update `any?`, `every?`
2023-08-18 07:20:44 -05:00
Calvin Rose
3df1d54847
Merge pull request #1258 from primo-ppcg/each
...
Update `each` keys before body
2023-08-18 07:16:19 -05:00
primo-ppcg
6222f35bc8
add buffer/from-bytes
2023-08-18 12:35:12 +07:00
primo-ppcg
2f178963c0
update each
keys before body
2023-08-18 10:32:24 +07:00
primo-ppcg
15760b0950
update any?
, every?
...
Updates `any?` and `every?` to be exact functional analogues to `or` and `and`.
2023-08-18 07:39:30 +07:00
Calvin Rose
43a6a70e1e
Merge pull request #1255 from primo-ppcg/sort
...
Special case common `sort` usages
2023-08-16 20:34:17 -05:00
Calvin Rose
cd36f1ef5f
Distinguish between threaded channels and non-threaded when marshalling.
...
Threaded channels _can_ be marshalled, just not for communication
between threads. This is a special case since the same abstract type
is used for both threaded and non-threaded channels.
2023-08-16 14:26:52 -05:00
primo-ppcg
cdd7083c86
special case common sort
usages
2023-08-15 11:58:22 +07:00
Calvin Rose
8df7364319
Quick fix for discussion #1253
...
Protect against garbage collection during connect.
2023-08-13 12:00:54 -05:00
Calvin Rose
63023722d1
Merge pull request #1246 from wooosh/use-object-typedefs
...
Use typedefs for strings, symbols, keywords, tuples, structs, and abstracts.
2023-08-13 08:33:19 -05:00
primo-ppcg
53e16944a1
rework reverse
, again
2023-08-13 00:54:17 +07:00
primo-ppcg
9238b82cde
speed up compare
2023-08-11 23:48:29 +07:00
wooosh
701913fb19
Use typedefs for strings, symbols, keywords, tuples, structs, and abstracts.
2023-08-09 16:09:34 -04:00