unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* guile 1.8 and x86_64
@ 2006-04-07 19:40 Quanah Gibson-Mount
  2006-04-10  8:14 ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Quanah Gibson-Mount @ 2006-04-07 19:40 UTC (permalink / raw)


guile 1.8 fails to compile for me on my x86_64 box.  I saw some previous 
thread about guile 1.7.xx having this issue, and I was wondering if there's 
been a fix since the 1.8 release.

guile reports:

Making all in libguile
make[2]: Entering directory 
`/afs/ir.stanford.edu/src/pubsw/languages/guile-1.8.0/build/@sys/libguile'
cat alist.doc arbiters.doc async.doc backtrace.doc boolean.doc chars.doc 
continuations.doc debug.doc deprecation.doc deprecated.doc discouraged.doc 
dynl.doc dynwind.doc environments.doc eq.doc error.doc eval.doc evalext.doc 
extensions.doc feature.doc fluids.doc fports.doc futures.doc gc.doc 
goops.doc gsubr.doc gc-mark.doc gc-segment.doc gc-malloc.doc gc-card.doc 
guardians.doc hash.doc hashtab.doc hooks.doc i18n.doc init.doc ioext.doc 
keywords.doc lang.doc list.doc load.doc macros.doc mallocs.doc modules.doc 
numbers.doc objects.doc objprop.doc options.doc pairs.doc ports.doc 
print.doc procprop.doc procs.doc properties.doc random.doc rdelim.doc 
read.doc root.doc rw.doc scmsigs.doc script.doc simpos.doc smob.doc 
sort.doc srcprop.doc stackchk.doc stacks.doc stime.doc strings.doc 
srfi-4.doc srfi-13.doc srfi-14.doc strorder.doc strports.doc struct.doc 
symbols.doc threads.doc throw.doc values.doc variable.doc vectors.doc 
version.doc vports.doc weaks.doc ramap.doc unif.doc dynl.doc filesys.doc 
posix.doc net_db.doc socket.doc regex-posix.doc | 
GUILE="/afs/ir/src/pubsw/languages/guile-1.8.0/build/@sys/pre-inst-guile" 
../../../scripts/snarf-check-and-output-texi --manual > guile.texi || { rm 
guile.texi; false; }
ERROR: In procedure memoization:
ERROR: Bad binding (vector-set! x (unquote (caddr e)) y) in expression 
(letrec ((genmatch (lambda (x clauses match-expr) (let* ((length>= #) 
#<freed cell 0x2aaaabb57380; GC missed a reference> (blist #) (plist #) 
(code #)) (unreachable plist match-expr) (inline-let (quasiquote #))))) 
(genletrec (lambda (pat exp body match-expr) (let* ((length>= #) (eb-errf 
#) (x #) (p #) (bv #) (bindings #) (code #) (plist #) (x #) (m #) ...) 
(unreachable plist match-expr) (quasiquote (letrec # #))))) (gendefine 
(lambda (pat exp match-expr) (let* ((length>= #) (eb-errf #) (x #) (p #) 
(bv #) (bindings #) (code #) (plist #) (x #) (m #) ...) (unreachable plist 
match-expr) (quasiquote (begin # #))))) (pattern-var? (lambda (x) (and 
(symbol? x) (not (dot-dot-k? x)) (not (memq x #))))) (dot-dot-k? (lambda 
(s) (and (symbol? s) (if (memq s #) 0 (let* # #))))) (error-maker (lambda 
(match-expr) (cond ((eq? match:error-control #) (cons # #)) ((memq 
match:error-control #) (cons # #)) ((eq? match:error-control #) (let # #)) 
(else (match:syntax-err # "invalid value for match:error-control, legal 
values are"))))) (unreachable (lambda (plist match-expr) (for-each (lambda 
(x) (if # #)) plist))) (validate-pattern (lambda (pattern) (letrec 
((simple? #) (ordinary #) (quasi #) (ordlist #)) (ordinary pattern)))) 
(unquote e) (inline-let (lambda (let-exp) (letrec ((occ #) (subst #) 
(const? #) (isval? #) (small? #)) (let loop (# # #) (cond # # #))))) ...) 
(list genmatch genletrec gendefine pattern-var?)).
make[2]: *** [guile.texi] Error 1
make[2]: Leaving directory 
`/afs/ir.stanford.edu/src/pubsw/languages/guile-1.8.0/build/@sys/libguile'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory 
`/afs/ir.stanford.edu/src/pubsw/languages/guile-1.8.0/build/@sys'
make: *** [all] Error 2


Thanks,
Quanah

--
Quanah Gibson-Mount
Principal Software Developer
ITS/Shared Application Services
Stanford University
GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-04-07 19:40 guile 1.8 and x86_64 Quanah Gibson-Mount
@ 2006-04-10  8:14 ` Ludovic Courtès
  2006-04-10 22:55   ` Neil Jerram
  0 siblings, 1 reply; 16+ messages in thread
From: Ludovic Courtès @ 2006-04-10  8:14 UTC (permalink / raw)
  Cc: guile-devel

Hi,

Quanah Gibson-Mount <quanah@stanford.edu> writes:

> guile 1.8 fails to compile for me on my x86_64 box.  I saw some
> previous thread about guile 1.7.xx having this issue, and I was
> wondering if there's been a fix since the 1.8 release.

It's a known problem with 1.8.0 that is being worked on [0].  Still, if
you would like to help, I think you'd be welcomed.  ;-)

Thanks,
Ludovic.

[0] http://lists.gnu.org/archive/html/guile-devel/2006-03/msg00057.html


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-04-10  8:14 ` Ludovic Courtès
@ 2006-04-10 22:55   ` Neil Jerram
  2006-04-10 23:03     ` Quanah Gibson-Mount
  0 siblings, 1 reply; 16+ messages in thread
