Commit Graph

35995 Commits

Author SHA1 Message Date
Vincent St-Amour
2f6f403ce8 Fix and improve ->i instrumentation. 2016-01-18 22:23:06 -06:00
Vincent St-Amour
d0c48de685 Add instrumentation to struct property contracts. 2016-01-18 22:23:06 -06:00
Vincent St-Amour
1661eeda18 Front-load some work in struct/dc instrumentation. 2016-01-18 22:23:05 -06:00
Vincent St-Amour
b00d7782ca Instrumentation for parametric->/c. 2016-01-18 22:23:05 -06:00
Vincent St-Amour
143267f1e9 Remove now-redundant instrumentation of vector contracts.
Now covered by instrumentation at contract entry points.
2016-01-18 22:23:05 -06:00
Vincent St-Amour
1277f0347a Instrumentation for object-contract. 2016-01-18 22:23:05 -06:00
Vincent St-Amour
e5738b8ee6 Add missing instrumentation to misc.rkt. 2016-01-18 22:23:04 -06:00
Vincent St-Amour
72418fba03 Instrument higher-order hash/c. 2016-01-18 22:23:04 -06:00
Vincent St-Amour
d34cd06b90 Tests for instrumentation of contract entry points. 2016-01-18 22:23:04 -06:00
Vincent St-Amour
f3f5d9212a Instrumentation at use site for provide/contract and flat contracts. 2016-01-18 22:23:04 -06:00
Vincent St-Amour
ecce6e1b85 Fix test names. 2016-01-18 22:23:03 -06:00
Vincent St-Amour
9b7724167a Add instrumentation for box contracts. 2016-01-18 22:23:03 -06:00
Vincent St-Amour
379a3dd110 Add instrumentation to contract system entry points.
To catch checking that does not happen inside chaperones.
2016-01-18 22:23:03 -06:00
Robby Findler
66d6de6394 avoid putting tail marks on when we know they are already there 2016-01-18 21:19:32 -06:00
Robby Findler
0104e753e7 fix incorrect contract profiler marks, introduced in 308c918a 2016-01-18 21:19:32 -06:00
Matthew Flatt
edd117d414 update HISTORY.txt for v6.4
Merge to v6.4
2016-01-17 16:37:20 -07:00
Matthew Flatt
1204aacd70 procedure-specialize: repair for literal syntax object
Fix `procedure-specialize` for a procedure that refers to a
syntax-object literal. A syntax-object literal becomes part of the
procedure closure, but in a special way that nomrally allows syntax
objects to be loaded on demand. For now, specialization counts as
a demand of the syntax object.

Merge to v6.4
2016-01-17 16:37:20 -07:00
Matthew Flatt
e0cc61d5af fix broken info use after JIT buffer overflow
After the JIT buffer becomes too full, some paths
don't bail out fast enough, so guard against
broken info in some relatively new uses of the info.

Merge to v6.4
2016-01-17 16:37:20 -07:00
Sam Tobin-Hochstadt
e133d87765 Handle rename transformers better in match expanders.
Closes PR 15223.

Merge to 6.4.
2016-01-17 10:48:07 -05:00
Matthew Flatt
ea172ae459 unsafe-{chaperone,impersonate}-procedure: fix name on bad arity
When a procedure created by `unsafe-{chaperone,impersonate}-procedure`
is given the wrong number of arguments, the original procedure's name
should be used in the error message.
2016-01-16 23:06:33 -07:00
Robby Findler
738529c7de fix a bug introduced in 35ce47d97 2016-01-16 12:37:58 -06:00
Matthew Flatt
f317f906d8 small repairs to docs on 'scribblings in "info.rkt"
Merge to v6.4
2016-01-16 08:20:36 -07:00
Matthew Flatt
0a266780fe unsafe-{impersonate,chaperone}-procedure: to racket/unsafe/ops
Move from racket/base, since the functions are unsafe.
2016-01-16 08:20:36 -07:00
Matthew Flatt
48de4101c2 sync version numbers 2016-01-16 07:04:06 -07:00
Matthew Flatt
cc4fd16ed5 avoid a srcloc from "kw.rkt" 2016-01-16 07:03:29 -07:00
Robby Findler
35ce47d97c use procedure-result-arity in racket/contract
This commit, combined with the use of unsafe-chaperone-procedure,
achieves almost the same speedups as c24ddb4a7, but now correctly.

