Commit Graph

4753 Commits

Author SHA1 Message Date
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
7cca723382 fix SRFI 1 testing of `unfold-right' 2012-10-29 07:56:57 -06:00
Stephen Chang
19f88c0f80 add heap sequencing fns to data/heap 2012-10-27 21:09:29 -04:00
Robby Findler
117fde6857 adjust the online check syntax frame/tab leak test case
so that it waits until online check syntax actually
finishes (otherwise, there actually is a leak;
the link is broken when the message comes back from the
other place)
2012-10-27 16:45:44 -05:00
Asumu Takikawa
0d30c43a68 Add call/cc contracts to prompt-tag/c 2012-10-27 11:06:17 -04:00
Robby Findler
24592a0800 adjust drracket gui test suite infrastructure so that
it waits for pending events to finish when looking for
new frames
2012-10-27 10:23:01 -05: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
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
Jay McCarthy
f16e76ca32 second attempt at removing reliance on tcp. available has been greatly simplified because it relied on the behavior the thread.rktl test is actually testing 2012-10-26 15:26:39 -06:00
Sam Tobin-Hochstadt
c6dc1e6ece Improve contract generation in Typed Racket.
This fixes several issues:
 - `Parameter` generates impersonator contracts correctly
 - `Any` handling now copies immutable data when possible
 - `Any` now recognizes more atomic base types

Merge to 5.3.1.
2012-10-25 23:31:02 -07:00
Stevie Strickland
717cf332b6 Don't copy chaperoned immutable vectors. 2012-10-24 19:11:03 -07:00
Matthew Flatt
f43172128b fix syntax checking for `case'
Merge to v5.3.1
2012-10-24 13:18:53 -07:00
Matthew Flatt
1bf5fda869 fix `chaperone-prompt-tag' 2012-10-24 13:18:53 -07:00
Jay McCarthy
7b149b7f5a Revert "Change thread test to use fake tcp with same structure"
This reverts commit d39780a130.

Matthew says this test is really about TCP, so it should not be
changed. Although perhaps we can use a more basic TCP test to check if
this should be done.
2012-10-24 13:25:49 -06:00
Jay McCarthy
d39780a130 Change thread test to use fake tcp with same structure 2012-10-23 11:28:27 -06:00
Jay McCarthy
552fe0f755 Test localhost tcp before running echo server test 2012-10-23 11:28:27 -06:00
John Clements
f60d57a27f updated manual tests 2012-10-22 14:57:38 -07:00
Ryan Culpepper
8226899df3 db: fix finalization bug 2012-10-22 13:27:59 -04: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
Ryan Culpepper
6283ce733d add test for unsolved db crash 2012-10-20 18:28:20 -04:00
James Swaine
196dc3de11 FV: fix layout bug with timelines containing GC's, add GC
node to summary hierlist
2012-10-20 01:36:20 -05:00
James Swaine
797979f0ae FV: blocks/syncs on worker threads now show primitive name, etc.,
and connecting lines use different colors to show
connections between blocks on worker threads and corresponding ones
on runtime thread
2012-10-20 01:36:20 -05:00
Jay McCarthy
09dd60789a changing tests for environments where listen fails 2012-10-19 15:24:20 -06: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
Eli Barzilay
cbfb1fdb37 A whole bunch of missing newlines at EOFs (and a few other spaceages). 2012-10-19 06:47:24 -04:00
James Swaine
05e0836b88 Make odd? and even? future-safe 2012-10-18 21:22:11 -05:00
James Swaine
7c8f0ce093 FV: fix drawing code to handle truncated logs, tests 2012-10-18 14:00:04 -05:00
James Swaine
b94caa2d77 FV: refactoring, various layout/display fixes 2012-10-18 13:31:42 -05:00
Matthew Flatt
274d004546 racket/draw: fix problems with monochrome PNGs
Merge to v5.3.1
2012-10-18 10:01:20 -06:00
Robby Findler
975426f00c fix group-test
merge to release branch, please
2012-10-17 20:19:15 -05:00
Matthias Felleisen
f733f149f5 fix string-ith's error message; Closes PR 13197 2012-10-17 20:27:12 -04:00
Matthew Flatt
e1a6d2b07d fix raco exe' for module+' submodules
Closes PR 13116

Merge to v5.3.1
2012-10-17 16:28:41 -06:00
Matthew Flatt
bd146e2d8d fix planet `raco exe' tests
Merge ot v5.3.1
2012-10-17 16:28:41 -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
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
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
Vincent St-Amour
326e3ba33f Add test. 2012-10-14 16:55:36 -04:00
Neil Toronto
6f52be186b Added working for/vector:, for*/vector:, for/flvector:, for*/flvector:
Closes PR13185.
2012-10-14 16:28:41 -04:00
Eric Dobson
788b046549 Make expt type more correct.
Closes PR13170.
2012-10-14 15:44:54 -04:00
Vincent St-Amour
844e898a54 Generate ->* contracts for functions with both optional and keyword arguments. 2012-10-14 15:44:54 -04:00
Vincent St-Amour
149d8535eb More float conversion optimizations. 2012-10-14 15:35:50 -04:00
Asumu Takikawa
df594d3b3b Move define/match to racket/match 2012-10-14 14:39:36 -04:00
Matthias Felleisen
1ccedf5eb2 added checksum calculation 2012-10-14 14:32:54 -04:00
Matthew Flatt
33db9589a4 make `list-ref' future-safe even for large fixnum indices 2012-10-14 11:10:23 -04:00
Jay McCarthy
b6fc190c7a Adding support for byte counting rather than char counting in XML 2012-10-12 17:15:13 -06:00
Vincent St-Amour
758e4ff112 Only recommend dropping exactness in truly inexact contexts.
Please merge to release.
2012-10-12 14:42:16 -04:00
Jon Rafkind
59ec52dd8b [honu] remove debugging lines 2012-10-11 21:50:39 -06:00
Ryan Culpepper
678fc4d6f8 make macro stepper recover from jumps within expansion 2012-10-11 17:44:51 -04:00
Ryan Culpepper
07da9c0c3c fixed template tests 2012-10-11 17:37:57 -04:00
Jon Rafkind
8b627ed8fd [honu] xml example doesnt need its own < and > literals 2012-10-10 23:02:35 -06:00
Jon Rafkind
a3e2c2fae6 [honu] add xml example 2012-10-10 23:02:35 -06:00
Matthew Flatt
fcfff27c31 ffi/com: implement vardesc-based dispatch
The `title' property of IE9 triggers the new code, which wasn't
implemented before because I didn't have an example.
2012-10-05 12:26:14 -06:00
Sam Tobin-Hochstadt
962f2472e1 Revamp handling of Any as a contract.
The contract now has two major differences:
 - It raises an error when it would have to wrap.
 - It uses chaperones to delay errors as long as possible

