Commit graph

203 commits

Author SHA1 Message Date
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
Joshua Suskalo
c5aa1f26b7 Fix bug in deserialization of pointer types 2021-09-17 12:55:38 -05:00