Forums > Dev

is path_namefromspec depreceaded in Max 5 API

April 24, 2008 | 1:57 pm

I have build a external for My job.

When I load my external not in Max 5, I have error :

dbmax: unable to load object bundle executable
2008-04-24 15:28:30.831 MaxMSP[357:20b] Error loading /Applications/Max5/Cycling ’74/max-externals/extern sequenceur/dbmax.mxo/Contents/MacOS/dbmax: dlopen(/Applications/Max5/Cycling ’74/max-externals/extern sequenceur/dbmax.mxo/Contents/MacOS/dbmax, 262
): Symbol not found: _path_namefromspec
Referenced from: /Applications/Max5/Cycling ’74/max-externals/extern sequenceur/dbmax.mxo/Contents/MacOS/dbmax
Expected in: /Applications/Max5/MaxMSP.app/Contents/Frameworks/MaxAPI.framework/MaxAPI

Can I have help ? I have understand that UI object need a rewriting but my external use not UI function.

Are old MACRO (SETSYM,…) supported ?
I can replace with PATTR function , but I’m not sure !

thanks for MAX 5 and the best for Cycling74 team.

sorry for my bad english

Dominique Ehret


April 24, 2008 | 2:27 pm

Hi,

In addition to UI objects, there are a few other dusty corners in Max
that also require some work on the part of third-party developers.
Namely, the use of FSSpec’s, which is no longer supported. It’s no
longer really supported by Apple either. There are several reasons
for this, including the need to support Unicode (hooray!) and the need
to support long file names (Max 5 is no longer limited to 31 character
file names!).

The old macros like SETSYM should still work, but it is better to use
the functions like atom_setsym(). At some point in the future it is
possible that the SETSYM macro may no longer function because it
directly accesses the atom struct members. The atom hasn’t changed in
this version of Max, however.

I hope this helps,
Tim

On 2008 Apr 24, at 8:57 AM, dominique ehret wrote:
>
> I have build a external for My job.
>
> When I load my external not in Max 5, I have error :
>
> dbmax: unable to load object bundle executable
> 2008-04-24 15:28:30.831 MaxMSP[357:20b] Error loading /Applications/
> Max5/Cycling ’74/max-externals/extern sequenceur/dbmax.mxo/Contents/
> MacOS/dbmax: dlopen(/Applications/Max5/Cycling ’74/max-externals/
> extern sequenceur/dbmax.mxo/Contents/MacOS/dbmax, 262
> ): Symbol not found: _path_namefromspec
> Referenced from: /Applications/Max5/Cycling ’74/max-externals/
> extern sequenceur/dbmax.mxo/Contents/MacOS/dbmax
> Expected in: /Applications/Max5/MaxMSP.app/Contents/Frameworks/
> MaxAPI.framework/MaxAPI
>
> Can I have help ? I have understand that UI object need a rewriting
> but my external use not UI function.
>
> Are old MACRO (SETSYM,…) supported ?
> I can replace with PATTR function , but I’m not sure !
>
> thanks for MAX 5 and the best for Cycling74 team.
>
> sorry for my bad english
>
>
> Dominique Ehret
>
>
>
>
>
>
>
>
>


April 24, 2008 | 3:54 pm

From my testing, I have found the following changes to the Max API.

The list is *not* exclusive (there may be, and probably are, other changes). Also, the API apparently had some changes while I was updating Litter Power & iCE, so it’s even possible something was put back. Unlikely, though.

Here we go:

- resnamecopy() gone
- rescopy() no longer copies the resource per se (can only be used with assist_string(), nothing else)
- FSSPec’s are gone
- postatom() changed
- patcher data structure changed and not available for access
- info and help messages reserved
- objects with their own windows no longer work
- XQT_xxx() on Windows is gone
- t_wind and wind_xxx() are gone
- ed_xxx() (Presumed missing)

The amount of dust in these "corners" varies, and it’s a matter of perspective how important and useful these areas are.

My take on this is that the Max API follows the 80/20 rule: 80% (or more) of externals use 20% (or less) of the API functionality. That 20% core functionality has been maintained, and the majority of externals will function unchanged. But all externals that go beyond that functionality will need reworking.

My own experience has been that updating for Max 5 is a considerable amount of work.

– P.

PS: The "80/20 rule" is the basis of the Zipf distribution implemented by lp.zippie and the Pareto distribution in lp.vilfrie. Just so you know…


April 24, 2008 | 4:08 pm

And one more obscure one, there was/is an issue with path_topathname
() and whether or not a final "/" is present; maybe some of the other
path*() functions are affected. Not sure how this was resolved
(keeping the final backslash or not).

This is easy to workaround in code, but the SDK will have to say
which way the path stuff works.

brad

http://music.columbia.edu/~brad

On Apr 24, 2008, at 11:54 AM, Peter Castine wrote:

>
>> From my testing, I have found the following changes to the Max API.
>
> The list is *not* exclusive (there may be, and probably are, other
> changes). Also, the API apparently had some changes while I was
> updating Litter Power & iCE, so it’s even possible something was
> put back. Unlikely, though.
>
> Here we go:
>
> – resnamecopy() gone
> – rescopy() no longer copies the resource per se (can only be used
> with assist_string(), nothing else)
> – FSSPec’s are gone
> – postatom() changed
> – patcher data structure changed and not available for access
> – info and help messages reserved
> – objects with their own windows no longer work
> – XQT_xxx() on Windows is gone
> – t_wind and wind_xxx() are gone
> – ed_xxx() (Presumed missing)
>
> The amount of dust in these "corners" varies, and it’s a matter of
> perspective how important and useful these areas are.
>
> My take on this is that the Max API follows the 80/20 rule: 80% (or
> more) of externals use 20% (or less) of the API functionality. That
> 20% core functionality has been maintained, and the majority of
> externals will function unchanged. But all externals that go beyond
> that functionality will need reworking.
>
> My own experience has been that updating for Max 5 is a
> considerable amount of work.
>
> — P.
>
> PS: The "80/20 rule" is the basis of the Zipf distribution
> implemented by lp.zippie and the Pareto distribution in lp.vilfrie.
> Just so you know…
>
>
> –
> —-
> Peter Castine
> Litter Power: < http://www.bek.no/~pcastine/Litter/>
> iCE Tools: <
http://www.dspaudio.com/software/ice/ice_overview.php>
>


April 24, 2008 | 4:14 pm

Hi all,

Peter Castine wrote:
> The list is *not* exclusive (there may be, and probably are, other changes). Also, the API apparently had some changes while I was updating Litter Power & iCE, so it’s even possible something was put back. Unlikely, though.

Is there a new SDK for Max 5, or we can simply keep using the SDK for
Max 4? Also, is there a developer’s documentation for Max 5, or do we
have to use the Max 4 SDK docs and ask always for the differences in the
mailing list? I’m asking because I didn’t find any on the Cycling website.

Thx,
Adam


April 24, 2008 | 10:39 pm

The new SDK won’t be out for a while yet. I have been promised that it’s a high priority after the Max release. However, as long as there a pressing bugs on the main list, it can be expected that fixing bad bugs will be an even higher priority.

Also, it can be expected that a lot of the changes haven’t been documented anywhere except inside the collected brainpower of DDZ, JKC, & Co.

That’s why I’ve been keeping a couple of stickies with notes on what I’ve discovered. I hope that posting them earlier in this thread will help other developers to have a better idea where to look.


April 24, 2008 | 10:46 pm

Just to clarify on my "80/20" musings… I do not want to imply that 80% or any other percent of the API has been changed.

I just don’t know how much as changed.

My point was that, whatever the chunk of the API has changed, the percentage of externals effected will be smaller. Which is not much comfort to those of us effected;-| But maybe the ’80/20′ phenomenon will help people understand why there are great swaths of externals that run fine, and then there are pockets of externals sticking out like sore thumbs by not loading.

– G’night…


April 25, 2008 | 4:14 pm

Thanks for reply !

I rewrite my code with CFURL.

Dominique Ehret


Viewing 8 posts - 1 through 8 (of 8 total)