In general, using `Any` as a type when exporting to untyped
code will now just work, unless the untyped code tries to
communicate values back to the typed side, in which case an
immediate error will be raised.

Much of the implementation comes from the membrane design
from [Strickland et al, OOPSLA 2012].
2012-10-05 12:39:11 -04:00
Jon Rafkind
8210acc696 [honu] add postfix keyword for unary definitions 2012-10-04 23:53:03 -06:00
Jon Rafkind
afdd5c4393 [honu] support postfix unary operators 2012-10-04 23:53:03 -06:00
Jon Rafkind
6c20513587 [honu] add binary_operator and unary_operator forms for plain expression-based operators 2012-10-04 23:53:02 -06:00
Matthew Flatt
b4b723df4e fix `in-directory'
Closes PR 13163
2012-10-04 06:40:36 -06:00
Sam Tobin-Hochstadt
86522a1804 This pattern of typed submodules exposes Racket bugs. 2012-10-03 12:24:16 -04:00
Matthew Flatt
64bac4e573 racket/draw: fix return value of load-file' from bitmap%' 2012-10-01 18:14:19 -06:00
Robby Findler
a4b79ccf66 adjust Check Syntax so that it tries to point to the
raw-module-path inside of a phaseless-spec (see
the #%require docs for the description of these).
Also, Rackety

in conjunction with commit 9047427 (and an earlier
commit in those files/dirs), this commit:
 closes PR 7815
 closes PR 10455
 closes PR 10788
2012-10-01 10:47:23 -05:00
Matthew Flatt
6a5f73d3d9 scriblib/autobib: more graceful failure when bib not rendered 2012-10-01 07:14:46 -06:00
Matthew Flatt
9047427e07 further improvements to source locations for `require' forms 2012-10-01 07:14:46 -06:00
Robby Findler
ce8d8eb763 fix the way check syntax traverses #%require expressions that it sees
(the way things currently stand, check syntax needs more information
 from the fully expanded form, but at least now it has a better chance
 to actually use that information, if it were there ...)

