racket/pkgs/racket-doc/scribblings/reference
Sam Tobin-Hochstadt 34fdd2863a Avoid traversing immutable vectors when specified.
This adds #:eager as an option for controlling this behavior.

Using `#:eager 10` is a 2x improvement in performance for configuration 010001
of the suffixtree benchmark from Takikawa et al, POPL 2016.

The default behavior is unchanged. This is configurable because some
programs are much faster when eager checking is performed. For example:

(require racket/contract)
(collect-garbage)
(time (for/sum ([_ 100000])
        (vector-ref (contract (vectorof integer? #:eager #t) #(1) 'pos 'neg)
                    0)))
(collect-garbage)

(time (for/sum ([_ 100000])
        (vector-ref (contract (vectorof integer? #:eager #f) #(1) 'pos 'neg)
                    0)))

The second loop is 3-4 times slower than the first. However, making
the vector much larger will make the difference go the other way.
2016-11-22 11:28:30 -05:00
..
async-channels.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
block.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
booleans.scrbl Update examples for equal? eqv? eq? (#1391) 2016-07-26 01:21:45 -05:00
breaks.scrbl Add break-parameterization?. 2015-03-09 12:40:08 -06:00
bytes.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
channels.scrbl Fix docs on channel synchronization 2015-06-29 17:34:57 -06:00
chaperones.scrbl Add procedure-impersonator*?. 2016-04-25 15:41:19 -05:00
chars.scrbl Unicode 7.0 2015-02-09 11:33:13 -07:00
class.scrbl Revert "Attempt at adding ->im; will be reverted." 2016-03-30 19:31:24 -05:00
cmdline.scrbl fix command-line docs for flags that start "--" 2015-05-31 06:06:22 -06:00
code-inspectors.scrbl
collects.scrbl sandwitch -> sandwich 2016-08-01 12:41:56 -04:00
concurrency.scrbl
cont-marks.scrbl
cont.scrbl
contracts-struct-prop.scrbl
contracts.scrbl Avoid traversing immutable vectors when specified. 2016-11-22 11:28:30 -05:00
control-lib.scrbl
control.scrbl
custodians.scrbl
custom-ports.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
custom-write.scrbl Fix for-label requires for some struct documentation 2016-07-28 15:33:13 -05:00
data.scrbl
debugging.scrbl
define-struct.scrbl Add #:name and #:extra-name to struct 2016-04-16 18:39:48 -06:00
dicts.scrbl Add example for dict-implements/c 2016-11-15 08:29:51 -05:00
ellipses-defn.rkt
ellipses.rkt
encodings.scrbl
engine.scrbl
enter.scrbl
envvars.scrbl fix wrong pluralization 2016-07-28 15:33:13 -05:00
eval-model.scrbl typo: redeclaration 2016-10-06 08:57:05 -04:00
eval.scrbl fix docs on PLT_COMPILED_FILE_CHECK 2016-10-15 07:28:52 -06:00
evts.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
exit.scrbl
exns.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
extflonums.scrbl typo 2015-12-26 17:01:22 -06:00
extras.css
extras.tex
fasl.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
file-ports.scrbl fix problem with (open-input-file #:for-module? #f ...) 2016-04-16 10:34:18 -06:00
filesystem.scrbl add index for 'chmod' 2016-08-30 17:55:38 -04:00
fixnums.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
flonums.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
for.scrbl Some small fixes to the documentation 2016-10-19 20:52:45 -05:00
format.scrbl option to limit prefix in ~a,~s,~v,~e,~.a,~.s,~.v 2016-02-11 19:51:47 -05:00
futures-logging.scrbl
futures.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
generic.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
hashes.scrbl add hash-keys-subset? 2016-06-30 08:22:18 -06:00
help.scrbl
include.scrbl
info.rkt
init.scrbl Moved racket/gui/init and racket/gui/interactive to the gui-lib 2016-07-26 10:14:38 -04:00
interactive.scrbl
io.scrbl
kernel.scrbl
load-lang.scrbl
logging.scrbl Add #:logger keyword argument to with-intercepted-logging. 2016-10-11 11:50:33 -05:00
macros.scrbl
match-grammar.rkt Add prefab structs to match grammar 2015-08-07 20:11:52 -04:00
match-parse.rkt Add prefab structs to match grammar 2015-08-07 20:11:52 -04:00
match.scrbl struct is preferred 2016-08-25 10:37:06 -05:00
memory.scrbl track cumulative allocation 2016-08-13 14:15:54 -06:00
model.scrbl
module-reflect.scrbl typo: description of module-compiled-name argument 2016-07-30 02:14:01 -04:00
mpairs.scrbl
mz.rkt use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
namespaces.scrbl doc corrections 2016-08-13 14:15:54 -06:00
networking.scrbl Add missing history annotations. 2015-10-12 14:43:19 -05:00
notation.scrbl switch to set-of-scopes expander 2015-07-16 14:20:00 -06:00
numbers.scrbl correct and improve docs on number printing 2016-04-25 10:07:32 -06:00
os-lib.scrbl Fix history annotations to refer to 6.3. 2015-10-12 13:49:55 -05:00
os.scrbl Add racket/os library. 2015-10-05 11:59:38 -06:00
pairs.scrbl add vector-sort to racket/vector (#1398) 2016-09-06 17:07:20 -04:00
parameters.scrbl
paths.scrbl rename relectly added path-extension to path-get-extension 2016-04-24 20:30:51 -06:00
pipes.scrbl
places-logging.scrbl
places.scrbl change place to create a submodule 2015-08-14 17:55:47 -06:00
plumbers.scrbl
port-buffers.scrbl
port-lib.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
port-line-counting.scrbl
port-procs.scrbl add @tech links in input-port? and output-port? 2016-04-04 19:03:16 -04:00
ports.scrbl
pretty-print.scrbl add history, typos 2016-08-17 15:48:22 -05:00
printer.scrbl correct and improve docs on number printing 2016-04-25 10:07:32 -06:00
procedures.scrbl unsafe-{impersonate,chaperone}-procedure: to racket/unsafe/ops 2016-01-16 08:20:36 -07:00
prog-steps.rkt
promise.scrbl Fix history annotations to refer to 6.3. 2015-10-12 13:49:55 -05:00
prop-port.scrbl
read.scrbl adjust docs for read-language 2016-07-01 13:30:50 -06:00
reader-example.rkt
reader.scrbl update read-cdot documentation 2016-09-01 16:28:06 -04:00
readtables.scrbl fix bugs in the reader, especially related to readtables 2015-11-04 08:51:03 -07:00
reference.scrbl Doc: github.com/plt -> github.com/racket 2015-11-06 10:26:07 -06:00
regexps.scrbl doc typo: nonnegative-exact -> exact-nonnegative 2016-08-30 13:34:22 -04:00
rerequire.scrbl
running.scrbl
runtime.scrbl an string -> an immutable string 2016-07-28 15:33:13 -05:00
rx.rkt
sandbox.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
security-guards.scrbl
security.scrbl
semaphores.scrbl
sequences.scrbl doc: clarify elements vs values in sequence/c 2016-10-06 18:46:46 -04:00
serialization.scrbl racket/serialize: support keywords and regexp values 2016-05-15 20:03:15 -06:00
sets.scrbl Some small fixes to the documentation 2016-10-19 20:52:45 -05:00
shared.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
splicing.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
startup.scrbl A few more changes based on Matthew's feedback. 2016-07-26 10:14:38 -04:00
string-input.scrbl
string-output.scrbl doc clarification on output functions and mutable arguments 2015-05-16 15:04:32 -06:00
string-ports.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
strings.scrbl Fix typo in string-ci=? docs (#1424) 2016-08-19 06:33:45 -06:00
struct-inspectors.scrbl add inspector-superior? 2016-06-17 10:23:47 -06:00
struct.scrbl Fix for-label requires for some struct documentation 2016-07-28 15:33:13 -05:00
stx-comp.scrbl identifier-binding: add mode to report top-level binding info 2016-08-22 08:54:34 -06:00
stx-expand.scrbl add module-compiled-indirect-exports and co. 2016-05-18 13:13:15 -06:00
stx-ops.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
stx-param.scrbl Add define-rename-transformer-parameter and friends 2016-01-08 11:03:33 -05:00
stx-patterns.scrbl add support for ... to -> contracts to indicate repeated arguments 2016-01-28 15:34:57 -06:00
stx-props.scrbl Avoid tech collision. 2016-10-09 10:54:53 -05:00
stx-taints.scrbl fix typo in the syntax-arm docs (#1447) 2016-09-07 14:27:35 -04:00
stx-trans.scrbl Some small fixes to the documentation 2016-10-19 20:52:45 -05:00
subprocess.scrbl
surrogate.scrbl
symbols.scrbl
sync.scrbl Add docs for fsemaphores in the Synchronization section. 2015-03-26 11:23:53 -06:00
syntax-model.scrbl add context properties to a module expansion 2016-01-13 07:44:31 -07:00
syntax-util.scrbl Improve with-disappeared-uses and add record-disappeared-use 2016-06-29 12:50:14 -05:00
syntax.scrbl Some small fixes to the documentation 2016-10-19 20:52:45 -05:00
thread-cells.scrbl
thread-groups.scrbl
thread-local.scrbl
threads.scrbl Fix docs on thread-resume-evt 2015-06-20 21:43:34 +08:00
time.scrbl scalinger -> scaliger 2016-03-10 15:08:48 -06:00
trace.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
undefined.scrbl
units.scrbl signature-members: adjust element ids based on reference 2015-08-13 10:44:26 -06:00
unix-paths.scrbl
unsafe-undefined.scrbl
unsafe.scrbl add unsafe-hash-iterate ops; add specific hash table sequences 2016-02-05 14:30:34 -05:00
values.scrbl use `scribble/examples' for the Reference 2015-12-11 12:29:41 -07:00
vectors.scrbl add vector-sort to racket/vector (#1398) 2016-09-06 17:07:20 -04:00
windows-paths.scrbl
write.scrbl fix docs on print 2015-02-12 10:17:55 -07:00