declare and document scheme_set_dll_path() for Windows embedding
This commit is contained in:
parent
825902f8e6
commit
fb1432e70e
|
@ -1,5 +1,6 @@
|
||||||
#lang scribble/doc
|
#lang scribble/doc
|
||||||
@(require "utils.rkt")
|
@(require "utils.rkt"
|
||||||
|
scribble/bnf)
|
||||||
|
|
||||||
@(define cgc-v-3m "CGC versus 3m")
|
@(define cgc-v-3m "CGC versus 3m")
|
||||||
|
|
||||||
|
@ -114,16 +115,28 @@ To embed Racket CGC in a program, follow these steps:
|
||||||
into the top-level environment.
|
into the top-level environment.
|
||||||
|
|
||||||
To embed a module like @racketmodname[racket/base] (along with all
|
To embed a module like @racketmodname[racket/base] (along with all
|
||||||
its dependencies), use @exec{raco ctool --c-mods}, which generates a C file
|
its dependencies), use
|
||||||
|
@seclink["c-mods" #:doc raco-doc]{@exec{raco ctool --c-mods @nonterm{dest}}},
|
||||||
|
which generates a C file @nonterm{dest}
|
||||||
that contains modules in bytecode form as encapsulated in a static
|
that contains modules in bytecode form as encapsulated in a static
|
||||||
array. The generated C file defines a @cppi{declare_modules}
|
array. The generated C file defines a @cppi{declare_modules}
|
||||||
function that takes a @cpp{Scheme_Env*}, installs the modules into
|
function that takes a @cpp{Scheme_Env*}, installs the modules into
|
||||||
the environment, and adjusts the module name resolver to access the
|
the environment, and adjusts the module name resolver to access the
|
||||||
embedded declarations.
|
embedded declarations. If embedded modules refer to runtime files
|
||||||
|
that need to be carried along, supply @DFlag{runtime} to
|
||||||
|
@exec{raco ctool --c-mods} to collect the runtime files into a
|
||||||
|
directory; see @secref[#:doc raco-doc "c-mods"] for more information.
|
||||||
|
|
||||||
Alternately, use @cpp{scheme_set_collects_path} and
|
Alternatively, use @cpp{scheme_set_collects_path} and
|
||||||
@cpp{scheme_init_collection_paths} to configure and install a path
|
@cpp{scheme_init_collection_paths} to configure and install a path
|
||||||
for finding modules at run time.}
|
for finding modules at run time.
|
||||||
|
|
||||||
|
On Windows, @exec{raco ctool --c-mods @nonterm{dest} --runtime
|
||||||
|
@nonterm{dest-dir}} includes in @nonterm{dest-dir} optional DLLs
|
||||||
|
that are referenced by the Racket library to support @tech[#:doc
|
||||||
|
reference-doc]{extflonums} and @racket[bytes-open-converter]. Call
|
||||||
|
@cpp{scheme_set_dll_path} to register @nonterm{dest-dir} so that
|
||||||
|
those DLLs can be found at run time.}
|
||||||
|
|
||||||
@item{Access Racket through @cppi{scheme_dynamic_require},
|
@item{Access Racket through @cppi{scheme_dynamic_require},
|
||||||
@cppi{scheme_load}, @cppi{scheme_eval}, and/or other functions
|
@cppi{scheme_load}, @cppi{scheme_eval}, and/or other functions
|
||||||
|
|
|
@ -91,6 +91,15 @@ Like @cpp{scheme_init_collection_paths_post}, but with @racket[null]
|
||||||
as the last argument.}
|
as the last argument.}
|
||||||
|
|
||||||
|
|
||||||
|
@function[(void scheme_set_dll_path
|
||||||
|
[wchar_t* path])]{
|
||||||
|
|
||||||
|
On Windows only, sets the path used to find optional DLLs that are used
|
||||||
|
by the runtime system: @filepath{longdouble.dll} and one of @filepath{iconv.dll},
|
||||||
|
@filepath{libiconv.dll}, or @filepath{libiconv-2.dll}. The given @var{path}
|
||||||
|
should be an absolute path.}
|
||||||
|
|
||||||
|
|
||||||
@function[(void scheme_seal_parameters)]{
|
@function[(void scheme_seal_parameters)]{
|
||||||
|
|
||||||
Takes a snapshot of the current values of built-in parameters. These
|
Takes a snapshot of the current values of built-in parameters. These
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
function subfunction
|
function subfunction
|
||||||
FormatD
|
FormatD
|
||||||
tech-place
|
tech-place
|
||||||
|
reference-doc raco-doc
|
||||||
(except-out (all-from-out scribble/manual) var)
|
(except-out (all-from-out scribble/manual) var)
|
||||||
(for-label (all-from-out scheme/base)))
|
(for-label (all-from-out scheme/base)))
|
||||||
|
|
||||||
|
@ -157,8 +158,11 @@
|
||||||
|
|
||||||
(define mzc (exec "raco ctool"))
|
(define mzc (exec "raco ctool"))
|
||||||
|
|
||||||
|
(define reference-doc '(lib "scribblings/reference/reference.scrbl"))
|
||||||
|
(define raco-doc '(lib "scribblings/raco/raco.scrbl"))
|
||||||
|
|
||||||
(define (refsecref s)
|
(define (refsecref s)
|
||||||
(secref #:doc '(lib "scribblings/reference/reference.scrbl") s))
|
(secref #:doc reference-doc s))
|
||||||
|
|
||||||
(define Racket
|
(define Racket
|
||||||
(other-manual '(lib "scribblings/reference/reference.scrbl")))
|
(other-manual '(lib "scribblings/reference/reference.scrbl")))
|
||||||
|
|
|
@ -106,8 +106,6 @@ static void (*console_printf)(char *str, ...);
|
||||||
# define PRINTF console_printf
|
# define PRINTF console_printf
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
MZ_EXTERN void scheme_set_dll_path(wchar_t *s);
|
|
||||||
|
|
||||||
static void record_dll_path(void)
|
static void record_dll_path(void)
|
||||||
{
|
{
|
||||||
if (_dlldir[_dlldir_offset] != '<') {
|
if (_dlldir[_dlldir_offset] != '<') {
|
||||||
|
|
|
@ -1946,6 +1946,9 @@ MZ_EXTERN void scheme_set_addon_dir(Scheme_Object *p);
|
||||||
MZ_EXTERN void scheme_set_command_line_arguments(Scheme_Object *vec);
|
MZ_EXTERN void scheme_set_command_line_arguments(Scheme_Object *vec);
|
||||||
MZ_EXTERN void scheme_set_compiled_file_paths(Scheme_Object *list);
|
MZ_EXTERN void scheme_set_compiled_file_paths(Scheme_Object *list);
|
||||||
MZ_EXTERN void scheme_set_compiled_file_roots(Scheme_Object *list);
|
MZ_EXTERN void scheme_set_compiled_file_roots(Scheme_Object *list);
|
||||||
|
#ifdef DOS_FILE_SYSTEM
|
||||||
|
MZ_EXTERN void scheme_set_dll_path(wchar_t *s);
|
||||||
|
#endif
|
||||||
|
|
||||||
MZ_EXTERN void scheme_init_collection_paths(Scheme_Env *global_env, Scheme_Object *extra_dirs);
|
MZ_EXTERN void scheme_init_collection_paths(Scheme_Env *global_env, Scheme_Object *extra_dirs);
|
||||||
MZ_EXTERN void scheme_init_collection_paths_post(Scheme_Env *global_env, Scheme_Object *extra_dirs, Scheme_Object *extra_post_dirs);
|
MZ_EXTERN void scheme_init_collection_paths_post(Scheme_Env *global_env, Scheme_Object *extra_dirs, Scheme_Object *extra_post_dirs);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user