Commit Graph

605 Commits

Author SHA1 Message Date
Matthew Flatt
8a14fbd5b1 raco pkg: fix strip of package without "info.rkt" 2014-02-07 22:36:01 -07:00
Robby Findler
a1293d4284 add forgotten file 2014-02-07 23:17:46 -06:00
Robby Findler
e47c0efa1f change class/c to keep a vector of wrapper methods, not a hash table
this change is mostly motivated by improving how generics work on
contracted objects.

Also fix dynamic-send

TR's optimizer seems to get angry at the new send expansion, so
disable optimizations auto-language.rkt and insert-large-letters.rkt
(for now)
2014-02-07 22:18:56 -06:00
Ryan Culpepper
ed5a4ff619 improve error message for bad attribute values
closes PR 14340
2014-02-06 23:28:52 -05:00
Vincent St-Amour
741a11a1b7 Fix for to propagate source locations in more cases.
Thanks to Tobias Hammer for the patch.

Closes PR 14343.
2014-02-06 15:54:26 -05:00
Vincent St-Amour
a2204a0740 Expose missing blame parties to the contract profiler.
Done by pairing up incomplete blame objects with the missing blame party
before attaching it to the continuation mark. Other approaches were
explored (having a separate mark for each, imperatively updating blame
objects to add missing blame parties, etc.), but pairing had the least
overhead.
2014-02-06 15:01:29 -05:00
Robby Findler
6535d33db5 unbreak racket: disable the new class/c in favor of the old one (for now) 2014-02-05 15:02:53 -06:00
Robby Findler
4f65d57f80 Adjust class/c to use the new strategy for the external
parts of a contract (field, method, init, absent clauses)

Still to do:

- delay the creation of the class that checks internal contracts
  until a new derived class is created from a contracted class.

- extend the new implementation so it handles interface contracts
  (currently the old version of the external contracts is still there,
  just to handle this case)

The first of those is what (I hope) will bring down the memory
footprint for class/c contracts.
2014-02-05 13:42:03 -06:00
Asumu Takikawa
41fa9dfac9 Add contracts for synchronizable events 2014-02-05 11:37:53 -05:00
Asumu Takikawa
25907189f3 Fix evt chaperones for multiple-valued evts 2014-02-05 11:37:53 -05:00
Matthew Flatt
27f62a591e macro expander repair
Fix problem with sealing annotations on module contexts generated
to record a context identity.
2014-02-04 20:57:37 -07:00
Matthew Flatt
0eb9975f66 JIT: fix fast path for with-continuation-mark
Incorrect bitwise shift caused a fast-path test to be too
conservative.
2014-02-04 16:29:46 -07:00
Matthew Flatt
f801fe0736 places: improve and extend logging of place-related events 2014-02-04 14:27:52 -07:00
Ryan Culpepper
0b934997b3 module->namespace: accept module-path-indexs and resolved-module-paths 2014-02-04 11:11:57 -05:00
Matthew Flatt
756b110287 makefile: add dependency of ".app"s "Info.plist" on Racket version
The "Info.plist" file in an ".app" embeds the version number.
2014-02-04 06:46:54 -07:00
Vincent St-Amour
b71a214b45 Comment typo. 2014-02-03 14:04:32 -05:00
Robby Findler
f774a9098e fix error message for set-field! and dynamic-set-field! 2014-02-03 10:06:06 -06:00
Robby Findler
a75e770534 add missing provide 2014-02-02 22:00:10 -06:00
Robby Findler
7bec967c0d adjust class/c so the expansion is slightly smaller
that is, instead of (class/c [m (->m integer? integer?)] n) turning
into a call to a constructor that has calls to coerce-contract for
the 'm' method, it instead expands the 'n' method contract into an
identifier reference (that isnt' bound to #f, since #f is coercable to
a contract) and the 'm' contract argument just sits there in the expansion
2014-02-02 21:34:30 -06:00
Robby Findler
2989918a4f break up class/c's representation into the internal and external parts
The main change in this commit is to refactor the class/c projection
such that it actually build two classes internally when only a single
class/c is applied to a single class. The goal is to further adjust
class/c so that the projection corresponding to the external method
contracts goes away (to be replaced by a new strategy) and the
projection corresponding to the internal method contracts gets delayed
using some as-yet-underminded strategy that avoids creating the new
class until someone actually creates a subclass.

This commit, but itself, however is a performance lose to the tune of
about 2 megabytes in DrRacket's startup footprint. Hopefully this
doesn't last too long.
2014-02-02 08:28:39 -06:00
Robby Findler
ced62b8975 add missing export 2014-01-30 22:42:48 -06:00
Robby Findler
a12ebdeff9 move the class/c implementation into its own file 2014-01-30 16:32:05 -06:00
Matthew Flatt
24025fe5ed unix-style install: preserve build stamp
Instead of preserving specific configuration entries, it's probably
better to preserve all of them that are not specifically replaced.
I'm going with the simpler change for now, though.
2014-01-29 18:12:39 -07:00
Matthew Flatt
ed007e0fa0 fix another potential overflow in fixnum expt
This commit is a follow-up to e96d592735. The bug fixed this time is
more subtle, because the overflowing computation is never used, but
that doesn't matter in terms of avoiding undefined behavior.

