| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
* testsuite/Makefile.am: Sortof turn these VM tests into more
automake-like tests. Needs further work.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* guile-tools.in: Fix the checks to account for non-srcdir builds.
* libguile/frames.c:
* libguile/objcodes.c:
* libguile/programs.c:
* libguile/instructions.c:
* libguile/vm.c: Fix snarf-includes to cope with non-srcdir builds.
* libguile/instructions.h:
* libguile/instructions.c: Fix the stubs inclusion to be non-srcdir
compatible.
* libguile/vm-expand.h (VM_DEFINE_INSTRUCTION): Fix some things so as not
to require the instructions.h defintitions, since we have the codes
already. Not important tho :)
* pre-inst-guile-env.in: Minor tweak that should have no effect.
* test-suite/standalone/Makefile.am (all-local): Remove a chmod +x step,
the configure.ac rule should do that if necessary.
|
| |
|
|
|
|
|
| |
* module/language/glil/decompile-assembly.scm (decompile-load-program):
Decompile source information into <glil-source> annotations.
|
|
|
|
|
| |
* module/language/glil/compile-assembly.scm (limn-sources): Fix bug
whereby filename was serialized as a ("foo") instead of "foo".
|
|
|
|
|
|
|
|
|
|
|
| |
* module/language/ghil/compile-glil.scm (codegen): Push a program's
source locations before copying external args to heap -- perhaps fixes
(program-source p 0) for some programs.
* module/language/glil/decompile-assembly.scm (decompile-load-program):
Take another arg, the object vector. Emit <glil-bind> and <glil-unbind>
correctly. Properly unparse properties. Just have to deal with source
locations now.
|
|
|
|
|
|
|
|
| |
* module/language/glil/decompile-assembly.scm: A first pass at an
assembly->glil decompiler. Works for a small subset of programs.
* module/Makefile.am (GLIL_LANG_SOURCES):
* module/language/glil/spec.scm (glil): Add the decompiler.
|
|
|
|
|
|
| |
* module/language/assembly/disassemble.scm (disassemble-load-program)
(code-annotation): And update the disassembler for changes to
decompiler.
|
|
|
|
|
| |
* module/language/assembly/decompile-bytecode.scm (decode-load-program):
Parse out jumps as labels.
|
|
|
|
|
|
|
|
|
| |
* test-suite/tests/procprop.test ("procedure-arity"): Procedure-property
'arity on "apply" will fail if "apply" is a program. I suggest that
procedure-property is actually the wrong interface for this; if we even
want to preseve the old arity forms, we should have an accessor for
arity directly that the VM can implement. But in the meantime throw
this nasty error while we decide.
|
|\ |
|
| | |
|
| |
| |
| |
| |
| |
| | |
* lang/Makefile.am (SUBDIRS): Remove.
(elisp_sources): Aggregate the value of `elisp_SOURCES' formerly found
in sub-directories' `Makefile.am'.
|
| |
| |
| |
| | |
* test-suite/tests/guardians.test: Add `define-module' clause.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* libguile/eval.i.c (CEVAL): Update calls to `scm_i_gsubr_apply ()' with
a fixed number of arguments. Use `scm_i_gsubr_apply_list ()' for
calls with a list of arguments of unknown length.
(SCM_APPLY): Use `scm_i_gsubr_apply_list ()' instead of
`scm_i_gsubr_apply ()'.
* libguile/gsubr.c (gsubr_apply_raw): New.
(scm_i_gsubr_apply): Change to take a C vararg list instead of a
Scheme list. Use `gsubr_apply_raw ()'.
(scm_i_gsubr_apply_list): Use `gsubr_apply_raw ()'.
* libguile/gsubr.h (scm_i_gsubr_apply): Update prototype.
(scm_i_gsubr_apply_list): New declaration.
|
| |
| |
| |
| |
| | |
* libguile/eval.i.c (CEVAL): Remove the `cclon' label; replace jumps to
`cclon' with `RETURN (scm_i_gsubr_apply (...))'.
|
| |
| |
| |
| |
| |
| |
| |
| | |
* benchmark-suite/benchmarks/subr.bm (hook1, hook3): New variables.
("subr invocation")("generic subr with rest arg", "generic subr with
rest arg and 3+ parameters"): New benchmarks.
("subr application")("generic subr with rest arg", "generic subr with
rest arg and 3+ parameters"): New benchmarks.
|
| |
| |
| |
| |
| |
| | |
* libguile/gsubr.h (scm_gsubr_apply): Renamed to...
(scm_i_gsubr_apply): this. Marked as `SCM_INTERNAL'. Callers
updated.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* libguile/gsubr.c (scm_gsubr_apply): Make SELF the first argument
instead of the first element of ARGS.
* libguile/gsubr.h: Update.
* libguile/eval.i.c (CEVAL): Update.
|
|\ \
| |/
| |
| |
| |
| | |
Conflicts:
libguile/stacks.c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The idea is to introduce `gsubrs' whose arity is encoded in their type
(more precisely in the sizeof (void *) - 8 MSBs). This removes the
indirection introduced by cclos and simplifies the code.
* libguile/__scm.h (CCLO): Remove.
* libguile/debug.c (scm_procedure_source, scm_procedure_environment):
Remove references to `scm_tc7_cclo'.
* libguile/eval.c (scm_trampoline_0, scm_trampoline_1,
scm_trampoline_2): Replace `scm_tc7_cclo' with `scm_tc7_gsubr'.
* libguile/eval.i.c (CEVAL): Likewise. No longer make PROC the first
argument. Directly invoke `scm_gsubr_apply ()' instead of jump to the
`evap(N+1)' label or call to `SCM_APPLY ()'.
* libguile/evalext.c (scm_self_evaluating_p): Remove reference to
`scm_tc7_cclo'.
* libguile/gc-card.c (scm_i_sweep_card, scm_i_tag_name): Likewise.
* libguile/gc-mark.c (scm_gc_mark_dependencies): Likewise.
* libguile/goops.c (scm_class_of): Likewise.
* libguile/print.c (iprin1): Likewise.
* libguile/gsubr.c (create_gsubr): Use `unsigned int's for REQ, OPT and
RST. Use `scm_tc7_gsubr' instead of `scm_makcclo ()' in the default
case.
(scm_gsubr_apply): Remove calls to `SCM_GSUBR_PROC ()'.
(scm_f_gsubr_apply): Remove.
* libguile/gsubr.h (SCM_GSUBR_TYPE): New definition.
(SCM_GSUBR_MAX): Changed to 33.
(SCM_SET_GSUBR_TYPE, SCM_GSUBR_PROC, SCM_SET_GSUBR_PROC,
scm_f_gsubr_apply): Remove.
* libguile/procprop.c (scm_i_procedure_arity): Remove reference to
`scm_tc7_cclo'; add proper handling of `scm_tc7_gsubr'.
* libguile/procs.c (scm_makcclo, scm_make_cclo): Remove.
(scm_procedure_p): Remove reference to `scm_tc7_cclo'.
(scm_thunk_p): Likewise, plus add proper `scm_tc7_gsubr' handling.
* libguile/procs.h (SCM_CCLO_LENGTH, SCM_MAKE_CCLO_TAG,
SCM_SET_CCLO_LENGTH, SCM_CCLO_BASE, SCM_SET_CCLO_BASE, SCM_CCLO_REF,
SCM_CCLO_SET, SCM_CCLO_SUBR, SCM_SET_CCLO_SUBR, scm_makcclo,
scm_make_cclo): Remove.
* libguile/stacks.c (read_frames): Remove reference to `scm_f_gsubr_apply'.
* libguile/tags.h (scm_tc7_cclo): Remove.
(scm_tc7_gsubr): New.
(scm_tcs_subrs): Add `scm_tc7_gsubr'.
|
| |
| |
| |
| | |
* benchmark-suite/Makefile.am (SCM_BENCHMARKS): Add `subr.bm'.
|
| |
| |
| |
| |
| | |
* test-suite/tests/eval.test (stack->frames): New procedure.
("stacks"): New test prefix.
|
| |
| |
| |
| |
| | |
* test-suite/tests/goops.test ("classes for built-in types"): New test
prefix.
|
| |
| |
| |
| | |
* test-suite/Makefile.am (SCM_TESTS): Add `tests/procprop.test'.
|
| | |
|
| |
| |
| |
| |
| | |
* libguile/gc-mark.c (scm_gc_mark_dependencies): Mark the name, generic,
and properties of subrs.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
* libguile/procs.c (scm_c_make_subr): Remove comments about the number
of subrs, improve formatting.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* libguile/procs.c (scm_subr_table, scm_subr_table_size,
scm_subr_table_room, subr_table_gc_hint, scm_init_subr_table,
scm_mark_subr_table): Remove.
(scm_c_make_subr): Simply return a double-cell, with the procedure
name and properties stored in a two-element array.
(scm_free_subr_entry): Free the meta-info slot.
* libguile/init.c (scm_i_init_guile): Remove call to
`scm_init_subr_table ()'.
* libguile/procs.h (SCM_SUBR_META_INFO): New macro.
(SCM_SNAME, SCM_SUBR_PROPS): Use it.
(SCM_SUBR_GENERIC, SCM_SET_SUBR_GENERIC, SCM_SET_SUBR_GENERIC_LOC):
Update.
(scm_t_subr_entry, SCM_SUBR_ENTRY, SCM_SUBRNUM, scm_subr_table,
scm_mark_subr_table, scm_init_subr_table): Remove.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* libguile/goops.c (scm_c_extend_primitive_generic): Use
`SCM_SET_SUBR_GENERIC ()' instead of using `SCM_SUBR_GENERIC ()' as an
lvalue.
* libguile/procs.c (scm_c_make_subr_with_generic): Use `SCM_SET_SUBR_GENERIC_LOC ()'.
* libguile/procs.h (SCM_SET_SUBR_GENERIC, SCM_SET_SUBR_GENERIC_LOC): New macros.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* libguile/gsubr.c (create_gsubr, create_gsubr_with_generic):
Use `SCM_SNAME ()' instead of `SCM_SUBR_ENTRY (subr).name'.
* libguile/procs.c (scm_c_define_subr_with_generic, scm_makcclo):
Likewise.
(scm_c_make_subr_with_generic): Same with `SCM_SUBR_GENERIC ()'.
|
|\ \
| |/ |
|
| |
| |
| |
| | |
* doc/ref/Makefile.am (CLEANFILES): Add lib-version.texi.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
(Reported by Panicz Maciej Godek.)
* test-suite/tests/syncase.test ("@ works with syncase"): New test.
* ice-9/syncase.scm (guile-macro): When a Guile macro transformer
produces a variable, don't pass it through sc-expand.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| | |
(Reported by David Fang)
* libguile/inline.h: Check if __APPLE_CC__ is defined before testing
its value.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* libguile/goops.c (scm_port_class): Statically allocate it.
(create_port_classes): Don't use `scm_calloc ()'.
* libguile/goops.h (scm_port_class): Update declaration.
* libguile/ports.c (scm_make_port_type): When checking whether
GOOPS is initialized, check whether the first element of
SCM_PORT_CLASS is non-zero.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* libguile/goops.c (create_port_classes): Use
`SCM_I_MAX_PORT_TYPE_COUNT' instead of a hard-wired 256.
* libguile/objects.h (SCM_OUT_PCLASS_INDEX, SCM_INOUT_PCLASS_INDEX):
Likewise.
* libguile/ports.c (scm_make_port_type): Likewise.
* libguile/ports.h (SCM_I_MAX_PORT_TYPE_COUNT): New macro.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* libguile/goops.c (scm_smob_class): Statically allocate it.
(create_smob_classes): Don't malloc(3) `scm_smob_class'.
* libguile/goops.h (scm_smob_class): Update declaration.
* libguile/smob.c (scm_make_smob_type, scm_set_smob_apply): When
checking whether GOOPS is initialized, check whether the first element
of SCM_SMOB_CLASS is non-zero.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* libguile/goops.c (create_smob_classes): Refer to
`SCM_I_MAX_SMOB_TYPE_COUNT' rather than 255 (which is wrong) or 256.
* libguile/smob.c (MAX_SMOB_COUNT): Alias for `SCM_I_MAX_SMOB_TYPE_COUNT'.
* libguile/smob.h (SCM_I_MAX_SMOB_TYPE_COUNT): New macro.
|
|\ \
| |/ |
|
| |
| |
| |
| | |
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
|