Commit Graph

403 Commits

Author SHA1 Message Date
Jon Rafkind
6457e69b48 [honu] support for-syntax in require 2012-06-11 13:07:53 -06:00
Sam Tobin-Hochstadt
865a2cdcbd Support definitions of keyword functions in Typed Racket.
Caveats:
 - keyword function definitions do not define static
   bindings, thus limiting optimization opportunities
 - can't use `define:`, `lambda:`, etc with keywords
 - error messages sometimes expose the implementation
 - the optimizer skips most of the generated code for
   keyword functions definitions (user-level code is
   optimized)
2012-06-02 18:22:07 -04:00
Matthew Flatt
248301c9ed disable nested `#lang'
A `syntax/module-reader' reader disables `#lang' when looping to
read a module body. The HtDP languages require a little additional
treatment.
2012-05-29 11:01:52 -06:00
Matthias Felleisen
f1c1376d87 added 'range' to *sl per jpr's request and #lang-ified a couple of files 2012-05-29 12:00:27 -04:00
Matthew Flatt
6fded4bac1 syntax/free-vars: fix quadratic behavior
(Forgot to fix the "FIXME" before committing last time.)
2012-05-28 20:22:31 -06:00
Matthew Flatt
ee93e35260 syntax/free-vars: deterministic result order
Closes PR 12798
2012-05-28 20:15:43 -06:00
Matthew Flatt
964020f288 implement scribble/srcdoc' via submodules instead of expand'
Also add a `for-doc' require form, make `proc-doc' et al. provide
forms, make `provide/doc' an alias for `provide'.
2012-05-12 01:37:50 -06:00
Matthew Flatt
9412ea0707 add `syntax/quote' library 2012-05-12 00:55:12 -06:00
Ryan Culpepper
3bde72ffb0 syntax/parse: fix dependencies of experimental modules 2012-05-07 14:46:14 -06:00
Ryan Culpepper
eb3dce14cd fix some doc contracts for submodules 2012-05-07 14:46:13 -06:00
Stevie Strickland
b2bfbad240 Add special typechecking rule for expansion of (quote-module-name). 2012-05-03 19:38:47 -04:00
Matthew Flatt
9ba663aa77 preserve submoduleness in module path index for expanded submodules
The preserved path is exposed by a new `module-path-index-submodule'
function, and `module-path-index-join' now accepts an optional
submodule path.

Also, fixed a problem with `collapse-module-path-index' when
a module path indx is built on a resolved module path that
is a submodule path.

In addition to the main repair, `collapse-module-path[-index]' is
correctly documented to allow '(quote <sym>) rel-to paths.

Finally, `collapse-module-path-index' changed to use a symbolic
resolved module path that appears as the base of a module path
index, rather than falling back to the given rel-to path. It's
possble that the old beavior was intentional, but it wasn't tested,
and it seems more likely to have been a bug.

