Calvin Rose
e37be627e0
Allow loading current process on windows as well.
2022-06-18 10:31:00 -05:00
Calvin Rose
d803561582
Fix ffi/defbind for non-lazy bindings.
...
Add testing to bind to symbols in current binary.
2022-06-18 10:14:42 -05:00
Calvin Rose
a1172529bf
Fix named arguments with optional args.
2022-06-18 09:46:28 -05:00
Calvin Rose
1d905bf07f
SRWLock is the size of a void pointer.
2022-06-17 17:49:02 -05:00
Calvin Rose
eed678a14b
Include windows.h for windows builds
2022-06-17 17:41:50 -05:00
Calvin Rose
b1bdffbc34
Don't inlcude pthread on windows.
2022-06-17 17:35:58 -05:00
Calvin Rose
62fc55fc74
Remove pthread.h from janet.h
...
Should make janet a bit easier to use. Also changes the
header to not expose the size of native mutexes and rwlocks, except
with janet_os_mutex_size and janet_os_rwlock_size.
2022-06-17 17:13:58 -05:00
Calvin Rose
80729353c8
Add :lazy option for ffi/context for jpm quickbin usage.
2022-06-13 21:26:03 -05:00
Calvin Rose
105ba5e124
Add ffi/context and ffi/defbind helpers.
...
Wrap the very bare-bones FFI library to be a bit more
useful out of the box.
2022-06-12 18:48:47 -05:00
Calvin Rose
ad1b50d1f5
Update dofile function signature.
2022-06-12 18:03:23 -05:00
Calvin Rose
1905437abe
Merge branch 'master' into ffi
2022-06-12 13:59:37 -05:00
Calvin Rose
87fc339c45
Add named arguments with the &named symbol.
...
Similar to &keys, but more ergonomic.
2022-06-12 13:53:18 -05:00
Calvin Rose
c9586d39ed
Add a :none calling convention.
...
The ffi module is useful even when true ffi calls
are not yet implemented. This lets the ffi be enabled
on any architecture, albeit with a degraded feature set
where calling conventions are not implemented.
2022-06-12 10:12:45 -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
e318170fea
Begin working on windows calling convetion.
...
Also remove inline assembly for making sysv64 calls.
Instead, use crafted function signatures to set all needed registers.
2022-06-12 09:16:10 -05:00
Calvin Rose
73c4289792
Fix define check.
2022-06-11 21:50:34 -05:00
Calvin Rose
ea45d7ee47
Convert to one big blob of assembly for sysv cc.
...
Also begin working on win64 calling convention.
2022-06-11 21:43:35 -05:00
Calvin Rose
6d970725e7
Update boot.janet for typos.
2022-06-11 21:19:42 -05:00
Calvin Rose
458c2c6d88
Make calling convention optional for trampoline
2022-06-11 15:47:51 -05:00
Calvin Rose
0cc53a8964
Get a GTK example working. Good proof of concept.
2022-06-11 14:47:35 -05:00
Calvin Rose
0bc96304a9
Add r32 and r64 aliases for real numbers in ffi types.
2022-06-11 09:40:37 -05:00
Calvin Rose
c75b088ff8
Format boot.janet with janet-format.
2022-06-10 19:13:23 -05:00
Calvin Rose
181f0341f5
Add :pack and :pack-all keywords to allow for struct packing.
...
Syntax may need some work but covers both fully packed structs
as well as packing of individual members.
2022-06-10 18:53:22 -05:00
Calvin Rose
33bb08d53b
Merge branch 'master' into ffi
2022-06-10 16:24:55 -05:00
Calvin Rose
6d188f6e44
Improve .ppasm function.
2022-06-10 16:24:40 -05:00
Calvin Rose
c3648331f1
Expose an easy to use debugger
function.
2022-06-10 15:39:29 -05:00
Calvin Rose
a5b66029d3
Expose the built-in debugger in more places.
2022-06-10 15:23:15 -05:00
Calvin Rose
49bfe80191
Make sure void return types work as expected.
2022-06-10 12:33:01 -05:00
Calvin Rose
a5def77bfe
Add support for struct return values.
2022-06-10 12:25:08 -05:00
Calvin Rose
9ecb5b4791
Add native-read function as inverse to native-write.
2022-06-10 09:38:52 -05:00
Calvin Rose
1cc48a370a
Add native-write, which will write structs to buffers.
...
Useful for testing as well as useful in its own right. Begs
for an inverse, native-read which would convert byte data
to native structs.
2022-06-10 08:46:20 -05:00
Calvin Rose
f1ec8d1e11
Beginning of struct support.
...
TODO:
- struct return values
- support for unions in signatures
- more testing
- complex types
- packed structs
- writing structs to buffers (useful and we have most of the machinery).
2022-06-09 20:27:56 -05:00
Calvin Rose
6f90df26a5
Alloca included by default on some OS, but not all.
...
Do explcitly include alloca on non-msvc compilers.
2022-06-08 10:01:19 -05:00
Calvin Rose
9d9cb378ff
Don't include alloca.h, not in MSVC.
2022-06-08 09:59:13 -05:00
Calvin Rose
f92aac14aa
Only enable FFI on x86-64, non-windows OSes.
2022-06-08 09:50:31 -05:00
Calvin Rose
3f27d78ab5
Add some FFI testing and more improvements to sysv abi.
...
Add support for integer return and floating point return variants, as
well as arguments on the stack. Start flushing out struct arguments.
Still needed:
- structs (packed and unpacked)
- complex numbers
- long doubles
- MASM alternative for windows (you can technically use sysv abi on
windows)
- more calling conventions.
2022-06-08 09:44:49 -05:00
Calvin Rose
282d1ba22f
Implement sys v abi on x64 partially.
2022-06-06 18:54:17 -05:00
Calvin Rose
94c19575b1
Fix when clib is not pointer type.
2022-06-06 13:37:07 -05:00
Calvin Rose
e3e485285b
Prevent double usage of native objects after closing.
2022-06-06 13:36:03 -05:00
Calvin Rose
986e36720e
Update windows builds for raw-natives.
2022-06-06 13:08:12 -05:00
Calvin Rose
74348ab6c2
Fix symbol lookup when symbol isn't found.
2022-06-06 10:53:00 -05:00
Calvin Rose
8d1ad99f42
Add stubs that are precursor to FFI.
...
FFI may be best implemented as an external library
(libffi has incompatible license to Janet) or as code
that takes void * and wraps then into Janet C functions
given a function signature. Either way, we need to some way
to load symbols from arbitrary dynamic libraries.
2022-06-06 10:49:30 -05:00
Calvin Rose
c9f33bbde0
Add rwlocks.
2022-06-05 16:42:18 -05:00
Calvin Rose
9c9f9d4fa6
Add some thread coordination primitives.
...
Due to the nature of event loops, it is a bit difficult to integrate
lock and other primitives such that they don't block fibers on the same
thread.
2022-06-05 15:24:34 -05:00
Calvin Rose
2f64a6b0cb
Add parse-all
function as a natural extension to the parse
function.
2022-05-28 19:02:17 -05:00
Calvin Rose
dfa78ad3c6
typo
2022-05-28 12:23:28 -05:00
Calvin Rose
6ada2a458f
Fixes on bsd for os/cpu-count.
2022-05-28 12:21:44 -05:00
Calvin Rose
8145f3b68d
On linux, available CPUs is more useful information.
2022-05-28 12:19:25 -05:00
Calvin Rose
48289acee6
Add os/cpu-count functionality.
2022-05-28 12:01:23 -05:00
Calvin Rose
395ca7feea
Fix meson.build for older versions of meson.
2022-05-14 10:27:28 -05:00
bakpakin
e0b7533c39
Add toggle macro.
2022-05-12 15:36:29 -05:00
bakpakin
5b2a402930
Fix version bump.
2022-05-09 10:28:09 -05:00
Calvin Rose
487d333024
Add module/value
function to make grabbing bindings out module tables.
2022-05-05 19:24:44 -05:00
Calvin Rose
fe7d35171f
Remove file/popen - address #974
2022-05-05 18:33:34 -05:00
Calvin Rose
b3aed13567
Use janet_getnat when non-negative integer needed.
2022-05-05 18:27:29 -05:00
rick2600
1ff521683f
Fix #975 - null ptr dereference when a table is created with negative capacity
2022-05-05 02:11:43 -03:00
rick2600
7fda7709ff
fix negative count passed to cfun_array_new_filled
2022-05-02 12:57:47 -03:00
John Gabriele
473eec26c1
os.c doc formatting typo
2022-04-29 23:57:37 -04:00
Calvin Rose
9fa945ad93
Don't include captures of last match from to
combinator.
2022-04-29 19:21:10 -05:00
Calvin Rose
a895219d2f
Fix #971 - remove to rule optimization
...
For to and thru, we need to restore eveytime through the loop since rules need
run with the right captures on the stack, especially if they have any
sort of backrefs.
2022-04-29 19:15:56 -05:00
bakpakin
427f7c362e
Fix os/execute regression.
2022-04-27 22:59:27 -05:00
Calvin Rose
73f5c41fae
Address #968 Ignore :pipe arguments in os/execute.
...
They are only useful in os/spawn. Also update docstrings.
2022-04-27 20:13:10 -05:00
Calvin Rose
b4ec168401
Address #950 - add defn suggestion on bad def.
...
While generally we are not in the business of making a very chatty
compiler, this is a simple improvement that involves compiling
metadata before the binding, as well as adding a suggestion for `defn`
in case the compiler encounters an unexpected tuple.
2022-04-23 22:27:34 -05:00
John Gabriele
471204b163
boot.janet docstrings (part 3, last part)
...
Added some backticks around code in docstrings to distinguish them from prose.
Also some light editing.
2022-04-20 18:31:06 -04:00
John Gabriele
9287b26042
boot.janet docstrings (part 2)
...
Added some backticks around code in docstrings to distinguish them from prose.
Also some light editing.
2022-04-19 01:55:37 -04:00
Calvin Rose
e22936fbf8
Merge pull request #964 from uvtc/patch-9
...
tuple.c docstrings
2022-04-18 14:07:41 -05:00
Calvin Rose
04ace9fc16
Merge pull request #963 from uvtc/patch-8
...
table.c docstrings
2022-04-18 14:07:26 -05:00
John Gabriele
96602612ba
boot.janet
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 22:35:04 -04:00
John Gabriele
690b98bff9
tuple.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 21:26:53 -04:00
John Gabriele
8329131bfe
table.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
Light editing to `table/raw-get`. Is my change there correct? (t --> the key)
2022-04-17 21:21:01 -04:00
Calvin Rose
9986aab326
Merge pull request #960 from uvtc/patch-5
...
math.c
2022-04-17 20:03:25 -05:00
Calvin Rose
0b105bc535
Merge pull request #959 from uvtc/patch-4
...
io.c docstrings
2022-04-17 20:03:11 -05:00
Calvin Rose
51ac9c9506
Merge pull request #961 from uvtc/patch-6
...
os.c docstrings
2022-04-17 20:02:56 -05:00
Calvin Rose
0310176696
Merge pull request #962 from uvtc/patch-7
...
parse.c docstrings
2022-04-17 20:02:26 -05:00
Calvin Rose
84a7a2bc3e
Merge pull request #958 from uvtc/patch-3
...
buffer.c docstrings
2022-04-17 20:01:57 -05:00
John Gabriele
2bffb9d682
parse.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 20:53:36 -04:00
John Gabriele
811125a760
os.c docstrings
...
Some code backticks in docstrings where useful. Also some light editing of punctuation, etc.
2022-04-17 20:42:32 -04:00
John Gabriele
0dd91082a1
math.c
...
Fix typo, and backticks around one word.
2022-04-17 20:15:41 -04:00
John Gabriele
c80587868e
io.c docstrings
...
Added some backticks around code in docstrings to distinguish them from prose.
2022-04-17 20:07:05 -04:00
John Gabriele
8c52dc86c7
buffer.c docstrings
...
Added backticks around code in docstrings to distinguish from prose.
2022-04-17 19:49:29 -04:00
John Gabriele
be24592bc3
array.c docstrings
...
Added some backticks around code in docstrings to distinguish from prose.
2022-04-17 19:35:57 -04:00
John Gabriele
181d883a1d
string.c docstrings
...
Add backticks around code values to distinguish them from prose.
2022-04-17 12:08:26 -04:00
Calvin Rose
e01b65fd3d
Fix some printing issues for docs.
2022-04-16 11:40:33 -05:00
rick2600
d5a5c49357
#951 - fix unchecked count in cfun_buffer_new_filled
2022-04-14 16:20:04 -03:00
Calvin Rose
a964b164a6
Merge branch 'master' of github.com:janet-lang/janet
2022-04-13 17:20:49 -05:00
Calvin Rose
1aac0489d7
Add a number of defs for used dynamic bindings.
2022-04-13 17:20:33 -05:00
sogaiu
bf9a60f70d
Use defdyn for syspath in boot.janet
2022-04-13 19:39:41 +09:00
Calvin Rose
2a950e4ce9
Fix patch release - (version info)
2022-04-01 21:59:01 -05:00
Calvin Rose
7491421c31
Release patch relase due to bad version bumping.
2022-03-27 11:21:24 -05:00
Calvin Rose
9d0da74347
Merge pull request #937 from cellularmitosis/clock1012
...
Mac clock shim not needed after 10.12
2022-03-23 13:02:03 -05:00
Jason Pepas
e9870b293f
Remove unneeded includes
2022-03-21 21:28:13 -05:00
Jason Pepas
ab910d060b
Move AvailabilityMacros.h import into util.c
2022-03-21 21:23:09 -05:00
Calvin Rose
b60ef68ac6
Prepare for 1.21.0 Release.
2022-03-21 20:30:32 -05:00
Jason Pepas
c9986936ed
Mac clock shim not needed until 10.12
2022-03-21 20:20:20 -05:00
Calvin Rose
d77be46644
Fix master - check last change with stackn
2022-03-21 19:41:06 -05:00
Calvin Rose
3715d7a184
Auto update copyright date.
2022-03-21 18:22:59 -05:00
Calvin Rose
1c96c7163a
Address #926 - enter the event loop from janet_dobytes or
...
janet_dostring.
2022-03-21 18:06:14 -05:00
Jason Pepas
f270739f9f
Refactor __MACH__ to JANET_APPLE
2022-03-17 01:20:55 -05:00
Calvin Rose
c815185574
Merge pull request #931 from saikyun/norm-neg
...
normalize zero without branching
2022-03-07 09:18:22 -06:00
Calvin Rose
8045e29a52
Merge pull request #932 from ishehadeh/feature/int-to-bytes
...
Add int/to-bytes: Serialize int/[su]64 to a buffer
2022-03-06 13:11:08 -06:00