> On Sunday, May 12, 2019, 9:16:58 AM PDT, Christof Ressi <christof.ressi@gmx.at> wrote:

>> seems like using [declare] becomes unnecessary then...
>> of course I think library name prefix looks ugly,
 
> there you have it :-) [declare -lib] is here to stay.

You absolutely have to have [declare] and strongly encourage its usage.

The [declare] object hoists a message up to the top of the patch file to ensure
that the declared libraries and paths get loaded *before* the rest of the patch file
is evaluated. If users don't get comfortable using it to load externals then they
quickly run into problems.

It also has an explicit and readable left-to-right ordering. If the user depends on
implicit loading per external object box, the loading order is hidden and difficult to
debug.

For example, imagine an external library which adds its own external loading
mechanism, like pdlua. The user better load *that* before trying to load their
own pdlua-based external, otherwise it won't create. Without using [declare] for
that case, a user recently concocted a dynamic-patching solution to ensure ordering.

-Jonathan