ISSUES ====== Issues for sifflet and sifflet-lib This is the ISSUES file for both sifflet and sifflet-lib. If you are editing it, be sure you are editing the original and not the copies in the app and lib subdirectories. O = date opened R = reporter P = priority C = closed OPEN ISSUES ----------- 41 next issue bug number 40 Duplicate arguments in "Edit Arguments" Adding a duplicate argument in the "Edit Arguments" dialog is possible (for example, two arguments named "f"). It should not be. O: 2012 July 2 R: gdw P: medium 39 No lambda tool There is no lambda tool, and since partial application doesn't work (issue 32), this means there is no way to have a function return a function. O: 2012 jul 2 R: gdw P: medium 38 Working directory Sifflet should have some sense of its working directory, for convenience of opening and saving files O: 2012 july 2 R: gdw P: medium 37 Changing helper function definition does not affect displayed function call See f2 and testF2 in ../examples/map.sfl When testF2 is called on the workspace, and you edit and chagne f2, apply the new definition, the displayed call is not re-evaluated using the new definition. In fact if you use the displayed testF2 frame to call again, it still uses the old definition -- it seems permanently bound to it. To use the new definition of f2, you have to place a new copy of testF2 on the workspace. O: 2012 Jun 27 R: gdw P: low 36 Cascade effect of changing kind of arguments to a function. When we change the number of type (kind) of the arguments of a function, we also change the function's type (or kind); and if it's used in the definitions of other functions, then they may become invalid in turn -- what should be done in this case? O: 2012 Jun 27 R: gdw P: medium 33 testMapSumFromZero (see ../examples/map.sfl) In testMapSumFromZero n, with n = [1,2], opening the sumFromZero node displays bogus error messages as though it is a call to sumFromZero with n = [1,2]. In fact, the node has no input, so there is no call to sumFromZero until we get into map. The problem doesn't occur with recursive functions. It must be because the node has an inlet that expects n, and finds n in the enclosing environment although it is not called. O: 2012 June 22 R: gdw P: low 32 Partial application does not work (e.g., calling the + function with one argument) Comment: See also #39. O: 2012 Jun 21 R: gdw P: medium 31 Edit function inputs: when an argument tool is selected, and you change the arity of that argument, the next click of the tool puts the argument down on the canvas with its *old* arity; should be the new arity. Comment: A work-around is to reselect the tool to get the right arity. O: 2012 Jun 21 R: gdw P: medium 26 EditArgsPanel: TAB fails to move the cursor to the next field. O: 2011 Jun 23 R: gdw P: medium-high 25 Nodes lose unused inlets when applying a function definition. - Suppose the f node has two inlets, but none of them are used by any f nodes in the definition. Then when you apply the definition, all the f nodes lose both of their inlets. On the other hand, if one f node uses none of its two inlets and another uses both, then when you apply the definition, both of them keep both of their inlets. O: 2011 Jun 23 R: gdw P: lowest. Comment: This seems not really to be a problem. If NONE of the f nodes use their inlets, then why do they have inlets, anyway? Besides, it should become irrelevant when a new UI is developed without the circular inlets, as in issue 24. Comment: The inlets will reappear if you reopen the "inputs" dialog and then click "OK". 24 Arguments are shifted when applying a function definition. - If a node has 3 inlets and connections on inlets 1 and 2, but not on 0, then when "apply" is clicked the connections are shifted to inlets 0 and 1, leaving 2 open. O: 2011 Jun 23 R: gdw P: lowest. This should become irrelevant when and if I develop a new UI that does away with the circular inlets. Why not just let the user make as many connections as they please? And that would get rid of the need for a dialog that lets you change the number of inlets too. 23 typeToXml fails for (TypeCons Function) O: 2011 Jun 23 R: gdw P: medium 22 When you connect an input to the second (or generally not first) input port of a node, and leave the first "open", then click on apply, the input is reconnected to the first port instead of the second. -- Is this actually a bug? O: 2011 Jun 2 R: gdw P: ??? 14 If two frames overlap, then clicks on the top frame sometimes are interpreted as clicks on the lower (hidden) frame. O: 2010 aug 16 P: low 13 If you change any of the *example* functions and quit or open, Sifflet prompts you to save changes, but it does not save these particular changes, since they are not in "My Functions". Probably need to re-design the whole organization of examples and my functions, introduce modules associated with files, and show each in its own panel. Opened 2010 May 27. Priority: low 11 When function f, which calls function g, is on the workspace, and you edit g, the changes do not propagate back to f, so that calling f results in calling the *old* g. Example: open test-champ.siff, place two-lovely on the workspace, call it with any argument, edit lovely, apply, call two-lovely again. Opened 2010 May 20. Priority: medium * * * CLOSED ISSUES ------------- 1 After using the literal tool, etc., the program stops responding to key presses in the workspace. Opened ?? Closed 2009 Oct 5. 2 Fix resize frame Opened ?? Closed 2009 Oct 13. 3 Quitting (q and File/quit) should actually quit! Opened ?? Closed 2009 Oct 13. 4 vpTypeOf fails for []. Opened ?? Closed 2009 Oct 30. 5 Deleting a node leaves its children orphans. Opened ?? Closed 2009 Nov 4. 6 After closing "My functions" window and re-opening it, it should "remembers" the function tools that it had when closed, instead of showing up as a blank window. Opened ?? Closed 2009 Nov 11 7 If function pad window is closed, then creating a new function results in a "key not found" error. Opened ?? Closed 2010 March 1 8 Opening a file twice put duplicate tools in "My Functions" window (and toolkit, presumably). Opened ?? Closed 2010 May 13 9 After the dialog suggesting save changes before quitting or opening a new file, the program crashes due to a bug in Gtk2hs 0.10.0 and 0.10.1 (but fixed in gtk2hs darcs). Opened ?? Closed 2010 May 20. 10 Evaluating a call frame with zero arguments opens an unnecessary dialog (there are not arguments, so no values needed); moreover, it does not evaluate the function call. 15 In the test function list_of_2, evaluating [] results in "error: unbound variable: []". Ditto repeat_a_b. O: 2010 aug 16 P: high C: 2010 aug 16 -- fixed. 16 Editing a function, if you enter the literal ["a", "b"], the program crashes with this message: sifflet-new-expr: makeFixedLiteralTool: non-empty list expression EList [EString "a",EString "b"] O: 2010 aug 16 P: high C: 2010 aug 16 -- fixed. 17 There is an error in reading a non-empty list element from a SiffML file, e.g., a b due to the fact that the children of the element directly represent values, not expressions, so they are not read correctly (not read at all?) by xmlToExpr. I think I need to use xmlToValue here, but how to connect the two is not easy. In the long run, it is desirable to change the XML doctype, dropping the element so that strings would be e.g. just a and lists would be just e.g. a b O: 2010 aug 17 P: highest C: 2010 aug 17 -- fixed. 19 Closing all program windows leaves executable still running but no way to kill it (Ctrl+C is a no-op).* O: 2010 nov 3 R: Andrew Coppin andrewcoppin@btinternet.com P: HIGH C: 2010 dec 9 (actually fixed dec 3): closing the workspace window now "safely" quits from the application. 20 Amend documentation/home page to note that installation on Windows without curl is now definitely feasible O: 2010 nov 3 R: Andrew Coppin andrewcoppin@btinternet.com P: medium C: 2010 dec 9 (actually fixed dec 3) 21 Define adds list = if null list then 0 else if head list then + list 1 else tail (head list) Call the function with list = [1] Sifflet crashes with this error message: evalTreeWithLimit (if): unexpected test result O: 2010 dec 9 R: Charles Turner III (turnchan@iue.edu) P: high C: 2010 dec 9 29 typedValue (in Parser.hs) has two conditions that result in run-time errors. For testing higher-order functions, it would be good to be able to type in the name of a function in the global environment, but we don't have access to the environment here, do we? Also in case of failure, it should fail with an error message but not crash sifflet. O: 2012 Jun 15 R: gdw P: high Crashes program. C: 2012 June 21 -- fixed. 30 typeToXml: program crashes when saving the map function definition, with message: sifflet-devel: typeToXml: TypeCons Function cannot be converted to XML. Notes: 1. typeToXml is fixed, but now I also need to fix the corresponding part of xmlToType so the file can be read back in. 2. Maybe better still: Why do we need the types in the XML file anyway, now that we have type inference? 3. Also revise schema/DTD for SiffML files. O: 2012 Jun 21 R: gdw P: highest - program crash C: 2012 June 22, fixed. 28 EditArgsPanel should change inlets for existing nodes when the arg's kind is changed. - Suppose you change the number of parameters for argument f. Then any existing f nodes on the drawing should have their number of inlets changed correspondingly. Currently this works if the number is increased, but fails if it is decreased and there are now too many connected children in the graph --> error in graphRenderTree. Unfortunately, this is not the place where that can be fixed: even if I reduce nto or nfrom in this context, there are still the contexts in the connected children to consider. - Also, when extra inputs are disconnected (as they should be) they are sometimes also deleted from the canvas (shouldn't be). O: 2011 Jun 23 R: gdw P: highest. Crashes program. C: 2012 Jun 27, fixed. 18 Sifflet crashes when applying a function if some connections are missing. "PS. I presume you know that you can crash the whole of Sifflet by something as trivial as hitting the "apply" button when some connections are missing, and that closing all of the program windows leaves the executable still running but with no way to kill it. (I'm not sure why Ctrl+C is no-op...)" -- email from Andrew Coppin, 2010 Nov 01. O: 2010 nov 3 R: Andrew Coppin andrewcoppin@btinternet.com P: HIGH C: 2012 Jun 27 -- unable to duplicate either part of this at this time; must have been fixed earlier. Though it might be that the "no way to kill it" issue persists on MS Windows. 35 vcCloseFrame does not remove the frame's subgraph from the canvas graph. vcCloseFrame removes only the WFrame node, not the WSimple nodes displayed in the frame. It should remove all of them, otherwise clutter builds up every time a function definition is applied, since the apply command calls vcCloseFrame and then vcAddFrame. O: 2012 Jun 27 R: gdw P: high C: 2012 Jun 27 fixed. 12 Four tests fail in testall -u. These seem to all involve issues of text node size and are pretty minor, so maybe the tests need to be fine-tuned to allow for variations in what Cairo says is the text's dimensions. Opened 2010 May 24 Priority: medium C: 2012 Jul 2, previously fixed but not closed; all unit tests now pass. 34 In edit function / edit arguments: the edit window sometimes does not sufficiently increase in size, so the edit arguments buttons (OK, cancel) are hidden by the edit function buttons (args, apply, inputs, close). Comment: see darcs change: Tue Jun 7 12:40:24 EDT 2011 gdweber@iue.edu * Crude window resizing to fit as the EditArgsPanel grows - crude because it does not take into account the button bar below the panel Comment: duplicate of #27 O: 2012 June 26 R: gdw P: top C: 2012 jul 2, fixed 27 EditArgsPanel: window resizing is bad. - Sometimes the window does not expand enough to show the panel's buttons. - Sometimes it shrinks back too much after the panel is closed. - Comment: lib/Graphics/UI/Sifflet/EditArgsPanel.hs Workspace.hs : 138 O: 2011 Jun 23 R: gdw P: top C: 2012 jul 2, fixed