Commit Graph

4051 Commits

Author SHA1 Message Date
Asumu Takikawa
948e898406 Fix continuation mark chaperones
Failed to redirect correctly on `continuation-mark-set-first`
when the mark set argument was #f.
2012-11-02 11:26:40 -04:00
Matthew Flatt
3ca7300a0d improvements to GC backtrace info 2012-11-02 07:45:57 -06:00
Matthew Flatt
b520523950 change GC to specialize pairs a little more
This change doesn't speed up anything, so far. GC performance
of pairs (or anything) is determined almost completely by
its size in bytes, and this change doesn't affect the size of
pairs. At the same time, the change mostly replaces the obsolete
"xtagged" support, and I might have a better idea that builds on
this change, so I'm keeping it for now.
2012-11-02 07:45:57 -06:00
Matthew Flatt
f832c961a8 change `Scheme_Symbol' declaration to avoid compiler warnings 2012-11-01 09:09:36 -06:00
Matthew Flatt
0e4305fc45 fix problem with places and `struct-type-info'
Merge to v5.3.1
2012-11-01 07:19:53 -06:00
Matthew Flatt
8f73ebbc36 fix error-message code
Closes PR 13222
2012-10-31 12:17:49 -06:00
Matthew Flatt
08c659c5d5 fix a bug in `free-identifier=?'
The bug is related to macro-introduced `require' and rename on
export.
2012-10-31 08:03:47 -06:00
Eli Barzilay
f852b9eb92 New Racket version 5.3.1.4. 2012-10-31 03:30:17 -04:00
Matthew Flatt
195cbe832c fix problem with compiler's cross-module shape tracking 2012-10-30 17:47:15 -06:00
Matthew Flatt
8fab527ce3 fix problems with `would-be-future' 2012-10-30 17:28:37 -06:00
Matthew Flatt
8aee78a4bb fix thread-swap callbacks 2012-10-30 17:24:04 -06:00
Matthew Flatt
d7bf677645 track import "shapes" as procedure or structure type
Shape information allows the linker to check the importing
module's compile-time expectation against the run-time
value of its imports. The JIT, in turn, can rely on that
checking to better inline structure-type predicates, etc.,
and to more directy call JIT-generated code across
module boundaries.

In addition to checking the "shape" of an import, the import's
JITted vs. non-JITted state must be consistent. To prevent shifts
in JIT state, the `eval-jit-enabled' parameter is now restricted
in its effect to top-level bindings.
2012-10-30 13:29:28 -06:00
Matthew Flatt
cfb256fe16 cocoa: update PSMTabBarControl for x86_64
The update avoids a now-deprecated method.
2012-10-28 12:04:37 -06:00
Eli Barzilay
cdf7cad8ac New Racket version 5.3.1.3. 2012-10-28 03:35:15 -04:00
Matthew Flatt
fadf8a8860 avoid compiler warnings 2012-10-27 21:34:08 -06:00
Matthew Flatt
847360aa60 avoid compiler warning 2012-10-27 09:24:02 -06:00
Matthew Flatt
5f30cc87ea track information about `struct' bindings during compilation
This tracking allows the compiler to treat structure sub-type
declarations as generating constant results, and it also allows
the compiler to recognize an applications of a constructor or
predicate as functional.
2012-10-27 07:58:56 -06:00
Matthew Flatt
e698be778b remove a level of indirection in struct selectors/mutators 2012-10-27 06:53:21 -06:00
Matthew Flatt
736e6efc2d recognize `struct' bindings as constant
The JIT takes advantage of known-constant bindings to avoid the
check that a variable is still bound to a structure predicate,
selector, or mutator; that makes the code short enough to really
inline. The inlined version takes about half the time of the
indirect version.

