I teach an undergraduate college course in Applied Linear Algebra in which
I have been using PDL 2.026, as well as R and Python, these three to
encourage an awareness that *TIMTOWTDI*.  My students may use Linux or
macOS and I personally use High Sierra, 10.13.6.  My Perl was 5.30.2
managed with perlbrew.  At the end of the last term I decided to upgrade
Perl in macOS to 5.36.1 in anticipation of fall classes, and of course,
this meant I had to reinstall all my site_perl modules, including PDL.
Unfortunately, pdlcore.c segmentation faults using both clang 9.2 and 10.1,
the last clang for my version of macOS.  Thus began an odyssey to find a
way to get the latest PDL installed.

I won't detail all the research I did but sufficient to say pdlcore.c
underwent significant refactoring after 2.026, specifically a macro
expansion of *pdl_kludge_copy_*  *where * maps to a set of C data-object
typedefs.  Not willing to give up on PDL, and not knowing which version I
could safely use in my macOS (without having to upgrade my Mac, a brutal
process), I attempted working backward from 2.084 with *cpanm PDL@2.0**
until I could find one that would compile, to wit:

./.cpanm/work/1690007816.5251/PDL-2.084/Basic/Core/pdlcore.c
./.cpanm/work/1690012699.22291/PDL-2.083/Basic/Core/pdlcore.c
./.cpanm/work/1690013806.25715/PDL-2.082/Basic/Core/pdlcore.c
./.cpanm/work/1690400634.44615/PDL-2.082/Basic/Core/pdlcore.c
./.cpanm/work/1690400709.46037/PDL-2.080/Basic/Core/pdlcore.c
./.cpanm/work/1690400791.48025/PDL-2.076/Basic/Core/pdlcore.c
./.cpanm/work/1690400867.49448/PDL-2.060/Basic/Core/pdlcore.c
./.cpanm/work/1690400949.52220/PDL-2.026/Basic/Core/pdlcore.c

I grew tired of this exercise after 2.060 failed, so I went back to my old
standby 2.026 and *voilĂ *, I again have a usable, but ancient, PDL.

It seems obvious that PDL lacks an older macOS platform in testers,
otherwise, you would have seen this problem before now.  Either that, or
leaving older macOS platforms behind is a strategic decision (meaning no
disrespect; it *is* what it *is*), one that Apple makes all the time to
generate more sales.

My question is, would it be possible to revert *pdlcore.c* back to the
switch structure used in 2.026?  I can think of a number of ways to
implement this functionality without resorting to that massive macro
expansion, but of course, the callers would also need to change.  The
alternative is never being able to upgrade PDL beyond 2.026 without the
pain of upgrading the HW and the OS.  That strikes me as a thumb in the eye
to the principles of open-source.  Obviously, my use of PDL is rudimentary
to what the software is capable of, but what a joy it would be if the
developers could find a way to do PDL magic while at the same time being
backward compatible to older OSes. At the least, could you add to testers
older macOS platforms to refine the build process?

Thanks in advance and regards,
T. William (perlboy) Schmidt
_______________________________________________
pdl-general mailing list
pdl-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pdl-general

Reply via email to