1. Problem with rev 1217

Hello Matt,

there is a problem with Euphoria 4.0 rev 1217 which did not exist with rev 1216.

Running win32lib.ew 0.704a there is an error message which I do not understand:

D:\Euphoria\win32libv07\Include>exwc
Euphoria Interpreter 4.0 (development) for 32-bit Windows.
SVN Revision 1217
Copyright (c) Rapid Deployment Software 2008
See http://www.RapidEuphoria.com/License.txt

file name to execute? win32lib.ew
win32lib.ew:26389
expected a function, not something
if w32string(pPaths) then
----------------------^

Press Enter

line 26389 does not exist in win32lib.ew. It would be after the last line with the statement: include compat02.ew

the expression w32string(pPaths) is in w32file.ew in global function setSearchPaths but I cannot see that there should be anything wrong with it. The error message is not very helpful.

Roland

new topic     » topic index » view message » categorize

2. Re: Problem with rev 1217

RStowasser said...

there is a problem with Euphoria 4.0 rev 1217 which did not exist with rev 1216.

win32lib.ew:26389 
expected a function, not something 
    if w32string(pPaths) then 
    ------------------------^ 

Thanks for the report. When resolving forward references, it wasn't considering a call to a type routine to be the same as a function. Also, the error routine wasn't resetting the file and line number.

I should have a fix committed soonas soon as I've added and validated some new tests for this issue.

Matt

new topic     » goto parent     » topic index » view message » categorize

3. Re: Problem with rev 1217

mattlewis said...
RStowasser said...

there is a problem with Euphoria 4.0 rev 1217 which did not exist with rev 1216.

When resolving forward references, it wasn't considering a call to a type routine to be the same as a function.

svn1218 introduced a new crasher, tracked down to an include file that depended on being included from another file that includes a file that defines a global constant.

this worked before forward references and worked ok in r1213 and below. adding the missing include fixes the problem and is probably easier to maintain anyway.

new topic     » goto parent     » topic index » view message » categorize

4. Re: Problem with rev 1217

ne1uno said...

svn1218 introduced a new crasher, tracked down to an include file that depended on being included from another file that includes a file that defines a global constant.

I believe you, really. But I'm having trouble unwinding that sentence. Could you post a simple test case that crashes?

Matt

new topic     » goto parent     » topic index » view message » categorize

5. Re: Problem with rev 1217

mattlewis said...
ne1uno said...

svn1218 introduced a new crasher, tracked down to an include file that depended on being included from another file that includes a file that defines a global constant.

I believe you, really. But I'm having trouble unwinding that sentence. Could you post a simple test case that crashes?

I hope this is close enough to the original crash, as I was only guessing at the cause. simpler, just move an include after the first use of something it defines.

---prog.ex 
-- move include a.e to here and no crash 
 
global constant x=1 
  ,a= ax 
  ,b = 2 
 
include a.e  
 
 
--a.e 
global constant ax = 1 
 

win98 
The instruction at 0x0045cf4a referenced memory at 0x029d67a8. 
The memory could not be written. 
Exception fielded by 0x0049aec0 
ETC. 

new topic     » goto parent     » topic index » view message » categorize

6. Re: Problem with rev 1217

Hello,

There is still a problem with rev 1219?
For backward compatibility I am only testing with IDE104 (Euvide) and Win32lib (Win32libex) which I got from Sourceforge. But the problems should be the same with other applications.

I reverted to rev 1216 where I do not have problems then rebuild rev 1219.

If I try to run IDE I get this message:

C:\EUPHORIA>exwc d:\euphoria\ide104\IDE104.exw
d:\euphoria\ide104\FList.ew:263
'int' has not been declared
function TestFlag(int var, int bit)
------------------------^

Press Enter

If I change in FList.ew int to integer and seq to sequence, IDE will run although opening/closing splash screen will take a little bit longer (about 3.7 sec instead of 3.2 sec). But I cannot compile IDE. There are a lot of err files e.g. ide_de_3gn.err:

ide_de_3gn.c(10224): Error! E1011: Symbol '_1dragCX_43661' has not been declared
ide_de_3gn.c(10227): Error! E1011: Symbol '_1dragCX_43661' has not been declared
ide_de_3gn.c(10229): Error! E1011: Symbol '_1dragCX_43661' has not been declared
ide_de_3gn.c(10249): Error! E1011: Symbol '_1dragCY_43662' has not been declared
ide_de_3gn.c(10252): Error! E1011: Symbol '_1dragCY_43662' has not been declared
ide_de_3gn.c(10254): Error! E1011: Symbol '_1dragCY_43662' has not been declared
ide_de_3gn.c(10329): Error! E1011: Symbol '_1dragX_43659' has not been declared
ide_de_3gn.c(10332): Error! E1011: Symbol '_1dragX_43659' has not been declared
ide_de_3gn.c(10334): Error! E1011: Symbol '_1dragX_43659' has not been declared
ide_de_3gn.c(10354): Error! E1011: Symbol '_1dragY_43660' has not been declared
ide_de_3gn.c(10357): Error! E1011: Symbol '_1dragY_43660' has not been declared
ide_de_3gn.c(10359): Error! E1011: Symbol '_1dragY_43660' has not been declared