The compiler does not yet track bindings precisely enough to
recognize constants for sub-type declarations.
2012-10-27 06:53:21 -06:00
Matthew Flatt
1bf5fda869 fix `chaperone-prompt-tag' 2012-10-24 13:18:53 -07:00
Matthew Flatt
a2c4f6064d fix GC alignment bug
Merge to v5.3.1
2012-10-24 05:47:46 -07:00
Matthew Flatt
1b589c1529 fix a JIT problem with inline stuct allocation 2012-10-23 11:39:23 -07:00
Matthew Flatt
9708a01a0a ffi/unsafe: defend against some finalization bugs
Turn use of a finalized ffi callout into a reported error,
instead of a crash. Clarify the existence of the finalizer
in the docs. Fix error logging of the finalizer thread.

Merge to v5.3.1
2012-10-21 08:11:45 -06:00
Matthew Flatt
70fee17ef9 fix mismanagement of temporary print buffer
Closes PR 13199

Merge to v5.3.1
2012-10-20 09:37:16 -06:00
Matthew Flatt
3407b2e73f more clean-up for even?'/odd?' change
Along the same lines as 44078a1f01.
2012-10-20 09:36:23 -06:00
Eli Barzilay
ad4af39146 New Racket version 5.3.1.2. 2012-10-20 03:30:16 -04:00
James Swaine
44078a1f01 Eliminate code duplication for futures/non-futures mode 2012-10-20 01:36:14 -05:00
James Swaine
9a0f19da59 Fix futures-disabled build errors introduced by changes to even? and odd? 2012-10-19 13:49:05 -05:00
Matthew Flatt
e59066debe bytecode validator: check "constant" annotations on variable references
Bytecode changes in two small ways to help the validator:
 * a cross-module variable reference preserves the compiler's
   annotation on whether the reference is constant, fixed, or other
 * lifted procedures now appear in the module body just before the
   definitions that use them, instead of at the beginning of the
   module body
2012-10-19 11:27:52 -06:00
James Swaine
05e0836b88 Make odd? and even? future-safe 2012-10-18 21:22:11 -05:00
Matthew Flatt
b912d0f059 fix check for constructor of struct setter of immutable field
Merge to v5.3.1
2012-10-18 11:02:06 -06:00
Matthew Flatt
1052852fd4 avoid compiler warning 2012-10-17 20:54:21 -06:00
Matthew Flatt
04e8689a9b add another argument to `{chaperone,impersonate}-prompt-tag'
The new argument gets to chaperone/impersonate a guard at
the prompt, and it is applied when the continuation is applied ---
based on a wrapper on th prompt tag of the continuation (as opposed to
the prompt tag of the prompt).
2012-10-17 10:24:09 -06:00
Samuel Bronson
a86f1751bc Add "install-html" and "install-pdf" targets to Makefile. 2012-10-17 08:47:01 -04:00
Matthew Flatt
843c722146 add an argument to `{chaperone,impersonate}-prompt-tag'
The new argument gets to filter results that come from a
non-composable continuation that replaces one delimited
by a prompt using the chaperoned/impersonated prompt tag.
2012-10-16 15:11:50 -04:00
Matthew Flatt
755cd47cc5 make chaperone-of?' accept prop:equal+hash'
There appears to be no reason to block equality based on
`prop:equal+hash' when using `chaperone-of?'.
2012-10-16 12:17:42 -04:00
Matthew Flatt
9dd83008a6 minor GCs: reduce constant factor on total memory use
I think we're not far from getting the constant down to 0, but
there are still some traversals of the complete page list.
2012-10-15 20:36:19 -04:00
Matthew Flatt
bdff5e8379 avoid compiler warning 2012-10-15 08:24:21 -04:00
Matthew Flatt
2c56ace436 JIT-inline structure allocation
For simple structure types (no guards, no auto fields, no
procedure property). Inlined allocation makes structure
allocation a little faster; more significantly, it
make structure allocation future-safe.
2012-10-15 06:05:33 -04:00
Matthew Flatt
79ada3b16e fix JIT bug in struct pred/get/set corner case
When thie JIT guesses that an identifier is bound to a
structure predicate, getter, setter, etc., but that guess
turns out to be wrong, and the call is in a tail position,
then preserve tail-call behavior.

