[Yhc] YHI Loader ...generated bytecode as C but some errors.
Alexis Morris
akmorris at gmail.com
Tue Aug 21 05:40:42 EDT 2007
Hi Tom,
Thanks for your detailed instructions about splitting YHI into two parts and
then loading bytecode from the heap. I followed them, and was able to
generate a file to be loaded into yhi.
However, upon compiling I get some nasty errors that I'm unable to figure
out. Below is a snippet from a factorial function:
fac 0 = 1
fac n = n * fac (n-1)
main = print (fac 42)
--------------------------------------
//this generates....among other things
--------------------------------------
.
.
.snip...
UInt8 bytecode_Main_2Emain[] = {
0X1, 0X25, 0X26, 0X8, 0X31, 0X42, 0X1, 0X8, 0X32, 0XC, 0X33, 0X34, 0X5B,
0
};
UByte ctypes_Main_2Emain[] = {
C_NODE, C_NODE, C_INFO, C_INFO, C_INFO, C_INFO
};
PInfo pinfo_Main_2Emain[] ={
};
FInfo finfo_Main_2Emain = (FInfo){
{I_FINFO},
pinfo_Main_2Emain,
NULL,
0,
3,
0x00,
NULL,
NULL,
14,
&bytecode_Main_2Emain,
6,
&ctypes_Main_2Emain,
&ctable_Main_2Emain
};
ConstItem ctable_Main_2Emain[] = {
(ConstItem) &node_0x18720028,
(ConstItem) &node_0x18720480,
(ConstItem) &finfo_Main_2Emain,
(ConstItem) &finfo_Main_2Emain,
(ConstItem) &finfo_Main_2Emain,
(ConstItem) &finfo_Main_2Emain
};
Word node_0x18720024[] = { (Word) &pinfo_Main_2Emain[0] };
UInt8 bytecode_Main_2Efac[] = {
0X1, 0X25, 0X12, 0X30, 0X42, 0X1, 0XB, 0X13, 0X12, 0X31, 0X32, 0X5A,
0X1, 0X41, 0X2, 0X1, 0X5A, 0X1, 0X4D, 0X5F, 0XB, 0, 0X1, 0X29, 0X17, 0X30,
0X5A, 0X1, 0X42, 0X1, 0X5B, 0X1, 0X29, 0X12, 0X30, 0X42, 0X1, 0X13, 0X12,
0X34, 0X41, 0X2, 0X1, 0X12, 0X35, 0XB, 0X18, 0X17, 0X36, 0X5A, 0X1, 0X41,
0X2, 0X1, 0X5B, 0
};
UByte ctypes_Main_2Efac[] = {
C_NODE, C_INFO, C_INFO, C_INFO, C_NODE, C_INFO, C_INFO, C_INFO
};
PInfo pinfo_Main_2Efac[] ={
(PInfo){ { I_PINFO }, 0, 2 },
(PInfo){ { I_PINFO }, 1, 1 }
};
FInfo finfo_Main_2Efac = (FInfo){
{I_FINFO},
pinfo_Main_2Efac,
NULL,
2,
4,
0x00,
NULL,
NULL,
56,
&bytecode_Main_2Efac,
8,
&ctypes_Main_2Efac,
&ctable_Main_2Efac
};
ConstItem ctable_Main_2Efac[] = {
(ConstItem) &node_0x18720494,
(ConstItem) &finfo_Main_2Efac,
(ConstItem) &finfo_Main_2Efac,
(ConstItem) &finfo_Main_2Efac,
(ConstItem) &node_0x187204a4,
(ConstItem) &finfo_Main_2Efac,
(ConstItem) &finfo_Main_2Efac,
(ConstItem) &finfo_Main_2Efac
};
Word node_0x18720490[] = { (Word) &pinfo_Main_2Efac[0] };
-----------------------------------------------------------------------
When I compile I get these errors for this section of code
../yhi/loaderCode.c:15520: error: 'ctable_Main_2Emain' undeclared here (not
in a function)
../yhi/loaderCode.c:15520: warning: initialization from incompatible pointer
type
../yhi/loaderCode.c:15520: error: initializer element is not constant
../yhi/loaderCode.c:15520: error: (near initialization for
'finfo_Main_2Emain')
../yhi/loaderCode.c:15520: error: initializer element is not constant
../yhi/loaderCode.c:15524: error: 'node_0x18720480' undeclared here (not in
a function)
../yhi/loaderCode.c:15524: error: initializer element is not constant
../yhi/loaderCode.c:15524: error: (near initialization for
'ctable_Main_2Emain[1]')
../yhi/loaderCode.c:15556: warning: initialization from incompatible pointer
type
../yhi/loaderCode.c:15558: warning: initialization from incompatible pointer
type
../yhi/loaderCode.c:15560: error: 'ctable_Main_2Efac' undeclared here (not
in a function)
../yhi/loaderCode.c:15560: warning: initialization from incompatible pointer
type
../yhi/loaderCode.c:15560: error: initializer element is not constant
../yhi/loaderCode.c:15560: error: (near initialization for
'finfo_Main_2Efac')
../yhi/loaderCode.c:15560: error: initializer element is not constant
../yhi/loaderCode.c:15563: error: 'node_0x18720494' undeclared here (not in
a function)
../yhi/loaderCode.c:15563: error: initializer element is not constant
../yhi/loaderCode.c:15563: error: (near initialization for
'ctable_Main_2Efac[0]')
../yhi/loaderCode.c:15567: error: 'node_0x187204a4' undeclared here (not in
a function)
../yhi/loaderCode.c:15567: error: initializer element is not constant
../yhi/loaderCode.c:15567: error: (near initialization for
'ctable_Main_2Efac[4]')
../yhi/loaderCode.c:15597: warning: initialization from incompatible pointer
type
../yhi/loaderCode.c:15599: warning: initialization from incompatible pointer
type
../yhi/loaderCode.c:15601: error: 'ctable_Data_2FChar_2ELAMBDA1036'
undeclared here (not in a function)
../yhi/loaderCode.c:15601: warning: initialization from incompatible pointer
type
../yhi/loaderCode.c:15601: error: initializer element is not constant
../yhi/loaderCode.c:15601: error: (near initialization for
'finfo_Data_2FChar_2ELAMBDA1036')
../yhi/loaderCode.c:15601: error: initializer element is not constant
../yhi/loaderCode.c:15605: error: 'node_0x1872038c' undeclared here (not in
a function)
------------------------------------------------------------
Any ideas about why that blows up? In particular I'm curious about this
error, "error: initializer element is not constant" not sure what it means.
Thanks for the help,
--
</Alexis>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/yhc/attachments/20070821/b640be3d/attachment-0001.htm
More information about the Yhc
mailing list