[PD-dev] call for discussion double-precision file extension

Alexandre Torres Porres porres at gmail.com
Tue Mar 29 16:08:55 CEST 2022


Yeah I guess it makes sense to have a distinct extension.

I haven't provided double precision externals yet because I think the
binary should be easily available for those unaware of compiling magic
first. And while we're at it, I guess it's time to provide them at miller's
site and puredata.info

cheers

Em ter., 29 de mar. de 2022 às 06:29, IOhannes m zmoelnig <zmoelnig at iem.at>
escreveu:

>
> hi,
>
> TL;DR i'd like to suggest to use deken-specifiers as (optional) part of
> external filenames, in order to allow co-installability of externals of
> different OSs, architectures and floatsizes (and more to come).
>
> i would really love to push the double precision saga towards a (happy)
> end.
> we have been able to compile Pd for 64bit double precision numbers.
> there's even a double-precision variant available in the Debian
> "experimental" repositories (but who knows that?)
>
> *very* few people have started to provide externals (i counted: 4).
>
> afaict the biggest hurdle is that you can't really co-install single and
> double variants of the same external.
> since there are so few double-precision externals available, people who
> rely on externals will be forced to use single-precision Pd for some time.
> but since installing a double-precision external might overwrite an
> existing single-precision external (required in your other project), i
> understand why people are not exactly eager to do that.¹
>
>
> one solution to this problem is to use different installation paths
> (e.g. ~/Documents/Pd/extra/ vs ~/Documents/Pd/extra64/).
> this doesn't play well with how deken currently works (as it stores the
> installation path globally (for all versions/variants of Pd).
>
> Lucas suggested to use different file extensions (a year ago...time
> flies), by inserting `.float64` (and possibly `.float32`) right before
> our known extension (so we get `foo.float64.m_amd64`)
> I didn't especially like this back then, but in the meantime i've come
> to the conclusion that it's probably the best way forward.
>
> however, i think that we might do better than just inserting a single
> `.float64`, and just unify the entire naming scheme to hold all the
> information we need.
>
> i'd therefore suggest to use the deken-specifier together with the
> native extension (for dynamic-link libraries), as a new extension.
>
> the "native extension for dynamic-link libraries" is typically defined
> on an OS level, and is something like ".dll" on Windows, ".dylib" on
> macOS and ".so" in the un*x world.
>
> the "deken-specifier" is what we use in deken packages to know that they
> contain binaries for your specific combination of CPU, OS and precision,
> and looks like "<OS>-<CPU>-<precision>", e.g. "Darwin-arm64-32" (which
> denotes a macOS binary ("Darwin") that runs on the M1 processor
> ("arm64") and uses single-precision numbers ("32" bits).
>
> this would give us filenames like "zexy.windows-amd64-32.dll"
> to keep things simple (and reduce the noise with -verbose), i would
> suggest to only allow lower case specifiers, and no arch variants (e.g.
> i386 for all x86_32 variants, and amd64 for all x86_64 variants)
>
> pros
>
> - using the system extension does not require us to invent our own
> extension for each new platform
> - system tools often use the file-extension to recognize the file type
> - deken-specifiers fully cover what we need to know (the problem space
> is the same for deken package files and externals: allow coexistence of
> files with multiple OS/arch/precision specs)
> - people can relate the files within a deken-package with the
> deken-package-filename
> - if we ever need to add a new parameter, the deken specifier and the
> externals are likely to be affected in a similar way, so we need to
> solve the problem only once.
> - it gets rid of the super-cryptic .<first-letter-of-the-os>_<cpu-arch>
> specifier (.o_ia64 anybody?)
>
> cons
>
> it shares the same (final) extensions as any support libraries.
> eg. "zexy.linux-amd64-32.so" + "libzexy.linux-amd64-32.so" (or even
> libzexy.linux-amd64-32.so.so, but I guess we don't want this)
>
> probably some more...
>
>
> instead of using the system extension for dynamic libraries, we might
> pick a general unified (final) extension, instead of the system ones,
> e.g. .pdx (but that is already taken) or .pd_external.
> but i think the less we invent ourselves, the better.
>
>
>
> Lucas had started a feature-request/discussion on this very topic a year
> ago, but it was dormant until now.
>
> https://github.com/pure-data/pure-data/issues/902
>
> i would like to hear your opinion on this (here or at the issue tracker;
> or both), and eventually get this done.
>
> once this is solved, i will start to push Pd64 packages to the Debian
> repositories, so people can start to use it (without having to compile
> themselves).
>
>
> gfmsdr
> IOhannes
>
>
> ¹ just for the record: the biggest hurdle is of course that there is no
> double-precision download available right now... but that's a bit of an
> egg-hen problem.
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at lists.iem.at
> https://lists.puredata.info/listinfo/pd-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-dev/attachments/20220329/f9c4e1e2/attachment.htm>


More information about the Pd-dev mailing list