packages feed

sifflet-2.0.0.0: ISSUES

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., 
          <literal>
            <list>
              <string>a</string>
              <string>b</string>
            </list>
          </literal>
    due to the fact that the children of the <list> 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 <literal> element so that strings would be
    e.g. just <string>a</string>
    and lists would be just e.g. 
            <list>
              <string>a</string>
              <string>b</string>
            </list>
    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