Commit Graph

1223 Commits

Author SHA1 Message Date
Asumu Takikawa
466b4e2c60 racket/generic: eliminate ctc dependency in private interface
Closes PR 13051
2012-08-28 17:54:35 -04:00
Matthew Flatt
763882f651 add port shortcut for `make-{input,output}-port'
Providing a port instead of a reading or writing procedure
redirects the read/write to the specified port. This shortcut
is kind of a hack, but the run-time system can easily streamline
the redirection when it's exposed this way.

Using the new redirection feature reduces overhead in
`with-output-to-bytes' and `pretty-print'.
2012-08-28 08:54:26 -06:00
Matthew Flatt
cb95a99d68 change `transplant-{input,output}-port' to propagate buffering
Affects derived functions, such as `dup-output-port' and
`relocate-output-port', and uses in `pretty-print'.
2012-08-27 19:44:06 -06:00
Matthew Flatt
310945ee73 racket/pretty: replace internal table with `prop:output-port' structs 2012-08-27 19:44:05 -06:00
Robby Findler
c42fbb68cb refinement to recent commit suggested by Ryan 2012-08-24 12:43:04 -05:00
Robby Findler
e4450e2705 make record-disappeared-uses call syntax-local-introduce
on the identifiers passed to it
2012-08-24 09:34:41 -05:00
Robby Findler
4a0506a24f adjust struct/dc so error say "struct/dc" not "-struct/dc" 2012-08-23 18:59:11 -05:00
Robby Findler
66b78bf488 add a check that struct/c can find all of the selectors in the current scope 2012-08-23 18:59:11 -05:00
Robby Findler
1ad2c75531 add the ability to specify #:parent to struct/dc (and fix struct/c to use it)
closes PR 13049
2012-08-23 18:59:11 -05:00
Matthew Flatt
edd2035f88 racket/draw: fix set-clipping-rect' in record-dc%' 2012-08-23 09:42:34 -06:00
Asumu Takikawa
07119c371d Fix stream bug introduced by generics
Stream generic operations stopped working for lists
since the operations used only the generic dispatcher
instead of the real generic functions.

(Moral of this story: write more tests)
2012-08-22 18:15:25 -04:00
Asumu Takikawa
9a65f9aaf0 Delete trailing whitespace 2012-08-21 16:20:26 -04:00
Asumu Takikawa
965a74453f Add #:forall, #:∀ to contract-out 2012-08-21 16:20:26 -04:00
Asumu Takikawa
a5d1007696 racket/generic: allow impersonator contracts
This enables the use of polymorphic contracts with generic
interfaces and their instances.
2012-08-21 12:43:48 -04:00
Robby Findler
b128ce4719 fix bug in commit 52f18ee37 2012-08-17 17:54:26 -05:00
Robby Findler
52f18ee370 adjust the expansion of class so that it tracks identifiers
that it drops from the expansion (like define/public) by
adding them to the origin syntax property (and sometimes
to disappeared-use; see the add-decl-props function
for details on those that aren't in the origin property)

this means that check syntax will now pick them up
so they'll show up in the blue boxes in drracket

Thanks Matthew, for some helpful advice and
comments on an initial version of the commit.
2012-08-17 17:24:03 -05:00
Asumu Takikawa
5a2c235739 Forge non-existent generic functions like write-proc
Closes PR 13014
2012-08-17 12:27:01 -04:00
Asumu Takikawa
087a13c712 racket/draw contracts: racket -> racket/base 2012-08-17 12:27:01 -04:00
Asumu Takikawa
b977ae339f racket/snip/private/contract: racket -> racket/base 2012-08-16 16:02:43 -04:00
Matthew Flatt
0452bd791d bytecode optimizer improvement
Treat unsafe functional operations (which never raise an
exception) as omitable, which means that simple `let-values'
combinations can be split into `let' bindings, etc.
2012-08-16 13:11:41 -06:00
Matthew Flatt
6e2bb58cce add a #:fill' clause to for/vector' et al. 2012-08-15 09:32:55 -06:00
Matthew Flatt
8a26d83651 adjust `for/vector' et al. to avoid intermediate lists
When a length is not specified, build the result by growing
a temporary vector to hold the results, instead of accumulating
them into a list.
2012-08-15 09:32:55 -06:00
Robby Findler
85b326d1e7 guard path->relative-string/library call properly 2012-08-15 09:13:44 -05:00
Matthew Flatt
7b811bed1b for/vector' and for*/vector' repairs
Closes PR 13029, 13030
2012-08-15 07:41:50 -06:00
Robby Findler
19ff5722d5 improve the error message for cases where there is
a substruct of a struct that got a contract via
provide/contract, and the subconstructor gets a value
that wouldn't have satisfied the original struct's contract

