Calvin Rose
8680aef42f
Merge pull request #1146 from zevv/os-clock
...
Add clock sources to os/clock (:realtime, :monotonic, :cputime)
2023-05-21 08:35:24 -05:00
Calvin Rose
c3fd71d643
Merge pull request #1142 from tionis/thaw
...
added thaw to complement freeze
2023-05-21 08:09:47 -05:00
Ico Doornekamp
30c47d685d
Fixed :cputime because msdn does not implement clock() properly
2023-05-21 07:29:27 +02:00
Ico Doornekamp
e8e5f66f4c
Implement janet_gettime() for win32 and macos; need testing
2023-05-21 07:29:27 +02:00
Ico Doornekamp
aaf3d08bcd
Added 'source' argument to os/clock to select the clock source
2023-05-21 07:29:27 +02:00
Ico Doornekamp
61132d6c40
os/time and janet_gettime now use CLOCK_MONOTONIC instead of CLOCK_REALTIM, this matches the description from the documentation of os/clock. Fixes issue #1144
2023-05-21 07:29:27 +02:00
tionis
9cc0645a1e
added test for thaw and freeze
2023-05-20 17:35:25 +02:00
Calvin Rose
fc8c6a429e
Modulo should not be variadic.
2023-05-20 07:45:18 -05:00
Calvin Rose
2f966883d9
Fix #1145 - variadic imperative arith. macros.
...
Also update CHANGELOG
2023-05-20 07:42:50 -05:00
tionis
320ba80ca1
added support for tables/structs with prototypes in thaw
2023-05-20 14:00:33 +02:00
Calvin Rose
b621d4dd2e
Merge pull request #1139 from zevv/async-connect
...
changed net/connect to be non-blocking / asynchronous
2023-05-19 21:12:16 -05:00
tionis
56d927c72d
added thaw to complement freeze
2023-05-19 21:18:54 +02:00
tionis
53afc2e50a
Merge branch 'janet-lang:master' into master
2023-05-19 19:14:12 +00:00
Ico Doornekamp
89debac8f6
Fixed janet_loop1_impl stream use after dealloc
2023-05-19 20:00:59 +02:00
Ico Doornekamp
a6a097c111
Add CI test for mingw/wine on linux
2023-05-18 15:15:41 +02:00
Ico Doornekamp
c3e28bc924
added deferred closing of streams after async connect() fails
2023-05-18 14:10:22 +02:00
Ico Doornekamp
8d78fb1f6b
changed net/connect to be non-blocking / asynchronous
2023-05-18 10:55:48 +02:00
Calvin Rose
d6f5a060ed
Squashed commit of the following:
...
commit 725b8749464895e21c761f1c5479692335282f62
Author: Calvin Rose <calsrose@gmail.com>
Date: Tue May 16 20:58:34 2023 -0500
Update header file.
commit 38bf2a5131
Author: Calvin Rose <calsrose@gmail.com>
Date: Tue May 16 19:43:22 2023 -0500
Run experiment on bsd.
2023-05-16 21:00:31 -05:00
tionis
0f35acade1
use SIGTERM for os/proc-kill signal test
2023-05-16 18:47:38 +02:00
tionis
56d72ec4c5
support sending signals to processes on windows
2023-05-16 17:07:51 +02:00
tionis
0b58e505ee
os/proc-kill now accepts an optional signal to send
2023-05-16 00:44:19 +02:00
Ico Doornekamp
2a6c615bec
features.h: define _DARWIN_C_SOURCE for __APPLE__
2023-05-15 16:55:09 +02:00
Ico Doornekamp
ab8c5a0b5f
net/setsockopt optname symbols are now lower case
2023-05-15 15:25:09 +02:00
Ico Doornekamp
68c35feaea
Formatting
2023-05-15 12:33:37 +02:00
Ico Doornekamp
88d0c2ca0f
add net/setsockopt
2023-05-15 12:15:36 +02:00
Calvin Rose
398833ebe3
Enable FFI module unconditionally.
2023-05-14 09:18:54 -05:00
Calvin Rose
358f5a03bf
Version bump to 1.28.0
2023-05-13 09:59:55 -05:00
Calvin Rose
fba1fdabe4
Update short-fn to fix #1123
...
Symbols are renamed on expansion to avoid the issue.
2023-05-13 09:44:30 -05:00
Calvin Rose
20ada86761
Fix NAN typo.
2023-05-12 19:08:26 -05:00
Calvin Rose
1467ab4f93
Copy paste error.
2023-05-11 20:56:12 -05:00
Calvin Rose
7e65c2bdad
Fix #1130 - mod flipped for signed integers.
2023-05-11 18:15:37 -05:00
Calvin Rose
84a4e3e98a
Update CHANGELOG.
...
and format.
2023-05-11 18:03:38 -05:00
Calvin Rose
bcbeedb001
Merge pull request #1128 from zevv/master
...
Added os.strftime()
2023-05-11 18:01:39 -05:00
Chloe Kudryavtsev
ac75b94679
Make JANET_FN_S* sourceline const
...
Otherwise attempts to use it on some platforms cause the following error
`error: initializer element is not a compile-time constant`
when attempting to use the corresponding `JANET_REG`.
2023-05-11 16:07:34 -04:00
Ico Doornekamp
5cd729c4c1
Added os.strftime()
2023-05-11 06:08:19 +02:00
Calvin Rose
c9fd2bdf39
Merge branch 'master' of github.com:janet-lang/janet
2023-05-10 18:46:42 -05:00
Calvin Rose
e4be5992b3
Address issue with #1131
2023-05-10 18:43:33 -05:00
Calvin Rose
2ac4988f1b
Merge pull request #1124 from sogaiu/tweak-ev-select-docstring
...
Tweak ev/select docstring
2023-05-08 04:17:25 -05:00
Calvin Rose
19f14adb9e
Update changelog.
2023-05-07 21:07:22 -05:00
Calvin Rose
86de039492
Merge branch 'master' of github.com:janet-lang/janet
2023-05-07 11:54:20 -05:00
Calvin Rose
2360164e4f
Address #1125 - fix ev/select to only take and release locks once.
...
By take and releasing locks twice per channel in the case where nothing
is reading, there was an opportunity for ev/select to hang in the
multithreaded case. Also silence valgrind/helgrind errors.
2023-05-07 11:54:06 -05:00
sogaiu
cd19dec44a
Tweak ev/select docstring
2023-05-07 22:22:33 +09:00
Chloe Kudryavtsev
53ba9c800a
Add get/opt cbytes
...
Like getcstring, but operates on a byteview.
When writing bindings (i.e what capi.c is primarily used for), it's
common to want to accept a buffer *or* a string rather than just
a string.
For this, a byteview is perfect (and why not accept keywords while
you're at it?).
However, there's no built-in function for getting a cstring out of
a byteview, this adds one.
This also reformulates getcstring to be an edge-case of getcbytes
(simply adding an explicit check for stringness).
2023-05-06 22:13:53 -04:00
Calvin Rose
cabbaded68
Add support for the NO_COLOR environment variable.
2023-05-06 16:33:45 -05:00
Calvin Rose
c3a06686c2
Merge branch 'shell-win-feature-check'
2023-05-06 15:53:02 -05:00
Calvin Rose
7d57f87007
Address #1121 - disallow extra splices.
...
This turns splices that are ignored into compiler errors. Other
alternatives here should also be considered, for example making this
a compiler warning rather than an error. For example, the latest
spork as of a3ee63c137ee3234987dbbca71b566994ff8ae8c has an error of this
kind, but the resulting program does work correctly.
Also disallow splice propagation - code of the
form (+ 1 (do ;[2 3 4]) 5).
2023-05-06 13:12:31 -05:00
Calvin Rose
4cc4a9d38b
(and ... <truthy-value> true) will return true
as per docs.
2023-05-06 10:16:05 -05:00
Calvin Rose
696efcb9e2
Add header file.
2023-04-30 12:19:55 -05:00
Calvin Rose
6e9cde8ac1
Add feature check for windows version shell.c
...
Tried to get console working on windows 7 and below
2023-04-30 10:36:42 -05:00
Calvin Rose
440af9fd64
Remove extra allocation in drop.
2023-04-24 09:41:33 -05:00
Calvin Rose
347721ae40
Fix macos behavior - Closes #1097 , Fixes #1015
2023-04-24 09:37:49 -05:00
Calvin Rose
daea91044c
Give different names to the user9 and user8 fiber statuses.
...
These now have semantic menaings that are pretty difficult to
work around. Code that tries to maniuplate user8 and user9 signals
right now may be affected
2023-04-24 09:19:15 -05:00
Calvin Rose
4ed3f2c662
Merge pull request #1114 from ianthehenry/drop-from-end
...
drop with a negative count now drops from the end
2023-04-24 09:16:10 -05:00
Calvin Rose
e4b68cd940
Merge pull request #1109 from wackbyte/remove-double-space
...
Remove double space in help message
2023-04-24 09:11:45 -05:00
Calvin Rose
b8c936e2fe
Merge pull request #1113 from ianthehenry/catseq
...
add catseq
2023-04-24 09:07:38 -05:00
Ian Henry
54b54f85f3
drop with a negative count now drops from the end
2023-04-23 21:39:14 -07:00
Ian Henry
ccd874fe4e
add catseq
2023-04-23 21:20:01 -07:00
Ian Henry
9dc7e8ed3a
peg replacement functions have access to captures
...
When peg/replace or peg/replace-all are given a function to serve as the text
replacement, any captures produced by the PEG are passed as additional
arguments to that function.
2023-04-23 09:15:46 -07:00
Ian Henry
485099fd6e
string and peg replacement functions can now take functions
...
Functions will be invoked with the matched text, and their result will be
coerced to a string and used as the new replacement text.
This also allows passing non-function, non-byteviewable values, which will be
converted into strings during replacement (only once, and only if at least
one match is found).
2023-04-23 08:36:17 -07:00
wackbyte
d359c6b43e
Remove double space in help message
2023-04-22 21:46:24 -04:00
Chloe Kudryavtsev
0902a5a981
improve null format handling
...
there was a request to improve the error message, but the whole function
has non-informative errors. (both functions, actually, since the code is
duplicated)
as such, instead of catching it directly, address the assumption that
led to the SIGSEGV and let it be caught by the functions themselves,
thus reusing existing error messages (which can then be improved
separately).
2023-04-20 11:51:11 -04:00
Chloe Kudryavtsev
f3192303ab
check for NULL in get_fmt_mapping ( fixes #1105 )
...
When there is no format to be found after a %, get_fmt_mapping returns
NULL. It then gets called against strlen, which is a typical SEGV.
Check for NULL aginst mapping, which signals a null format being
specified.
2023-04-19 12:55:25 -04:00
ML
b6175e4296
Add keep-syntax
and keep-syntax!
functions
...
These functions are designed to make it easier to properly preserve the
sourcemap and tuple type in macros. This commit also modifies the threading
macros to make use of these functions.
2023-04-07 21:09:52 -04:00
Calvin Rose
3858b2e177
Add ev/all-tasks
to get running and pending root fibers.
2023-04-01 18:57:13 -05:00
Calvin Rose
9a76e77981
Update for undefined behavior sanitizer.
2023-03-24 18:49:21 -05:00
Calvin Rose
8182d640cd
Merge branch 'master' of github.com:janet-lang/janet
2023-03-12 10:33:06 -05:00
Calvin Rose
1c6fda1a5c
Address #1076 - unexpected shadowing behavior
...
While the old behavior was reasonable, it is not spelled out anywhere
in the documentation and was incidental rather than intentional.
Parameters of the same name of the function should probably take
precedence on name collision, following the principle of least surprise.
2023-03-12 10:30:59 -05:00
Ian Henry
4e7930fc4c
remove quotes around log-gamma
2023-03-11 12:26:45 -08:00
Charlotte Koch
575af763f6
os/which can return :dragonfly
...
While here, document that :bsd is another possible return value.
2023-03-07 06:45:31 -08:00
Charlotte Koch
8b16b9b246
Need to enable __BSD_VISIBLE on DragonFly in conjunction with -std=c99
2023-03-07 06:40:58 -08:00
Calvin Rose
01aab66667
Prepare for 1.27.0 release.
2023-03-05 09:48:25 -06:00
Calvin Rose
aa5c987a94
Change semantics of bracketed tuple equality.
...
Comparison between different bracket and normal tuples
will now take into account the delimiter type. This solves strange
non-locality issues in the compiler due to this false equality, and is
more consistent with Janet's otherwise strong equality philosophy.
2023-03-03 18:24:02 -06:00
sogaiu
9d5b1ba838
Tweak math/rng-int docs
2023-02-24 19:55:47 +09:00
sogaiu
3c523d66e9
Add file/tell
2023-02-21 20:19:17 +09:00
Ian Henry
b442b21d3f
fix a segfault in the (number) special
...
This was an error about the base argument that referenced the tag argument,
which might not exist.
2023-02-20 17:07:42 -08:00
Calvin Rose
746ff5307d
Update for more minimal builds.
2023-02-12 12:14:11 -06:00
Calvin Rose
ef85b24d8f
Add optional offset to ffi/write.
2023-02-12 12:08:28 -06:00
Calvin Rose
c55d93512b
Add buffer/push-at for easier manipulation of buffers
...
buffer/blit is difficult to use, and while buffer/push is the easiet
buffer manipulation function to use it only appends to the buffer.
buffer/push-at lets users manipulate buffers at any index - useful
for buffers used as an in-memory databases, for example.
2023-02-12 11:26:00 -06:00
Calvin Rose
2e38f9ba61
Allow passing pointer-buffers to other threads.
2023-02-12 11:07:45 -06:00
Calvin Rose
1cadff8e58
Add ffi/pointer-buffer for easier memory manipulation in FFI.
...
Added underlying buffer support for buffer instances that cannot
reallocated underlying memory - useful for (small) memory mapped
files and other FFI utilties.
2023-02-12 09:20:05 -06:00
Calvin Rose
d1eba60ba8
Add separate sandbox flag for file/temp
...
Doesn't really impart (much) file systtem information when used, and
can be used for a lot of things where file functions are used to process
in a stream.
2023-02-09 08:57:53 -06:00
Calvin Rose
057dccad8f
Turn on nanboxing by default for risc-v 64.
2023-02-09 03:09:53 -06:00
Calvin Rose
4285200b4b
Add a sandbox option to disable native modules.
...
Also sort the sandbox docstring list.
2023-02-09 00:19:56 -06:00
Calvin Rose
73c2fbbc2a
Check sandbox capabilities instead of ignoring unknown ones.
2023-02-06 17:38:00 -06:00
Calvin Rose
37b7e170fa
Update changelist.
2023-02-06 12:31:49 -06:00
Calvin Rose
b032d94877
Add sandboxing API.
...
The sandboxing API is meant to make janet a bit more attractive
for certain application embedding use cases. The sandboxing API
puts limits on what system resources the interpreter can access.
2023-02-06 09:05:57 -06:00
Calvin Rose
9476016741
Update asm.c
2023-02-05 23:49:18 -06:00
Calvin Rose
7a1c9c7798
Add support for debugging upvalues.
...
Upvalues are stored in the symbol slots structure as well, but
since they are always live, we repurpose the death_pc field to
refer to the environment index that we want to look at at runtime.
2023-02-05 15:30:01 -06:00
Calvin Rose
c7fb7b4451
Merge branch 'master' into localbindings
2023-02-05 11:36:57 -06:00
Calvin Rose
67c474fc7a
More fixes to ev/gather (tested on httpf server).
2023-02-05 10:21:37 -06:00
Calvin Rose
4e8154cf8a
Fix ev/gather to cancel children on cancellation.
...
Otherwise, we would be leaving zombie fibers around.
2023-02-05 09:43:16 -06:00
Calvin Rose
9582d3c623
Allow infinite wait to work without issues.
2023-02-05 09:29:39 -06:00
Calvin Rose
0079500713
Merge branch 'master' into localbindings
2023-02-04 13:39:24 -06:00
Calvin Rose
55af6ce834
Fix write after free with printing to files.
2023-02-04 13:36:30 -06:00
Calvin Rose
3e82fdc125
Update symbolmapping code with marshal/unmarshal.
2023-02-03 17:33:11 -06:00
Calvin Rose
7344a6cfc0
Fix null check.
2023-02-03 16:24:50 -06:00
Calvin Rose
0aded71343
Fix issue with environments in asm.c
2023-02-03 16:24:50 -06:00
Calvin Rose
7663b1e703
Fix null check.
2023-02-02 22:03:18 -06:00
Calvin Rose
282546c03f
Fix issue with environments in asm.c
2023-02-02 21:12:17 -06:00
Calvin Rose
f4bc89d1c0
Progress.
2023-02-02 21:08:48 -06:00
Jona Ekenberg
c0c8ab25e6
added symbolslots to asm
2023-02-01 21:12:42 +01:00
Jona Ekenberg
ce31db09e4
symbolslots should be gc'd, local_symbols always pushed in case *debug* is set in middle of function
2023-02-01 11:45:13 +01:00
Jona Ekenberg
624a6cf619
symbolslots nil when there are no symbols, changed debugger to not have special case
2023-02-01 11:25:52 +01:00
Jona Ekenberg
587aa87d28
symbolslots now use janet_v vectors, flat structure
2023-02-01 11:06:33 +01:00
Jona Ekenberg
88813c4f87
initial slotsyms implementation
2023-02-01 09:39:24 +01:00
Calvin Rose
dacbe29771
Allow round-tripping more functions with disasm and asm.
...
Nested functions that captured with environments didn't
work well with asm.
2023-01-30 09:04:42 -06:00
Calvin Rose
05e7f974e3
Add os/compiler to the core.
...
Allows querying what compiler was used to compile Janet.
2023-01-28 14:00:02 -06:00
Calvin Rose
0dbef65a73
Merge pull request #1065 from sogaiu/comment-tweaks
...
Misc comment tweaks
2023-01-27 11:26:05 -06:00
Calvin Rose
9106228787
Add :riscv32 and :riscv32 values for os/arch.
2023-01-27 11:23:57 -06:00
Calvin Rose
6ae3bdb25c
Add RISC-V 64 bit detection in janet.h
2023-01-26 22:40:05 -06:00
sogaiu
310bcec260
Misc comment tweaks
2023-01-25 18:45:19 +09:00
Calvin Rose
8c4cc4e671
Merge pull request #1064 from sogaiu/realpath-doc-tweak
...
Update os/realpath docstring
2023-01-24 09:50:44 -06:00
Calvin Rose
c6eaaa83ed
Buffer initialized with janet_buffer_init will not be gced.
...
Set an internal flag that disables garbage collection on such
buffers. For all currently correct usage, this should have no effect,
and will fix use cases where buffers are initialized this way and then
passed to the interpreter.
2023-01-23 20:57:30 -06:00
sogaiu
8f598d6f96
Update os/realpath docstring
2023-01-23 12:55:04 +09:00
Calvin Rose
8955e6f536
Merge branch 'master' of github.com:janet-lang/janet
2023-01-22 11:05:39 -06:00
Calvin Rose
f8ddea6452
Add msys2 testing with github actions.
2023-01-22 11:05:27 -06:00
alectroemel
1acf4c3ab7
add int32_t type for file flags, just like header
...
Signed-off-by: alectroemel <alectroemel@hotmail.com>
Signed-off-by: alectroemel <alec@mirusresearch.com>
2023-01-22 10:24:46 -06:00
Calvin Rose
07a3158fba
Merge pull request #1060 from ianthehenry/doc-typos
...
Fix some docstring typos
2023-01-21 16:21:57 -06:00
bakpakin
a490937cd9
Add :mingw value when getting the OS setting when compiled with mingw.
2023-01-21 11:50:03 -06:00
bakpakin
8ee5942481
Fix windows build with JANET_NO_NET - #1055
2023-01-21 10:56:20 -06:00
bakpakin
93b469885a
Initial Mingw support with Makefile.
...
Also add a macro JANET_MSVC to distinguish between
a windows build (JANET_WINDOWS) and a build with msvc.
2023-01-21 10:37:34 -06:00
Calvin Rose
d8d1de2dcb
Don't compile library loading code on windows if it is disabled.
2023-01-21 09:36:03 -06:00
Ian Henry
ab224514f0
Fix some docstring typos.
2023-01-18 19:41:56 -08:00
Calvin Rose
75179de8da
Merge pull request #1056 from fd00/use-dev-urandom-on-cygwin
...
Use `/dev/urandom` for `janet_cryptorand` on cygwin
2023-01-08 09:29:52 -06:00
Calvin Rose
c28df14e6b
Prepare for 1.26.0 release
2023-01-07 15:08:40 -06:00
Calvin Rose
b73855b193
Merge branch 'master' of github.com:janet-lang/janet
2023-01-07 15:05:16 -06:00
Calvin Rose
a0f40042cb
Update copyright year.
2023-01-07 15:03:35 -06:00
Daisuke Fujimura (fd0)
3254c2c477
Use /dev/urandom for janet_cryptorand on cygwin
2023-01-07 08:58:35 +09:00
Calvin Rose
a8a78d4525
Merge pull request #1052 from dressupgeekout/cpu_count_reduced_os
...
(os/cpu-count) should not be defined at all with JANET_REDUCED_OS
2022-12-16 11:11:30 -06:00
Calvin Rose
57e6ee963d
Merge pull request #1046 from dressupgeekout/charlotte_sort_doc
...
Explicitly mention that `sort-by` sorts a list in place.
2022-12-16 11:11:07 -06:00
Calvin Rose
ce6bfb8420
Merge pull request #1049 from harryvederci/patch-1
...
Improve documentation for the `all` function.
2022-12-16 09:51:59 -06:00
Calvin Rose
f0672bdc59
Merge pull request #1051 from sogaiu/math-abs-vs-fabs-issue
...
Tweak math/abs to improve doc result
2022-12-16 09:51:43 -06:00
Charlotte Koch
23de953fbd
(os/cpu-count) should not be defined at all with JANET_REDUCED_OS
2022-12-15 20:16:43 -08:00
Calvin Rose
d5ee6cf521
Add malloc and free to ffi.
...
Very "unsafe", but a good tool of last resort. In most cases
a buffer is preferable, but the lifetime can be a bit unclear.
This allows very granular control over memory.
2022-12-15 21:35:44 -06:00
sogaiu
fb7981e053
Tweak math/abs to improve doc result
2022-12-11 00:09:50 +09:00
harryvederci
846123ecab
Improve documentation for the all
function.
2022-12-09 11:16:42 +00:00
Calvin Rose
90f212df92
Add length method ffi/jitfn abstract values.
2022-12-04 11:08:17 -06:00
Calvin Rose
aa60c1f36a
Add ffi jit example.
2022-12-03 17:52:23 -06:00
Calvin Rose
c731f01067
Address windows compilation warning.
2022-12-03 12:10:22 -06:00
Calvin Rose
6c9c1cdb30
MAP_ANON(YMOUS) not strictly needed.
2022-12-03 11:45:33 -06:00
Calvin Rose
9ba2b40e87
Add MAP_ANON instead of MAP_ANONYMOUS for mac
2022-12-03 11:31:04 -06:00
Calvin Rose
7a3d055012
Add ffi/jitfn for JIT compilation.
...
Convert a byte sequence of machine code to an
an executable pointer that can be used with ffi/call.
2022-12-03 11:26:23 -06:00
Calvin Rose
0824f45e29
Format compile.c
2022-11-27 10:15:01 -06:00
Charlotte Koch
4debe3446c
Explicitly mention that sort-by
sorts a list in place.
2022-11-20 20:51:49 -08:00
Calvin Rose
07fe9bcdf6
Update state header to include pthread
2022-11-11 11:48:50 -06:00
Calvin Rose
6a557a73f5
Simplify eval.
...
Also add more conventional handling of nil to the `compile` function.
2022-11-11 11:25:06 -06:00
Calvin Rose
8d1cfe0c56
Simplify eval-string implementation.
2022-11-11 11:15:53 -06:00
Calvin Rose
a3a42eebea
Create pthread threads with detached attribute.
...
Rather than calling pthread_detach on a default thread.
2022-11-11 11:01:59 -06:00
Calvin Rose
76be8006a4
Add channel marshalling.
2022-11-10 16:32:54 -06:00
Calvin Rose
bfcfd58259
Update for TCC to include stdatomic.h
2022-11-09 07:55:21 -06:00
Calvin Rose
914a4360e7
Indicate version bump since header file changed.
2022-11-05 16:38:52 -05:00
Calvin Rose
8c31874eeb
Remove unused assert.h
2022-11-05 11:44:14 -05:00
Calvin Rose
ef7afeb2ea
Add 64 bit integer support to printf and other formatting functions.
2022-11-05 11:33:19 -05:00
Calvin Rose
c8974fffbe
Fix docstring.
2022-11-04 11:23:08 -05:00
Calvin Rose
b75fb8dc9e
Add :@all: to module/expand-path
...
Allow more easily importing modules from custom directories
without jumping through too many hoops. Technically, this was
possible before but required circumventing the built-in module/paths
and was just a hassle.
Also add entries to module/path (and module/add-path) to allow code
like the following.
(setdyn :my-libs "/home/me/janet-stuff/")
(import @my-libs/toolbox)
Intended for things like test harnesses where code might not
be installed to the usual directories.
2022-11-04 11:15:48 -05:00
Calvin Rose
57356781a9
Fix typo.
2022-10-30 13:36:13 -05:00
Calvin Rose
e43eab5fd6
Fix panicf call.
2022-10-30 09:57:40 -05:00
Calvin Rose
894cd0e022
Prepare for 1.25.1 release.
2022-10-29 11:58:29 -05:00
Calvin Rose
db2c63fffc
Update CHANGELOG.md
2022-10-24 20:32:02 -05:00
Calvin Rose
60e0f32f1a
Fix os/open with :rw permissions on posix.
2022-10-24 19:39:58 -05:00
Calvin Rose
e731996a68
Allow overriding JANETCONF_HEADER in Makefile.
...
This allows a configuration workflow that is a bit simpler than before
and doesn't requiring applying patches. Instead, add a config.mk to
source dir with JANETCONF_HEADER=myconfig.h and compile as usual.
The patching workflow will of course still work exactly as before.
2022-10-24 09:49:51 -05:00
Calvin Rose
fd59de25c5
Add memcmp to the core. Useful in binary protocol implementations.
2022-10-18 11:54:07 -05:00
Calvin Rose
54b52bbeb5
Prepare for 1.25.0 release.
2022-10-10 18:24:48 -05:00
Calvin Rose
448ea7167f
Add CLOEXEC when calling accept on Linux.
...
Prevents leakage of file descriptors to subprocesses.
The symptom of the above issue is sockets that don't seem to close
until a subprocess completes.
2022-10-10 18:06:31 -05:00
Calvin Rose
6b27008c99
Fix os/date with nil argument.
2022-10-10 15:24:28 -05:00
Calvin Rose
725c785882
Formatting.
2022-10-10 14:24:03 -05:00
Calvin Rose
ab068cff67
Remove WNOWAIT code on linux.
...
Would cause os/proc-wait to block in some circumstances.
2022-10-10 14:23:17 -05:00
bakpakin
9dc03adfda
Fix pass by reference in windows FFI to accomodate stack shift.
2022-09-22 10:58:16 -05:00
bakpakin
49f9e4eddf
Fix ifdef in capi.c for janet_getuinteger64 and janet_getinteger64
2022-09-20 15:42:20 -05:00
bakpakin
43c47ac44c
Address #1037 - move stack hack after arg writing logic to avoid
...
clobber.
2022-09-20 15:37:20 -05:00
Calvin Rose
f33c381043
Improve sysv64 classify algorithm.
2022-09-20 09:45:17 -05:00
Calvin Rose
3479841c77
Address #1034 - add handling for 8-16 byte structs in FFI.
2022-09-20 09:28:46 -05:00
Calvin Rose
6a899968a9
Allow passing user signals to (signal) as keywords.
2022-09-17 21:18:07 -05:00
Calvin Rose
bb8405a36e
Merge pull request #1029 from locriacyber/patch-0
...
Fix documentation for ev/go, ev/spawn
2022-09-16 07:32:25 -05:00
bakpakin
e326071c35
Fix void returns in windows FFI - address #1025
2022-09-15 13:51:11 -05:00
Locria Cyber
ad6a669381
Add doc for ev/go
...
Document that you can pass a function instead of a fiber to ev/go
2022-09-14 00:17:53 +00:00
Locria Cyber
e4c9dafc9a
Fix typo in ev/spawn doc
2022-09-13 23:49:42 +00:00
Calvin Rose
dfc0aefd87
Merge pull request #1028 from autumnull/master
...
Made peg 'not' and 'if-not' drop their captures on success
2022-09-13 15:20:10 -05:00
Calvin Rose
8da7bb6b68
Fix peg/replace-all and family - Fix #1027
2022-09-12 18:58:48 -05:00
Autumn!
9341081a4d
Made peg 'not' and 'if-not' drop their captures on success
2022-09-12 23:07:56 +01:00
Autumn!
fe5f661d15
Removed unnecessary backslashes from documentation
2022-09-08 13:21:17 +01:00
Calvin Rose
ff26e3a8ba
Remove end of string check that is now redudant.
...
The addition of some code to avoid valgrind warnings made this code
redundant.
2022-09-05 20:13:15 -05:00
Calvin Rose
14657a762c
Fix peg RULE_SET op code when at tail of string in some cases.
2022-09-05 14:11:03 -05:00
Calvin Rose
4754fa3902
Fix issue #1021 - bad format specifiers in run.c
2022-09-03 14:03:51 -05:00
Calvin Rose
f302f87337
Merge pull request #1019 from Techcable/fix/inttypes-overflow
...
Signed integer overflow is undefined behavior in C, avoid it in inttypes.c
2022-08-30 23:23:11 -05:00
Josef Pospíšil
4336a174b1
Fix typo in define comment
2022-08-30 09:21:20 +02:00
Techcable
0adb13ed71
inttypes.c: Avoid signed integer overflow (U.B.)
...
In C, signed arithmetic overflow is undefined behvior
but unsigned arithmetic overflow is twos complement
Unconditionally switch to unsigned arithmetic internally for +, -, *
This will not affect the result thanks to twos complement awesomeness.
I don't think this will be an issue in these functions,
but it has a history of causing bugs.....
2022-08-29 18:38:51 -07:00
Techcable
c099ec05ee
Remove documentation on type error from index-of
...
Three reasons:
1. This same behavior is not documented on the `next` function
2. This function does not throw the error directly,
it only throws an error because `next` does.
3. Following the same idea as the previous commit, this behavior is
more or less implementation-defined for nonsensical types
> In dynamic languages, the usual idea is garbage in, garbage out.
Various other documentation cleanup.
2022-08-26 21:46:58 -07:00
Techcable
a20612478e
Remove try from contains?, allowing type errors
...
> Remove the try. In dynamic languages, the usual idea is garbage in, garbage out. You misunderstood my point about the type error. “Test” functions are not special in that regard.
> - @bakpakin
2022-08-26 20:36:17 -07:00
Techcable
f778e8bbd1
Fix incorrect usage of the test macro
...
I need unit tests....
2022-08-26 15:35:26 -07:00
Techcable
7203c046f9
Remove collection? type test
...
No longer used to guard the type tests.
2022-08-26 15:23:52 -07:00
Techcable
754b61c593
Clarify documentation of contains?
...
Also contains-value?
2022-08-26 15:19:39 -07:00
Techcable
927e9e4e4d
Make contains? consistently iterate over values.
...
Remove `contains-value?` because it is now redundant.
Clarify in the documentation that it checks dictionary values.
2022-08-26 15:06:09 -07:00
Techcable
699f9622d7
Warn about index-of type errors when not iterable
...
This is just documentation of existing behavior, it does not change anything.
The reason index-of throws a type error on non-iterable types is because `next` does.
This is hardcoded into the JOP_NEXT opcode (see src/core/value.c:janet_next_impl).
Unfortunately, there is currently no corresponding `iterable?` check.
2022-08-26 15:05:39 -07:00
Techcable
765eb84c33
on bad type, contains? shuld return false (not error)
...
Note this actually changes behavior from a thin wrapper over `index-of`.
This is because `(index-of 3 3)` throws "error: expected iterable type, got 3"
2022-08-26 14:23:36 -07:00
Calvin Rose
03ba1f7021
Update CHANGELOG and version numbers.
2022-08-26 13:15:30 -05:00
Calvin Rose
99f63a41a3
Improve pointer hashing to avoid hash collisions.
2022-08-26 12:18:10 -05:00
Calvin Rose
a575f5df36
Add option to marshal values without cycle detection.
2022-08-26 11:20:02 -05:00
Techcable
12a1849090
Add utilities for contains? and contains-key?
...
This is significantly clearer than using (not (nil? (index-of col val)))
Most major programming languages offer some sort of contains function (Python, Java, C, Rust).
The only exception I know of is C.
2022-08-25 21:00:02 -07:00
Calvin Rose
0817e627ee
Prepare for 1.24.1 release.
2022-08-24 13:23:53 -05:00