Commit Graph

615 Commits

Author SHA1 Message Date
Robby Findler
a9bfd9c083 add note to HISTORY about the is-a? bug fix 2013-06-01 15:24:00 -05:00
Matthew Flatt
6b2a4ff54d include source-location in "missing module" exceptions
Also, add `current-directory-for-user' and `srcloc->string', and
adjust the way that source-location paths are reported to be
relative to `current-directory-for-user'.
2013-05-29 11:01:12 -06:00
Matthew Flatt
6178f2312f add `setup/collects' and use it for ".dep" file paths
This change makes ".dep" files more portable (in exchange for some
extra path work at the point of reading or writing ".dep" files.)
2013-05-24 14:55:39 -06:00
Matthew Flatt
7645bacec1 scriblib/autbib: add `#:note' support 2013-05-24 14:55:38 -06:00
Robby Findler
299063d7c1 Adjusted check syntax to properly deal with different identifiers
that have overlapping ranges in the editor; also got rid of the
id-set stuff

Getting rid of the id-set information that was computed means that now
the mouse-over green bubbles, the "jump to next binding occurrence"/
"jump to bound occurrence" keybindings/menu items, and the renaming
are all being computed from the arrows information as needed, instead
of building up sets as check syntax collects information. This may
change the way Check Syntax behaves in some cases; so far the only
example I've found has been strange and are arguably for the
better. Specifically, this program

  (define-syntax-rule (m x) (λ (x) x)) (m z)

no longer draws a green bubble when you mouse over the "z", since
there are no arrows (the only arrow that might have been drawn is
discarded since its start and end points are the same place).

This speeds up the "analyze the expanded code" phase of check syntax,
making it approximately 1.6x faster than before (going from about 31
seconds to about 19 seconds for this phase for the
drracket/private/unit.rkt file (on my machine)). Also, the replay
phase is probably a bit faster now, tho, too: there were 1.07x fewer
elements to process in the trace that comes back from online check
syntax now for that same file (33063 to 30842)

Note that this is only that one phase: this doesn't count the time to
actually expand the program (the dark blue bubble phase) nor the time
to send the results between places, nor the time to replay the
collected information (the light purple bubble phase).
2013-05-19 20:30:37 -05:00
Matthew Flatt
b08ff186e2 slideshow/pict: add 'outline style for `text' 2013-05-12 06:54:27 -06:00
Matthew Flatt
eb46eacad9 raco exe: enable on-demand parsing of embedded bytecode
Creating a stand-alone executable could slow down a program,
because bytecode embedded in an executable was not treated
in the same way as bytecode loaded from files. The difference
was in on-demand parsing of bytecode --- and now it's enabled
for embedded bytecode, too.
2013-05-08 12:31:34 -04:00
Matthew Flatt
53efe920b3 Move explode-path' from racket/path' to `racket/base'
The revised `explode-path' runs in time proportional to the
length of the path, instead of quadratic in the number of
path elements. The difference doesn't matter much in my
program, but I'm reluctant to leaving the implementation
as quadratic (which is forced by using `split-path').
2013-05-08 09:54:30 -04:00
Matthew Flatt
7339074741 racket/place: keywords as place messages 2013-05-07 14:48:21 -04:00
Matthew Flatt
0b1c0ba13b racket/{require,provide}-syntax: add `syntax-local-{require,provide}-introduce' 2013-05-07 14:48:21 -04:00
Matthew Flatt
376dd5f4aa add `racket/rerequire'
The `dynamic-rerequire' function is the reloading support of
`enter!', but in function form and without namespace-switching.
2013-05-07 12:00:13 -04:00
Matthew Flatt
e75393a59b bump version 2013-05-07 09:07:40 -04:00
Matthias Felleisen
0d3ae8b2e3 update for 5.3.4 2013-04-24 16:24:41 -04:00
John Clements
71bc329278 updated HISTORY
Merge to 5.3.4 release
2013-04-23 10:23:50 -07:00
Matthew Flatt
426a8c0d39 add `exn:fail:{filesystem,syntax}:missing-module'
These exception types are intended as a hook for a programming
environment to recommend packages that can provide a module that isn't
found (through an uncaught-exception handler). The new exceptions are
generated by the default module name resolver and defaultload
handler. In addition to the exceptions, there's a new
`prop:exn:missing-module' property and `exn:missing-module?', which is
what an environment should use to detect relevant exceptions.

There's also a new `current-module-path-for-load' parameter, which
just provides a commuincation path from the module name resolver to
the the load handler. The parameter is a relatively ugly piece of the
puzzle, but it's the best I could find to squash the new functionality
into the existing stack of handlers.
2013-04-22 10:27:02 -06:00
Robby Findler
5a3a5edc9a add v.5.3.4 notes to DrRacket's HISTORY.txt 2013-04-20 22:22:07 -05:00
Matthew Flatt
57516164de ffi/unsafe/obj: add +A' and -A' method modes
On Cocoa, a view's `drawRect:' method can be called from a
heartbeat thread that animates controls. Such a call happens
rarely for a `canvas%' or other class where `drawRect:'
is overridden, but since it can happen, ensure that the
callback runs on the Racket thread.
2013-04-19 07:54:30 -06:00
Vincent St-Amour
85eab5610f Update TR history for 5.3.4. 2013-04-18 12:01:28 -04:00
Matthew Flatt
9b7e3bea12 merge history for v5.3.4
Merge to v5.3.4
2013-04-18 08:29:52 -06:00
Matthew Flatt
e29878e7ae racket/system: make `system', etc., set PWD by default
That is, make `system' behave like a shell.
2013-04-18 07:02:05 -06:00
Matthew Flatt
4cc29194d1 Unix: initialize `current-directory' from the PWD environment variables
... when PWD is defined and when it refers to the same directory
as the result of getcwd().

A shell sets PWD before starting Racket to communicate a preferred
way of referring to the current directory, which may involve soft
links that are not reflected in getpwd().
2013-04-18 06:37:53 -06:00
Matthew Flatt
50ade25b28 net/url: support HTTP/1.1 connections 2013-04-15 06:21:49 -06:00
Matthew Flatt
a9a20e9aa7 fix the name of `environment-variables-ref'
Also, fix use of unsetenv() to work with platforms where it returns
void.
2013-04-11 06:42:54 -06:00
Matthew Flatt
6ea9a2b3e3 add `make-environment-variables'
Swap order of argument for `environment-variables-get'
and `environment-variables-set!', so that the environment
variables come first --- which follows the usual order.
This change means that the parameter isn't used to get
the default environment variables, but that seems ok; the
convenient interface is `getenv' and `putenv'.

On Windows, case-normalized environment variable names.

Also, change the implementation to use an immutable hash
internally.
2013-04-10 12:06:29 -06:00
Matthew Flatt
d5f32b649c racket/sandbox: add sandbox-make-environment-variables
By default, a sandbox gets a fresh environment variable set,
which means that it does not affect environment variables
outside the sandbox (which means that sandboxed code cannot
set the Racket process's OS-level environment variables).

Closes PR 13667
2013-04-10 06:59:33 -06:00
Matthew Flatt
3d1b0bd381 new environment-variable API
The `current-environment-variables' parameter determines the current
mutable "environment variable set". If that set is the initial one for
a Racket process, then using the set corresponds to working with OS
environment variables.  Otherwise, it's really just a hash table that
is packaged up as OS environment variables if a subprocess is created.

The new environment-variable interface works in terms of bytes, instead
of assuming that environment variable names and values fit in a string
encoding.

The string-based `getenv' and `putenv' are still available as
convenience wrappers. The checking on environment-variable names
for those wrappers is a little tighter, preventing any attempt to use a
name that contains "=".
2013-04-10 06:59:33 -06:00
Matthew Flatt
596e573497 add missing license file 2013-04-08 15:23:01 -06:00
Matthew Flatt
d5ede87ae8 JIT for ARM
Includes switch from LGPL 2.1 to LGPL 3, since the ARM port
of GNU lightining is licensed under LGPL 3.
2013-04-08 14:43:30 -06:00
Matthew Flatt
88c7bb59d4 fix `udp-bind!' test 2013-04-06 10:50:02 -06:00
David Van Horn
213430f728 Add #:lang and input-program inputs to make-base-eval and friends.
This commit extends make-base-eval, make-base-eval-factory, and
make-eval-factory with an #:eval and input-program inputs so that
these functions are more like racket/sandbox make-evaluator.
2013-04-06 09:00:41 -06:00
Matthew Flatt
7c4cfdd367 reference: adjust docs for UDP multicast
Minor style changes to better match the rest of the docs,
plus "HISTORY.txt" entry.
2013-04-06 07:22:31 -06:00
Robby Findler
9af84cb549 add note about define-judgement-form fix 2013-04-05 10:22:41 -05:00
Matthew Flatt
a5f8584bab scriblib/figure: add `#:continue?' option 2013-03-29 07:23:49 -06:00
Matthew Flatt
325a9dd34b slideshow/pict: allow a color in a style for `text' 2013-03-27 17:17:33 -06:00
Matthew Flatt
acd6764019 support boxes in syntax patterns and templates
Also, `datum-case' and `datum' from `syntax/datum'.
2013-03-21 09:06:15 -06:00
Matthew Flatt
e0486a7cf0 racket/gui: add warp-pointer' to window<%>'
Removed the method from `canvas<%>', where it was never implemented
with the `racket/gui' reimplementation.
2013-03-19 15:53:13 -07:00
Robby Findler
06696d67b4 add a #:pre keyword to define-metafunction
The keyword allows the specification of contracts
that relate different arguments

closes PR 13617
2013-03-18 12:54:27 -05:00
Robby Findler
1e910fcfbc make check-metafunction and check-reduction-relation
pay attention to the contract/#:domain spec

closes PR 13616
2013-03-17 20:50:23 -05:00
Robby Findler
3e27388571 missed some changes related to addition of dont-care values
in the lexers
2013-03-10 21:56:43 -05:00
Matthew Flatt
454f4c3f0e slideshow: add `interactive'
The `interactive' pict constructor is a hook for interactive GUI
elements on a slide. The callback associated with an `interactive'
pict gets a `frame%' instance for a frame that floats over the pict.
2013-03-07 21:46:48 -07:00
Matthew Flatt
9e0e2b932d scribble/srcdoc: add `begin-for-doc' 2013-03-07 21:46:48 -07:00
Matthew Flatt
8d03995b62 scribble/manual: add #:id' option to defthing'
Use this open in the HtDP language documentation in the same
way as for `defproc', which fixes the docs for `pi', `e', etc.
2013-03-05 07:48:26 -07:00
Robby Findler
42847ea523 follow up to William J. Bowman's commit
- put the tests together with the other define-union-language tests
- fix the docs
- add a release note
- construct the merged language a bit more directly
- properly deal with this kind of thing:
  (define-language L1 (e f ::= 1 2 3))
  (define-language L2 (e g ::= 4 5 6))
  (define-union-language L L1 L2)
2013-03-01 19:38:57 -06:00
Matthew Flatt
cdf0f6b9ab add 'so-mode to `system-type'
To work better with OpenBSD (which has been a problem since we
changed `ffi-lib' to open libraries in "local" mode by default).
2013-03-01 15:20:17 -07:00
Matthew Flatt
cb8dd143d9 slideshow/balloon: add `balloon-enable-3d' 2013-03-01 15:20:17 -07:00
Matthew Flatt
abf44f8b49 add `module-compiled-cross-phase-persistent?' 2013-02-27 08:53:43 -07:00
Matthew Flatt
e15569e006 add `racket/kernel/init' 2013-02-26 19:01:36 -07:00
Matthew Flatt
2646ff6895 try "phase-collapsing" instead of "phaseless" 2013-02-26 19:01:36 -07:00
Matthew Flatt
899a3279c2 add experimental support for "phaseless" modules
The intent is to support phase-crossing data such as the `exn:fail:syntax'
structure type that is instantiaed by macros and recognized by contexts
that use `eval' or `expand'. Phaseless modules are highly constrained,
however, to avoid new cross-phase channels, and a module is inferred to
be phaseless when it fits syntactic constraints.

I've adjusted `racket/kernel' and improved its documentation a little
so that it can be used to implement a phaseless module (which can
import only from other phaseless modules).

This change also adds a `flags' field to the `mod' structure type
from `compiler/zo-structs'.
2013-02-26 14:55:28 -07:00
Matthew Flatt
42b8163f8f fix docs on `case'
The Guide was was out-of-date in several ways, and the Reference
didn't describe the dispatch-time guarantee.
2013-02-21 08:34:54 -07:00