1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-09 21:40:33 +02:00
guile/module
Andy Wingo b8a9a666f1 Rewrite subr implementation
* libguile/gsubr.c: Reimplement to store subr names and procedures in a
  side table, and to allocate fresh vcode for each subr.  This allows
  JIT of subrs, moves to a uniform all-code-starts-with-instrument-entry
  regime, and also allows statprof to distinguish between subrs based on
  IP.
* libguile/gsubr.h (SCM_SUBRF, SCM_SUBR_NAME): Call out to functions,
  now that these are in a side table.
  (scm_subr_function, scm_subr_name): New exports.
  (scm_i_primitive_name): New internal function, for looking up a
  primitive name based on IP.
  (scm_apply_subr): Take the subr index.
* libguile/vm-engine.c (subr-call):
* libguile/jit.c (compile_subr_call): Adapt to take index as arg.
* module/statprof.scm (sample-stack-procs, count-call):
  (stack-samples->procedure-data): Update to always record IP in stack
  samples and call counts.
* module/system/vm/frame.scm (frame-procedure-name): Simplify.
  (frame-instruction-pointer-or-primitive-procedure-name): Removed.
* libguile/programs.h:
* libguile/programs.c (scm_primitive_code_name): New function.
* module/system/vm/program.scm (primitive-code-name): New export.
2018-07-29 15:47:07 +02:00
..
ice-9 Use make-struct/simple in psyntax 2018-01-22 08:06:09 +01:00
language Emit instrument-loop in loops. 2018-07-29 15:47:07 +02:00
oop Add new vtable reserved unboxed field 2017-09-26 20:47:27 +02:00
rnrs Replace "pr" struct fields with "pw" fields 2017-09-23 15:33:02 +02:00
scripts Add (system base optimize) module 2018-01-05 10:19:54 +01:00
srfi Introduce make-struct/simple 2018-01-21 21:03:35 +01:00
sxml Remove duplicate definitions of call/ec' and let/ec'. 2013-04-06 15:40:19 +02:00
system Rewrite subr implementation 2018-07-29 15:47:07 +02:00
texinfo Remove all deprecated code 2017-05-22 13:36:42 +02:00
web Merge until 2fe9a852fb from stable-2.2 2017-11-29 21:12:01 +01:00
Makefile.am Emit instrument-loop in loops. 2018-07-29 15:47:07 +02:00
rnrs.scm Add R6RS bytevector->string, string->bytevector 2016-06-21 11:29:14 +02:00
statprof.scm Rewrite subr implementation 2018-07-29 15:47:07 +02:00
texinfo.scm texinfo: fix @url{@@} parsing 2014-11-09 15:56:33 +00:00