code clean-up and gdb macros from Kevin

svn: r11015
This commit is contained in:
Matthew Flatt 2008-07-31 20:54:59 +00:00
parent ea0a7cdfb5
commit 14983c8f39
16 changed files with 307 additions and 130 deletions

View File

@ -50,13 +50,6 @@ int wx_in_terminal; /* dummy */
# endif
#endif
#ifdef MPW_CPLUS
extern "C" { typedef int (*ACTUAL_MAIN_PTR)(int argc, char **argv); }
# define CAST_ACTUAL_MAIN (ACTUAL_MAIN_PTR)
#else
# define CAST_ACTUAL_MAIN /* empty */
#endif
#ifdef wx_msw
/* Hack: overwrite "y" with "n" in binary to disable checking for another
instance of the same app. */
@ -237,21 +230,6 @@ static void run_from_cmd_line(int argc, char **argv, Scheme_Env *(*mk_basic_env)
run_from_cmd_line(argc, argv, mk_basic_env, do_main_loop);
}
int actual_main(int argc, char **argv)
{
int r;
wxCreateApp();
r = wxEntry(argc, argv);
#ifdef wx_msw
mred_clean_up_gdi_objects();
#endif
return r;
}
static int main_after_stack(int argc, char *argv[])
{
int rval;
@ -280,15 +258,17 @@ static int main_after_stack(int argc, char *argv[])
wxDrop_GetArgs(&argc, &argv, &wx_in_terminal);
#endif
scheme_set_actual_main(actual_main);
mred_set_run_from_cmd_line(run_from_cmd_line);
mred_set_finish_cmd_line_run(finish_cmd_line_run);
rval = scheme_image_main(argc, argv);
wxCreateApp();
rval = wxEntry(argc, argv);
/* This line ensures that __gc_var_stack__ is the
val of GC_variable_stack in scheme_image_main. */
argv = NULL;
#ifdef wx_msw
mred_clean_up_gdi_objects();
#endif
return rval;
}

View File

@ -341,3 +341,8 @@ unix-cygwin-install-3m:
unix-cygwin-install-3m-final:
$(MAKE) unix-install-3m-final
# Generate plt-gdbinit ----------------------------------------
mz-gdbinit: $(srcdir)/mk-gdbinit.ss $(srcdir)/src/stypes.h
mzscheme $(srcdir)/mk-gdbinit.ss

View File

@ -47,7 +47,6 @@ OBJS = salloc.@LTO@ \
file.@LTO@ \
fun.@LTO@ \
hash.@LTO@ \
image.@LTO@ \
jit.@LTO@ \
list.@LTO@ \
module.@LTO@ \
@ -91,7 +90,6 @@ XSRCS = $(XSRCDIR)/salloc.c \
$(XSRCDIR)/file.c \
$(XSRCDIR)/fun.c \
$(XSRCDIR)/hash.c \
$(XSRCDIR)/image.c \
$(XSRCDIR)/jit.c \
$(XSRCDIR)/list.c \
$(XSRCDIR)/module.c \
@ -164,8 +162,6 @@ $(XSRCDIR)/fun.c: ../src/fun.@LTO@ $(XFORMDEP)
$(XFORM) $(XSRCDIR)/fun.c $(SRCDIR)/fun.c
$(XSRCDIR)/hash.c: ../src/hash.@LTO@ $(XFORMDEP)
$(XFORM) $(XSRCDIR)/hash.c $(SRCDIR)/hash.c
$(XSRCDIR)/image.c: ../src/image.@LTO@ $(XFORMDEP)
$(XFORM) $(XSRCDIR)/image.c $(SRCDIR)/image.c
$(XSRCDIR)/jit.c: ../src/jit.@LTO@ $(XFORMDEP)
$(XFORM) $(XSRCDIR)/jit.c $(SRCDIR)/jit.c
$(XSRCDIR)/module.c: ../src/module.@LTO@ $(XFORMDEP)
@ -246,8 +242,6 @@ fun.@LTO@: $(XSRCDIR)/fun.c
$(CC) $(CFLAGS) -c $(XSRCDIR)/fun.c -o fun.@LTO@
hash.@LTO@: $(XSRCDIR)/hash.c
$(CC) $(CFLAGS) -c $(XSRCDIR)/hash.c -o hash.@LTO@
image.@LTO@: $(XSRCDIR)/image.c
$(CC) $(CFLAGS) -c $(XSRCDIR)/image.c -o image.@LTO@
jit.@LTO@: $(XSRCDIR)/jit.c
$(CC) $(CFLAGS) -c $(XSRCDIR)/jit.c -o jit.@LTO@
list.@LTO@: $(XSRCDIR)/list.c