(Changes include some setup to inline structure constructors.)
2012-10-15 06:05:33 -04:00
Matthew Flatt
15812a94d8 make `make-fsemaphore' atomic (i.e., not blocking) 2012-10-14 11:10:23 -04:00
Matthew Flatt
33db9589a4 make `list-ref' future-safe even for large fixnum indices 2012-10-14 11:10:23 -04:00
Ryan Culpepper
f2e87ed72f fix expander bug introduced by my last commit 2012-10-11 19:16:41 -04:00
Ryan Culpepper
678fc4d6f8 make macro stepper recover from jumps within expansion 2012-10-11 17:44:51 -04:00
Eli Barzilay
e713ccd885 New Racket version 5.3.1.1. 2012-10-08 03:40:14 -04:00
Ryan Culpepper
42d2e60a2f Post-release version for the v5.3.1 release 2012-10-08 02:33:53 -04:00
Matthew Flatt
6edcc4b20f fix error message
Closes PR 13166
2012-10-05 19:43:23 -06:00
Matthew Flatt
909a6fb5c7 Mac OS X: make --disable-libffi the default
Avoids a common problem with libffi installed by MacPorts
causing problems with a mismatch between an iconv installed
by MacPorts and the system iconv. (When libffi is installed,
then -I/opt/include for the libffi heads also picks up the
iconv headers, but the ordering of the lib flags doesn't
pick up libiconv from /opt/lib. We could try to hack around
this by ordering the flags just right, but it seems better
to avoid the issue.)
2012-09-23 09:42:25 -05:00
Matthew Flatt
82bec92418 error message fix 2012-09-20 16:46:07 -06:00
Matthew Flatt
f82a19c963 fix protected/unexported access check 2012-09-19 07:43:56 -06:00
Matthew Flatt
58b054c6a2 patches for Dragonfly
Closes PR 13115
2012-09-15 09:20:27 -06:00
Matthew Flatt
ab251eaca6 win64: defensive check for stack-trace collection 2012-09-13 11:05:52 -06:00
Matthew Flatt
7a772ce09d fix Win64 build for newer SDK 2012-09-13 11:05:52 -06:00
Matthew Flatt
7ce7da8f53 fix for `reroot-path' on Windows 2012-09-12 11:31:58 -06:00
Matthew Flatt
cf120bc4a6 win64: stack-trace repair: add cached tail to trace 2012-09-12 11:30:48 -06:00
Matthew Flatt
90dad98220 fix error message 2012-09-12 11:17:25 -06:00
Matthew Flatt
98cf0429f8 win64: make JIT stack traces work
JIT-generated doesn't actually conform to the constraints
of the Win64 stack-unwind protocol. In pariticular,
JITted code might move the stack pointer after a "preamble"
that saves non-volatiles, and the frame pointer isn't in
the right place. So, we can't implement the generic unwind
hook --- but the JIT's stack traversal can interleave its own
unwinding with the OS-supplied unwinding interface.
2012-09-12 11:13:38 -06:00
Eli Barzilay
a5fd17b16f New Racket version 5.3.0.24. 2012-09-12 03:30:11 -04:00
Matthew Flatt
f1671f2044 fix default logging levels for stderr and syslog 2012-09-11 13:18:18 -06:00
Matthew Flatt
4f351dd6b1 add `current-compiled-file-roots', PLTCOMPILEDROOTS, and -R/--compiled
The new parameter (and supporting environment variables and
command-line flags) can bytecode lookup to a tree other than
where a source file resides, so that sources and generated
compiled files can be kept separate. It also supports storing
bytecode files in a version-specific location (either with
the source or elsewhere).
2012-09-11 13:18:18 -06:00
Eli Barzilay
e208fe645f New Racket version 5.3.0.23. 2012-09-08 15:50:30 -04:00
Matthew Flatt
4d8ee32fd7 fix Windows build
Thanks to Ben Goetter
2012-09-07 16:11:34 -06:00
Matthew Flatt
834f4a5bf3 adjust initial abort handler
Clients of scheme_apply(), scheme_eval(), etc. (i.e., the variants
without a leading "_") except aborts to continue jumping out, while
a recent change to make them behavior more like a default prompt
handler caused them to return on errors. Changethe handler to behave
like the default, except that after running a result thunk, the
handler effectively aborts again.
2012-09-07 13:49:17 -06:00
Matthew Flatt
ff5ce02744 fix bug in places `subprocess' support 2012-09-07 10:41:29 -06:00
Matthew Flatt
9f8e1d792e QNX: use vfork() instead of fork()
Patch by Tobias Hammer

Closes PR 13101
2012-09-07 09:12:45 -06:00
Matthew Flatt
d92b9cb404 add `define-logger' and filtering based on logger name
The `make-log-receiver' function now includes a logger-name
filter. This filter is implemented as a low enough level that
it affects `log-level?' tests to check whether a log message
needs to be constructed at all.

