Commit Graph

4330 Commits

Author SHA1 Message Date
Matthew Flatt
71fe28e5dc scriblib/autobib: fixes in docs and related to disambiguation
Fixed problems related to sorting, more than two references for
one citation, and "specific" additions like page numbers.

Also, removed a set of parentheses around disambiguated dates
in the bibliography, because I don't think they belong there.

The doc format was confused; for example, square brackets don't mean
optional in a syntactic form documentation, but instead mean square
brackets.
2012-07-10 00:21:56 -06:00
Vincent St-Amour
dba49db078 Fix type of andmap and ormap on empty lists.
Closes PR 12882.
2012-07-06 12:28:37 -04:00
Matthew Flatt
f71037c775 also improve JIT support for unboxed flonums in non-tail-call
Applies to non-tail calls to immediate functions, which can be
generated by a `for' or `let loop' pattern in a non-tail
position.
2012-07-06 08:07:10 -06:00
Robby Findler
467bde3a25 fixed promise/c so it creates chaperone contracts when its
argument is a chaperone contract

closes PR 12861
2012-07-04 18:41:55 -05:00
Matthew Flatt
aa68692b37 allow `begin' wrapper on a submodule to re-expand
Closes PR 12835
2012-07-02 10:02:41 -06:00
Matthew Flatt
3662aee60b *SL: fix `check-expect' syntax checking
Bug introduced during error-message conversion.
2012-07-01 09:25:12 -06:00
Matthew Flatt
67cbd52e24 fix benchmark driver for running an old version 2012-06-28 14:32:01 -06:00
Sam Tobin-Hochstadt
20e95f8d8e More refactoring and reduction of runtime dependencies. 2012-06-28 14:34:07 -04:00
Sam Tobin-Hochstadt
f075ecd36e File splitting, dependency reduction. 2012-06-28 14:34:07 -04:00
Matthew Flatt
0d1056dbed fix potential bad interaction of module caching and JIT assumption
The JIT wants to detect calls to functions bound to module-level
variables that are always instantiated to a procedure of a particular
arity, in which case it can avoid some checks.  The problem is that
bytecode and JITted code can be shared via the module cache across
namespaces that use different modules to implement a particular module
path or that enable the JIT differently.  In particular, starting with
one that has a procedure binding and then using one (in a different
namespace) that has a non-procedure binding could lead to a crash.

Defend against this possibility by never treating imported variables
as constant in that sense. The JIT detects imported variables through
a new import map in the prefix.

This change may slow code. My guess is that it will have no
performance impact in practice, due to cross-module inlining,
although I can construct a microbenchmark that slows by 20%.
2012-06-27 09:57:50 -06:00
Matthew Flatt
577cf4592e fix problems with references to bindings at higher phases 2012-06-27 09:57:50 -06:00
Matthew Flatt
edce1b0406 fix optimizer for impersonated continuation mark keys
The optimizer can no longer reduce
  (with-continuation-mark _id _v-expr _expr)
to just
  _expr
when _v-expr and _expr are simple enough, because _id
might be bound to a continuation mark key with an
impersonator that checks the result of _v-expr.

The loss of an optimization can have a significant affect on
errortrace of microbenchmarks, such as

 (for ([i (in-range 10000000)])
   i)
2012-06-27 09:57:50 -06:00
Vincent St-Amour
db6c2e7737 Update types of string-join and add-between. 2012-06-27 11:39:15 -04:00
Asumu Takikawa
095d47fc3d racket/contract: rename prompt/c & continuation-mark/c
The new names are `prompt-tag/c` and `continuation-mark-key/c`
to keep the names consistent with the values that are being
contracted. Also updated the HISTORY file.
2012-06-26 21:11:58 -04:00
Asumu Takikawa
fcab398081 racket/class: add send+ for functional style OO 2012-06-26 21:11:58 -04:00
Eli Barzilay
0c78194267 Adjust the keyword names for string-join' following the change to add-between'. 2012-06-26 13:45:16 -04:00
Asumu Takikawa
de5c756d2e Added continuation-mark/c 2012-06-26 13:39:36 -04:00
Asumu Takikawa
db6c37df92 Add proxy-able continuation mark keys and proxies
(with much help from Matthew on the JIT side)
2012-06-26 13:39:36 -04:00
Matthew Flatt
a6e263741a racket/list: adjust `add-between' keyword handling
Add a `#:nothing' argument so the no-value value can be
made explicit --- based on discussion with Eli, but pending
further review.

