[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Guile-Emacs update
From: |
joakim |
Subject: |
Re: Guile-Emacs update |
Date: |
Wed, 31 Jul 2013 20:54:58 +0200 |
User-agent: |
Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3.50 (gnu/linux) |
BT Templeton <address@hidden> writes:
> Hello all,
>
> I've pushed several significant changes to the public Guile-Emacs
> repository at <http://git.hcoop.net/?p=bpt/emacs.git>:
>
> * Synchronized with bzr trunk as of mid-July.
>
> * Guile's control operators are used for all Elisp control-flow
> functionality, including special binding, unwind-protect, errors,
> catch/throw, and quit handling.
>
> * Guile exceptions are handled safely, and are re-thrown as Elisp
> errors.
>
> * Emacs's I/O functions can now print arbitrary Guile objects.
>
> * Coccinelle, a semantic patching tool, can now parse 99% of Emacs's C
> code base, compared to 75% previously. This requires using a patched
> version of Coccinelle (<http://git.hcoop.net/?p=bpt/coccinelle.git>)
> and using admin/coccinelle/macros.h as the "--macro-file" argument to
> the spatch command.
>
> * Last but not least, there is now an `eval-scheme' command:
>
> (eval-scheme "(define (fact n) (if (= n 0) 1 (* n (fact (1- n)))))")
> (eval-scheme "(fact 23)") => 25852016738884976640000
>
> Guile-Emacs requires libgc 7.2d or better and the development version of
> Guile. More information is available on the Emacs Wiki at
> <http://www.emacswiki.org/emacs/GuileEmacs>.
I tried this today. I had prepared myself for a lot of work, but I was
surprised to find that the build procedure was very simple!
More or less, on Fedora 19:
# this isnt like the instructions above, but the fedora repo guile is
# seemingly pretty okay
yum install guile*
#the clone took about 10 minutes
git clone git://git.hcoop.net/git/bpt/emacs.git
#make takes a loong time, much more than a normal emacs
./autogen.sh && ./configure && make
The build took 53 minutes including the time to clone the first time.
The second time took only a couple of minutes. This was on a fairly
beefy machine.
m-x tetris, and m-x zone worked fine!
(eval-scheme "(define (fact n) (if (= n 0) 1 (* n (fact (1- n)))))")
(eval-scheme "(fact 23)") => 25852016738884976640000
also worked fine!
I find this pretty awesome. I'm, hmm, awestruck!
--
Joakim Verona