[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: null terminated strings
From: |
Andreas Voegele |
Subject: |
Re: null terminated strings |
Date: |
Fri, 16 Jan 2004 13:24:01 +0100 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) Emacs/21.3.50 (gnu/linux) |
Roland Orre writes:
> On Fri, 2004-01-16 at 11:17, Andreas Voegele wrote:
>> Roland Orre writes:
>>
>> > On Fri, 2004-01-16 at 10:10, Andreas Voegele wrote:
>> >
>> >> "Remove calls to SCM_STRING_COERCE_0TERMINATION_X. Since the
>> >> substring type is gone, all strings are 0-terminated anyway."
>> >
>> > Such a statement is very worrying. What happened to the promises
>> > that all substrings will be shared strings?
>>
>> I'm new to Guile. I don't know why shared strings were removed from
>> Guile, but things were probably simplified greatly by this decision.
>> I think that it is very useful to zero terminate all strings since
>> embedding and extending Guile becomes easier.
>
> During all years I've used scm and later guile (I think 14 years now)
> I have very very rarely had any need for null terminated strings. There
> is a function in guile to convert a null terminated string to a guile
> string, this I've used a few times. In C programming I often don't
> rely on null terminated strings either as there are many C library
> functions that works with length, which I consider more elegant.
It probably depends on what you're doing with Guile. I intend to use
Guile to glue together code from a lot of existing C libraries. I'm
currently writing wrappers for several C libraries and a lot of
functions provided by these libraries require null terminated strings.
On the other hand, I agree that a stable API is important. Because of
this I also thought about using Guile 1.4 but I came to the conclusion
that Guile 1.6 is better when you need to wrap a lot of C libraries.
(I know SWIG but I don't like it very much.)
> The absence of shared substrings on the other hand means a lot of
> special code to be able to do something similar without having to
> copy and create strings all the time. For instance in a conversion
> routine for fixed data base tables I made some years ago I had first
> used substrings. The program took 15 hours to run on a specific
> table. When I changed to use shared substrings it took about 1 hour
> on the same table.
That's indeed a huge difference.
> I think it is quite bad to have the requirement that guile should
> rely on null terminated strings as it is often quite easy to come
> around this from my point of view. In guile 1.6.4 it is also
> expressed so that all substrings are intended to become internally
> shared, which I don't see have happened yet.
I'm wondering how substrings could be shared when there's also a
promise that all strings are null terminated.
- argz SMOB, Brian S McQueen, 2004/01/05
- Re: argz SMOB, Daniel Skarda, 2004/01/06
- Re: argz SMOB, Brian S McQueen, 2004/01/15
- Re: argz SMOB, Paul Jarc, 2004/01/15
- null terminated strings (was: argz SMOB), Andreas Voegele, 2004/01/16
- Message not available
- Re: null terminated strings, Andreas Voegele, 2004/01/16
- Re: null terminated strings, Roland Orre, 2004/01/16
- Re: null terminated strings,
Andreas Voegele <=
- Re: null terminated strings, Brian S McQueen, 2004/01/16
- Re: null terminated strings, Paul Jarc, 2004/01/16
- Re: null terminated strings, Tom Lord, 2004/01/16
- Re: null terminated strings, Paul Jarc, 2004/01/16
- Re: null terminated strings, Roland Orre, 2004/01/16
- Re: null terminated strings, Ken Anderson, 2004/01/19
- Re: null terminated strings, Per Bothner, 2004/01/19
- Re: null terminated strings, Ken Anderson, 2004/01/19