The -W and -L flags and PLTSTDERR and PLTSYSLOG environment variables
support filters of the form "<level> <level>@<name> ...", where
<level>@<name> specializes filtering of events for a logger whose
name matches <name> to show <level> and higher.
2012-09-07 08:16:38 -06:00
Matthew Flatt
2f7d4b5eaf change a thread's initial prompt to use the default handler
The thread's initial prompt previously ignored its arguments.
2012-09-05 12:21:43 -06:00
Matthew Flatt
8bd5dbf7cc ffi/unsafe: change `cast' to avoid pitfalls for you
The old `cast' didn't work right for a mismatch between
a pointer GCableness and the source or target types, and
it didn't work right for an GCable pointer with a non-zero
offset. While those pitfalls were documented, the first
of them definitely has been a source of bugs in code that
I wrote.

Also added `cpointer-gcable?'
2012-09-04 15:28:18 -06:00
Matthew Flatt
99de1b3efa fix problems with `raise-range-error'
Problems include bad index reporting for vectors, bad treatment of
empty strings and byte strings, and misformatting of given name.
2012-09-02 15:57:01 -06:00
Asumu Takikawa
cd23fd48cf Comment and clarify top-level evaluation & barriers 2012-08-31 16:27:35 -04:00
Matthew Flatt
d11e58b639 ffi/unsafe/atomic: add `in-atomic-mode?'
The new function can be useful for debugging, at least.
2012-08-31 07:33:08 -06:00
Eli Barzilay
8a605626ac New Racket version 5.3.0.21. 2012-08-29 03:30:12 -04:00
Matthew Flatt
d953bc27ba fix `ffi/unsafe/nsalloc'
Using `call-as-atomic' isn't right, because that allows an escape
via `call-as-nonatomic'. Assuming that `call-as-nonatomic' isn't
used, it seems like `call-as-atomic' should be ok, anyway, but
somehow its leads to unbalanced `end-atomic' calls.
2012-08-28 18:45:55 -06:00
Matthew Flatt
003613395d fix `font%' amnipulation to work in atomic mode 2012-08-28 17:27:14 -06:00
Matthew Flatt
b61f3f751c port position-tracking clean-ups
Add `file-position*', which can return #f instead of raising
an exception when a port's position is unknown. Change
`make-input-port' and `make-output-port' to accept more
kinds of values as the initial position.

These changes make it possible to synchronize a port's
position with a `port-commit-peeked' action. It's ugly,
which I think reflect something broken about position
tracking in the port protocol (which seems difficult to fix
without breaking compaibility).
2012-08-28 16:04:41 -06:00
Matthew Flatt
763882f651 add port shortcut for `make-{input,output}-port'
Providing a port instead of a reading or writing procedure
redirects the read/write to the specified port. This shortcut
is kind of a hack, but the run-time system can easily streamline
the redirection when it's exposed this way.