From: Neil Jerram @ 2006-04-10 22:55 UTC (permalink / raw)
  Cc: guile-devel

ludovic.courtes@laas.fr (Ludovic Courtès) writes:

> Hi,
>
> Quanah Gibson-Mount <quanah@stanford.edu> writes:
>
>> guile 1.8 fails to compile for me on my x86_64 box.  I saw some
>> previous thread about guile 1.7.xx having this issue, and I was
>> wondering if there's been a fix since the 1.8 release.
>
> It's a known problem with 1.8.0 that is being worked on [0].  Still, if
> you would like to help, I think you'd be welcomed.  ;-)

Can you tell us what version of gcc you are compiling with, and
whether you are specifying any extra compilation flags to ./configure?

Thanks,
    Neil



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-04-10 22:55   ` Neil Jerram
@ 2006-04-10 23:03     ` Quanah Gibson-Mount
  2006-04-11 20:37       ` Neil Jerram
  0 siblings, 1 reply; 16+ messages in thread
From: Quanah Gibson-Mount @ 2006-04-10 23:03 UTC (permalink / raw)




--On Monday, April 10, 2006 11:55 PM +0100 Neil Jerram 
<neil@ossau.uklinux.net> wrote:

> ludovic.courtes@laas.fr (Ludovic Courtès) writes:
>
>> Hi,
>>
>> Quanah Gibson-Mount <quanah@stanford.edu> writes:
>>
>>> guile 1.8 fails to compile for me on my x86_64 box.  I saw some
>>> previous thread about guile 1.7.xx having this issue, and I was
>>> wondering if there's been a fix since the 1.8 release.
>>
>> It's a known problem with 1.8.0 that is being worked on [0].  Still, if
>> you would like to help, I think you'd be welcomed.  ;-)
>
> Can you tell us what version of gcc you are compiling with, and
> whether you are specifying any extra compilation flags to ./configure?

amd64-linux26:/afs/ir/src/pubsw/languages/guile-1.6.7> /usr/pubsw/bin/gcc -v
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../../gcc-4.0.2/configure --datadir=/lib --libexecdir=/lib 
--sharedstatedir=/lib --prefix=/usr/pubsw --enable-threads --with-gnu-as 
--with-as=/usr/pubsw/bin/as --with-gnu-ld --with-ld=/usr/pubsw/bin/ld 
--with-libintl-prefix=/usr/pubsw --with-libiconv-prefix=/usr/pubsw 
--disable-multilib --enable-libada --enable-languages=c,c++,f95,objc,ada
Thread model: posix
gcc version 4.0.2



amd64-linux26:/afs/ir/src/pubsw/languages/guile-1.6.7> wrap configure
mkdir -p build/amd64_linux26
cd build/@sys && CC=/usr/pubsw/bin/gcc CXX=/usr/pubsw/bin/g++ CFLAGS=-O2 
CXXFLAGS=-O2 sh ../../configure --datadir='${prefix}/lib' 
--libexecdir='${prefix}/lib' --sharedstatedir='${prefix}/lib' 
--prefix=/usr/pubsw --with-libiconv-prefix=/usr/pubsw 
--with-libintl-prefix=/usr/pubsw

is my configure line.

--Quanah


--
Quanah Gibson-Mount
Principal Software Developer
ITS/Shared Application Services
Stanford University
GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-04-10 23:03     ` Quanah Gibson-Mount
@ 2006-04-11 20:37       ` Neil Jerram
  2006-04-11 20:52         ` Quanah Gibson-Mount
  2006-05-05 14:05         ` Miroslav Lichvar
  0 siblings, 2 replies; 16+ messages in thread
From: Neil Jerram @ 2006-04-11 20:37 UTC (permalink / raw)
  Cc: guile-devel

Quanah Gibson-Mount <quanah@stanford.edu> writes:

> amd64-linux26:/afs/ir/src/pubsw/languages/guile-1.6.7> /usr/pubsw/bin/gcc -v
> Using built-in specs.
> Target: x86_64-unknown-linux-gnu
> Configured with: ../../gcc-4.0.2/configure --datadir=/lib
> --libexecdir=/lib --sharedstatedir=/lib --prefix=/usr/pubsw
> --enable-threads --with-gnu-as --with-as=/usr/pubsw/bin/as
> --with-gnu-ld --with-ld=/usr/pubsw/bin/ld
> --with-libintl-prefix=/usr/pubsw --with-libiconv-prefix=/usr/pubsw
> --disable-multilib --enable-libada
> --enable-languages=c,c++,f95,objc,ada
> Thread model: posix
> gcc version 4.0.2

[...]

Many thanks; we are working on this and hope to have a fix soonish.
If you are keen to have Guile 1.8 working on this box, we believe a
successful workaround is to compile with an older GCC.  3.3.5 seems
OK, for example.

Regards,
     Neil



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-04-11 20:37       ` Neil Jerram
@ 2006-04-11 20:52         ` Quanah Gibson-Mount
  2006-05-05 14:05         ` Miroslav Lichvar
  1 sibling, 0 replies; 16+ messages in thread
