comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Hard crash
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Hard crash [message #90193 is a reply to message #90192] Mon, 09 February 2015 19:16 Go to previous messageGo to previous message
Jim  Pendleton is currently offline  Jim Pendleton
Messages: 165
Registered: November 2011
Senior Member
On Monday, February 9, 2015 at 7:18:13 PM UTC-7, Dick Jackson wrote:
> Heinz Stege wrote, On 2015-02-02, 1:40pm:
>> On Fri, 30 Jan 2015 17:24:33 -0800 (PST), Jim P wrote:
>>
>>> The key to understanding the problem is that the IDL compiler *must* restore the hash.sav at compile time if a structure tag is defined as LIST(), HASH(), etc. At that point, all is lost* with respect to IDL "forgetting" about the compiled definitions.
>>>
>> Aah, that brings some light into the darkness. IDL 8.4 restores the
>> hash.sav file when compiling a routine with LIST() as a structure tag?
>> I didn't know this, since I'm still working with Version 8.0.1.* My
>> version is different. It does _not_ restore hash.sav or list.sav when
>> compiling a routine with a LIST() tag in the class structure
>> definition.
>>
>> Do you think, that it may be interesting for the news group, why this
>> change was done?
>>
>> Cheers, Heinz
>>
>> * My company does not have the money to upgrade. :-(
>
> I think I was caught by this issue, hoping to compile a .sav in 8.4 for a client to run in 8.3. Some problems were
> relieved by:
>
> 1. In my project's Build, replacing the standard RESOLVE_ALL with post-process command:
> RESOLVE_ALL, skip=['list','hash','orderedhash']
>
> 2. Avoiding the use of myList = List(myArray, /EXTRACT)
>
> But I'm seeing another problem I can't seem to avoid, where I'm adding an item to a list, and I get:
> IDL_CONTAINER::ADD: Object reference type required in this context: INDEXITEM.
> (INDEXITEM was my variable that I was Adding to the list)
>
> I confirm that neither IDL 8.3 nor 8.4 actually require this of a List() object.
>
> I tried adding 'idl_container' to the "skip" list in RESOLVE_ALL, to no avail.
>
> Any suggestions of how to get around this?
>
> --
>
> Cheers,
> -Dick
>
> Dick Jackson Software Consulting Inc.
> Victoria, BC, Canada
> www.d-jackson.com

Hi Dick,

Okay, this is a tricky one. The bottom line is you'd probably be better off compiling your app in 8.3, if you can. We don't really have forward compatibility in IDL, though you might get lucky on occasion.

There was considerable work performed in 8.4 to make it more efficient so some code formerly in .pro was moved down to C.

Compare and contrast the output from routine_info('list::add', /source) between the two versions. You'll see that in 8.4 it "doesn't exist". Instead search through the output from routine_info(/system).

If you perform a RESTORE, /VERBOSE on your compiled 8.4 file in 8.3, are you sure there are no references to the routines from the lib\datatypes .sav files? If there are references in your .sav file, then there's probably a stray list() or hash() in one or more routines, without a needed compile_opt idl2 (or strictarr).

Jim P.
"I presently work for Exelis"
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Exelis Purchased by Harris Corp
Next Topic: Reopen HDF5 file to add more data?

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 18:32:53 PDT 2025

Total time taken to generate the page: 0.00433 seconds