Opened 6 months ago

Closed 4 weeks ago

#433 closed defect (fixed)

merge-pathnames blocks error signal?

Reported by: aruttenberg Owned by:
Priority: major Milestone: 1.5.0
Component: interpreter Version: 1.5.0-dev
Keywords: cl:pathname :unspecific Cc:
Parent Tickets:

Description

(make-pathname :directory '(:absolute ("a" "b")))
property signals an error Unsupported directory component (a b).

However the following
(merge-pathnames (make-pathname :directory '(:absolute ("a" "b"))) "")

Does not, instead spitting out a java stack trace

ABCL Debug.assertTrue() assertion failed!
java.lang.Error: ABCL Debug.assertTrue() assertion failed!

at org.armedbear.lisp.Debug.assertTrue(Debug.java:48)
at org.armedbear.lisp.Pathname.<init>(Pathname.java:154)
at org.armedbear.lisp.Pathname.mergePathnames(Pathname.java:1979)
at org.armedbear.lisp.Pathname$pf_merge_pathnames.execute(Pathname.java:1957)
at org.armedbear.lisp.LispThread?.execute(LispThread?.java:832)
at org.armedbear.lisp.Lisp.evalCall(Lisp.java:582)
at org.armedbear.lisp.Lisp.eval(Lisp.java:540)
at org.armedbear.lisp.Primitives$pfeval.execute(Primitives.java:345)

Subtickets

Change History (2)

comment:1 Changed 6 weeks ago by mevenson

As suggested in <irc:freenode:#abcl> by Ferada: the fix would be to replace the Debug.assertTrue() with code that throws a proper Lisp ERROR.

In general, the Debug.assertTrue() instances in the codebase should be audited, and replaced where possible.

Last edited 6 weeks ago by mevenson (previous) (diff)

comment:2 Changed 4 weeks ago by mevenson

  • Keywords cl:pathname :unspecific added
  • Milestone set to 1.5.0
  • Resolution set to fixed
  • Status changed from new to closed
  • Version set to 1.5.0-dev
Note: See TracTickets for help on using tickets.