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
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
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
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
914a4360e7
Indicate version bump since header file changed.
2022-11-05 16:38:52 -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
e37be627e0
Allow loading current process on windows as well.
2022-06-18 10:31:00 -05:00
Calvin Rose
2e9f67f4e4
Change all "native-*" to ffi/. Move new dll loading funcs.
...
native-close, raw-native and native-lookup have become
ffi/close, ffi/native, and ffi/lookup instead.
The new ffi module will be useful for any architecture even if we don't
support making calls to certain functions. We can simple add a
do-nothing calling convetion that panics on call. ffi/read and ffi/write
are useful in their own right.
2022-06-12 10:02:02 -05:00
Calvin Rose
282d1ba22f
Implement sys v abi on x64 partially.
2022-06-06 18:54:17 -05:00
Calvin Rose
b3aed13567
Use janet_getnat when non-negative integer needed.
2022-05-05 18:27:29 -05:00
Jason Pepas
ab910d060b
Move AvailabilityMacros.h import into util.c
2022-03-21 21:23:09 -05:00
Jason Pepas
c9986936ed
Mac clock shim not needed until 10.12
2022-03-21 20:20:20 -05:00
Calvin Rose
3715d7a184
Auto update copyright date.
2022-03-21 18:22:59 -05:00
Jason Pepas
f270739f9f
Refactor __MACH__ to JANET_APPLE
2022-03-17 01:20:55 -05:00
Michael Camilleri
fad0ce3ced
Move missing symbol lookup to compiler
2022-01-24 11:08:33 +09:00
Michael Camilleri
d396180939
Avoid panicking when calling :missing-symbol lookup function
2022-01-23 17:29:52 +09:00
Michael Camilleri
1eb34989d4
Support looking up missing symbols during compilation
2022-01-21 13:07:11 +09:00
Calvin Rose
5b5a7e5a24
Make top level vars reuse ref cell when redefined at the top level.
...
This improves the repl experience while not messing with existing code
very much, if at all.
2022-01-08 11:27:08 -06:00
Calvin Rose
99cfbaa63b
Tweaks on redef feature branch.
2022-01-06 20:38:15 -06:00
Michael Camilleri
ea9d5ec793
Change metadata keyword back to :redef
2022-01-02 12:35:22 +09:00
Michael Camilleri
ec65f038a8
Support :dynamic-defs dynamic binding
2021-12-29 16:39:00 +09:00
Michael Camilleri
8347439644
Support redefinable bindings
2021-12-18 13:05:16 +09:00
Calvin Rose
f9891a5c04
More improvements to hashing for #889
2021-12-06 17:23:00 -06:00
Calvin Rose
545c09e202
Update hash mixing behavior - address #889
...
Try to have better behavior when mixing sub-hashes that are not uniform and
randomly distributed. Premultiply by a large prime before mixing to
"spread entropy" if it is concentrated in a certain subset of bits.
2021-12-05 16:34:26 -06:00
bakpakin
7734e77dfc
Readd the janet_register function.
2021-08-22 10:38:15 -05:00
Calvin Rose
bd71e1cd02
Silence clang warning about comparing function pointers.
...
The comparison is used to create a set of function pointers.
2021-08-21 12:10:19 -05:00
Calvin Rose
7f7ee75954
Patch util.c
2021-07-31 10:00:43 -05:00
Calvin Rose
7e5f226480
Put source mapping info in stack traces.
2021-07-29 21:29:08 -05:00
Calvin Rose
eb84200f28
Fix linux issues with epoll on normal files.
...
We use the selfpipe trick if epoll fails with EPERM when trying to
register a file descriptor.
2021-07-25 21:47:52 -05:00
bakpakin
7fba44ccce
Add macro mechanism for defining C source information for functions.
...
This wil let us track source code for C functions more easily.
2021-07-25 13:03:01 -05:00
Calvin Rose
1ef6db16ed
Add janet_vm_save and janet_vm_load.
...
This lets a user multiplex multiple Janet VMs on a single
thread or process if they are willing to implement context switching
themselves.
2021-07-16 20:59:03 -05:00
Calvin Rose
bbae43f259
Update copyright dates.
2021-05-31 13:46:02 -05:00
Calvin Rose
60214dc659
Update for windows compiler warning.
2021-05-30 16:42:58 -05:00
Calvin Rose
1f4f69a5b6
Fix windows syntax issue.
2021-05-29 20:40:26 -05:00
Calvin Rose
7ff204ec44
Work on system for adding compiler warnings.
...
This is the beginning of a system for compiler warnings. This includes
linting, deprecation notices, and other compiler warnings that are best
detected by the `compile` function and don't require the partial
evalutaion of the flychecker.
2021-05-28 15:12:05 -05:00
Andrew Chambers
f4c9064b79
Add config support for custom allocators.
2021-03-23 23:00:48 +13:00
Calvin Rose
e70f64e23d
Sort keys initial.
2021-03-13 19:17:07 -06:00
Calvin Rose
a2c837a99c
Merge remote-tracking branch 'felixr/master' into master
2020-12-26 20:06:34 -06:00
Felix Riedel
c76e0ae685
Use boost's way of combining hash values for arrays and kv pairs.
...
`seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);`
from https://www.boost.org/doc/libs/1_35_0/doc/html/boost/hash_combine_id241013.html
The current way of combining hashes peforms poorly on hash values of
numbers. Changing the way hashes are combined canlead to a significant speed up:
```
time janet_new -e '(def tbl @{}) (loop [x :in (range 1000) y :in (range 1000)] (put tbl {0 x 1 y} true))'
3.77s user 0.08s system 99% cpu 3.843 total
time janet_orig -e '(def tbl @{}) (loop [x :in (range 1000) y :in (range 1000)] (put tbl {0 x 1 y} true))'
48.98s user 0.15s system 99% cpu 49.136 total
```
2020-12-26 13:05:03 +00:00
Calvin Rose
ebfa07f8ce
Registering an abstract type is idemptotent.
2020-10-06 19:11:29 -05:00
Calvin Rose
b53890ddae
Make some changes for WASM build.
2020-09-07 16:08:43 -05:00
Calvin Rose
70ad98cc6f
Fix arc4random_buf implementation.
2020-08-03 21:49:49 -05:00
Andrew Chambers
4d4ca7bb36
Initialize PRF with random data when it is enabled.
2020-08-04 12:13:36 +12:00
Calvin Rose
ba08e487cb
Disable PRF by default.
...
Since it is not any better by default without initializing the key, we
disable it by default. It can be turned on with JANET_PRF in
janetconf.h.
2020-07-25 13:34:40 -05:00
Calvin Rose
4721337c7c
issues with gettime on mach kernel.
2020-07-03 20:19:36 -05:00
Calvin Rose
3bb8f1ac8d
Don't use CLOCK_MONOTONIC for pthread stuff.
...
Also fix marshalling functions without full
sourcemapping information, as well as thread/receive
ignoring bad messages. Instead, thread/receive will error
on bad messages.
2020-07-03 19:54:58 -05:00
Calvin Rose
55cf9f5e1c
Don't break reverse backwards compat.
...
Breaking backwards compatibiliy here is not worth it.
Also update changelog.
2020-07-03 10:17:50 -05:00