Also, renamed `#:first' to `#:before-first' and `#:last' to
`#:after-last' to be more clear, more parallel ro `#:before-last',
and avoid a collision with prominent function names.
2012-06-26 11:00:11 -06:00
Asumu Takikawa
552d6de953 racket/generics: add contract combinator
The generics library now generates a `name/c` macro
for a generic interface `name`. The combinator can be
used to contract instances (or constructors) of a
generic interface across standard contract boundaries.
2012-06-25 20:33:48 -04:00
Matthew Flatt
cb88590dfb fix interaction of `procedure-arity-includes?' and other things
A arity-reduced procedure-valued `prop:procedure' was not handled
correctly, for example.

A good candidate for random testing? I had the right kind of test in
place, but only for an arity of 1. It turns out that testing any other
arity would have exposed the problem, so now there are tests with
arity 0. If I had randomly generated procedures instead of manually
constructing `f0' through `f1:+' in "procs.rktl", then maybe I would
have more naturally generalized the arity testing, too. Then again,
I did already have relevant inputs, and it was the testing of inputs
that was too specific.

Closes PR 12870
2012-06-25 17:30:03 -06:00
Matthias Felleisen
b5b918ca4a restored object-name tests for the new doc system 2012-06-25 19:15:09 -04:00
Matthias Felleisen
92c62d7417 disabled name tests for htdp languages during documentation reorg 2012-06-25 19:15:08 -04:00
Sam Tobin-Hochstadt
88ff5fee69 Minor refactorings.
- Remove tracing requires.
 - Use lists instead of sets in a few environments.
 - Small cleanups.
2012-06-25 18:07:45 -04:00
Jay McCarthy
bc72ddd88a New error message 2012-06-25 15:59:17 -06:00
Sam Tobin-Hochstadt
ccb724155a scheme -> racket 2012-06-25 13:39:07 -04:00
Vincent St-Amour
972df7c89e Add #:unless to the for: macros. 2012-06-25 13:38:51 -04:00
Vincent St-Amour
b1ad108759 Update type of string-join for its new keyword arguments.
Closes PR12866.
2012-06-25 13:05:46 -04:00
Matthew Flatt
c11527494e racket/port: fix problems with `read-bytes!-evt'
See PR 12860; some of problem related to the PR were "fixed" by
adjusting the guarantees that are specified in the documentation.

Another problem was that non-consecutive bytes could be returned.
2012-06-24 07:38:09 -06:00
Matthew Flatt
5433d2302a fix some error-message tests 2012-06-23 05:21:52 -07:00
Matthew Flatt
4323096a46 change contract on second' of date' to allow only 1 leap second 2012-06-23 02:04:55 -07:00
Eli Barzilay
f0d856ab7a Extend string-join' in a similar way to add-between'.
(This is actually the extension that made me do the other too.)
2012-06-23 04:44:20 -04:00
Eli Barzilay
728687d9dc Extend `add-between'.
New keywords: `#:first', `#:before-last', `#:last', and `#:splice?'.
2012-06-23 04:44:20 -04:00
Vincent St-Amour
ee142047f8 Add type for range, and extend in-range's. 2012-06-22 17:53:43 -04:00
Eli Barzilay
7ec9975736 Move regexp-replaces' from ffi/unsafe' to `racket/private/string'.
* The old function was removed completely, people will get it from
  `racket/base' anyway.

