2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								USING:  accessors  alien  alien.c-types  alien.libraries 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								alien.syntax arrays classes.struct combinators
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								compiler continuations effects io io.backend io.pathnames
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								io.streams.string kernel math memory namespaces
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								namespaces.private parser quotations sequences
							 
						 
					
						
							
								
									
										
										
										
											2009-09-09 23:33:34 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								specialized-arrays stack-checker stack-checker.errors
							 
						 
					
						
							
								
									
										
										
										
											2009-09-28 09:48:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								system threads tools.test words alien.complex ;
 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-16 10:20:47 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								FROM:  alien.c-types  => float  short  ;
 
							 
						 
					
						
							
								
									
										
										
										
											2009-09-09 23:33:34 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								SPECIALIZED-ARRAY: float
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								SPECIALIZED-ARRAY: char
							 
						 
					
						
							
								
									
										
										
										
											2009-04-26 01:51:47 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								IN:  compiler.tests.alien 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-25 14:05:34 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								<<
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  libfactor-ffi-tests-path  (  --  string  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-28 18:25:50 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    "resource:"  absolute-path
							 
						 
					
						
							
								
									
										
										
										
											2009-03-25 14:05:34 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
									
										
										
										
											2009-03-26 19:56:10 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { [ os winnt? ]  [ "libfactor-ffi-test.dll"  ] }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        { [ os macosx? ] [ "libfactor-ffi-test.dylib"  ] }
							 
						 
					
						
							
								
									
										
										
										
											2009-03-28 15:41:48 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        { [ os unix?  ]  [ "libfactor-ffi-test.so"  ] }
							 
						 
					
						
							
								
									
										
										
										
											2009-03-26 19:56:10 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    } cond  append-path ;
 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-25 14:05:34 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"f-cdecl"  libfactor-ffi-tests-path "cdecl"  add-library
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								"f-stdcall"  libfactor-ffi-tests-path "stdcall"  add-library
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								>>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-27 18:58:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								LIBRARY: f-cdecl
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: void ffi_test_0 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [ ffi_test_0 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: int ffi_test_1 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 3  ] [ ffi_test_1 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: int ffi_test_2 int x int y ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 5  ] [ 2  3  ffi_test_2 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ "hi"  3  ffi_test_2 ] must-fail
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: int ffi_test_3 int x int y int z int t  ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 25  ] [ 2  3  4  5  ffi_test_3 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: float  ffi_test_4 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1.5  ] [ ffi_test_4 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: double ffi_test_5 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1.5  ] [ ffi_test_5 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: int ffi_test_9 int a int b int c int d int e int f  int g ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 28  ] [ 1  2  3  4  5  6  7  ffi_test_9 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ "a"  2  3  4  5  6  7  ffi_test_9 ] must-fail
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1  2  3  4  5  6  "a"  ffi_test_9 ] must-fail
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  FOO  { x int } { y int } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  make-FOO  (  x  y  --  FOO  )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    FOO <struct> swap  >>y swap  >>x ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								FUNCTION: int ffi_test_11 int a FOO b int c ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 14  ] [ 1  2  3  make-FOO 4  ffi_test_11 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: int ffi_test_13 int a int b int c int d int e int f  int g int h int i int j int k ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 66  ] [ 1  2  3  4  5  6  7  8  9  10  11  ffi_test_13 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								FUNCTION: FOO ffi_test_14 int x int y ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 11  6  ] [ 11  6  ffi_test_14 [ x>> ] [ y>> ] bi  ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: char* ffi_test_15 char* x char* y ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ "foo"  ] [ "xy"  "zt"  ffi_test_15 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ "bar"  ] [ "xy"  "xy"  ffi_test_15 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1  2  ffi_test_15 ] must-fail
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  BAR  { x long } { y long } { z long } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								FUNCTION: BAR ffi_test_16 long x long y long z ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 11  6  -7  ] [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    11  6  -7  ffi_test_16 [ x>> ] [ y>> ] [ z>> ] tri
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  TINY  { x int } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								FUNCTION: TINY ffi_test_17 int x ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 11  ] [ 11  ffi_test_17 x>> ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ [ alien-indirect ] infer ] [ inference-error? ] must-fail-with
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  indirect-test-1  (  ptr  --  result  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    int { } "cdecl"  alien-indirect ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 1  1  } [ indirect-test-1 ] must-infer-as
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-11 01:03:58 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 3  ] [ &: ffi_test_1 indirect-test-1 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-09-01 03:04:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  indirect-test-1'  (  ptr  --  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    int { } "cdecl"  alien-indirect drop  ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-01 03:04:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 1  0  } [ indirect-test-1' ] must-infer-as
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-12-11 01:03:58 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ ] [ &: ffi_test_1 indirect-test-1' ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-09-01 03:04:42 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								[ -1  indirect-test-1 ] must-fail
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  indirect-test-2  (  x  y  ptr  --  result  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    int { int int } "cdecl"  alien-indirect gc ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ 3  1  } [ indirect-test-2 ] must-infer-as
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 5  ]
							 
						 
					
						
							
								
									
										
										
										
											2008-12-11 01:03:58 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 2  3  &: ffi_test_2 indirect-test-2 ]
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  indirect-test-3  (  a  b  c  d  ptr  --  result  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    int { int int int int } "stdcall"  alien-indirect
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    gc ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-03-25 14:05:34 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ f  ] [ "f-stdcall"  load-library f  =  ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-09-02 02:53:01 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ "stdcall"  ] [ "f-stdcall"  library abi>> ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  ffi_test_18  (  w  x  y  z  --  int  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 19:44:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    int "f-stdcall"  "ffi_test_18"  { int int int int }
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    alien-invoke gc ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 25  ] [ 2  3  4  5  ffi_test_18 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  ffi_test_19  (  x  y  z  --  BAR  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 19:44:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    BAR "f-stdcall"  "ffi_test_19"  { long long long }
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    alien-invoke gc ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 11  6  -7  ] [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    11  6  -7  ffi_test_19 [ x>> ] [ y>> ] [ z>> ] tri
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: double ffi_test_6 float  x float  y ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 6.0  ] [ 3.0  2.0  ffi_test_6 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ "a"  "b"  ffi_test_6 ] must-fail
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: double ffi_test_7 double x double y ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 6.0  ] [ 3.0  2.0  ffi_test_7 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: double ffi_test_8 double x float  y double z float  t  int w ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 19.0  ] [ 3.0  2.0  1.0  6.0  7  ffi_test_8 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: int ffi_test_10 int a int b double c int d float  e int f  int g int h ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ -34  ] [ 1  2  3.0  4  5.0  6  7  8  ffi_test_10 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: void ffi_test_20 double x1, double x2, double x3,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    double y1, double y2, double y3,
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    double z1, double z2, double z3 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [ 1.0  2.0  3.0  4.0  5.0  6.0  7.0  8.0  9.0  ffi_test_20 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! Make sure XT doesn't get clobbered in stack frame 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-11-17 13:23:44 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  ffi_test_31  (  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  --  result  y  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 19:44:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    int
							 
						 
					
						
							
								
									
										
										
										
											2009-03-27 15:39:45 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    "f-cdecl"  "ffi_test_31" 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 19:44:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int int }
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    alien-invoke gc 3  ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-11-17 13:23:44 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 861  3  ] [ 42  [ ] each  ffi_test_31 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  ffi_test_31_point_5  (  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  a  --  result  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 19:44:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    float
 
							 
						 
					
						
							
								
									
										
										
										
											2009-03-27 18:58:31 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    "f-cdecl"  "ffi_test_31_point_5" 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 19:44:00 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  float  }
							 
						 
					
						
							
								
									
										
										
										
											2008-11-17 13:23:44 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    alien-invoke ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 861.0  ] [ 42  [ >float  ] each  ffi_test_31_point_5 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: longlong ffi_test_21 long x long y ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 121932631112635269  ]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 123456789  987654321  ffi_test_21 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: long ffi_test_22 long x longlong y longlong z ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 987655432  ]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1111  121932631112635269  123456789  ffi_test_22 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1111  f  123456789  ffi_test_22 ] must-fail
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  RECT 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 13:00:06 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { x float  } { y float  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { w float  } { h float  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  <RECT>  (  x  y  w  h  --  rect  )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    RECT <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        swap  >>h
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        swap  >>w
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        swap  >>y
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        swap  >>x ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								FUNCTION: int ffi_test_12 int a int b RECT c int d int e int f  ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 45  ] [ 1  2  3.0  4.0  5.0  6.0  <RECT> 7  8  9  ffi_test_12 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1  2  { 1  2  3  } 7  8  9  ffi_test_12 ] must-fail
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  float ffi_test_23  ( float[3] x, float[3] y ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 21:18:16 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 32.0  ] [
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 05:37:28 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { 1.0  2.0  3.0  } >float-array
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { 4.0  5.0  6.0  } >float-array
							 
						 
					
						
							
								
									
										
										
										
											2008-11-14 21:18:16 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ffi_test_23
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! Test odd-size structs 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-1  { x char[1] } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: test-struct-1 ffi_test_24 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ S{ test-struct-1 { x char-array{ 1  } } } ] [ ffi_test_24 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-2  { x char[2] } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: test-struct-2 ffi_test_25 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ S{ test-struct-2 { x char-array{ 1  2  } } } ] [ ffi_test_25 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-3  { x char[3] } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: test-struct-3 ffi_test_26 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ S{ test-struct-3 { x char-array{ 1  2  3  } } } ] [ ffi_test_26 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-4  { x char[4] } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: test-struct-4 ffi_test_27 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ S{ test-struct-4 { x char-array{ 1  2  3  4  } } } ] [ ffi_test_27 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-5  { x char[5] } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: test-struct-5 ffi_test_28 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ S{ test-struct-5 { x char-array{ 1  2  3  4  5  } } } ] [ ffi_test_28 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-6  { x char[6] } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: test-struct-6 ffi_test_29 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ S{ test-struct-6 { x char-array{ 1  2  3  4  5  6  } } } ] [ ffi_test_29 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-7  { x char[7] } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: test-struct-7 ffi_test_30 ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-26 12:01:39 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ S{ test-struct-7 { x char-array{ 1  2  3  4  5  6  7  } } } ] [ ffi_test_30 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 13:00:06 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-8  { x double } { y double } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: double ffi_test_32 test-struct-8 x int y ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 9.0  ] [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test-struct-8 <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    1.0  >>x
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    2.0  >>y
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    3  ffi_test_32
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 13:00:06 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-9  { x float  } { y float  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: double ffi_test_33 test-struct-9 x int y ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 9.0  ] [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test-struct-9 <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    1.0  >>x
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    2.0  >>y
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    3  ffi_test_33
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 13:00:06 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-10  { x float  } { y int } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: double ffi_test_34 test-struct-10 x int y ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 9.0  ] [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test-struct-10 <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    1.0  >>x
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    2  >>y
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    3  ffi_test_34
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-11  { x int } { y int } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: double ffi_test_35 test-struct-11 x int y ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 9.0  ] [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test-struct-11 <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    1  >>x
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    2  >>y
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    3  ffi_test_35
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 13:00:06 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test-struct-12  { a int } { x double } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-09-09 04:10:43 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  make-struct-12  (  x  --  alien  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test-struct-12 <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        swap  >>x ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  double ffi_test_36  ( test-struct-12 x ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1.23456  ] [ 1.23456  make-struct-12 ffi_test_36 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  ulonglong ffi_test_38  ( ulonglong x, ulonglong y ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ t  ] [ 31  2^  32  2^  ffi_test_38 63  2^  =  ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! Test callbacks 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  callback-1  (  --  callback  )  void { } "cdecl"  [ ] alien-callback ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-08-29 13:00:54 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 0  1  ] [ [ callback-1 ] infer [ in>> ] [ out>> ] bi  ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ t  ] [ callback-1 alien? ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  callback_test_1  (  ptr  --  )  void { } "cdecl"  alien-indirect ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [ callback-1 callback_test_1 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  callback-2  (  --  callback  )  void { } "cdecl"  [ [ 5  throw  ] ignore-errors  ] alien-callback ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [ callback-2 callback_test_1 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  callback-3  (  --  callback  )  void { } "cdecl"  [ 5  "x"  set  ] alien-callback ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ t  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    namestack*
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    3  "x"  set  callback-3 callback_test_1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    namestack* eq?
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 5  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        3  "x"  set  callback-3 callback_test_1 "x"  get
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ] with-scope
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-4  (  --  callback  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    void { } "cdecl"  [ "Hello world"  write  ] alien-callback
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    gc ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ "Hello world"  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    [ callback-4 callback_test_1 ] with-string-writer
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-5  (  --  callback  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    void { } "cdecl"  [ gc ] alien-callback ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ "testing"  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "testing"  callback-5 callback_test_1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-16 12:39:22 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								:  callback-5b  (  --  callback  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    void { } "cdecl"  [ compact-gc ] alien-callback ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-10-16 12:39:22 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ "testing"  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    "testing"  callback-5b callback_test_1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-6  (  --  callback  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    void { } "cdecl"  [ [ continue  ] callcc0  ] alien-callback ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1  2  3  ] [ callback-6 callback_test_1 1  2  3  ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-7  (  --  callback  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    void { } "cdecl"  [ 1000000  sleep ] alien-callback ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1  2  3  ] [ callback-7 callback_test_1 1  2  3  ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ f  ] [ namespace  global  eq?  ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-8  (  --  callback  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    void { } "cdecl"  [
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								        [ continue  ] callcc0
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ] alien-callback ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [ callback-8 callback_test_1 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-9  (  --  callback  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    int { int int int } "cdecl"  [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-13 20:21:44 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        +  +  1  +
 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-22 16:30:57 -04:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								    ] alien-callback ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: void ffi_test_36_point_5 (  )  ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [ ffi_test_36_point_5 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  int ffi_test_37  ( void* func ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1  ] [ callback-9 ffi_test_37 ] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 7  ] [ callback-9 ffi_test_37 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-09-09 04:10:43 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test_struct_13 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 13:00:06 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ x1 float  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ x2 float  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ x3 float  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ x4 float  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ x5 float  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ x6 float  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-09 04:10:43 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  make-test-struct-13  (  --  alien  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test_struct_13 <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        1.0  >>x1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        2.0  >>x2
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        3.0  >>x3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        4.0  >>x4
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        5.0  >>x5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        6.0  >>x6 ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-09 04:10:43 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  int ffi_test_39  ( long a, long b, test_struct_13 s ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 21  ] [ 12347  12347  make-test-struct-13 ffi_test_39 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-09-12 01:04:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! Joe Groff found this problem 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  double-rect 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 13:00:06 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								{ a double }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ b double }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ c double }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								{ d double } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-12 01:04:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  <double-rect>  (  a  b  c  d  --  foo  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    double-rect <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        swap  >>d
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        swap  >>c
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        swap  >>b
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        swap  >>a ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-12 01:04:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  >double-rect<  (  foo  --  a  b  c  d  )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    {
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        [ a>> ]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        [ b>> ]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        [ c>> ]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        [ d>> ]
							 
						 
					
						
							
								
									
										
										
										
											2008-09-12 01:04:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    } cleave  ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  double-rect-callback  (  --  alien  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    void { void* void* double-rect } "cdecl" 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-12 01:04:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    [ "example"  set-global  2drop  ] alien-callback ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  double-rect-test  (  arg  --  arg'  )
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    f  f  rot
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    double-rect-callback
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    void { void* void* double-rect } "cdecl"  alien-indirect
							 
						 
					
						
							
								
									
										
										
										
											2008-09-12 01:04:56 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    "example"  get-global  ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1.0  2.0  3.0  4.0  ]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1.0  2.0  3.0  4.0  <double-rect> double-rect-test >double-rect< ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test_struct_14 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 13:00:06 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { x1 double }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { x2 double } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  test_struct_14 ffi_test_40  ( double x1, double x2 ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1.0  2.0  ] [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    1.0  2.0  ffi_test_40 [ x1>> ] [ x2>> ] bi
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-10  (  --  callback  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test_struct_14 { double double } "cdecl" 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        test_struct_14 <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            swap  >>x2
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            swap  >>x1
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ] alien-callback ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-10-test  (  x1  x2  callback  --  result  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test_struct_14 { double double } "cdecl"  alien-indirect ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1.0  2.0  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    1.0  2.0  callback-10 callback-10-test
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    [ x1>> ] [ x2>> ] bi
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  test-struct-12 ffi_test_41  ( int a, double x ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1  2.0  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    1  2.0  ffi_test_41
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    [ a>> ] [ x>> ] bi
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-11  (  --  callback  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test-struct-12 { int double } "cdecl" 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        test-struct-12 <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            swap  >>x
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            swap  >>a
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ] alien-callback ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-11-test  (  x1  x2  callback  --  result  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test-struct-12 { int double } "cdecl"  alien-indirect ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1  2.0  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    1  2.0  callback-11 callback-11-test
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    [ a>> ] [ x>> ] bi
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test_struct_15 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 13:00:06 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { x float  }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { y float  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  test_struct_15 ffi_test_42  ( float x, float y ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 1.0  2.0  ] [ 1.0  2.0  ffi_test_42 [ x>> ] [ y>> ] bi  ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-12  (  --  callback  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test_struct_15 { float  float  } "cdecl" 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        test_struct_15 <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            swap  >>y
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            swap  >>x
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ] alien-callback ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-12-test  (  x1  x2  callback  --  result  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test_struct_15 { float  float  } "cdecl"  alien-indirect ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1.0  2.0  ] [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    1.0  2.0  callback-12 callback-12-test [ x>> ] [ y>> ] bi
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  test_struct_16 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 13:00:06 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { x float  }
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { a int } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  test_struct_16 ffi_test_43  ( float x, int a ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 1.0  2  ] [ 1.0  2  ffi_test_43 [ x>> ] [ a>> ] bi  ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-13  (  --  callback  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test_struct_16 { float  int } "cdecl" 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								        test_struct_16 <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            swap  >>a
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								            swap  >>x
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ] alien-callback ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  callback-13-test  (  x1  x2  callback  --  result  )
 
							 
						 
					
						
							
								
									
										
										
										
											2009-10-21 22:10:11 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    test_struct_16 { float  int } "cdecl"  alien-indirect ;
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 1.0  2  ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    1.0  2  callback-13 callback-13-test
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    [ x>> ] [ a>> ] bi
 
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: test_struct_14 ffi_test_44 (  )  ;  inline
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ 1.0  2.0  ] [ ffi_test_44 [ x1>> ] [ x2>> ] bi  ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2008-09-13 21:28:13 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								:  stack-frame-bustage  (  --  a  b  )  ffi_test_44 gc 3  ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ ] [ stack-frame-bustage 2drop  ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 05:02:00 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 13:21:53 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								FUNCTION:  complex-float ffi_test_45  ( int x ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 13:30:11 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ C{ 3.0  0.0  } ] [ 3  ffi_test_45 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 13:21:53 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  complex-double ffi_test_46  ( int x ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 13:30:11 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								[ C{ 3.0  0.0  } ] [ 3  ffi_test_46 ] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 13:21:53 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  complex-float ffi_test_47  ( complex-float x, complex-double y ) ;
 
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 05:02:00 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ C{ 4.0  4.0  } ] [
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    C{ 1.0  2.0  }
							 
						 
					
						
							
								
									
										
										
										
											2009-02-06 13:21:53 -05:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    C{ 1.5  1.0  } ffi_test_47
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2009-05-05 19:37:40 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! Reported by jedahu 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								STRUCT:  bool-field-test 
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 17:31:58 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { name char* }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    { on  bool }
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    { parents short  } ;
 
							 
						 
					
						
							
								
									
										
										
										
											2009-05-05 19:37:40 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION:  short ffi_test_48  ( bool-field-test x ) ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ 123  ] [
							 
						 
					
						
							
								
									
										
										
										
											2009-08-25 11:59:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    bool-field-test <struct>
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								        123  >>parents
							 
						 
					
						
							
								
									
										
										
										
											2009-05-05 19:37:40 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								    ffi_test_48
							 
						 
					
						
							
								
									
										
										
										
											2009-08-13 20:21:44 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								] unit-test
							 
						 
					
						
							
								
									
										
										
										
											2009-09-25 19:08:33 -04:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								! Regression: calling an undefined function would raise a protection fault 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								FUNCTION: void this_does_not_exist (  )  ;
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								[ this_does_not_exist ] [ { "kernel-error"  10  f  f  } =  ] must-fail-with
							 
						 
					
						
							
								
									
										
										
										
											2009-10-16 12:39:22 -04:00