Commit Graph

1223 Commits

Author SHA1 Message Date
Matthew Flatt
702df4b07a racket/gui/dynamic: make gui-dynamic-require' pull from racket/gui/base'
It was pulling from `scheme/gui/base', instead. The one from `scheme/gui/base'
is now different and still pulls from `scheme/gui/base'.

This could break some programs that accidentally depended on `scheme/gui/base'
exports from `gui-dynamic-require', but it's more likely to fix problems.
2012-11-19 08:13:48 -07:00
Kevin Tew
d1a02d3fe2 [Distributed Places] fix partit function 2012-11-16 15:25:52 -07:00
Kevin Tew
46dc0357ba [Places] remove unused code 2012-11-13 10:22:13 -07:00
Matthew Flatt
910a7dc8e7 restore a use of `lazy-require'
This change reverts commit 949d12e2c6, now that `lazy-require'
is supposed to work.
2012-11-11 09:38:16 -07:00
Matthew Flatt
740e5007bb racket/sandbox: fix module-path to path coercion for submod 2012-11-11 09:38:16 -07:00
Matthew Flatt
50af874a7a document `define-runtime-path' limitation
Also, log a warning when it is used in a position where it
doesn't work rght with the executable creator. I didn't make
this case an error, because `define-runtime-path' can still
work in that case as long as no standalone executable needs
to be created.
2012-11-11 09:38:16 -07:00
Claire Alvis
2f426943f0 Implementation of #:defaults keyword for define-generics 2012-11-09 20:14:56 -05:00
Eli Barzilay
672910f27b Lots of bad TAB eliminations.
I started from tabs that are not on the beginning of lines, and in
several places I did further cleanings.

If you're worried about knowing who wrote some code, for example, if you
get to this commit in "git blame", then note that you can use the "-w"
flag in many git commands to ignore whitespaces.  For example, to see
per-line authors, use "git blame -w <file>".  Another example: to see
the (*much* smaller) non-whitespace changes in this (or any other)
commit, use "git log -p -w -1 <sha1>".
2012-11-07 11:22:20 -05:00
Eli Barzilay
39a0ab60a7 Some more #lang racket' -> #lang racket/base' conversions
(And some other related minor racketisms.)
2012-11-07 08:03:44 -05:00
Robby Findler
bc59cc43d4 fix the draw contract (and change some one-of/c's to or/c's) 2012-11-06 21:55:36 -06:00
Stevie Strickland
7acfc80d79 Fix bogus method name in interface contract errors.
Closes PR 13238
2012-11-05 18:54:57 -05:00
Asumu Takikawa
68dd17bf08 Make control contracts play nice with has-contract? 2012-11-05 18:08:10 -05:00
Matthew Flatt
f21280e24d fix problems with non-parallel places
The implementation of message passing in thread-simulated
places had not kept up with the parallel implementation.
2012-11-05 10:48:45 -07:00
Jay McCarthy
2274e23394 Fix error with min-width and fractions 2012-11-01 11:13:02 -06:00
Robby Findler
b7681e0807 adjust racket/engine so that it logs the time that various things happen
(and remove the commented out printfs that seem to be printing
out that same information)
2012-10-29 06:45:12 -05:00
Asumu Takikawa
0d30c43a68 Add call/cc contracts to prompt-tag/c 2012-10-27 11:06:17 -04:00
Matthew Flatt
5f30cc87ea track information about `struct' bindings during compilation
This tracking allows the compiler to treat structure sub-type
declarations as generating constant results, and it also allows
the compiler to recognize an applications of a constructor or
predicate as functional.
2012-10-27 07:58:56 -06:00
Stevie Strickland
717cf332b6 Don't copy chaperoned immutable vectors. 2012-10-24 19:11:03 -07:00
Matthew Flatt
f43172128b fix syntax checking for `case'
Merge to v5.3.1
2012-10-24 13:18:53 -07:00
Danny Yoo
323fc273ad expanson -> expansion 2012-10-18 18:19:57 -04:00
Matthew Flatt
274d004546 racket/draw: fix problems with monochrome PNGs
Merge to v5.3.1
2012-10-18 10:01:20 -06:00
Ryan Culpepper
67d901ccc4 fix define-for-syntax within splicing-syntax-parameterize 2012-10-16 17:58:59 -04:00
Asumu Takikawa
df594d3b3b Move define/match to racket/match 2012-10-14 14:39:36 -04:00
Matthew Flatt
a414b34b14 fix `vector-append' error reporting
Closes PR 13151

