Commit Graph

4550 Commits

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