related to PR 7815
related to PR 10455
related to PR 10788
2012-09-29 22:09:02 -05:00
Matthew Flatt
14e276094a improve source correlation on `require' expansion 2012-09-29 08:59:10 -06:00
Sam Tobin-Hochstadt
cab90c16d5 Test for appropriate predicates for invariant structs. 2012-09-27 17:26:32 -04:00
Sam Tobin-Hochstadt
d066a5c1d2 Fix error message pattern for use of cons/c. 2012-09-27 16:39:16 -04:00
Eric Dobson
ffe45ecce4 Working covariant applications. 2012-09-27 16:22:22 -04:00
Eric Dobson
12233600c1 Fix -struct to use the right number of arguments to make-Struct. 2012-09-27 16:22:21 -04:00
Eric Dobson
745403a88e Make struct type contracts better 2012-09-27 16:22:21 -04:00
Eric Dobson
9e1cf579a4 Fix type->contract on structures. Now uses struct/c. 2012-09-27 16:22:21 -04:00
Ryan Culpepper
008d1f7f1b syntax/parse/experimental/template: quasitemplate, template/loc 2012-09-24 13:31:03 -04:00
Matthew Flatt
3fb12b4ff4 raco exe: handle failing submodule search correctly
An attempt to detect a submodule could trigger the original module
name resolver when the would-be enclosing module would be handled
by the embedding-specific resolver. When a submodule is not found
but its would-be enclosing module is embedded, then assume that
the default resolver wouldn't find the submodule, eithe --- and
therefore avoid a potential "collection not found" error.
2012-09-23 10:47:24 -05:00
Matthew Flatt
cb041850f4 scribble: decode a lone ` as a left "curly quote"
Also, add 'lsquo as allowed content.

Omitting the ` conversion in the first place was over-conservative.
There's a backward-compatibility issue with this addition (i.e., a
document might contain a backquote in a decoded context that is
meant to be rendered as a backquote), but the potential problems
seem minor.
2012-09-21 07:37:30 -06:00
Robby Findler
3f4b117c1a remove redunant arguments (they were the same as the default args, in 70-something places) 2012-09-20 18:46:40 -05:00
Robby Findler
a6d74c8e3b avoid the default handler for call-with-continuation-prompt in
favor of one that behaves much like it, but never escapes

closes PR 13121
2012-09-20 18:46:40 -05:00
Ryan Culpepper
ddcafbc6d1 syntax/parse/experimental/template: fix ellipses/depth rules again 2012-09-20 12:19:51 -04:00
Robby Findler
e6a25f65ca fix first-order test for struct/dc contracts
closes PR 13090
2012-09-19 15:41:56 -05:00
Robby Findler
21e0d9e031 make check syntax traverse (module* ...) expressions
closes PR 13095
2012-09-19 06:48:09 -05:00
Robby Findler
51d41c6cfe adjust check syntax so that it doesn't take over the right-click
menu, but instead cooperates with the existing protocol
(using keymap:add-to-right-button-menu)
2012-09-19 05:19:03 -05:00
Matthew Flatt
e81cd0d8d7 add `slideshow/code-pict' and code transformers
The `slideshow/code-pict' library is the same as `slideshow/code', but
it works in non-GUI settings. Only the `slideshow/code' library connects
the code font size to `current-font-size', though.

The `code' macro, `define-code', etc., now support "code transformers",
which are syntax bindings that trigger otherwise-unescaped transformations
in the code to typeset (which can make the code easier to read and
friendlier to auto-indentation).
2012-09-18 10:03:26 -06:00
Ryan Culpepper
35a0e50de4 syntax/parse/experimental/template: fixed bugs, added error tests 2012-09-17 18:11:44 -04:00
Ryan Culpepper
97954f7c37 fixed macro-stepper tests 2012-09-17 12:43:36 -04:00
Ryan Culpepper
9d34f0f147 db: added support for postgresql 9.2 types (json, ranges)
Other major changes:
 - pg code now uses only binary format
 - pg timestamptz now always UTC (tz = 0), added doc section
 - added contracts to most pg "can't-convert" errors