Merge to v5.3.1
2012-10-09 21:13:22 -06:00
Kevin Tew
40ca07ee7c [Distributed Places] use racket -lm to launch new racket nodes instead of -tm 2012-10-09 14:29:44 -06:00
Matthew Flatt
b4b723df4e fix `in-directory'
Closes PR 13163
2012-10-04 06:40:36 -06:00
Matthew Flatt
64bac4e573 racket/draw: fix return value of load-file' from bitmap%' 2012-10-01 18:14:19 -06:00
Matthew Flatt
9047427e07 further improvements to source locations for `require' forms 2012-10-01 07:14:46 -06:00
Matthew Flatt
14e276094a improve source correlation on `require' expansion 2012-09-29 08:59:10 -06:00
Matthew Flatt
5dcebb86ac change `stream-append' to use its last argument as the result tail
Closes PR 13130
2012-09-20 17:49:50 -06:00
Robby Findler
e6a25f65ca fix first-order test for struct/dc contracts
closes PR 13090
2012-09-19 15:41:56 -05:00
Matthew Flatt
07e5526d6a switch generator' implementation to use prompt' and `call/cc'
Instead of `shift' and `reset'. Performance is a little better,
since `call/cc' acts as hint to the run-time system that the
continuation doesn't need to compose.
2012-09-19 05:59:57 -06:00
Ryan Culpepper
f621855aa3 racket/unit lang uses racket/base and racket/unit
Probably fixes PR 13118
2012-09-16 17:12:02 -04:00
Ryan Culpepper
d70e80e837 racket/format: change ~r to accept #:notation argument
Another possibility would be
  #:exponential? (or/c boolean? (-> rational? boolean?))
but that violates the "everything's a boolean" convention.
2012-09-16 17:12:02 -04:00
Matthew Flatt
d1cd4621de racket/draw: add make-dc' convenience method to bitmap%' 2012-09-14 15:58:47 -06:00
Matthew Flatt
fc52248446 add #:break' and #:final' to `for' forms
Support for break clauses complicates expansion to `for/fold/derived';
a new `syntax/for-body' library provides a helper for macros that need
to split a `for'-style body into a prefix part and wrappable part.
2012-09-14 14:57:35 -06:00
Matthew Flatt
adb5c01ac4 racket/generator: add optional #:arity' clause to in-generator'
Allows the use of `in-generator' to produce multiple values in a
position other than immediately within `for' (where the arity
can be inferred).

Closes PR 11662
2012-09-14 13:02:55 -06:00
Matthew Flatt
ac5965a1dc racket/set: add set-first' and set-rest' 2012-09-12 17:57:03 -06:00
Matthew Flatt
4f351dd6b1 add `current-compiled-file-roots', PLTCOMPILEDROOTS, and -R/--compiled
The new parameter (and supporting environment variables and
command-line flags) can bytecode lookup to a tree other than
where a source file resides, so that sources and generated
compiled files can be kept separate. It also supports storing
bytecode files in a version-specific location (either with
the source or elsewhere).
2012-09-11 13:18:18 -06:00
Asumu Takikawa
3daec14cbb racket/generic: better error message in empty case
Closes PR 13048
2012-09-11 14:43:19 -04:00
Matthew Flatt
d92b9cb404 add `define-logger' and filtering based on logger name
The `make-log-receiver' function now includes a logger-name
filter. This filter is implemented as a low enough level that
it affects `log-level?' tests to check whether a log message
needs to be constructed at all.

The -W and -L flags and PLTSTDERR and PLTSYSLOG environment variables
support filters of the form "<level> <level>@<name> ...", where
<level>@<name> specializes filtering of events for a logger whose
name matches <name> to show <level> and higher.
2012-09-07 08:16:38 -06:00
Matthew Flatt
8728a3a1e9 fix bug in relative `submod' path handling 2012-09-07 08:16:37 -06:00
Matthew Flatt
fc0d605d18 change `log-error', etc., to support format mode
One subexpression => string literal. Multiple subexpressions
=> arguments to `format'.
2012-09-07 08:16:37 -06:00
Matthew Flatt
b53e458e3f add `racket/format'
The new library is Ryan's `unstable/cat', but the names have been
changed. (The task of removing `unstable/cat' remains.)
2012-09-07 08:16:37 -06:00
Matthew Flatt
ba56fd72da racket/class: add dynamic-get-field' and dynamic-set-field!' 2012-09-04 15:28:18 -06:00
Matthew Flatt
9cfcf8911c fix `in-directory' to properly propagate filesystem errors 2012-08-31 16:07:10 -06:00
Matthew Flatt
b4fea2ff36 fix `delay/thread' error when promise-running thread terminates 2012-08-29 09:32:54 -06:00
Matthew Flatt
6039e35afd fix race in `delay/sync' 2012-08-29 07:20:24 -06:00
Matthew Flatt
003613395d fix `font%' amnipulation to work in atomic mode 2012-08-28 17:27:14 -06:00
Matthew Flatt
b61f3f751c port position-tracking clean-ups
Add `file-position*', which can return #f instead of raising
an exception when a port's position is unknown. Change
`make-input-port' and `make-output-port' to accept more
kinds of values as the initial position.

These changes make it possible to synchronize a port's
position with a `port-commit-peeked' action. It's ugly,
which I think reflect something broken about position
tracking in the port protocol (which seems difficult to fix
without breaking compaibility).
2012-08-28 16:04:41 -06:00
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