related to PR 12966
2012-08-14 21:14:22 -05:00
Matthew Flatt
b043da6ea6 SIGHUP and SIGTERM -> exn:break:hang-up' and exn:break:terminate'
The default uncaught-exception handler calls `exit' when it receives
one of the new exceptions.
2012-08-13 17:11:20 -06:00
Matthew Flatt
b5f0c97762 fix arity error message for keyword-accepting methods
Internally, there's a `prop:method-arity-error' property that is
used for keyword-accepting methods. The same thing could be
accomplished with `procedure->method', but the new property avoids
a wrapper. It might be nice to expose the property from `racket/base',
but that creates trouble for generating arity errors for keyword-
requiring procedures (i.e., when such a procedure is wrapped), so
keep it provate for now.

Closes PR 12982
2012-08-10 12:59:36 -06:00
Robby Findler
8a0b6549a5 adjust the contract error messages to follow the error message
conventions in 9.2.1 of the reference (altho the messages do
not yet do the extra level of indenting when a field is too
long, nor are there any field names ending in ...)

Also, fix the docs for the #:stronger argument to
make-contract, make-chaperone-contract, and make-flat-contract
2012-08-05 20:09:09 -05:00
Matthew Flatt
7c9e6d7193 improve port progress-evt guarantees; fix for `read-bytes-evt' et al.
A progress evt from a close input port must be initially ready,
and the primitive `peek-bytes-avail!' checks a progress evt
before checking whether the port is closed.

These changes resolve a race in `read-bytes-evt' and related evt
constructors.
2012-08-04 10:19:55 -06:00
Matthew Flatt
f28e8a02d0 fix 'disappeared-use prperty added by `syntax'
Effectively preserve `syntax-original?' of added identifiers.
2012-08-04 10:19:55 -06:00
Ryan Culpepper
1a77f4ee0e added recontract-out 2012-08-03 20:52:35 -04:00
Vincent St-Amour
800a328fe6 Fix documentation for packages and mutable lists.
As suggested by Matthew.
2012-07-31 17:12:30 -04:00
Kevin Tew
04839b39f8 [Distributed Places] fix failing drdr tests 2012-07-31 13:56:38 -06:00
Kevin Tew
6b48d34867 [Distributed Places] added #:thunk and #:named keyword arguments to distributed place creation functions 2012-07-31 11:51:55 -06:00
Matthew Flatt
b0f81b5365 racket/draw: use Cairo in a single-threaded way
This is a follow-up to commit ec6f3fd610. We're still
seeing crashes while rendering the "plot" documentation, and this
change seems to make things work on my machine.
2012-07-30 08:07:49 -06:00
Eli Barzilay
14f25418f3 Fix a retroactive typo. 2012-07-29 18:16:56 -04:00
Robby Findler
6e2fb2ac5e make the code that does the mixin checks work with define-local-member-name
closes PR 11279
closes PR 12397
2012-07-29 09:43:37 -05:00
Matthew Flatt
d8d043d678 racket/draw: fix potential png bug 2012-07-28 11:23:22 -06:00
Vincent St-Amour
52439d528b Move mutable list functions to the compatibility collect.
Mutable pair functions from racket/base are not moved.
2012-07-27 16:49:05 -04:00
Vincent St-Amour
ab2226a19e Add a `compatibility' collect for compatibility with other languages.
It includes `defmacro' and Chez-style modules (packages).
2012-07-27 16:49:05 -04:00
Asumu Takikawa
2dcf060774 Move engines from mzlib/thread to racket/engine
(they were previously called "coroutines" but
 the term "engine" is less ambiguous)
2012-07-26 14:47:29 -04:00
Matthew Flatt
70ef4e6e57 racket/port: possible repair for `read-bytes-evt'
Also restore and add some tests.

