From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Newsgroups: gmane.lisp.guile.user Subject: Guile bugs Date: Thu, 20 Jul 2017 17:28:04 +0200 Message-ID: <87h8y7ruuz.fsf_-_@gnu.org> References: <87lgtajpkc.fsf@web.de> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1500564661 13976 195.159.176.226 (20 Jul 2017 15:31:01 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Thu, 20 Jul 2017 15:31:01 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) To: guile-user@gnu.org Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Thu Jul 20 17:30:56 2017 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dYDPh-0003MW-MP for guile-user@m.gmane.org; Thu, 20 Jul 2017 17:30:53 +0200 Original-Received: from localhost ([::1]:38644 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dYDPn-0002FN-5d for guile-user@m.gmane.org; Thu, 20 Jul 2017 11:30:59 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:53121) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dYDNH-0000X5-1h for guile-user@gnu.org; Thu, 20 Jul 2017 11:28:24 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dYDND-0004gQ-1J for guile-user@gnu.org; Thu, 20 Jul 2017 11:28:23 -0400 Original-Received: from [195.159.176.226] (port=46750 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dYDNC-0004fx-QI for guile-user@gnu.org; Thu, 20 Jul 2017 11:28:18 -0400 Original-Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1dYDN1-0003kH-2g for guile-user@gnu.org; Thu, 20 Jul 2017 17:28:07 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 61 Original-X-Complaints-To: usenet@blaine.gmane.org X-URL: http://www.fdn.fr/~lcourtes/ X-Revolutionary-Date: 2 Thermidor an 225 de la =?utf-8?Q?R=C3=A9volution?= X-PGP-Key-ID: 0x090B11993D9AEBB5 X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5 X-OS: x86_64-unknown-linux-gnu Cancel-Lock: sha1:MNNYLMITpF6+4gLcfDIzWgnI7js= X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 195.159.176.226 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:13950 Archived-At: Hi Linas, Linas Vepstas 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 base. My 2¢! Ludo’.