Closed pb-cdunn closed 4 years ago
You seem to have a circular dependency between 4nim and 4collection. Is that the problem? Is that interacting with the ""
style of import (which I need)?
If I skip the "4collection" import, I get this shorter stack-trace:
falcon/rr_hctg_track.nim(414, 19) template/generic instantiation from here
../repos/msgpack4nim/msgpack4nim.nim(1069, 53) template/generic instantiation from here
../repos/msgpack4nim/msgpack4nim.nim(727, 32) Error: undeclared field: 'data'
s.pack_type undistinct(field)
^
I am serializing (i.e. "packing") myprioritytable
:
29 type
30 # A ctg is a 9-char array.
31 str9 = array[0..9, char]
33 mytuple = tuple[score: int, rid: str9] #overlap_len, q_id
35 myprioritytable = tables.Table[string, binaryheap.Heap[mytuple]]
-import "../msgpack4nim/msgpack4nim.nim"
-import "../msgpack4nim/msgpack4collection.nim"
+import ../msgpack4nim/msgpack4nim
+import ../msgpack4nim/msgpack4collection
Same problem that way.
I cannot use nimble because I have restrictions from my company. I use a directory structure like this:
src/fc_consensus.nim
src/falcon/rr_hctg_track.nim
src/msgpack4nim/
src/nim-heap/
src/fc_consensus.nim
:
from falcon/rr_hctg_track import nil
src/falcon/rr_hctg_track.nim
:
import ../msgpack4nim/msgpack4nim
import ../msgpack4nim/msgpack4collection
from "../nim-heap/binaryheap" import nil
change var MsgStream
to MsgStream
of unpack_type
and pack_type
proc unpack_type*(ss: msgpack4nim.MsgStream, x: var str9) =
var str: string
msgpack4nim.unpack(ss, str)
copyMem(addr x[0], addr str[0], 9)
proc pack_type*(ss: msgpack4nim.MsgStream, x: str9) =
let str: string = tostring(x)
msgpack4nim.pack(ss, str)
proc pack_type*(ss: msgpack4nim.MsgStream, x: binaryheap.Heap[mytuple]) =
let xseq: seq[mytuple] = sequtils.toSeq(binaryheap.items(x)) # unsorted
msgpack4nim.pack(ss, xseq)
your nim version and some of your submodules seems outdated. but hey, we are using nim. nim evolves quickly. :)
0.19.4
. Should I use devel
?
0.19.0 is enough
After I update to the latest msgpack4nim (720f8bb):
What do I need to change?