|
From: | Jörg F. Wittenberger |
Subject: | Re: [Chicken-hackers] Made a start with CHICKEN 5 proposal |
Date: | Wed, 10 Sep 2014 12:39:15 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux armv7l; rv:31.0) Gecko/20100101 Icedove/31.0 |
Am 09.09.2014 um 17:39 schrieb Oleg Kolosov:
On 09/04/14 13:30, "Jörg F. Wittenberger" wrote:Am 29.08.2014 20:50, schrieb Oleg Kolosov:On 08/23/14 19:35, Peter Bex wrote:I've made a start on the wiki, at what we'd like CHICKEN 5 to be about.I've remembered one more thing: why not stick the terminating '\0' at the end of all strings in internal representation? This looks pretty harmless but could make some common FFI uses a breeze.Don't, please. a) This would make "some forms of abuse" "safe anyway". But internal \0 would have to handled for correct programs anyway. Eventually one ends up rewriting mostly working code at that point. b) I don't recall the full story. But we had precisely this problem once with RScheme (which does have this terminating \0). In the end Donovan Kolbly (creator of RScheme) commented on the topic: "I was young." _______________________________________________ Chicken-hackers mailing list address@hidden https://lists.nongnu.org/mailman/listinfo/chicken-hackersThis might be entirely point of view issue,
Probably it is.
but I don't see the problem in allowing some abuse to gain performance, with the assumption that the user knows what he is doing.
In the case I cited the problem was that the assumption was at some point built deep into the system. When we wanted to get it of the terminating \0 for some reason, we could not with reasonable effort. That's seen as bad here.
In our commercial system we have few applications where CHICKEN's string handling was found as a bottleneck (indexing large number of database entries, filtering lists of thousands of file names, etc.). Equivalent pure C version is few times (sometimes order of magnitude) faster with the same algorithms. Even doing heavy lifting in C and just pushing data back to CHICKEN hurts performance a lot (our GUI is written in Scheme).
I'm avoiding chickens string handling as well, if I can.
[Prev in Thread] | Current Thread | [Next in Thread] |