Ouch!

_-_-_-_-_-_-_-^-_-_-_-_-_-_-_

For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk 


On Friday, 20 April 2018, 22:26:46 GMT+1, IOhannes m zmölnig <zmoelnig@iem.at> wrote:


On 04/20/2018 11:06 PM, Ed Kelly via Pd-list wrote:
> Code was shared previously on a github, but here's the offending article, and the link.
>
> The botherer is called mbc_lpc~.c
>
> edkellytista9/LPCToolkitPd

you know, "edkellytista9/LPCToolkitPd" can be about everything; why
would i have thought about a github project?

anyhow.

compiling your file prints a huge fat warning:
> mbc_lpc~.c:661:1: warning: control reaches end of non-void function
[-Wreturn-type]

which is indeed true, and it is telling you that your constructor
function lpc_new() is not returning anything (and definitely not an object).

the externals howto [1] says:
> The constructor has to return a pointer to the instantiated
> data space.

but even with that fixed, it doesn't load.
now i've asked you to:
- run Pd with "-verbose".
- check the console.

to which you replied:
> tried...(all pd search paths)...and failed
> tried...(current directory)...and failed

however, when i try to load your external i get:
> tried /tmp/zmoelnig/LPCToolkitPd/mbc_lpc~.l_ia64 and succeeded
> load_object: Symbol "mbc_lpc_tilde_setup" not found

which is writing out as plain as possible that your external misses the
only function that it *must* have in order to be any use to Pd: the
callback function that allows your external to bootstrap.
(while blindly copying, you renamed your object but forgot to rename the
setup function).


apart from that:
- please mark all your functions as static. you will get nameclashes
otherwise. making your objects use totally different functions than you
expect (and possible making the object of other people use different
functions).
- template Makefile 1.0.14? seriously? consider switching to
pdlibbuilder. it's much nicer. for starters, it doesn't make bogus
file-extensions on linux/amd64.


gfmdsar
IOhannes

[1]
https://github.com/pure-data/externals-howto#constructor-instantiation-of-an-object





>
>
> |
> |
> |
> |  |  |
>
>  |
>
>  |
> |
> |  |
> edkellytista9/LPCToolkitPd
>
> LPCToolkitPd - Mark Cartwright's LPC Toolkit for Pure Data
>  |
>
>  |
>
>  |
>
>
>
>
>
> _-_-_-_-_-_-_-^-_-_-_-_-_-_-_
>
> For Lone Shark releases, Pure Data software and published Research, go to http://sharktracks.co.uk 
>
>    On Friday, 20 April 2018, 22:02:16 GMT+1, IOhannes m zmölnig <zmoelnig@iem.at> wrote: 

>  On 04/20/2018 04:38 PM, Ed Kelly via Pd-list wrote:
>> Apologies - I'm trying to do this while buying a house...I don't know if that is simple in Austria but it isn't here.
>
> good luck.
> i'm sure it is a hell of stuff to do.
>
>> After reading your email I assumed it was something new, but of course I had just copied, pasted and altered code from a previous external (and forgot> Perhaps it's to do with linking to libm, so I'll check the makefile
> once I'm back in a reasonably stable (time-wise) environment.
>
> in the meantime, you could also share your code with us.
>
>> BUT - I've never really understood (in ~13 years of external development) what all those args to class_new() did before, and you've forced me to look deeper into m_pd.h
>
> fwiw, each and every argument to class_new() is covered by the externals
> howto.
>
>> I should thank you for that - and yes, I learned how to write externals by reading your howto, in 2005 I believe.
>
> :-)
>
>
> gdsamr
> IOhannes
> _______________________________________________
> Pd-list@lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list

>
>
>
> _______________________________________________
> Pd-list@lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list
>

_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list