* I also removed its documentation.  I thought about leaving a note in,
  but if `define-ffi-definer' is the preferred style, then this should
  be done when there's a way to make `define-ffi-definer' use it.  (Eg,
  some new #:keyword that adds a way to change the defined name.)

* Note that the function is added to `racket/private/string' and not to
  `racket/string' because the latter deals only with strings, and the
  new function accepts byte strings too.  It might be better to start a
  new `racket/regexp' module for these functions.
2012-06-22 14:27:14 -04:00
Eli Barzilay
7b4772e120 Extend `regexp-replace*' to accept a start/end-position.
Note that this pushes the `ipre' argument to the end.
2012-06-22 12:00:48 -04:00
Eli Barzilay
7d6e79023c Random pickiness.
Spaces at EOFs, indentation, etc.
2012-06-22 12:00:48 -04:00
Matthew Flatt
d253b89ba8 racket/port: fix read-bytes-evt' and read-string-evt'
As the documentation says, it's supposed to be ok to use the
same evt multiple times or in multiple threads, but an internal
buffer was allocated incorrectly, so that multiple/concurrent
uses could go wrong.

Closes PR 12860
2012-06-22 09:48:00 +08: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
9af2a331ca another ASL error-message repair 2012-06-21 07:14:49 +08:00
Robby Findler
f38024d4ed fix struct/c for the case that the selectors are not available at the use site.
closes PR 12854
2012-06-20 11:23:20 -05:00
Robby Findler
c0b928c758 Added @literal-algol{} and started an algol60 test suite (apologies
if there already was one that I didn't find). Also fixed syntax
error raising procedure.

closes PR 12859
2012-06-20 10:28:53 -05:00
John Clements
c01e8c1564 refactored to reduce stepper dependencies 2012-06-19 23:51:59 -07:00
Eli Barzilay
4c2940a6d9 Simplify away uses of "-t" in `drdr:command-line'.
In some cases use `module+' to make the code run nicely without a "-m".

(And some other minor tweaks.)
2012-06-19 12:52:22 -04:00
Asumu Takikawa
0e4f9fcd97 racket/gui: fixed by-position widget initialization
This was broken in the class100 port. The init arguments
previously handled by the class100*/kw macro need to be
explicitly passed down.

Also, an (init-rest) is needed at the leaves of the class
hierarchy to ensure that internal super init args don't
leak via error messages. (the class100 macro always
inserts these)

Added a test file so similar breakage is detectable in the
future.
2012-06-19 12:37:35 -04:00
Eli Barzilay
2c19677358 Make some .rktl tests run with "racket".
With this commit, all of the leftover mentions of gracket in
`drdr:command-line' are things that pop up windows.
2012-06-19 03:18:23 -04:00
Eli Barzilay
b8034828d0 Sort the mess with aligned-pasteboard tests.
1. Lots of #lang-ization, other racketizations, code improvements, etc.

2. Some files that were not working now do.

3. "collects/tests/aligned-pasteboard" had some files that were near
   duplicates of "collects/mrlib/private/aligned-pasteboard/tests".
   I've removed the former since in a few places it looked like an older
   version (eg, there were bogus references to a non-existent
   "utils.rkt").  The former has more files that are in runnable
   condition now.

4. There are plenty of tests that look like they're failing, but it
   wasn't shown since they just return #f, and when they were running
   with a "-f" these results weren't displayed.

5. I have no idea about the code, this is all just reshuffling and minor
   editing.
2012-06-19 01:42:20 -04:00
Vincent St-Amour
24b6ecf2a6 Extend time-apply to work with procedures with more than 2 arguments. 2012-06-17 23:04:47 -04:00
Sam Tobin-Hochstadt
39e014bc55 Handle submodules in Typed Racket. 2012-06-16 22:08:06 +08:00