Commit Graph

621 Commits

Author SHA1 Message Date
Matthew Flatt
90f371a06a Another makefile CFLAGS/CPPFLAGS adjustment
Missed a spot in c97184b581.
2014-02-20 07:11:30 -07:00
Matthew Flatt
c97184b581 makefiles: adjust definition and handling of CFLAGS and CPPFLAGS
Try to make the makefiles work better if CFLAGS and/or CPPFLAGS
is defined externally.
2014-02-20 07:01:35 -07:00
Matthew Flatt
1d0e4bedde setup/unixstyle-install: fix up only installed ".desktop" files
Closes PR 14354
2014-02-18 06:48:55 -07:00
Matthew Flatt
5ada90bfd2 raco setup: fix the way that "stamp" is compiled for avoided files
Instead of claiing "beginning of time" and an empty SHA1, use
`file-stamp-in-paths` to get a proper stamp.

This fixes a problem when installing built packages into user scope
where the built packages refers to an installation-scope library
and SHA1s need to be checked to fix up file timestamps.
2014-02-15 14:45:14 -07:00
Matthew Flatt
7b4ea16bc0 setup/dirs: fix get-apps-dir
Affects the location of ".desktop" file installation, especially in
a Unix-style installation.
2014-02-15 09:38:25 -07:00
Robby Findler
2e06761531 fix error message 2014-02-14 23:03:00 -06:00
Robby Findler
73bbabe7d4 adjust error message for impersonate-struct to match its actual contract 2014-02-14 23:02:59 -06:00
Robby Findler
0c73784c3c more unexpected strange things broke, so disable new class/c yet again
No joy in mudville. See
http://drdr.racket-lang.org/28175/ for details

Also fix (just introduced) infinite loop in class/c contract-name
implementation and tweak naming stuff a little so tests pass
2014-02-12 11:06:05 -06:00
Robby Findler
53d30648f9 fix class/c contract-name implementation
specifically, fix the case where a field doesn't have
a contract, but just has to exist
2014-02-12 10:15:49 -06:00
Robby Findler
83eab4158a remove dead code
and shrink dependencies correspondingly
2014-02-12 10:10:26 -06:00
Robby Findler
59f57b1bd1 Improvement and bug fixes to the new class/c; try again to re-enable it
Fixed:
- class-field-accessor and class-field mutator,
- the interaction between init args contracts and subclasses,
- object=? on wrapped objects (ie if 'this' flows out and
  is compared to the object thatn 'new' returns)
- contract-name for class/c

Also, the code now uses impersonator properties internally to track a
class that is wrapped (instead of a wrapper struct).  This simplifies
a bunch of places in the code and paves the way for classes that have
a class/c contract to be chapeone-of the original class (altho that
doesn't work yet)
2014-02-12 06:43:23 -06:00
Vincent St-Amour
8e32e6e44c Make flvectors and fxvectors sequences. 2014-02-11 10:27:33 -05:00
Matthew Flatt
ca3757367d fix checking of attempt to impersonte non-struct via mutator 2014-02-10 06:49:26 -07:00
Robby Findler
4d12021dbf disable the new class/c implementation for now
the new implementation doesn't provide eq? guarantees
as often as the old one does, so hold off on this until
we can sort that out. Thanks to drdr for pointing out
the problem:

http://drdr.racket-lang.org/28156/pkgs/drracket-pkgs/drracket-test/tests/drracket/teaching-lang-save-file.rkt
2014-02-08 20:42:37 -06:00
Robby Findler
f26279bfa2 fix bugs in the interaction between subclasses and external class/c contracts 2014-02-08 12:39:02 -06:00
Robby Findler
788ec1d87d fix interaction of mixins and contracted classes 2014-02-08 09:09:49 -06:00
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