The Sifflet visual functional programming language and aid to understanding recursive functions (http://mypage.iu.edu/~gdweber/software/sifflet/home.html)
#57Crash when moving a node
We were moving a node, and suddenly the entire window disappeared.
[rysbell@merlin ~]$ sifflet & [1] 28276 [rysbell@merlin ~]$ (sifflet:28276): Gtk-WARNING **: Attempt to load unknown IM context type '001'
(sifflet:28276): Gtk-WARNING **: Attempt to load unknown IM context type '001'
(sifflet:28276): Gtk-WARNING **: Attempt to load unknown IM context type '001'
(sifflet:28276): Gtk-WARNING **: Attempt to load unknown IM context type '001'
(sifflet:28276): Gtk-WARNING **: Attempt to load unknown IM context type '001'
(sifflet:28276): Gtk-WARNING **: Attempt to load unknown IM context type '001'
decideTypes.expr: Succ (ELambda (Symbol "pie") (ELambda (Symbol "cake") (ELambda (Symbol "iceCream") (ECall (Symbol "*") [ENumber 7.0e-2,ECall (Symbol "+") [ECall (Symbol "+") [ECall (Symbol "") [ENumber 1.25,ESymbol (Symbol "pie")],ECall (Symbol "") [ENumber 2.5,ESymbol (Symbol "cake")]],ECall (Symbol "*") [ENumber 0.8,ESymbol (Symbol "iceCream")]]]))))
decideTypes.t: Succ (Num -> (Num -> (Num -> Num)))
decideTypes.res: Succ ([Num,Num,Num],Num)
- decideTypes: (["pie","cake","iceCream"],ECall (Symbol "*") [ENumber 7.0e-2,ECall (Symbol "+") [ECall (Symbol "+") [ECall (Symbol "") [ENumber 1.25,ESymbol (Symbol "pie")],ECall (Symbol "") [ENumber 2.5,ESymbol (Symbol "cake")]],ECall (Symbol "*") [ENumber 0.8,ESymbol (Symbol "iceCream")]]]) ::
- Succ ([Num,Num,Num],Num)
(sifflet:28276): Gtk-WARNING **: Attempt to load unknown IM context type '001'
(sifflet:28276): Gtk-WARNING **: Attempt to load unknown IM context type '001'
(sifflet:28276): Gtk-WARNING **: Attempt to load unknown IM context type '001'
(sifflet:28276): Gtk-WARNING **: Attempt to load unknown IM context type '001' sifflet: nodeContainerFrameNode: node 6 has multiple parents in graph
1:WFrame 1->[(WEdge 10,11),(WEdge 4,5),(WEdge 9,6),(WEdge 9,10),(WEdge 8,9),(WEdge 7,8),(WEdge 6,7),(WEdge 5,6),(WEdge 3,4),(WEdge 1,2),(WEdge 2,3)]
2:WSimple (LayoutNode (GNode ENode (NSymbol (Symbol "limit")) EvalUntried [TextBox {tbText = "limit", tbTextBB = BBox 79.5 267.5 27.0 21.0, tbBoxBB = BBox 71.5 244.5 43.0 37.0}] BBox 71.5 244.5 43.0 37.0 [] [Iolet (Circle {circleCenter = Position {posX = 93.0, posY = 244.5}, circleRadius = 5.0})]) BBox 61.5 234.5 63.0 57.0)->[]
3:WSimple (LayoutNode (GNode ENode (NSymbol (Symbol "speed")) EvalUntried [TextBox {tbText = "speed", tbTextBB = BBox 23.5 267.5 31.0 21.0, tbBoxBB = BBox 15.5 244.5 47.0 37.0}] BBox 15.5 244.5 47.0 37.0 [] [Iolet (Circle {circleCenter = Position {posX = 39.0, posY = 244.5}, circleRadius = 5.0})]) BBox 5.5 234.5 67.0 57.0)->[]
4:WSimple (LayoutNode (GNode ENode (NSymbol (Symbol "<")) EvalUntried [TextBox {tbText = "<", tbTextBB = BBox 63.0 191.5 8.0 21.0, tbBoxBB = BBox 55.0 168.5 24.0 37.0}] BBox 55.0 168.5 24.0 37.0 [Iolet (Circle {circleCenter = Position {posX = 62.0, posY = 205.5}, circleRadius = 5.0}),Iolet (Circle {circleCenter = Position {posX = 72.0, posY = 205.5}, circleRadius = 5.0})] [Iolet (Circle {circleCenter = Position {posX = 67.0, posY = 168.5}, circleRadius = 5.0})]) BBox 45.0 158.5 44.0 57.0)->[]
5:WSimple (LayoutNode (GNode ENode (NSymbol (Symbol "if")) EvalUntried [TextBox {tbText = "if", tbTextBB = BBox 147.5 105.5 9.0 21.0, tbBoxBB = BBox 139.5 82.5 25.0 37.0}] BBox 139.5 82.5 25.0 37.0 [Iolet (Circle {circleCenter = Position {posX = 142.0, posY = 119.5}, circleRadius = 5.0}),Iolet (Circle {circleCenter = Position {posX = 152.0, posY = 119.5}, circleRadius = 5.0}),Iolet (Circle {circleCenter = Position {posX = 162.0, posY = 119.5}, circleRadius = 5.0})] [Iolet (Circle {circleCenter = Position {posX = 152.0, posY = 82.5}, circleRadius = 5.0})]) BBox 129.5 72.5 45.0 57.0)->[]
6:WSimple (LayoutNode (GNode ENode (NNumber 0) EvalUntried [TextBox {tbText = "0", tbTextBB = BBox 147.5 183.5 7.0 21.0, tbBoxBB = BBox 139.5 160.5 23.0 37.0}] BBox 139.5 160.5 23.0 37.0 [] [Iolet (Circle {circleCenter = Position {posX = 151.0, posY = 160.5}, circleRadius = 5.0})]) BBox 129.5 150.5 43.0 57.0)->[]
7:WSimple (LayoutNode (GNode ENode (NSymbol (Symbol "speed")) EvalUntried [TextBox {tbText = "speed", tbTextBB = BBox 225.5 271.5 31.0 21.0, tbBoxBB = BBox 217.5 248.5 47.0 37.0}] BBox 217.5 248.5 47.0 37.0 [] [Iolet (Circle {circleCenter = Position {posX = 241.0, posY = 248.5}, circleRadius = 5.0})]) BBox 207.5 238.5 67.0 57.0)->[]
8:WSimple (LayoutNode (GNode ENode (NSymbol (Symbol "limit")) EvalUntried [TextBox {tbText = "limit", tbTextBB = BBox 276.5 271.5 27.0 21.0, tbBoxBB = BBox 268.5 248.5 43.0 37.0}] BBox 268.5 248.5 43.0 37.0 [] [Iolet (Circle {circleCenter = Position {posX = 290.0, posY = 248.5}, circleRadius = 5.0})]) BBox 258.5 238.5 63.0 57.0)->[]
9:WSimple (LayoutNode (GNode ENode (NSymbol (Symbol "-")) EvalUntried [TextBox {tbText = "-", tbTextBB = BBox 239.5 217.5 4.999999999999999 21.0, tbBoxBB = BBox 231.5 194.5 21.0 37.0}] BBox 231.5 194.5 21.0 37.0 [Iolet (Circle {circleCenter = Position {posX = 237.0, posY = 231.5}, circleRadius = 5.0}),Iolet (Circle {circleCenter = Position {posX = 247.0, posY = 231.5}, circleRadius = 5.0})] [Iolet (Circle {circleCenter = Position {posX = 242.0, posY = 194.5}, circleRadius = 5.0})]) BBox 221.5 184.5 41.0 57.0)->[]
10:WSimple (LayoutNode (GNode ENode (NNumber 10) EvalUntried [TextBox {tbText = "10", tbTextBB = BBox 280.0 218.5 14.0 21.0, tbBoxBB = BBox 272.0 195.5 30.0 37.0}] BBox 272.0 195.5 30.0 37.0 [] [Iolet (Circle {circleCenter = Position {posX = 287.0, posY = 195.5}, circleRadius = 5.0})]) BBox 262.0 185.5 50.0 57.0)->[]
11:WSimple (LayoutNode (GNode ENode (NSymbol (Symbol "*")) EvalUntried [TextBox {tbText = "*", tbTextBB = BBox 262.5 170.5 7.0 21.0, tbBoxBB = BBox 254.5 147.5 23.0 37.0}] BBox 254.5 147.5 23.0 37.0 [Iolet (Circle {circleCenter = Position {posX = 261.0, posY = 184.5}, circleRadius = 5.0}),Iolet (Circle {circleCenter = Position {posX = 271.0, posY = 184.5}, circleRadius = 5.0})] [Iolet (Circle {circleCenter = Position {posX = 266.0, posY = 147.5}, circleRadius = 5.0})]) BBox 244.5 137.5 43.0 57.0)->[]
[1]+ Exit 1 sifflet [rysbell@merlin ~]$
[Reported by R. Bell and M. Dudley]
- description updated
- description updated
The reporters were working on the speeding problem in http://mypage.iu.edu/~gdweber/info/i210/dest/lab-06.html and trying to move a literal node to reconnect it to a different input port of an if node. It is not clear to me whether the literal node was actually connected to the if node at the time it was moved.
Speeding problem is now at http://pages.iu.edu/~gdweber/info/i210-2014/dest/lab-05.html
This message might be the essential clue:
sifflet: nodeContainerFrameNode: node 6 has multiple parents in graph
But how could that happen?