Calvin Rose
7acb5c63e0
Remove bad windows10 check.
2023-05-29 18:17:22 -05:00
Calvin Rose
fcca9bbab3
Add recursion to the pruning optimization.
2023-05-29 18:05:14 -05:00
Calvin Rose
dbb2187425
Merge pull request #1167 from zevv/janet-formatbf-fix
...
Fix janet_formatbv() type when handling %d %u int specifiers
2023-05-29 18:03:13 -05:00
Calvin Rose
4782a76bca
Add inital bytecode optimizations for #1163
...
This removes unnecessary movn, movf, lds, and a few other instructions.
Any instructions that has not side effects and writes to a slot that
isn't used can be removed. A number of other optimizations can follow
from this:
- Implement the def-aliasing-var optimization better
- This function can be iterated as a fix point until no more
instructions are removed.
- If we implement slot renaming, then we no longer need to free slots
and can simplify the initial code generation a lot.
2023-05-29 16:10:48 -05:00
Ico Doornekamp
d13788a4ed
Updated documentation for buffer/push-at
2023-05-29 22:03:37 +02:00
Ico Doornekamp
e64a0175b1
change janet_formatbv() to handle int/unsigned int instead of long/unsigned long on '%d' and '%u' format specifiers.
2023-05-29 19:50:14 +02:00
Calvin Rose
70f13f1b62
Merge pull request #1157 from zevv/file-lines
...
Add file/lines iterator
2023-05-26 18:16:14 -05:00
Ico Doornekamp
09345ec786
file/linex now only acceps a file, not a path name
2023-05-26 17:50:26 +02:00
primo-ppcg
3602f5aa5d
Update boot.janet
...
`kvs` is not yet defined at this point.
2023-05-25 18:27:31 +07:00
primo-ppcg
672b705faf
Allow mapcat et al to accept multiple iterable arguments
...
#1159
2023-05-25 18:12:38 +07:00
Ico Doornekamp
64e3cdeb2b
Add file/lines iterator
2023-05-24 16:54:04 +02:00
Calvin Rose
909c906080
Fix yields inside nested fibers.
2023-05-23 20:09:46 -05:00
Calvin Rose
71bde11e95
Allow one argument to while.
2023-05-23 20:09:46 -05:00
Calvin Rose
fc20fbed92
Merge pull request #1151 from zevv/document-string-format
...
Add docstring to string/format
2023-05-23 18:57:55 -05:00
Calvin Rose
e6b7c85c37
Merge pull request #1152 from zevv/error-messages
...
Improved various error messages when handling unexpected types.
2023-05-23 18:57:20 -05:00
Ico Doornekamp
b3a92363f8
Add docstring to string/format
2023-05-23 07:21:26 +02:00
Ico Doornekamp
e9f2d1aca7
changed some error messages 'x|y' -> 'x or y'
2023-05-23 06:58:52 +02:00
Ico Doornekamp
b4e3dbf331
Improved various error messages when handling unexpected types.
...
error: bad slot #1 , expected string|symbol|keyword|buffer, got ...
error: bad slot #1 , expected a string, symbol, keyword or buffer, got ...
bad s64 initializer: "donkey"
can not convert string "donkey" to s64
2023-05-23 06:57:12 +02:00
Calvin Rose
c3620786cf
Merge branch 'master' of github.com:janet-lang/janet
2023-05-22 20:41:05 -05:00
Calvin Rose
41943746e4
Fix #1149 - deep-not= should only return true/false.
...
Also improve perf at same time.
2023-05-22 20:40:30 -05:00
Ico Doornekamp
50a19bd870
Fix warning in janet_gettime()
2023-05-22 20:53:03 +02:00
Calvin Rose
57b751b994
Merge branch 'master' of github.com:janet-lang/janet
2023-05-21 16:23:44 -05:00
Calvin Rose
77732a8f44
inet_test change.
2023-05-21 13:36:11 -05:00
Calvin Rose
c47c2e538d
Merge pull request #1137 from tionis/master
...
os/proc-kill now accepts an optional signal to send
2023-05-21 13:33:24 -05:00
Ico Doornekamp
63353b98cd
improved error messages for special forms
2023-05-21 20:18:32 +02:00
tionis
4dfc869b8a
fixed formatting in src/core/os.c
2023-05-21 15:55:11 +02:00
tionis
b4b1c7d80b
Merge branch 'janet-lang:master' into master
2023-05-21 13:51:24 +00:00
tionis
e53c03028f
ignoring signals on windows in os/proc-kill again
2023-05-21 15:50:15 +02:00
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