Commit Graph

33578 Commits

Author SHA1 Message Date
Matthew Flatt
431321f2cb fix use of wrong comparsion macro
The wrong comparison could possibly (though not likely) cause an
operation-skipping optimization to be missed.
2014-06-23 10:44:56 +01:00
Matthew Flatt
d970d5aaea Scribble: improve Unicode handling for Latex/PDF output
Normalize strings to composed form before splitting a
string into characters to handle individually.
2014-06-23 06:28:50 +01:00
Matthew Flatt
93fdbdc79c optimizer: refine virtual clock, more precise shift-fuel tracking
Allow an effect-free `if` to not increment the effect-tracking
virtual clock (but increment the clock during branches, to avoid
moving computation into a branch).

Spend empty-`let`-elimination fuel more precisely, so that more
empty `let`s can be removed while still avoiding quadratic
compile times.
2014-06-23 06:28:50 +01:00
Robby Findler
25cf0ea610 add crop/align 2014-06-22 23:41:58 -05:00
Robby Findler
ff8708b311 add color-frame 2014-06-22 23:41:58 -05:00
Robby Findler
43c1ddbf5f Rackety: bring down below 102 columns 2014-06-22 23:41:57 -05:00
Eric Dobson
1271c11781 Add contracts to filter-ops. 2014-06-22 19:43:45 -07:00
Robby Findler
b234e22413 in text mode, don't do "The Racket Language"-specific things
closes PR 14590
2014-06-22 08:39:46 -05:00
Mike Sperber
95ccac8a5c Synch German string constants with latest. 2014-06-21 13:01:19 +02:00
Eric Dobson
7acc9eaf0a Make combine-results work with tc-result/c. 2014-06-20 23:52:09 -07:00
Robby Findler
06061758b7 update the expected results for the redex bitmap tests 2014-06-21 01:33:31 -05:00
Eric Dobson
fc649c6b99 Fix subtype for filters in AnyValues. 2014-06-20 23:11:38 -07:00
Eric Dobson
b199527ec2 Add test cases for subtyping of -Bottom. 2014-06-20 21:46:23 -07:00
Eric Dobson
30809eb841 Add match expander for functions and arities together. 2014-06-20 21:30:25 -07:00
Eric Dobson
11e19caa02 Add bottom as a special case in multiple value context. 2014-06-20 21:30:25 -07:00
Eric Dobson
5af90e65e9 Make funapp take a Type/c instead of a tc-results?. 2014-06-20 21:30:25 -07:00
Eric Dobson
cb243606ab Only match on f-type in tc/funapp. 2014-06-20 21:30:25 -07:00
Eric Dobson
919e03b9f7 Remove extraneous patterns in tc/funapp.
Also improves error messages on cases which return AnyValues/ValuesDots.
2014-06-20 21:30:25 -07:00
Robby Findler
82d8094d1a adjust the 'Skip to Next Misspelled Word' menu key shortcut to try to avoid conflicts 2014-06-20 19:25:09 -05:00
Robby Findler
74831b41cc add abbreviate-given-names
This changes the behavior of make-cite and authors, but it would
probably be better to change the behavior of generate-bibliography
2014-06-20 19:23:14 -05:00
J. Ian Johnson
bacbafad9f Closes PR14589. 2014-06-20 14:08:25 -04:00
Asumu Takikawa
8b53d32f52 Give more information for kw errors in TR
Tells the user which missing keywords were mandatory and
which were optional (which is useful if, e.g., the expected type
says mandatory but the function had it optional).
2014-06-20 12:21:45 -04:00
Asumu Takikawa
8755e62556 Check kw functions with optional arguments better
In particular, allow the optional kws to be left out in the
expected type (a function type with fewer optional kws is
a supertype).

Closes PR 14583
2014-06-20 12:14:43 -04:00
Matthew Flatt
22b7cc6a5e optimizer: improvements mostly for splitting of multiple-value bindings
Convert

 (let-values ([(<id> ...) (if <id-t>
                              (values <e1> ...)
                              (values <e2> ...))])
    ....)

to

 (let ([<id> (if <id-t> <e1> <e2>)]
       ...)
    ....)

which duplicates the `(if <id-t> ....)` test, but that's likely to
be worthwhile to avoid multiple-values shuffling and enable more
constant and copy propagation.

A related improvement is to more eagerly discard `let` wrappers
with unused bindings during optimization, which could enable
further optimization, and allow moving conditionals relative
to other expressions to avoid intermediate binding.

Eagerly discarding `let` wrappers exposed a bug in the optimizer's
shifting of variable locations by exercising the relavant shifting
operation in shift_closure_compilation().

Closes PR 14588
2014-06-20 11:05:07 +01:00
Matthew Flatt
16a0727231 optimizer: fix reordering in let+values+values splitting
While the commit comment in 3150b31eb7 still seems right, the changed
overlooked the fact that the arguments to a split `values` might get
reordered (due to the way binding positions are calculated). Fix the
optimizer to make sure that reordering is allowed.

The change touches a lot of code, because we want to use
"omittable" to implement "movable", and it's not ok to
reorder access of mutable variables (in case some other thread is
mutating them). We have to fix all the calls to "omittable"
to support the slight generalization.
2014-06-20 08:08:17 +01:00
Matthew Flatt
da979b6c8d optimizer: fix with-continuation-mark optimization
Misuse of the function to optimize applications constrained the
body of a `with-continuation-mark` form to a single result
value.
2014-06-20 06:41:39 +01:00
Robby Findler
0c5239fb51 improve check syntax so opening the context-sensitive menu is faster
in certain situations