Merge to v5.3
2012-07-26 08:39:58 -06:00
Matthew Flatt
ca3272bd45 racket/port: fix `make-limited-input-port' handling of progress evts
Merge to v5.3
2012-07-25 21:37:58 -06:00
Matthew Flatt
71045e255c fix `for/vector' to really stop at size
Avoids an infinite loop for an infinite sequence, for example.
Also, expand via `for/fold/derived' to improve error reporting.
2012-07-25 20:07:23 -06:00
Robby Findler
cdee10e2c0 fix error message wording 2012-07-25 03:02:30 -05:00
Matthew Flatt
da66d4d559 adjust `case' expansion to work with Typed Racket
Relies on the new ad hoc optimization of `hash-ref' to preserve
performance.
2012-07-23 21:41:49 -05:00
Matthew Flatt
5b6c65b6c9 tweaks to `case' implementation
Leave `eqv?' specialization to the compiler, generate
constants instead of vector and hash-table allocations,
and use a hash table for many values other than symbols,
keywords, and fixnums.
2012-07-23 18:56:33 -05:00
Jon Zeppieri
7ccf0efce9 new 'case' implementation
Based on Clinger's "Rapid Case Dispatch in Scheme"
2012-07-23 18:56:33 -05:00
Eli Barzilay
18883681a2 Convert all uses of (integer-in 0 255) to `byte?'. 2012-07-22 13:00:05 -04:00
Asumu Takikawa
40ea2befce Missed one Rackety in commit 3582b57 2012-07-21 13:38:18 -04:00
Asumu Takikawa
2f891c5d39 Missing file for commit 3582b57
(my apologies to any future git bisect-ers)
2012-07-20 17:58:31 -04:00
Eli Barzilay
4bd42606bc Some simplification of process error message contracts. 2012-07-20 12:57:28 -04:00
Matthias Felleisen
6768136144 docs for revised system error message completed 2012-07-20 12:30:30 -04:00
Matthias Felleisen
f2b9cdaadd fixed a somewhat awkward error message that made 'system' look awkward 2012-07-20 10:38:05 -04:00
Asumu Takikawa
f4300df8eb Restore prop:force guard.
(this is desirable if this property is exposed, which
 could happen if/when we define gen:force)
2012-07-19 22:46:14 -04:00
Asumu Takikawa
e14c5d61e9 Allow guards for impersonatable struct type properties 2012-07-19 22:46:14 -04:00
Robby Findler
774e254f3c fixes the "not used in definition context" error in define/contract
related to PR 12863, but doesn't solve the infinite loop problem
2012-07-19 19:54:58 -05:00
Eli Barzilay
6565538b09 Disable the #:before-first' and #:after-last' functionality in `add-between'.
Leave it working in splicing mode.  I prefer doing that over always
splicing them, since that would make a less uniform interface, so I
rather keep all options open.  There is no longer a `#:nothing' keyword,
which is the main point of this downgrade.

(See mailing list discussion on "no-argument" for the reason.)
2012-07-18 22:28:41 -04:00
Matthew Flatt
949d12e2c6 revert use of lazy-require' in racket/match' implementation
Using `lazy-require' under `begin-for-syntax' expands to a use of
`define-runtime-path' under `begin'for-syntax'. Unfortunately,
`define-runtime-path' doesn't yet work with `raco exe' when it
appears under `begin-for-syntax'. Although `define-runtime-path'
should be fixed, it may take a while. Meanwhile, reverting the
change allows programs that require `racket/gui/base' to work
with `raco exe'.

