[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- Subject: LINKIMAGE/CALL_EXTERNAL/DLM advice
- From: steinhh(at)ulrik.uio.no (Stein Vidar Hagfors Haugan)
- Date: 10 Dec 1998 10:13:08 GMT
- Newsgroups: comp.lang.idl-pvwave
- Organization: University of Oslo, Norway
- Xref: news.doit.wisc.edu comp.lang.idl-pvwave:13100
I pondered about using the word "warning" instead of "advice"
in the subject of this post, but I wouldn't risk worrying
people too much.
The thing is, if you use linkimage/call_external/dlm (dynamically
loadable modules) for anything fancy that *might* be dependent on
values in the "export.h" file supplied with the IDL distribution, you
should always remember to *recompile* your C programs when upgrading
to a new IDL version. The thing to look out for in particular is when
you're calling libidl functions.
I got bit (somehow) by this yesterday, when I used some functions
that I (apparently) have not used since IDL v 4. It's likely that
some problem arose with the IDL_EzCall mechanism, since testing
finally showed that I got different answers from a function depending
on the type of the parameters I sent (IDL_EzCall was used to convert
all arguments to FLOAT, so this *shouldn't* happen). Recompiling
(without updating the export.h file) didn't help much, but after
updating export.h, the recompilation did help.
This is of course not a bug in any way, and I guess I should have
*known* that a recompilation of external code should always be done
with a new version, but I wish this had been pointed out somewhere...
(I'm not saying it isn't, just that I haven't seen it :-)
I spent a fair amount of time yesterday hunting down the cause for my
inexplicable results (which I *knew* were correct a while ago!) but I
haven't tracked down the exact mechanism for the failure...I found a
fix, though, and thought I should let people know.