Using the new redirection feature reduces overhead in
`with-output-to-bytes' and `pretty-print'.
2012-08-28 08:54:26 -06:00
Matthew Flatt
7e2bcfd994 change -e to flush aftering printing a result
Previously, the use of `pretty-print' for `print' by `racket/main'
and the use of `transplant-output-port' by `pretty-print' caused
a flush to happen.

This problem highlights a potential general issue, which is that
`pretty-print' happened to always flush its output before, and
some programs may accidentally depend on that behavior.
2012-08-27 20:15:43 -06:00
Matthew Flatt
704cb4bd01 make-output-port': fix enable-break?' argument to callbacks 2012-08-27 19:44:06 -06:00
Matthew Flatt
bd8e1e8b1f fix JIT bug related to bad struct-field mutators
We can't disallow the creation of bad mutators without breaking
old code, but we can prevent the JIT from treating them like
good ones.

Closes PR 13062
2012-08-24 15:48:58 -06:00
Matthew Flatt
23722e64c2 change `exn:break:hang-up' handling to skip display
Since SIGHUP normally means that the output has gone away,
don't try to write to it.

Closes PR 13058 (although it doesn't solve the more general
problem that is noted in the PR)
2012-08-24 15:48:58 -06:00
Matthew Flatt
c9a7d310ca remove a useless compiler transformation
The bytecode compiler used to convert an expresison like

  (<flonum-op> <simple-expr> <complex-expr>)

to

 (let ([id <complex-expr>])
   (<flonum-op> <simple-expr> id))

to help an older version of the JIT avoid boxing the result of
<simple-expr>, but that transformation isn't needed, since the JIT can
keep unboxed values on the stack.

The transformation was complex and apparently buggy.

The changes also include a repair to the JIT for code that the
bytecode compiler formerly wouldn't generate, but which is allowed
bytecode.

Closes PR 13052
2012-08-22 15:52:46 -06:00
Matthew Flatt
2d1cf47636 add `flexpt' to compiler's table of flonum functions
Relevant to PR 13052 - works around the problem while improving
the optimizer, but doesn't fix the real problem, I think.
2012-08-22 10:30:12 -06:00
Matthew Flatt
50980e2831 fix use of compiled startup code 2012-08-21 18:21:56 -06:00
Jon Rafkind
6dae03f283 correctly apply map to its argument due to an early ). Fixes PR 13047 2012-08-21 16:23:44 -06:00
Matthew Flatt
1e375bab48 Linux: struct siginfo' -> siginfo_t' 2012-08-16 16:39:40 -06:00
Matthew Flatt
3150b31eb7 bytecode optimizer improvement
Generalize splitting of `(let-values ([(x ...) (values e ...)]) ....)'
to `(let ([x e] ...) ....)' for any `e', since it's always equivalent.
Right?

