Commit Graph

32694 Commits

Author SHA1 Message Date
Asumu Takikawa
4b580a8b8d Fix TR reference typo 2014-02-13 01:34:51 -05:00
Asumu Takikawa
277051fcf1 Document the new prefix function type constructors 2014-02-13 01:20:10 -05:00
Asumu Takikawa
72c9de99e0 Adjust printing of -> and ->*
Use prefix printing in all cases, and add indentation
rules for pretty printing
2014-02-13 01:20:06 -05:00
Asumu Takikawa
36524740c8 Improve error messages from : annotation form
Emit errors in terms of the original user-supplied syntax,
not the helper macro syntax
2014-02-13 00:23:01 -05:00
Asumu Takikawa
8e8df77fc4 Apply All's rules for parentheses omission for : 2014-02-13 00:23:01 -05:00
Asumu Takikawa
7bb537fc82 Do not allow parentheses omission for prefix ->
Also fix multiple -> detection, which was broken
2014-02-13 00:23:01 -05:00
Asumu Takikawa
6ec287f9f6 Use syntax classes to parse ->* type constructors 2014-02-13 00:22:59 -05:00
Asumu Takikawa
54f72050a6 Print ->* style types with ->* constructor
This recognizes the type for a function like
`regexp-match?` and will print it concisely.
2014-02-13 00:22:24 -05:00
Asumu Takikawa
97fe6b82b4 Lift out partition-kws function into util module 2014-02-13 00:20:53 -05:00
Asumu Takikawa
40bf3ad243 Abstract out function that checks ->* style types 2014-02-13 00:20:53 -05:00
Asumu Takikawa
02dd958a69 Add ->* type constructor for optional arguments 2014-02-13 00:20:47 -05:00
Asumu Takikawa
7dc5143f14 Allow prefix function arrow type
Also fix a regression that made arrow type
parsing more permissive than desired due to
missing colon^s
2014-02-13 00:15:35 -05:00
Matthew Flatt
c64142ce24 typos and notes
Thanks to Eli.
2014-02-12 18:47:04 -07:00
Burke Fetscher
ff96904f93 Add the random generation bechmark.
For now it's in the examples directory.
2014-02-12 18:42:48 -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
c07141408f track test case names to help find infinite loops 2014-02-12 11:01:43 -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
6c08632f35 Fix TR optimizer test. 2014-02-11 14:06:21 -05:00
Vincent St-Amour
1e591a5124 Make flvectors and fxvectors subtypes of sequences. 2014-02-11 14:06:21 -05:00
Matthew Flatt
9ca0aa5225 scribble/manual: delay expressions that require collection-based files
This changed make `(require scribble/manual)` work in an executable,
although actually rendering documents requires the "scribble"
collection.
2014-02-11 10:07:03 -07:00
Vincent St-Amour
e2254414d2 Simplify types for flvector and fxvector operations. 2014-02-11 10:28:50 -05:00
Vincent St-Amour
8e32e6e44c Make flvectors and fxvectors sequences. 2014-02-11 10:27:33 -05:00
Matthew Flatt
2f469a06cd scribble/html: add 'index flag in url-roots
This flag can be used to make "file://..."-rendered pages easier
to inspect.
2014-02-11 05:50:04 -07:00
Matthew Flatt
964e9d128f scribble/text: fix contract and docs on with-writer 2014-02-11 05:50:04 -07:00
Asumu Takikawa
11bfdce685 Add in-flvector, in-fxvector to TR base environment 2014-02-11 01:28:31 -05:00
Asumu Takikawa
6791b322ec Add FxVector type to Typed Racket
The `for` forms for fxvectors are future work
2014-02-11 01:23:19 -05:00
Asumu Takikawa
2b9b16b165 Add an ignore-table for TR's optimizer
This allows the typechecker to tell the optimizer or
other downstream analyses what expressions to ignore
because they contain non-typechecked code.

Use it to fix handling of `send`
2014-02-10 23:57:58 -05:00
Asumu Takikawa
c72228dee8 Refactor type-table
Move the provides to the top following the style guide and
add a purpose statement for the module
2014-02-10 23:57:57 -05:00
Matthew Flatt
b9ed6f465e restore "getting started" link
This change adjusts the meaning of the 'getting-started document
category, which was formerly omitted from the start page. Now,
it means a document that is listed at the beginning and at the same
level as other documents.

(Didn't just revert to the old approach to the "getting started"
entry, because it doesn't work right when "racket-index" is installed
without "racket-doc".)

Closes PR 14348
2014-02-10 12:26:43 -07:00
Robby Findler
33c006bd4f fix careless error 2014-02-10 13:19:13 -06:00
Robby Findler
fe6b217433 adjust test/spec-passed so that tests continue when exns are raised
(as these usually indicate failing test cases)
2014-02-10 10:57:46 -06:00
Robby Findler
418f1d015d try to explain enumerator mismatch bug more carefully 2014-02-10 10:57:42 -06:00
Matthew Flatt
ca3757367d fix checking of attempt to impersonte non-struct via mutator 2014-02-10 06:49:26 -07:00
Matthew Flatt
dc0653383f racket/gui: change some eq? to object=?
Some places in the editor API accept an object as an argument
where the object's identity is relevant. In that case, `object=?`
must be used instead of `eq?` to work right with contracts.
2014-02-10 06:25:32 -07:00
Matthew Flatt
2bd8c2d8ed racket/gui: change pasteboard to put location info in snips
Use the field in a `snip%` that is otherwise used by a `text%` owner
to store line information. Reusing the field avoids the need for
an `eq?`-based hash table of snips.
2014-02-10 06:25:32 -07:00
Matthew Flatt
70d91b5516 racket/snip and racket/gui: remove leftover ~ methods
The `~` methods on snip and editor-related classes are not documented
or called from anywhere. They corresponded to destructor methods back
when the classes were ported from C++.
2014-02-10 06:25:32 -07:00
Max New
09f05678a5 Update redex enumeration docs 2014-02-10 06:55:07 -06:00
Max New
1b1dc9cfb8 Redex Enumerator support for mismatch patterns 2014-02-10 06:55:07 -06:00
Max New
3b2b1fb977 Use disjoint sum in redex production enumerators 2014-02-10 06:55:07 -06:00
Asumu Takikawa
71a20b9b0b Add doc examples for define/contract 2014-02-09 11:14:50 -05:00
Asumu Takikawa
a84f11f970 Minor wording fix in Guide 2014-02-09 11:14:50 -05:00
Matthew Flatt
416b680d74 scribble/text: add outputable/c and contract checks
The `outputable/c` contract is currently just an alias for
`any/c`, however, because checking the contract seems to be
too expensive.
2014-02-09 06:39:39 -07:00
Robby Findler
eebabe35ce check context closure language requirements properly
closes PR 14346
2014-02-08 22:50:57 -06:00
Robby Findler
5cbca3741f edit define/contract boundary discussion 2014-02-08 21:16:30 -06: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
Asumu Takikawa
d37158bd76 Add initial prose for define/contract in the Guide
This commit adds a few sections that explain some of
the subtleties of nested contract boundaries.
2014-02-08 21:28:45 -05: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