View File

@ -1703,11 +1703,6 @@ MZ_EXTERN void scheme_check_threads(void);
MZ_EXTERN void scheme_wake_up(void);
MZ_EXTERN int scheme_get_external_event_fd(void);
/* image dump enabling startup: */
MZ_EXTERN int scheme_image_main(int argc, char **argv);
MZ_EXTERN int (*scheme_actual_main)(int argc, char **argv);
MZ_EXTERN void scheme_set_actual_main(int (*m)(int argc, char **argv));
/* GC registration: */
MZ_EXTERN void scheme_set_stack_base(void *base, int no_auto_statics);
MZ_EXTERN void scheme_set_stack_bounds(void *base, void *deepest, int no_auto_statics);

View File

@ -196,7 +196,6 @@ static void user_break_hit(int ignore)
/* Forward declarations: */
static void do_scheme_rep(Scheme_Env *);
static int cont_run(FinishArgs *f);
int actual_main(int argc, char *argv[]);
#if defined(WINDOWS_UNICODE_SUPPORT) && !defined(__CYGWIN32__)
# define MAIN wmain
@ -254,7 +253,7 @@ static int main_after_dlls(int argc, MAIN_char **argv)
}
/************************ main_after_stack *************************/
/* Phase 1 setup, then call actual_main (indirectly) */
/* Setup, parse command-line, and go to cont_run */
static int main_after_stack(void *data)
{
@ -272,8 +271,6 @@ static int main_after_stack(void *data)
oskit_prepare(&argc, &argv);
#endif
scheme_set_actual_main(actual_main);
#ifdef WINDOWS_UNICODE_MAIN
{
char *a;
@ -295,34 +292,20 @@ static int main_after_stack(void *data)
}
#endif
rval = scheme_image_main(argc, argv); /* calls actual_main */
/* This line ensures that __gc_var_stack__ is the
val of GC_variable_stack in scheme_image_main. */
argv = NULL;
return rval;
}
/************************* actual_main *****************************/
/* Phase 2 setup, then parse command-line and go to cont_run */
int actual_main(int argc, char *argv[])
{
int exit_val;
#ifndef NO_USER_BREAK_HANDLER
MZ_SIGSET(SIGINT, user_break_hit);
#endif
exit_val = run_from_cmd_line(argc, argv, scheme_basic_env, cont_run);
rval = run_from_cmd_line(argc, argv, scheme_basic_env, cont_run);
scheme_immediate_exit(exit_val);
return exit_val; /* shouldn't happen! */
scheme_immediate_exit(rval);
/* shouldn't get here */
return rval;
}
/************************* cont_run *****************************/
/* Phase 3 setup (none), then go to do_scheme_rep */
/************************* cont_run ******************************/
/* Go to do_scheme_rep */
static int cont_run(FinishArgs *f)
{
@ -330,7 +313,7 @@ static int cont_run(FinishArgs *f)
}
/************************* do_scheme_rep *****************************/
/* Finally, do a read-eval-print-loop */
/* Finally, do a read-eval-print-loop */
static void do_scheme_rep(Scheme_Env *env)
{

258
src/mzscheme/mk-gdbinit.ss Normal file
View File

@ -0,0 +1,258 @@
#lang scheme/base
;; This script generates "mz-gdbinit" to the current directory.
;; It's normally run via `make mz-gdbinit', in which case
;; putting
;; source mz-gdbinit
;; in your "~/.gdbinit" file causes it to be loaded.
;; The "mz-gdbinit" file is generated so that it can use specific
;; type-tag constants from "stypes.h", in case the debugging info
;; can't see them. If "stypes.h" changes, then "mz-gdbinit" needs
;; to be re-built.
(require scheme/runtime-path)
(define-runtime-path stypes-path "src/stypes.h")
(define template #<<EOS
define pso
psox $arg0 0
end
document pso
Print Scheme Object
end
define indent
set $i = $arg0
while $i > 0
printf " "
set $i = $i - 1
end
end
define psox
set $O = ((Scheme_Object*) ($arg0))
indent $arg1
if (((int)$arg0) & 0x1)
set $OT = <<scheme_integer_type>>
else
set $OT = $O->type
end
printf "Scheme_Object %p type=%d\n", $O, $OT
indent $arg1
psoq $O $arg1
end
define psoq
indent $arg1
if (((int)$arg0) & 0x1)
printf "fixnum %d", (((int)$arg0) >> 1)
else
set $O = ((Scheme_Object*) ($arg0))
set $OT = $O->type
if ( $OT == <<scheme_toplevel_type>> )
set $TL = ((Scheme_Toplevel*) ($O))
printf "scheme_toplevel_type depth=%d position=%d", $TL->depth, $TL->position
end
if ( $OT == <<scheme_syntax_type>> )
set $SSO = ((Scheme_Simple_Object*) ($O))
set $index = $SSO->u.ptr_int_val.pint
set $object = (Scheme_Object *) $SSO->u.ptr_int_val.ptr
printf "scheme_syntax_type index=%d\n", $index
pso $object $arg1+1
end
if ( $OT == <<scheme_application2_type>> )
printf "scheme_application2_type\n"
set $AP = ((Scheme_App2_Rec*) ($O))
set $RATOR = $AP->rator
set $RAND = $AP->rand
indent $arg1
printf "rator="
pso $RATOR $arg1+1
indent $arg1
printf "rand="
pso $RAND $arg1+1
end
if ( $OT == <<scheme_sequence_type>> )
printf "scheme_sequence\n"
set $seq = ((Scheme_Sequence *) $O)
p *$seq
set $size = $seq->count
set $cnt = 0
while ( $cnt < $size )
p $cnt
p $seq->array[$cnt]
pso $seq->array[$cnt] $arg1+1
set $cnt++
end
$OT = 0
end
if ( $OT == <<scheme_prim_type>> )
printf "scheme_prim_type\n"
set $pproc = ((Scheme_Primitive_Proc *) $O)
p *$pproc
end
if ( $OT == <<scheme_closure_type>> )
printf "scheme_closure_type\n"
set $closure = ((Scheme_Closure *) $O)
p *$closure
set $code = $closure->code
printf "scheme_closure_type code1\n"
p *$code
set $name = $code->name
p *$name
#pso $name $arg+1
printf "scheme_closure_type code2\n"
pso $code->code $arg+1
$OT = <<scheme_closure_type>>
end
if ( $OT == <<scheme_structure_type>>)
printf "scheme_structure_type\n"
end
if ( $OT == <<scheme_unix_path_type>>)
printf "scheme_unix_path_type"
p (char *)((Scheme_Simple_Object *)$O)->u.byte_str_val.string_val
end
if ( $OT == <<scheme_symbol_type>> )
printf "scheme_symbol_type %s %p", (char *)((Scheme_Symbol*) $O)->s, $O
end
if ( $OT == <<scheme_null_type>> )
printf "scheme_null"
end
if ( $OT == <<scheme_pair_type>> )
printf "scheme_pair\n"
set $SSO = ((Scheme_Simple_Object*) ($O))
set $CAR = $SSO->u.pair_val.car
set $CDR = $SSO->u.pair_val.cdr
indent $arg1
printf "car=\n"
pso $CAR $arg1+1
indent $arg1
printf "cdr=\n"
pso $CDR $arg1+1
end
if ( $OT == <<scheme_vector_type>> )
set $vector = ((struct Scheme_Vector *) $O)
set $size = $vector->size
printf "scheme_vector_type size=%d\n", $size
set $cnt = 0
while ( $cnt < $size )
p $cnt
pso $vector->els[$cnt] $arg1+1
set $cnt++
end
end
if ( $OT == <<scheme_true_type>> )
printf "scheme_true"
end
if ( $OT == <<scheme_false_type>> )
printf "scheme_false"
end
if ( $OT == <<scheme_void_type>> )
printf "scheme_void"
end
if ( $OT == <<scheme_hash_table_type>> )
psht $O $arg1
end
if ( $OT == <<scheme_module_index_type>> )
printf "scheme_module_index_type\n"
set $modidx = ((Scheme_Modidx *) $O)
indent $arg1
printf "path="
pso $modidx->path $arg1+1
indent $arg1
printf "base="
pso $modidx->base $arg1+1
indent $arg1
printf "resolved="
pso $modidx->resolved $arg1+1
end
if ( $OT == <<scheme_namespace_type>>)
printf "scheme_namespace_type\n"
set $env = ((Scheme_Env*)$O)
if ($env->module != 0)
pso $env->module $arg1+1
else
indent $arg1
printf "top-level\n"
end
end
if ( $OT == <<scheme_stx_type>> )
printf "scheme_stx_type\n"
set $stx = ((Scheme_Stx*) $O)
p *$stx
indent $arg1
printf "content="
pso $stx->val $arg1+1
set $srcloc = $stx->srcloc
set $name = ($stx->srcloc->src)
set $name = (char *)((Scheme_Simple_Object *)$name)->u.byte_str_val.string_val
indent $arg1
printf "%s:%i:%i\n", $name, $srcloc->line, $srcloc->col
end
if ( $OT == <<scheme_compilation_top_type>>)
printf "scheme_compilation_top_type\n"
set $top = ((Scheme_Compilation_Top*)$O)
p *$top
pso $top->code $arg1+1
end
if ( $OT == <<scheme_module_type>>)
printf "scheme_module_type\n"
set $module = ((Scheme_Module*)$O)
pso $module->modname $arg1+1
end
if ( $OT == <<scheme_resolved_module_path_type>>)
set $OO = (((Scheme_Small_Object *)$arg0)->u.ptr_val)
printf "scheme_resolved_module_path_type %s %p", (char *)((Scheme_Symbol*) $OO)->s, $OO
end
end
printf "\n"
end
document psoq
print scheme object quiet
end
define psht
set $ht= ((struct Scheme_Hash_Table *) $arg0)
set $size = $ht->size
printf "scheme_hash_table_type size=%d count=%d\n", $size, $ht->count
set $cnt = 0
while ( $cnt < $size )
set $item = $ht->vals[$cnt]
if ($item != 0)
set $item = $ht->keys[$cnt]
indent $arg1
printf "key=\n"
psoq $item $arg1+1
set $item = $ht->vals[$cnt]
indent $arg1
printf "val=\n"
psoq $item $arg1+1
end
set $cnt++
end
end
document psht
print scheme hash table
end
EOS
)
(define styles (with-input-from-file stypes-path
(lambda () (read-string (* 2 (file-size stypes-path))))))
(call-with-output-file* "mz-gdbinit"
#:exists 'truncate
(lambda (out)
(let ([in (open-input-string template)])
(let loop ()
(let ([m (regexp-match #rx"<<([^>]*)>>" in 0 #f out)])
(when m
(let ([m2 (regexp-match (format "~a, */[*] ([0-9]+) [*]/" (cadr m))
styles)])
(if m2
(display (cadr m2) out)
(error 'mk-gdbinit "cannot find type in stypes.h: ~e" (cadr m))))
(loop)))))
(newline out)))

View File

@ -26,7 +26,6 @@ OBJS = salloc.@LTO@ \
fun.@LTO@ \
gmp.@LTO@ \
hash.@LTO@ \
image.@LTO@ \
jit.@LTO@ \
list.@LTO@ \
module.@LTO@ \
@ -66,7 +65,6 @@ SRCS = $(srcdir)/salloc.c \
$(srcdir)/fun.c \
$(srcdir)/gmp/gmp.c \
$(srcdir)/hash.c \
$(srcdir)/image.c \
$(srcdir)/jit.c \
$(srcdir)/list.c \
$(srcdir)/module.c \
@ -170,8 +168,6 @@ gmp.@LTO@: $(srcdir)/gmp/gmp.c $(srcdir)/gmp/gmplonglong.h
$(CC) $(CFLAGS) -c $(srcdir)/gmp/gmp.c -o gmp.@LTO@
hash.@LTO@: $(srcdir)/hash.c
$(CC) $(CFLAGS) -c $(srcdir)/hash.c -o hash.@LTO@
image.@LTO@: $(srcdir)/image.c
$(CC) $(CFLAGS) -c $(srcdir)/image.c -o image.@LTO@
jit.@LTO@: $(srcdir)/jit.c
$(CC) $(CFLAGS) -c $(srcdir)/jit.c -o jit.@LTO@
list.@LTO@: $(srcdir)/list.c

View File

@ -168,7 +168,6 @@ static Scheme_Object *top_expander;
static Scheme_Object *stop_expander;
static Scheme_Object *quick_stx;
static int taking_shortcut;
Scheme_Object *scheme_stack_dump_key;
@ -4634,6 +4633,7 @@ void scheme_init_compile_recs(Scheme_Compile_Info *src, int drec,
dest[i].certs = src[drec].certs;
/* should be always NULL */
dest[i].observer = src[drec].observer;
dest[i].pre_unwrapped = 0;
}
}
@ -4651,6 +4651,7 @@ void scheme_init_expand_recs(Scheme_Expand_Info *src, int drec,
dest[i].value_name = scheme_false;
dest[i].certs = src[drec].certs;
dest[i].observer = src[drec].observer;
dest[i].pre_unwrapped = 0;
}
}
@ -4672,6 +4673,7 @@ void scheme_init_lambda_rec(Scheme_Compile_Info *src, int drec,
lam[dlrec].value_name = scheme_false;
lam[dlrec].certs = src[drec].certs;
lam[dlrec].observer = src[drec].observer;
lam[dlrec].pre_unwrapped = 0;
}
void scheme_merge_lambda_rec(Scheme_Compile_Info *src, int drec,
@ -4918,6 +4920,7 @@ static void *compile_k(void)
rec.value_name = scheme_false;
rec.certs = NULL;
rec.observer = NULL;
rec.pre_unwrapped = 0;
cenv = scheme_new_comp_env(genv, insp, SCHEME_TOPLEVEL_FRAME);
@ -5556,7 +5559,7 @@ scheme_compile_expand_expr(Scheme_Object *form, Scheme_Comp_Env *env,
} else if (rec[drec].comp && SAME_OBJ(var, normal) && !rec[drec].observer) {
/* Skip creation of intermediate form */
Scheme_Syntax *f;
taking_shortcut = 1;
rec[drec].pre_unwrapped = 1;
f = (Scheme_Syntax *)SCHEME_SYNTAX(var);
if (can_recycle_stx && !quick_stx)
quick_stx = can_recycle_stx;
@ -5678,9 +5681,10 @@ compile_expand_app(Scheme_Object *forms, Scheme_Comp_Env *env,
Scheme_Compile_Expand_Info *rec, int drec)
{
Scheme_Object *form, *naya;
int tsc = taking_shortcut;
int tsc;
taking_shortcut = 0;
tsc = rec[drec].pre_unwrapped;
rec[drec].pre_unwrapped = 0;
scheme_rec_add_certs(rec, drec, forms);
if (tsc) {
@ -5907,9 +5911,9 @@ datum_syntax(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec
{
Scheme_Object *c, *v;
if (taking_shortcut) {
if (rec[drec].pre_unwrapped) {
c = form;
taking_shortcut = 0;
rec[drec].pre_unwrapped = 0;
} else {
c = SCHEME_STX_CDR(form);
/* Need datum->syntax, in case c is a list: */
@ -5947,13 +5951,13 @@ datum_expand(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Expand_Info *erec
0, 2);
}
static Scheme_Object *check_top(const char *when, Scheme_Object *form, Scheme_Comp_Env *env)
static Scheme_Object *check_top(const char *when, Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec, int drec)
{
Scheme_Object *c;
if (taking_shortcut) {
if (rec[drec].pre_unwrapped) {
c = form;
taking_shortcut = 0;
rec[drec].pre_unwrapped = 0;
} else
c = SCHEME_STX_CDR(form);
@ -6009,7 +6013,7 @@ top_syntax(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Compile_Info *rec,
{
Scheme_Object *c;
c = check_top(scheme_compile_stx_string, form, env);
c = check_top(scheme_compile_stx_string, form, env, rec, drec);
c = scheme_tl_id_sym(env->genv, c, NULL, 0, NULL);
@ -6031,7 +6035,7 @@ static Scheme_Object *
top_expand(Scheme_Object *form, Scheme_Comp_Env *env, Scheme_Expand_Info *erec, int drec)
{
SCHEME_EXPAND_OBSERVE_PRIM_TOP(erec[drec].observer);
check_top(scheme_expand_stx_string, form, env);
check_top(scheme_expand_stx_string, form, env, erec, drec);
return form;
}
@ -8757,6 +8761,7 @@ static void *expand_k(void)
erec1.value_name = scheme_false;
erec1.certs = certs;
erec1.observer = observer;
erec1.pre_unwrapped = 0;
if (catch_lifts_key)
scheme_frame_captures_lifts(env, scheme_make_lifted_defn, scheme_sys_wraps(env), scheme_false, catch_lifts_key);
@ -9576,13 +9581,13 @@ local_eval(int argc, Scheme_Object **argv)
stx_env->in_modidx = scheme_current_thread->current_local_modidx;
if (!SCHEME_FALSEP(expr)) {
Scheme_Compile_Expand_Info rec;
rec.comp = 0;
rec.depth = -1;
rec.value_name = scheme_false;
rec.certs = certs;
rec.observer = observer;
rec.pre_unwrapped = 0;
/* Evaluate and bind syntaxes */
expr = scheme_add_remove_mark(expr, scheme_current_thread->current_local_mark);

View File

@ -1,45 +0,0 @@
/*
MzScheme
Copyright (c) 2004-2008 PLT Scheme Inc.
Copyright (c) 1995-2001 Matthew Flatt
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301 USA.
libscheme
Copyright (c) 1994 Brent Benson
All rights reserved.
*/
/* Images are long since unsupported, so all that's left is this
little trampoline. */
#include "schpriv.h"
MZ_DLLSPEC int (*scheme_actual_main)(int argc, char **argv);
void scheme_set_actual_main(int (*m)(int argc, char **argv))
{
scheme_actual_main = m;
}
int scheme_image_main(int argc, char **argv)
{
return scheme_actual_main(argc, argv);
}
void scheme_no_dumps(char *why)
{
}

View File

@ -5782,6 +5782,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env,
erec1.value_name = scheme_false;
erec1.certs = rec[drec].certs;
erec1.observer = rec[drec].observer;
erec1.pre_unwrapped = 0;
e = scheme_expand_expr(e, xenv, &erec1, 0);
}
@ -5983,6 +5984,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env,
mrec.value_name = NULL;
mrec.certs = rec[drec].certs;
mrec.observer = NULL;
mrec.pre_unwrapped = 0;
if (!rec[drec].comp) {
Scheme_Expand_Info erec1;
@ -5991,6 +5993,7 @@ static Scheme_Object *do_module_begin(Scheme_Object *form, Scheme_Comp_Env *env,
erec1.value_name = boundname;
erec1.certs = rec[drec].certs;
erec1.observer = rec[drec].observer;
erec1.pre_unwrapped = 0;
SCHEME_EXPAND_OBSERVE_PHASE_UP(observer);
code = scheme_expand_expr_lift_to_let(code, eenv, &erec1, 0);
}

View File

@ -634,6 +634,10 @@ Scheme_Object * scheme_make_eof (void)
return scheme_eof;
}
void scheme_no_dumps(char *why)
{
}
/*========================================================================*/
/* fd arrays */
/*========================================================================*/

View File

@ -1364,6 +1364,7 @@ user_get_or_peek_bytes(Scheme_Input_Port *port,
} else {
char *vb;
vb = scheme_malloc_atomic(size + 1);
memset(vb, size + 1, 0); /* must initialize for security */
bstr = scheme_make_sized_byte_string(vb, size, 0);
}
a[0] = bstr;

View File

@ -1775,6 +1775,7 @@ typedef struct Scheme_Compile_Expand_Info
Scheme_Object *observer;
char dont_mark_local_use;
char resolve_module_ids;
char pre_unwrapped;
int depth;
} Scheme_Compile_Expand_Info;

View File

@ -5371,6 +5371,7 @@ do_define_syntaxes_syntax(Scheme_Object *form, Scheme_Comp_Env *env,
rec1.value_name = NULL;
rec1.certs = rec[drec].certs;
rec1.observer = NULL;
rec1.pre_unwrapped = 0;
if (for_stx) {
names = defn_targets_syntax(names, exp_env, &rec1, 0);
@ -5561,6 +5562,7 @@ void scheme_bind_syntaxes(const char *where, Scheme_Object *names, Scheme_Object
mrec.value_name = NULL;
mrec.certs = certs;
mrec.observer = NULL;
mrec.pre_unwrapped = 0;
a = scheme_compile_expr_lift_to_let(a, eenv, &mrec, 0);

View File

@ -36,7 +36,6 @@
"file"
"fun"
"hash"
"image"
"jit"
"list"
"module"

View File

@ -254,10 +254,6 @@
RelativePath="..\..\Mzscheme\Src\Hash.c"
>
</File>
<File
RelativePath="..\..\Mzscheme\Src\image.c"
>
</File>
<File
RelativePath="..\..\Mzscheme\Src\jit.c"
>