fix -m handling
svn: r8009
This commit is contained in:
parent
265550c08f
commit
96308d90b6
|
@ -292,9 +292,31 @@ static int finish_cmd_line_run(FinishArgs *fa, Repl_Proc repl)
|
||||||
save = p->error_buf;
|
save = p->error_buf;
|
||||||
p->error_buf = &newbuf;
|
p->error_buf = &newbuf;
|
||||||
if (!scheme_setjmp(newbuf)) {
|
if (!scheme_setjmp(newbuf)) {
|
||||||
Scheme_Object *e;
|
Scheme_Object *e, *a[2], *d2s, *nsi, *idb, *b;
|
||||||
|
|
||||||
|
d2s = scheme_builtin_value("datum->syntax");
|
||||||
|
a[0] = scheme_make_false();
|
||||||
|
e = scheme_intern_symbol("main");
|
||||||
|
a[1] = e;
|
||||||
|
e = scheme_apply(d2s, 2, a);
|
||||||
|
|
||||||
|
nsi = scheme_builtin_value("namespace-syntax-introduce");
|
||||||
|
a[0] = e;
|
||||||
|
e = scheme_apply(nsi, 1, a);
|
||||||
|
|
||||||
|
/* Check that `main' is imported and/or defined: */
|
||||||
|
idb = scheme_builtin_value("identifier-binding");
|
||||||
|
a[0] = e;
|
||||||
|
b = scheme_apply(idb, 1, a);
|
||||||
|
if (b == scheme_make_false()) {
|
||||||
|
if (!scheme_lookup_global(scheme_intern_symbol("main"), fa->global_env)) {
|
||||||
|
scheme_signal_error("main: not defined or required into the top-level environment");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
e = scheme_make_pair(e, scheme_vector_to_list(fa->main_args));
|
||||||
|
e = scheme_datum_to_kernel_stx(e);
|
||||||
|
|
||||||
e = scheme_make_pair(scheme_intern_symbol("main"), scheme_vector_to_list(fa->main_args));
|
|
||||||
(void)scheme_eval_with_prompt(e, fa->global_env);
|
(void)scheme_eval_with_prompt(e, fa->global_env);
|
||||||
} else {
|
} else {
|
||||||
exit_val = 1;
|
exit_val = 1;
|
||||||
|
|
|
@ -464,6 +464,7 @@ scheme_apply_for_syntax_in_env
|
||||||
scheme_dynamic_require
|
scheme_dynamic_require
|
||||||
scheme_namespace_require
|
scheme_namespace_require
|
||||||
scheme_is_module_path
|
scheme_is_module_path
|
||||||
|
scheme_datum_to_kernel_stx
|
||||||
scheme_intern_symbol
|
scheme_intern_symbol
|
||||||
scheme_intern_exact_symbol
|
scheme_intern_exact_symbol
|
||||||
scheme_intern_exact_char_symbol
|
scheme_intern_exact_char_symbol
|
||||||
|
|
|
@ -474,6 +474,7 @@ scheme_apply_for_syntax_in_env
|
||||||
scheme_dynamic_require
|
scheme_dynamic_require
|
||||||
scheme_namespace_require
|
scheme_namespace_require
|
||||||
scheme_is_module_path
|
scheme_is_module_path
|
||||||
|
scheme_datum_to_kernel_stx
|
||||||
scheme_intern_symbol
|
scheme_intern_symbol
|
||||||
scheme_intern_exact_symbol
|
scheme_intern_exact_symbol
|
||||||
scheme_intern_exact_char_symbol
|
scheme_intern_exact_char_symbol
|
||||||
|
|
|
@ -452,6 +452,7 @@ EXPORTS
|
||||||
scheme_dynamic_require
|
scheme_dynamic_require
|
||||||
scheme_namespace_require
|
scheme_namespace_require
|
||||||
scheme_is_module_path
|
scheme_is_module_path
|
||||||
|
scheme_datum_to_kernel_stx
|
||||||
scheme_intern_symbol
|
scheme_intern_symbol
|
||||||
scheme_intern_exact_symbol
|
scheme_intern_exact_symbol
|
||||||
scheme_intern_exact_char_symbol
|
scheme_intern_exact_char_symbol
|
||||||
|
|
|
@ -466,6 +466,7 @@ EXPORTS
|
||||||
scheme_dynamic_require
|
scheme_dynamic_require
|
||||||
scheme_namespace_require
|
scheme_namespace_require
|
||||||
scheme_is_module_path
|
scheme_is_module_path
|
||||||
|
scheme_datum_to_kernel_stx
|
||||||
scheme_intern_symbol
|
scheme_intern_symbol
|
||||||
scheme_intern_exact_symbol
|
scheme_intern_exact_symbol
|
||||||
scheme_intern_exact_char_symbol
|
scheme_intern_exact_char_symbol
|
||||||
|
|
|
@ -7778,6 +7778,11 @@ top_introduce_stx(int argc, Scheme_Object **argv)
|
||||||
return form;
|
return form;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Scheme_Object *scheme_datum_to_kernel_stx(Scheme_Object *e)
|
||||||
|
{
|
||||||
|
scheme_datum_to_syntax(e, scheme_false, scheme_sys_wraps(NULL), 0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
static Scheme_Object *
|
static Scheme_Object *
|
||||||
compile(int argc, Scheme_Object *argv[])
|
compile(int argc, Scheme_Object *argv[])
|
||||||
{
|
{
|
||||||
|
|
|
@ -902,6 +902,8 @@ MZ_EXTERN Scheme_Object *scheme_namespace_require(Scheme_Object *);
|
||||||
|
|
||||||
MZ_EXTERN int scheme_is_module_path(Scheme_Object *);
|
MZ_EXTERN int scheme_is_module_path(Scheme_Object *);
|
||||||
|
|
||||||
|
MZ_EXTERN Scheme_Object *scheme_datum_to_kernel_stx(Scheme_Object *e);
|
||||||
|
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
/* symbols */
|
/* symbols */
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
|
|
|
@ -747,6 +747,7 @@ Scheme_Object *(*scheme_apply_for_syntax_in_env)(Scheme_Object *proc, Scheme_Env
|
||||||
Scheme_Object *(*scheme_dynamic_require)(int argc, Scheme_Object *argv[]);
|
Scheme_Object *(*scheme_dynamic_require)(int argc, Scheme_Object *argv[]);
|
||||||
Scheme_Object *(*scheme_namespace_require)(Scheme_Object *);
|
Scheme_Object *(*scheme_namespace_require)(Scheme_Object *);
|
||||||
int (*scheme_is_module_path)(Scheme_Object *);
|
int (*scheme_is_module_path)(Scheme_Object *);
|
||||||
|
Scheme_Object *(*scheme_datum_to_kernel_stx)(Scheme_Object *e);
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
/* symbols */
|
/* symbols */
|
||||||
/*========================================================================*/
|
/*========================================================================*/
|
||||||
|
|
|
@ -516,6 +516,7 @@
|
||||||
scheme_extension_table->scheme_dynamic_require = scheme_dynamic_require;
|
scheme_extension_table->scheme_dynamic_require = scheme_dynamic_require;
|
||||||
scheme_extension_table->scheme_namespace_require = scheme_namespace_require;
|
scheme_extension_table->scheme_namespace_require = scheme_namespace_require;
|
||||||
scheme_extension_table->scheme_is_module_path = scheme_is_module_path;
|
scheme_extension_table->scheme_is_module_path = scheme_is_module_path;
|
||||||
|
scheme_extension_table->scheme_datum_to_kernel_stx = scheme_datum_to_kernel_stx;
|
||||||
scheme_extension_table->scheme_intern_symbol = scheme_intern_symbol;
|
scheme_extension_table->scheme_intern_symbol = scheme_intern_symbol;
|
||||||
scheme_extension_table->scheme_intern_exact_symbol = scheme_intern_exact_symbol;
|
scheme_extension_table->scheme_intern_exact_symbol = scheme_intern_exact_symbol;
|
||||||
scheme_extension_table->scheme_intern_exact_char_symbol = scheme_intern_exact_char_symbol;
|
scheme_extension_table->scheme_intern_exact_char_symbol = scheme_intern_exact_char_symbol;
|
||||||
|
|
|
@ -516,6 +516,7 @@
|
||||||
#define scheme_dynamic_require (scheme_extension_table->scheme_dynamic_require)
|
#define scheme_dynamic_require (scheme_extension_table->scheme_dynamic_require)
|
||||||
#define scheme_namespace_require (scheme_extension_table->scheme_namespace_require)
|
#define scheme_namespace_require (scheme_extension_table->scheme_namespace_require)
|
||||||
#define scheme_is_module_path (scheme_extension_table->scheme_is_module_path)
|
#define scheme_is_module_path (scheme_extension_table->scheme_is_module_path)
|
||||||
|
#define scheme_datum_to_kernel_stx (scheme_extension_table->scheme_datum_to_kernel_stx)
|
||||||
#define scheme_intern_symbol (scheme_extension_table->scheme_intern_symbol)
|
#define scheme_intern_symbol (scheme_extension_table->scheme_intern_symbol)
|
||||||
#define scheme_intern_exact_symbol (scheme_extension_table->scheme_intern_exact_symbol)
|
#define scheme_intern_exact_symbol (scheme_extension_table->scheme_intern_exact_symbol)
|
||||||
#define scheme_intern_exact_char_symbol (scheme_extension_table->scheme_intern_exact_char_symbol)
|
#define scheme_intern_exact_char_symbol (scheme_extension_table->scheme_intern_exact_char_symbol)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user