Commit Graph

3873 Commits

Author SHA1 Message Date
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