Commit graph

304 commits

Author SHA1 Message Date
Kristin Rutenkolk
ec418cb6c9 fix map cons 2024-10-24 13:45:16 +02:00
Kristin Rutenkolk
4c408043ec improve error message 2024-10-24 12:04:36 +02:00
Kristin Rutenkolk
b6f1e44ce0 make defstruct robust against dangling and unbound vars 2024-10-24 11:45:17 +02:00
Kristin Rutenkolk
020e10264f add error message for invalid type usage 2024-10-24 11:37:40 +02:00
Kristin Rutenkolk
cf2decedcd introduce custom vector iterator 2024-10-24 09:07:46 +02:00
Kristin Rutenkolk
913c004adb fix forEach reference 2024-10-22 13:19:07 +02:00
Kristin Rutenkolk
f08fa20cf6 draft of new type generation 2024-10-19 03:26:45 +02:00
Kristin Rutenkolk
4f5b9fa60a fix seq of new type and remove indirection 2024-10-18 18:06:02 +02:00
Jan Wedekind (Dr)
26fbed6927
Bugfix for const expressions 2024-10-18 11:20:01 -04:00
Kristin Rutenkolk
53a8435768 add pprint impl for struct types 2024-10-13 22:08:01 +02:00
Kristin Rutenkolk
21c547c469 add custom deftype for struct type generation 2024-10-12 15:52:03 +02:00
Kristin Rutenkolk
f702096ed5 fix array handling for defstruct macro 2024-10-12 00:36:21 +02:00
Kristin Rutenkolk
eea1b43da3 fix nested types serdes 2024-10-11 22:26:41 +02:00
Kristin Rutenkolk
37b74fc638 add serialization generation 2024-10-11 17:48:58 +02:00
Kristin Rutenkolk
c5d18e9e50 add generate-serialize multimethod 2024-10-11 16:55:03 +02:00
Kristin Rutenkolk
8bfc156d10 add deserialization generation 2024-10-11 15:52:40 +02:00
Kristin Rutenkolk
b0cb0f2ff3 add c-layout to struct generation 2024-10-11 15:18:35 +02:00
Kristin Rutenkolk
df29b16d71 remove namespace qualifiers from with-c-layout 2024-10-11 15:17:54 +02:00
Kristin Rutenkolk
d04a9f6286 copy with-c-layout to mem namespace 2024-10-11 14:53:09 +02:00
Kristin Rutenkolk
cf6dff3b52 add defstruct macro and helper functions 2024-10-11 14:25:18 +02:00
Justin Tirrell
413d231d29 Add support for named union members in c-layout 2024-10-10 11:56:28 -04:00
Kristin Rutenkolk
f96df719eb remove namespaced references 2024-10-10 15:59:28 +02:00
Kristin Rutenkolk
557cd27763 add write functions for arrays 2024-10-04 16:17:27 +02:00
Joshua Suskalo
8e088c75b2
Fix bug where one too many indirections are used with pointer types 2024-10-03 15:37:03 -04:00
Joshua Suskalo
6ff882b85d
Update docstring to reflect address-of returning a long 2024-10-03 14:12:51 -04:00
Joshua Suskalo
f752a1592a
Optimize re-serializing deserialized functions 2024-10-03 11:12:37 -04:00
Joshua Suskalo
cce6c823f6
Implement memoization of upcall and downcall classes 2024-10-03 10:55:54 -04:00
Joshua Suskalo
bd7216a06e
Add null for implementing serdes 2024-10-02 16:26:24 -04:00
Joshua Suskalo
fd8d649f63
Fix bad usage of static fields as calls 2024-10-02 16:22:00 -04:00
Joshua Suskalo
2073f15767
WIP: Update documentation for arenas instead of sessions
This is a part of the push for completing coffi 1.0 for a release tested
against JDK 22 and newer.
2024-09-30 12:17:04 -04:00
Kristin Rutenkolk
4160b1cb68 consistently serialize strings to MemorySegment instead of addresses
(Longs) and remove ad-hoc upcall-class Long to MemorySegment conversion
2024-07-23 15:39:58 +02:00
Kristin Rutenkolk
854d6ce850 migrate as-segment to jdk22 API 2024-06-27 16:26:22 +02:00
Kristin Rutenkolk
56481ea9e3 revert regression as it breaks user code (for now) 2024-06-27 15:40:42 +02:00
Kristin Rutenkolk
854914350c rename reference to nonexistent MemoryAddress class to MemorySegment 2024-06-27 15:17:14 +02:00
Kristin Rutenkolk
85d52f64b7 fix upcalls with strings 2024-06-26 13:22:47 +02:00
Kristin Rutenkolk
a04fe7253f change String handling to match new FFI API 2024-06-12 11:10:52 -07:00
Joshua Suskalo
b7092b4af6
WIP Finish updating files to fully be on JDK 21
This is still incomplete, I get crashes on upcalls.
2024-01-29 06:22:39 -06:00
Joshua Suskalo
2325abf53b
WIP Update coffi.mem to JDK 21 2023-12-27 09:14:44 -06:00
Joshua Suskalo
36f1685718
Update to .find(String) api in loader 2023-09-21 10:39:15 -05:00
Joshua Suskalo
5deac64934
Fix primitive static variables not deserializing 2023-03-28 14:26:33 -05:00
Joshua Suskalo
f22cf8f81d
Fix uses of defvar not compiling 2023-03-28 14:26:33 -05:00
Joshua Suskalo
218545feb7
Fix bug where defvar and friends didn't work
One function was private that didn't need to be since it was being used
by the macros. This commit just makes it public.
2023-03-28 14:26:32 -05:00
Joshua Suskalo
2c45d8e875
Add support for primitive types to raws 2022-11-29 21:31:28 -06:00
Joshua Suskalo
5ccf369477
Fix a dumb of my dumb 2022-11-29 20:21:34 -06:00
Joshua Suskalo
8401cc3add
Fix bug where with-acquired did not return a value 2022-11-29 20:06:20 -06:00
Joshua Suskalo
379dc95c66
Fix dumb implementation of copy-segment 2022-11-29 18:52:11 -06:00
Joshua Suskalo
65c7544cc7
Add extra constructors for sessions 2022-11-16 16:58:20 -06:00
Joshua Suskalo
0e23a514f0
Fix misspelling in ex-info message 2022-11-16 09:27:01 -06:00
Joshua Suskalo
49bdca0766
Rename scope to session everywhere 2022-11-11 14:07:38 -06:00
Joshua Suskalo
3838c0f13c
Initial pass of update to JDK 19 2022-11-11 13:53:52 -06:00
Joshua Suskalo
036d4112fb
Fix nullpointer serialization in simpler inline cases 2022-10-31 13:59:03 -05:00
Joshua Suskalo
fa40902ce9
Fix bug with inlined serdes causing complex pointer serdes to fail 2022-10-31 13:59:03 -05:00
Joshua Suskalo
75bbe11971
Add todo about potential bug with nil as a primitive argument 2022-10-31 11:40:27 -05:00
Joshua Suskalo
319bb3a33b
Fix incorrect padding in C-layout structs 2022-10-31 11:39:00 -05:00
Joshua Suskalo
990e76c624
Fix incorrect pointer alignment 2022-10-31 11:39:00 -05:00
Joshua Suskalo
c0244a8b33
Add todo about raw types 2022-07-16 19:46:45 -05:00
Joshua Suskalo
e1e64d8362
Add very inefficient raw types 2022-07-16 19:37:46 -05:00
Joshua Suskalo
e9a5b640ac
Add support for flagset composite types 2022-07-07 16:08:41 -05:00
Joshua Suskalo
c0dee46fe9
Fix bug with incorrect enum serdes 2022-07-07 15:23:52 -05:00
Joshua Suskalo
2646e6fc9e
Add enum serdes 2022-07-07 14:15:33 -05:00
Joshua Suskalo
d7e0ced38b
Add macros to ease creating static variable references 2022-07-07 13:31:22 -05:00
Joshua Suskalo
20956f2549
Add function to get the segment from a static variable 2022-07-07 13:05:39 -05:00
Joshua Suskalo
3794ab7d5f
Use coerce-addressable where possible 2022-07-07 11:11:21 -05:00
Joshua Suskalo
b8383a467b
Correct docstring of downcall-handle 2022-07-07 11:11:13 -05:00
Joshua Suskalo
01515ad568
Correct the docstring of static-variable 2022-07-07 11:04:03 -05:00
Joshua Suskalo
98c59ea936
Correct the docstring of ensure-sybmol 2022-07-07 11:03:51 -05:00
Joshua Suskalo
db242e1445
Finish removing references to long-long 2022-07-07 11:03:26 -05:00
Joshua Suskalo
b10c459bf7
Update ffi namespace for jdk 18 2022-04-15 14:07:02 -05:00
Joshua Suskalo
4037040c4b
Update mem namespace to jdk18 2022-04-15 14:07:02 -05:00
Joshua Suskalo
90c125fb62 Fix bug where pointer types were not deserialized in wrapper 2022-01-19 11:34:57 -06:00
Joshua Suskalo
f7e50630cc Fix bug where non-native endian values were needlessly serialized 2022-01-19 11:19:12 -06:00
Joshua Suskalo
3e63230c1f type hint size and alignment constants 2022-01-19 11:00:57 -06:00
Joshua Suskalo
7ec2cd1575 Add size and alignment constants for primitives 2022-01-19 10:56:46 -06:00
Joshua Suskalo
5c560e684d Add convenience functions for reading and writing addresses 2022-01-18 15:39:49 -06:00
Joshua Suskalo
7c62207613 Allow non-native byte orders on primitives 2022-01-18 14:25:57 -06:00
Joshua Suskalo
104db6b8fd Add type hints to layout constants 2022-01-18 14:25:57 -06:00
Joshua Suskalo
6ba905e6bf Update primitive? to be a function 2022-01-18 14:25:57 -06:00
Joshua Suskalo
634f371144 Throw an exception on testing invalid type objects 2022-01-18 14:25:57 -06:00
Joshua Suskalo
ded50d7a29 Update (de)serialization multimethods to use new prim functions 2022-01-18 14:25:57 -06:00
Joshua Suskalo
cf529bbd3d Add functions for reading and writing primitives 2022-01-18 14:25:57 -06:00
Joshua Suskalo
2cfa0ed623 Add docstrings to layout defs 2022-01-18 13:38:48 -06:00
Joshua Suskalo
e8b3c8e2b2 Add type hints to most utility functions 2022-01-18 13:38:32 -06:00
Joshua Suskalo
b029a41f6a Update type hinting for alloc-instance based on size-of 2022-01-18 13:28:43 -06:00
Joshua Suskalo
b960c01bb3 Add support for layouts being passed to size-of and align-of 2022-01-18 13:28:00 -06:00
Joshua Suskalo
7350a5df1c Use layout primitives in c-layout multimethod 2022-01-18 13:27:22 -06:00
Joshua Suskalo
55d770cc34 Add layout constants for c-style primitive layouts 2022-01-18 13:26:35 -06:00
Joshua Suskalo
faca63b50c Add constants for byte orders 2022-01-18 13:25:56 -06:00
Joshua Suskalo
3709aab143 Merge branch 'feature/c-layout' into develop 2022-01-10 14:55:59 -06:00
Joshua Suskalo
900112b6e4 Fix bug where characters were read as java characters 2022-01-10 14:38:23 -06:00
Joshua Suskalo
da12b26e3c Fix bug with incorrect padding size 2022-01-10 14:06:34 -06:00
Joshua Suskalo
49f9e60b11 Allow expressions that evaluate to types in defalias 2022-01-10 13:34:58 -06:00
Joshua Suskalo
95856cb4f3 Add with-c-layout function 2022-01-10 13:31:27 -06:00
Joshua Suskalo
579393f830 Add align-of 2022-01-10 13:30:01 -06:00
blak3mill3r
b21a5db27e fix: default to an aload instruction for upcall
this allows non-primitive types

prior to this commit the library would generate invalid bytecode with
a `nil` instruction
2021-10-25 03:05:14 +00:00
Joshua Suskalo
fa4e4ebb57 Fix docstring in coffi.ffi 2021-10-16 10:19:27 -05:00
Joshua Suskalo
a1ad988aad Fix incorrect argument loading in upcall stubs 2021-10-15 22:13:45 -05:00
Joshua Suskalo
14d38e3b8a Fix some indentation 2021-10-15 08:31:32 -05:00
Joshua Suskalo
4f0d151c7a Fix crash when returning void in an upcall 2021-10-14 19:22:30 -05:00
Joshua Suskalo
e760a320a7 Rewrite the inline expansion macro 2021-10-14 18:25:06 -05:00
Joshua Suskalo
9cc83e7d1a Fix bug with inline expansion with no arguments 2021-10-14 13:05:51 -05:00