Commit Graph

3757 Commits

Author SHA1 Message Date
Matthew Flatt
ff8a062bfe guarantee `current-seconds', etc. from 1/1/1970 UTC
For all currently supported platforms, the result was already
portable, despite the documentation's hedging.

Also fixed up the documentation in other ways, such as the fact
that `seconds->date' returns a `date*'.
2012-06-23 02:04:55 -07:00
Matthew Flatt
ed2b2b56eb avoid a hard-coded limit 2012-06-23 02:04:55 -07:00
Matthew Flatt
1dc0072d03 further error message convention refinements
Add extra intitial-message lines, use "..." on a field name
to indicate that it could reasonably be hidden by default,
and refine some existing messages.
2012-06-22 09:47:59 +08:00
Matthew Flatt
40c892ff80 futures: future-local handling of stack overflow
Includes the addition of 'overflow and 'start-overflow-work
events, whcih are effectively specializations of 'sync and
'start-work to expose overflow handling.

Also, fix a bug related to a potential GC during mark-stack
restore from a lightweight continuation.
2012-06-21 07:14:50 +08:00
Matthew Flatt
f91dc81bf5 futures: fix some CGC problems
.. even though futures don't work well with CGC, due to
the lack of future-local allocation.
2012-06-21 07:14:49 +08:00
Matthew Flatt
61be7a9a40 futures: implementation clean-up
Remove some unnecessary and redundant parameterization.
2012-06-21 07:14:49 +08:00
Matthew Flatt
db46b2ef92 futures: make tail-call allocation local or synchronizable
By itself, this change won't help anything, because tail-call
allocation is triggered for something that can't be called directly.
This change sets up part of an improvement for future-local recovery
from stack overflow, though.

(I had trouble constructing a test that would trigger the new code.
Fortunately, the existing tests trigger it.)
2012-06-21 07:14:49 +08:00
Matthew Flatt
b27ae70d0a error message repair 2012-06-21 07:14:49 +08:00
Sam Tobin-Hochstadt
ac0bb2b98f Error checking in bytecode reader.
Found by:
    fuzz.rkt -s 912673274  -f collects/setup/compiled/xref_rkt.zo
    fuzz.rkt -s 568444835  -f collects/syntax/scribblings/compiled/strip-context_scrbl.zo
    fuzz.rkt -s 1009851773 -f collects/mred/private/wx/cocoa/compiled/platform_rkt.zo
2012-06-19 19:17:12 -04:00
Matthew Flatt
1e4186098e yet more fixes to avoid compiler warnings 2012-06-16 04:54:45 +08:00
Matthew Flatt
d0d83577c7 avoid some compiler warnings 2012-06-14 15:25:42 +08:00
Matthew Flatt
089cb6669c improve implicit-begin syntax-error reporting 2012-06-14 15:11:19 +08:00
Matthew Flatt
567d16ea2b fix embedded-code reader
When the code is source insteda of bytecode, `#reader' and `#lang'
need to be enabled.
2012-06-13 17:20:17 +08:00
Matthew Flatt
a871574318 make #%plain-module-begin' transformer detect module*' in stop list 2012-06-13 17:07:06 +08:00
Matthew Flatt
95d77d63e0 fix some casts 2012-06-13 16:33:03 +08:00
Asumu Takikawa
4ce4d7531b Improve docs & errors for control proxies
In particular, use consistent terminology for errors
and provide usage examples
2012-06-12 12:16:56 -04:00
Eli Barzilay
b93a3c7495 New Racket version 5.3.0.11. 2012-06-12 03:30:23 -04:00
Asumu Takikawa
a181011b55 Check for proxied prompt tags when needed
Fixes a bug where some control operators would
not recognize proxied prompt tags (non-proxied were fine)
2012-06-11 21:04:45 -04:00
Asumu Takikawa
5aa76c27a9 Support multiple values for control proxy functions 2012-06-11 18:18:37 -04:00
Asumu Takikawa
d527426cac Prototype implementation of control proxies 2012-06-11 18:18:37 -04:00
Vincent St-Amour
a89bd99e2a Fix printing of single-precision floats.
If there's already an exponent separator, replace it with f.

