[Guile-commits] Success: Hydra job gnu:guile-master:build_CPPFLAGS=_DSCM_DEBUG=1 on x86_64-linux

2013-11-21 Thread Hydra Build Daemon
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

2013-11-21 Thread Hydra Build Daemon
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

2013-11-21 Thread Hydra Build Daemon
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

2013-11-21 Thread Hydra Build Daemon
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

2013-11-21 Thread Hydra Build Daemon
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

2013-11-21 Thread Andy Wingo
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

2013-11-21 Thread Andy Wingo
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

2013-11-21 Thread Hydra Build Daemon
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

2013-11-21 Thread Hydra Build Daemon
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.