There's another `lazy-require' under `begin-for-syntax' that
doesn't seem to cause the same trouble, though.
2012-07-17 15:32:42 -06:00
Matthew Flatt
3ded3934ee doc fixups for struct' variants in scheme/unit', etc. 2012-07-17 11:00:46 -06:00
Sam Tobin-Hochstadt
8358420fcc Use unstable/lazy-require to dynamically-load the compile-time of match. 2012-07-16 16:39:26 -04:00
James Swaine
b987be068e Move racket/future/visualizer, racket/future/trace --> future-visualizer, future-visualizer/trace 2012-07-16 12:23:46 -05:00
Matthew Flatt
f729c6441c racket/draw: fix gl-context<%> locking
The optional arguments for `call-as-current' for `gl-context<%>'
were not implemented, and the locking implementation didn't match
the documentation in other ways.
2012-07-13 07:45:21 -06:00
Jay McCarthy
0da1c82584 Changing contracts on gl-context<%> and applying it to the gl-context% object.
I updated and noticed that this was now failing because interface
contracts are not check structurally (any more?). Once I applied the
interface, the contract application failed because the documented two
additional arguments (alternative and enable-breaks?) are not actually
accepted. I look through all the implementations of gl-context% and
none of them accept these. Should I change the documentation or is
this a bad backwards incompatibility with the older versions?
2012-07-12 19:32:17 -04:00
Kevin Tew
d8861a6947 [Distributed Places] place functions now work with distributed places 2012-07-12 11:41:47 -06:00
James Swaine
fe26c07637 Fix future visualizer not showing requested size for allocation events 2012-07-12 10:05:22 -05:00
Asumu Takikawa
403aaac7d4 Moved some mzlib library implementations to racket
The libraries moved were:
  - mzlib/control      => racket/control
  - mzlib/date         => racket/date
  - mzlib/deflate      => file/gzip
  - mzlib/inflate      => file/gunzip
  - mzlib/port         => racket/port
  - mzlib/process      => racket/system
  - mzlib/runtime-path => racket/runtime-path
  - mzlib/shared       => racket/shared
  - mzlib/unit         => racket/unit
  - mzlib/unit-exptime => racket/unit-exptime
  - mzlib/zip          => file/zip

The old modules in mzlib are now pointers to the
new modules. These are all modules that were already
redirected in the documentation.
2012-07-11 18:26:10 -04:00
Robby Findler
dcdc2aea02 allow promises to be impersonated and thus allow impersonator contracts
related to PR 12861
2012-07-10 22:23:26 -05:00
Eli Barzilay
3028099eae Remove apparently redundant use of multiple values from `stream-map'. 2012-07-10 22:52:18 -04:00
James Swaine
55b11bf365 Fix arity mismatch error in timeline-events 2012-07-10 11:45:57 -05:00
James Swaine
dbec8765e3 Futures visualizer - reorganize modules, expose formerly private stuff as public (and docs) 2012-07-10 10:55:19 -05:00
James Swaine
2b2070f7b2 Clean up code in futures visualizer
Remove mouseover display for creation graph nodes (for now)
2012-07-10 10:54:43 -05:00
James Swaine
39f42b753d Futures visualizer - show name of jitted function for on_demand events 2012-07-10 10:54:43 -05:00
Burke Fetscher
7972adc97a Futures visualizer - Various bug fixes 2012-07-10 10:54:43 -05:00
James Swaine
919d359e9a Make sure future log buffers are cleared when starting to
trace for the futures visualizer
2012-07-10 10:54:42 -05:00
James Swaine
b6f71ec4be Add futures visualizer, improvements to futures logging 2012-07-10 10:54:42 -05:00
Asumu Takikawa
9b46e7ab7d racket/draw: Use interface contracts
Also removed `defclass` based runtime checks where
appropriate.
2012-07-09 18:04:33 -04:00
Asumu Takikawa
80ca36e6ab racket/draw: clean up object name hacks
The only observable impact of this change is that
`the-color-database` will now print as
`(object:color-database% ...)` instead of
`(object:color-database<%> ...)`. The former makes more
sense anyway, given that you can't have an instance of
an interface. If we really want the latter though,
we can add `object-rename` for this purpose.
2012-07-09 17:15:33 -04:00
Robby Findler
467bde3a25 fixed promise/c so it creates chaperone contracts when its
argument is a chaperone contract

closes PR 12861
2012-07-04 18:41:55 -05:00
Matthew Flatt
eeb5f2778a fix for/lists' to use the Racket-implemented reverse' 2012-06-28 14:32:01 -06:00
Matthew Flatt
f05e6fa9c0 fix and improve some syntax-error messages for `struct' 2012-06-27 13:38:36 -06:00
Matthew Flatt
ec6f3fd610 racket/draw: avoid callback-based PNG writing
Doc rendering has been occasionally crashing in Pixman/Cairo. It might
have something to do with a non-atomic callback, so let's try avoiding
that, first. (If that doesn't work, the next step is to avoid using
Cairo in a multi-threaded way, for which this is a first step, too.)
2012-06-27 12:29:52 -06:00
Asumu Takikawa
095d47fc3d racket/contract: rename prompt/c & continuation-mark/c
The new names are `prompt-tag/c` and `continuation-mark-key/c`
to keep the names consistent with the values that are being
contracted. Also updated the HISTORY file.
2012-06-26 21:11:58 -04:00
Asumu Takikawa
fcab398081 racket/class: add send+ for functional style OO 2012-06-26 21:11:58 -04:00
Eli Barzilay
0c78194267 Adjust the keyword names for string-join' following the change to add-between'. 2012-06-26 13:45:16 -04:00
Asumu Takikawa
de5c756d2e Added continuation-mark/c 2012-06-26 13:39:36 -04:00
Matthew Flatt
a6e263741a racket/list: adjust `add-between' keyword handling
Add a `#:nothing' argument so the no-value value can be
made explicit --- based on discussion with Eli, but pending
further review.

