Exit when run these codes [message #91923] |
Tue, 15 September 2015 19:35  |
ZH Jiao
Messages: 3 Registered: November 2012
|
Junior Member |
|
|
When I run these code, the IDL will exit. (IDL 8.5 windows x64)
str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
print,str
a=str.map(lambda(x:x.split(',')))
print,a
Does someone find this issue too?
|
|
|
Re: Exit when run these codes [message #91924 is a reply to message #91923] |
Tue, 15 September 2015 20:27   |
Jim Pendleton
Messages: 165 Registered: November 2011
|
Senior Member |
|
|
On Tuesday, September 15, 2015 at 8:35:23 PM UTC-6, ZH ZD wrote:
> When I run these code, the IDL will exit. (IDL 8.5 windows x64)
> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
> print,str
> a=str.map(lambda(x:x.split(',')))
> print,a
>
> Does someone find this issue too?
The example runs without producing an *immediate* crash error for me on Win7-64 in both 32- and 64-bit command line IDL 8.5. However, setting the variable "a" to 0 after those lines will crash IDL in all cases.
The results printed before this are not consistent.
On 64-bit command line I get this.
IDL> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
IDL> print,str
0,1,2 3,4,5 6,7,8 9,10,11
IDL> a=str.map(lambda(x:x.split(',')))
IDL> print,a
0 9 3
3 9 6
6 9 1
9 10 11
On 32-bit command line, I get a different set of output lines:
IDL> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
IDL> print,str
0,1,2 3,4,5 6,7,8 9,10,11
IDL> a=str.map(lambda(x:x.split(',')))
IDL> print,a
0 9 3
3 1 6
6 9 9
9 10 11
The 64-bit Workbench likewise doesn't fail but it produces a different type of output, which is clearly wrong.
IDL> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
IDL> print,str
IDL> a=str.map(lambda(x:x.split(',')))
0,1,2 3,4,5 6,7,8 9,10,11
IDL> print,a
0 R 3
3 e 6
6 R 9
9 en me
Setting "a = 0" following any of these will indeed crash IDL 8.5.
|
|
|
Re: Exit when run these codes [message #91925 is a reply to message #91924] |
Tue, 15 September 2015 21:57   |
ZH Jiao
Messages: 3 Registered: November 2012
|
Junior Member |
|
|
在 2015年9月16日星期三 UTC+8上午11:27:12,Jim P写道:
> On Tuesday, September 15, 2015 at 8:35:23 PM UTC-6, ZH ZD wrote:
>> When I run these code, the IDL will exit. (IDL 8.5 windows x64)
>> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
>> print,str
>> a=str.map(lambda(x:x.split(',')))
>> print,a
>>
>> Does someone find this issue too?
>
> The example runs without producing an *immediate* crash error for me on Win7-64 in both 32- and 64-bit command line IDL 8.5. However, setting the variable "a" to 0 after those lines will crash IDL in all cases.
>
> The results printed before this are not consistent.
>
> On 64-bit command line I get this.
>
> IDL> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
> IDL> print,str
> 0,1,2 3,4,5 6,7,8 9,10,11
> IDL> a=str.map(lambda(x:x.split(',')))
> IDL> print,a
> 0 9 3
> 3 9 6
> 6 9 1
> 9 10 11
>
> On 32-bit command line, I get a different set of output lines:
>
>
> IDL> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
> IDL> print,str
> 0,1,2 3,4,5 6,7,8 9,10,11
> IDL> a=str.map(lambda(x:x.split(',')))
> IDL> print,a
> 0 9 3
> 3 1 6
> 6 9 9
> 9 10 11
>
> The 64-bit Workbench likewise doesn't fail but it produces a different type of output, which is clearly wrong.
>
> IDL> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
> IDL> print,str
> IDL> a=str.map(lambda(x:x.split(',')))
> 0,1,2 3,4,5 6,7,8 9,10,11
> IDL> print,a
> 0 R 3
> 3 e 6
> 6 R 9
> 9 en me
>
> Setting "a = 0" following any of these will indeed crash IDL 8.5.
Yes, the same issue for me. But when you put these codes in a pro file, you run the code and then IDL crash.
PRO test
COMPILE_OPT idl2
str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
print,str
a=str.map(lambda(x:x.split(',')))
print,a
END
|
|
|
Re: Exit when run these codes [message #91929 is a reply to message #91925] |
Wed, 16 September 2015 09:02  |
chris_torrence@NOSPAM
Messages: 528 Registered: March 2007
|
Senior Member |
|
|
On Tuesday, September 15, 2015 at 10:57:36 PM UTC-6, ZH ZD wrote:
> 在 2015年9月16日星期三 UTC+8上午11:27:12,Jim P写道:
>> On Tuesday, September 15, 2015 at 8:35:23 PM UTC-6, ZH ZD wrote:
>>> When I run these code, the IDL will exit. (IDL 8.5 windows x64)
>>> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
>>> print,str
>>> a=str.map(lambda(x:x.split(',')))
>>> print,a
>>>
>>> Does someone find this issue too?
>>
>> The example runs without producing an *immediate* crash error for me on Win7-64 in both 32- and 64-bit command line IDL 8.5. However, setting the variable "a" to 0 after those lines will crash IDL in all cases.
>>
>> The results printed before this are not consistent.
>>
>> On 64-bit command line I get this.
>>
>> IDL> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
>> IDL> print,str
>> 0,1,2 3,4,5 6,7,8 9,10,11
>> IDL> a=str.map(lambda(x:x.split(',')))
>> IDL> print,a
>> 0 9 3
>> 3 9 6
>> 6 9 1
>> 9 10 11
>>
>> On 32-bit command line, I get a different set of output lines:
>>
>>
>> IDL> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
>> IDL> print,str
>> 0,1,2 3,4,5 6,7,8 9,10,11
>> IDL> a=str.map(lambda(x:x.split(',')))
>> IDL> print,a
>> 0 9 3
>> 3 1 6
>> 6 9 9
>> 9 10 11
>>
>> The 64-bit Workbench likewise doesn't fail but it produces a different type of output, which is clearly wrong.
>>
>> IDL> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
>> IDL> print,str
>> IDL> a=str.map(lambda(x:x.split(',')))
>> 0,1,2 3,4,5 6,7,8 9,10,11
>> IDL> print,a
>> 0 R 3
>> 3 e 6
>> 6 R 9
>> 9 en me
>>
>> Setting "a = 0" following any of these will indeed crash IDL 8.5.
>
> Yes, the same issue for me. But when you put these codes in a pro file, you run the code and then IDL crash.
>
> PRO test
> COMPILE_OPT idl2
> str=STRJOIN(strtrim(fix(bindgen(3,4)),2),',')
> print,str
> a=str.map(lambda(x:x.split(',')))
> print,a
> END
Yep, this is a known bug with the .Map method. It's logged as issue IDL-69449. I'm hoping to get it fixed for the next service pack/point release.
Thanks!
-Chris
|
|
|