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
Slava Pestov
0612bc6177
Factor source files should not be executable
2009-11-21 17:50:43 -06:00
Slava Pestov
c55bdc0d34
alien.c-types: fix help lint
2009-11-19 23:22:08 -06:00
Slava Pestov
2c553bcc86
alien.c-types: make sure generated words reference C type words not strings
2009-11-19 19:34:58 -06:00
Slava Pestov
361c38d5a1
heap-size now has a partial-eval instead of being foldable, and the partial-eval adds a dependency on the C type word. Fixes problem where redefining a struct didn't update specialized array
2009-11-15 11:26:37 -06:00
Slava Pestov
e9a7191050
Fix struct field alignment on PowerPC
2009-11-10 19:34:14 -06:00
Slava Pestov
41e340f231
More PowerPC fixes
2009-11-10 17:26:34 -06:00
Slava Pestov
fba6ddbc22
Move platform-specific c-type initialization out of cpu.* vocabularies and into alien.c-types so that the vm vocabulary, which is loaded before cpu.*, will have correct struct offsets
2009-11-05 01:36:14 -06:00
Slava Pestov
c6b0a91f34
alien.c-types: use (byte-array) instead of <byte-array> in out parameter constructors
2009-11-05 01:08:58 -06:00
Joe Groff
3fbe722561
Merge branch 'master' of http://factorcode.org/git/factor
...
Conflicts:
basis/locals/locals.factor
basis/peg/peg.factor
extra/infix/infix.factor
2009-10-28 16:17:24 -05:00
Joe Groff
6e1bffb1c5
update existing code to use :> ( ) when possible
2009-10-28 16:11:33 -05:00
Doug Coleman
93de179c2f
over push -> suffix!, over push-all -> append!
2009-10-28 15:29:01 -05:00
Doug Coleman
bd13e018dd
memq? -> member-eq?, sorted-memq? -> sorted-member-eq?
2009-10-28 15:02:00 -05:00
Doug Coleman
7ce4b746e5
parsed -> suffix!, add append!
2009-10-28 13:38:27 -05:00
Slava Pestov
560b6f45cc
compiler, cpu.x86.32: clean up FFI implementation, in particular 32-bit x86-specific backend
2009-10-20 04:15:10 -05:00
Slava Pestov
5afce2cc9e
alien.c-types: c-type no longer calls parser at runtime, tools.deploy.shaker now strips out runtime specialized array code generation
2009-10-16 23:50:17 -05:00
Joe Groff
c8eddf89e6
hurr
2009-10-16 16:39:33 -05:00
Joe Groff
21b289e836
tweak parse-c-type so data-map can parse non-c-types
2009-10-16 16:10:09 -05:00
Joe Groff
a37bc4828f
change parse-c-type so that c-type[symbolic-constant] parses to { c-type symbolic-constant }
2009-10-16 12:27:16 -05:00
Slava Pestov
36d1cfd3e5
alien.libraries: fix dlsym docs
2009-10-15 22:08:16 -05:00
Slava Pestov
b88fde04d9
alien.syntax: add C-GLOBAL: for defining words to access global variables, and remove the gimpy one from core-text.utilities
2009-10-09 04:46:29 -05:00
Slava Pestov
18d4f030cd
alien.parser: fix behavior with restarts, reported by mnestic
2009-10-09 04:25:25 -05:00
Joe Groff
b150deeb11
refactor so that generalizations reuses the stub versions of nsequence, firstn, and n*quot needed by memoize
2009-10-08 12:55:52 -05:00
Joe Groff
3a1bb22618
delete malloc-file-contents 'cause it sucks and nobody likes it
2009-10-07 19:30:06 -05:00
Keith Lazuka
405e5d015b
docs: change $subsection to $subsections
2009-10-02 12:15:48 -04:00
Joe Groff
44f393771b
change CALLBACK: to use the ABI of the current LIBRARY: and get rid of STDCALL-CALLBACK:
2009-09-28 19:27:28 -05:00
Slava Pestov
4abfe06b51
Fixing various test failures caused by C type parser change, and clarify C type docs some more
2009-09-28 08:48:39 -05:00
Slava Pestov
7ee8144259
alien.parser: fix unit tests
2009-09-28 05:42:41 -05:00
Slava Pestov
530accdad9
io.mmap: fix obsolete tests and get code to inline better
2009-09-28 03:18:27 -05:00
Joe Groff
123f4fbc30
redefine C-TYPE: to forward declare opaque C types; make C type definition and redefinition a little more robust
2009-09-27 22:12:00 -05:00
Joe Groff
89045e3fd0
Merge branch 'master' into no-c-type-string
2009-09-27 18:47:02 -05:00
Joe Groff
20621bbbb6
add missing USING: to alien.c-types test
2009-09-27 18:18:13 -05:00
Joe Groff
232d1d319c
update alien.c-types tests to use c-type words
2009-09-27 17:41:18 -05:00
Joe Groff
4e68c43f3d
disable parsing of string c-types
2009-09-27 16:06:13 -05:00
Joe Groff
c3935b823f
oops, jumped the gun on one of the alien.parser tests there
2009-09-27 12:10:50 -05:00
Joe Groff
2bc687f0de
add some tests for parse-c-type
2009-09-27 12:03:23 -05:00
Joe Groff
449695c8fe
Merge branch 'master' of git://factorcode.org/git/factor
2009-09-26 23:15:09 -05:00
Joe Groff
5054c954be
add USING:s and rearrange definitions so macosx can compile without parsing c-type strings
2009-09-26 23:14:57 -05:00
Slava Pestov
77fa16c76f
alien: improve documentation
2009-09-26 21:28:11 -05:00
Slava Pestov
685c4143c9
Fix conflict
2009-09-26 21:27:38 -05:00
Joe Groff
2cf0f3e5d3
move alien.inline, alien.cxx, alien.marshall to unmaintained; nuke alien.structs
2009-09-26 20:37:42 -05:00
Slava Pestov
63bf76cc1e
alien.complex: fix tests
2009-09-24 12:59:56 -05:00
Slava Pestov
bbbb207dab
Some fixes and cleanups in math.vectors
...
- Tighten up type inference for operations on complex float arrays
- Fix v. to have correct behavior with complex numbers
- Rename v<< and v>> to vlshift and vrshift to avoid clashing with v>> accessor
2009-09-24 06:58:33 -05:00
Slava Pestov
7ea8832556
Tweaks to reduce deployed image size
2009-09-24 06:24:43 -05:00
Slava Pestov
dfc9fd071e
Add longlong-2, ulonglong-2, longlong-4, ulonglong-4 SIMD types, fix int-4 multiplication on SSE2
2009-09-23 20:23:25 -05:00
Slava Pestov
0f0bf667b5
Merge branch 'master' of git://factorcode.org/git/factor into integer-simd
2009-09-21 17:58:24 -05:00
Joe Groff
6ce8eba961
prettyprint CALLBACK: defs
2009-09-21 14:14:12 -05:00
Joe Groff
0ff319c409
docs for C type words
2009-09-21 13:39:55 -05:00
Joe Groff
55988828bf
update alien docs to talk about C types as words
2009-09-21 13:20:01 -05:00
Joe Groff
00fa7f73fb
add CALLBACK: syntax that defines a typedef and an alien-callback constructor word for function pointer types. update some code in iokit.hid and windows.dinput to use CALLBACK: instead of TYPEDEF:/word pairs
2009-09-21 11:59:41 -05:00
Joe Groff
b09006bba9
include LIBRARY: in FUNCTION: synopsis
2009-09-20 23:59:43 -05:00
Slava Pestov
9d90bdd439
Fix conflict
2009-09-20 23:18:07 -05:00
Slava Pestov
ea44ea3522
math.vectors.simd: add saturated arithmetic operations
2009-09-20 23:16:02 -05:00
Joe Groff
08d9d0ad28
fix synopsis for C-TYPE:, TYPEDEF:, and FUNCTION: so they properly show IN: clause
2009-09-20 23:12:31 -05:00
Slava Pestov
e77341b90c
math.vectors.simd: redesign to be more flexible, integer SIMD work in progress
2009-09-20 02:08:32 -05:00
Joe Groff
076ab42dc3
move some allocation words that don't really have much to do with c types out of alien.c-types into a new alien.data vocab
2009-09-17 22:36:05 -05:00
Joe Groff
8f336b4ec0
alien.fortran can't piggyback the alien.parser arg parser anymore
2009-09-16 21:24:10 -05:00
Joe Groff
263ce45932
fix resolve-pointer-type
2009-09-16 20:54:57 -05:00
Joe Groff
58756c27c5
have typedefs take on the old type's pointer type even when the new type is a word and the old a string
2009-09-16 17:36:50 -05:00
Joe Groff
40620d470f
allow word c-types and definitions to coexist
2009-09-16 17:18:19 -05:00
Joe Groff
e70c063e61
fix alien-function-word predicate
2009-09-16 14:17:13 -05:00
Joe Groff
fc5500a0dc
oops... word c-types can be structs too
2009-09-16 13:11:53 -05:00
Joe Groff
b403ba5c17
fix FUNCTION: prettyprint when function has no arguments
2009-09-16 10:24:03 -05:00
Joe Groff
6dc6886bd9
typedefs share their original type's pointer definition
2009-09-15 22:58:07 -05:00
Joe Groff
2bbd29a561
prettyprinting for FUNCTION: definitions
2009-09-15 22:39:25 -05:00
Joe Groff
b629391477
fix typedef prettyprinting
2009-09-15 22:10:41 -05:00
Joe Groff
26026ff6de
fix bug in pointer type parsing
2009-09-15 22:10:16 -05:00
Joe Groff
3b4330fcf6
get things to a point where they bootstrap again
2009-09-15 21:43:18 -05:00
Joe Groff
ab8abeaee4
Merge branch 'master' into c-type-words
2009-09-15 19:14:41 -05:00
Joe Groff
4d16c569f0
struct classes now make their own C type without help from alien.structs. remove alien.structs dependencies from everywhere outside of alien and compiler, and have the FFI handle both alien.structs and classes.struct c-types
2009-09-15 17:38:49 -05:00
Slava Pestov
9382c67437
alien.syntax: improve C-ENUM: docs
2009-09-15 16:24:58 -05:00
Joe Groff
35b76b83af
convert compiler cpu backends to use c-type words
2009-09-15 16:08:42 -05:00
Joe Groff
ac41416953
create words for c-types
2009-09-15 15:18:54 -05:00
Slava Pestov
a2b864e4f5
ALIEN: now reads a hexadecimal integer instead of a decimal one, since in general hex is more useful for addresses
2009-09-12 21:17:53 -05:00
Slava Pestov
91e7e1eeea
Fix the build
2009-09-10 00:47:01 -05:00
Slava Pestov
7f2e2b1777
Specialized array overhaul
...
- Replace hand-written specialized-arrays.* subvocabularies with new system; instead of USE:ing specialized-arrays.T, do SPECIALIZED-ARRAY: T
- Ditto for specialized-vectors; use SPECIALIZED-VECTOR:
- io.mmap.functor: removed entirely, use <mapped-array> instead
- struct-arrays and struct-vectors have been removed because specialized arrays and vectors subsume them entirely
2009-09-09 22:33:34 -05:00
Slava Pestov
bbca00e2ae
Fix conflicts
2009-09-07 23:51:25 -05:00
Slava Pestov
a054ec3d64
specialized-arrays.direct is no more; instead, every specialized-array.<foo> vocabulary has a <direct-T-array> constructor
2009-09-04 22:01:55 -05:00
Slava Pestov
4d5a4222b6
More SIMD work
...
- Rename SIMD types and register representations: <type>-<count> rather than <count><type>-array
- Make a functor to define 256-bit vector types, use it to define float-8 type
- Make SIMD instructions pure-insns so that they participate in value numbering
2009-09-03 20:58:56 -05:00
Joe Groff
522f426ba7
fix help lint failures
2009-09-01 13:04:00 -05:00
Joe Groff
0f1270720d
fix bootstrap
2009-08-30 20:09:43 -05:00