Roland

new topic     » goto parent     » topic index » view message » categorize

7. Re: Problem with rev 1217

RStowasser said...

If I try to run IDE I get this message:

C:\EUPHORIA>exwc d:\euphoria\ide104\IDE104.exw
d:\euphoria\ide104\FList.ew:263
'int' has not been declared
function TestFlag(int var, int bit)
------------------------^

Thanks. It's not handling forward type declarations properly.

RStowasser said...

If I change in FList.ew int to integer and seq to sequence, IDE will run although opening/closing splash screen will take a little bit longer (about 3.7 sec instead of 3.2 sec). But I cannot compile IDE. There are a lot of err files e.g. ide_de_3gn.err:

ide_de_3gn.c(10224): Error! E1011: Symbol '_1dragCX_43661' has not been declared

I'll take a look at this, too.

Matt

new topic     » goto parent     » topic index » view message » categorize

8. Re: Problem with rev 1217

mattlewis said...
RStowasser said...

If I try to run IDE I get this message:

C:\EUPHORIA>exwc d:\euphoria\ide104\IDE104.exw
d:\euphoria\ide104\FList.ew:263
'int' has not been declared
function TestFlag(int var, int bit)
------------------------^

Thanks. It's not handling forward type declarations properly.

RStowasser said...

If I change in FList.ew int to integer and seq to sequence, IDE will run although opening/closing splash screen will take a little bit longer (about 3.7 sec instead of 3.2 sec). But I cannot compile IDE. There are a lot of err files e.g. ide_de_3gn.err:

ide_de_3gn.c(10224): Error! E1011: Symbol '_1dragCX_43661' has not been declared

I'll take a look at this, too.

Ok, r1220 seems to parse the IDE (I'm on Linux, so I haven't tried actually running it).

Matt

new topic     » goto parent     » topic index » view message » categorize

9. Re: Problem with rev 1217

mattlewis said...

Ok, r1220 seems to parse the IDE (I'm on Linux, so I haven't tried actually running it).

Matt

Hi Matt,

I can run IDE104 and stand-alone editor with rev 1220 and can translate, compile the stand-alone Editor.exw. I tried EuWinGui and there is also no problem. With some changes of the keywords entry and label, running the arwen library and translating / compiling the demos work too. (Edita seems not to be available any more)

But translating IDE does still not work. There are error messages e.g:

ide_co_1ig.c(815): Error! E1011: Symbol '_1saveDefaultSettingsId_43671' has not been declared

ide_exErr.c(451): Error! E1011: Symbol '_1CodeWinState_43678' has not been declared

ide_de_0gn.c(3799): Error! E1011: Symbol '_1euDir_43466' has not been declared

ide_de_5gn.c(1255): Error! E1011: Symbol '_1ToolBarStuff_id_43658' has not been declared
ide_de_5gn.c(1285): Error! E1011: Symbol '_1TabItemStuff_id_43659' has not been declared
ide_de_5gn.c(1318): Error! E1011: Symbol '_1GroupStuff_id_43660' has not been declared
ide_de_5gn.c(1387): Error! E1011: Symbol '_1MiscStuff_id_43662' has not been declared

etc.

I tried the above procedure once more with reverted version 1216 and found no problem with my OS (Vista).
My personel impression is that starting the splash screen of interpreted IDE needs more time with rev 1220 than with rev 1216.

I would also like to point to a problem which is the same with rev1216 and rev1220:

If I run exwc win32lib.ew there is no problem.

Trying to run win32lib.ew with eu.ex I get this error:

C:\EUPHORIA\SOURCE40>exwc
Euphoria Interpreter 4.0 (development) for 32-bit Windows.
SVN Revision 1220
Copyright (c) Rapid Deployment Software 2008
See http://www.RapidEuphoria.com/License.txt

file name to execute? eu.ex
Euphoria Interpreter 4.0 (development) for 32-bit Windows.
SVN Revision 1220
Copyright (c) Rapid Deployment Software 2008
See http://www.RapidEuphoria.com/License.txt

file name to execute? d:\euphoria\win32libv07\include\win32lib.ew

d:\euphoria\win32libv07\include\w32utils.e:1481 in function w32MinSequenceSize()

repetition count must not be negative
... called from d:\euphoria\win32libv07\include\w32utils.e:1617 in procedure sanity_CType()
... called from d:\euphoria\win32libv07\include\w32utils.e:1777 in procedure w32SetCType()
... called from d:\euphoria\win32libv07\include\w32utils.e:1861

> see ex.err

Press Enter...

If eu.ex shows an error then should exw(c).exe not show this error too?

Roland

new topic     » goto parent     » topic index » view message » categorize

10. Re: Problem with rev 1217

RStowasser said...

