1. compil error

hello,

I run euphoria 4 (r3379) on windows Vista.
i've tried to compil my euphoria project and obtained this error :

eugrid.c(6849): Error! E1014: Left operand must be an 'lvalue' 
eugrid.c(6851): Error! E1014: Left operand must be an 'lvalue' 

the interested lines of eugrid.c are
int _44EGW_LoadData(int _id_65739, int _data_65740, int _insert_position_65741) 
{ 
    int _grid_65742; 
    int _rows_65743; 
    int _inserted_at_65744; 
    int _EGW_GetGridID_inlined_EGW_GetGridID_at_23_65747 = 0; 
    int _36024 = 0; 
    int _36023 = 0; 
    int _36022; 
    int _36021 = 0; 
    int _36020 = 0; 
    int _36019 = 0; 
    int _36018 = 0; 
    int _36017 = 0; 
    int _36016 = 0; 
    int _36015 = 0; 
    int _36014 = 0; 
    int _36013 = 0; 
    int _36012 = 0; 
    int _36011; 
    int _36010 = 0; 
    int _36009 = 0; 
    int _36008 = 0; 
    int _36007 = 0; 
    int _36006 = 0; 
    int _36005 = 0; 
    int _36004 = 0; 
    int _36003 = 0; 
    int _36002; 
    int _36001 = 0; 
    int _36000 = 0; 
    int _35999 = 0; 
    int _35998 = 0; 
    int _35997 = 0; 
    int _35996 = 0; 
    int _35995 = 0; 
    int _35994 = 0; 
    int _35992 = 0; 
    int _35991 = 0; 
    int _35990 = 0; 
    int _35989 = 0; 
    int _35988 = 0; 
    int _35987 = 0; 
    int _35986 = 0; 
    int _35984 = 0; 
    int _35983 = 0; 
    int _35981 = 0; 
    int _35980 = 0; 
    int _35979 = 0; 
    int _35978 = 0; 
    int _35976 = 0; 
    int _35975; 
    int _35974 = 0; 
    int _35973 = 0; 
    int _35972 = 0; 
    int _35971; 
    int _35970 = 0; 
    int _0, _1, _2; 
     
 
    /**         rows = 0*/ 
    _rows_65743 = 0; 
 
    /**         inserted_at=-1*/ 
    _inserted_at_65744 = -1; 
 
    /**         rows = length(data)*/ 
    if (IS_SEQUENCE(_data_65740)) 
        0 = SEQ_PTR(_data_65740)->length; 
    else 
        0 = 1; 
 
    /**         grid = EGW_GetGridID (id)*/ 
 
    /**         return ( find(id, GridID) )*/ 
    _grid_65742 = find_from(_id_65739, _44GridID_64085, 1); 

eugrid.c come from eugrid.e and the translation error come from EGW_LoadData function :

-- EGW_LoadData: Load table dataset 
--*------------------------------------------------------* 
global function EGW_LoadData ( integer id, sequence data, integer insert_position ) 
 
        integer grid, rows, inserted_at 
 
        rows = 0 
        inserted_at=-1 
 
        -- get number of rows to insert 
        rows = length(data) 
 
        -- get grid id 
        grid = EGW_GetGridID (id) 


To resolve this translation error, i've deleted the code line :

        rows = 0 


I obtained a good eugrid.c source file and the euc process went to the linking step...hum strange. I decided to make a test with the assignment statement and wrote this small program :

function test1length(sequence data) 
integer l 
 l = 0 
 l = length(data) 
 return l 
end function 
 
sequence a 
integer b 
a ="ceci est un test sur la longueur d'une chaine de caractères" 
 
b = test1length(a) 
 
printf(1,"longueur de a:[%d]\r\n",{b}) 
 
if getc(0) then 
end if 


the execution of the interpreted version is OK. So i tried to compile the program and i obtained this error :

D:\Euphoria\dev\ose\trunck\exw>euc -wat -keep test_length_compil.exw 
The instruction at 0x004865d7 referenced memory at 0x00000000. 
The memory could not be read. 
Exception fielded by 0x00566030 
EAX=0x00000000 EBX=0x00000000 ECX=0x00000000 EDX=0x000000d0 
ESI=0x00000060 EDI=0x00000012 EBP=0x0006f228 ESP=0x0006edfc 
EIP=0x004865d7 EFL=0x00010216 CS =0x0000001b SS =0x00000023 
DS =0x00000023 ES =0x00000023 FS =0x0000003b GS =0x00000000 
Stack dump (SS:ESP) 
0x00000000 0x00000000 0x00000000 0x00000001 0x0006f228 0x00000012 
0x00000060 0x0000001b 0x00000000 0x00000000 0x0048b39e 0x00000000 
0x00000000 0x00000000 0x00146488 0x00146488 0x00000000 0x00000000 
0x00000000 0x00000008 0x00000000 0x00000000 0x00000000 0x00000000 
0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 
0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 
0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 
0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 
0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 
0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 
0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 
0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000 

Is it a problem from my computer ? or VISTA ? or Euphoria version ? or the DEP proctection (set only for windows programs and windows services) ? or the installation of Euphoria version ?

new topic     » topic index » view message » categorize

2. Re: compil error

PtitChaud said...

Is it a problem from my computer ? or VISTA ? or Euphoria version ? or the DEP proctection (set only for windows programs and windows services) ? or the installation of Euphoria version ?

This was a bug. See ticket:201.

Matt

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

3. Re: compil error

i've seen the bug referenced by the ticket 201 and my problem is :
with or without the assignement statement in the function test1length of the small program, i can't translate it to obtain a source C file.

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

4. Re: compil error

PtitChaud said...

i've seen the bug referenced by the ticket 201 and my problem is :
with or without the assignement statement in the function test1length of the small program, i can't translate it to obtain a source C file.

Until the next official release of euphoria (hopefully a release candidate), you have a couple of options. You could build from source yourself (pretty easy if you already have OpenWatcom installed, actually), or you could download an updated binary that Derek has posted. It includes the fixes to the translator.

See message:112363 (it's a ways down) for details.

Matt

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

Search



Quick Links

User menu

Not signed in.

Misc Menu