regressions

17 views
Skip to first unread message

Qian Yun

unread,
Jun 6, 2026, 8:07:56 PM (6 days ago) Jun 6
to fricas-devel
I'll use this thread to report (and keep track of) regressions.

In commit a6e72852, in g-error.boot, it should be "first_symbol"
instead of "find_symbol", it breaks ")set break query".

- Qian

Waldek Hebisch

unread,
Jun 6, 2026, 9:13:26 PM (6 days ago) Jun 6
to fricas...@googlegroups.com
No, I intended 'find_symbol'. It just needs to be properly handled.

--
Waldek Hebisch

Qian Yun

unread,
Jun 8, 2026, 5:18:38 AM (5 days ago) Jun 8
to fricas-devel
In commit b2eb2d66, src/interp/i-spec1.boot, "upDeclare":

"throw_msg_eval_invalid_type" should be "throw_msg_invalid_type2"?
(number of parameter mismatch).

- Qian

Qian Yun

unread,
Jun 9, 2026, 10:49:14 AM (4 days ago) Jun 9
to fricas-devel
Latest commit 4778988f "Add openIfCan" added test
that fails on Windows.

Do you need me to debug it on Windows?

- Qian

Waldek Hebisch

unread,
Jun 9, 2026, 11:09:39 AM (4 days ago) Jun 9
to fricas...@googlegroups.com
I have no access to Windows. Test tries to create file in a root
directory of file system. If Windows allows this for ordinary user,
then I see no way for this test to pass on Windows. If there is
different problem, then it would be good to fix it.

In principle we could make the test conditional, so that it is
skipped on Windows (that would require some work on "assertions").

--
Waldek Hebisch

Qian Yun

unread,
Jun 9, 2026, 12:12:15 PM (3 days ago) Jun 9
to fricas...@googlegroups.com
I can't reproduce this test error locally. Probably because
the Windows github actions runner is executed with Admin user.
This test fails under Linux if run with root.

I change the test from "output" to "input", and it passes.

- Qian

Waldek Hebisch

unread,
Jun 9, 2026, 3:10:53 PM (3 days ago) Jun 9
to fricas...@googlegroups.com
The idea was to test that file system permissions prevent
operation and that this get caugt as "failed". Input
fails because file does not exist, this is different (and
easier).

--
Waldek Hebisch

Qian Yun

unread,
Jun 9, 2026, 8:16:22 PM (3 days ago) Jun 9
to fricas...@googlegroups.com
How to proceed then? Add assertions? But this is not tied to
Windows, it is tied to admin/root user.

- Qian

Qian Yun

unread,
Jun 10, 2026, 7:03:11 AM (3 days ago) Jun 10
to fricas-devel
On 6/9/26 10:49 PM, Qian Yun wrote:
> Latest commit 4778988f "Add openIfCan" added test
> that fails on Windows.
>

Further more, the single argument variate is not implemented
for KeyedAccessFile:

f : FileName -> Union(KAFILE INT,"failed") := openIfCan$KAFILE INT
Internal Error

And the error message should be changed to fname:
error ["Can not open: ", mode]

- Qian

Waldek Hebisch

unread,
Jun 10, 2026, 5:37:14 PM (2 days ago) Jun 10
to fricas...@googlegroups.com
One possibility is to allow this test to fail. IIUC this currently
causes CI failure but I hope it is possibile to ignore this test in CI.

I used file in root directory in hope of getting test independent
of operating system. So another way is to use test depending on
OS (on Unix using touch + chmod to get desired permissions) and use
assertions to activate it or choose correct version.

--
Waldek Hebisch

Waldek Hebisch

unread,
Jun 10, 2026, 6:11:47 PM (2 days ago) Jun 10
to fricas...@googlegroups.com
On Wed, Jun 10, 2026 at 07:03:06PM +0800, Qian Yun wrote:
> On 6/9/26 10:49 PM, Qian Yun wrote:
> > Latest commit 4778988f "Add openIfCan" added test
> > that fails on Windows.
> >
>
> Further more, the single argument variate is not implemented
> for KeyedAccessFile:
>
> f : FileName -> Union(KAFILE INT,"failed") := openIfCan$KAFILE INT
> Internal Error

Yes, this one is currently missing. I am thinking what to do here.
KeyedAccessFile has apparently undocumented mode "either" and it
is used for one argument 'open'. But documentation in
FileCategory says that one argument version uses "input".

I am not sure if anythig/anyone depends on "either". Actually,
I would like to have consistent modes for all files and
"either" looks strange. It is not clear to me if "either"
for single argument version is of any use: in case of non
existing KAF it creates empty one and effectively opens it for
input. But input from empty KAF does not look useful. OTOH
I was thinking about adding "append" for all files. For
sequential files "append" makes clear sense and for KAF
files natural meaning of "append" corresponds to what
"either" is doing now (that is preserving existing data in
the file).

> And the error message should be changed to fname:
> error ["Can not open: ", mode]

Yes.

--
Waldek Hebisch

Qian Yun

unread,
Jun 10, 2026, 6:36:15 PM (2 days ago) Jun 10
to fricas...@googlegroups.com
On 6/11/26 5:37 AM, Waldek Hebisch wrote:
>
> One possibility is to allow this test to fail. IIUC this currently
> causes CI failure but I hope it is possibile to ignore this test in CI.
>
> I used file in root directory in hope of getting test independent
> of operating system. So another way is to use test depending on
> OS (on Unix using touch + chmod to get desired permissions) and use
> assertions to activate it or choose correct version.
>

OK, two workarounds:

1. open an existing directory as file will fail.

2. open a file which parent directory does not exist will fail.

- Qian

Waldek Hebisch

unread,
Jun 10, 2026, 8:11:01 PM (2 days ago) Jun 10
to fricas...@googlegroups.com
To explain motivation: before change when trying to open file for
input 'open_stream' would just retrun 'nil'. But in case of permission
failure Lisp 'open' signals an error and apparently no portable
keyword can change that. The intent of the test was to verify that
we get return value instead of an error. In 'sbcl' trying to
open file for writing in not exising directory gives error, so
that would be enough as general test of involved machinery.
OTOH it would be nice to have more direct test, which fails
due to access rights (internally in Lisp implementation the
various variants may correspond to different code paths with
different handling).

As you noted, things that are not tested by testsuite may too
easily get broken, so I wanted to add a test. If we can not
do better, testing open for writing in not exising directory
may be good enough.

--
Waldek Hebisch
Reply all
Reply to author
Forward
0 new messages