[Guile-commits] Failed with output: Hydra job gnu:guile-master:build_clang.i686-linux

2016-12-30 Thread Hydra Build Daemon
Hi,

The status of Hydra job ‘gnu:guile-master:build_clang.i686-linux’ has changed 
from "Success" to "Failed with output".  For details, see

  https://hydra.nixos.org/build/45604171

Go forth and fix it.

Regards,

The Hydra build daemon.



[Guile-commits] 01/01: psyntax: Generate identifiers in a deterministic fashion.

2016-12-30 Thread Ludovic Court�s
civodul pushed a commit to branch stable-2.0
in repository guile.

commit 458ae248ab353af24e27b8fb3e5fe7a8b78ae219
Author: Mark H Weaver 
Date:   Fri Feb 12 11:19:38 2016 -0500

psyntax: Generate identifiers in a deterministic fashion.

Fixes .

* module/ice-9/boot-9.scm (module-generate-unique-id!)
(module-gensym): New procedures.
(module): Add 'next-unique-id' field.
(the-root-module): Inherit 'next-unique-id' value from early stub.
(make-module, make-autoload-interface): Adjust calls to
module-constructor.
* module/ice-9/psyntax.scm (gen-label, new-mark): Generate unique
identifiers from the module name and the per-module unique-id.
(build-lexical-var, generate-temporaries): Use
'module-gensym' instead of 'gensym'.
* module/ice-9/psyntax-pp.scm: Regenerate.
* module/language/tree-il/fix-letrec.scm (fix-letrec!): Use
'module-gensym' instead of 'gensym'.
* module/system/base/syntax.scm (define-record): Likewise.
(transform-record): Likewise.

Co-authored-by: Ludovic Courtès 
---
 module/ice-9/boot-9.scm|   41 ++--
 module/ice-9/psyntax-pp.scm|   83 
 module/ice-9/psyntax.scm   |   15 +++---
 module/language/tree-il/fix-letrec.scm |6 ++-
 module/system/base/syntax.scm  |8 +--
 5 files changed, 106 insertions(+), 47 deletions(-)

diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index 426d831..f9ccdec 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -1,6 +1,6 @@
 ;;; -*- mode: scheme; coding: utf-8; -*-
 
- Copyright (C) 1995-2014  Free Software Foundation, Inc.
+ Copyright (C) 1995-2014, 2016  Free Software Foundation, Inc.
 
  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
@@ -384,6 +384,13 @@ If there is no handler at all, Guile prints an error and 
then exits."
 (define (module-ref module sym)
   (let ((v (module-variable module sym)))
 (if v (variable-ref v) (error "badness!" (pk module) (pk sym)
+(define module-generate-unique-id!
+  (let ((next-id 0))
+(lambda (m)
+  (let ((i next-id))
+(set! next-id (+ i 1))
+i
+(define module-gensym gensym)
 (define (resolve-module . args)
   #f)
 
@@ -2021,7 +2028,8 @@ VALUE."
  submodules
  submodule-binder
  public-interface
- filename)))
+ filename
+ next-unique-id)))
 
 
 ;; make-module  size uses binder
@@ -2049,7 +2057,7 @@ VALUE."
   (make-hash-table %default-import-size)
   '()
   (make-weak-key-hash-table 31) #f
-  (make-hash-table 7) #f #f #f))
+  (make-hash-table 7) #f #f #f 0))
 
 
 
@@ -2656,6 +2664,11 @@ VALUE."
   (let ((m (make-module 0)))
 (set-module-obarray! m (%get-pre-modules-obarray))
 (set-module-name! m '(guile))
+
+;; Inherit next-unique-id from preliminary stub of
+;; %module-get-next-unique-id! defined above.
+(set-module-next-unique-id! m (module-generate-unique-id! #f))
+
 m))
 
 ;; The root interface is a module that uses the same obarray as the
@@ -2684,6 +2697,11 @@ VALUE."
   the-root-module
   (error "unexpected module to resolve during module boot" name)))
 
+(define (module-generate-unique-id! m)
+  (let ((i (module-next-unique-id m)))
+(set-module-next-unique-id! m (+ i 1))
+i))
+
 ;; Cheat.  These bindings are needed by modules.c, but we don't want
 ;; to move their real definition here because that would be unnatural.
 ;;
@@ -2714,6 +2732,21 @@ VALUE."
 (nested-define-module! (resolve-module '() #f) name mod)
 (accessor mod))
 
+(define* (module-gensym #:optional (id " mg") (m (current-module)))
+  "Return a fresh symbol in the context of module M, based on ID (a
+string or symbol).  As long as M is a valid module, this procedure is
+deterministic."
+  (define (->string number)
+(number->string number 16))
+
+  (if m
+  (string->symbol
+   (string-append id "-"
+  (->string (hash (module-name m) most-positive-fixnum))
+  "-"
+  (->string (module-generate-unique-id! m
+  (gensym id)))
+
 (define (make-modules-in module name)
   (or (nested-ref-module module name)
   (let ((m (make-module 31)))
@@ -3013,7 +3046,7 @@ VALUE."
   #:warning "Failed to autoload ~a in ~a:\n" sym name
 (module-constructor (make-hash-table 0) '() b #f #f name 'autoload #f
 (make-hash-table 0) '() (make-weak-value-hash-table 
31) #f
-(make-hash-table 0) #f #f #f)))
+(make-hash-table 0) #f #f #f 0)))
 
 (define (module-autoload! module . args)
   "Have @var{module} automatically load the 

[Guile-commits] branch stable-2.0 updated (54b4345 -> 458ae24)

2016-12-30 Thread Ludovic Court�s
civodul pushed a change to branch stable-2.0
in repository guile.

  from  54b4345   build: Honor $SOURCE_DATE_EPOCH for the recorded 
timestamp.
   new  458ae24   psyntax: Generate identifiers in a deterministic fashion.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "adds" were already present in the repository and have only
been added to this reference.


Summary of changes:
 module/ice-9/boot-9.scm|   41 ++--
 module/ice-9/psyntax-pp.scm|   83 
 module/ice-9/psyntax.scm   |   15 +++---
 module/language/tree-il/fix-letrec.scm |6 ++-
 module/system/base/syntax.scm  |8 +--
 5 files changed, 106 insertions(+), 47 deletions(-)