Also, renamed `#:first' to `#:before-first' and `#:last' to
`#:after-last' to be more clear, more parallel ro `#:before-last',
and avoid a collision with prominent function names.
2012-06-26 11:00:11 -06:00
Asumu Takikawa
46e66978ee racket/generic: fix generated contract name 2012-06-25 21:41:50 -04:00
Asumu Takikawa
552d6de953 racket/generics: add contract combinator
The generics library now generates a `name/c` macro
for a generic interface `name`. The combinator can be
used to contract instances (or constructors) of a
generic interface across standard contract boundaries.
2012-06-25 20:33:48 -04:00
Kevin Tew
89c7ba6493 Fix *channel-get's use of continuations
Cleanup map-reduce.rkt
Cleanup rmpi.rkt
Added create-place-node and distributed-place-wait
2012-06-25 14:03:05 -06:00
Kevin Tew
1d480a63a2 Fix rmpi argument names, simple map-reduce impl 2012-06-25 14:03:05 -06:00
Matthew Flatt
91791983aa fix indentation of some error messages
`raise-syntax-error' and `raise-arguments-error' do not
try to adjust indentation, anymore, because it's too confusing
2012-06-23 02:20:59 -07:00
Eli Barzilay
f0d856ab7a Extend string-join' in a similar way to add-between'.
(This is actually the extension that made me do the other too.)
2012-06-23 04:44:20 -04:00
Eli Barzilay
728687d9dc Extend `add-between'.
New keywords: `#:first', `#:before-last', `#:last', and `#:splice?'.
2012-06-23 04:44:20 -04:00
Eli Barzilay
7ec9975736 Move regexp-replaces' from ffi/unsafe' to `racket/private/string'.
* The old function was removed completely, people will get it from
  `racket/base' anyway.

* I also removed its documentation.  I thought about leaving a note in,
  but if `define-ffi-definer' is the preferred style, then this should
  be done when there's a way to make `define-ffi-definer' use it.  (Eg,
  some new #:keyword that adds a way to change the defined name.)

* Note that the function is added to `racket/private/string' and not to
  `racket/string' because the latter deals only with strings, and the
  new function accepts byte strings too.  It might be better to start a
  new `racket/regexp' module for these functions.
2012-06-22 14:27:14 -04:00
Eli Barzilay
7b4772e120 Extend `regexp-replace*' to accept a start/end-position.
Note that this pushes the `ipre' argument to the end.
2012-06-22 12:00:48 -04:00
Eli Barzilay
7d6e79023c Random pickiness.
Spaces at EOFs, indentation, etc.
2012-06-22 12:00:48 -04:00
Matthew Flatt
1dc0072d03 further error message convention refinements
Add extra intitial-message lines, use "..." on a field name
to indicate that it could reasonably be hidden by default,
and refine some existing messages.
2012-06-22 09:47:59 +08:00
Robby Findler
f38024d4ed fix struct/c for the case that the selectors are not available at the use site.
closes PR 12854
2012-06-20 11:23:20 -05:00
John Clements
c01e8c1564 refactored to reduce stepper dependencies 2012-06-19 23:51:59 -07:00
Eli Barzilay
fac76a56f8 Some style things. 2012-06-18 19:23:21 -04:00
Matthew Flatt
16d877d45e improve `for' body syntax-error reporting
Closes PR 12850
2012-06-14 15:11:19 +08:00
Asumu Takikawa
5aa76c27a9 Support multiple values for control proxy functions 2012-06-11 18:18:37 -04:00
Asumu Takikawa
1cce922d97 Add prompt tag contracts using control proxies 2012-06-11 18:18:37 -04:00
Neil Toronto
8f840bd07b Fixed erroneously imprecise type for +nan.f literal (now Single-Flonum-Nan)
Types for nan?, infinite?, pi.f, exact-round, exact-floor, exact-ceiling,
exact-truncate, degrees->radians, radians->degrees

Extended tc-random-testing: generates exact integers and rationals now

Fixed types of sinh, cosh and tanh to account for underflow and NaNs
2012-06-09 17:46:04 -06:00
Robby Findler
41a890df03 fix bug in the ->i parser (picked up the wrong identifier; wrote #'id when
id wasn't really around anywhere)

closes PR 12829
2012-06-07 10:45:18 -05:00
Neil Toronto
b7fea6be5a Fixed contracts on exact-round, etc. 2012-06-06 16:16:52 -06:00
Neil Toronto
b7ff3eb1fb Made sinh return zero inputs unchanged (fixes failing test case) 2012-06-06 10:52:29 -06:00
Matthew Flatt
7a9c8e5d40 racket/gui win32: fix East Asian font problem
When the theme-specified default font has a localized name,
using it as a Pango faily name doesn't work, with the result that
text on controls could be truncated. Get a Pango-friendly
name by converting a LOGFONT to a Pango font description and
getting the name from the font description.
2012-06-06 13:25:14 +08:00
Neil Toronto
a713ca8a8b Added nan?, infinite?, degrees->radians, radians->degrees, exact-round, exact-floor, exact-ceiling, exact-truncate to racket/math
Altered TR's random arithmetic testing to generate single-flonums and very small flonums; fails now because of erroneous types

Fixes to sgn, sinh, cosh, and tanh:
 * preserve single-flonum-ness
 * correct zero sign (-0.0) for negative return values that are smaller than epsilon
 * correct behavior with NaN and infinite inputs
2012-06-05 22:40:44 -06:00
Matthew Flatt
3742a9da8f adjust font-substitution hack for Mac OS X 2012-06-05 17:53:26 +08:00
Robby Findler
b7b566aefc adjust redex error message tests to match singular/plural fixes in
the error raising code, except in one place where I think the
error raising code was correct to have the plural form, so I changed
it back instead of changing the Redex test suite to match
2012-05-31 10:56:14 -05:00
Justin Slepak
2f23f1b6b3 Allow vector-append to take zero arguments
Makes vector-append behave more like append, sequence-append, etc.
2012-05-29 16:56:38 -04:00
Matthew Flatt
e9070f89c7 terminology correction 2012-05-29 13:57:32 -06:00
Matthew Flatt
0c303ca9cd racket/cmdline add `#:ps' clause 2012-05-29 11:00:43 -06:00
Matthew Flatt
73ce5a4767 racket/serialize: fix for submodules
Closes PR 12795
2012-05-27 14:39:51 -06:00
Matthew Flatt
a137459b65 more error-message conversions and repairs 2012-05-27 11:29:21 -06:00
Matthew Flatt
6eeb8fccbd more error-message conversion 2012-05-27 09:03:19 -06:00
Matthew Flatt
00ef7da640 racket/draw: background and text colors in `record-dc%'
Also, improve docs to clarify how the recorded settings interact with
the target DC's settings.
2012-05-27 06:38:30 -06:00
Matthew Flatt
8ab87a9fcc racket/class: new error message convention 2012-05-26 21:08:21 -06:00
Matthew Flatt
b7a8c0185b correct a `raise-argument-error' conversion mistake 2012-05-25 18:37:29 -06:00
Matthew Flatt
d6774d5d54 racket/sandbox: add sandbox-propagate-exceptions 2012-05-25 18:37:29 -06:00
Matthew Flatt
9e7548de61 new error message convention
Add `raise-argument-error', `raise-result-error', `raise-arguments-error',
and `raise-range-error'.

The old convention was designed for reporting on a single (sometimes very
long line). The new convention is

 <name>: <short message>
   <field>: <detail>
   ...

If <detail> is long or itself spans multiple lines, then it may
also use the form

   <field>:
    <detail>

where each line of <detail> is indented by 3 spaces.

Backtrace information is shown as a multi-line "context" field.
2012-05-25 15:08:05 -06:00
Robby Findler
7156b0391b fix the contract context messages for the case of ->*'s #:rest arguments 2012-05-25 09:14:09 -05:00
Asumu Takikawa
a22633e348 Rename generics => generic. 2012-05-24 16:51:14 -04:00
Vincent St-Amour
11dc825126 Forge gen:equal+hash and gen:custom-write to provide them from racket/base. 2012-05-24 16:51:13 -04:00
Vincent St-Amour
c21813cebf Add gen:custom-write.
No docs yet.
2012-05-24 16:51:13 -04:00
Vincent St-Amour
3210cd1d12 Remove vestigial set of parens and fix docs for new syntax. 2012-05-24 16:51:12 -04:00
Vincent St-Amour
390cd02b52 Have a generic interface for equal+hash.
Currently provided by racket/struct, for lack of a better place.
2012-05-24 16:51:11 -04:00
Vincent St-Amour
cc7ae795ea Remove the coercion function code.
Didn't turn out to be useful.
2012-05-24 16:51:10 -04:00
Asumu Takikawa
8ac82eaf58 Use simplified interface for define-generics
Also removed `generics`
2012-05-24 16:51:09 -04:00
Vincent St-Amour
f11861f60a Have method definitions be its own keyword in the struct form.
Struct properties are hidden from users.
2012-05-24 16:51:08 -04:00
Vincent St-Amour
3bfaa2b00b New naming convention for generics names. 2012-05-24 16:51:07 -04:00
Asumu Takikawa
ec2563fdd3 Add comment about coerce-method-table 2012-05-24 16:50:45 -04:00
Asumu Takikawa
3a93df5566 Use racket/generics for extensions to racket/stream 2012-05-24 16:50:44 -04:00
Vincent St-Amour
0b0473d228 Allow generics to be attached to existing struct properties. 2012-05-24 16:50:44 -04:00
Vincent St-Amour
991cb5f371 Hide #:coerce-method-table from the public generics API. 2012-05-24 16:50:43 -04:00
Vincent St-Amour
8997379f35 Split interface and implementation of the generics library. 2012-05-24 16:50:43 -04:00
Vincent St-Amour
448ad27a37 Move generics to racket/generics.
After discussion with Eli.
2012-05-24 16:50:42 -04:00
Vincent St-Amour
e7e66ce41c Implement coercion for method tables.
For backwards compatiblity, method tables can be generated from old APIs.
2012-05-24 16:31:32 -04:00
Vincent St-Amour
ff416ca2ac Remove dead code in racket/private/dict. 2012-05-24 16:31:32 -04:00
Vincent St-Amour
36980c262f unstable/generics: define-methods' -> methods'
`define-methods' is a bad name for an expression form.
2012-05-24 16:31:31 -04:00
Asumu Takikawa
e4a3001af6 Reimplement racket/dict using generics. 2012-05-24 16:31:31 -04:00
Eli Barzilay
f55eba70c0 Just have string-replace' now, with an #:all?' keyword (defaulting to #t). 2012-05-24 10:40:20 -04:00
Eli Barzilay
37a1c0af91 Add string-replace' and string-replace*'.
Committed as a checkpoint, since I convinced myself that a single
function with a keyword is better, given that the rest of the simplified
functions operate on the whole string.
2012-05-24 10:40:20 -04:00
Eli Barzilay
784857e9fa Add `string-split'. 2012-05-24 10:40:20 -04:00
Eli Barzilay
29beae55c1 Redo string-trim' and string-normalize-spaces'.
This is following the mailing list discussion.  In addition get
`string-join' more in-line with these by making its `sep' argument
default to a space.
2012-05-24 10:40:20 -04:00
Asumu Takikawa
9400432903 Fix class construction bug introduced by abstracts
Merging changes with interface contracts introduced
a bug due to a missing argument to class-make.
2012-05-22 18:34:45 -04:00
Asumu Takikawa
150548dc78 Better error message for abstract classes. 2012-05-22 16:00:54 -04:00
Asumu Takikawa
f4f6f8c52c For abstracts, the super method just calls void.
Since mixins rely on super calls to possibly abstract
methods, we want to ensure that the super call will not
error when it gets to an abstract method. However,
external method calls should still raise an error for
abstract methods.
2012-05-22 16:00:42 -04:00