Commit Graph

644 Commits

Author SHA1 Message Date
Sam Tobin-Hochstadt
f73b4066a7 Add prop:object-name. 2015-03-18 09:55:27 -04:00
Paul Ojanen
e6ffbf2501 Improve reference to code value
Did "temp7" used to print out as "???"?  I would have understood this more quickly if the reference to "temp7" had been more clear.
2015-03-14 17:20:02 -04:00
Paul Ojanen
51079f62ae grammar fix 2015-03-14 17:19:52 -04:00
Joseph Irwin
6b9a50c82d Fix typo in TRG 21.2.1 2015-03-14 17:19:17 -04:00
Joseph Irwin
95a8dfb5a7 Fix typo in TRG 16.2.5 2015-03-14 17:19:15 -04:00
Sam Tobin-Hochstadt
a5be431a74 Add some missing history annotations.
Thanks to @mflatt for pointing this out.
2015-03-13 10:19:58 -04:00
Asumu Takikawa
e1bfebe7b8 Fix doc typos for file/resource 2015-03-12 17:32:14 -04:00
Sam Tobin-Hochstadt
2ce9b40a54 Add match-letrec-values.
Implemented by J. Ian Johnson.

Closes #762.
2015-03-11 19:00:12 -04:00
J. Ian Johnson
af12f855ba Expose the mk-rhs function normalize-definition uses.
I found I wanted this to make a define/stub macro that errors giving the defined identifier:

