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 
							
						 
					 
					
						
						
							
						
						a1aab4008f 
					 
					
						
						
							
							Update FFI example.  
						
						
						
						
					 
					
						2022-06-18 10:06:39 -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 
							
						 
					 
					
						
						
							
						
						cff718f37d 
					 
					
						
						
							
							Add suite0012 stub with delay test.  
						
						
						
						
					 
					
						2022-06-17 17:27:42 -05:00 
						 
				 
			
				
					
						
							
							
								Calvin Rose 
							
						 
					 
					
						
						
							
						
						40e9430278 
					 
					
						
						
							
							Move examples to example directory.  
						
						
						
						
					 
					
						2022-06-17 17:24:52 -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 
							
						 
					 
					
						
						
							
						
						3af7d61d3e 
					 
					
						
						
							
							Update gtk example.  
						
						
						
						
					 
					
						2022-06-12 12:51:06 -05:00 
						 
				 
			
				
					
						
							
							
								Calvin Rose 
							
						 
					 
					
						
						
							
						
						a45ef7a856 
					 
					
						
						
							
							Update CHANGELOG to reflect new function renames.  
						
						
						
						
					 
					
						2022-06-12 10:17:25 -05:00 
						 
				 
			
				
					
						
							
							
								Calvin Rose 
							
						 
					 
					
						
						
							
						
						299998055d 
					 
					
						
						
							
							Update meson min build to turn off ffi.  
						
						
						
						
					 
					
						2022-06-12 10:15:36 -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 
							
						 
					 
					
						
						
							
						
						55c34cd84f 
					 
					
						
						
							
							Merge pull request  #985  from masukomi/readme_update  
						
						... 
						
						
						
						added make install & install-jpm-git to Readme 
						
						
					 
					
						2022-06-09 10:02:58 -05:00 
						 
				 
			
				
					
						
							
							
								masukomi 
							
						 
					 
					
						
						
							
						
						aca52d1e36 
					 
					
						
						
							
							added make install & install-jpm-git to readme  
						
						
						
						
					 
					
						2022-06-08 21:58:55 -04: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