[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#59221: (file-exists? #f) raises an exception
From: |
jbranso |
Subject: |
bug#59221: (file-exists? #f) raises an exception |
Date: |
Sun, 13 Nov 2022 02:15:43 +0000 |
November 12, 2022 12:58 PM, "Jean Abou Samra" <jean@abou-samra.fr> wrote:
>> Le 12 nov. 2022 à 18:50, Joshua Branson via Bug reports for GUILE, GNU's
>> Ubiquitous Extension
>> Language <bug-guile@gnu.org> a écrit :
>>
>> Hello you lovely guile people!
>>
>> This bug is so simple the subject line says it all!
>>
>> file-exists? is a predicate, but
>>
>> #+BEGIN_SRC scheme
>> (file-exists? #f)
>> ice-9/boot-9.scm:1685:16: In procedure raise-exception:
>> In procedure stat: Wrong type argument in position 1 (expecting open file
>> port): #f
>>
>> Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.
>> #+END_SRC
>>
>> I will shortly tag this as "easy". Can you lovely maintainers give me
>> about a week to try to fix this myself?
>>
>> Thanks,
>>
>> Joshua
>> avid fantany reader
>
> What’s the problem here?
>
> It is normal for predicates to be defined only on certain types. You will
> find the same with
> positive?, string-null? and the like.
Perhaps I am just being really pedantic. I asked in the #guile irc chat if a
predicate should
be able to raise an exception. The answer I was given was no.
Admittedly I did not stay in the channel for long, and I quickly filed this bug
report.
Naively, it just feel like it (file-exists? #f) should return #f.
Would there be an objection to changing the definition of file-exists to
(define (file-exists file)
(and (string? file)
(old-file-exists-code file)))
Thanks,
Joshua
>
> Regards,
> Jean