More concretely, this program:

  #lang racket/base
  (module server racket/base
    (require racket/contract/base)
    (provide
     (contract-out
      [f (-> integer? integer?)]))
    (define (f x) x))
  (require 'server)
  (time
   (let ([f f]) ;;  <-- defeats the plus-one-arity optimiztion
     (for ([x (in-range 1000000)])
       (f 1) (f 2) (f 3) (f 4) (f 5))))

runs only about 40% slower than the version without the "(let ([f f])"
and this program

  #lang racket/base
  (module m racket/base
    (provide f)
    (define (f x) x))
  (module n typed/racket/base
    (require/typed
     (submod ".." m)
     [f (-> Integer Integer)])
    (time
     (for ([x (in-range 1000000)])
       (f 1) (f 2) (f 3) (f 4))))
  (require 'n)

runs about 2.8x faster than it did before that same set of changes.
2016-01-16 00:02:20 -06:00
Robby Findler
e3abc6f5c7 add a tail test 2016-01-16 00:02:20 -06:00
Robby Findler
579d50b2d8 add procedure-result-arity 2016-01-16 00:02:20 -06:00
Robby Findler
308c918a42 use unsafe-{chaperone,impersonate}-procedure in racket/contract
for contracts where the arity of the given function is exactly
the arity that the contract expects (i.e. no optional arguments
are turned into madatory or dropped)
2016-01-16 00:02:20 -06:00
Robby Findler
41c8d5bc27 add unsafe-{chaperone,impersonate}-procedure 2016-01-16 00:02:19 -06:00
Jay McCarthy
df29c4e7e2 adjust double splicing behavior of rename-transformer-parameter 2016-01-14 17:29:15 -05:00
Jay McCarthy
3cb100ba17 Clean up stxparam interface 2016-01-14 17:29:15 -05:00
Matthew Flatt
9498bdd80f make raco distribute work with non-writable exe
Closes PR 15214

Merge to v6.4
2016-01-13 20:12:36 -07:00
Gustavo Massaccesi
be82c27db3 fix bug in shifting of types during inlining
During inlining, the type information gathered in
code that was inside the lambda is copied to the outer
context. But the coordinates of the type information
were shifted in the wrong direction, so the type was
assigned to the wrong variable.

This bug is difficult to trigger, so the test is convoluted.

Merge to v6.4
2016-01-13 23:59:17 -03:00
Matthew Butterick
0fb11e61e6 update copyright from 2015 to 2016 2016-01-13 19:40:35 -07:00
Matthew Flatt
052c7e4c06 pick better names for new module-expansion properties
In retrospect, 'module-body-outside-context wasn't a good
name for a property that turned out to hold only an
inside-edge scope.
2016-01-13 07:53:50 -07:00
Matthew Flatt
6ea9e963c4 add context properties to a module expansion
Add 'module-body-inside-context, 'module-body-outside-context, and
'module-body-context-simple? properties to the expansion of a
`module` form. These properties expose scopes that are used by
`module->namespace` and taht appear in marshaled bytecode.
2016-01-13 07:44:31 -07:00
Asumu Takikawa
34f52deeb1 Fix struct error for bad #:constructor-name 2016-01-12 11:21:31 -05:00
Matthew Flatt
417d9b0e73 define-runtime-path: add a #:runtime?-id option
The expression in a `define-runtime-path` form is used in
both a run-time context and a compile-time context. The
latter is used for `raco exe`. In a cross-build context,
you might need to load OpenSSL support for Linux (say)
at build time while generating executables that refer to
Windows (say) OpenSSL support. In that case, `#:runtime?-id`
lets you choose between `(cross-system-type)` and
`(system-type)`.

Merge to v6.4
2016-01-09 09:44:47 -07:00
Matthew Flatt
0d3066d8db adjust doc example to avoid a dependence on "algol60"
Merge to v6.4
2016-01-09 09:44:37 -07:00
Ryan Culpepper
c2e99efefc Post-release version for the v6.4 release 2016-01-09 11:31:31 -05:00
Matthew Flatt
01e889570a net/win32-ssl: enable TLS 1.1 and 1.2 2016-01-09 08:28:20 -07:00
Matthew Flatt
034d2e9531 declare NSSupportsAutomaticGraphicsSwitching
Related to #1193
2016-01-09 06:12:46 -07:00
Matthew Flatt
3e5c889b7d adjust non-JIT application of chaperone with only properties
Don't push elements to the runstack that aren't popped back off. I
can't construct an example that demonstrates a problem, but fix it
just in case.
2016-01-09 06:09:36 -07:00
Matthew Flatt
dafb6d722e Makefile: move SRC_CATALOG definition to ealier
Accommodate nmake.exe, which needs the definition before
the use in `win32-in-place`.
2016-01-08 19:31:46 -07:00
Matthew Flatt
7b4c91ea21 setup/cross-system: configure reader properly 2016-01-08 18:29:10 -07:00
Matthew Flatt
8e162082e1 fix foreign library references for cross-build 2016-01-08 16:40:58 -07:00
Matthew Flatt
30005d41ac repair for cross-build of OS X executables 2016-01-08 16:22:44 -07:00
Matthew Flatt
d4f3dfb3d0 make SRC_CATALOG work with win32-in-place 2016-01-08 10:01:22 -07:00
Matthew Flatt
7bae604711 fix default source catalog for make 2016-01-08 09:53:44 -07:00