lilypond-devel
[Top][All Lists]
Advanced

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

Re: Updating alists


From: David Kastrup
Subject: Re: Updating alists
Date: Fri, 31 Dec 2021 00:40:07 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Jean Abou Samra <jean@abou-samra.fr> writes:

> Le 30/12/2021 à 23:04, Lukas-Fabian Moser a écrit :
>> Hi Jean,
>>
>>>
>>> Both of these cases seem to work the same as in
>>> current versions if I do
>>>
>>> [...]
>>>
>>>  SCM
>>>  assq_tail (SCM key, SCM alist, SCM based_on = SCM_EOL)
>>>  {
>>> -  for (SCM p = alist; !scm_is_eq (p, based_on); p = scm_cdr (p))
>>> +  for (SCM p = alist; scm_is_pair (p) && scm_is_pair (scm_car (p))
>>> && !scm_is_eq (p, based_on); p = scm_cdr (p))
>>>      {
>>>        if (scm_is_eq (scm_caar (p), key))
>>>          return p;
>>
>> Thanks! This seems to be a sensible precaution anyway, as it only
>> changes a certain crash into returning #f. So it might be sensible
>> to make this change anyway?
>
>
> Turns out that you can already trigger the
> crash in current versions with
>
> \version "2.23.5"
>
> x = 0
> x.y.z = 1

That's not what I call a crash.  That triggers a Scheme error.

lilypond /tmp/bab.ly
GNU LilyPond 2.23.5 (running Guile 1.8)
Processing `/tmp/bab.ly'
Parsing.../usr/local/share/lilypond/2.23.5/scm/lily/lily.scm:978:21: In 
procedure ly:parse-file in expression (ly:parse-file file-name):
/usr/local/share/lilypond/2.23.5/scm/lily/lily.scm:978:21: Wrong type 
(expecting pair): 0

And frankly, I don't see something wrong with that.  Could use a better
error locator, sure.  But it's not the same as a core dump.

-- 
David Kastrup



reply via email to

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