(define-syntax (define/stub stx)
  (syntax-case stx ()
    [(_ header)
     (let-values ([(id mk-rhs body) (normalize-definition/mk-rhs stx #'lambda #t #t #f)])
       #`(define #,id #,(mk-rhs #`(error '#,id "TODO: stub"))))]))

Closes #508.
2015-03-11 17:44:20 -04:00
Leif Andersen
f7db183ab8 Fix typo in find-files doc.
Closes #890.
2015-03-11 17:22:52 -04:00
Sam Tobin-Hochstadt
2ccd4b1a95 Describe match scoping behavior more precisely. 2015-03-11 16:15:17 -04:00
Eric Dobson
5895eabad1 Add break-parameterization?.
Closes PR 11966.
2015-03-09 12:40:08 -06:00
Matthew Flatt
b923269569 make impersonator properties sensitive to prop:impersonator-of
When a structure type has `prop:inpersonator-of`, follow it
when attemptng to access imperonator properties.

This change fixes a problem with `impersonate-procedure` as
reported by Scott Moore.
2015-03-08 19:27:11 -06:00
Matthew Flatt
092f6bb7e1 add object-or-false=? 2015-03-05 14:27:17 -07:00
Robby Findler
0c2ca96ad2 move sequence/c into the part of the docs for racket/sequence 2015-03-05 08:26:54 -06:00
Asumu Takikawa
ab68a4dc38 Add option to ignore local names in opaque class/c 2015-03-04 11:54:56 -05:00
Robby Findler
efee5c4581 move sequence/c into racket/sequence 2015-03-02 22:14:32 -06:00
Asumu Takikawa
f43096b123 Export an alternative object/c constructor
This functional constructor allows runtime construction
of object contracts in extension libraries.
2015-02-24 17:18:40 -05:00
Asumu Takikawa
5dc6be1a17 Allow chaperones on class methods
This allows libraries to add metadata to methods in the form
of chaperone properties which can be read by contracts on
methods.
2015-02-24 17:17:32 -05:00
Javier Olaechea
be6e1a4045 typo in sequences.scrbl
Fix return values in the  documentation of stream-empty?
2015-02-19 10:29:58 -07:00
Matthew Flatt
aae35ea3ac fix stream/c using generics chaperone property support 2015-02-19 09:56:50 -07:00
Matthew Flatt
d69af6af30 add property support to chaperone-generic, etc. 2015-02-19 09:56:50 -07:00
Matthew Flatt
b37eab0621 raco pkg update: add --skip-uninstalled flag 2015-02-17 15:43:15 -07:00
Matthew Flatt
cc621124c1 fix typo 2015-02-17 13:05:20 -07:00
Matthew Flatt
8aa16faa6d raco pkg {install,update}: add --pull option 2015-02-17 13:05:20 -07:00
Matthew Flatt
17275b946a raco setup: improve and normalize error reporting
When repoting an error during compilation, always show the path to the
module being compiled. That path was sometimes available in the error
message anyway, due to source locations for syntax errors, but often
there would be no path due to run-time errors in macros, a lack of
source locations on macro-introduced forms, etc.

The `raco setup` improvements rely on new machinery in `compiler/cm`,
and `raco make` inherits that machinery.

The parallel and non-parallel variants of `raco setup` reported
excpetions in slightly different formats, and now they're consistent.
The initial report of an exception now always shows an evaluation
context, while the summary's repeat of the error omits the context.
2015-02-15 09:49:40 -07:00
Matthew Flatt
d747f8f806 require a #:offset keyword before a field offset in define-cstruct
Also, allow `#:offset` specifications on individual fields, instead
of all or node.
2015-02-14 18:40:20 -07:00
Paul Ojanen
2c506a2157 grammar fix 2015-02-14 18:40:20 -07:00
Alexis King
714b7684fe Add stream/c contract for adding contracts on stream contents 2015-02-13 20:14:03 -06:00
Matthew Flatt
0e009117b5 fix docs on print
The default global print handler changed long ago.
2015-02-12 10:17:55 -07:00
Asumu Takikawa
97bd3f7549 Add doc examples for dynamic-require 2015-02-12 10:14:52 -07:00
Asumu Takikawa
e63fbfde7a Clarify docs of dynamic-require on syntax bindings 2015-02-12 10:14:52 -07:00
Matthew Flatt
8c545ae05a adjust docs & history note for println and writeln
When adding a new function or form, use

 @history[#:added "<version>"]

at the end of the documentation for the added function or formœ.
2015-02-12 10:14:51 -07:00
Robby Findler
0e563c6ab3 minor tweaks to define-sequence-syntax docs 2015-02-11 10:53:40 -06:00
Rob Hoelz
912d65948c Link to the guide and reference source locations 2015-02-10 09:46:40 -05:00
Rob Hoelz
578e98afe0 Fix a typo involving keyword<? 2015-02-10 09:46:38 -05:00
Alexis King
62e52bf41d Add writeln and println functions to complement displayln 2015-02-10 09:46:06 -05:00
Matthew Flatt
9c7d0b8794 Unicode 7.0
Closes PR 14971
2015-02-09 11:33:13 -07:00
Matthew Flatt
fe68c9ab81 fix docs again on struct in racket/signature
The repair of 7bfe2eadab wasn't right; the `struct` form is treated
correctly in `define-signature`, but not in `racket/signature`.
2015-02-08 06:52:24 -07:00
Matthew Flatt
2ada651dd3 {chaperone,impersonate}-struct: allow structure type as a witness
Also, do not allow `struct-type` as a wrapped operation in
`chaperone-stuct` without a witness.

Related to PR 14970
2015-02-08 06:52:24 -07:00
Matthew Flatt
be8f70fffb racket/unit: static checking of initialization dependencies
When using `compound-unit/infer` and similar, check the `link` clause
against each unit's static information for initialization dependencies.
Also, propagate dependency information in `define-compount-unit`.
2015-02-06 09:22:01 +01:00
Matthew Flatt
53fb33144e add unit-static-init-dependencies 2015-02-06 08:55:58 +01:00
Matthew Flatt
7bfe2eadab fix docs for struct in define-signature
Unofrtunately, `struct` in a signature corresponds to `define-struct`.
2015-02-06 08:55:58 +01:00
Matthew Flatt
7bee7bbadc collapse-module-path-index: support relative module path flattening
Unlike `collapse-module-path`, it makes sense for
`collapse-module-path-index` to convert a relative module path index
to a plain module path. In other words, `collapse-module-path-index`
can convert a module path index to a module path.
2015-01-27 08:40:10 -07:00
Gustavo Massaccesi
6d5597c090 Change type of result of unsafe-??vector-ref 2015-01-25 07:51:45 -07:00
Gustavo Massaccesi
9ecf98a0a0 Add documentation of unsafe-fxvector-length and friends 2015-01-25 07:51:45 -07:00
Matthew Flatt
e2261096cb doc clarifications on eqv?
Part of the clarification is duplicating information about numbers
and character in the documentation of `eqv?`. Since those two type
are the only special cases of `eqv?`, the duplication seems helpful
and managable.
2015-01-24 10:12:35 -07:00
Matthew Flatt
68c5d3d1d6 fix error message for inexact->exact on +inf.f 2015-01-24 10:12:35 -07:00
Robby Findler
cc642c3382 change +nan.0 and +nan.f, when viewed as contracts, to
be equal?-based contracts instead of = based contracts.

Before this change, the contract (or/c 1 2 +nan.0) was the same
contract as (or/c 1 2), because +nan.0 was the same contract as
the predicate (lambda (x) (= x +nan.0)), which is the same as
(lambda (x) #f). Now, +nan.0 and +nan.f are the only numbers
that are treated as equal?-based contracts, but this means that
(or/c 1 2 +nan.0) actually accepts +nan.0.
2015-01-23 21:57:51 -06:00
Robby Findler
430a4b08c4 fix typo 2015-01-23 09:41:07 -06:00
Matthew Flatt
7196dc0e74 add peak memory use to vector-set-performance-stats! 2015-01-22 10:16:32 -07:00
Matthew Flatt
8035ee354c document format of GC logged message text 2015-01-21 05:39:04 -07:00
Matthew Flatt
3eef017911 track whether a closure uses syntax objects
For GC purposes, if a "prefix" (a closure frame that caprues
top-level or module-level bindings) may refer to syntax objects
that are not used by any reachable closure, in which case the
syntax object can be dropped. This pruning of syntax objects
uses the infrastructure already in place to prune variables.

Syntax objects were not included in the original pruning
implementation, because they are unlikely to create
finalization cycles in the way that global-variable
references can. A syntax object can retain a namespace's
table of module imports, however, which can be substantial
and worth releasing of a closure is only held, say, for
a low-level finalization action.
2015-01-19 21:29:55 -07:00
Alexis King
6e79a582f1 Add documentation for async-channel contracts and impersonators 2015-01-19 19:58:51 -06:00
Matthew Flatt
c6802ed107 namespace-attach-module: fix handling of for-template
The handling of `for-template` imports by `namespace-attach-module`
didn't match the docs. The actual handling was to refrain from
attaching instances of a phase-0 module if the instance was reachable
only through a `for-template`. The rationale had to do with such
modules instances being created only through instantiation of
phase-1 modules, and phase-1 module instances aren't attached;
it doesn't work well that way, though, when different modules
are attached with intervening `namespace-require`s on the target
namespace.

The change includes a documentation correction. Previously and still,
only modules at the same phase as the attached module (as opposed to
the same phase or less) are instantiated in the target namespace.

Closes PR 14938
2015-01-18 11:19:49 -07:00
Matthew Flatt
2b8acb368a raco pkg: another attempt to fix git commands for an update
Document and and exploit that any fragment in the Git or GitHub URL
for a package source must name a branch or tag (as opposed to a
commit) to work with clone linking.
2015-01-16 09:28:31 -07:00
Matthew Flatt
900e788a3a delete-{file,directory} docs: clarify permission change + delete is 2 steps 2015-01-14 08:55:42 -07:00
Matthew Flatt
9f3c82c30a Windows: change delete-{file,directory} to attempt permission correction
If a file or directory delete fails, try adjusting the file or directory
permissions to allow writes, then try deleting again. This process should
provide a more Unix-like experience and make programs behave more
consistently.

A new `current-force-delete-permissions` parameter provides access to
the raw native behavior.
2015-01-13 11:58:36 -07:00
Matthew Flatt
ece9126656 compiler/cm-accomplice: adjust protocol for extra options
Instead of introducing a subtype of `file-dependency` to imply one new
option, add a subtype that has an options table for easier
extensibility. (Thanks to Sam for pointing out that I shouldn't make
this mistake again.)
2015-01-09 11:31:35 -07:00
Gustavo Massaccesi
d03e635ee4 Fix typo in doc of find-executable-path 2015-01-09 11:31:30 -07:00
Gustavo Massaccesi
fc57ba7996 Fix typo in doc of call-with-atomic-output-file 2015-01-09 08:55:58 -07:00
Matthew Flatt
34c2c2ebdd raco pkg: doc improvements for command-line tool 2015-01-09 07:51:43 -07: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
fe9a04d1db doc tweaks for raco {setup,make} 2015-01-08 09:11:38 -07:00
Robby Findler
cd747e3fb1 fix docs for #:exercise argument
(adding the default value)
2015-01-03 17:16:51 -06:00
Matthew Flatt
9010eb5d19 expand docs on package dependencies and checking 2015-01-03 07:37:58 -07:00
Matthew Flatt
c5d09957ba ffi/unsafe/nsstring docs: fix C type description
The `_NSString` type corresponds to a reference, which is
an `NSString*`.
2015-01-02 18:44:05 -07:00
Gustavo Massaccesi
25013320be Fix is_arity_list 2014-12-29 07:26:15 -07:00
Matthew Flatt
8056c79699 remove bogus path in FFI example 2014-12-29 07:24:04 -07:00
Robby Findler
94d80f0171 add #:pre/desc and #:post/desc to ->i 2014-12-22 22:31:17 -06:00
Robby Findler
9d58a067e3 add #:pre/desc to ->* 2014-12-22 14:53:25 -06:00
Robby Findler
aabe9d7bad added dynamic->* 2014-12-20 22:48:26 -06:00
Matthew Flatt
7b8707e576 raco pkg: adjust staging of Git clone installs and updates
If the clone directory's checkout includes a target commit, then
use the clone directory directly for staging (i.e., for checking
dependencies and collisions). That way, changes made locally are
used for metadata checks.
2014-12-20 12:25:58 -07:00
Matthew Flatt
fadce82fe1 expand docs on package dependency checking in raco setup 2014-12-20 09:04:34 -07:00
Robby Findler
9e9dcf2f50 added hash/dc 2014-12-18 22:31:20 -06:00
Matthew Flatt
b05d07ad10 generalize {impersonator,chaperone}-of? on immutable hash tables 2014-12-18 06:49:10 -07:00
Asumu Takikawa
c3ca046bd4 Fix typos in pkg docs 2014-12-17 16:47:21 -05:00
Matthew Flatt
e22242df56 raco pkg: default --deps to search-ask in interactive mode
The implemented default for `raco pkg update` actually depended on the
way that a package is installed, and it's difficult to reason about or
to implement the default that is suggested by the documentation.
Meanwhile, `search-ask` seems the most sensible always in interactive
mode (now that we have a way to specify batch mode).
2014-12-15 09:13:24 -07:00
Robby Findler
2f44aef100 fix #:list-contract? argument 2014-12-13 20:51:53 -06:00
Matthew Flatt
63f7cf1568 raco setup: try harder to delete files such as DLLs
If "sqlite3.dll" is installed as a foreign library but shouldn't
be, then `raco setup` cannot simply deleet the file, because
starting `raco setup` opened the DLL. To avoid that problem,
rename the file to start with "raco-setup-delete-", then attempt to
delete the renamed file; the delete won't work, but the file
will be moved out of the way, and a future `raco setup` can
clean up.

The prefix "raco-setup-delete-" thus becomes special on Windows for
the directories that hold foreign libraries, shared files, and
man pages, because `raco setup` will try to delete any file
that starts with "raco-setup-delete-".

It's all very ugly, but I don't have a better idea for the
problems that I keep hitting.
2014-12-13 09:16:52 -07:00
Matthew Flatt
9beca2bdee make: fix bootstrap for native libraries
Restore (but in a hopefully better way) a step that installs native
libraries before trying a full `raco setup`, since the libraries
may be needed for the setup proces --- especially on Windows.
2014-12-13 09:16:51 -07:00
Robby Findler
6f09e7c619 add cons/dc 2014-12-12 23:41:09 -06:00
Sam Tobin-Hochstadt
f7a300199a Improve formatting in raco pkg show, and add single-package show.
* `raco pkg show typed-racket` now shows just the "typed-racket" pkg.

* `raco pkg show --rx typed-racket` shows all packages that match the
  regular expression "typed-racket".

* `raco pkg show` now only shows the first 8 characters of checksums
  unless you provide the `--full-checksum` argument.
2014-12-12 12:59:52 -05:00
Matthew Flatt
7ca5ae765b raco pkg docs: index fields for package-level "info.rkt" 2014-12-12 07:59:17 -07:00
Ryan Culpepper
6039d6cc0b added register-finalizer-and-custodian-shutdown 2014-12-12 00:25:31 -05:00
Robby Findler
cd2898675f add #:name argument to {transplant,relocate}-{input,output}-port 2014-12-11 14:43:34 -06:00
Matthew Flatt
28f4a39ccb reference: fix docs for octal character literal
Bug reported by Emmanuel Schanzer
2014-12-09 09:22:12 -07:00
Matthew Flatt
ab696c3943 pkg/path: fix pkg-info contract in docs 2014-12-09 09:22:06 -07:00
Matthew Flatt
542f5fd3d2 ffi/unsafe/custodian: doc clarifications 2014-12-09 09:10:35 -07:00
Matthew Flatt
06c82877db raco pkg: add trash directory for removed/updated package installations
Packages that are installed as other than a link are not meant to be
edited, but work can get lost if a package is edited and then removed
or updated. Avoid that work loss by moving removed or updated packages
to a trash folder.

By default, the trash folder holds up to 512 packages for up to 48
hours. To disable the trash folder (for a given scope), use

 raco pkg config --set max-trash-packages 0

(I expect that some variant of Greenspun's rule predicted the eventual
inclusion of "backup" management in the package system.)
2014-12-08 16:44:31 -07:00
Matthew Flatt
4bcdb9a3a3 pkg info.rkt: refine specification of distribution-preference 2014-12-08 12:33:00 -07:00
Matthew Flatt
0adf62bfb9 doc clarification on beg0 bytecode form
From Gustavo, and intended to be part of commit
2d95c39051.
2014-12-08 09:17:05 -07:00
Matthew Flatt
8e3ea24b48 get-pkg-context: add #:use-cache? and #:quiet? arguments 2014-12-08 08:57:54 -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