[Guile-commits] Success: Hydra job gnu:guile-master:build_CPPFLAGS=_DSCM_DEBUG=1 on x86_64-linux
Hi, The status of Hydra job gnu:guile-master:build_CPPFLAGS=_DSCM_DEBUG=1 (on x86_64-linux) has changed from "Failed with output" to "Success". For details, see http://hydra.nixos.org/build/6861062 This is likely due to 28 commits by Andy Wingo or Bjørn Forsman . Yay! Regards, The Hydra build daemon.
[Guile-commits] Success: Hydra job gnu:guile-master:build.x86_64-linux
Hi, The status of Hydra job gnu:guile-master:build.x86_64-linux has changed from "Failed with output" to "Success". For details, see http://hydra.nixos.org/build/6861061 This is likely due to 28 commits by Andy Wingo or Bjørn Forsman . Yay! Regards, The Hydra build daemon.
[Guile-commits] Success: Hydra job gnu:guile-master:build_CPPFLAGS=_DSCM_DEBUG_TYPING_STRICTNESS=2 on x86_64-linux
Hi, The status of Hydra job gnu:guile-master:build_CPPFLAGS=_DSCM_DEBUG_TYPING_STRICTNESS=2 (on x86_64-linux) has changed from "Failed with output" to "Success". For details, see http://hydra.nixos.org/build/6861059 This is likely due to 28 commits by Andy Wingo or Bjørn Forsman . Yay! Regards, The Hydra build daemon.
[Guile-commits] Failed with output: Hydra job gnu:guile-master:build_CPPFLAGS=_DSCM_DEBUG_TYPING_STRICTNESS=2 on x86_64-linux
Hi, The status of Hydra job gnu:guile-master:build_CPPFLAGS=_DSCM_DEBUG_TYPING_STRICTNESS=2 (on x86_64-linux) has changed from "Success" to "Failed with output". For details, see http://hydra.nixos.org/build/6856330 This is likely due to 2 commits by Domen Kožar . Go forth and fix it. Regards, The Hydra build daemon.
[Guile-commits] Failed with output: Hydra job gnu:guile-master:build.x86_64-linux
Hi, The status of Hydra job gnu:guile-master:build.x86_64-linux has changed from "Success" to "Failed with output". For details, see http://hydra.nixos.org/build/6856328 This is likely due to 2 commits by Domen Kožar . Go forth and fix it. Regards, The Hydra build daemon.
[Guile-commits] GNU Guile branch, master, updated. v2.1.0-449-gd86682b
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU Guile". http://git.savannah.gnu.org/cgit/guile.git/commit/?id=d86682ba2c555961eb14bed7ae3227c855158d55 The branch, master has been updated via d86682ba2c555961eb14bed7ae3227c855158d55 (commit) from dd1c7decccd35dc37950310b403b8e45a658fea4 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - commit d86682ba2c555961eb14bed7ae3227c855158d55 Author: Andy Wingo Date: Thu Nov 21 22:51:38 2013 +0100 Add explicit nopcodes * libguile/vm-engine.c (VM_NAME): Add explicit nopcodes, later to be interspersed with others. This will allow us some extensibility without always shuffling around opcodes. Also avoid lazy initialization; have the linker do it for us. * libguile/instructions.c (parse_instruction): (scm_instruction_list): Rework instruction parsing to avoid using malloc. It would seem that this would fix some GC issue -- but who knows! --- Summary of changes: libguile/instructions.c | 127 + libguile/vm-engine.c| 161 -- 2 files changed, 183 insertions(+), 105 deletions(-) diff --git a/libguile/instructions.c b/libguile/instructions.c index 8e90f28..e474cf5 100644 --- a/libguile/instructions.c +++ b/libguile/instructions.c @@ -85,6 +85,7 @@ static SCM word_type_symbols[] = by Scheme to generate assemblers and disassemblers for the instructions. */ +#define NOP SCM_T_UINT32_MAX #define OP1(type0) \ (OP (0, type0)) #define OP2(type0, type1) \ @@ -101,102 +102,60 @@ static SCM word_type_symbols[] = #define WORD_TYPE(n, word) \ (((word) >> ((n) * TYPE_WIDTH)) & ((1 << TYPE_WIDTH) - 1)) -struct scm_instruction { - enum scm_opcode opcode; /* opcode */ - const char *name;/* instruction name */ - scm_t_uint32 meta; - SCM symname; /* filled in later */ -}; - - -static scm_i_pthread_mutex_t itable_lock = SCM_I_PTHREAD_MUTEX_INITIALIZER; - +/* Scheme interface */ -static const struct scm_instruction* -fetch_instruction_table () +static SCM +parse_instruction (scm_t_uint8 opcode, const char *name, scm_t_uint32 meta) { - static struct scm_instruction *table = NULL; - - scm_i_pthread_mutex_lock (&itable_lock); - if (SCM_UNLIKELY (!table)) + SCM tail = SCM_EOL; + int len; + + /* Format: (name opcode word0 word1 ...) */ + + if (WORD_TYPE (4, meta)) +len = 5; + else if (WORD_TYPE (3, meta)) +len = 4; + else if (WORD_TYPE (2, meta)) +len = 3; + else if (WORD_TYPE (1, meta)) +len = 2; + else if (WORD_TYPE (0, meta)) +len = 1; + else +abort (); + + switch (len) { - size_t bytes = SCM_VM_NUM_INSTRUCTIONS * sizeof(struct scm_instruction); - int i; - table = malloc (bytes); - memset (table, 0, bytes); - -#define INIT(opcode, tag, name_, meta_) table[opcode].name = name_; table[opcode].meta = meta_; - FOR_EACH_VM_OPERATION (INIT); -#undef INIT - - for (i = 0; i < SCM_VM_NUM_INSTRUCTIONS; i++) -{ - table[i].opcode = i; - if (table[i].name) -table[i].symname = scm_from_utf8_symbol (table[i].name); - else -table[i].symname = SCM_BOOL_F; -} +case 5: + tail = scm_cons (word_type_symbols[WORD_TYPE (4, meta)], tail); +case 4: + tail = scm_cons (word_type_symbols[WORD_TYPE (3, meta)], tail); +case 3: + tail = scm_cons (word_type_symbols[WORD_TYPE (2, meta)], tail); +case 2: + tail = scm_cons (word_type_symbols[WORD_TYPE (1, meta)], tail); +case 1: + tail = scm_cons (word_type_symbols[WORD_TYPE (0, meta)], tail); +default: + tail = scm_cons ((meta & OP_DST) ? sym_left_arrow : sym_bang, tail); + tail = scm_cons (scm_from_int (opcode), tail); + tail = scm_cons (scm_from_utf8_symbol (name), tail); + return tail; } - scm_i_pthread_mutex_unlock (&itable_lock); - - return table; } - -/* Scheme interface */ - SCM_DEFINE (scm_instruction_list, "instruction-list", 0, 0, 0, (void), "") #define FUNC_NAME s_scm_instruction_list { SCM list = SCM_EOL; - int i; - const struct scm_instruction *ip = fetch_instruction_table (); - for (i = 0; i < SCM_VM_NUM_INSTRUCTIONS; i++) -if (ip[i].name) - { -scm_t_uint32 meta = ip[i].meta; -SCM tail = SCM_EOL; -int len; - -/* Format: (name opcode word0 word1 ...) */ - -if (WORD_TYPE (4, meta)) - len = 5; -else if (WORD_TYPE (3, meta)) - len = 4; -else if (WOR
[Guile-commits] GNU Guile branch, master, updated. v2.1.0-448-gdd1c7de
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "GNU Guile". http://git.savannah.gnu.org/cgit/guile.git/commit/?id=dd1c7decccd35dc37950310b403b8e45a658fea4 The branch, master has been updated via dd1c7decccd35dc37950310b403b8e45a658fea4 (commit) via bd63e5b2c3e28cc6db0b0bdc7ea9103b5688e085 (commit) via b85cd20f80c94e4bd8e62363cf509cc9e2f6ede9 (commit) via 350930756c0d1968e6b526bc8900a77fe8e8af58 (commit) via 3506b1521e168a6fd7fb15e07e4eb950393b4fa8 (commit) via e7f9ababe0532c9b086ffa6b3825d0dafc9364bc (commit) via 55ee3607003702ef5c53994c6216b9f0f835e0f1 (commit) via 4fcbc1b0d8207df2dafce5fa80b942366d0ed7ed (commit) from 9b4c3ab5fa293310a7853d99768426b7dba4005b (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log - commit dd1c7decccd35dc37950310b403b8e45a658fea4 Author: Andy Wingo Date: Thu Nov 21 21:15:58 2013 +0100 Setjmp before calling into the VM * libguile/vm-engine.c (CACHE_REGISTER): Remove an unneeded cast. (VM_NAME): * libguile/vm.c (scm_call_n): Setjmp out here. This leaves the VM without any initialization work to do. It also makes it possible to restart the VM in another mode (with hooks, for example). commit bd63e5b2c3e28cc6db0b0bdc7ea9103b5688e085 Author: Andy Wingo Date: Thu Nov 21 19:05:43 2013 +0100 scm_call_n sets up boot continuation frame for VM * libguile/vm-engine.c: * libguile/vm.c (scm_call_n): Move boot continuation setup to scm_call_n, so that vm-engine takes all of its state from the vp. commit b85cd20f80c94e4bd8e62363cf509cc9e2f6ede9 Author: Andy Wingo Date: Thu Nov 21 18:50:12 2013 +0100 scm_call_n avoids double TLS lookup * libguile/vm-engine.c (VM_NAME): Take the current thread as an argument. * libguile/vm.c (scm_i_capture_current_stack): Call thread_vm. (thread_vm): New helper. (scm_the_vm): Call thread_vm. (scm_call_n): Call thread_vm. Avoids a double TLS lookup. commit 350930756c0d1968e6b526bc8900a77fe8e8af58 Author: Andy Wingo Date: Thu Nov 21 18:37:52 2013 +0100 Remove scm_tc7_vm * libguile/tags.h (scm_tc7_vm): Return to pool. * libguile/goops.c: * libguile/gc.c (scm_i_tag_name): * libguile/evalext.c (scm_self_evaluating_p): * libguile/print.c (iprin1): Remove tc7_vm things. * libguile/vm.h (scm_the_vm_fluid): Remove stray declaration. Remove SCM_VM_P. Remove SCM_VM_DATA. Remove SCM_VALIDATE_VM. * libguile/vm.c (scm_i_vm_print): Remove. commit 3506b1521e168a6fd7fb15e07e4eb950393b4fa8 Author: Andy Wingo Date: Thu Nov 21 18:33:06 2013 +0100 Remove last use of SCM vm * libguile/threads.h (scm_i_thread): Hold a struct scm_vm*, not a SCM vm. * libguile/threads.c (guilify_self_2): * libguile/vm.c (make_vm): Adapt. commit e7f9ababe0532c9b086ffa6b3825d0dafc9364bc Author: Andy Wingo Date: Thu Nov 21 18:28:06 2013 +0100 scm_the_vm now returns raw struct scm_vm pointer * libguile/vm.h (scm_the_vm): Return struct scm_vm*. (scm_c_vm_run): Remove. * libguile/control.c: * libguile/eval.c: * libguile/throw.c: * libguile/vm.c: Adapt. commit 55ee3607003702ef5c53994c6216b9f0f835e0f1 Author: Andy Wingo Date: Thu Nov 21 18:23:08 2013 +0100 Prefer scm_call_n to scm_c_vm_run (scm_the_vm()) * libguile/vm.c (scm_i_capture_current_stack): Cosmetic tweak. (scm_call_n): Define here instead of in eval.c. All callers of scm_c_vm_run were passing scm_the_vm() as the VM. Eventually scm_call_n will replace scm_c_vm_run. * libguile/eval.c: Adapt all callers. commit 4fcbc1b0d8207df2dafce5fa80b942366d0ed7ed Author: Andy Wingo Date: Thu Nov 21 18:09:29 2013 +0100 scm_i_prompt_pop_abort_args_x takes struct scm_vm* as arg * libguile/control.h: * libguile/control.c (scm_i_prompt_pop_abort_args_x): Change to take VP as an arg, not VM. * libguile/eval.c (eval): * libguile/throw.c (pre_init_catch): Adapt. --- Summary of changes: libguile/control.c | 10 ++-- libguile/control.h |2 +- libguile/eval.c | 60 +++ libguile/evalext.c |1 - libguile/gc.c|2 - libguile/goops.c |5 -- libguile/print.c |3 - libguile/tags.h |2 +- libguile/threads.c |2 +- libguile/threads.h |2 +- libguile/throw.c | 16 -- libguile/vm-engine.c | 78 + libguile/vm.c| 133 +- libguile/vm.h
[Guile-commits] Success: Hydra job gnu:guile-master:build_enable_guile_debug on x86_64-linux
Hi, The status of Hydra job gnu:guile-master:build_enable_guile_debug (on x86_64-linux) has changed from "Failed with output" to "Success". For details, see http://hydra.nixos.org/build/6851971 This is likely due to 24 commits by Domen Kožar , Jason "Don" O'Conal , Mathijs Kwik , Michael Raskin <7c6f4...@mail.ru>, Nathaniel Baxter , Oliver Charles , Peter Simons , Ricardo M. Correia , Rok Garbas , Rommel M. Martinez , Sergey Mironov or William A. Kennington III . Yay! Regards, The Hydra build daemon.
[Guile-commits] Success: Hydra job gnu:guile-master:build.i686-linux
Hi, The status of Hydra job gnu:guile-master:build.i686-linux has changed from "Failed with output" to "Success". For details, see http://hydra.nixos.org/build/6851972 This is likely due to 24 commits by Domen Kožar , Jason "Don" O'Conal , Mathijs Kwik , Michael Raskin <7c6f4...@mail.ru>, Nathaniel Baxter , Oliver Charles , Peter Simons , Ricardo M. Correia , Rok Garbas , Rommel M. Martinez , Sergey Mironov or William A. Kennington III . Yay! Regards, The Hydra build daemon.