Commit Graph

104 Commits

Author SHA1 Message Date
Matthew Flatt
8bd81f4806 fix ffi retain of callbacks
The FFI's weak table of callback procedures (to map Racket procedures
to FFI callback objects) suffered from the classic key-in-value
problem.

Closes PR 12228, probably

Merge to 5.2
2011-10-09 09:01:15 -06:00
Matthew Flatt
f38e57ff68 add #:get-lib-dirs and #:fail args to `ffi-lib'
Not currently used, because an experiment that used the additions
was abandoned, but another use in the future seems likely.
2011-10-05 06:28:30 -06:00
Matthew Flatt
0197902309 add var-ref->mod-decl-insp' and switch cur-code-insp' uses
Macros and other tools that need syntax privilege used
`(current-code-inspector)' at the module top-level to try to
capture the right code inspector at load time. It's more
consistent to instead use the enclosing module's declaration-time
inspector, and `var-ref->mod-decl-insp' provides that. The
new function works only on references to anonymous variables,
which limits access to the inspector.

The real function name is longer, of course.
2011-09-20 13:50:36 -06:00
Matthew Flatt
231b352bec fix NSProcessInfo arguments hack
The target of the change is actually `hack-argument-replacement' in
`mred/private/coco/queue'. The replaced method can get called in
a different OS-level thread than the main thread.

Closes PR 12086
2011-09-09 22:27:34 -06:00
Eli Barzilay
57ea31cca2 With 4f83f7f, the hack around PR7104 is no longer needed. 2011-08-29 16:36:24 -04:00
Kevin Tew
a810b30b87 remove underscore from cpointer key 2011-08-29 08:44:32 -06:00
Kevin Tew
fa4bb9dda0 Change cpointer tag to be a symbol 2011-08-23 13:33:06 -06:00
Matthew Flatt
345b06838d FFI: add C arrays and unions 2011-08-20 10:24:32 -06:00
Eli Barzilay
3157955d40 ".ss" -> ".rkt" scan done. 2011-07-02 10:37:53 -04:00
Matthew Flatt
59731368fc add ffi/winapi; use it in mzlib/os
Closes PR 12007
2011-07-01 10:42:17 -06:00
Robby Findler
69b5daa9e6 remove docs tests that no one was interested in 2011-07-01 11:38:09 +08:00
Matthew Flatt
1160d3df62 remove syntax certificates; add syntax taints 2011-06-29 19:15:48 -06:00
Eli Barzilay
40124a0619 A long overdue scan to eliminate files without terminating newlines.
(DrRacket should really do that.)
2011-06-28 02:01:41 -04: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
Robby Findler
507b1cd8fd moved the docs-complete library into rackunit
to avoid having a separate, new manual for the
  one library
2011-05-05 16:10:42 -05: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
Robby Findler
e7d0029aea added lots of new tests that our documentation is complete 2011-04-25 13:24:43 -05:00
Jon Rafkind
3f572809c9 better error message when pre: or post: is used incorrectly 2011-04-18 17:27:21 -06:00
Ryan Culpepper
9bc3457bbd renamed ffi/unsafe/security to ffi/file 2011-04-15 14:47:29 -06:00
Ryan Culpepper
a19a0340aa added ffi/unsafe/security 2011-04-07 09:47:20 -06:00
David Van Horn
760a58b65d Fixes more spelling errors. 2011-02-04 19:44:13 -07:00
Matthew Flatt
cbea645284 fix try-atomic bug related to cont-mark-set-first and recent prompt fix 2011-01-20 07:10:05 -07:00
Matthew Flatt
4d008e3021 fix for pre-v2.0 Objective-C 2010-12-27 16:12:36 -07:00
Matthew Flatt
4a6af2a81e another try-atomic repair 2010-12-22 19:09:21 -07:00
Matthew Flatt
78b2e47541 fix more try-atomic problems 2010-12-21 18:45:36 -07:00
Matthew Flatt
1a190c08f6 remove debugging log message 2010-12-14 14:53:00 -07:00
Matthew Flatt
ea789fc481 further avoid nested try-atomics
to avoid the possibility of deadlock when, for example,
  `yield' is called during a try-atomic callback
2010-12-14 11:49:23 -07:00
Matthew Flatt
1d0adfd8f2 fix problem with nested try-atomic regions 2010-12-14 11:49:23 -07:00
Matthew Flatt
3479f5fb92 cocoa: hack around NSApplication's handling of command-line arguments 2010-12-02 11:53:18 -07:00
Matthew Flatt
ca8b32725e fix bloking operations during a try-atomic
and remove old delim-cont support used by gr1
2010-11-30 15:08:16 -07:00
Matthew Flatt
0d6d285423 clear objc ivar on `dealloc'
so that a field is not incorrectly used if the super `dealloc' triggers
 callbacks
2010-11-24 07:08:54 -07: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
af6cad4913 destroy windows via finalization outside of the event loop 2010-11-05 15:54:52 -06:00
Matthew Flatt
58e1e37734 fix bug in ffi struct alignment 2010-11-05 15:54:51 -06:00
Matthew Flatt
20ab31743d fix yet another mistake in atomic-mode implementation 2010-11-05 15:54:47 -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
3294d3427a fix nested atomic escape 2010-11-05 15:54:46 -06:00
Matthew Flatt
2cebc60eca ppc cocoa 2010-11-05 15:54:45 -06:00
Matthew Flatt
391cbe1315 more pre-2.0 objc fixes 2010-11-05 15:54:45 -06:00
Matthew Flatt
8c5db384d4 more obj-c pre-2.0 fixes 2010-11-05 15:54:45 -06:00
Matthew Flatt
789563f82b support pre-2.0 Objective-C 2010-11-05 15:54:45 -06:00
Matthew Flatt
10455daf54 allowed nested try-atomics 2010-11-05 15:54:27 -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