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
Joe Groff
0df9884ee5
change c-type-* to c-* everywhere
2009-08-30 19:05:29 -05:00
Joe Groff
361cc04b02
rather than deprecate <c-array>, replace it with <c-type-array> . to stay consistent, rename <c-type-direct-array> to <c-direct-array> and require-c-type-arrays to require-c-arrays
2009-08-30 18:41:38 -05:00
Joe Groff
be406fa964
fix alien.complex unboxer
2009-08-29 23:18:31 -05:00
Joe Groff
4d8ed23db5
add non-initializing (malloc-array) and (malloc-object) for kicks
2009-08-29 22:42:48 -05:00
Joe Groff
db7eb4e27a
change alien.complex to use struct classes
2009-08-29 20:20:25 -05:00
Joe Groff
a71f242578
change malloc-object back to using calloc
2009-08-29 15:28:31 -05:00
Joe Groff
0e8fe01d11
change malloc-object and <c-object> not to be in terms of malloc-array and <c-array>
2009-08-29 12:45:59 -05:00
Joe Groff
64baa58a3d
typo in alien.c-types docs
2009-08-29 12:23:09 -05:00
Joe Groff
8a9d0e13bb
deprecate <c-array>, and make malloc-array box its returned buffer in a direct array
2009-08-29 11:15:23 -05:00
Joe Groff
b8978446d9
Merge branch 'master' of git://factorcode.org/git/factor
2009-08-27 21:51:15 -05:00
Joe Groff
e85925153c
deprecate C-STRUCT:, C-UNION:, and old-school struct accessors
2009-08-27 21:51:08 -05:00
Slava Pestov
7cf4e608e5
alien: move code for supporting CONSTANT: foo 123 { "int" foo } C types into one place instead of the old scattershot approach
2009-08-27 21:49:25 -05:00
Slava Pestov
f808f43ffb
A few inline declarations
2009-08-27 04:09:12 -05:00
Joe Groff
53b7729f76
require struct-arrays after alien.structs is loaded
2009-08-26 22:24:55 -05:00
Joe Groff
24c2eaae01
box elements of struct-arrays when a struct class is used as the element type
2009-08-26 17:19:30 -05:00
Joe Groff
b6bba164e4
box array c-types into direct-arrays
2009-08-25 21:36:25 -05:00
Joe Groff
87c670b785
no really, support <c-type-array> of structs using struct-arrays
2009-08-25 20:57:23 -05:00
Joe Groff
a2518377e3
support <c-type-array> of structs using struct-arrays
2009-08-25 20:43:48 -05:00
Joe Groff
8aa9327dcc
support <c-type-array> on complex ffi types
2009-08-25 19:58:04 -05:00
Joe Groff
005107973f
docs for require-c-type-arrays, <c-type-array>, <c-type-direct-array>
2009-08-25 18:51:56 -05:00
Joe Groff
59cdec755a
throw a better error if <c-type*-array> is called when specialized array vocab isn't loaded. fix <c-type-direct-array>
2009-08-25 18:24:49 -05:00
Joe Groff
79787f6259
associate specialized-arrays vocabs with c-types; add words for requiring vocabs and constructing arrays by C type
2009-08-25 17:56:01 -05:00
Slava Pestov
7b6d00a833
alien.destructors: don't use disposable protocol, since it is common practice to 'leak' alien destructors (|Foo idiom)
2009-08-24 20:45:46 -05:00
Slava Pestov
46045c882e
Disposables are now registered in a global disposables set. To take advantage of this, subclass disposable instead of providing a disposed slot and call new-disposable instead of new. tools.disposables defines two words, 'disposable.' and 'leaks', to help track down resource lifetime problems
2009-08-24 02:26:13 -05:00
Doug Coleman
3f3d57032b
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring
2009-08-13 19:21:44 -05:00
Slava Pestov
422dd24bad
alien.complex: fix tests
2009-08-11 14:07:33 -05:00
Slava Pestov
9fb0dcd9bd
alien: need to differentiate between the type of the result before and after boxing; the former is used by propagation for #alien-invoke nodes and the latter is used by specialized arrays. This fixes FFI unit test failures
2009-08-10 16:17:33 -05:00
Slava Pestov
d19c403fee
alien.structs: struct-type now has a class slot; fix specialized complex-float/double arrays
2009-08-09 16:10:11 -05:00
Slava Pestov
725280d424
Split off the notion of a register representation from a register class
2009-08-07 17:44:50 -05:00
Joe Groff
a2fe9f1952
[ [ ... ] bi@ <=> ] sort => [ ... ] sort-with
2009-08-02 20:13:59 -05:00
Slava Pestov
1993274d01
alien.libraries: add-library should now reload the library properly, instead of just leaking DLL handles
2009-07-31 19:46:18 -05:00
Doug Coleman
f7b2e4a155
remove call to check-c-name
2009-07-23 18:14:07 -05:00
Doug Coleman
9bb38b870c
allow FUNCTION: to parse pointers in the name field
2009-07-23 18:05:09 -05:00
Doug Coleman
bad8e05937
Disallow C functions and parameter names that contain an asterisk
2009-07-23 15:48:10 -05:00
Jeremy Hughes
79dd644e57
moved alien.inline and alien.marshall to extra
2009-07-14 22:39:27 +12:00
Jeremy Hughes
48bd9aaacf
alien.marshall.syntax: added documentation
2009-07-14 22:36:59 +12:00
Jeremy Hughes
cddc5a3188
alien.marshall.syntax: arg renaming
2009-07-14 22:36:45 +12:00
Jeremy Hughes
586cf9547f
alien.marshall: fixed char* unmarshalling bug
2009-07-14 22:33:23 +12:00
Jeremy Hughes
90b7ca501b
alien.(inline,marshall): removed unused doc helper words and made the rest private
2009-07-14 22:32:37 +12:00
Jeremy Hughes
010af379bb
alien.marshall.structs: added documentation
2009-07-14 20:51:32 +12:00
Jeremy Hughes
92e38530a3
alien.marshall.structs: made some words private
2009-07-14 20:50:52 +12:00
Jeremy Hughes
3b56dc8b13
alien.marshall.structs: moved struct-wrapper dispose* method to alien.marshall
2009-07-14 20:50:20 +12:00
Jeremy Hughes
f65adc1a63
alien.marshall: added documentation
2009-07-14 10:26:45 +12:00
Jeremy Hughes
fd23b4070f
alien.marshall: marshalling word fixes
2009-07-14 10:26:26 +12:00
Jeremy Hughes
702419c092
alien.marshall.private: remove marshall-TYPE and make () words private
2009-07-14 10:25:34 +12:00
Jeremy Hughes
1cca58d781
alien.marshall: use marshall-primitive instead of marshall-<primitive> words
2009-07-14 10:24:31 +12:00
Jeremy Hughes
c5e30fee3e
alien.marshall: rewrote bool marshalling
2009-07-14 10:21:32 +12:00
Jeremy Hughes
c0714c6135
alien.inline.types: factorize-type and pointer-to-const? accept strings with spaces
2009-07-14 10:20:13 +12:00
Jeremy Hughes
687d541838
alien.marshall: dynamic-cast: renamed to unmarshall-cast
2009-07-13 10:26:41 +12:00
Jeremy Hughes
2aec1d697c
alien.inline.compiler: added -mno-cygwin to linker on windows
2009-07-11 20:53:50 +12:00
Jeremy Hughes
0d88577890
Merge branch 'inlinec' into marshall
...
* inlinec:
alien.inline.compiler: changed windows compiler options
2009-07-11 20:52:01 +12:00
Jeremy Hughes
d2077b1670
alien.inline.compiler: changed windows compiler options
2009-07-11 20:51:34 +12:00
Jeremy Hughes
11183fa5db
alien.inline.*: fixed merge breakage
2009-07-11 20:50:27 +12:00
Jeremy Hughes
579aba5625
Merge branch 'inlinec' into marshall
...
* inlinec: (49 commits)
alien.inline.compiler: documentation
alien.inline.compiler: fixed library-path and made other words private
alien.inline: renamed compiler-args to linker-args
alien.inline: added with-c-library word
alien.inline: added documentation
alien.inline: better names
alien.inline: remove vocab argument from define-c-struct
alien.inline: made define-c-function and define-c-function' standalone
alien.inline: fix library name and us remove-library
alien.inline.compile: write library files to resource:alien-inline-libs
Revert "Remove unused vocabulary" -- committed patch from the wrong machine
Remove unused vocabulary
Fixing some test failures after url.encoding change
FUEL: Font lock/indentation for M::.
replace 2array "." join with "." glue
contributors: exclude merges to make patch counts more reasonable
alien.libraries: add remove-library word, fix dlclose and dll-valid? VM primitives
alien.libraries: add dispose method for library tuple, and remove-library word; add-library first calls remove-library to properly close the library when reloading
changed single byte writes to write1
removed usages of sprintf
...
Conflicts:
basis/alien/inline/compiler/compiler.factor
basis/alien/inline/inline.factor
2009-07-11 19:58:25 +12:00
Jeremy Hughes
f2380aab7f
alien.inline.compiler: documentation
2009-07-11 19:24:09 +12:00
Jeremy Hughes
eb72ba84f6
alien.inline.compiler: fixed library-path and made other words private
2009-07-11 19:23:49 +12:00
Jeremy Hughes
b03b769966
alien.inline: renamed compiler-args to linker-args
2009-07-11 19:23:21 +12:00
Jeremy Hughes
4a5cb3aac3
alien.inline: added with-c-library word
2009-07-11 00:08:40 +12:00
Jeremy Hughes
dc80d8575f
alien.inline: added documentation
2009-07-10 23:55:32 +12:00
Jeremy Hughes
864a6e7508
alien.inline: better names
2009-07-10 23:55:05 +12:00
Jeremy Hughes
0851823ba9
alien.inline: remove vocab argument from define-c-struct
2009-07-10 23:54:40 +12:00
Jeremy Hughes
2e7f337b3d
alien.inline: made define-c-function and define-c-function' standalone
2009-07-10 23:53:50 +12:00
Jeremy Hughes
59f0dbb516
alien.inline: fix library name and us remove-library
2009-07-10 13:14:43 +12:00
Jeremy Hughes
289c963dd2
Merge branch 'master' into inlinec
...
* master: (39 commits)
Revert "Remove unused vocabulary" -- committed patch from the wrong machine
Remove unused vocabulary
Fixing some test failures after url.encoding change
FUEL: Font lock/indentation for M::.
replace 2array "." join with "." glue
contributors: exclude merges to make patch counts more reasonable
alien.libraries: add remove-library word, fix dlclose and dll-valid? VM primitives
alien.libraries: add dispose method for library tuple, and remove-library word; add-library first calls remove-library to properly close the library when reloading
changed single byte writes to write1
removed usages of sprintf
fixed signed number decoding problem
added >upper to push-utf8 to conform with RFC 3986 section 2.1. recommendation
io.launcher: unnecessary word
compiler.cfg.optimizer: fix irrelevant test
compiler.tree.propagation: better length propagation
compiler.cfg.linear-scan: fixing unit tests
compiler.cfg.linear-scan: more code cleanups, and working on split-to-fit algorithm
compiler.cfg.linear-scan: code cleanups
compiler.cfg.linear-scan: split off parallel mapping code from resolve pass, use it in assignment pass to resolve parallel copies
updated llvm.invoker test to use install-bc
...
2009-07-10 13:03:07 +12:00
Jeremy Hughes
8281c2fb55
alien.inline.compile: write library files to resource:alien-inline-libs
2009-07-10 13:00:23 +12:00
Jeremy Hughes
e0c0399d24
alien.inline.compile: write library files to resource:alien-inline-libs
2009-07-10 12:45:27 +12:00
Slava Pestov
baff251d1e
alien.libraries: add remove-library word, fix dlclose and dll-valid? VM primitives
2009-07-09 06:51:31 -05:00
Slava Pestov
15c7499ef5
alien.libraries: add dispose method for library tuple, and remove-library word; add-library first calls remove-library to properly close the library when reloading
2009-07-09 06:41:51 -05:00
Jeremy Hughes
e56617cc05
Merge branch 'inlinec' into marshall
...
* inlinec:
alien.inline.compile: compiler: use eg++ on openbsd
2009-07-09 14:03:59 +12:00
Jeremy Hughes
5b46a22297
alien.inline.compile: compiler: use eg++ on openbsd
2009-07-09 14:03:35 +12:00
Jeremy Hughes
d49b637efd
alien.marshall.syntax-tests: added struct tests
2009-07-09 10:36:53 +12:00
Jeremy Hughes
426d173b7c
alien.marshall: unmarshaller fixes
2009-07-09 10:36:21 +12:00
Jeremy Hughes
e2c6b21bfb
alien.marshall.syntax: added CM-STRUCTURE:
2009-07-09 10:35:49 +12:00
Jeremy Hughes
c4aabe2fb4
alien.marshall.structs: generate struct constructors
2009-07-09 10:35:18 +12:00
Jeremy Hughes
ac6c207de8
alien.marshall.struct: struct getter fix
2009-07-09 10:34:41 +12:00
Jeremy Hughes
cfc3372867
alien.marshall.*: added missing vocabs
2009-07-09 10:33:54 +12:00
Jeremy Hughes
3d5b9f1651
alien.marshall.syntax: changed naming scheme
...
Prefixes:
C- generates inline C code
M- marshalls arguments and return values
CM- does both
2009-07-08 17:35:17 +12:00
Jeremy Hughes
eab6d79ac4
alien.marshall.syntax: added M-STRUCTURE:
2009-07-08 17:33:21 +12:00