I can run IDE104 and stand-alone editor with rev 1220 and can translate, compile the stand-alone Editor.exw. I tried EuWinGui and there is also no problem. With some changes of the keywords entry and label, running the arwen library and translating / compiling the demos work too. (Edita seems not to be available any more)

But translating IDE does still not work. There are error messages e.g:

Ok, I hadn't tried that. I'll look at the translator next.

RStowasser said...

My personel impression is that starting the splash screen of interpreted IDE needs more time with rev 1220 than with rev 1216.

This is probably true. The reason is that the IDE declares some globals in certain files, and then other files use those globals without ever including the file where the globals are defined. This causes extra overhead in the parsing. There were recent changes to how this worked, since unincluded globals could mask forward referenced included symbols.

CK found this problem when he had some code that used the old sort, and some that used the new sort. Basically, sequence.e and sort.e (I think it's those two) include each other, and use routines from each other, which is one big benefit of the new forward reference feature. Adding a few strategic include statements would speed up the parse time.

RStowasser said...

If eu.ex shows an error then should exw(c).exe not show this error too?

Not necessarily. They share the front end, but the back end of eu.ex is written in euphoria. So if the bug is in the euphoria backend, the error wouldn't be seen when you use the C backend. Although a C backend error in something like puts(), which is called by the euphoria based backend could show up. But a lot of the C interface is written in the euphoria back end, which appears to be what you've run into, so the bug is likely only in eu.ex.

Matt

new topic     » goto parent     » topic index » view message » categorize

11. Re: Problem with rev 1217

mattlewis said...
RStowasser said...

I can run IDE104 and stand-alone editor with rev 1220 and can translate, compile the stand-alone Editor.exw. I tried EuWinGui and there is also no problem. With some changes of the keywords entry and label, running the arwen library and translating / compiling the demos work too. (Edita seems not to be available any more)

But translating IDE does still not work. There are error messages e.g:

Ok, I hadn't tried that. I'll look at the translator next.

RStowasser said...

My personel impression is that starting the splash screen of interpreted IDE needs more time with rev 1220 than with rev 1216.

This is probably true. The reason is that the IDE declares some globals in certain files, and then other files use those globals without ever including the file where the globals are defined. This causes extra overhead in the parsing. There were recent changes to how this worked, since unincluded globals could mask forward referenced included symbols.

CK found this problem when he had some code that used the old sort, and some that used the new sort. Basically, sequence.e and sort.e (I think it's those two) include each other, and use routines from each other, which is one big benefit of the new forward reference feature. Adding a few strategic include statements would speed up the parse time.

RStowasser said...

If eu.ex shows an error then should exw(c).exe not show this error too?

Not necessarily. They share the front end, but the back end of eu.ex is written in euphoria. So if the bug is in the euphoria backend, the error wouldn't be seen when you use the C backend. Although a C backend error in something like puts(), which is called by the euphoria based backend could show up. But a lot of the C interface is written in the euphoria back end, which appears to be what you've run into, so the bug is likely only in eu.ex.

Matt

Matt: 
I have been coding using SVN1217 an everything was working ok. 
But I just ran into a strange ex.err error message. 
I do not think that running a program a user should see 
the folllowing error message. 
 
Fatal run-time error: 
UNKNOWN IL OPCODE 
 
The error happens when starting my code up after a long parse time. 
I can't give you a simple example because my code is very involved 
and is full of bugs. 
 
I am going update to another SVN level an see if error goes away 
If I find any more information I will let you know. 
 
new topic     » goto parent     » topic index » view message » categorize

12. Re: Problem with rev 1217

bernie said...

Matt: I have been coding using SVN1217 an everything was working ok. But I just ran into a strange ex.err error message. I do not think that running a program a user should see the folllowing error message.

Fatal run-time error: UNKNOWN IL OPCODE

The error happens when starting my code up after a long parse time. I can't give you a simple example because my code is very involved and is full of bugs.

Hey! I just reported this same issue to the dev list, Bernie. Us leet coDeRz always find the bugs. blink

new topic     » goto parent     » topic index » view message » categorize

13. Re: Problem with rev 1217

Just wanted to make a note that the BAD IL OPCODE issue I was having with 1217 is no longer there with 1220.

new topic     » goto parent     » topic index » view message » categorize

14. Re: Problem with rev 1217

mattlewis said...
RStowasser said...

But translating IDE does still not work. There are error messages e.g:

Ok, I hadn't tried that. I'll look at the translator next.

Ok, r1221 seems to translate the IDE properly. It wasn't marking some variables as being used at all, and so wasn't declaring them.

Matt

new topic     » goto parent     » topic index » view message » categorize

15. Re: Problem with rev 1217

RStowasser said...

Trying to run win32lib.ew with eu.ex I get this error:

[snip]

If eu.ex shows an error then should exw(c).exe not show this error too?

Ok, this is now fixed in r1222. It was calling opLESS instead of opLESS_IFW for the LESS_IFW_I opcode.

Matt

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu