Menu

#30 ps-crypt 1.11 breaks with development version of emacs

v1.0_(example)
closed-fixed
nobody
None
5
2024-03-05
2024-03-04
No

When I try to open a .cpt file, I get:

if: Wrong type argument: obarrayp, [nil nil nil nil nil nil nil nil nil nil ...]

This is presumably due to the recent changes to using obarrays, e.g. commit 462d8ba813e0 from Feb 10. The etc/NEWS file contains the following info:

*** New obarray type.
Obarrays are now represented by an opaque type instead of using vectors.
They are created by 'obarray-make' and manage their internal storage
automatically, which means that the size parameter to 'obarray-make' can
safely be omitted. That is, they do not become slower as they fill up.

The old vector representation is still accepted by functions operating
on obarrays, but 'obarrayp' only returns t for obarray objects.
'type-of' now returns 'obarray' for obarray objects.

Old code which (incorrectly) created "obarrays" as Lisp vectors filled
with something other than 0, as in '(make-vector N nil)', will no longer
work, and should be rewritten to use 'obarray-make'. Alternatively, you
can fill the vector with 0.

*** New function 'obarray-clear' removes all symbols from an obarray.

*** 'obarray-size' and 'obarray-default-size' are now obsolete.
They pertained to the internal storage size which is now irrelevant.

Discussion

  • Dan Christensen

    Dan Christensen - 2024-03-04

    Changing (make-vector 31 nil) to (make-vector 31 0) seems to fix it for me, but I'm not an expert and this is only very lightly tested.

     
  • Peter Selinger

    Peter Selinger - 2024-03-05

    At least (make-vector 31 0) doesn't seem to break anything for me, so I'm happy to make that change.

     
  • Peter Selinger

    Peter Selinger - 2024-03-05
    • status: open --> closed-fixed
     

Log in to post a comment.