From: Quanah Gibson-Mount @ 2006-04-11 20:52 UTC (permalink / raw)
  Cc: Neil Jerram



--On Tuesday, April 11, 2006 9:37 PM +0100 Neil Jerram 
<neil@ossau.uklinux.net> wrote:

> Quanah Gibson-Mount <quanah@stanford.edu> writes:
>
>> amd64-linux26:/afs/ir/src/pubsw/languages/guile-1.6.7>
>> /usr/pubsw/bin/gcc -v Using built-in specs.
>> Target: x86_64-unknown-linux-gnu
>> Configured with: ../../gcc-4.0.2/configure --datadir=/lib
>> --libexecdir=/lib --sharedstatedir=/lib --prefix=/usr/pubsw
>> --enable-threads --with-gnu-as --with-as=/usr/pubsw/bin/as
>> --with-gnu-ld --with-ld=/usr/pubsw/bin/ld
>> --with-libintl-prefix=/usr/pubsw --with-libiconv-prefix=/usr/pubsw
>> --disable-multilib --enable-libada
>> --enable-languages=c,c++,f95,objc,ada
>> Thread model: posix
>> gcc version 4.0.2
>
> [...]
>
> Many thanks; we are working on this and hope to have a fix soonish.
> If you are keen to have Guile 1.8 working on this box, we believe a
> successful workaround is to compile with an older GCC.  3.3.5 seems
> OK, for example.

Well, I'm required to use 4.0.2 at this point, so I'll just wait until 1.8 
works.   1.6.7 is a major upgrade over the 1.3.4 we had previously, so I 
went with that. ;)

--Quanah


--
Quanah Gibson-Mount
Principal Software Developer
ITS/Shared Application Services
Stanford University
GnuPG Public Key: http://www.stanford.edu/~quanah/pgp.html


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-04-11 20:37       ` Neil Jerram
  2006-04-11 20:52         ` Quanah Gibson-Mount
@ 2006-05-05 14:05         ` Miroslav Lichvar
  2006-05-06 11:12           ` Miroslav Lichvar
  1 sibling, 1 reply; 16+ messages in thread
From: Miroslav Lichvar @ 2006-05-05 14:05 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 381 bytes --]

Hi,

attached is a patch that seems to fix the problem with gcc4 and 64bit
architectures.

The scm_mark_locations function in gc-mark.c calls scm_gc_mark on
everything located in one of the allocated segments. Shouldn't there
be a check if the address is at least scm_t_cell aligned? 

Is it correct or is it just plain luck it works with the patch?

Thanks,

-- 
Miroslav Lichvar

[-- Attachment #2: gcmark.patch --]
[-- Type: text/plain, Size: 407 bytes --]

--- libguile/gc-mark.c.orig	2006-02-12 14:29:12.000000000 +0100
+++ libguile/gc-mark.c	2006-05-05 14:41:07.000000000 +0200
@@ -433,6 +433,8 @@
   for (m = 0; m < n; ++m)
     {
       SCM obj = * (SCM *) &x[m];
+      if ((scm_t_bits)obj & (sizeof (scm_t_cell) - 1))
+        continue;
       long int segment = scm_i_find_heap_segment_containing_object (obj);
       if (segment >= 0)
 	scm_gc_mark (obj);

[-- Attachment #3: Type: text/plain, Size: 143 bytes --]

_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-05-05 14:05         ` Miroslav Lichvar
@ 2006-05-06 11:12           ` Miroslav Lichvar
  2006-05-07 21:29             ` Marius Vollmer
  0 siblings, 1 reply; 16+ messages in thread
From: Miroslav Lichvar @ 2006-05-06 11:12 UTC (permalink / raw)


On Fri, May 05, 2006 at 04:05:34PM +0200, Miroslav Lichvar wrote:
> The scm_mark_locations function in gc-mark.c calls scm_gc_mark on
> everything located in one of the allocated segments. Shouldn't there
> be a check if the address is at least scm_t_cell aligned? 

Looks like the CELL_P macro is there exactly for this purpose, the
following change in private-gc.h is probably the right thing to do.

137c137
< #define CELL_P(x)  (SCM_ITAG3 (x) == scm_tc3_cons)
---
> #define CELL_P(x)  (!(SCM_UNPACK (x) & (sizeof (scm_t_cell) - 1)))

-- 
Miroslav Lichvar


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-05-06 11:12           ` Miroslav Lichvar
@ 2006-05-07 21:29             ` Marius Vollmer
  2006-05-08 10:28               ` Andy Wingo
  0 siblings, 1 reply; 16+ messages in thread
From: Marius Vollmer @ 2006-05-07 21:29 UTC (permalink / raw)
  Cc: guile-devel

Miroslav Lichvar <mlichvar@redhat.com> writes:

> On Fri, May 05, 2006 at 04:05:34PM +0200, Miroslav Lichvar wrote:
> > The scm_mark_locations function in gc-mark.c calls scm_gc_mark on
> > everything located in one of the allocated segments. Shouldn't there
> > be a check if the address is at least scm_t_cell aligned? 

Yes!  I haven't really seen the 64bit problem myself, but you theory
sounds very convincing.  This is very likely the solution.
 
What about this this patch, tho, which is exactly the same as yours,
but a bit more similar to the code we have:

137c137
< #define CELL_P(x)  (SCM_ITAG3 (x) == scm_tc3_cons)
---
> #define CELL_P(x)  ((SCM_UNPACK(x) & (sizeof(scm_t_cell)-1)) == scm_tc3_cons)

I'll put it in right away, with a comment.

Thanks a 18446744073709551616!

-- 
GPG: D5D4E405 - 2F9B BCCC 8527 692A 04E3  331E FAF8 226A D5D4 E405


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-05-07 21:29             ` Marius Vollmer
@ 2006-05-08 10:28               ` Andy Wingo
  2006-05-08 21:52                 ` Marius Vollmer
  0 siblings, 1 reply; 16+ messages in thread
From: Andy Wingo @ 2006-05-08 10:28 UTC (permalink / raw)


Hi,

On Mon, 2006-05-08 at 00:29 +0300, Marius Vollmer wrote:
> 137c137
> < #define CELL_P(x)  (SCM_ITAG3 (x) == scm_tc3_cons)
> ---
> > #define CELL_P(x)  ((SCM_UNPACK(x) & (sizeof(scm_t_cell)-1)) == scm_tc3_cons)

I don't really understand how the region can give you unaligned
pointers, but I do confirm that this patch allows me to build guile.
Rock!

Running make check stops with compilation errors of the form:

test-conversion.c:32: warning: format ‘%Ld’ expects type ‘long long
int’, but argument 4 has type ‘scm_t_intmax’

There are about 20 of these: http://paste.lisp.org/display/19791

I don't have time to look at this atm, just wanted to give the quick
positive feedback :-)

Cheers,
-- 
Andy Wingo
http://wingolog.org/



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-05-08 10:28               ` Andy Wingo
@ 2006-05-08 21:52                 ` Marius Vollmer
  2006-05-09  6:49                   ` Neil Jerram
  0 siblings, 1 reply; 16+ messages in thread
From: Marius Vollmer @ 2006-05-08 21:52 UTC (permalink / raw)
  Cc: guile-devel

Andy Wingo <wingo@pobox.com> writes:

> Hi,
> 
> On Mon, 2006-05-08 at 00:29 +0300, Marius Vollmer wrote:
> > 137c137
> > < #define CELL_P(x)  (SCM_ITAG3 (x) == scm_tc3_cons)
> > ---
> > > #define CELL_P(x)  ((SCM_UNPACK(x) & (sizeof(scm_t_cell)-1)) == scm_tc3_cons)
> 
> I don't really understand how the region can give you unaligned
> pointers, but I do confirm that this patch allows me to build guile.

Excellent!

Here is what is going on: the CELL_P predicate is used during the
conservative scanning of the GC to decide whether a random word can
possibly be a non-immediate SCM value.  Non-immediate values are the
ones that point into the heap.  The type tag for such a non-immediate
value is "lower three bits zero".  On 32-bit architectures, a cell is
8 bytes, which means that a non-immediate value is always aligned to a
cell.  On 64-bit machines, a cell is 16 bytes, and that means that a
word with "lower three bits zero" can still be invalid because it
points into the middle of a cell.

(We have similar check already for double-cells, which are 16 bytes on
32-bit machines.)

-- 
GPG: D5D4E405 - 2F9B BCCC 8527 692A 04E3  331E FAF8 226A D5D4 E405


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-05-08 21:52                 ` Marius Vollmer
@ 2006-05-09  6:49                   ` Neil Jerram
  2006-05-09 13:23                     ` Andy Wingo
  0 siblings, 1 reply; 16+ messages in thread
From: Neil Jerram @ 2006-05-09  6:49 UTC (permalink / raw)
  Cc: guile-devel

Marius Vollmer <mvo@zagadka.de> writes:

> Here is what is going on: the CELL_P predicate is used during the
> conservative scanning of the GC to decide whether a random word can
> possibly be a non-immediate SCM value.  Non-immediate values are the
> ones that point into the heap.  The type tag for such a non-immediate
> value is "lower three bits zero".  On 32-bit architectures, a cell is
> 8 bytes, which means that a non-immediate value is always aligned to a
> cell.  On 64-bit machines, a cell is 16 bytes, and that means that a
> word with "lower three bits zero" can still be invalid because it
> points into the middle of a cell.
>
> (We have similar check already for double-cells, which are 16 bytes on
> 32-bit machines.)

That's great, but I believe there's one detail still to be explained:
why is it a problem with GCC 4 but not with GCC 3?

    Neil



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: guile 1.8 and x86_64
  2006-05-09  6:49                   ` Neil Jerram
@ 2006-05-09 13:23                     ` Andy Wingo
  2006-05-09 22:31                       ` Default stack limit Marius Vollmer
  0 siblings, 1 reply; 16+ messages in thread
From: Andy Wingo @ 2006-05-09 13:23 UTC (permalink / raw)
  Cc: guile-devel

(Why am I not getting mails to the list? Is mailman being "smart", or
the mailing lists slow? Anyway, replying to all..)

On Tue, 2006-05-09 at 07:49 +0100, Neil Jerram wrote:
> Marius Vollmer <mvo@zagadka.de> writes:
> > On 64-bit machines, a cell is 16 bytes, and that means that a
> > word with "lower three bits zero" can still be invalid because it
> > points into the middle of a cell.

Sounds plausible :)

> That's great, but I believe there's one detail still to be explained:
> why is it a problem with GCC 4 but not with GCC 3?

I experienced problems with gcc3 as well, 3.3 at least, under some
circumstances. I suspect this very much depends on what values the
compiler decides to put on the stack, which depends on your CFLAGS.

Speaking of which, a -g compile on PPC uses quite a lot of stack -- I
had to up the default limit in order to get anything to work (for
example, compiling psyntax). That would be another issue though...

Regards,
-- 
Andy Wingo
http://wingolog.org/



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Default stack limit
  2006-05-09 13:23                     ` Andy Wingo
@ 2006-05-09 22:31                       ` Marius Vollmer
  2006-05-10 14:31                         ` Andy Wingo
  0 siblings, 1 reply; 16+ messages in thread
From: Marius Vollmer @ 2006-05-09 22:31 UTC (permalink / raw)


Andy Wingo <wingo@pobox.com> writes:

> Speaking of which, a -g compile on PPC uses quite a lot of stack -- I
> had to up the default limit in order to get anything to work (for
> example, compiling psyntax). That would be another issue though...

Yeah, it's a "known issue" also on x86.  The default stack limit is a
bit tight for a "-O0" build.  I guess we should just double it or
something.  Or should we make the default 'unlimited'?

-- 
GPG: D5D4E405 - 2F9B BCCC 8527 692A 04E3  331E FAF8 226A D5D4 E405


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Default stack limit
  2006-05-09 22:31                       ` Default stack limit Marius Vollmer
@ 2006-05-10 14:31                         ` Andy Wingo
  2006-05-10 23:58                           ` Kevin Ryde
  0 siblings, 1 reply; 16+ messages in thread
From: Andy Wingo @ 2006-05-10 14:31 UTC (permalink / raw)


Hi,

On Wed, 2006-05-10 at 01:31 +0300, Marius Vollmer wrote:
> Andy Wingo <wingo@pobox.com> writes:
> 
> > Speaking of which, a -g compile on PPC uses quite a lot of stack -- I
> > had to up the default limit in order to get anything to work (for
> > example, compiling psyntax). That would be another issue though...
> 
> Yeah, it's a "known issue" also on x86.  The default stack limit is a
> bit tight for a "-O0" build.  I guess we should just double it or
> something.  Or should we make the default 'unlimited'?

I think that 50000 words (200KB/400KB) should be more than enough for
anyone.

Haha. (Right now it is 20000 words.) Seriously, we should look into why
this is the case, has SCM had similar issues with newer GCC, etc. Is it
just the compilers that changed, or was it frames, or ...

Regards,
-- 
Andy Wingo
http://wingolog.org/



_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Default stack limit
  2006-05-10 14:31                         ` Andy Wingo
@ 2006-05-10 23:58                           ` Kevin Ryde
  0 siblings, 0 replies; 16+ messages in thread
From: Kevin Ryde @ 2006-05-10 23:58 UTC (permalink / raw)
  Cc: guile-devel

Andy Wingo <wingo@pobox.com> writes:
>
> Is it just the compilers that changed,

Seems to be, it's still fine with for instance gcc 2.95 unoptimized.

gcc 4 seems to use up a lot more stack in CEVAL()/DEVAL() when
unoptimized, something like 900 bytes for me, but why that's so I
couldn't tell.  (Keeping stack usage in that func to a minimum would
probably be a good thing in general though, as the main recursion when
interpreting ...)


_______________________________________________
Guile-devel mailing list
Guile-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/guile-devel


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2006-05-10 23:58 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-07 19:40 guile 1.8 and x86_64 Quanah Gibson-Mount
2006-04-10  8:14 ` Ludovic Courtès
2006-04-10 22:55   ` Neil Jerram
2006-04-10 23:03     ` Quanah Gibson-Mount
2006-04-11 20:37       ` Neil Jerram
2006-04-11 20:52         ` Quanah Gibson-Mount
2006-05-05 14:05         ` Miroslav Lichvar
2006-05-06 11:12           ` Miroslav Lichvar
2006-05-07 21:29             ` Marius Vollmer
2006-05-08 10:28               ` Andy Wingo
2006-05-08 21:52                 ` Marius Vollmer
2006-05-09  6:49                   ` Neil Jerram
2006-05-09 13:23                     ` Andy Wingo
2006-05-09 22:31                       ` Default stack limit Marius Vollmer
2006-05-10 14:31                         ` Andy Wingo
2006-05-10 23:58                           ` Kevin Ryde

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).