2012-09-17 12:29:17 -04:00
Ryan Culpepper
d70e80e837 racket/format: change ~r to accept #:notation argument
Another possibility would be
  #:exponential? (or/c boolean? (-> rational? boolean?))
but that violates the "everything's a boolean" convention.
2012-09-16 17:12:02 -04:00
Matthew Flatt
fc52248446 add #:break' and #:final' to `for' forms
Support for break clauses complicates expansion to `for/fold/derived';
a new `syntax/for-body' library provides a helper for macros that need
to split a `for'-style body into a prefix part and wrappable part.
2012-09-14 14:57:35 -06:00
Matthew Flatt
adb5c01ac4 racket/generator: add optional #:arity' clause to in-generator'
Allows the use of `in-generator' to produce multiple values in a
position other than immediately within `for' (where the arity
can be inferred).

Closes PR 11662
2012-09-14 13:02:55 -06:00
Matthew Flatt
ac5965a1dc racket/set: add set-first' and set-rest' 2012-09-12 17:57:03 -06:00
Matthew Flatt
906ddb7fbf Windows: avoid Unix-specific test 2012-09-12 11:19:51 -06: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
Asumu Takikawa
3daec14cbb racket/generic: better error message in empty case
Closes PR 13048
2012-09-11 14:43:19 -04:00
Vincent St-Amour
5a24b57a95 Fix unstable/logging to work with the new logging system. 2012-09-11 13:48:14 -04: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
b53e458e3f add `racket/format'
The new library is Ryan's `unstable/cat', but the names have been
changed. (The task of removing `unstable/cat' remains.)
2012-09-07 08:16:37 -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
ba56fd72da racket/class: add dynamic-get-field' and dynamic-set-field!' 2012-09-04 15:28:18 -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
Jay McCarthy
b68fb6f228 Obey contract in internal test 2012-09-01 12:48:14 -06:00
Robby Findler
4571afa6ab speed up the test-engine drracket tests some 2012-08-31 20:52:48 -05:00
Robby Findler
6ca79d56fa fix check-error so it compares the rewritten error messages,
not the raw error messages
2012-08-31 20:52:48 -05:00
Matthew Flatt
9cfcf8911c fix `in-directory' to properly propagate filesystem errors 2012-08-31 16:07:10 -06:00
Sam Tobin-Hochstadt
eed93825ab Track mutable variables across modules. 2012-08-31 17:45:11 -04:00
Sam Tobin-Hochstadt
ab5403d1ed Simplifying case-> to union is only safe for 1-argument functions.
Closes PR 13002.
2012-08-31 10:27:51 -04:00
Ryan Culpepper
70a2ced71a syntax/id-table: simplify use of chaperones 2012-08-29 20:44:04 -04:00
Ryan Culpepper
3ccc93590a syntax/id-table: more work on *-id-table/c 2012-08-29 20:43:24 -04:00
Eric Dobson
e7c7e14485 Added tests to idtbl/c and fixed revealed bugs. 2012-08-29 20:25:32 -04: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
Asumu Takikawa
466b4e2c60 racket/generic: eliminate ctc dependency in private interface
Closes PR 13051
2012-08-28 17:54:35 -04: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
cb95a99d68 change `transplant-{input,output}-port' to propagate buffering
Affects derived functions, such as `dup-output-port' and
`relocate-output-port', and uses in `pretty-print'.
2012-08-27 19:44:06 -06:00
Matthew Flatt
704cb4bd01 make-output-port': fix enable-break?' argument to callbacks 2012-08-27 19:44:06 -06:00
John Clements
614ff235fc remove dependencies on mz-testing.rkt 2012-08-27 13:35:38 -07:00
Ryan Culpepper
7da5063782 db: added variations of concurrency test 2012-08-25 19:02:18 -04:00
Ryan Culpepper
7c395e9c7c db: updated to new error convention (mostly) 2012-08-25 19:02:18 -04:00
Ryan Culpepper
325293ceea added tests for racket/syntax 2012-08-24 18:14:40 -04: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
Robby Findler
0fa2e6d7d5 adjust planet tests to use 'raco planet' command-line tool, not 'planet' 2012-08-24 07:41:05 -05:00
Robby Findler
1ad2c75531 add the ability to specify #:parent to struct/dc (and fix struct/c to use it)
closes PR 13049
2012-08-23 18:59:11 -05:00
Matthew Flatt
edd2035f88 racket/draw: fix set-clipping-rect' in record-dc%' 2012-08-23 09:42:34 -06:00
Asumu Takikawa
07119c371d Fix stream bug introduced by generics
Stream generic operations stopped working for lists
since the operations used only the generic dispatcher
instead of the real generic functions.

(Moral of this story: write more tests)
2012-08-22 18:15:25 -04:00
Sam Tobin-Hochstadt
b7f9c77069 Remove #:transparent to work around place message limitations. 2012-08-22 16:50:50 -04:00
Sam Tobin-Hochstadt
e207f5c67d Add -v option to TR tests.
Also, print errors from serialization and place message sending.
2012-08-22 16:50:50 -04:00
Eric Dobson
e9f209977b Fix typechecking of polymorphic structs with parent types.
Closes PR12998.
2012-08-22 16:50:49 -04:00
John Clements
a5ddd73000 removed vestigial mz-testing file 2012-08-22 10:14:13 -07:00
Sam Tobin-Hochstadt
26a57f6420 Use module registry trick to slightly speed up TR tests. 2012-08-22 11:13:07 -04:00
Sam Tobin-Hochstadt
e705d4d450 Parallelize running Typed Racket optimizer tests.
No speedup yet, though.
2012-08-21 17:47:30 -04:00
Asumu Takikawa
9a65f9aaf0 Delete trailing whitespace 2012-08-21 16:20:26 -04:00
Asumu Takikawa
965a74453f Add #:forall, #:∀ to contract-out 2012-08-21 16:20:26 -04:00
Asumu Takikawa
a5d1007696 racket/generic: allow impersonator contracts
This enables the use of polymorphic contracts with generic
interfaces and their instances.
2012-08-21 12:43:48 -04:00
Matthew Flatt
5e5e503859 scribble/manual: add #:normalize?' option to deftech' et al. 2012-08-20 17:37:24 -06:00
Jon Rafkind
5bf68d32d5 [honu] remove context argument 2012-08-20 16:25:38 -06:00
Sam Tobin-Hochstadt
1c275ffcc7 Don't use places for running single tests. 2012-08-20 14:45:50 -04:00
Jon Rafkind
dc3d06c7ae [honu] change -> to = 2012-08-20 12:28:15 -06:00
Jon Rafkind
62042beb50 [honu] wrap syntax with (semicolon ...) when a ; is present 2012-08-20 12:28:15 -06:00
Eric Dobson
533920480e Add tests for make-predicate and cast, also add support for the top-level.
Closes PR 12939.
Closes PR 12201.
2012-08-20 12:39:41 -04:00
Sam Tobin-Hochstadt
9e5060ef5b Make Typed Racket integration tests run in parallel.
Parallel speedup of approximately 4x when using 8 workers on a 12-core machine.

Closes PR 12911.
2012-08-20 12:25:50 -04:00
Eric Dobson
09d32d35e0 Add promise support to type->contract.
Closes PR13024.
2012-08-20 10:10:17 -04:00
Robby Findler
40121d2531 improve the menu redundancy test so it reports when there are
multiple menu items with the same shortcut
2012-08-19 17:09:16 -05:00
Robby Findler
52f18ee370 adjust the expansion of class so that it tracks identifiers
that it drops from the expansion (like define/public) by
adding them to the origin syntax property (and sometimes
to disappeared-use; see the add-decl-props function
for details on those that aren't in the origin property)

this means that check syntax will now pick them up
so they'll show up in the blue boxes in drracket

Thanks Matthew, for some helpful advice and
comments on an initial version of the commit.
2012-08-17 17:24:03 -05:00
Asumu Takikawa
5a2c235739 Forge non-existent generic functions like write-proc
Closes PR 13014
2012-08-17 12:27:01 -04: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
b95b1b9366 Revert "Fixing Rackunit tests after alignment"
This reverts commit 4497c8ce5e,
because the tests were correctly reporting a bug that I
introduced.
2012-08-15 09:34:17 -06:00
Matthew Flatt
6e2bb58cce add a #:fill' clause to for/vector' et al. 2012-08-15 09:32:55 -06:00
Matthew Flatt
7b811bed1b for/vector' and for*/vector' repairs
Closes PR 13029, 13030
2012-08-15 07:41:50 -06:00
Jay McCarthy
4497c8ce5e Fixing Rackunit tests after alignment 2012-08-14 22:21:44 -06:00
Jay McCarthy
3ddaf5e32b Fixing Racklog cut error found by Erik Dominikus
Basically, Racklog (and all versions of schelog) implement ! by
causing the failure continuation of the entire relation being
returned. They did not also cause the unification caused by the
relation to be un-done.

However, it is not easy to separate un-doing the local changes because
the unification just returns a failure continuation too. I had to call
that fail continuation but use state to communicate to its target that
the next clause should not be visited.

I don't know if this is correct. My test suite contains a lot of cut
tests that still pass. Erik's test passes too. But I'm not confident
that this really works.
2012-08-14 21:34:02 -06:00
Eric Dobson
ac493a6f44 Replaced infer-dummy with lazy-require. 2012-08-14 16:04:51 -04:00
Sam Tobin-Hochstadt
ade36c36c6 Don't special-case applications with instantiations.
Closes PR 13006.
2012-08-14 15:45:47 -04:00
Eric Dobson
3b6168de7d Fix substitute and add test case. 2012-08-14 14:44:55 -04:00
Eric Dobson
2e3965e777 Make simple substitution happen all at once.
Closes pr12920.
2012-08-14 14:44:55 -04:00
Vincent St-Amour
af8fc1f26a Fix types of magnitude and angle.
Closes PR13025.
2012-08-14 14:37:18 -04:00
Eric Dobson
cac47c0427 Make TR debug printer work again. 2012-08-14 09:45:01 -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
Sam Tobin-Hochstadt
6ae2a9d884 Fix internal require of typed submodules. 2012-08-13 17:20:20 -04:00
Robby Findler
e6fc56a8b8 adjust the leak test so that it first runs with online
compilation disabled and then runs with it enabled
2012-08-13 10:31:54 -05:00
Matthew Flatt
bb3545ddf7 ffi/unsafe/custodian: #:atexit?' -> #:at-exit?' 2012-08-12 20:25:47 -06:00
Matthew Flatt
1800680c6b racket/gui: fix access of scrollbar values for canvas without a scrollbar 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
6588449aed enable online check syntax (change the default for
the preferences and use a new preferences symbol, so
everyone gets the new default)
2012-08-12 16:20:21 -05:00
James Swaine
3cd4efe201 Fix process id sorting in future visualizer 2012-08-11 09:21:29 -05:00
James Swaine
6271556e1d Add GC display to future visualizer 2012-08-11 01:00:51 -05: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
Eric Dobson
3876dfa841 Make generated flat contracts actually flat. 2012-08-10 10:39:44 -04: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
9d6cb8e50e setup/pack: fix internal and contract errors
Part of the contract-error fix is an implementation change, and part
is a documentation change.

Closes PR 12904
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
a3a55de00a Don't wait for future log messages if futures are disabled (future-visualizer) 2012-08-08 12:01:58 -05:00
Eric Dobson
21598297a7 Removed *Un from abbrev.rkt, replaced it with Un from union.rkt. 2012-08-07 15:50:50 -04:00
Eric Dobson
9ed360bb5e Removed convenience.rkt from typed racket. 2012-08-07 15:50:50 -04:00
Eric Dobson
56fd9e6321 Rearange type code, so that abbrev.rkt can depend on union.rkt.
Split out base-abbrev.rkt so that subtype is not dependent on abbrev.rkt.
Remove unused code in numeric-tower.rkt so that it is now a dependent of
abbrev.rkt, which allows the body of convenience.rkt to be merged back in.
Remove special casing for union.rkt and extraneous subtyping checks.
Remove union-maker.
2012-08-07 15:50:50 -04:00
Robby Findler
4a19ab40e8 add check for adjacent separators into tests 2012-08-07 12:51:52 -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
0bd53a3549 compiler/zo-marshal: repair mashaling of import info in syntax 2012-08-06 15:32:27 -06:00
Matthew Flatt
02318ebcb3 fix test to work with relative executable path 2012-08-06 14:27:29 -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
Vincent St-Amour
7494fccc4c Control number of attempts for TR random testing from the command line. 2012-08-06 12:48:41 -04:00
Eric Dobson
e6d4fb2ee2 Fill hole in recursive type soundness. Fixes PR 11372. 2012-08-06 12:31:07 -04:00
Robby Findler
8a0b6549a5 adjust the contract error messages to follow the error message
conventions in 9.2.1 of the reference (altho the messages do
not yet do the extra level of indenting when a field is too
long, nor are there any field names ending in ...)

Also, fix the docs for the #:stronger argument to
make-contract, make-chaperone-contract, and make-flat-contract
2012-08-05 20:09:09 -05:00
Robby Findler
34618708a6 give up on a (small) part of the repl test.
Specifically, it seems like about 20% of the time (in drdr),
running the program

  (let l()(l))

in DrRacket and then clicking the break button results in a state
where DrRacket's focus is not in the definitions window. I can't seem
to make this happen on my own machine and I'm not sure if this a
race-condition in the test suite or a real bug in DrRacket but it
seems minor enough (given all of the other focus-based testing that is
happening in this (and related) test suites) that I'm just going to
give up on this particular test.
2012-08-05 08:14:58 -05: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
Matthew Flatt
f28e8a02d0 fix 'disappeared-use prperty added by `syntax'
Effectively preserve `syntax-original?' of added identifiers.
2012-08-04 10:19:55 -06:00
Vincent St-Amour
aba046a92d Swap unsafe and chaperone-unsafe vector ops in the TR optimizer.
Closes PR12969.
2012-08-04 10:32:21 -04:00
Ryan Culpepper
1a77f4ee0e added recontract-out 2012-08-03 20:52:35 -04:00
Matthew Flatt
f11450d601 scribble/base: generalize `itemlist' to splice/coerce some arguments
Also, add a `spliceof' contract constructor to `scribble/decode'.
2012-08-03 13:43:23 -06:00
Vincent St-Amour
79c265ef89 Fix NaN handling of flexpt to be consistent with expt. 2012-08-03 14:21:44 -04:00
Vincent St-Amour
a6d5a98b61 Include NaN in all floating-point types.
Makes more closure properties hold, but weakens occurrence typing for
some comparisons involving flonums.
2012-08-03 14:21:44 -04:00
Kevin Tew
38e90b52c4 Fixes parallel raco make of relative paths including subdirectories
closes PR 12953
2012-08-03 09:15:22 -06:00
Robby Findler
2032aaf341 add a test case for check-expect expressions where the first position has an error
test case for commit 87a8f70148

related to PR 12943
2012-07-31 22:25:34 -05:00
Ryan Culpepper
6eb8da1f40 removed (unused) reference to not-break-exn? 2012-07-31 19:15:21 -04:00
Vincent St-Amour
800a328fe6 Fix documentation for packages and mutable lists.
As suggested by Matthew.
2012-07-31 17:12:30 -04:00
Kevin Tew
04839b39f8 [Distributed Places] fix failing drdr tests 2012-07-31 13:56:38 -06:00
Robby Findler
1a619bd047 add tooltips at the start and end of arrows indicating how many references
there are and how many definition sites there are (in check syntax)

also: Rackety
2012-07-30 21:46:22 -05:00
Matthew Flatt
b0f81b5365 racket/draw: use Cairo in a single-threaded way
This is a follow-up to commit ec6f3fd610. We're still
seeing crashes while rendering the "plot" documentation, and this
change seems to make things work on my machine.
2012-07-30 08:07:49 -06:00
Matthew Flatt
9b1db14328 ffi/com: fix clean-up of type descriptors
Merge to v5.3
2012-07-29 09:46:30 -06:00
Robby Findler
6e2fb2ac5e make the code that does the mixin checks work with define-local-member-name
closes PR 11279
closes PR 12397
2012-07-29 09:43:37 -05:00