You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Having recently written tests for SnoopCompile's extension, and a draft new extension for JET, I decided it was time to document the extension API. In #577 I had already noticed one potential issue, but the experience also led me to note other issues:
callstring (which calls method and specTypes) gets applied to both the original input object (or instance(obj)) and the edge items that come from iterating backedges(obj). This prevents edge from just being a state object that would let you extract the actual new node.
there isn't a very clear delineation between "node data" and "node with tree structure"
there isn't a good way to do "initialization" of the object, short of Cthulhu.treelist(userobj::ObjType) = Cthulhu.treelist(process(userobj)). But process should instead be an API call used after entering treelist.
The text was updated successfully, but these errors were encountered:
Having recently written tests for SnoopCompile's extension, and a draft new extension for JET, I decided it was time to document the extension API. In #577 I had already noticed one potential issue, but the experience also led me to note other issues:
callstring
(which callsmethod
andspecTypes
) gets applied to both the original input object (orinstance(obj)
) and theedge
items that come from iteratingbackedges(obj)
. This preventsedge
from just being a state object that would let you extract the actual new node.Cthulhu.treelist(userobj::ObjType) = Cthulhu.treelist(process(userobj))
. Butprocess
should instead be an API call used after enteringtreelist
.The text was updated successfully, but these errors were encountered: