Menu

#254 unicon -C cfuncs: bitcount is &null

None
open
iconc (42)
5
2023-09-22
2017-06-04
No

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

Related

Bugs: #120
Bugs: #176
Bugs: #233
Bugs: #234
Bugs: #239
Bugs: #255
Bugs: #91

Discussion

  • Charles Evans

    Charles Evans - 2017-06-04

    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

     
  • Charles Evans

    Charles Evans - 2017-06-04

    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

     
  • Charles Evans

    Charles Evans - 2017-06-10

    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.

     
  • Charles Evans

    Charles Evans - 2017-06-11

    ... 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

     
  • Charles Evans

    Charles Evans - 2017-06-12

    procedure bitcount is in tempfile
    uninnn and matching uninnn-iconc

    patch to keep tempfiles is on RFE [feature-requests:#55]

     

    Related

    Feature Requests: #55

  • Charles Evans

    Charles Evans - 2017-06-12

    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 ...

     
  • Clinton Jeffery

    Clinton Jeffery - 2017-07-28
    • assigned_to: Clinton Jeffery
    • Group: -->
     
  • Charles Evans

    Charles Evans - 2017-09-01

    Also,
    unicon -C ilib
    # ^ fails, link failed, bug [#176]
    iconc -fa ilib
    # ^ works,

     

    Related

    Bugs: #176

  • Charles Evans

    Charles Evans - 2021-09-21

    BTW :
    unicon -C link2 fakebit
    ./link2
    procedure bitcount
    (works if you give it the linked file)

    9/6 snapshot no change, link fails.

     
  • Charles Evans

    Charles Evans - 2021-09-24

    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)

     
  • Charles Evans

    Charles Evans - 2021-09-25

    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)

     
  • Charles Evans

    Charles Evans - 2021-09-25

    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.

     
  • Charles Evans

    Charles Evans - 2021-09-25

    the first tempfile has
    firstperi: (2nd tempfile)
    file: (2nd tempfile)
    Pkg:dflt
    prc:bitcount

     
  • Charles Evans

    Charles Evans - 2021-09-25

    workaround:
    unicon -C -v 99 -K -nA link2
    ./link2
    (works)
    export FPATH="$BASE/bin"
    unicon -C -nA cfuncs
    ./cfuncs
    (works)

     
  • Charles Evans

    Charles Evans - 2023-09-22

    status: broken
    workaround -nA works

     

Log in to post a comment.