Specifically, don't compute the identifiers-hash before opening the
menu but, when it does need to be computed, avoid consider the same
arrows over and over. This makes an especially big difference when a
region of text is selected that contains lots of arrow heads that all
point to a place that has lots of arrows.

Specifically, the time to compute the identifers hash for the example in
the PR is now about 200x faster (altho this still takes 200 msec, which
is why it isn't computed at all in that sequence of steps any more).

closes PR 14586
2014-06-19 20:01:12 -05:00
Asumu Takikawa
4aa438937a Rework how keyword methods are handled by TR
Override the `define/foo` forms for racket/class to
allow type annotations and to use TR's keyword property.
2014-06-19 17:12:54 -04:00
Asumu Takikawa
2d81c9667c Check function kws against expected before tc-expr
This checks that the given lambda has the right keywords
wrt to the expected type. Doing this should avoid the bad
arity errors that result from the kw protocol encoding.

Closes PR 13898
2014-06-19 17:12:06 -04:00
Matthew Flatt
9c05eff875 make installers: give MSVC setup "x86_amd64" instead of "x64" by default
The "x86_amd64" mode seems to work more often, especially with
Visual Studio Express installations.
2014-06-19 15:09:26 +01:00
Matthew Flatt
92f76764c7 optimizer: recognize that arguments to void are ignored 2014-06-19 15:09:26 +01:00
Matthew Flatt
780a825d34 optimizer: boolean conversion on app of predicate-matching primitives 2014-06-19 15:09:26 +01:00
Gustavo Massaccesi
50ef3a8295 optimizer: optimizes the argument of not in a Boolean context
This enables more reductions, for example: (not (if x y 2)) => (not (if x y #t))
2014-06-19 15:09:26 +01:00
Matthew Flatt
23f6d1a651 optimizer: reorganize & generalize dropping of ignored operations
The optimizer was willing to convert `(pair? (cons w (random)))` to
`(begin (random) #t)`, but not `(car (cons w (random)))` to
`(begin (random) w)` because the `(car (cons ....))` transformation
required simple ignored arguments. Put the treatment of ignored,
non-omittable arguments of a dropped operation in one place. Also,
recognize expressions within `begin` whose results will be ignored.
2014-06-19 15:09:26 +01:00
Matthew Flatt
2faed269f3 windows: add test for links with foward slashes 2014-06-19 15:09:26 +01:00
Sam Tobin-Hochstadt
8d78fc2573 Update web page news. 2014-06-19 09:38:48 -04:00
Matthew Flatt
5b028396df unbreak build
I have no idea whether the change is generally right, but it allows
the build to complete and DrRacket to start.
2014-06-19 06:21:27 +01:00
Matthew Flatt
54c9057e1d distro-build: allow any string for #:vc 2014-06-19 05:28:16 +01:00
Matthew Flatt
9fed5b585a windows: fix symbolic link handling to match the OS
Windows parses relative-path links with yet another set of rules ---
slightly different from the many other existing rules for parsing
paths. Unfortunately, a few OS calls don't provide an option for
having the OS follow links, so we have to re-implement (our best guess
at) the OS's parsing of links.
2014-06-19 05:28:16 +01:00
Matthew Flatt
e1c735f66f win64: fix fixnum-to-extfl conversion 2014-06-19 05:28:16 +01:00
Matthew Flatt
3e3cb71680 win32: support symbolic links
Windows supports symbolic links in Vista and later.
2014-06-19 05:28:16 +01:00
Matthew Flatt
c8c0972fec ignore .sl.cache files
Created by `msbuild`?
2014-06-19 05:28:15 +01:00
Matthew Flatt
2193d2ad87 optimizer: add missing "else"
Thanks to David Vanderson
2014-06-19 05:28:15 +01:00
Eric Dobson
3831cb135e Make TypeFilter and NotTypeFilter have a Path as a subcomponent.
This changes Filters to have a Path as a subcomponent instead of having
the list of Path-Elems and name-ref/c separately. This is part of the
rework to have better object support.
2014-06-18 20:09:26 -07:00
Vincent St-Amour
aab724de35 Make type of make-vector more precise.
Before that, ((inst make-vector Natural) 10) would return a (Vectorof
Integer) which is bad.

Thanks to Alexander Knauth for the suggestion!
2014-06-18 18:48:55 -07:00
Patrick Mahoney
0df8f39914 Readline-to-Racket: Rename file to mzrl.rkt to rktrl.rkt 2014-06-18 20:26:07 -04:00
Burke Fetscher
b10f178e98 redex: adjust benchmark contracts and provides 2014-06-18 16:21:28 -05:00
Burke Fetscher
ae23c070f1 adjust render-metafunction docs 2014-06-18 16:21:27 -05:00
Robby Findler
a3370be15d fix bitmap rotate/flip interaction
closes PR 14585
2014-06-18 01:27:12 -05:00
Burke Fetscher
f347af3c98 redex: refactor benchmark plotting
- add sane interface for points plot
- add the line plot
2014-06-17 15:01:08 -05:00