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
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
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
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
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
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
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
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
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
fd59de25c5
Add memcmp to the core. Useful in binary protocol implementations.
2022-10-18 11:54:07 -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
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
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
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
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
Calvin Rose
f5d11dc656
Address #1014 improve parse errors when bad delimiters are found.
...
Reuse some existing logic for eof errors.
2022-08-24 11:34:59 -05:00
Calvin Rose
ac2082e9b3
Allow adding name to short-fns.
...
When short-fn is used in a macro, it can be useful to
give the function a nicer name then a raw pointer.
2022-08-18 14:33:59 -05:00
Calvin Rose
1aea5ee007
Remove stack inversion code for sysv64 FFI.
2022-08-16 12:38:44 -05:00
bakpakin
9a6d2a7b32
Fix FFI for reference return values and stack parameter passing.
2022-08-14 15:20:30 -05:00
bakpakin
f8a9efa8e4
Allow binding pre-loaded symbols in windows FFI.
...
Mimic the posix RTLD_NOW setting for dlopen by iterating
opened DLLs to look for symbols.
2022-08-14 13:26:13 -05:00
Calvin Rose
5b2169e0d1
Fix docstring.
2022-08-02 14:58:32 -05:00
Calvin Rose
f4bbcdcbc8
Get rid of disabled tracing. #1005
2022-08-02 12:19:22 -05:00
Calvin Rose
79c375b1af
Address #1005 - Fix janet_call stack clobbering on dirty stack.
2022-08-02 12:13:56 -05:00
Calvin Rose
1900d8f843
Fix build warnings on Linux GCC version 12.1.0 x64
2022-07-20 08:04:03 -05:00
Calvin Rose
b35414ea0f
Merge branch 'master' of github.com:janet-lang/janet
2022-07-19 20:04:44 -05:00
Calvin Rose
fb5b056f7b
Address #1001 - don't process names passed to dlopen.
2022-07-19 20:04:17 -05:00
bakpakin
c7801ce277
Address #997 - clang undefined behavior warning.
2022-07-09 11:43:51 -05:00
Calvin Rose
435e64d4cf
Allow shorthand for setting task-id on new threads with flag.
...
Avoids the need to wrap function bodies in closures in many cases.
2022-07-03 12:08:21 -05:00
Calvin Rose
8d0e6ed32f
Fix function handlers for :out and :err.
...
They were not properly handled for formatting functions.
2022-07-02 21:11:05 -05:00
Josef Pospíšil
94a506876f
Trace function to the stderr
2022-07-01 12:23:25 +02:00
Calvin Rose
9bde57854a
Add tabseq
macro.
2022-06-28 22:51:41 -05:00
Calvin Rose
f456369941
Add support for a dyn :task-id
...
Adds extra information to default information from supervisor
channels. For threaded channels as supervisors, we don't get
the source fiber so identifying the source of messages was not
possible. This change allows better multithreading with supervisors.
2022-06-25 18:51:21 -05:00
Calvin Rose
e4bafc621a
Remove ssize_t usage.
2022-06-20 11:09:41 -05:00
Calvin Rose
47e91bfd89
Fix docstring.
2022-06-19 18:52:37 -05:00
Calvin Rose
eecc388ebd
Add support for 0-element arrays in FFI.
...
Allows for flexible array member construct mapping.
2022-06-19 16:29:55 -05:00
Calvin Rose
cfaae47cea
Fix trailing :pack-all or :pack in struct.
2022-06-19 13:06:19 -05:00
Calvin Rose
c1a0352592
Fix unset field in JanetFFIType.
2022-06-19 12:58:45 -05:00
Calvin Rose
6ea27fe836
Error message sounded a bit unsure.
2022-06-19 10:29:42 -05:00
Calvin Rose
0dccc22b38
Improve error messages when using bad metadata
...
Print metadata value as well as binding name.
2022-06-19 10:28:18 -05:00
Calvin Rose
cbe833962b
Remove bad suite0009 test. Close #871
...
The issue is that there was no synchronization on writes.
The stability of the test relied on the fact that the server
would read in an entire message in one call to ev/read, which
would _almost_ always happen since the messages are so small.
2022-06-19 10:01:10 -05:00
Calvin Rose
e316ccb1e0
Use _tzset() on windows before localtime_s
2022-06-19 08:49:54 -05:00
Calvin Rose
a6f93efd39
Support for array types in ffi.
2022-06-19 08:03:32 -05:00
Calvin Rose
20511cf608
Cast NULL pointer to nil in return in ffi.
2022-06-18 16:53:01 -05:00
Calvin Rose
1a1dd39367
Use __builtin_alloca if no other option.
2022-06-18 13:54:47 -05:00
Calvin Rose
589981bdcb
BSD systems put alloca in the stdlib
2022-06-18 12:18:06 -05:00
Calvin Rose
89546776b2
alloca
2022-06-18 12:15:16 -05:00
Calvin Rose
f0d7b3cd12
No alloca.h?
2022-06-18 11:19:14 -05:00