* GNU Guile 1.9.5 released (alpha)
@ 2009-11-17 23:21 Ludovic Courtès
2009-11-18 11:23 ` Ludovic Courtès
` (3 more replies)
0 siblings, 4 replies; 14+ messages in thread
From: Ludovic Courtès @ 2009-11-17 23:21 UTC (permalink / raw)
To: guile-user; +Cc: guile-devel
[-- Attachment #1: Type: text/plain, Size: 9469 bytes --]
We are pleased to announce GNU Guile release 1.9.5. This is the next
pre-release of what will eventually become the 2.0 release series. It
provides many new noteworthy features, most notably the addition of a
compiler and virtual machine. We encourage you to test them and provide
feedback to `guile-devel@gnu.org'.
The Guile web page is located at http://gnu.org/software/guile/, and
among other things, it contains a link to the Guile FAQ and pointers to
the mailing lists.
Guile is an implementation of the Scheme programming language, with
support for many SRFIs, packaged for use in a wide variety of
environments. In addition to implementing the R5RS Scheme standard,
Guile includes a module system, full access to POSIX system calls,
networking support, multiple threads, dynamic linking, a foreign
function call interface, and powerful string processing.
Guile can run interactively, as a script interpreter, and as a Scheme
compiler to VM bytecode. It is also packaged as a library so that
applications can easily incorporate a complete Scheme interpreter/VM.
An application can use Guile as an extension language, a clean and
powerful configuration language, or as multi-purpose "glue" to connect
primitives provided by the application. It is easy to call Scheme code
From C code and vice versa. Applications can add new functions, data
types, control structures, and even syntax to Guile, to create a
domain-specific language tailored to the task at hand.
Here are the compressed sources:
ftp://alpha.gnu.org/gnu/guile/guile-1.9.5.tar.gz (4.6MB)
Here are the GPG detached signatures[*]:
ftp://alpha.gnu.org/gnu/guile/guile-1.9.5.tar.gz.sig
Here are the MD5 and SHA1 checksums:
a5b5527d59e30dd964bd3a9d00dad452 guile-1.9.5.tar.gz
b8d6055318c8ac3482479df679adf943a2e1c292 guile-1.9.5.tar.gz
[*] You can use either of the above signature files to verify that
the corresponding file (without the .sig suffix) is intact. First,
be sure to download both the .sig file and the corresponding tarball.
Then, run a command like this:
gpg --verify guile-1.9.5.tar.gz.sig
If that command fails because you don't have the required public key,
then run this command to import it:
gpg --keyserver keys.gnupg.net --recv-keys EA52ECF4
and rerun the `gpg --verify' command.
This release was bootstrapped with the following tools:
Autoconf 2.64
Automake 1.11
Libtool 2.2.6
Gnulib v0.0-2885-g29c308a
This is a new release series with many new features and differences
compared to 1.8. The complete list of changes compared to the 1.8.x
series is available in the `NEWS' file.
Changes since the 1.9.4 pre-release:
** Compiled procedures may now have more than one arity.
This can be the case, for example, in case-lambda procedures. The
arities of compiled procedures may be accessed via procedures from the
`(system vm program)' module; see "Compiled Procedures", "Optional
Arguments", and "Case-lambda" in the manual.
** `case-lambda' is now available in the default environment.
The binding in the default environment is equivalent to the one from the
`(srfi srfi-16)' module. Use the srfi-16 module explicitly if you wish
to maintain compatibility with Guile 1.8 and earlier.
** VM calling convention change: callee-parsed arguments
As an internal implementation detail, compiled procedures are now
responsible for parsing their own arguments, which they receive on the
stack.
** VM support for multiple-arity dispatch
Calls to procedures with multiple arities, for example those made be
`case-lambda', now dispatch via special opcodes, without the need to
cons a rest list.
** Intermediate language support for multiple-arity procedures.
In the intermediate language, tree-il, all procedures may have one or
more arities. This allows all Guile languages to have multiple arities.
It is, however, an incompatible change, and anyone maintaining a
compiler out-of-tree would be advised to get it into Guile soon :)
** `lambda*' and `define*' are now available in the default environment
As with `case-lambda', `(ice-9 optargs)' continues to be supported, for
compatibility purposes. No semantic change has been made (we hope).
Optional and keyword arguments now dispatch via special VM operations,
without the need to cons rest arguments, making them very fast.
** Better support for Lisp `nil'.
The bit representation of `nil' has been tweaked so that it is now very
efficient to check e.g. if a value is equal to Scheme's end-of-list or
Lisp's nil. Additionally there are a heap of new, specific predicates
like scm_is_null_or_nil. Probably in the future we will #define
scm_is_null to scm_is_null_or_nil.
** No future.
Actually the future is still in the state that it was, is, and ever
shall be, Amen, except that `futures.c' and `futures.h' are no longer a
part of it. These files were experimental, never compiled, and would be
better implemented in Scheme anyway. In the future, that is.
** Support for static allocation of strings, symbols, and subrs.
Calls to snarfing CPP macros like SCM_DEFINE macro will now allocate
much of their associated data as static variables, reducing Guile's
memory footprint.
** Inline vector allocation
Instead of having vectors point out into the heap for their data, their
data is now allocated inline to the vector object itself. The same is
true for bytevectors, by default, though there is an indirection
available which should allow for making a bytevector from an existing
memory region.
** New syntax: include-from-path.
`include-from-path' is like `include', except it looks for its file in
the load path. It can be used to compile other files into a file.
** New syntax: quasisyntax.
`quasisyntax' is to `syntax' as `quasiquote' is to `quote'. See the R6RS
documentation for more information. Thanks to Andre van Tonder for the
implementation.
** Cleanups to Guile's primitive object system.
There were a number of pieces in `objects.[ch]' that tried to be a
minimal object system, but were never documented, and were quickly
obseleted by GOOPS' merge into Guile proper. So `scm_make_class_object',
`scm_make_subclass_object', `scm_metaclass_standard', and like symbols
from objects.h are no more. In the very unlikely case in which these
were useful to you, we urge you to contact guile-devel.
** GOOPS cleanups.
GOOPS had a number of concepts that were relevant to the days of Tcl,
but not any more: operators and entities, mainly. These objects were
never documented, and it is unlikely that they were ever used. Operators
were a kind of generic specific to the Tcl support. Entities were
applicable structures, but were unusable; entities will come back in the
next alpha release, but with a less stupid name.
** Faster bit operations.
The bit-twiddling operations `ash', `logand', `logior', and `logxor' now
have dedicated bytecodes. Guile is not just for symbolic computation,
it's for number crunching too.
** `inet-ntop' and `inet-pton' are always available.
Guile now use a portable implementation of `inet_pton'/`inet_ntop', so
there is no more need to use `inet-aton'/`inet-ntoa'. The latter
functions are deprecated.
** R6RS block comment support
Guile now supports R6RS nested block comments. The start of a comment is
marked with `#|', and the end with `|#'.
** `guile-2' cond-expand feature
To test if your code is running under Guile 2.0 (or its alpha releases),
test for the `guile-2' cond-expand feature. Like this:
(cond-expand (guile-2 (eval-when (compile)
;; This must be evaluated at compile time.
(fluid-set! current-reader my-reader)))
(guile
;; Earlier versions of Guile do not have a
;; separate compilation phase.
(fluid-set! current-reader my-reader)))
** ABI harmonization
`scm_search_path' now has the signature it did in 1.8, reverting an
incompatible change made in 1.9.0.
** Compile-time warnings: -Warity-mismatch
Guile can warn when you pass the wrong number of arguments to a
procedure. Pass the -Warity-mismatch on the `guile-tools compile'
command line, or add `#:warnings '(arity-mismatch)' to your `compile'
or `compile-file' invocation.
** Guile is now built without `-Werror' by default
Use the `--enable-error-on-warning' configure option to enable it.
** And of course, the usual collection of bugfixes
Interested users should see the ChangeLog for more information.
You can follow Guile development in the Git repository and on the Guile
mailing lists. Guile builds from the `master' branch of Git have
version number 1.9.x.
Guile versions with an odd middle number, e.g., 1.9.*, are unstable
development versions. Even middle numbers indicate stable versions.
This has been the case since the 1.3.* series.
Please report bugs to `bug-guile@gnu.org'. We also welcome reports of
successful builds, which can be sent to the same email address.
Ludovic Courtès, on behalf of the Guile team.
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-17 23:21 GNU Guile 1.9.5 released (alpha) Ludovic Courtès
@ 2009-11-18 11:23 ` Ludovic Courtès
2009-11-28 22:55 ` Linas Vepstas
` (2 subsequent siblings)
3 siblings, 0 replies; 14+ messages in thread
From: Ludovic Courtès @ 2009-11-18 11:23 UTC (permalink / raw)
To: guile-user; +Cc: guile-devel
[-- Attachment #1: Type: text/plain, Size: 1214 bytes --]
Hello Guilers!
Of course, it was not until this morning that I discovered this:
--8<---------------cut here---------------start------------->8---
scheme@(guile-user)> %load-compiled-path
$1 = ("/home/ludo/soft/lib/GNU Guile/1.9/ccache")
scheme@(guile-user)> %load-path
$2 = ("/home/ludo/.nix-profile/share/guile/site" "/home/ludo/soft/share/GNU Guile/site" "/home/ludo/soft/share/GNU Guile/1.9" "/home/ludo/soft/share/GNU Guile")
$ ls ~/soft/share/GNU\ Guile/1.9/
guile-procedures.txt ice-9/ lang/ language/ oop/ rnrs/ scripts/ srfi/ system/
--8<---------------cut here---------------end--------------->8---
The directory names contain “GNU Guile” instead of “guile”. On
GNU/Linux at least, the build system and Guile don’t have any problems
dealing with whitespaces in directory names, so it actually works, but
it surely wasn’t intended.
I fixed it in ‘master’ and started looking for someone else to blame:
http://git.sv.gnu.org/cgit/guile.git/commit/?id=53da7372beca90a58b7401a84627815289a53d11
http://thread.gmane.org/gmane.comp.sysutils.automake.bugs/4803
Apologies for the inconvenience, and happy GNU\ Guile hacking
nevertheless!
Ludo’.
[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-17 23:21 GNU Guile 1.9.5 released (alpha) Ludovic Courtès
2009-11-18 11:23 ` Ludovic Courtès
@ 2009-11-28 22:55 ` Linas Vepstas
2009-11-28 23:21 ` Ludovic Courtès
2009-11-29 2:27 ` Linas Vepstas
2009-11-29 2:45 ` Linas Vepstas
3 siblings, 1 reply; 14+ messages in thread
From: Linas Vepstas @ 2009-11-28 22:55 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: Guile Development
Hi Ludo
2009/11/17 Ludovic Courtès <ludo@gnu.org>:
> We are pleased to announce GNU Guile release 1.9.5.
I just tried 1.9.5 today, and am getting compile errors in
my app, which I did not get in 1.8.6 or 1.9.0 :
error: non-local function ‘static<anonymous struct>*
opencog::SchemeSmob::ss_incoming_set(<anonymous struct>*)’ uses
anonymous type
and zillions of others.
The following reproduces the bug:
#include <libguile.h>
class SchemeSmob
{
private:
static SCM ss_incoming_set(SCM);
static void init(void);
public:
SchemeSmob(void);
};
#define C(X) ((SCM (*) ()) X)
void SchemeSmob::init(void)
{
scm_c_define_gsubr("cog-incoming-set", 1, 0, 0, C(ss_incoming_set));
}
compiled without any flags....
Again, above compiles fine with 1.8.6 and I think it compiled
with 1.9.0, not sure.
--linas
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-28 22:55 ` Linas Vepstas
@ 2009-11-28 23:21 ` Ludovic Courtès
2009-11-29 1:24 ` Linas Vepstas
0 siblings, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2009-11-28 23:21 UTC (permalink / raw)
To: linasvepstas; +Cc: Guile Development
Hi Linas,
Linas Vepstas <linasvepstas@gmail.com> writes:
> error: non-local function ‘static<anonymous struct>*
> opencog::SchemeSmob::ss_incoming_set(<anonymous struct>*)’ uses
> anonymous type
Lilypond is written in C++ and... (looks at the logs...) ... it has
the same problem, starting from 1.9.5
(http://hydra.nixos.org/build/157322/log/raw).
So this must be related to static subr allocation and suchlike. Can you
try commenting out ‘# define SCM_SUPPORT_STATIC_ALLOCATION’ in
‘snarf.h’?
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-28 23:21 ` Ludovic Courtès
@ 2009-11-29 1:24 ` Linas Vepstas
2009-11-29 3:44 ` Ken Raeburn
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: Linas Vepstas @ 2009-11-29 1:24 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: Guile Development
2009/11/28 Ludovic Courtès <ludo@gnu.org>:
> Hi Linas,
>
> Linas Vepstas <linasvepstas@gmail.com> writes:
>
>> error: non-local function ‘static<anonymous struct>*
>> opencog::SchemeSmob::ss_incoming_set(<anonymous struct>*)’ uses
>> anonymous type
>
> Lilypond is written in C++ and... (looks at the logs...) ... it has
> the same problem, starting from 1.9.5
> (http://hydra.nixos.org/build/157322/log/raw).
>
> So this must be related to static subr allocation and suchlike. Can you
> try commenting out ‘# define SCM_SUPPORT_STATIC_ALLOCATION’ in
> ‘snarf.h’?
No, that doesn't fix it. However, the following does:
--- libguile/tags.h.orig 2009-11-28 19:18:36.000000000 -0600
+++ libguile/tags.h 2009-11-28 19:18:52.000000000 -0600
@@ -110,7 +110,7 @@
/* This is the default, which provides an intermediate level of compile time
* type checking while still resulting in very efficient code.
*/
- typedef struct { char scm_unused_field; } * SCM;
+ typedef struct ___stuff___ { char scm_unused_field; } * SCM;
/*
The 0?: constructions makes sure that the code is never executed,
googleing the error messages indicates that anonymous structs
are OK in C, but are somehow bad form in C++, thus gcc
generates this error. I don't understand why this would matter.
--linas
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-17 23:21 GNU Guile 1.9.5 released (alpha) Ludovic Courtès
2009-11-18 11:23 ` Ludovic Courtès
2009-11-28 22:55 ` Linas Vepstas
@ 2009-11-29 2:27 ` Linas Vepstas
2009-11-29 12:22 ` Ludovic Courtès
2009-11-29 2:45 ` Linas Vepstas
3 siblings, 1 reply; 14+ messages in thread
From: Linas Vepstas @ 2009-11-29 2:27 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: bug-guile, Guile Development
2009/11/17 Ludovic Courtès <ludo@gnu.org>:
> We are pleased to announce GNU Guile release 1.9.5.
FWIW, it appears that guile-1.9.5 does not work with the default
bdw-gc in ubuntu/debian, which is gc-6.8 -- I got the crash below
downloading, compiling, installing gc-7.1 seems to fix the
problem.
BTW, I am vaguely thinking of using bdw-gc for my code,
which links to guile .. will this be a problem ??
--linas
======================================
a crash, when evaluating (+ 1 1)
I believe that this is another threading bug -- my app loads a
number of scm files during startup, and then starts an
interactive shell. The crash occurs in the shell, with the following
stack trace:
#0 0xf73fbce5 in GC_local_malloc () from /usr/lib/libgc.so.1
#1 0xf7d53ca3 in scm_gc_malloc (size=348, what=0xf7df6634 "thread")
at gc-malloc.c:200
#2 0xf7db453c in guilify_self_1 (base=0xf54a49dc) at threads.c:326
#3 0xf7db633d in scm_i_init_thread_for_guile (base=0xf54a49dc,
parent=0xa293af0) at threads.c:593
#4 0xf7db6545 in scm_i_with_guile_and_parent (func=0xf7c56180
<opencog::SchemeEval::c_wrap_eval(void*)>,
data=0xa2167d8, parent=0xa293af0) at threads.c:732
#5 0xf7db668e in scm_with_guile (func=0xf7c56180
<opencog::SchemeEval::c_wrap_eval(void*)>, data=0xa2167d8)
at threads.c:715
#6 0xf7c564ba in opencog::SchemeEval::eval (this=0xa2167d8, expr=@0xf54a4a6c)
at /home/linas/src/novamente/src/opencog-embodiment/opencog/guile/SchemeEval.cc:460
FWIW, the above was built against gc-6.8, which is what
ubuntu and debian come with. Suspecting that this is a
gc problem, I downloaded, compiled, installed gc-7.1 and
went to rebuild guile. .... it works!
--linas
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-17 23:21 GNU Guile 1.9.5 released (alpha) Ludovic Courtès
` (2 preceding siblings ...)
2009-11-29 2:27 ` Linas Vepstas
@ 2009-11-29 2:45 ` Linas Vepstas
2009-11-29 6:07 ` Linas Vepstas
2009-11-29 12:33 ` Ludovic Courtès
3 siblings, 2 replies; 14+ messages in thread
From: Linas Vepstas @ 2009-11-29 2:45 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guile-user, guile-devel
2009/11/17 Ludovic Courtès <ludo@gnu.org>:
> We are pleased to announce GNU Guile release 1.9.5.
Now I'm getting a crash.
guile-1.9..5 built with gc-7.1, and running three threads:
one thread is sleeping
another thread is waiting on select()
third crashes with following stack trace:
Program received signal SIGPWR, Power fail/restart.
#0 0xf7fc6425 in __kernel_vsyscall ()
#1 0xf7f911c8 in pthread_kill () from /lib/tls/i686/cmov/libpthread.so.0
#2 0xf74652b3 in GC_suspend_all () at pthread_stop_world.c:355
#3 0xf7465312 in GC_stop_world () at pthread_stop_world.c:395
#4 0xf7454b9e in GC_stopped_mark (stop_func=0xf7453fc0
<GC_never_stop_func>) at alloc.c:474
#5 0xf7454e89 in GC_try_to_collect_inner (stop_func=0xf7453fc0
<GC_never_stop_func>) at alloc.c:362
#6 0xf74550ec in GC_collect_or_expand (needed_blocks=1,
ignore_off_page=0) at alloc.c:1017
#7 0xf74556d9 in GC_allocobj (gran=2, kind=1) at alloc.c:1064
#8 0xf745a37c in GC_generic_malloc_inner (lb=16, k=1) at malloc.c:119
#9 0xf745a416 in GC_generic_malloc (lb=16, k=1) at malloc.c:159
#10 0xf745a6bd in GC_core_malloc (lb=16) at malloc.c:286
#11 0xf7463a49 in GC_malloc (bytes=16) at thread_local_alloc.c:149
#12 0xf7e2780c in scm_i_make_string (len=9, charsp=0xf550b1b4) at
../libguile/inline.h:161
#13 0xf7e27ca2 in scm_from_stringn (str=0xf550b227 "Kvint.xml", len=9,
encoding=0x0,
handler=SCM_FAILED_CONVERSION_QUESTION_MARK) at strings.c:1402
#14 0xf7e27e35 in scm_from_locale_stringn (str=0xf550b227 "Kvint.xml",
len=9) at strings.c:1487
#15 0xf7e4d9c3 in scm_readdir (port=0x9ecaaa0) at filesys.c:919
#16 0xf7dc3ff7 in deval (x=0x9ec7a00, env=0xa330d60) at eval.i.c:1087
#17 0xf7dc3ec7 in deval (x=0x9ec9ba0, env=0xa330d60) at eval.i.c:608
#18 0xf7dc813a in scm_primitive_eval_x (exp=0x9ecaad0) at eval.c:4010
#19 0xf7e29d88 in inner_eval_string (data=0x9ec99a0) at strports.c:533
#20 0xf7dc9d2e in scm_c_with_fluid (fluid=0x9d4a360, value=0x9d925f0,
cproc=0xf7e29d60 <inner_eval_string>,
cdata=0x9ec99a0) at fluids.c:382
#21 0xf7de7505 in scm_c_call_with_current_module (module=0x9d925f0,
func=0xf7e29d60 <inner_eval_string>,
data=0x9ec99a0) at modules.c:114
#22 0xf7e2a179 in scm_eval_string_in_module (string=0x9e2e4c0,
module=0x9d925f0) at strports.c:560
#23 0xf7e2a1e5 in scm_eval_string (string=0x9e2e4c0) at strports.c:568
#24 0xf7e2a215 in scm_c_eval_string (expr=0xa331a44
"(suck-in-filenames (opendir input-filedir) '())\n")
FWIW, the above is executing the following:
(define (suck-in-filenames port lst)
(let ((one-file (readdir port)))
(if (eof-object? one-file)
lst
(suck-in-filenames port
(cons one-file lst)
)
)
)
)
(suck-in-filenames (opendir input-filedir) '())
here, input-filedir is a directory has about 14K filenames in it,
many of the filenames contain UTF-8 chars.
--linas
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-29 1:24 ` Linas Vepstas
@ 2009-11-29 3:44 ` Ken Raeburn
2009-11-29 12:34 ` Ludovic Courtès
2009-11-29 15:47 ` Ludovic Courtès
2 siblings, 0 replies; 14+ messages in thread
From: Ken Raeburn @ 2009-11-29 3:44 UTC (permalink / raw)
To: linasvepstas; +Cc: Ludovic Courtès, Guile Development
On Nov 28, 2009, at 20:24, Linas Vepstas wrote:
> googleing the error messages indicates that anonymous structs
> are OK in C, but are somehow bad form in C++, thus gcc
> generates this error. I don't understand why this would matter.
The error message you quoted refers specifically to a function taking
a SCM argument. When a C++ function not declared 'extern "C"' takes
an object or pointer using a struct/class type, the name of the type
is used in the "name mangling" that encodes the function signature in
the object-code name for the function; for example, "foo(int)" may
become "_Z3fooi" (something like: _Z = function encoding prefix, 3 =
length of function name, i = int), and "foo(struct x)" may become
"_Z3foo1x" (1 = length of name of user-defined type), but for an
anonymous type, you can't encode it.
I'm not sure of the rules for anonymous classes in C++; searching the
1998 standard I see only references to anonymous unions. My best
guess is that you're just not allowed to use them for declaring
objects with linkage, but I can't (so far) quote you chapter and verse
to support that.
Ken
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-29 2:45 ` Linas Vepstas
@ 2009-11-29 6:07 ` Linas Vepstas
2009-11-29 12:33 ` Ludovic Courtès
1 sibling, 0 replies; 14+ messages in thread
From: Linas Vepstas @ 2009-11-29 6:07 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guile-user, guile-devel
2009/11/28 Linas Vepstas <linasvepstas@gmail.com>:
> 2009/11/17 Ludovic Courtès <ludo@gnu.org>:
>> We are pleased to announce GNU Guile release 1.9.5.
>
> Now I'm getting a crash.
>
> third crashes with following stack trace:
>
> Program received signal SIGPWR, Power fail/restart.
I retract this bug report -- user error, I think.
There were other recent changes to my app, which resulted
in scm_xxx calls being made when not in guile mode. I'm
guessing that these messed up guile state, eventually leading
to the crash.
Sorry for the false alarm (although I have yet to retest under 1.9.5)
--linas
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-29 2:27 ` Linas Vepstas
@ 2009-11-29 12:22 ` Ludovic Courtès
0 siblings, 0 replies; 14+ messages in thread
From: Ludovic Courtès @ 2009-11-29 12:22 UTC (permalink / raw)
To: linasvepstas; +Cc: bug-guile, Guile Development
Linas Vepstas <linasvepstas@gmail.com> writes:
> 2009/11/17 Ludovic Courtès <ludo@gnu.org>:
>> We are pleased to announce GNU Guile release 1.9.5.
>
> FWIW, it appears that guile-1.9.5 does not work with the default
> bdw-gc in ubuntu/debian, which is gc-6.8 -- I got the crash below
Yes, you should use 7.x.
Ludo'.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-29 2:45 ` Linas Vepstas
2009-11-29 6:07 ` Linas Vepstas
@ 2009-11-29 12:33 ` Ludovic Courtès
1 sibling, 0 replies; 14+ messages in thread
From: Ludovic Courtès @ 2009-11-29 12:33 UTC (permalink / raw)
To: linasvepstas; +Cc: guile-user, guile-devel
Linas Vepstas <linasvepstas@gmail.com> writes:
> Program received signal SIGPWR, Power fail/restart.
As you noticed, it’s not a “crash”: this signal is used by libgc to
achieve stop-the-world GCs.
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-29 1:24 ` Linas Vepstas
2009-11-29 3:44 ` Ken Raeburn
@ 2009-11-29 12:34 ` Ludovic Courtès
2009-11-29 16:13 ` Linas Vepstas
2009-11-29 15:47 ` Ludovic Courtès
2 siblings, 1 reply; 14+ messages in thread
From: Ludovic Courtès @ 2009-11-29 12:34 UTC (permalink / raw)
To: linasvepstas; +Cc: Guile Development
Hi,
Linas Vepstas <linasvepstas@gmail.com> writes:
> --- libguile/tags.h.orig 2009-11-28 19:18:36.000000000 -0600
> +++ libguile/tags.h 2009-11-28 19:18:52.000000000 -0600
> @@ -110,7 +110,7 @@
> /* This is the default, which provides an intermediate level of compile time
> * type checking while still resulting in very efficient code.
> */
> - typedef struct { char scm_unused_field; } * SCM;
> + typedef struct ___stuff___ { char scm_unused_field; } * SCM;
There must be something else because this is exactly the same as in 1.8
and 1.9.4 and Lilypond compiles with these.
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-29 1:24 ` Linas Vepstas
2009-11-29 3:44 ` Ken Raeburn
2009-11-29 12:34 ` Ludovic Courtès
@ 2009-11-29 15:47 ` Ludovic Courtès
2 siblings, 0 replies; 14+ messages in thread
From: Ludovic Courtès @ 2009-11-29 15:47 UTC (permalink / raw)
To: guile-devel
Hello,
Linas Vepstas <linasvepstas@gmail.com> writes:
> No, that doesn't fix it. However, the following does:
>
> --- libguile/tags.h.orig 2009-11-28 19:18:36.000000000 -0600
> +++ libguile/tags.h 2009-11-28 19:18:52.000000000 -0600
> @@ -110,7 +110,7 @@
> /* This is the default, which provides an intermediate level of compile time
> * type checking while still resulting in very efficient code.
> */
> - typedef struct { char scm_unused_field; } * SCM;
> + typedef struct ___stuff___ { char scm_unused_field; } * SCM;
Actually, you’re right, it wasn’t an anonymous struct in 1.8. Fixed:
http://git.sv.gnu.org/cgit/guile.git/commit/?id=8a30946f7fd717f3e8c52e99c8d24c4fb4e5f1af
Thanks!
Ludo’.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: GNU Guile 1.9.5 released (alpha)
2009-11-29 12:34 ` Ludovic Courtès
@ 2009-11-29 16:13 ` Linas Vepstas
0 siblings, 0 replies; 14+ messages in thread
From: Linas Vepstas @ 2009-11-29 16:13 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: Guile Development
2009/11/29 Ludovic Courtès <ludo@gnu.org>:
> Hi,
>
> Linas Vepstas <linasvepstas@gmail.com> writes:
>
>> --- libguile/tags.h.orig 2009-11-28 19:18:36.000000000 -0600
>> +++ libguile/tags.h 2009-11-28 19:18:52.000000000 -0600
>> @@ -110,7 +110,7 @@
>> /* This is the default, which provides an intermediate level of compile time
>> * type checking while still resulting in very efficient code.
>> */
>> - typedef struct { char scm_unused_field; } * SCM;
>> + typedef struct ___stuff___ { char scm_unused_field; } * SCM;
>
> There must be something else because this is exactly the same as in 1.8
> and 1.9.4 and Lilypond compiles with these.
Well, no, If I look at 1.8.7 I see the following in tags.h:
typedef struct scm_unused_struct * SCM;
or
typedef scm_t_bits SCM;
The struct is clearly named in this case. I did not look at 1.9.4.
I provided a very short sample program that elicits the bug ..
you can play with it. Running gcc -E on it quickly revealed
what was happening.
--linas
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2009-11-29 16:13 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-11-17 23:21 GNU Guile 1.9.5 released (alpha) Ludovic Courtès
2009-11-18 11:23 ` Ludovic Courtès
2009-11-28 22:55 ` Linas Vepstas
2009-11-28 23:21 ` Ludovic Courtès
2009-11-29 1:24 ` Linas Vepstas
2009-11-29 3:44 ` Ken Raeburn
2009-11-29 12:34 ` Ludovic Courtès
2009-11-29 16:13 ` Linas Vepstas
2009-11-29 15:47 ` Ludovic Courtès
2009-11-29 2:27 ` Linas Vepstas
2009-11-29 12:22 ` Ludovic Courtès
2009-11-29 2:45 ` Linas Vepstas
2009-11-29 6:07 ` Linas Vepstas
2009-11-29 12:33 ` Ludovic Courtès
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).