Thanks for Pascal Cuoq and John Regehr.
2014-01-29 16:26:04 -07:00
Matthew Flatt
b07fa81950 unix: fix gracket-based launcher creation
The launcher was always create assuming a specific relative path
from the "bin" drectory to the "lib" directory, but that relative
path changes in a Unix-style install.
2014-01-27 08:20:58 -07:00
Matthew Flatt
e96d592735 expt: avoid undefined integer overflow in fixnum implementation
Also, extend fixnum fast path to work more often in 64-bit mode.

More review would be appreciated to help ensure that the revised
implementation avoids undefined behavior in C.
2014-01-26 21:02:28 -07:00
Matthew Flatt
58b898bc13 fix in-directory for a non-#f argument, not inline for clause
Closes PR 14312
2014-01-26 19:15:03 -07:00
Matthew Flatt
bc018585ac avoid a malloc(0)
This is unlikely to fix any problems, but I think malloc(0) is not
specified by C99.
2014-01-26 18:38:40 -07:00
Matthew Flatt
791ec4cfb1 recognize "1.0.1e" for openssl libraries 2014-01-26 18:38:40 -07:00
Matthew Flatt
6c25579b6b configure test for powl(), which is used for extflonums 2014-01-24 07:18:30 -07:00
Matthew Flatt
81ef1c876b on BSDs, avoid seconds->date conversion that won't fit
On FreeBSD and related systems, calling localtime() on an out-of-range
value (e.g., where the year doesn't fit in 32 bits) still returns a
tm pointer, instead or returning NULL for an error. To avoid this
problem, restrict the argument to 51 bits (which seems like a lot
of bits, but is still confortably away from the overflow point).

Closes PR 14305
2014-01-24 07:18:13 -07:00
Matthew Flatt
018af7e809 remove redundant comparison
Closes PR 14296
2014-01-24 07:11:53 -07:00
Eli Barzilay
c61a549840 2013 -> 2014 2014-01-21 15:02:21 -05:00
Matthew Flatt
bfda0665de add syntax/wrap-modbeg 2014-01-15 10:31:11 -07:00
Matthew Flatt
780d6ae566 x86_64: minor bignum performance boost
Incorporate a few x86_64 assembly routines from the latest GMP,
which provides a small speed boost for operations such as bignum
multiplication and division.
2014-01-15 10:31:11 -07:00
Eric Dobson
f0ebfee9ac Make parallel compile not call exit.
Closes PR 13373.
2014-01-13 09:34:40 -08:00
Robby Findler
4d123bb26d fall back to the slow path when application expression looks wrong
closes PR 14279
2014-01-12 23:37:09 -06:00
Robby Findler
04628e3516 remove accidentally left behind logger 2014-01-12 23:37:08 -06:00
Matthew Flatt
dc8d2fb7fc fix memory problem with places & built-in structure types
Thanks to Asumu for tracking down the problem.
2014-01-10 06:54:37 -06:00
Matthew Flatt
33b7f6f92f package binary strip: work on "info.rkt" files that use `(module ....) 2014-01-09 14:07:26 -06:00
Matthew Flatt
ba99bba668 net/http-client: restore use of abandon
The difference between `abandon` and `close-output-port` seems to
matter for downloading PLaneT packages on some networks. Using
`abandon` does not seem to create any problems now that an extra
"\r\n" is not incorrecty included in PUT/POST requests.
2014-01-08 23:08:14 -06:00
Robby Findler
a7304d18eb add some missing custom printers (to recursive-contract) 2014-01-08 13:42:53 -06:00
Matthew Flatt
409c8ef512 racket/enter: add dynamic-enter! 2014-01-07 15:07:39 -07:00
Matthew Flatt
a7bc240b3c setup/[main-]collects: doc and error-message repairs
Closes PR 14222
2014-01-07 14:09:10 -07:00
Matthew Flatt
4fe1673475 fix (more) closure type tracking for a procedure with only an unused rest arg
Fixs the repair in fe12a32dc3

Relevant to PR 14259
2014-01-07 10:22:58 -07:00
Matthew Flatt
331825700b fix bad interaction among JIT, 3-D macro, and bytecode reader
Closes PR 14186
2014-01-07 10:22:58 -07:00
Eric Dobson
54c50dd8d2 Add caching for collects-relative->path. 2014-01-06 21:16:26 -08:00
Eric Dobson
10fa612681 Minor cleanups to compiler. 2014-01-06 21:16:26 -08:00
Scott Moore
26cb1f7ce6 path-element? should disallow '.' and '..'
Fix `path-element?` to check whether the name returned by split-path
is a path or a special entry. This behavior matches both the documentation
of `path-element?` and the implementation of `string->path-element`.
2014-01-06 19:33:44 -07:00
Matthew Flatt
ff478f3173 allow optimizer to move mcons and box-immutable
Suggested by Gustavo Massaccesi.
2014-01-05 08:54:52 -07:00