Closes PR12836.
2012-06-09 19:35:37 -04:00
Matthew Flatt
5caa114564 fix `print-syntax-width' for +inf.0
Closes PR 12837
2012-06-10 06:58:06 +08:00
Matthew Flatt
fbb6a294f3 local-expand' allows a stop list to have only module*'
That is, when the sto plist contains only `module*', core
forms are not implicitly added to the stop list.
2012-06-08 16:08:55 +08:00
Matthew Flatt
941f215aa0 improve cycle-in-loading error message 2012-06-08 16:08:55 +08:00
Vincent St-Amour
c0b978f71f Fix handling of NaN in flmin and flmax. 2012-06-06 18:26:51 -04:00
Matthew Flatt
fdb722dcb1 shortcut for numbers in `write', etc. 2012-06-06 15:17:35 +08:00
Matthew Flatt
4b07fc42f0 racket/future: fix heuristic for creating future-running threads
James noticed that the previous implementation was too slow to make
threads.
2012-06-06 13:25:14 +08:00
Matthew Flatt
269a3392dc racket/future: fix debug logging for sync vs. block
When a "synchronized" operation is handled for a future thread
during a `touch' on the future, then still report the handling
as "synchronized" insteda of "blocked".
2012-06-06 13:25:14 +08:00
Matthew Flatt
53f7a77e8f racket/place: avoid place-termination cycle 2012-06-05 17:53:27 +08:00
Matthew Flatt
d1c2430bf1 remove extra space in some error messages 2012-06-03 11:09:32 +08:00
Tim Brown
ff185cf743 Solaris 5.10 has poll(), so set try_poll_syscall="yes" in configure
in order to enable it. Otherwise Solaris 5.10 has issues building.
2012-06-03 04:50:06 +08:00
Matthew Flatt
d8a26e6c3c more corrections to the error message conversion
Foudn these by writing a simple source checker.
2012-06-01 19:03:43 -07:00
Matthew Flatt
85a2267e6c ffi/unsafe: new error message convention at primitives
Also, fix FFI procedures to preserve names: change `ptr-ref' with
`_fpointer' on an `ffi-obj' value to return the `ffi-obj'
value, so that the name in the `ffi-obj' value can be used
by `_cprocedure'.

Closes PR 12645
2012-06-01 19:03:43 -07:00
Matthew Flatt
f10a258dcb ffi/unsafe: fix arithmetic overflow and representation
Thanks to Tobias Hammer for the report and initial repairs.
2012-05-31 09:21:25 -06:00
Matthew Flatt
e9cec00da6 configure: use installed `libtool' by default
But libtool is used only for `--enabled-shared' builds.
2012-05-31 09:21:25 -06:00
Matthew Flatt
e8645598d7 futures: fix bug related to tail calls 2012-05-30 16:20:36 -06:00
Matthew Flatt
5461783076 futures: fix a problem in cgc mode 2012-05-30 16:20:36 -06:00
Eli Barzilay
f42db7366e New Racket version 5.3.0.10. 2012-05-30 03:30:17 -04:00
Matthew Flatt
74844152bc fix load handlers to match docs on parameters
Problems exposed by setting `read-accept-lang' to #f.
2012-05-29 13:57:32 -06:00
Matthew Flatt
da191e5058 error-message repair 2012-05-29 13:57:32 -06:00
Matthew Flatt
248301c9ed disable nested `#lang'
A `syntax/module-reader' reader disables `#lang' when looping to
read a module body. The HtDP languages require a little additional
treatment.
2012-05-29 11:01:52 -06:00
Matthew Flatt
26269c329e racket/base: add some missing predicates
The new predicates are `progress-evt?' `thread-cell-values?',
`prefab-key?', `semaphore-peek-evt?', and `channel-put-evt?'.
These were used internally, and now they appear in contract
error messages.
2012-05-29 11:01:52 -06:00
Matthew Flatt
a57447cde5 fix error-message typo 2012-05-29 11:00:43 -06:00
Matthew Flatt
99635ab091 change `impersonate-struct' to require evidence that a field is mutable
When supplying an accessor to redirect, either the corresponding field
must be accessible through the current inspector, or a mutator for
the same field must be redirected, too.

Stevie realized that we need this constraint; otherwise, impersonators
can implement mutator-like behavior even when the mutator is otherwise
secret.
2012-05-27 15:37:45 -06:00
Matthew Flatt
a137459b65 more error-message conversions and repairs 2012-05-27 11:29:21 -06:00
Matthew Flatt
cb8975b8b3 another error-conversion repair 2012-05-26 19:46:19 -06:00
Matthew Flatt
20179cf0a7 avoid compiler warning 2012-05-26 19:44:41 -06:00
Matthew Flatt
7614e7044b fix bug introduced by error-message conversion 2012-05-26 19:09:03 -06:00
Eli Barzilay
b8adf78a30 New Racket version 5.3.0.9. 2012-05-26 03:30:14 -04:00
Matthew Flatt
9e7548de61 new error message convention
Add `raise-argument-error', `raise-result-error', `raise-arguments-error',
and `raise-range-error'.

The old convention was designed for reporting on a single (sometimes very
long line). The new convention is

 <name>: <short message>
   <field>: <detail>
   ...

If <detail> is long or itself spans multiple lines, then it may
also use the form

   <field>:
    <detail>

where each line of <detail> is indented by 3 spaces.

Backtrace information is shown as a multi-line "context" field.
2012-05-25 15:08:05 -06:00