Commit Graph

23 Commits

Author SHA1 Message Date
Matthew Flatt
1160d3df62 remove syntax certificates; add syntax taints 2011-06-29 19:15:48 -06:00
Matthew Flatt
49aadc599a ffi: add `#:in-original-place?' to deal with thread-unsafe libs
and use it for Pango, which is not thread-safe at the C level
2011-05-13 08:55:04 -06:00
Matthew Flatt
3bf438f580 rewrite `ffi-lib' docs with better guidance on versions 2011-05-03 13:16:21 -06:00
Matthew Flatt
2ada6d0e89 break link to namespaces from from closures over top-/module-level vars
- the `lam' structure from `compiler/zo-struct' changed to include a
   `toplevel-map' field

 This change helps solve a finalization problem in `racket/draw',
 which in turn sigificantly reduces the peak memory use of `raco setup'
 during the doc-building phase (because some documents load `racket/draw'
 to render images, and multiple copies of `racket/draw' were retained
 before finalization was fixed).

 The change is an extreme way to solve a specific finalization
 problem, but it's a kind of space-safety improvement; space safety
 almost never matters, but when it does, then working around a lack of
 space safety is practically impossible. In this case, it's not clear
 how to otherwise solve the `racket/draw' finalization problem.

 The improvement doesn't change the representation of closures, but it
 requires special cooperation with the GC. All closures in a module
 continue to share the same array of globals (plus syntax objects);
 that is, instead of completely flat closures, Racket uses a two-level
 environment where top-/module-level variables are grouped
 together. The code half of a closure now records which
 top-/module-level variables the body code actually uses, and the mark
 phase of GC consults this information to retain only parts of the
 top-/module-level environment frame that are actually used by some
 closure (or all of the frame if it is accessible through some other
 route).  In other words, the GC supports a kind of "dependent
 reference" to an array that is indexed by positions into the array
 --- except that the code is more in the "Racket" directory instead of
 the "GC" directory, since it's so specific to the closure
 representation.
2011-05-03 06:57:49 -06:00
Jon Rafkind
3f572809c9 better error message when pre: or post: is used incorrectly 2011-04-18 17:27:21 -06:00
Eli Barzilay
b8bbed6eb4 Throw an error when translating an unknown enum integer to a symbol.
Also, add a keyword argument that can be used to get the old behavior
back.

Also, improve the way the `_enum' and `_bitmask' functions are wrapped.
2010-11-16 15:19:38 -05:00
Eli Barzilay
4f36ce9635 Redo `define-cstruct' with proper errors and more concisely. 2010-11-12 17:21:11 -05:00
Jon Rafkind
de16fb118e improve define-cstruct error messages. closes pr11422 2010-11-11 13:27:49 -07:00
Eli Barzilay
735c4deac7 Throw a proper syntax error on uses of the ffi `->'.
Closes PR 11421
2010-11-11 13:39:49 -05:00
Matthew Flatt
58e1e37734 fix bug in ffi struct alignment 2010-11-05 15:54:51 -06:00
Matthew Flatt
d2275f4179 level-2 finalization from ffi/unsafe and late-weak references 2010-11-05 15:54:47 -06:00
Matthew Flatt
40a65a46d2 overhaul GC finalization 2010-11-05 15:54:47 -06:00
Matthew Flatt
e9e180847a enforce modality; more on-subwindow- callbacks; Cocoa font tweaks 2010-11-05 15:54:11 -06:00
Matthew Flatt
6e23fcda5f fix _short' and other non-_int' integer types, and add `_intptr' test 2010-10-13 08:50:47 -06:00
Eli Barzilay
615d8f1329 Add _intptr etc; closes PR11311. 2010-10-12 20:58:08 -04:00
Matthew Flatt
d6684dad8c fix cstruct alignment handling 2010-10-01 10:49:40 -06:00
Matthew Flatt
17cdb9eb3b move #:alignment option for `define-cstruct' to end
to make it consistent with options for `struct' and `define-struct'
2010-09-10 08:06:41 -06:00
Matthew Flatt
5a833ffc57 fix optional argument of _list-cstruct 2010-09-10 07:55:58 -06:00
Matthew Flatt
6ac15688b2 add alignment option to ffi's cstruct support 2010-09-10 06:59:52 -06:00
Eli Barzilay
606b7f60dc Lots of "~e" to "~.s" changes. 2010-08-25 17:17:01 -04:00
Matthew Flatt
8df33b629e fix default #:keep argument of _cprocedure 2010-08-07 20:40:42 -05:00
Matthew Flatt
768a3721f9 add async-apply support to FFI 2010-07-11 14:59:40 -06:00
Matthew Flatt
b7c184632b racket/unsafe/ffi -> ffi/unsafe, etc. 2010-04-26 18:05:29 -06:00