LPATH=$BASE/ipl/cfuncs $UNICON -t -C -nt -fa cfuncs
...
./cfuncs
: main()
cfuncs.icn : 10 | gen(&null,500)
Run-time error 106
File cfuncs.icn; Line 18
procedure or integer expected
offending value: &null
Traceback:
main()
gen(&null,500) from line 10 in cfuncs.icn
Bugs: #120
Bugs: #176
Bugs: #233
Bugs: #234
Bugs: #239
Bugs: #255
Bugs: #91
note: loadfunc IS NOW working, but cfuncs still fails.
note that this does not use link:
see:
loadfunccall.icn:
$define LIB "libcfunc.so"
procedure main()
bitcount:= loadfunc(LIB,"bitcount")
write (image(bitcount))
write(bitcount(500))
end
$UNICON -C loadfunccall
./loadfunccall
function bitcount
6
link is NOT working in iconc:
fakebit.icn:
procedure bitcount()
return
end
link2.icn:
link fakebit
procedure main()
write(image(bitcount))
end
unicon -c fakebit
unicon link2
./link2
procedure bitcount
^ works.
unicon -C link2
./link2
&null
^ fail
iconc link2
./link2
procedure bitcount
^ link works in iconc, not in unicon -C
LPATH="$BIN/../ipl/cfuncs/ $BIN/../ipl/procs " $ICONC cfuncs
./cfuncs
^ works. link works in iconc.
... iconc cfuncs
wc -l cfuncs.c
5150
grep bitcount cfuncs.c | wc -l
13
# ^ works. fn ...bitcount is in cfuncs.c
... unicon -C cfuncs
wc -l cfuncs.c
429
grep bitcount cfuncs.c | wc -l
1
# ^ no function bitcount in cfuncs.c
procedure bitcount is in tempfile
uninnn and matching uninnn-iconc
patch to keep tempfiles is on RFE [feature-requests:#55]
Related
Feature Requests: #55
LPATH=... unicon -C -K -v3 cfuncs
...
(23 temp files produced)(11 have -iconc)
/unicon/bin/iconc -U1 -v3 -v3 -o cfuncs -A /tmp/kubuntu/uni18827418 ... (11 more uninnn-iconc)
Translating to C:
/tmp/kubuntu/uni53557003-iconc:
/tmp/kubuntu/uni23692090-iconc:
type inferencing: 5, 0
No errors; no warnings
Compiling and linking C code:
Parsed /tmp/kubuntu/uni23692090-iconc as /home/kubuntu/unicon/bin/../ipl/procs/posix.icn
Parsed /tmp/kubuntu/uni53557003-iconc as cfuncs.icn
used 2 of 11 files
gcc ...
Also,
unicon -C ilib
# ^ fails, link failed, bug [#176]
iconc -fa ilib
# ^ works,
Related
Bugs: #176
BTW :
unicon -C link2 fakebit
./link2
procedure bitcount
(works if you give it the linked file)
9/6 snapshot no change, link fails.
iconc IS working now:
export LPATH="$BASE/ipl/cfuncs;$BASE/ipl/procs"
export FPATH="$BASE/bin"
iconc cfuncs.icn
./cfuncs
(works)
(unicon -C still will not link)
iconc -U1 is NOT parsing the linked file fakebit.icn
(unicon -C link2 # does parse it, sends to iconc, ignored)
unicon -v 99 -C -K link2
Parsing link2.icn: ..
Parsing fakebit.icn: .
Parsing /uni/unicon/ipl/procs/posix.icn: .........
iconc -v99 -U1 -fs -v99 -o link2 -A /tmp/ubuntu-budgie/uni16813183 /tmp/ubuntu-budgie/uni82275960-iconc /tmp/ubuntu-budgie/uni26730062-iconc /tmp/ubuntu-budgie/uni39277844-iconc
mdw: ca-first-perifile: "/tmp/ubuntu-budgie/uni26730062-iconc"
Translating to C:
/tmp/ubuntu-budgie/uni82275960-iconc:
/tmp/ubuntu-budgie/uni39277844-iconc:
Parsed /tmp/ubuntu-budgie/uni39277844-iconc as /uni/unicon/ipl/procs/posix.icn
Parsed /tmp/ubuntu-budgie/uni82275960-iconc as link2.icn
used 2 of 3 files
(not used: the linked file fakebit.icn or its tempfile)
ctrans.c:
/
* translate all non-peri files
/
for (sf = srclst; sf != NULL; sf = sf->next) {
if (strcmp(sf->name, ca_first_perifile) == 0)
break;
trans1(sf->name);
ca_mark_parsed(sf->name);
}
mdw: ca-first-perifile: "/tmp/ubuntu-budgie/uni26730062-iconc"
# ^ this is the missing linked file, skipped here.
the first tempfile has
firstperi: (2nd tempfile)
file: (2nd tempfile)
Pkg:dflt
prc:bitcount
workaround:
unicon -C -v 99 -K -nA link2
./link2
(works)
export FPATH="$BASE/bin"
unicon -C -nA cfuncs
./cfuncs
(works)
status: broken
workaround -nA works