I just downloaded Nim 1.6.2 via choosenim. The tiny program
type
PCset[T,V] = object of RootObj
cnt : V
pc : ptr T
PTa[V] = object of PCset[PTa[V],V]
dummy : int
proc show[V](a : PTa[V]) =
echo a.cnt
# #[
proc runb() =
var q : PTa[int]
q.cnt = 5
q.dummy = 1
q.pc = addr(q)
show(q)
# ]#
proc run() =
runb()
echo "Done."
run()
#expected:
# 5
# Done.
...compiled flawlessly (the compiler did not complain). But the CC/LINK chain did not get activated, so no executable available. Other programs did compile and executables were generated.
What did I wrong? Do I need to activate a special compiler switch allowing for (if so) error messages?
It seems the generic cache is not respected for this example which results in an endless loop. The following is enough to cause a seg fault.
type
PCset[T,V] = object of RootObj
PTa[V] = object of PCset[PTa[V], V]
var a: PTa[int]