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
221645d2ce
More refinement of meson build.
2023-09-23 14:16:13 -07:00
Calvin Rose
2f4a6214a2
Make meson build work on windows.
...
By default, use more traditional linking pattern with meson.
The janet.exe will now link to janet-x.x.dll on windows (and
similar for linux/posix) when built with meson. This is slightly
less efficient and means that janet.exe built this way is no longer
standalone (you would need to move the dll along with the exe), but
plays better with most build systems.
2023-09-23 08:53:37 -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
Calvin Rose
c31314be38
Merge pull request #1296 from Andriamanitra/doc-loop-unless
...
add :unless modifier to (doc loop)
2023-09-22 05:41:06 -07: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
Calvin Rose
34767f1e13
Merge pull request #1292 from sogaiu/tweak-janetconf-h
2023-09-18 18:50:46 -07: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
Calvin Rose
dbcc1fad3e
Merge pull request #1289 from primo-ppcg/loop-unless
...
Add `:unless` loop modifier
2023-09-13 11:56:33 -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
Calvin Rose
ff18b92eb0
Merge pull request #1287 from pepe/fix-arr-push-doc
...
Document array/push variadic argument
2023-09-12 07:07:42 -07:00
Josef Pospíšil
7f148522ab
Document array/push variadic argument
2023-09-12 09:34:21 +02:00
Calvin Rose
159c612924
Update changelog.md
2023-09-09 11:03:14 -05:00
Calvin Rose
b95dfd4bdf
Update docstring.
2023-09-09 10:58:20 -05:00
Calvin Rose
e69954af2f
Merge pull request #1283 from primo-ppcg/mean-partition
...
Update `partition`, `mean`
2023-09-09 10:30:11 -05:00
primo-ppcg
a5ff26f602
add more test cases for partition
and mean
2023-09-08 16:30:44 +07: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
Calvin Rose
a13aeaf955
Merge pull request #1281 from primo-ppcg/interleave-interpose
...
Update `interleave`, `interpose`
2023-09-04 10:27:27 -05:00
primo-ppcg
9cf674cdcb
update interleave
, interpose
2023-09-04 17:09:53 +07:00
Calvin Rose
51c0cf97bc
Merge pull request #1280 from primo-ppcg/lengthable
...
Add `lengthable?`
2023-09-01 17:41:25 -05: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
Calvin Rose
bfb60fdb84
Merge pull request #1278 from primo-ppcg/loop-range
...
Allow one-term `:range` and `:down` forms
2023-08-29 08:23:36 -05: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
Calvin Rose
70a467d469
Merge pull request #1266 from primo-ppcg/min-max
...
Speed up `min`, `max`
2023-08-21 22:32:03 -05:00
primo-ppcg
6e8979336d
speed up min
, max
2023-08-22 00:39:28 +07:00
Calvin Rose
ee01045db5
Update CHANGELOG.md
2023-08-20 15:56:58 -05: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