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 |
|
Joshua Suskalo
|
5fa1f157d3
|
Fix broken defcfn with native-sym
|
2021-10-13 15:51:49 -05:00 |
|
Joshua Suskalo
|
a620752f2c
|
Ensure that the downcalls in the inline expansion are evaluated correctly
|
2021-10-13 15:28:34 -05:00 |
|
Joshua Suskalo
|
7975adbd94
|
Add caveat in primitive-type about evaluated arguments
|
2021-10-13 13:51:13 -05:00 |
|
Joshua Suskalo
|
b1133811a0
|
Ensure there's no double-evaluation of the return types
|
2021-10-13 13:46:03 -05:00 |
|
Joshua Suskalo
|
6f28994526
|
Add inline function for make-serde-wrapper
|
2021-10-13 13:15:35 -05:00 |
|
Joshua Suskalo
|
868c843875
|
Add perdicate for primitive types
|
2021-10-13 09:57:23 -05:00 |
|
Joshua Suskalo
|
bcc6b29e9e
|
Remove unused import
|
2021-10-11 11:21:02 -05:00 |
|
Joshua Suskalo
|
d3050c34ff
|
Move arg and ret types into the cfn call in defcfn
This is in preparation for an optimization in cfn with constant arg and ret
types.
|
2021-10-11 11:19:13 -05:00 |
|
Joshua Suskalo
|
15c190572f
|
Remove todo line
|
2021-10-10 13:32:15 -05:00 |
|
Joshua Suskalo
|
53f72bdb49
|
Move to multimethod implementations for deserialize*
|
2021-10-10 12:43:11 -05:00 |
|
Joshua Suskalo
|
c43ff5a848
|
remove performance comments on things already split out
|
2021-10-10 12:43:11 -05:00 |
|
Joshua Suskalo
|
80beace196
|
Move serialize* to multimethod impls
|
2021-10-10 12:43:11 -05:00 |
|
Joshua Suskalo
|
4f6e8d7bac
|
Move c-layout to multimethod versions
|
2021-10-10 12:43:11 -05:00 |
|
Joshua Suskalo
|
8f5f4a2cc4
|
Add multimethod implementations for primitive-type
This should improve performance
|
2021-10-10 12:43:11 -05:00 |
|
Joshua Suskalo
|
c26c8a40c8
|
Add todos for optimization
|
2021-10-10 11:40:40 -05:00 |
|
Joshua Suskalo
|
aa93014f83
|
Fix bug where primitive arg optimizations weren't applied to cfn
|
2021-10-09 09:50:56 -05:00 |
|
Joshua Suskalo
|
275c6ec6ab
|
Make arrays deserialize to vectors
|
2021-10-08 19:27:14 -05:00 |
|
Joshua Suskalo
|
ab82b6a5a1
|
Fix a bug where non-primitive argument types failed to link
|
2021-10-06 19:37:29 -05:00 |
|
Joshua Suskalo
|
014901233c
|
Fix bug where compound types in arglist metadata failed
|
2021-10-06 08:53:02 -05:00 |
|
Joshua Suskalo
|
96f3153c5f
|
Fix bug where compound types were not permitted as return values in defcfn
|
2021-10-04 19:21:23 -05:00 |
|
Joshua Suskalo
|
88b2a72f07
|
Add an address predicate
|
2021-10-04 19:20:47 -05:00 |
|
Joshua Suskalo
|
7d621f82db
|
Consider nil as null?
|
2021-10-01 12:10:25 -05:00 |
|
Joshua Suskalo
|
8100295567
|
Ensure serializing nil as a pointer returns null
|
2021-10-01 12:03:25 -05:00 |
|
Joshua Suskalo
|
673a653200
|
Fix bug with primitive-serializing arguments to downcalls not compiling
|
2021-10-01 10:39:32 -05:00 |
|
Joshua Suskalo
|
b98fdc05ea
|
Fix primitive arguments to upcalls not compiling
|
2021-10-01 10:38:42 -05:00 |
|
Joshua Suskalo
|
22343b8512
|
Fix a bug where void returns on upcalls crash the JVM
|
2021-10-01 10:37:38 -05:00 |
|
Joshua Suskalo
|
66eefc7a13
|
Fixed bug with serialize-into and primitives
|
2021-09-30 20:16:16 -05:00 |
|
Joshua Suskalo
|
9d65f47a96
|
Remove reference to method that isn't in panama anymore
|
2021-09-30 19:58:11 -05:00 |
|
Joshua Suskalo
|
daa1949f32
|
Add address metadata key to defcfn as well
|
2021-09-30 15:45:10 -05:00 |
|
Joshua Suskalo
|
5ab2bae1fa
|
Add a function's address to the metadata of deserialized functions
|
2021-09-30 15:40:55 -05:00 |
|
Joshua Suskalo
|
ea53cfbdc2
|
Fix bug where deserializing nullpointers as functions failed instead of returning nil
|
2021-09-30 15:27:12 -05:00 |
|
Joshua Suskalo
|
50cc6f3bdc
|
Fix upcall stubs not compiling with non-primitive argument types
|
2021-09-30 15:25:58 -05:00 |
|
Joshua Suskalo
|
3043bf7877
|
Fix upcall stubs having incorrect type descriptors
|
2021-09-30 15:25:21 -05:00 |
|
Joshua Suskalo
|
b01f4229e5
|
Fix invalid macroexpansion of defcfn without docstring
|
2021-09-29 10:20:10 -05:00 |
|
Joshua Suskalo
|
463d35809b
|
Support type arguments to ::pointer in serialize-into
|
2021-09-27 12:10:04 -05:00 |
|
Joshua Suskalo
|
6bc907e720
|
Add with-acquired blocks to code that needs it
|
2021-09-27 12:09:23 -05:00 |
|
Joshua Suskalo
|
fb3b95977f
|
Add a function to tie two scopes together
|
2021-09-27 12:08:42 -05:00 |
|
Joshua Suskalo
|
5f96439432
|
Separate memory ops into their own ns
|
2021-09-26 14:11:29 -05:00 |
|
Joshua Suskalo
|
14ee7a1ee8
|
Rename :downcall to :function in the symbolspec
|
2021-09-25 13:40:15 -05:00 |
|
Joshua Suskalo
|
8ac03cc961
|
Add a docstring to the main ns
|
2021-09-25 13:24:06 -05:00 |
|
Joshua Suskalo
|
7d970a177f
|
Add function for copying the data from one segment to another
|
2021-09-25 13:12:21 -05:00 |
|
Joshua Suskalo
|
415c842af1
|
Move dispatch for unions into the kwargs
|
2021-09-25 12:27:40 -05:00 |
|
Joshua Suskalo
|
65848c72eb
|
Add function for making a varargs cfn factory with serde wrapper
|
2021-09-25 08:45:45 -05:00 |
|
Joshua Suskalo
|
f7c9796134
|
Add style/indent meta to macros
|
2021-09-24 14:23:37 -05:00 |
|
Joshua Suskalo
|
b6fbd3eccb
|
Replace defstruct style macros with a defalias
|
2021-09-24 12:29:56 -05:00 |
|
Joshua Suskalo
|
bb4c9d89f2
|
Add a macro for constructing union type aliases
|
2021-09-24 10:50:41 -05:00 |
|
Joshua Suskalo
|
3ae1d6840f
|
Remove the docstring from defcstruct
|
2021-09-24 10:25:29 -05:00 |
|
Joshua Suskalo
|
8889da56b2
|
Rename defstruct to defcstruct
|
2021-09-24 10:00:10 -05:00 |
|
Joshua Suskalo
|
0cc650103c
|
Make the default for function serdes be to serde the up/downcall
|
2021-09-23 16:23:13 -05:00 |
|
Joshua Suskalo
|
83bfe879c5
|
Remove a todo after reconsidering
|
2021-09-23 14:54:14 -05:00 |
|
Joshua Suskalo
|
8088633b5b
|
Remove map which is no longer used in implementation
|
2021-09-23 14:31:09 -05:00 |
|
Joshua Suskalo
|
af3c1357d6
|
Add docstrings to private functions and data
|
2021-09-23 14:29:13 -05:00 |
|
Joshua Suskalo
|
704c8710c5
|
Fix docstring of freset! and fswap!
|
2021-09-23 14:25:24 -05:00 |
|
Joshua Suskalo
|
3ce919e5a1
|
Fix broken bytecode in upcalls
|
2021-09-23 13:29:00 -05:00 |
|
Joshua Suskalo
|
f76b2edae4
|
Add todo for nullptrs
|
2021-09-23 13:12:47 -05:00 |
|
Joshua Suskalo
|
ebe36e199c
|
Update struct definition macro for conformed args
|
2021-09-23 12:28:29 -05:00 |
|
Joshua Suskalo
|
8ea6c27b38
|
Ensure ::type spec has its own sequence
|
2021-09-23 12:27:22 -05:00 |
|
Joshua Suskalo
|
3f6203b5d3
|
Fix incorrect serdes around upcalls
|
2021-09-23 12:26:57 -05:00 |
|
Joshua Suskalo
|
284b76255a
|
Fix indentation of upcall-class
|
2021-09-23 12:26:40 -05:00 |
|
Joshua Suskalo
|
f7f8e44a80
|
Change long type hints to casts
|
2021-09-23 12:25:59 -05:00 |
|
Joshua Suskalo
|
fc3b0a96a5
|
Add support for returning non-primitive types via segment allocators
|
2021-09-23 12:24:38 -05:00 |
|
Joshua Suskalo
|
d67d539285
|
Add a function for constructing a fully wrapped c function
|
2021-09-23 09:36:43 -05:00 |
|
Joshua Suskalo
|
eeee025303
|
Add a very basic struct definition macro
|
2021-09-23 09:33:07 -05:00 |
|
Joshua Suskalo
|
7bd9e9b653
|
Remove extraneous bits
|
2021-09-23 08:51:59 -05:00 |
|
Joshua Suskalo
|
e00e62f996
|
Ensure that primitive values are cast to the correct types in serialization
|
2021-09-23 08:30:11 -05:00 |
|
Joshua Suskalo
|
1fe9d2cb02
|
Move library loading interop to a java class
|
2021-09-23 08:15:16 -05:00 |
|
Joshua Suskalo
|
08515095c5
|
Ensure that the library name is loaded correctly
|
2021-09-22 18:22:39 -05:00 |
|
Joshua Suskalo
|
86ff96c797
|
Start function serdes
|
2021-09-22 11:06:13 -05:00 |
|
Joshua Suskalo
|
9e7aab273e
|
Move java layout to a simple function
|
2021-09-20 20:12:32 -05:00 |
|
Joshua Suskalo
|
30891c35ab
|
Fix reflection warnings
|
2021-09-20 20:12:24 -05:00 |
|
Joshua Suskalo
|
4c108b7010
|
Fix bug where symbol lookup used the wrong kind of method
|
2021-09-20 20:11:49 -05:00 |
|
Joshua Suskalo
|
331e72079f
|
Move section for static memory access
|
2021-09-20 20:01:37 -05:00 |
|
Joshua Suskalo
|
a61feaa739
|
Remove inconsistent spec
|
2021-09-20 19:53:13 -05:00 |
|
Joshua Suskalo
|
23602dfa18
|
Add array serdes
|
2021-09-20 19:41:44 -05:00 |
|
Joshua Suskalo
|
b9afb254fb
|
Add padding serdes to support struct layouts
|
2021-09-20 19:41:32 -05:00 |
|
Joshua Suskalo
|
b2918936e7
|
Add struct serdes
|
2021-09-20 19:41:10 -05:00 |
|
Joshua Suskalo
|
aba236f01c
|
Add functions for sequence views of segments
|
2021-09-20 19:16:46 -05:00 |
|
Joshua Suskalo
|
33320a6dc2
|
Add a method to clone a segment
|
2021-09-20 15:29:35 -05:00 |
|
Joshua Suskalo
|
25a11d4ba0
|
Deserialize unions by giving a slice of their segment
|
2021-09-20 15:23:05 -05:00 |
|
Joshua Suskalo
|
317a08abc6
|
Add support for serde wrappers to data model
|
2021-09-20 14:32:00 -05:00 |
|
Joshua Suskalo
|
d886213ded
|
Add support for a serde-varargs-factory wrapper
|
2021-09-20 14:30:04 -05:00 |
|
Joshua Suskalo
|
87f48ec681
|
Add support for union types
|
2021-09-20 14:19:14 -05:00 |
|
Joshua Suskalo
|
382f342aa5
|
Add a function to make a serde wrapper fn
|
2021-09-20 14:19:14 -05:00 |
|
Joshua Suskalo
|
6014ace2a4
|
Ensure that the segment is returned in serialize
|
2021-09-20 12:47:02 -05:00 |
|
Joshua Suskalo
|
f4a4f8ec33
|
Support looking up symbols in non-system libraries
|
2021-09-18 17:30:26 -05:00 |
|
Joshua Suskalo
|
0c6b2616e8
|
Finish docstring for reify-libspec
|
2021-09-18 17:24:40 -05:00 |
|
Joshua Suskalo
|
1e7ec8ad80
|
Allow any kind of argument as a type argument
|
2021-09-18 17:24:40 -05:00 |
|
Joshua Suskalo
|
b584de3e8b
|
Add TODO for symbol lookup for non-libc symbols
|
2021-09-17 15:17:18 -05:00 |
|
Joshua Suskalo
|
6cc17f463e
|
Update qsort example
|
2021-09-17 14:02:06 -05:00 |
|
Joshua Suskalo
|
8159fdebad
|
Allow complex types in native arglists
|
2021-09-17 14:01:49 -05:00 |
|
Joshua Suskalo
|
b5dd785fe0
|
Add function to create a library from a spec
|
2021-09-17 14:01:13 -05:00 |
|
Joshua Suskalo
|
30e549b406
|
Don't call tostring on serializing c-string
|
2021-09-17 13:59:58 -05:00 |
|
Joshua Suskalo
|
eeba1711d6
|
Create data model concept
|
2021-09-17 13:02:26 -05:00 |
|
Joshua Suskalo
|
3030fc66cb
|
Allow multiple function tails in defcfn
|
2021-09-17 12:55:38 -05:00 |
|
Joshua Suskalo
|
e8a3c555bb
|
Ensure that the defcfn macro is validated
|
2021-09-17 12:55:38 -05:00 |
|
Joshua Suskalo
|
ada787a72b
|
Change defcfn to use a fn-tail to allow multiple arity wrappers
|
2021-09-17 12:55:38 -05:00 |
|
Joshua Suskalo
|
fce3675a4b
|
Add docstrings
|
2021-09-17 12:55:38 -05:00 |
|
Joshua Suskalo
|
e72d57c10f
|
Create a public varargs factory builder
|
2021-09-17 12:55:38 -05:00 |
|
Joshua Suskalo
|
dc4013f7d4
|
Create a public make-downcall function
|
2021-09-17 12:55:38 -05:00 |
|
Joshua Suskalo
|
0cfe7edb36
|
Add functions for getting const and variable values from native vars
|
2021-09-17 12:55:38 -05:00 |
|