(The old requirements on the `e's seem to be needed only for
`letrec-values' splitting and maybe mutable variables.)
2012-08-16 16:39:21 -06:00
Matthew Flatt
0452bd791d bytecode optimizer improvement
Treat unsafe functional operations (which never raise an
exception) as omitable, which means that simple `let-values'
combinations can be split into `let' bindings, etc.
2012-08-16 13:11:41 -06:00
Matthew Flatt
65588b156b fix `sqrt' on numbers with negative real and inexact-zero imag
Closes PR 13028
2012-08-16 04:46:01 -06:00
Matthew Flatt
315834f097 fix no-places, no-futures build 2012-08-16 04:36:44 -06:00
Matthew Flatt
0c9865cee7 fix broken export-table sources
The Cygwin build, especially, depends on the repaired
files.
2012-08-15 07:41:50 -06:00
Matthew Flatt
16cb6f3691 fix race on resolved-module-path table 2012-08-14 09:48:56 -06:00
Eli Barzilay
700846a8b9 New Racket version 5.3.0.20. 2012-08-14 03:30:52 -04:00
Matthew Flatt
23bca99ba1 adjust `local-expand' to add 'submodule property 2012-08-13 17:11:20 -06:00
Matthew Flatt
b043da6ea6 SIGHUP and SIGTERM -> exn:break:hang-up' and exn:break:terminate'
The default uncaught-exception handler calls `exit' when it receives
one of the new exceptions.
2012-08-13 17:11:20 -06:00
Kevin Tew
ebf738e501 Eliminate unused variable compiler warnings 2012-08-13 11:20:05 -06:00
Eli Barzilay
35afcc89ba New Racket version 5.3.0.19. 2012-08-13 04:25:15 -04:00
Matthew Flatt
a6da8f04e8 potential repair for recent thread improvement 2012-08-12 20:17:29 -06:00
Matthew Flatt
42ef79c2ad add `ffi/unsafe/custodian' 2012-08-12 20:17:29 -06:00
Robby Findler
0c6734f782 Add the contents of the "blue boxes" in the docs to the upper-right
corner of the definitions window, based on the information that check
syntax computes

This commit contains two separate changes to make this work:

  - adding a new renderer, based on the text renderer, that
    pulls out the contents of the blue boxes and saves them
    in the doc/ directories (specifically in the files named
    contract-blueboxes.rktd)

  - extend check syntax to use and display the information
    build by the new renderer
2012-08-12 08:41:46 -05:00
Matthew Flatt
3577b9d0eb remove some unneeded specialization for places 2012-08-11 06:42:24 -06:00
Matthew Flatt
50d90e8703 bug fix for thread improvement
Fixes a bug introduced with c89fa0cda7.
2012-08-10 13:28:17 -06:00
Matthew Flatt
c89fa0cda7 fix some O(N) problems for N threads
Repairs include GC setup, thread finalization, and place
synchronization.
2012-08-10 13:00:03 -06:00
Matthew Flatt
b5f0c97762 fix arity error message for keyword-accepting methods
Internally, there's a `prop:method-arity-error' property that is
used for keyword-accepting methods. The same thing could be
accomplished with `procedure->method', but the new property avoids
a wrapper. It might be nice to expose the property from `racket/base',
but that creates trouble for generating arity errors for keyword-
requiring procedures (i.e., when such a procedure is wrapped), so
keep it provate for now.

Closes PR 12982
2012-08-10 12:59:36 -06:00
Matthew Flatt
6852140dd8 fix problem with Racket callbacks as scheduler hooks
Closes PR 12991
2012-08-10 07:49:17 -06:00
Matthew Flatt
4345045b52 fix parsing of complex numbers with special single flonums
Closes PR 12839
2012-08-10 07:49:17 -06:00
Matthew Flatt
5f120373f1 atan: fix result for two inexact-zero arguments
Closes PR 12936
2012-08-10 07:49:16 -06:00
James Swaine
dc6411c48c Fix futures-enabled? to use the correct #ifdef check 2012-08-07 20:48:04 -05:00
Matthew Flatt
d194fa6245 fix `regexp-match' variants given a long string and an output port 2012-08-07 05:21:33 -06:00
Matthew Flatt
699659840a turn off debugging info 2012-08-06 15:03:37 -06:00
Matthew Flatt
13d7a37eb6 re-align expt' and flexpt' to match C99 pow() spec
Also, improve precision of some complex results to avoid
excessive `+nan.0's.

Closes PR 12935
2012-08-06 13:00:36 -06:00
Eli Barzilay
0963d44707 New Racket version 5.3.0.17. 2012-08-05 03:30:15 -04:00
Matthew Flatt
932de7536e use MZ_IS_NAN() instead of non-portable isnan() 2012-08-04 20:49:09 -06:00
Matthew Flatt
579e5d3c87 bump version to reflect accumulated repairs 2012-08-04 10:20:18 -06:00
Matthew Flatt
7c9e6d7193 improve port progress-evt guarantees; fix for `read-bytes-evt' et al.
A progress evt from a close input port must be initially ready,
and the primitive `peek-bytes-avail!' checks a progress evt
before checking whether the port is closed.

These changes resolve a race in `read-bytes-evt' and related evt
constructors.
2012-08-04 10:19:55 -06:00
Vincent St-Amour
79c265ef89 Fix NaN handling of flexpt to be consistent with expt. 2012-08-03 14:21:44 -04:00
Matthew Flatt
5388fac5eb typo in error message 2012-07-31 07:50:46 -06:00
Matthew Flatt
eeb8739417 ffi/unsafe: allow callbacks during wait for foreign call in main place
That is, make a combination of `#:in-original-place? #t' on a call
and `#:async-apply ....' on a callback work.
2012-07-30 07:58:40 -06:00
Matthew Flatt
8fc008c569 fix interaction of place-channel receive and GC
Avoid holding onto a pointer into a place-message page beyond
receipt of the message.

Merge to v5.3
2012-07-28 11:23:22 -06:00
Matthew Flatt
9d6f0e96ba fix for bytecode validator
Fix tchecking for a rest argument to a function that
is lifted by closure conversion so that one of its
arguments is a mutable local variable's location.

Also reject bytecode that would pass too many arguments
to a lifted function, since that would trigger an arity
error that might try to use a location as a value.

Merge to v5.3
2012-07-26 16:32:59 -06:00
Matthew Flatt
87d24ece78 more on `port-commit-peeked' and EOFs
Continues/fixes commit 4c3dd00d49.
2012-07-26 10:39:24 -06:00
Matthew Flatt
1efc894ada toward fixed interaction between positions and peek-commits
When a `port-commit-peeked' succeeds, position information should
(appear to) be updated. This patch synchronizes commits and
position information for primitive ports, but synchronizing
them for user ports remains a problem.
2012-07-26 10:39:17 -06:00
Matthew Flatt
880f84b24f fix bug in `sync'
When `guard-evt' or `nack-guard-evt' is used, `sync' didn't
account for the possibility that a channel or semaphore
action might complete during the call to the guard, in which
case it might fail to select the event that has already
completed.

Merge to v5.3
2012-07-26 08:40:43 -06:00
Matthew Flatt
4c3dd00d49 fix `port-commit-peeked' and mid-stream EOFs 2012-07-26 06:14:35 -06:00
Matthew Flatt
d8461837f9 fix `current-subprocess-custodian-mode'
An 'interrupt setting was treated as a 'kill setting.

Merge to v5.3
2012-07-25 20:45:52 -06:00
Matthew Flatt
df4fed7011 windows: fix `subprocess' for an empty argument
An empty argument must be quoted at the CreateProcess() level.

Merge to v5.3
2012-07-25 20:37:20 -06:00
Matthew Flatt
abc437ac29 remove bad `return's 2012-07-25 20:07:23 -06:00
Matthew Flatt
7d894bfb63 Note require' of a main' submodule for -t', -l', and `-p'
In the output of `racket -h' and in the command-line docs.

Merge to v5.3
2012-07-25 20:07:23 -06:00
Matthew Flatt
5a1bc5ad40 normalize module rename info to vector in ".zo" format
This is related to the receent repairs for submodules and
`variable-reference->namespace'.

Merge to v5.3
2012-07-24 07:22:57 -05:00
Matthew Flatt
f7382b17c7 ad hoc optimization of `hash-ref'
Convert
 (hash-ref <hash> <key-expr> (lambda () <literal>))
to
 (hash-ref <hash> <key-expr> <literal>)
which is useful for making the `case' expansion fit
Typed Racket.
2012-07-23 21:41:49 -05:00
Matthew Flatt
a0ba30d8e7 fix `syntax-local-get-shadower' for submodules
Closes PR 12926, 12928

Merge to v5.3
2012-07-22 21:43:20 -05:00
James Swaine
f0aaca0dde Change future visualizer trace collection slightly to be more composable 2012-07-22 20:03:22 -05:00
James Swaine
df54f8460b Fix future visualizer trace collection when running inside DrRacket 2012-07-22 20:03:21 -05:00
Eli Barzilay
a6b20f01da Use string-no-nuls?' and bytes-no-nuls?' in more docs & error messages.
Also use `byte?' instead of (integer-in 0 255).

(This commit will most likely require some proof-reading.)
2012-07-22 13:00:05 -04:00
Matthew Flatt
d95ec4d454 fixes for submodules and `variable-reference->namespace'
Closes PR 12925

Merge to 5.3
2012-07-22 11:54:46 -05:00
Asumu Takikawa
e14c5d61e9 Allow guards for impersonatable struct type properties 2012-07-19 22:46:14 -04:00
Matthew Flatt
d3677524b8 macro expander fix
Relevant to PR 12863

Merge to v5.3
2012-07-19 20:42:36 -05:00
Matthew Flatt
a45d13b52a another `namespace-attach-module' repair for submodules
Merge to v5.3
2012-07-19 16:50:25 -05:00
Matthew Flatt
73e07f576b macro-expander fix
The "simpliciation" of a syntax object's lexical context was dropping
module contexts that have no bindings, but those contexts now
contribute to the identifty of some bindings. Fix simplification
to replace the full rename rename with a simplified one, instead
of just dropping it.

Merge to v5.3
2012-07-19 16:50:25 -05:00
Matthew Flatt
9413b30599 fix related to module name resolver change 2012-07-19 07:46:50 -05:00
Matthew Flatt
5c626c5872 3m GC hints 2012-07-19 07:46:50 -05:00
Eli Barzilay
36ee9f9bbd Fix typo from commit 12a4ee8. 2012-07-18 22:52:41 -04:00
Eli Barzilay
bee08899eb New Racket version 5.3.0.16. 2012-07-18 03:30:10 -04:00
Ryan Culpepper
97fabae42f Post-release version for the v5.3 release 2012-07-17 19:21:23 -04:00
Matthew Flatt
5e4866e54c fill in one more corner of submodules and `namespace-attach-module'
When submodules are not independently loaded, then pull submodule
declarations along when attaching a module to a namespace.
2012-07-17 10:16:32 -06:00
Matthew Flatt
c8f4ac6ae4 submodules: make .zo path stick for consistent independent loading
When a module is loaded from bytecode and then the value of
`use-compiled-file-paths' changes, an attempt to load a submodule
would fail, because source isn't used if the main module is
already declared, and the bytecode code is not used according to
`use-compiled-file-paths'. Make the bytecode path stick when it
is used once, so that submodule loads succeed, and make it work
even with `namespace-module-attach'.

The module-attach part of this protocol requires a change to the
API of a module name resolver: the notification mode gets two
arguments, instead of one, where the second argument is an
environment.
2012-07-17 09:47:05 -06:00
Matthew Flatt
12a4ee8d98 FFI repairs for 64-bit big-endian
Again; missed pieces for b3c721a346.
2012-07-17 06:07:40 -06:00
Sam Tobin-Hochstadt
0c9bd915bc Fix error message for find-system-path.
Closes PR 12916.
2012-07-17 07:40:46 -04:00
Matthew Flatt
b3c7210a34 FFI repairs for 64-bit big-endian
Based on a patch supplied by Stephen Lewis
2012-07-16 19:22:31 -06:00
Matthew Flatt
8718a5dd62 doc and error-message fixes for module name resolver 2012-07-16 19:22:30 -06:00
Matthew Flatt
73e901a262 fix optimizer bug
The lambda-lifting transformation needs to iterate to a fixpoint
where each lambda's added arguments and order are known. The
check for whether something changed was formerly just the number
of added arguments, but that's not good enough, because a binding
might get lifted away while another one acquires an extra argument.
The right test is to check the count and original bindings for the
added arguments.

Closes PR 12910
2012-07-15 10:32:45 -06:00