Commit Graph

27 Commits

Author SHA1 Message Date
Matthew Flatt
1ac6c15207 add #:unsafe option for #%declare
Finally give in and add an option to compile a module as unsafe. This
was going to be easy, since the option already exists at the linklet
level, but it turns out that a lot of plumbing was needed to propagate
the argument, and even more to preserve unsafety with cross-module
inlining.

Macros can effectively conditoinalize their expansion in unsafe mode
by generating the pattern

 (if (variable-reference-from-unsafe? (#%variable-reference))
     <unsafe variant>
     <safe variant>)

The compiler will only keep one of the two variants, because it
promises to optimize `(variable-reference-from-unsafe?
(#%variable-reference))` to a literal boolean. The expander will still
expand both variants, however, so avoid putting code in both variants
that itself can have safety variants.
2020-11-10 10:36:03 -07:00
Matthew Flatt
d175f4c626 reference: fix backquote rendering
Drop a broken workaround and rely on a Scribble repair.

Closes #3259
2020-06-22 08:19:06 -06:00
Ben Greenman
d08e9134ed doc: lambda, move margin-note up, close #2863 2019-11-02 23:14:12 -04:00
shhyou
bf8b717ce8 Discuss the mutability of the result of quasiquote
Closes #2403.
2018-12-10 08:48:47 -06:00
Paulo Matos
f85810ddb5 Fix reference to root-module-path 2018-10-16 09:25:03 -06:00
Leif Andersen
7fc309c524
Add link from protect-out to protecting exports page. (#2221) 2018-08-08 16:08:16 -04:00
Ben Greenman
4c672a5b6a typo: 'orig-d' -> 'orig-id' 2018-07-23 22:56:18 -04:00
Alexis King
33546008b3 Make syntax-local-introduce work in require/provide syntax 2018-05-25 18:25:13 -05:00
Alexis King
9b36052ce3 reference: Fix error message in quasiquote examples 2018-05-14 13:48:07 -05:00
Ryan Culpepper
ea0efd9e14 add docs for lazy-require-syntax 2017-12-15 21:19:12 +01:00
Georges Dupéron
153dc01ccd Some small fixes to the documentation
* Wrong contract for syntax-local-value in the documentation.
* Clarified signature in documentation for expand-import, expand-export and pre-expand-export
* Corrected typo in documentation for "for".
* Fixed error message for function which seems to have been renamed in the docs
* Fixed typo in a comment in the tests
* Fixed a typo in the documentation for set-subtract.
* Use double ellipses for the free-id-table-set*, free-id-table-set*!, bound-id-table-set* and bound-id-table-set*! operations
2016-10-19 20:52:45 -05:00
Matthew Flatt
84793e80ff doc corrections
Fix inacurracies noticed while reimplementing the module and macro system.
2016-08-13 14:15:54 -06:00
Matthew Flatt
c0fa2eecd5 add module-compiled-indirect-exports and co.
That information is needed sometimes to compile expanded syntax to
bytecode form.
2016-05-18 13:13:15 -06:00
Matthew Flatt
9046d30bcf fix grammar in docs for #%provide 2016-05-05 15:19:47 -06:00
Jay McCarthy
b078cbc0ef Add define-rename-transformer-parameter and friends 2016-01-08 11:03:33 -05:00
Matthew Flatt
4354ce45d8 use `scribble/examples' for the Reference
Port `examples`, `interactions`, etc., to use the new `examples`
form of `scribble/examples`. The main intended effect is to ensure
that errors are produced by examples only as specifically
indicated.
2015-12-11 12:29:41 -07:00
Asumu Takikawa
a970f9bf6e Fix a few cases of "it's" instead of "its" in docs 2015-08-11 21:29:22 -04:00
Matthew Flatt
545c14a9cf adjust some versions in history notes
Promote v6.2.0.x changes to v6.3, since they will not be in v6.2.1.
2015-07-30 14:49:31 -06:00
Brian Lachance
3c98fc54aa Fix bugs/typos in docs for contracts and quote-syntax
1st is a small grammatical mistake
2nd is in a section about ->* yet mistakenly -> is referred to
3rd is about recontract-out yet contract-out is mentioned instead
4th clarifies return value for value-contract
5th replaces free-identifier? with free-identifier=?
2015-07-27 10:47:06 -06:00
Matthew Flatt
fc5e32e526 switch to set-of-scopes expander
The development history for set-of-scopes is preserved in a "scope"
branch in the main Racket repository, which is commit
 ae88c96f50
2015-07-16 14:20:00 -06:00
Matthew Flatt
f7e1fcd557 log a warning for shadowing an import with a definition 2015-06-24 07:15:29 +08:00
Matthew Flatt
ea016bec96 allow definition in module to shadow a preceding import
This change is experimental and intended to reduce (but certainly not
eliminate) the problem of breaking existing code by adding exports to
a module.
2015-06-23 21:31:57 +08:00
Matthew Flatt
d6b587288a Adjust "6.2.0.2" history notes to just "6.2"
Due to our release process, these changes will be included in v6.2
after all.

Merge to v6.2
2015-04-28 15:36:04 -06:00
Sam Tobin-Hochstadt
58de58fc11 Add history entry for the previous change. 2015-03-19 21:09:37 -04:00
Sam Tobin-Hochstadt
04c89b5ea2 Provide a submodule for begin-encourage-inline.
As suggested in a comment in the file.
2015-03-19 21:01:49 -04:00
Matthew Flatt
95e85ec5bd add support for indirect CM dependencies; use in lazy-require
If module M in package P imports module N from package Q,
and if N has a `lazy-require` for a module in R that is
triggered during the compilation of M, then P doesn't really
depend on R; P depends on Q, and Q depends on R, and P
shoudn't necessarily know anything about Q. At the same time,
a change to the file in R means that M must be recompiled.
So, continue to track the compilation dependency, but mark
it as "indirect" so that the package-dependency checker can
ignore the dependency.
2015-01-08 09:59:37 -07:00
Matthew Flatt
2d4f3e2ac9 remove the "racket-pkgs" directory layer
The layer is now redundant, since everything left in "pkgs" is in the
"racket-pkgs" category.
2014-12-08 05:22:59 -07:00