Calvin Rose
ead0ed5d41
Merge branch 'master' into compile-opt
2025-09-21 20:02:31 -05:00
Calvin Rose
4da568254a
Manually declare chroot on macos.
2025-09-19 21:17:02 -05:00
Calvin Rose
357f1f94ca
Add os/posix-chroot
...
Gated in a similar manner to os/posix-fork.
2025-09-19 16:32:45 -05:00
Calvin Rose
015e49c806
Merge pull request #1645 from pyrmont/bugfix.avoid-apc-use
...
Use `SetEvent` rather than `QueueUserAPC` on Windows
2025-09-19 16:31:13 -05:00
Michael Camilleri
6b06ab5f9c
Remove unused function on Windows
2025-09-17 15:51:53 +09:00
Michael Camilleri
fe6c6e15a6
Add workaround to timer resolution issue on Windows
2025-09-17 15:48:37 +09:00
Michael Camilleri
b4eb52ca45
Start worker thread in suspended state on Windows
2025-09-16 11:57:40 +09:00
Michael Camilleri
aca5428846
Use SetEvent rather than QueueUserAPC on Windows
2025-09-16 10:24:24 +09:00
Calvin Rose
3dab9737e2
Fix #1643 , but add features.h
2025-09-15 15:33:18 -05:00
Calvin Rose
8e7b1e9ce0
Don't try for backwards compat with compiled modules - Address #1639
...
This guarantee is difficult to maintain and shouldn't be needed.
2025-09-06 10:35:10 -05:00
Calvin Rose
148e108864
Remove strnlen and correctly address #1600
2025-09-01 14:04:30 -05:00
Calvin Rose
c90c737345
Revert reordering 2.
2025-09-01 13:46:09 -05:00
Calvin Rose
13b9976382
Revert reordering of janet_deinit
2025-09-01 13:44:55 -05:00
Calvin Rose
095a81286a
Add per-thread finalizer calls in missing places.
2025-09-01 12:38:11 -05:00
Calvin Rose
82416e4e4e
Address #1629 - janet_deinit called before threaded channel message sent
...
to thread.
If we take a reference to another thread inside channel code, make sure
that we increase the refcount to avoid a use after free.
2025-09-01 12:30:29 -05:00
Calvin Rose
ae51434a05
Fix #1604 - Add JANET_DO_ERROR_* defines for failure flags from janet_dobytes.
2025-09-01 09:43:27 -05:00
Joshua Krusell
c5ba3c0513
Small spelling fixes
2025-08-31 12:14:51 +02:00
aeiouaeiouaeiouaeiouaeiouaeiou
896c28b0c8
os.c: use JANET_SPAWN_NO_CHDIR macros for macOS <10.15
...
Signed-off-by: aeiouaeiouaeiouaeiouaeiouaeiou <aeioudev@outlook.com >
2025-08-29 13:43:28 +03:00
Calvin Rose
fd234461d7
Merge pull request #1628 from snltd/illumos-support
...
illumos support
2025-08-24 16:18:09 -05:00
Calvin Rose
eabb215391
Use janet_gettime instead of clock_gettime in ev.c
...
We made the wrapper, let's use it. Also switch poll implementation to a
monotonic clock instead of realtime to be more inline with epoll and
kqueue.
2025-08-21 19:10:08 -05:00
snltd
deede6bae0
illumos support
2025-08-18 18:39:11 +00:00
Nicholas Rodrigues Lordello
ad8a5cb6c7
Read System Clock for Monotonic Time
...
This PR changes the `janet_gettime` implementation for OSX <10.12 to
read the system clock for `(os/clock :monotonic)`. As far as I was able
to find online this is _a_ monotonic clock, although it produces
different values from `clock_gettime(CLOCK_MONOTONIC, ...)` on the same
system. I can speculate that this is related to `SYSTEM_CLOCK` monotonic
time being implemented with `mach_absolute_time` which is documented to
_not advance during sleep_, and I suspect that
`clock_gettime(CLOCK_MONOTONIC, ...)` does.
**Resources**:
- `clock_get_time` implementation for the `SYSTEM_CLOCK`:
<e3723e1f17/osfmk/kern/clock_oldops.c (L284-L296) >
<2ff845c2e0/osfmk/arm/rtclock.c (L248-L260) >
- `mach_absolute_time` and `mach_continuous_time` definitions:
<e3723e1f17/osfmk/mach/mach_time.h (L55-L68) >
- Stack overflow post for implementing `clock_gettime` on OS X before 10.12:
<https://stackoverflow.com/questions/11680461/monotonic-clock-on-osx >
2025-08-18 14:41:09 +02:00
Nicholas Rodrigues Lordello
0624936711
Use CLOCKS_PER_SEC
...
The POSIX standard defines that `clock(3)` returns a `clock_t` as a
number of clock ticks in `CLOCKS_PER_SEC` and not `CLOCKS_PER_SECOND`,
[source](https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_types.h.html ).
2025-08-18 09:15:30 +02:00
Calvin Rose
4701bc6543
Add test patch for #1625
2025-08-17 20:55:52 -05:00
Seungki Kim
20535e8626
Add net/socket for unbound socket creation #1622
2025-08-14 00:40:22 +09:00
Seungki Kim
3ad86108f2
Fix: Correctly flag UDP streams in net/connect #1620
2025-08-11 20:56:04 +09:00
Calvin Rose
0aee7765cf
Windows quirk fix
2025-08-02 20:04:55 -05:00
Calvin Rose
4894a4673a
Fix abstract unix sockets for issue #1618 - address #1618
2025-08-02 19:00:47 -05:00
Calvin Rose
f00d3199c3
Fix #1609 Remove sigaction if JANET_NO_EV defined.
2025-08-02 18:19:39 -05:00
Calvin Rose
2e363bf29c
Remove extra call to filewatcher - address #1608
2025-07-13 18:34:12 -05:00
Calvin Rose
312f9faae8
Address #1609 - compile with JANET_NO_PROCESSES
2025-07-13 18:24:23 -05:00
Calvin Rose
21a6ed3bd3
Revert order change from f4ecb5a
...
janet_interpreter_interrupt should always be called before janet_interpreter_interrupt_handled, and the original code ensured that.
2025-06-26 19:20:07 -05:00
Calvin Rose
42bc504188
Merge branch 'master' into compile-opt
2025-06-21 16:49:24 -05:00
Calvin Rose
f4ecb5a90f
Reorder post event / interrupt sequence in deadline.
...
The interrupt message should come _after_ the post event is made.
2025-06-18 22:13:14 -05:00
Evan Shaw
bbe6b90331
Use strnlen when checking for null byte
2025-06-14 22:29:30 +12:00
Calvin Rose
f3ad13c2d4
Always cancel thread on windows.
2025-05-18 14:02:32 -05:00
Calvin Rose
8ac4eec370
Change ifdef structure.
2025-05-18 13:20:19 -05:00
Calvin Rose
92e91259c3
Don't call pthread cancel on normal exits.
...
Calling pthread_cancel on threads that can exit normally is not needed.
Instead, we immediately call pthread_join if a thread can exit normally.
2025-05-18 09:52:11 -05:00
Calvin Rose
e355cb07e0
Reorder declarations.
2025-05-18 09:27:01 -05:00
Calvin Rose
5bbfcdacd5
Work on #1596 - No detached threads, make sure to call pthread_join
...
Call pthread_join on all worker threads for timeouts. Previously, we
were leaking some threads, as well as creating a timeout and leaving
has_worker unset on certain timeouts.
2025-05-18 08:36:53 -05:00
Calvin Rose
790a4f2636
Make tests pass with clang sanitizers.
...
Fix some issue with clang sanitizers, name -fsanitize=thread and
-fsanitize=undefined. The threading issue arose from the implementation
of ev/deadlock when allowing for interpreter intrerrupts, as this is
implemented by racing a timeout thread with a worker thread.
The undefined behavior issue arose in some very old code in corelib.c that will
actually work as expected for most compilers, but was both undefined and
unecessary as we have a correct implemenation in util.c.
2025-05-17 21:28:41 -05:00
Calvin Rose
4643c8fa35
Squashed commit of the following:
...
commit c5b3da1ffe
Author: Calvin Rose <calsrose@gmail.com >
Date: Fri May 16 18:35:33 2025 -0500
Inter
2025-05-16 18:49:45 -05:00
Calvin Rose
a8e2c8e5b8
Address #1596 - Use atomic intrinsics to check allow_interrupt flag.
...
Use a relaxed memory order if possible to mitigate performance issues as
much as possible. relaxed memory order should be sufficient.
2025-05-16 18:26:43 -05:00
Calvin Rose
bef8ba5e06
Merge pull request #1594 from sogaiu/tweak-docstrings
...
Tweak docstrings for better handling
2025-05-08 17:00:32 -05:00
Calvin Rose
c3317905a1
Move sysir C lowering to separate file
2025-05-07 07:25:05 -05:00
Calvin Rose
0066a5a304
Start removing NASM dependence.
...
Start setting up a test suite for sysir and work towards emitting jitted
x86 machine code.
2025-05-04 20:20:11 -05:00
sogaiu
4b6d5e5671
Tweak docstrings for better handling
2025-05-02 18:54:18 +09:00
Agent Kilo
a695454dae
Try to fix cfun registry size check for cross-thread messages
2025-04-28 17:00:23 +08:00
Calvin Rose
f2eaa5dee8
Remove ev/to-stream.
...
The function has more problems than initially expected, both on Posix
systems and on Windows. Given all the caveats, it is probably best not
to include. Any function that can obtain files can use os/open instead.
The standard FILE objects also will not work anyway, and different
operating systems have different work arounds.
2025-04-18 18:20:27 -07:00
Calvin Rose
3dd6e744de
More work on e_mov - work on loading immediates.
2025-04-15 20:40:05 -05:00