mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-15 02:00:22 +02:00
fix some compilation warnings, in anticipation of moving to libguile/
* src/Makefile.am: Use standard guile CFLAGS, which has -Werror and -Wmissing-prototypes. * src/frames.h: * src/instructions.h: * src/objcodes.h: * src/programs.h: * src/vm.h: * src/vm.c: Fix warnings, mostly about prototypes. * src/vm_system.c: Fix a tricky x-is-not-initialized error. Thanks, GCC!
This commit is contained in:
parent
22e95889ff
commit
fcd4901bef
8 changed files with 62 additions and 9 deletions
|
@ -3,10 +3,6 @@ bin_SCRIPTS = guilec guile-disasm
|
||||||
guile_vm_SOURCES = guile-vm.c
|
guile_vm_SOURCES = guile-vm.c
|
||||||
guile_vm_LDADD = libguile-vm.la ../libguile/libguile.la
|
guile_vm_LDADD = libguile-vm.la ../libguile/libguile.la
|
||||||
|
|
||||||
AM_CFLAGS = -Wall -g
|
|
||||||
|
|
||||||
CFLAGS:=$(filter-out -Wmissing-prototypes,$(CFLAGS))
|
|
||||||
|
|
||||||
lib_LTLIBRARIES = libguile-vm.la
|
lib_LTLIBRARIES = libguile-vm.la
|
||||||
libguile_vm_la_SOURCES = \
|
libguile_vm_la_SOURCES = \
|
||||||
bootstrap.h \
|
bootstrap.h \
|
||||||
|
|
|
@ -104,6 +104,13 @@ extern scm_t_bits scm_tc16_heap_frame;
|
||||||
#define SCM_HEAP_FRAME_POINTER(f) (SCM_HEAP_FRAME_DATA (f) + 2)
|
#define SCM_HEAP_FRAME_POINTER(f) (SCM_HEAP_FRAME_DATA (f) + 2)
|
||||||
#define SCM_VALIDATE_HEAP_FRAME(p,x) SCM_MAKE_VALIDATE (p, x, HEAP_FRAME_P)
|
#define SCM_VALIDATE_HEAP_FRAME(p,x) SCM_MAKE_VALIDATE (p, x, HEAP_FRAME_P)
|
||||||
|
|
||||||
|
extern SCM scm_frame_program (SCM frame);
|
||||||
|
extern SCM scm_frame_local_ref (SCM frame, SCM index);
|
||||||
|
extern SCM scm_frame_local_set_x (SCM frame, SCM index, SCM val);
|
||||||
|
extern SCM scm_frame_return_address (SCM frame);
|
||||||
|
extern SCM scm_frame_dynamic_link (SCM frame);
|
||||||
|
extern SCM scm_frame_external_link (SCM frame);
|
||||||
|
|
||||||
extern SCM scm_c_make_heap_frame (SCM *fp);
|
extern SCM scm_c_make_heap_frame (SCM *fp);
|
||||||
extern void scm_bootstrap_frames (void);
|
extern void scm_bootstrap_frames (void);
|
||||||
extern void scm_init_frames (void);
|
extern void scm_init_frames (void);
|
||||||
|
|
|
@ -79,6 +79,14 @@ struct scm_instruction {
|
||||||
extern struct scm_instruction scm_instruction_table[];
|
extern struct scm_instruction scm_instruction_table[];
|
||||||
extern struct scm_instruction *scm_lookup_instruction (SCM name);
|
extern struct scm_instruction *scm_lookup_instruction (SCM name);
|
||||||
|
|
||||||
|
extern SCM scm_instruction_list (void);
|
||||||
|
extern SCM scm_instruction_p (SCM obj);
|
||||||
|
extern SCM scm_instruction_length (SCM inst);
|
||||||
|
extern SCM scm_instruction_pops (SCM inst);
|
||||||
|
extern SCM scm_instruction_pushes (SCM inst);
|
||||||
|
extern SCM scm_instruction_to_opcode (SCM inst);
|
||||||
|
extern SCM scm_opcode_to_instruction (SCM op);
|
||||||
|
|
||||||
extern void scm_bootstrap_instructions (void);
|
extern void scm_bootstrap_instructions (void);
|
||||||
extern void scm_init_instructions (void);
|
extern void scm_init_instructions (void);
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,9 @@ extern scm_t_bits scm_tc16_objcode;
|
||||||
|
|
||||||
extern SCM scm_load_objcode (SCM file);
|
extern SCM scm_load_objcode (SCM file);
|
||||||
extern SCM scm_objcode_to_program (SCM objcode);
|
extern SCM scm_objcode_to_program (SCM objcode);
|
||||||
|
extern SCM scm_objcode_p (SCM obj);
|
||||||
|
extern SCM scm_bytecode_to_objcode (SCM bytecode, SCM nlocs, SCM nexts);
|
||||||
|
extern SCM scm_objcode_to_u8vector (SCM objcode);
|
||||||
|
|
||||||
extern void scm_bootstrap_objcodes (void);
|
extern void scm_bootstrap_objcodes (void);
|
||||||
extern void scm_init_objcodes (void);
|
extern void scm_init_objcodes (void);
|
||||||
|
|
|
@ -72,6 +72,15 @@ extern scm_t_bits scm_tc16_program;
|
||||||
extern SCM scm_c_make_program (void *addr, size_t size, SCM holder);
|
extern SCM scm_c_make_program (void *addr, size_t size, SCM holder);
|
||||||
extern SCM scm_c_make_closure (SCM program, SCM external);
|
extern SCM scm_c_make_closure (SCM program, SCM external);
|
||||||
|
|
||||||
|
extern SCM scm_program_p (SCM obj);
|
||||||
|
extern SCM scm_program_base (SCM program);
|
||||||
|
extern SCM scm_program_arity (SCM program);
|
||||||
|
extern SCM scm_program_meta (SCM program);
|
||||||
|
extern SCM scm_program_objects (SCM program);
|
||||||
|
extern SCM scm_program_external (SCM program);
|
||||||
|
extern SCM scm_program_external_set_x (SCM program, SCM external);
|
||||||
|
extern SCM scm_program_bytecode (SCM program);
|
||||||
|
|
||||||
extern void scm_bootstrap_programs (void);
|
extern void scm_bootstrap_programs (void);
|
||||||
extern void scm_init_programs (void);
|
extern void scm_init_programs (void);
|
||||||
|
|
||||||
|
|
5
src/vm.c
5
src/vm.c
|
@ -44,6 +44,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include "bootstrap.h"
|
||||||
#include "frames.h"
|
#include "frames.h"
|
||||||
#include "instructions.h"
|
#include "instructions.h"
|
||||||
#include "objcodes.h"
|
#include "objcodes.h"
|
||||||
|
@ -175,7 +176,9 @@ vm_heapify_frames_1 (struct scm_vm *vp, SCM *fp, SCM *sp, SCM **destp)
|
||||||
{
|
{
|
||||||
SCM frame;
|
SCM frame;
|
||||||
SCM *dl = SCM_FRAME_DYNAMIC_LINK (fp);
|
SCM *dl = SCM_FRAME_DYNAMIC_LINK (fp);
|
||||||
|
#if 0
|
||||||
SCM *src = SCM_FRAME_UPPER_ADDRESS (fp);
|
SCM *src = SCM_FRAME_UPPER_ADDRESS (fp);
|
||||||
|
#endif
|
||||||
SCM *dest = SCM_FRAME_LOWER_ADDRESS (fp);
|
SCM *dest = SCM_FRAME_LOWER_ADDRESS (fp);
|
||||||
|
|
||||||
if (!dl)
|
if (!dl)
|
||||||
|
@ -336,7 +339,7 @@ SCM_DEFINE (scm_vm_version, "vm-version", 0, 0, 0,
|
||||||
#undef FUNC_NAME
|
#undef FUNC_NAME
|
||||||
|
|
||||||
SCM_DEFINE (scm_the_vm, "the-vm", 0, 0, 0,
|
SCM_DEFINE (scm_the_vm, "the-vm", 0, 0, 0,
|
||||||
(),
|
(void),
|
||||||
"")
|
"")
|
||||||
#define FUNC_NAME s_scm_the_vm
|
#define FUNC_NAME s_scm_the_vm
|
||||||
{
|
{
|
||||||
|
|
24
src/vm.h
24
src/vm.h
|
@ -80,6 +80,30 @@ extern SCM scm_vm_apply (SCM vm, SCM program, SCM args);
|
||||||
extern SCM scm_vm_option_ref (SCM vm, SCM key);
|
extern SCM scm_vm_option_ref (SCM vm, SCM key);
|
||||||
extern SCM scm_vm_option_set_x (SCM vm, SCM key, SCM val);
|
extern SCM scm_vm_option_set_x (SCM vm, SCM key, SCM val);
|
||||||
|
|
||||||
|
extern SCM scm_vm_version (void);
|
||||||
|
extern SCM scm_the_vm (void);
|
||||||
|
extern SCM scm_vm_p (SCM obj);
|
||||||
|
extern SCM scm_vm_ip (SCM vm);
|
||||||
|
extern SCM scm_vm_sp (SCM vm);
|
||||||
|
extern SCM scm_vm_fp (SCM vm);
|
||||||
|
extern SCM scm_vm_boot_hook (SCM vm);
|
||||||
|
extern SCM scm_vm_halt_hook (SCM vm);
|
||||||
|
extern SCM scm_vm_next_hook (SCM vm);
|
||||||
|
extern SCM scm_vm_break_hook (SCM vm);
|
||||||
|
extern SCM scm_vm_enter_hook (SCM vm);
|
||||||
|
extern SCM scm_vm_apply_hook (SCM vm);
|
||||||
|
extern SCM scm_vm_exit_hook (SCM vm);
|
||||||
|
extern SCM scm_vm_return_hook (SCM vm);
|
||||||
|
extern SCM scm_vm_option (SCM vm, SCM key);
|
||||||
|
extern SCM scm_set_vm_option_x (SCM vm, SCM key, SCM val);
|
||||||
|
extern SCM scm_vm_stats (SCM vm);
|
||||||
|
extern SCM scm_vm_this_frame (SCM vm);
|
||||||
|
extern SCM scm_vm_last_frame (SCM vm);
|
||||||
|
extern SCM scm_vm_last_ip (SCM vm);
|
||||||
|
extern SCM scm_vm_save_stack (SCM vm);
|
||||||
|
extern SCM scm_vm_fetch_code (SCM vm);
|
||||||
|
extern SCM scm_vm_fetch_stack (SCM vm);
|
||||||
|
|
||||||
extern SCM scm_load_compiled_with_vm (SCM file);
|
extern SCM scm_load_compiled_with_vm (SCM file);
|
||||||
|
|
||||||
extern void scm_init_vm (void);
|
extern void scm_init_vm (void);
|
||||||
|
|
|
@ -490,14 +490,15 @@ VM_DEFINE_INSTRUCTION (call, "call", 1, -1, 1)
|
||||||
*/
|
*/
|
||||||
if (SCM_VM_CONT_P (x))
|
if (SCM_VM_CONT_P (x))
|
||||||
{
|
{
|
||||||
|
program = x;
|
||||||
vm_call_cc:
|
vm_call_cc:
|
||||||
/* Check the number of arguments */
|
/* Check the number of arguments */
|
||||||
if (nargs != 1)
|
if (nargs != 1)
|
||||||
scm_wrong_num_args (x);
|
scm_wrong_num_args (program);
|
||||||
|
|
||||||
/* Reinstate the continuation */
|
/* Reinstate the continuation */
|
||||||
EXIT_HOOK ();
|
EXIT_HOOK ();
|
||||||
reinstate_vm_cont (vp, x);
|
reinstate_vm_cont (vp, program);
|
||||||
CACHE_REGISTER ();
|
CACHE_REGISTER ();
|
||||||
program = SCM_FRAME_PROGRAM (fp);
|
program = SCM_FRAME_PROGRAM (fp);
|
||||||
CACHE_PROGRAM ();
|
CACHE_PROGRAM ();
|
||||||
|
@ -607,13 +608,15 @@ VM_DEFINE_INSTRUCTION (tail_call, "tail-call", 1, -1, 1)
|
||||||
*sp = scm_apply (x, args, SCM_EOL);
|
*sp = scm_apply (x, args, SCM_EOL);
|
||||||
goto vm_return;
|
goto vm_return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
program = x;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Continuation call
|
* Continuation call
|
||||||
*/
|
*/
|
||||||
if (SCM_VM_CONT_P (x))
|
if (SCM_VM_CONT_P (program))
|
||||||
goto vm_call_cc;
|
goto vm_call_cc;
|
||||||
|
|
||||||
program = x;
|
|
||||||
goto vm_error_wrong_type_apply;
|
goto vm_error_wrong_type_apply;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue