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

2022-03-30 Thread Sebastian Shader via Pd-dev
As IOhannes says the hope is that somehow externals can simply be dynamically 
loaded from vst plugins at runtime.(I think I heard camomile might have some 
other limitations for this with permissions or something right now anyways)
an example is plugdata https://github.com/timothyschoen/PlugData which is based 
on camomile. it would be great if users of the plugin wouldn't have to go about 
compiling their own externals and/or compiling the plugin themselves, if those 
other issues are resolved.
-seb
Date: Wed, 30 Mar 2022 17:45:41 +0200
From: Dan Wilcox 
To: pd-dev 
Subject: Re: [PD-dev] call for discussion double-precision file
    extension
I lean much more on the side that PDINSTANCE is a low-level, per project 
compile option and not general-purpose. If you are using libpd, then your 
environment is a bit more custom anyway.

> On Mar 30, 2022, at 5:40 PM, pd-dev-requ...@lists.iem.at wrote:
> 
> Message: 1
> Date: Wed, 30 Mar 2022 16:06:23 +0200
> From: IOhannes m zmoelnig mailto:zmoel...@iem.at>>
> To: pd-dev@lists.iem.at <mailto:pd-dev@lists.iem.at>
> Subject: Re: [PD-dev] call for discussion double-precision file
>     extension
> Message-ID: <3a9d2e07-a831-eb18-7797-5ff5b191e...@iem.at 
> <mailto:3a9d2e07-a831-eb18-7797-5ff5b191e...@iem.at>>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
> 
> 
> On 3/29/22 20:26, Sebastian Shader via Pd-dev wrote:
>> 
>> I wonder if anything should be considered for multi-instance support as well 
>> (externals compiled w/ PDINSTANCE)
> 
> good question.
> 
> afaict, there are no plans to ever ship binaries Pd with PDINSTANCE=1 
> (but i have no idea, really).
> 
> can we expect developers of PDINSTANCE-enabled (lib)Pds to also provide 
> the binaries for the extrenals?
> i guess it would be nice if you (as a patch-developer with a 
> compiler-allergy) could just install whatever externals you want to be 
> included with your camomille-based VST plugin.
> 
> gfmdras
> IOhannes


Dan Wilcox
@danomatika <http://twitter.com/danomatika>
danomatika.com <http://danomatika.com/>
robotcowboy.com <http://robotcowboy.com/>



-- next part --
An HTML attachment was scrubbed...
URL: 
<http://lists.puredata.info/pipermail/pd-dev/attachments/20220330/a1700616/attachment.htm>

--

Subject: Digest Footer

___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


--

End of Pd-dev Digest, Vol 202, Issue 13
***
___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-30 Thread Dan Wilcox
I lean much more on the side that PDINSTANCE is a low-level, per project 
compile option and not general-purpose. If you are using libpd, then your 
environment is a bit more custom anyway.

> On Mar 30, 2022, at 5:40 PM, pd-dev-requ...@lists.iem.at wrote:
> 
> Message: 1
> Date: Wed, 30 Mar 2022 16:06:23 +0200
> From: IOhannes m zmoelnig mailto:zmoel...@iem.at>>
> To: pd-dev@lists.iem.at <mailto:pd-dev@lists.iem.at>
> Subject: Re: [PD-dev] call for discussion double-precision file
>   extension
> Message-ID: <3a9d2e07-a831-eb18-7797-5ff5b191e...@iem.at 
> <mailto:3a9d2e07-a831-eb18-7797-5ff5b191e...@iem.at>>
> Content-Type: text/plain; charset="utf-8"; Format="flowed"
> 
> 
> On 3/29/22 20:26, Sebastian Shader via Pd-dev wrote:
>> 
>> I wonder if anything should be considered for multi-instance support as well 
>> (externals compiled w/ PDINSTANCE)
> 
> good question.
> 
> afaict, there are no plans to ever ship binaries Pd with PDINSTANCE=1 
> (but i have no idea, really).
> 
> can we expect developers of PDINSTANCE-enabled (lib)Pds to also provide 
> the binaries for the extrenals?
> i guess it would be nice if you (as a patch-developer with a 
> compiler-allergy) could just install whatever externals you want to be 
> included with your camomille-based VST plugin.
> 
> gfmdras
> IOhannes


Dan Wilcox
@danomatika <http://twitter.com/danomatika>
danomatika.com <http://danomatika.com/>
robotcowboy.com <http://robotcowboy.com/>



___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-30 Thread Christof Ressi

On 30.03.2022 17:40, IOhannes m zmoelnig wrote:


On 3/30/22 17:21, Christof Ressi wrote:
but i don't really see how it would help with fat binaries. 

Two solutions that come to my mind:

1) just use an ugly folder name:

foo.pd/darwin-amd64-32.darwin-arm64-32/foo.dylib


the problem with this is, that it is not well-defined.

currently we calculate a few variants of possible names based on a 
reference string ("darwin-arm64-32") and try to open files according 
to these names.


but we cannot possible foresee all the possible variants; even if we 
limit ourselves to 4 architectures, we get about 40 possible variants 
(for any 1 architecture)


I see. What about the second idea?


2) use a special specifier for universal binaries:

foo.pd/darwin-universal-32/foo.dylib 





___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-30 Thread IOhannes m zmoelnig


On 3/30/22 17:21, Christof Ressi wrote:
but i don't really see how it would help with fat binaries. 

Two solutions that come to my mind:

1) just use an ugly folder name:

foo.pd/darwin-amd64-32.darwin-arm64-32/foo.dylib



the problem with this is, that it is not well-defined.



currently we calculate a few variants of possible names based on a 
reference string ("darwin-arm64-32") and try to open files according to 
these names.


but we cannot possible foresee all the possible variants; even if we 
limit ourselves to 4 architectures, we get about 40 possible variants 
(for any 1 architecture)


so we must do this differently: glob all files (or directories) and see 
whether one of the results matches our reference string.


i'm not sure i want this: there seems to be much too much logic involved 
for little apparent gain.





Typically, the user won't see it :-)


the user will notice if loading libraries takes forever.

dgfamdsr
IOhannes


OpenPGP_signature
Description: OpenPGP digital signature
___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-30 Thread Christof Ressi
but i don't really see how it would help with fat binaries. 

Two solutions that come to my mind:

1) just use an ugly folder name:

foo.pd/darwin-amd64-32.darwin-arm64-32/foo.dylib

Typically, the user won't see it :-)

2) use a special specifier for universal binaries:

foo.pd/darwin-universal-32/foo.dylib


On 30.03.2022 16:33, IOhannes m zmoelnig wrote:


On 3/30/22 16:16, Christof Ressi wrote:


i do not want to have zexy.darwin-amd64-32.darwin-arm64-32.so 
maybe a bundle structure (as described in 
https://lists.puredata.info/pipermail/pd-dev/2022-03/022997.html) 
might not be such a bad idea after all?


maybe.
it solves problems like auxiliary libraries and keeps the directory 
reasonably clean.


but i don't really see how it would help with fat binaries.

dgfmsfa
IOhannes

___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev




___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-30 Thread IOhannes m zmoelnig


On 3/30/22 16:16, Christof Ressi wrote:


i do not want to have zexy.darwin-amd64-32.darwin-arm64-32.so 
maybe a bundle structure (as described in 
https://lists.puredata.info/pipermail/pd-dev/2022-03/022997.html) might 
not be such a bad idea after all?


maybe.
it solves problems like auxiliary libraries and keeps the directory 
reasonably clean.


but i don't really see how it would help with fat binaries.

dgfmsfa
IOhannes


OpenPGP_signature
Description: OpenPGP digital signature
___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-30 Thread Christof Ressi


i do not want to have zexy.darwin-amd64-32.darwin-arm64-32.so 
maybe a bundle structure (as described in 
https://lists.puredata.info/pipermail/pd-dev/2022-03/022997.html) might 
not be such a bad idea after all?





___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-30 Thread IOhannes m zmoelnig


On 3/29/22 20:03, Lucas Cordiviola wrote:

Joining the discussion:

I think the "deken-specifier" is Ok.



here's something i just came up with:
what would the deken-specifier be for fat-binaries (on macOS).

i do not want to have zexy.darwin-amd64-32.darwin-arm64-32.so
(the reason is practicability: Pd constructs the filename beforehand, 
and then tries to open the file. but in this example, we do not really 
know whether the filename is "zexy.darwin-amd64-32.darwin-arm64-32.so" 
or "zexy.darwin-arm64-32.darwin-amd64-32.so" or 
"zexy.darwin-arm64-32.darwin-ppc-32.darwin-amd64-32.so")



we obviously could ditch fat binaries in this case altogether (not sure 
whether this is a good idea though).


gfmas
IOhannes


OpenPGP_signature
Description: OpenPGP digital signature
___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-30 Thread IOhannes m zmoelnig


On 3/29/22 20:26, Sebastian Shader via Pd-dev wrote:


I wonder if anything should be considered for multi-instance support as well 
(externals compiled w/ PDINSTANCE)


good question.

afaict, there are no plans to ever ship binaries Pd with PDINSTANCE=1 
(but i have no idea, really).


can we expect developers of PDINSTANCE-enabled (lib)Pds to also provide 
the binaries for the extrenals?
i guess it would be nice if you (as a patch-developer with a 
compiler-allergy) could just install whatever externals you want to be 
included with your camomille-based VST plugin.


gfmdras
IOhannes


OpenPGP_signature
Description: OpenPGP digital signature
___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-29 Thread Sebastian Shader via Pd-dev

I wonder if anything should be considered for multi-instance support as well 
(externals compiled w/ PDINSTANCE)
-seb
Date: Tue, 29 Mar 2022 11:28:57 +0200
From: IOhannes m zmoelnig 
To: Pd-dev@lists.iem.at
Subject: [PD-dev] call for discussion double-precision file extension
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 "--", 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 ._ 
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@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-29 Thread Lucas Cordiviola

Joining the discussion:

I think the "deken-specifier" is Ok.

We should probably be prepared for both apps installations coexisting. 
In the case of Windows we should have a different default location and a 
name for the double app. Think of Pd-double whose default installation 
via the installer lives next to the single precision app:


C:\Program Files\Pd

C:\Program Files\Pd-double.

"Pd-double" can be anything better or whatever.

I think we can live sharing the same "Windows registry settings" for 
both apps.


We need the different app name not only for Windows. Thinking of the 
debian package and of course the macos app.



--

Mensaje telepatico asistido por maquinas.





___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-29 Thread Christof Ressi
One "con" I can imagine is that there are "cleaner" alternatives than 
name mangling.


For example, VST3 plugins use a bundle structure which also allows for 
"merged bundles": 
https://developer.steinberg.help/display/VST/Plug-in+Format+Structure.


Something similar *could* work for Pd externals:

foo-lib/

-- bar.pd/

 windows-amd64-64/bar.dll

 windows-amd64-32/bar.dll

 linux-amd64-64/bar.dll

 linux-amd64-32/bar.dll

etc.

In this case, the .pd extension would be used both for Pd abstractions 
and external binary bundles.


But it might be overkill...

Christof

On 29.03.2022 17:49, Roman Haefeli wrote:

On Tue, 2022-03-29 at 17:29 +0200, Christof Ressi wrote:

+1

+1


I think it's nicer to use a common extension and have the
platform/arch/floatsize specifier as a seperate component.



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.

Why? I think it is much friendlier for the user to see in the filename
what is in it. If binaries are distinguished by installing them to
separated folders (but still share filename), people will try to move
files around to make things work and thus getting into a mess really
quickly. One shouldn't have to use 'file pdexternal.ext' to know what
actually is in it.

Having said that, I'm still curious to know what you thought are the
cons back then.
Roman

___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev




___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-29 Thread Roman Haefeli
On Tue, 2022-03-29 at 17:29 +0200, Christof Ressi wrote:
> +1

+1

> I think it's nicer to use a common extension and have the 
> platform/arch/floatsize specifier as a seperate component.


> > 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.

Why? I think it is much friendlier for the user to see in the filename
what is in it. If binaries are distinguished by installing them to
separated folders (but still share filename), people will try to move
files around to make things work and thus getting into a mess really
quickly. One shouldn't have to use 'file pdexternal.ext' to know what
actually is in it. 

Having said that, I'm still curious to know what you thought are the
cons back then.
Roman


signature.asc
Description: This is a digitally signed message part
___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-29 Thread Christof Ressi

+1

I think it's nicer to use a common extension and have the 
platform/arch/floatsize specifier as a seperate component.


On 29.03.2022 11:28, IOhannes m zmoelnig wrote:


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 "--", 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 
._ 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@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev




___
Pd-dev mailing list
Pd-dev@lists.iem.at
https://lists.puredata.info/listinfo/pd-dev


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

2022-03-29 Thread Alexandre Torres Porres
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 
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 "--", 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 ._
> 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.
>