Closes PR 12724
2012-04-24 21:10:28 -06:00
Ryan Culpepper
211e382a70 syntax/parse: update phase discussion with begin-for-syntax
merge to 5.3
2012-04-10 15:50:32 -06:00
Kevin Tew
bba967144b quote-module-name and quote-module-path now take an optional submodule path
(quote-module-name "..")
(quote-module-path ".." 'A 'B)
2012-03-28 18:52:02 -06:00
Matthew Flatt
ae89e210fb allow (submod "..")' as a shorthand for (submod "." "..")'
Also, `(submod ".")' is allowed as a module path; it's not useful,
but it makes the grammar slightly more regular.
2012-03-22 18:43:11 -06:00
Ryan Culpepper
74ca931f5a more template improvements
- loosen pattern variable depth rules (now compatible with syntax)
- generalize ?? form to head-templates
- doc improvements
- propagate paren-shape property
2012-03-21 17:48:10 -06:00
Ryan Culpepper
df265ddc67 syntax/parse: eliminate old minimatch struct syntaxes 2012-03-21 17:33:08 -06:00
Ryan Culpepper
6c369f2563 updates to syntax/parse/experimental/template
- changed substitute to use closure-compilation
- added stress/perf test for templates
- updated minimatch with vector patterns
- split substitute into separate file, minimize dependencies
- do ellipsis optimization dynamically
- validate guides: check var indexes
2012-03-21 17:33:08 -06:00
Ryan Culpepper
a564110c08 syntax/parse: change expectstack rep to reduce/consolidate allocations 2012-03-13 19:50:09 -06:00
Ryan Culpepper
5db8553ea1 syntax/parse: expect:thing stores stx being matched 2012-03-13 19:50:09 -06:00
Ryan Culpepper
6cf3127cf9 syntax/parse: put failure information in syntax exn 2012-03-13 19:50:08 -06:00
Matthew Flatt
facc8db712 change module-path?' to subsume path?'
Although th eoriginal idea was to distinguish "text" paths
from derived filesystem paths, practically everythign that accepts
a module path also accepts a path. Building the generalization into
`module-path?' makes it easier to support `submod' wrappers on paths,
and it seems to fix things rather than break them.
2012-03-12 21:08:54 -06:00
Matthew Flatt
6743900fc7 get-module-code repair 2012-03-09 10:34:57 -07:00
Matthew Flatt
a6a1b02de5 more doc updates for submodules 2012-03-09 10:34:57 -07:00
Matthew Flatt
3d69dfab86 first cut at submodules 2012-03-09 10:34:56 -07:00
Ryan Culpepper
fb7c7e3793 syntax/parse: added roles, other updates/fixes
expr/c uses role for contract label when avail
export ~peek-not (previously missed)
fixes for integrable stxclasses
2012-03-08 07:39:42 -07:00
Ryan Culpepper
a0065b9efa syntax/parse: cut-prompt is inherited, not threaded 2012-03-08 01:17:47 -07:00
Ryan Culpepper
14089e0ac6 syntax/parse: clean up integrable stxclass code 2012-03-08 01:17:47 -07:00
Ryan Culpepper
3e6069a70f syntax/parse: optimize common ellipsis patterns 2012-02-28 05:27:58 -07:00
Ryan Culpepper
2a3d6d5c31 syntax/parse: add attribute-prefix check to template form
(template x.y) raises an error if x an attribute but x.y is not.
2012-02-28 05:27:57 -07:00
Matthew Flatt
60c1bc6638 fix problem with `get-module-code'
As reported and fixed by Timur Sufiev
2012-02-24 17:06:20 +00:00
Eli Barzilay
c007c345f9 A bunch of more typos like the ones in David's commit. 2012-02-21 14:21:43 -05:00
Ryan Culpepper
5a1badf397 syntax/parse: added template metafunctions
Also fixed some bugs and added simple optimizations.
2012-02-10 22:12:54 -07:00
Ryan Culpepper
06979954fa syntax/parse: added experimental template form
Also added more atomic patterns to syntax-parse (previously overlooked).
2012-02-10 05:26:13 -07:00
Ryan Culpepper
ed1ba3a442 syntax/parse docs: use trusted sandbox config
closes PR 12546
2012-02-07 13:43:26 -07:00
Ryan Culpepper
e2404184ee syntax/parse: fix opaque head patterns and splicing syntax classes
closes PR 12537
2012-02-07 13:43:26 -07:00
Ryan Culpepper
f99d79ef10 pruned unstable/contract
Removed unused code. Removed nat/c, pos/c as they correspond to
standard predicates.
2011-12-18 13:56:00 -07:00
Matthew Flatt
ee775c3cc3 intern strings, etc. only when making syntax objects, not in `read'
Rename `read-intern-literal' to `datum-intern-literal'.

Interning is needed only in `read-syntax' or `datum->syntax' to
set up the invariants that the bytecode compiler needs for cross-module
optimization. When `read'ing numbers from a data file, meanwhile,
interning slows things down a lot and doesn't seem worthwhile.
2011-12-14 16:03:44 -07:00
Matthew Flatt
25dd8727cb add datum-case', etc. as syntax/datum'
This library is used by Redex, which wants a `syntax'-like template
language, but for datum values instead of syntax objects. Using
`datum-case' and `datum' generates much less code. Redex uses
only a small part of the general functionality, so adding
`syntax/datum' could be overkill. It's implemented by generalizing
the `syntax-case' and `syntax' pattern matching and template
constructing code, though; it's not a lot of extra code, and it's
easiest to generalize completely. We may find other uses for
datum templates, too.
2011-12-12 08:13:20 -07:00
Matthew Flatt
17504a960e more interning related to Scribble xref 2011-12-10 11:43:58 -07:00
Matthew Flatt
b2fade9206 read-intern strings generated by Scribble; other interning
This change saves a small amount of space in cross-reference files
and some space in loaded cross-reference information.
It also saves work converting strings to mutable on deserialize,
although the performance difference seems negligible.
2011-12-10 11:43:58 -07:00
Matthew Flatt
a04272d245 fix typo and text duplication 2011-11-27 13:27:04 -07:00
Matthew Flatt
b157ff2399 fix `#lang at-exp' spec and related
Closes PR 12174
2011-11-27 11:22:41 -07:00
Matthew Flatt
edec6fafd1 remove unused library (formerly used by the Racket->C compiler) 2011-11-12 05:33:20 -07:00
Ryan Culpepper
81fa15e27b updated documentation for syntax/trusted-xforms
closes PR 12269
  merge to 5.2
2011-10-16 02:40:41 -06:00
Ryan Culpepper
192e039e66 fix docs (eval) for syntax/keyword 2011-10-07 19:40:48 -06:00
Ryan Culpepper
a1009bbf26 syntax/parse: add begin-for-syntax to kernel-literals 2011-10-07 19:40:48 -06:00
Ryan Culpepper
528c05b228 emphasize syntax/id-table over syntax/boundmap 2011-10-07 19:40:48 -06:00
Ryan Culpepper
d3cb67b756 syntax/parse: fixed docs
closes PR 12255
2011-10-07 19:40:48 -06:00
Matthew Flatt
ec380e34ed remove built-in reader and printing support for Honu
This is a backward-incompatible change, but I think it's
unlikely that any code depends on the removed bindings
or reader syntax.
2011-10-05 09:40:27 -06:00