1
0
mirror of https://github.com/janet-lang/janet synced 2026-05-23 13:52:16 +00:00
Commit Graph

2662 Commits

Author SHA1 Message Date
primo-ppcg db366558e7 add :unless loop modifier 2023-09-13 15:21:46 +07: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
primo-ppcg 831f41a62b move bytes?, indexed?, dictionary? to corelib 2023-08-08 10:00:05 +07:00
Calvin Rose 0ea1da80e7 Merge pull request #1242 from primo-ppcg/reverse
Rework `reverse`
2023-08-06 08:10:56 -05:00
primo-ppcg c8c0e112bc rework reverse 2023-08-06 16:16:41 +07:00
primo-ppcg 7417e82c51 rework keys, values, pairs 2023-08-06 15:39:16 +07:00
Calvin Rose ecc4d80a5a Prepare for 1.30.0 release. 2023-08-05 18:58:04 -05:00
primo-ppcg 8a70fb95b5 slight refactoring 2023-08-05 11:00:23 +07:00
primo-ppcg 61712bae9c speed up range creation 2023-08-02 01:26:03 +07:00
sogaiu f9233ef90b Add fopen reference to file/open docstring 2023-07-23 18:39:20 +09:00
Calvin Rose cd3573a4d2 Merge pull request #1224 from primo-ppcg/array-remove 2023-07-15 06:42:15 -05:00
Calvin Rose 738fe24e6d Allow buffer/blit to take explicit nils for default args.
Also small changes for range checking code.
2023-07-14 20:04:10 -05:00
primo-ppcg c2e55b5486 update docstrings for string/slice and tuple/slice 2023-07-15 00:52:12 +07:00
Calvin Rose 989f0726e3 Make encoding of immediate values capture full range. 2023-07-14 10:06:20 -05:00