Re: Chez scheme

2016-11-22 Thread Ludovic Courtès
Leo Famulari  skribis:

> On Sun, Nov 20, 2016 at 09:15:39PM +0200, Efraim Flashner wrote:
>> I dug a bit more into Chez sheme and the failing armhf build, and it
>> almost looks like it could be hacked into cross compiling for itself.
>> Then I looked a bit closer here
>> (https://github.com/cisco/ChezScheme/blob/master/c/Mf-arm32le#L17) and
>> it turns out that it targets the Raspberry Pi and not ARMv7. I don't
>> have any armhf hardware capable of running guix to see if it can be made
>> to work. Anyone want to take a stab at it? Or any votes for marking it
>> unsupported?
>
> I vote you mark it unsupported if nobody has said they'll try it in the
> next day or two.

Sounds reasonable, and add the above as a comment.

Ludo’.



Re: Chez scheme

2016-11-21 Thread Leo Famulari
On Sun, Nov 20, 2016 at 09:15:39PM +0200, Efraim Flashner wrote:
> I dug a bit more into Chez sheme and the failing armhf build, and it
> almost looks like it could be hacked into cross compiling for itself.
> Then I looked a bit closer here
> (https://github.com/cisco/ChezScheme/blob/master/c/Mf-arm32le#L17) and
> it turns out that it targets the Raspberry Pi and not ARMv7. I don't
> have any armhf hardware capable of running guix to see if it can be made
> to work. Anyone want to take a stab at it? Or any votes for marking it
> unsupported?

I vote you mark it unsupported if nobody has said they'll try it in the
next day or two.


signature.asc
Description: PGP signature


Chez scheme

2016-11-20 Thread Efraim Flashner
I dug a bit more into Chez sheme and the failing armhf build, and it
almost looks like it could be hacked into cross compiling for itself.
Then I looked a bit closer here
(https://github.com/cisco/ChezScheme/blob/master/c/Mf-arm32le#L17) and
it turns out that it targets the Raspberry Pi and not ARMv7. I don't
have any armhf hardware capable of running guix to see if it can be made
to work. Anyone want to take a stab at it? Or any votes for marking it
unsupported?

-- 
Efraim Flashner  אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted


signature.asc
Description: PGP signature


Re: [PATCH 01/15] gnu: chez-scheme: Add search-path and fix i686 build.

2016-10-19 Thread Leo Famulari
On Wed, Oct 19, 2016 at 06:28:45PM +0200, Federico Beffa wrote:
> On Mon, Oct 17, 2016 at 3:34 PM, Ludovic Courtès  wrote:
> > Hello Federico,
> >
> > Federico Beffa  skribis:
> >
> >> On Sun, Oct 16, 2016 at 8:25 PM, Ricardo Wurmus  wrote:
> >> From 7875840eb0f0d0d844da40735faabd10b791f0dd Mon Sep 17 00:00:00 2001
> >> From: Federico Beffa 
> >> Date: Mon, 17 Oct 2016 09:01:11 +0200
> >> Subject: [PATCH 02/17] gnu: chez-scheme: Fix i686 build.
> >>
> >> * gnu/packages/scheme.scm (chez-scheme): Add 'configure-flags', generalize
> >>   'configure' phase and simplify 'install-doc' phase.
> 
> This patch was meant to fix the i686 build, but it looks like it doesn't :-(
> 
> The patch adds a 'configure-flags' argument specifying the machine
> type as instructed by Chez '-/configure --help' message. In addition,
> patching of the make files was generalized to recognize compiler flags
> for all architectures (previously it only recognized x86_64 ones).
> However, because I'm short on space I only checked that I didn't break
> the 64bit version and didn't build the 32bit one.

Heh :) I recently dug out my LVM cheat sheet and increased my /gnu/store
capacity by 20 GB. It was worth the 20 minutes of downtime!



Re: [PATCH 01/15] gnu: chez-scheme: Add search-path and fix i686 build.

2016-10-19 Thread Federico Beffa
On Mon, Oct 17, 2016 at 3:34 PM, Ludovic Courtès  wrote:
> Hello Federico,
>
> Federico Beffa  skribis:
>
>> On Sun, Oct 16, 2016 at 8:25 PM, Ricardo Wurmus  wrote:
>> From 7875840eb0f0d0d844da40735faabd10b791f0dd Mon Sep 17 00:00:00 2001
>> From: Federico Beffa 
>> Date: Mon, 17 Oct 2016 09:01:11 +0200
>> Subject: [PATCH 02/17] gnu: chez-scheme: Fix i686 build.
>>
>> * gnu/packages/scheme.scm (chez-scheme): Add 'configure-flags', generalize
>>   'configure' phase and simplify 'install-doc' phase.

This patch was meant to fix the i686 build, but it looks like it doesn't :-(

The patch adds a 'configure-flags' argument specifying the machine
type as instructed by Chez '-/configure --help' message. In addition,
patching of the make files was generalized to recognize compiler flags
for all architectures (previously it only recognized x86_64 ones).
However, because I'm short on space I only checked that I didn't break
the 64bit version and didn't build the 32bit one.

If you are OK, I may give it one more shot. Otherwise I will leave it
for somebody interested with an i686 machine.

Regards,
Fede

P.S.: Note for ARM owners: although not advertised, It looks like
peoples have successfully managed to cross-build Chez for ARM:
https://github.com/cisco/ChezScheme/issues/13
I don't have an ARM machine. So, if you are interested, give it a try.



Re: [PATCH 01/15] gnu: chez-scheme: Add search-path and fix i686 build.

2016-10-17 Thread Ludovic Courtès
Hello Federico,

Federico Beffa  skribis:

> On Sun, Oct 16, 2016 at 8:25 PM, Ricardo Wurmus  wrote:

[...]

>> Could you separate these different changes into different patches,
>> please?
>
> I've split them.

Thanks for taking the time.

> From c25b941dc4a0b5d04a871edb590a728b6075b081 Mon Sep 17 00:00:00 2001
> From: Federico Beffa 
> Date: Mon, 17 Oct 2016 08:52:48 +0200
> Subject: [PATCH 01/17] gnu: chez-scheme: Add search-path.
>
> * gnu/packages/scheme.scm (chez-scheme): Do it.

Rather: … (chez-scheme)[native-search-paths]: New field.

Otherwise OK!

> From 7875840eb0f0d0d844da40735faabd10b791f0dd Mon Sep 17 00:00:00 2001
> From: Federico Beffa 
> Date: Mon, 17 Oct 2016 09:01:11 +0200
> Subject: [PATCH 02/17] gnu: chez-scheme: Fix i686 build.
>
> * gnu/packages/scheme.scm (chez-scheme): Add 'configure-flags', generalize
>   'configure' phase and simplify 'install-doc' phase.

These two parts are still logically unrelated; it’s best if you can
split, but OK for this time.

LGTM.

> From 0f2766f86058762443645583b491fb9097a510a3 Mon Sep 17 00:00:00 2001
> From: Federico Beffa 
> Date: Mon, 17 Oct 2016 09:05:39 +0200
> Subject: [PATCH 03/17] gnu: chez-scheme: Move to new module.
>
> * gnu/packages/scheme.scm (chez-scheme, nanopass, stex): Move variables ...
> * gnu/packages/chez.scm (chez-scheme, nanopass, stex): ... here. New module.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add new file.

OK!

Thank you!

Ludo’.



Re: [PATCH 01/15] gnu: chez-scheme: Add search-path and fix i686 build.

2016-10-17 Thread Federico Beffa
On Sun, Oct 16, 2016 at 8:25 PM, Ricardo Wurmus  wrote:
> Hi Federico,
>
> it’s a bit unfortunate to mix moving of packages between modules with a
> fix and a feature addition (search paths).  I think the move to a new
> module is not necessary.

I moved Chez Scheme to a new module because I'm adding several
libraries for it and, from my point of view, it makes sense to have
them all in one place. More libraries will follow.

> Could you separate these different changes into different patches,
> please?

I've split them.

Thanks for the review.
Fede
From c25b941dc4a0b5d04a871edb590a728b6075b081 Mon Sep 17 00:00:00 2001
From: Federico Beffa 
Date: Mon, 17 Oct 2016 08:52:48 +0200
Subject: [PATCH 01/17] gnu: chez-scheme: Add search-path.

* gnu/packages/scheme.scm (chez-scheme): Do it.
---
 gnu/packages/scheme.scm | 4 
 1 file changed, 4 insertions(+)

diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 9597473..c461efb 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -635,6 +635,10 @@ threads.")
  `(("texlive" ,texlive)
("ghostscript" ,ghostscript-gs)
("netpbm" ,netpbm)))
+(native-search-paths
+ (list (search-path-specification
+(variable "CHEZSCHEMELIBDIRS")
+(files (list (string-append "lib/csv" version "-site"))
 (outputs '("out" "doc"))
 (arguments
  `(#:modules ((guix build gnu-build-system)
-- 
2.7.4

From 7875840eb0f0d0d844da40735faabd10b791f0dd Mon Sep 17 00:00:00 2001
From: Federico Beffa 
Date: Mon, 17 Oct 2016 09:01:11 +0200
Subject: [PATCH 02/17] gnu: chez-scheme: Fix i686 build.

* gnu/packages/scheme.scm (chez-scheme): Add 'configure-flags', generalize
  'configure' phase and simplify 'install-doc' phase.
---
 gnu/packages/scheme.scm | 21 -
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index c461efb..10368b2 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -645,6 +645,14 @@ threads.")
   (guix build utils)
   (ice-9 match))
#:test-target "test"
+   #:configure-flags
+   (list ,(match (or (%current-target-system) (%current-system))
+("x86_64-linux" '(list "--machine=ta6le"))
+("i686-linux" '(list "--machine=ti3le"))
+;; FIXME: Some people succeeded in cross-compiling to
+;; ARM. https://github.com/cisco/ChezScheme/issues/13
+(_
+ '(
#:phases
(modify-phases %standard-phases
  ;; Adapt the custom 'configure' script.
@@ -673,12 +681,9 @@ threads.")
(substitute* (find-files "./c" "Mf-[a-zA-Z0-9.]+")
  (("\\$\\{Kernel\\}: \\$\\{kernelobj\\} \\.\\./zlib/libz\\.a")
   "${Kernel}: ${kernelobj}")
- (("ld -melf_x86_64 -r -X -o \\$\\{Kernel\\} \\$\\{kernelobj\\} \\.\\./zlib/libz\\.a")
-  (string-append "ld -melf_x86_64 -r -X -o ${Kernel} ${kernelobj} "
- zlib "/lib/libz.a"))
- (("\\(cd \\.\\./zlib; CFLAGS=-m64 \\./configure --64)")
-  (which "true"))
- (("(cd \\.\\./zlib; make)")
+ (("ld ([-a-zA-Z0-9_${} ]+) \\.\\./zlib/libz\\.a" all args)
+  (string-append "ld " args " " zlib "/lib/libz.a"))
+ (("\\(cd \\.\\./zlib; ([-a-zA-Z0-9=./ ]+))")
   (which "true")))
(substitute* (find-files "mats" "Mf-.*")
  (("^[[:space:]]+(cc ) *") "\tgcc "))
@@ -715,9 +720,7 @@ threads.")
(system* "make" "docs")
(with-directory-excursion "csug"
  (substitute* "Makefile"
-   (("/tmp/csug9") doc)
-   (("^m = a6le")
-    "m := $(shell echo '(machine-type)' | scheme -q)"))
+   (("/tmp/csug9") doc))
  (system* "make" "install")
  (install-file "csug.pdf" doc))
(with-directory-excursion "release_notes"
-- 
2.7.4

From 0f2766f86058762443645583b491fb9097a510a3 Mon Sep 17 00:00:00 2001
From: Federico Beffa 
Date: Mon, 17 Oct 2016 09:05:39 +0200
Subject: [PATCH 03/17] gnu: chez-scheme: Move to new module.

* gnu/packages/scheme.scm (chez-scheme, nanopass, stex): Move variables ...

Re: [PATCH 01/15] gnu: chez-scheme: Add search-path and fix i686 build.

2016-10-16 Thread Ricardo Wurmus
Hi Federico,

it’s a bit unfortunate to mix moving of packages between modules with a
fix and a feature addition (search paths).  I think the move to a new
module is not necessary.

Could you separate these different changes into different patches,
please?

~~ Ricardo




[PATCH 01/15] gnu: chez-scheme: Add search-path and fix i686 build.

2016-10-16 Thread Federico Beffa

From e03430859c864c3b868994143fe729f0558297ab Mon Sep 17 00:00:00 2001
From: Federico Beffa 
Date: Sat, 15 Oct 2016 21:23:31 +0200
Subject: [PATCH 01/15] gnu: chez-scheme: Add search-path and Fix i686 build.

* gnu/packages/scheme.scm (chez-scheme, nanopass, stex): Move variables ...
* gnu/packages/chez.scm (chez-scheme, nanopass, stex): ... here, to a new file.
  (chez-scheme)[arguments]: Add 'configure-flags', generalize 'configure' phase
  and simplify 'install-doc' phase.
  [native-search-path]: Add it.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add new file.
---
 gnu/local.mk|   1 +
 gnu/packages/chez.scm   | 196 
 gnu/packages/scheme.scm | 154 -
 3 files changed, 197 insertions(+), 154 deletions(-)
 create mode 100644 gnu/packages/chez.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 521ba2d..9de9b1b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -68,6 +68,7 @@ GNU_SYSTEM_MODULES =\
   %D%/packages/cdrom.scm			\
   %D%/packages/certs.scm			\
   %D%/packages/check.scm			\
+  %D%/packages/chez.scm\
   %D%/packages/ci.scm\
   %D%/packages/cmake.scm			\
   %D%/packages/code.scm\
diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm
new file mode 100644
index 000..9009865
--- /dev/null
+++ b/gnu/packages/chez.scm
@@ -0,0 +1,196 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Federico Beffa 
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages chez)
+  #:use-module (gnu packages)
+  #:use-module ((guix licenses)
+#:select (gpl2+ lgpl2.0+ lgpl2.1+ asl2.0 bsd-3 expat))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix utils)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages netpbm)
+  #:use-module (gnu packages tex)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages xorg)
+  #:use-module (ice-9 match))
+
+(define nanopass
+  (let ((version "1.9"))
+(origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/nanopass/nanopass-framework-scheme/archive";
+"/v" version ".tar.gz"))
+  (sha256 (base32 "11pwyy4jiwhcl2am3a4ciczacjbjkyvdizqzdglb3l1hj2gj6nv2"))
+  (file-name (string-append "nanopass-" version ".tar.gz")
+
+(define stex
+  (let ((version "1.2.1"))
+(origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/dybvig/stex/archive";
+"/v" version ".tar.gz"))
+  (sha256 (base32 "03pl3f668h24dn51vccr1sj5lsba9zq3j37bnxjvdadcdaj4qy5z"))
+  (file-name (string-append "stex-" version ".tar.gz")
+
+(define-public chez-scheme
+  (package
+(name "chez-scheme")
+(version "9.4")
+(source
+ (origin
+   (method url-fetch)
+   (uri (string-append "https://github.com/cisco/ChezScheme/archive/";
+   "v" version ".tar.gz"))
+   (sha256
+(base32 "0lprmpsjg2plc6ykgkz482zyvhkzv6gd0vnar71ph21h6zknyklz"))
+   (file-name (string-append "chez-scheme-" version ".tar.gz"
+(build-system gnu-build-system)
+(inputs
+ `(("ncurses" ,ncurses)
+   ("libx11" ,libx11)
+   ("xorg-rgb" ,xorg-rgb)
+   ("nanopass" ,nanopass)
+   ("zlib" ,zlib)
+   ("stex" ,stex)))
+(native-inputs
+ `(("texlive" ,texlive)
+   ("ghostscript" ,ghostscript-gs)
+   ("netpbm" ,netpbm)))
+   (native-search-paths
+(list (search-path-specification
+(variable "CHEZSCHEMELIBDIRS")
+(files (list (string-append "lib/csv" version "-site"))
+   (outputs '("out" "doc"))
+(arguments
+ `(#:modules ((guix build gnu-build-system)
+   

Re: [PATCH] gnu: Add Chez-Scheme.

2016-05-15 Thread Ludovic Courtès
Federico Beffa  skribis:

> Well, the new release has just appeared :-) So I will switch to it 
> immediately.

Great.

Thanks for working on it, I’m surprised it took so long before someone
would propose a package.  ;-)

Ludo’.



Re: [PATCH] gnu: Add Chez-Scheme.

2016-05-14 Thread Andreas Enge
On Sat, May 14, 2016 at 09:55:01AM +0200, Federico Beffa wrote:
> > Officially this is version 9.4 and I suppose the coming release will
> > have that number. I will then use 9.3-1.41d94b07 so that going to 9.4
> > will be seen as an upgrade.
> Well, the new release has just appeared :-) So I will switch to it 
> immediately.

:-)

Andreas




Re: [PATCH] gnu: Add Chez-Scheme.

2016-05-14 Thread Federico Beffa
On Sat, May 14, 2016 at 9:28 AM, Federico Beffa  wrote:
> On Sat, May 14, 2016 at 4:51 AM, Leo Famulari  wrote:
>> On Fri, May 13, 2016 at 10:44:28PM +0200, Andreas Enge wrote:
>>> Hi Fede,
>>>
>>> just a tiny comment, as I do not have more time right now:
>>>
>>> On Fri, May 13, 2016 at 09:03:25PM +0200, Federico Beffa wrote:
>>> > There is no official release yet, so I took a snapshot of the git
>>> > repo. We can switch later.
>>> > +(define-public chez-scheme
>>> > +  (package
>>> > +(name "chez-scheme")
>>> > +(version "20160512.41d94b07")
>>>
>>> Did we not decide  on a convention that was "previous version + git commit",
>>> something like "0.0.0-41d94b07", so that the version numbers will increase
>>> with the next (or first) release and upgrades will be smooth?
>>
>> Yes, the manual describes it in 7.6.3 Version Numbers:
>>
>> https://www.gnu.org/software/guix/manual/guix.html#Version-Numbers
>
> Officially this is version 9.4 and I suppose the coming release will
> have that number. I will then use 9.3-1.41d94b07 so that going to 9.4
> will be seen as an upgrade.

Well, the new release has just appeared :-) So I will switch to it immediately.

Regards,
Fede



Re: [PATCH] gnu: Add Chez-Scheme.

2016-05-14 Thread Federico Beffa
On Sat, May 14, 2016 at 4:51 AM, Leo Famulari  wrote:
> On Fri, May 13, 2016 at 10:44:28PM +0200, Andreas Enge wrote:
>> Hi Fede,
>>
>> just a tiny comment, as I do not have more time right now:
>>
>> On Fri, May 13, 2016 at 09:03:25PM +0200, Federico Beffa wrote:
>> > There is no official release yet, so I took a snapshot of the git
>> > repo. We can switch later.
>> > +(define-public chez-scheme
>> > +  (package
>> > +(name "chez-scheme")
>> > +(version "20160512.41d94b07")
>>
>> Did we not decide  on a convention that was "previous version + git commit",
>> something like "0.0.0-41d94b07", so that the version numbers will increase
>> with the next (or first) release and upgrades will be smooth?
>
> Yes, the manual describes it in 7.6.3 Version Numbers:
>
> https://www.gnu.org/software/guix/manual/guix.html#Version-Numbers

Officially this is version 9.4 and I suppose the coming release will
have that number. I will then use 9.3-1.41d94b07 so that going to 9.4
will be seen as an upgrade.

Regards,
Fede



Re: [PATCH] gnu: Add Chez-Scheme.

2016-05-13 Thread Leo Famulari
On Fri, May 13, 2016 at 10:44:28PM +0200, Andreas Enge wrote:
> Hi Fede,
> 
> just a tiny comment, as I do not have more time right now:
> 
> On Fri, May 13, 2016 at 09:03:25PM +0200, Federico Beffa wrote:
> > There is no official release yet, so I took a snapshot of the git
> > repo. We can switch later.
> > +(define-public chez-scheme
> > +  (package
> > +(name "chez-scheme")
> > +(version "20160512.41d94b07")
> 
> Did we not decide  on a convention that was "previous version + git commit",
> something like "0.0.0-41d94b07", so that the version numbers will increase
> with the next (or first) release and upgrades will be smooth?

Yes, the manual describes it in 7.6.3 Version Numbers:

https://www.gnu.org/software/guix/manual/guix.html#Version-Numbers



Re: [PATCH] gnu: Add Chez-Scheme.

2016-05-13 Thread Andreas Enge
Hi Fede,

just a tiny comment, as I do not have more time right now:

On Fri, May 13, 2016 at 09:03:25PM +0200, Federico Beffa wrote:
> There is no official release yet, so I took a snapshot of the git
> repo. We can switch later.
> +(define-public chez-scheme
> +  (package
> +    (name "chez-scheme")
> +(version "20160512.41d94b07")

Did we not decide  on a convention that was "previous version + git commit",
something like "0.0.0-41d94b07", so that the version numbers will increase
with the next (or first) release and upgrades will be smooth?

Andreas




[PATCH] gnu: Add Chez-Scheme.

2016-05-13 Thread Federico Beffa
There is no official release yet, so I took a snapshot of the git
repo. We can switch later.

Regards,
Fede
From ccbc4ed7b9e92823b60d6ed17cf3320585f018b7 Mon Sep 17 00:00:00 2001
From: Federico Beffa 
Date: Thu, 12 May 2016 14:57:25 +0200
Subject: [PATCH] gnu: Add Chez-Scheme.

* gnu/packages/scheme.scm (chez-scheme): New variable.
---
 gnu/packages/scheme.scm | 145 +++-
 1 file changed, 144 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index 6cf75c2..86c099c 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -22,15 +22,20 @@
 
 (define-module (gnu packages scheme)
   #:use-module (gnu packages)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:select (gpl2+ lgpl2.0+ lgpl2.1+ asl2.0 bsd-3))
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages multiprecision)
+  #:use-module (gnu packages ncurses)
   #:use-module (gnu packages databases)
   #:use-module (gnu packages emacs)
+  #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages netpbm)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages texlive)
   #:use-module (gnu packages base)
@@ -544,6 +549,144 @@ an isolated heap allowing multiple VMs to run simultaneously in different OS
 threads.")
 (license bsd-3)))
 
+(define nanopass
+  (let ((version "1.9"))
+(origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/nanopass/nanopass-framework-scheme/archive";
+"/v" version ".tar.gz"))
+  (sha256 (base32 "11pwyy4jiwhcl2am3a4ciczacjbjkyvdizqzdglb3l1hj2gj6nv2"))
+  (file-name (string-append "nanopass-" version ".tar.gz")
+
+(define stex
+  (let ((version "1.2"))
+(origin
+  (method url-fetch)
+  (uri (string-append
+"https://github.com/dybvig/stex/archive";
+"/v" version ".tar.gz"))
+  (sha256 (base32 "0hswmckvbyzy9crj51fy4q14zprh56kvx08sj9r47vm6zkb30mki"))
+      (file-name (string-append "stex-" version ".tar.gz")
+
+(define-public chez-scheme
+  (package
+(name "chez-scheme")
+(version "20160512.41d94b07")
+(source
+ (origin
+   (method git-fetch)
+   (uri (git-reference
+ (url "https://github.com/cisco/ChezScheme.git";)
+ (commit "41d94b0793997e3b90c10d6d28aaa4e2d43857cc")))
+   (sha256
+(base32 "18cg1r0csw1fmsndw1y2hks630q16yf8vl3jvbrbgcg1c8l4hn10"))
+   (file-name (string-append "chez-scheme-" version ".tar.gz"
+(build-system gnu-build-system)
+(inputs
+ `(("ncurses" ,ncurses)
+   ("libx11" ,libx11)
+   ("xorg-rgb" ,xorg-rgb)
+   ("nanopass" ,nanopass)
+   ("zlib" ,zlib)
+   ("stex" ,stex)))
+(native-inputs
+ `(("texlive" ,texlive)
+   ("ghostscript" ,ghostscript)
+   ("netpbm" ,netpbm)))
+(outputs '("out" "doc"))
+(arguments
+ `(#:modules ((guix build gnu-build-system)
+  (guix build utils)
+  (ice-9 match))
+   #:test-target "test"
+   #:phases
+   (modify-phases %standard-phases
+ ;; Adapt the custom 'configure' script.
+ (replace 'configure
+   (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+   (nanopass (assoc-ref inputs "nanopass"))
+   (stex (assoc-ref inputs "stex"))
+   (zlib (assoc-ref inputs "zlib"))
+   (unpack (assoc-ref %standard-phases 'unpack))
+   (patch-source-shebangs
+(assoc-ref %standard-phases 'patch-source-shebangs)))
+   (map (match-lambda
+  ((src orig-name new-name)
+   (with-directory-excursion "."
+ (apply unpack (list #:source src))
+ (apply patch-source-shebangs (list #:source src)))
+   (delete-file-recursively new-name)
+   (system* "mv" orig-name new-name)))
+`((,nanopass "nanopass-framework-scheme-1.9" "nanopass")
+  (,stex "stex-1.2" "stex")))
+   ;; The Makefile wants to download and compile "zlib".  We patch
+   ;; it