add and use racket/repl
As suggested by Sam: Using `racket/repl` to start a read-eval-print loop can mean that less code is loaded if a startup language other than `racket/base` is selected. Closes #2064
This commit is contained in:
parent
388345f35f
commit
865efb7dda
12
pkgs/racket-doc/scribblings/reference/repl.scrbl
Normal file
12
pkgs/racket-doc/scribblings/reference/repl.scrbl
Normal file
|
@ -0,0 +1,12 @@
|
|||
#lang scribble/doc
|
||||
@(require "mz.rkt")
|
||||
|
||||
@title[#:tag "repl-module"]{The @racketmodname[racket/repl] Library}
|
||||
|
||||
@defmodule[racket/repl]
|
||||
|
||||
The @racketmodname[racket/repl] provides the same
|
||||
@racket[read-eval-print-loop] binding as @racketmodname[racket/base], but
|
||||
with even fewer internal dependencies than @racketmodname[racket/base]. It is
|
||||
loaded in some situations on startup, as described in
|
||||
@secref["init-actions"].
|
|
@ -18,4 +18,5 @@
|
|||
@include-section["code-inspectors.scrbl"]
|
||||
@include-section["plumbers.scrbl"]
|
||||
@include-section["sandbox.scrbl"]
|
||||
@include-section["repl.scrbl"]
|
||||
@include-section["linklet.scrbl"]
|
||||
|
|
|
@ -80,20 +80,26 @@ submodule of the required module or the
|
|||
language is used before the module is instantiated; see
|
||||
@secref["configure-runtime"].
|
||||
|
||||
After running all command-line expressions, files, and modules,
|
||||
Racket or GRacket then starts a read-eval-print loop for interactive
|
||||
After running all command-line expressions, files, and modules, Racket
|
||||
or GRacket then starts a read-eval-print loop for interactive
|
||||
evaluation if no command line flags are provided other than
|
||||
@tech{configuration options}. If any command-line argument is
|
||||
@tech{configuration options}. For Racket, the read-eval-print loop is
|
||||
run by calling @racket[read-eval-print-loop] from
|
||||
@racketmodname[racket/repl]. For GRacket, the read-eval-print loop is
|
||||
run by calling @racket[graphical-read-eval-print-loop] from
|
||||
@racketmodname[racket/gui/base]. If any command-line argument is
|
||||
provided that is not a @tech{configuration option}, then the
|
||||
read-eval-print-loop is not started, unless the @Flag{i}/@DFlag{repl}
|
||||
flag is provided on the command line to
|
||||
specifically re-enable it. In addition, just before the command line
|
||||
specifically re-enable it.
|
||||
|
||||
In addition, just before the read-eval-print loop
|
||||
is started, Racket runs @racketmodname[racket/interactive]
|
||||
and GRacket runs @racketmodname[racket/gui/interactive], unless a different
|
||||
interactive file is specified in the the installation's @filepath{config.rktd}
|
||||
file found in @racket[(find-config-dir)], or the file @filepath{interactive.rkt}
|
||||
is found in @racket[(find-system-path 'addon-dir)]. If the
|
||||
@Flag{q}/@DFlag{no-init-file} flag is specified on the command line
|
||||
@Flag{q}/@DFlag{no-init-file} flag is specified on the command line,
|
||||
then no interactive file is run.
|
||||
|
||||
Finally, before Racket or GRacket exits, it calls the procedure that
|
||||
|
@ -103,7 +109,10 @@ specified. Requiring @racketmodname[racket/gui/base] sets this parameter call
|
|||
@racket[(racket 'yield)].
|
||||
|
||||
@history[#:changed "6.7" @elem{Run @racketmodname[racket/interactive] file
|
||||
rather than directly running @racket[(find-system-path 'init-file)].}]
|
||||
rather than directly running @racket[(find-system-path 'init-file)].}
|
||||
#:changed "6.90.0.30" @elem{Run a read-eval-print loop by
|
||||
using @racketmodname[racket/repl] or @racketmodname[racket/gui/base]
|
||||
instead of @racketmodname[racket/base] or @racketmodname[racket/gui/init].}]
|
||||
|
||||
@; ----------------------------------------------------------------------
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
(module misc '#%kernel
|
||||
(#%require "small-scheme.rkt" "define.rkt" "path.rkt" "old-path.rkt"
|
||||
"path-list.rkt" "executable-path.rkt"
|
||||
"reading-param.rkt" "repl.rkt"
|
||||
"reading-param.rkt" "../repl.rkt"
|
||||
(for-syntax '#%kernel "qq-and-or.rkt" "stx.rkt" "stxcase-scheme.rkt" "stxcase.rkt"))
|
||||
|
||||
;; -------------------------------------------------------------------------
|
||||
|
|
|
@ -482,13 +482,13 @@ static void do_scheme_rep(Scheme_Env *env, FinishArgs *fa)
|
|||
|
||||
#ifdef GRAPHICAL_REPL
|
||||
if (!fa->a->alternate_rep) {
|
||||
a[0] = scheme_intern_symbol("racket/gui/init");
|
||||
a[0] = scheme_intern_symbol("racket/gui/base");
|
||||
a[1] = scheme_intern_symbol("graphical-read-eval-print-loop");
|
||||
ending_newline = 0;
|
||||
} else
|
||||
#endif
|
||||
{
|
||||
a[0] = scheme_intern_symbol("racket/base");
|
||||
a[0] = scheme_intern_symbol("racket/repl");
|
||||
a[1] = scheme_intern_symbol("read-eval-print-loop");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user