[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Guile bugs

From: Ludovic Courtès
Subject: Guile bugs
Date: Thu, 20 Jul 2017 17:28:04 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux)

Hi Linas,

Linas Vepstas <address@hidden> skribis:

> Lack of decent science libraries for scheme is a major stumbling block, for
> me. Simply having sine and cosine is not enough.   I got excited (a decade
> ago) when I realized that guile supported GnuMP, and then rapidly deflated
> when I realized it only supported integers and rationals in GnuMP .. I work
> with arbitrary-precision floats.  Or, I did back then.

I think Someone should write MPFR bindings…

> Maybe more important is making guile work well with large-RAM setups.
> Currently, I do data analysis, every day, in guile, on datasets that take
> 20GB or 40GB -- my current one is 110GB when loaded in RAM, and guile
> starts getting buggy, crashy and slow when working at that size.
> Sometimes, it starts calling GC half-a-dozen times per second, for no
> apparent reason, eating up 6 cores (or more!) doing nothing but GC. Why?
> Who knows? Who can tell?
> Yes, I have a machine with 256 GB RAM and a few dozen cores, and SSD's that
> hold the data, but every time guile crashes, I have to wait an hour for the
> data to reload.  I can live with it, but its a dirty secret I would not
> share with guile wannabe users.

I think these are genuine serious bugs that should be reported.  Of
course the user-to-developer ratio for Guile is pretty bad (but maybe
not worse than that of CPython after all!), so it will help a lot if you
(1) provide a reduced test case and anyone can use to reproduce the
problem, and (2) do some investigation of your own.

At any rate, if you don’t report it bugs that make your life difficult,
your life is definitely not going to be easier.  ;-)

> String handling in guile is a disaster area: If I give it a
> 10-megabyte-long string in utf8, it promptly tries to convert all of that
> string in utf32, for utterly pointless reasons. This just makes it slow.

We’ve discussed it before, and while I agree that there’s much room for
improvement, I’m very skeptical about this use case (I’d use ‘mmap’ and
get a bytevector.)

> There are still bugs between GC and the compiler: if call (eval "(some
> stuff) (other stuff)")  the compiler will try to compile that string (after
> it was converted ti utf32!) and if GC happens to run at just that moment,
> guile crashes or hangs.  These bugs need to be fixed.

Please report!

> So although its a good start, there's a lot of work left until it can get
> to "the next level". And that work can't happen until guile is more
> popular. So it's very much chicken-and-egg scenario.

Definitely.  I think one has to get ready to get their hands dirty when
pushing Guile to its limits.  That’s probably true of any piece of
software, but that’s even more acute for software with a smaller user

My 2¢!


reply via email to

[Prev in Thread] Current Thread [Next in Thread]