Slava Pestov
cc71799833
alien.prettyprint: fix unit test snafu
2010-08-11 21:52:37 -07:00
Joe Groff
04075be646
alien.c-types: classify typedefs of array/string types as typedef-words so they prettyprint correctly
2010-08-11 10:03:19 -07:00
Slava Pestov
a5f59e9cd6
alien.prettyprint: fix test failure
2010-07-29 21:09:05 -04:00
Slava Pestov
6142bd7335
alien.syntax: FUNCTION: and FUNCTION-ALIAS: now define inline words
2010-07-28 03:05:14 -04:00
Slava Pestov
b23aac1beb
compiler.cfg: open-code parameter boxing and unboxing for certain C types
2010-07-19 10:25:13 -04:00
Slava Pestov
446ee6896d
alien.data: remove second quotation parameter from with-out-parameters, now all values are copied properly and calling 'clone' on structs in this quotation is not necessary
2010-07-16 17:32:05 -04:00
Slava Pestov
5b31cbcb3c
alien.data: document with-scoped-allocation and with-out-parameters, and add initial: syntax
2010-07-16 17:13:38 -04:00
Slava Pestov
8a0525e5ce
Add a scan-token word which is like scan, except throws an error on EOF; document scan-object word; mention that scan-token/scan-object are preferred over scan/scan-word
2010-07-06 16:20:08 -04:00
Slava Pestov
4c4a86ee72
alien.data: fix unit test failure
2010-06-11 15:38:57 -04:00
Joe Groff
c8ea7ed0c7
alien.data: make binary-zero? public and move it from classes.struct.private
2010-06-10 17:05:43 -07:00
Slava Pestov
be1b5e6627
alien.prettyprint: fix wrapping when prettyprinting pointer:
2010-06-02 03:11:46 -04:00
Slava Pestov
adecd623d0
alien.prettyprint: fix prettyprinting of array types and CALLBACK: (reported by Anton Gorenko)
2010-05-30 16:21:43 -04:00
Slava Pestov
ba7cb61133
Stack allocation improvements
...
- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas
2010-05-22 02:37:00 -04:00
Slava Pestov
86358b1dc3
alien.data: add with-scoped-allocation combinator for stack-allocating C data
2010-05-19 00:33:36 -04:00
Slava Pestov
4d66f52777
alien.c-types: make a couple of words private
2010-05-18 22:34:42 -04:00
Slava Pestov
1834241e5a
alien.libraries, stack-checker.alien: check user inputs more carefully to ensure that invalid ABI descriptors don't slip through and break random stuff (reported by prunedtree)
2010-05-18 18:46:31 -04:00
Slava Pestov
ea726f5680
Move remaining sequence operations from generalizations to sequences.generalizations where they belong
2010-05-18 18:36:47 -04:00
Slava Pestov
5b48cd2a63
FFI rewrite part 5: return value boxing and callback parameter boxing now uses vregs; simplify return value unboxing
2010-05-16 03:43:23 -04:00
Slava Pestov
0cde5c8fb5
Eliminate compiler.alien
2010-05-11 23:24:47 -04:00
Slava Pestov
ee0640f176
Move flatten-c-type to death row so that it can be executed in part 5
2010-05-11 22:26:31 -04:00
Slava Pestov
c211c3e84e
FFI rewrite part 1: split up ##alien-invoke and friends into smaller instructions
2010-05-09 21:36:52 -04:00
Slava Pestov
627295f094
Language change: tuple slot setter words with stack effect ( value object -- ) are now named FOO<< instead of (>>FOO)
2010-05-06 17:21:02 -04:00
Slava Pestov
e763c74096
More FFI cleanups
2010-05-05 01:13:45 -04:00
Slava Pestov
de8e0ccd5c
alien.c-types: cleanup
2010-05-04 19:33:55 -04:00
Joe Groff
e5c65b2204
use word-props instead of singletons for enum>number conversion so there's not a big fat generic making the image buy another plane ticket
2010-04-21 22:22:06 -07:00
Joe Groff
4c7ab0e9a3
doll up ENUM: docs
2010-04-21 21:33:04 -07:00
Doug Coleman
339952697f
Fix alien.enum docs
2010-04-21 21:32:33 -05:00
Joe Groff
f9668be814
alien.enums: make enum>number foldable so it optimizes constant enums to constant ints, make number>enum a macro so it doesn't use c-type metadata at runtime
2010-04-20 17:05:14 -07:00
Erik Charlebois
fdeb305a3c
Use generic word for enum>number. Tests and documentations.
2010-04-19 20:08:40 -07:00
Erik Charlebois
baab8c060d
Remove ENUM: f and replace uses with CONSTANTs.
...
Fix bootstrap and load-all errors from enum classes.
2010-04-19 20:08:40 -07:00
Joe Groff
52903ee597
prettyprint ENUM: definitions
2010-04-19 20:07:18 -07:00
Joe Groff
d3f770d545
add alien.enums vocab with enum-c-types that convert between symbols and integer values in the FFI. update ENUM: to define symbolic enums, and take an optional base type
2010-04-19 20:07:18 -07:00
Joe Groff
e730d3b6d5
alien.c-types: use CONSULT: to define c-type-protocol methods on c-type-name
2010-04-19 20:07:17 -07:00
Joe Groff
6e55a3b8f5
alien.parser, alien.syntax: send ENUM: body to parse-enum
2010-04-19 20:07:17 -07:00
Joe Groff
f394cb4fdc
alien.parser: have define-enum handle the case when the enum name is f
2010-04-19 20:07:17 -07:00
Joe Groff
8c915e05f7
alien.parser, alien.syntax: refactor ENUM: to separate parsing from definition
2010-04-19 20:07:17 -07:00
Joe Groff
4bc915d526
C-ENUM: -> ENUM:
2010-04-19 20:07:16 -07:00
Slava Pestov
2eda6fc6aa
io.encodings: add a fast-path for ascii, utf8 and 8-bit encodings when string only contains ASCII characters
2010-04-19 01:14:00 -05:00
Joe Groff
37784cd356
rearrange stuff in alien.arrays and alien.data to eliminate libc dependency from alien.arrays, and by extension, alien.syntax
2010-04-14 21:40:29 -07:00
Joe Groff
54015782f3
document FUNCTION-ALIAS:
2010-04-14 16:14:33 -07:00
Joe Groff
d20bff5615
prettyprint FUNCTION-ALIAS: definitions
2010-04-14 12:40:10 -07:00
Joe Groff
e5c1a82643
alien.syntax: FUNCTION-ALIAS: syntax to define a C function binding with a different Factor name
2010-04-14 12:06:45 -07:00
Slava Pestov
becb7c78b7
Move non-parsing words out of alien.syntax, and use a symbol instead of a string variable to store the current library in alien.parser
2010-04-12 18:09:26 -05:00
Slava Pestov
2b4a55b53a
Merge branch 'master' of git://github.com/erikcharlebois/factor
2010-04-10 18:01:19 -07:00
Erik Charlebois
edc489f4c1
Change C-ENUM: to always take a type. Use f for anonymous enums. Update all uses.
2010-04-09 23:48:22 -07:00
Erik Charlebois
4b78fe690b
Extend C-ENUM: to allow specifying the constant vvalues like in C. Add C-TYPED-ENUM: to automatically typedef a type.
2010-04-06 02:46:23 -07:00
Joe Groff
2240520e2d
update some more doc examples using old abi strings
2010-04-02 23:16:53 -07:00
Joe Groff
ef884ef7f2
Merge branch 'master' into abi-symbols
2010-04-01 15:28:36 -07:00
Joe Groff
98d1e7d006
update alien.libraries docs to link cdecl/stdcall symbols
2010-03-31 19:57:04 -07:00
Joe Groff
f3dd625de6
"stdcall" -> stdcall
2010-03-31 19:29:04 -07:00
Joe Groff
65c3259761
"cdecl" -> cdecl
2010-03-31 19:20:35 -07:00
Slava Pestov
2b68f56c89
Document (free), move it out of libc.private and mention it in the "c-strings" help article (reported by Blei)
2010-03-30 17:32:51 -04:00
Slava Pestov
75d0f51b30
alien.debugger: fix USING: form
2010-03-17 19:35:12 +13:00
Slava Pestov
6ff0393e2f
debugger: Untangle some dodgy dependencies that were loading locals before prettyprint, resulting in locals.prettyprint not being loaded
2010-03-17 19:19:43 +13:00
Joe Groff
cd17a934ac
cut commas off of FUNCTION: parameter names in stack effects again
2010-02-28 19:29:53 -08:00
Joe Groff
078ca0fa58
alien.parser: refactor FUNCTION: parsing to read from the source incrementally. parse errors in FUNCTION: should now correspond to their location within the definition
2010-02-28 16:20:45 -08:00
Slava Pestov
17b095a524
Slices over specialized arrays can now be passed to C functions, written to binary output streams, and given to malloc-byte-array
2010-02-25 04:50:31 +13:00
Slava Pestov
af0ddd5985
Specialized arrays, structs and other objects responding to the >c-ptr / byte-length protocol can now be written to binary streams
2010-02-24 20:18:41 +13:00
Joe Groff
b45ec6397b
typo in alien.data docs
2010-02-23 12:20:47 -08:00
Joe Groff
1916b9269e
"pointer-c-type" word-prop hack is now unnecessary since all pointer types behave uniformly now
2010-02-23 12:07:55 -08:00
Joe Groff
db8b6baa2f
typo in alien.parser test
2010-02-23 11:59:53 -08:00
Joe Groff
71d169e420
fix typos in alien docs
2010-02-23 11:56:10 -08:00
Joe Groff
4cfa1a6c77
rename current string-mangling "char*" to "c-string". char* is now just a boring old pointer to char
2010-02-23 11:42:02 -08:00
Joe Groff
818bbb4984
update docs about pointer types
2010-02-23 11:03:48 -08:00
Joe Groff
00a7559d55
have TYPEDEF:, STRUCT: etc. throw an error if you try to define a c type name ending with asterisk
2010-02-23 10:16:18 -08:00
Joe Groff
75e2a5098e
if any typedef in the chain has a pointer-c-type, use it
2010-02-23 08:09:33 -08:00
Slava Pestov
7decccf8bb
Merge branch 'master' of git://factorcode.org/git/factor
2010-02-23 20:26:41 +13:00
Joe Groff
aef979b552
alien.fortran: update tests to reflect new pointer c-type objects
2010-02-22 21:58:18 -08:00
Erik Charlebois
aead6e7dd8
Revert change to make-callback-type cause Slava already fixed it in parse-arglist
2010-02-22 19:34:34 -08:00
Joe Groff
829351f2f2
don't box struct pointer values when they're null
2010-02-22 19:08:43 -08:00
Joe Groff
1bf37f01e5
alien.arrays/classes.struct: ensure specialized array types for struct array slots get instantiated at parse time
2010-02-22 12:21:29 -08:00
Joe Groff
4d2ded634b
alien.parser: properly generate return type name for FUNCTION: stack effects
2010-02-22 11:25:01 -08:00
Erik Charlebois
833372cd08
Merge alien/parser/parser.factor
2010-02-22 10:53:19 -08:00
Erik Charlebois
124982ce23
Fix CALLBACK: effect return type also not a string. Added accompanying unit test.
2010-02-22 10:48:21 -08:00
Joe Groff
31a0d98e02
Merge branch 'master' into new-alien-pointers
...
Conflicts:
basis/alien/c-types/c-types.factor
basis/stack-checker/dependencies/dependencies.factor
2010-02-22 10:32:59 -08:00
Slava Pestov
23a1f0ed8c
alien: some code cleanups and fixes
2010-02-23 01:28:56 +13:00
Slava Pestov
7578429692
alien.c-types: remove void? word
2010-02-22 21:31:41 +13:00
Joe Groff
338edac16c
Merge branch 'master' of git://factorcode.org/git/factor into new-alien-pointers
2010-02-21 23:14:08 -08:00
Joe Groff
0bc8e8f408
alien.arrays: typedef special char* symbol so it still works as expected
2010-02-21 23:11:59 -08:00
Slava Pestov
1986dc49e4
Merge branch 'master' of git://github.com/erikcharlebois/factor
2010-02-22 20:09:20 +13:00
Joe Groff
04cc3052b6
alien.prettyprint: pprint pointer objects as "type*" in c-type contexts
2010-02-21 21:32:34 -08:00
Joe Groff
5faa97e42c
alien.parser: favor parsing "foo*" as pointer-to-foo now
2010-02-21 21:06:00 -08:00
Joe Groff
d5bf6e55cd
more implementation of pointer c-types. make it so that { char* binary } acts like a real pointer to char instead of stringifying, and add byte* typedef for { char* binary }
2010-02-21 20:58:21 -08:00
Joe Groff
5955ba06df
use a "pointer" wrapper tuple to indicate pointer types instead of the current slipshod approach
2010-02-21 16:27:36 -08:00
Joe Groff
62e97c138a
ditch string c-types
2010-02-21 10:58:21 -08:00
Erik Charlebois
536ae3c648
Unit test checking the stack effects from FUNCTION:.
2010-02-20 21:15:47 -08:00
Erik Charlebois
b25e945c74
The return values in the stack effects of FUNCTION: words were c-types rather than strings. This was causing scaffold-help to fail on vocabularies with FUNCTION:.
2010-02-20 03:02:56 -08:00
Joe Groff
42089b6586
alien.libraries: add a "deploy-library" word that marks a library to have its dll deployed with applications that use it. add support to tools.deploy to find and copy deployed libraries into target bundle
2010-02-16 13:32:58 -08:00
Slava Pestov
a3b74d88c9
cpu.architecture: rep-length now works in deployed images
2010-02-11 18:11:47 +13:00
Slava Pestov
59193af701
alien.syntax: save source location for TYPEDEF:, raise error on redefinition
2010-02-05 20:52:20 +13:00
Joe Groff
1ee05e38fb
missed an alien.fortran test
2010-02-02 00:13:13 -08:00
Joe Groff
f1bbeec198
wrap alien.fortran c-type conversion tests in with-manifest
2010-02-01 22:03:51 -08:00
Joe Groff
9adfda095f
alien.fortran: convert fortran types to word c-types
2010-02-01 12:06:10 -08:00
Slava Pestov
892522f8bd
alien.c-types: ensure that long and ulong types are defined with define-primitive-type and not typedef
2010-01-23 00:15:08 +13:00
Slava Pestov
638fbb13b0
alien.c-types: clean up and fix for win64
2010-01-22 23:14:20 +13:00
Slava Pestov
1c10196c43
Rename kernel.private:getenv/setenv to special-object/set-special-object to mirror recent renaming on the VM side
2010-01-13 18:08:18 +13:00
Slava Pestov
e96404327e
Get optimizing compiler working without global register variables in VM
2009-12-22 15:42:49 +13:00
Slava Pestov
7c8d755c45
Fix bootstrap
2009-12-02 19:24:46 -05:00
Joe Groff
67cc1c01be
Merge branch 'master' into simd-cleanup
2009-11-26 16:14:46 -08:00
Joe Groff
66d0cafa94
fix buggy simd intrinsics
2009-11-26 13:28:40 -08:00