Known Problems of Viivi < Viivi's Cell < Entrance


Known Problems of Viivi


Problems Newly Found After the Release-Time

  1. [FIXED]
    [Bug-Info #0] (already reported with Twitter)
    ID: F59513.
    Detail: The Selection-Lit function does not work at the terminated-state.

    State: FIXED.

  2. [unfixed]
    [Bug-Info #1] (already reported with Twitter)
    Detail: Calculations for the phase of a complex number are wrong (sqrt, asin, acos, atan).

    State: Fixing.

Problems Already Found At the Release-Time

  1. [unsolved]
    Stupid fonts are used for Japanese-language environment by default.


    With English locale of Linux environment, you see cool displays as shown on the backgrounds of the top-page and the entrance.
    Sadly, however, with Japanese locale of Windows and Linux environments, the fonts used by default look poor, not beautiful, and stupid.
    This is an issue not of Viivi but of setting for Java environment.
    If you know how to use cool fonts with Java in Japanese environment, please let the author know.
    (This may generally occur for other locales of NON-EUROPEAN languages.)

    [A temporary workaround]
    There is a temporary workaround, if you are using Viivi on the Linux system, such as Ubuntu.
    Provide an English environment LANG=C for booting Viivi as
    and then, when the controller is shown, choose Japanese "ja [Japanese]" from the Language menu at the top-right corner of the controller.
    Now you can use cool fonts with Japanese locale TEMPORARILY.
    It does not guarantee a stable execution, though.

  2. [unsolved]
    Exceptions unrelated to the Viivi codes occur randomly.


    You may randomly see Exceptions unrelated to the Viivi codes on the shell window or on the COMMAND window from which you have invoked Viivi.
    Since these Exceptions do not contain any Viivi codes in the stacktrace output, there are no ways to detect the problem.

    In the Exception shown below, for example, the problem seems to reside in the internal usage of a sorter somewhere of the table.
    But Viivi codes have no direct access to any sorters.
    And there are a few more Exceptions occur as well, which include no Viivi codes.

    [Example]
    	WARNING: row index is bigger than sorter's row count. Most likely this is a wrong sorter usage.
    	Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1 >= 0
    		at java.base/java.util.Vector.elementAt(Vector.java:466)
    		at java.desktop/javax.swing.text.DefaultHighlighter.paint(DefaultHighlighter.java:59)
    		at java.desktop/javax.swing.plaf.basic.BasicTextUI.paintSafely(BasicTextUI.java:753)
    		at java.desktop/javax.swing.plaf.basic.BasicTextUI.paint(BasicTextUI.java:917)
    		at java.desktop/javax.swing.plaf.basic.BasicTextUI.update(BasicTextUI.java:896)
    		at java.desktop/javax.swing.JComponent.paintComponent(JComponent.java:797)
    		at java.desktop/javax.swing.JComponent.paint(JComponent.java:1074)
    		at java.desktop/javax.swing.JComponent.paintToOffscreen(JComponent.java:5255)
    		at java.desktop/javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:246)
    		at java.desktop/javax.swing.RepaintManager.paint(RepaintManager.java:1323)
    		at java.desktop/javax.swing.JComponent._paintImmediately(JComponent.java:5203)
    		at java.desktop/javax.swing.JComponent.paintImmediately(JComponent.java:5013)
    		at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:865)
    		at java.desktop/javax.swing.RepaintManager$4.run(RepaintManager.java:848)
    		at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    		at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain)
    		at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:848)
    		at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:823)
    		at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:772)
    		at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1884)
    		at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:316)
    		at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
    		at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
    		at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
    		at java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    		at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain)
    		at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
    		at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
    		at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
    		at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
    		at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
    		at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    		at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
    
    

  3. [unsolved]
    No Hot-Keys are available.


    As a heavy user of hot-keys, the author has tried to implement the hot-key function on Viivi IDE.
    But it failed.
    This problem is holding back the efficiency in operating Viivi IDE / VITSE.
    The cause seems to be in the bugs around the hot-key APIs of Swing.

    For example, although the version 00.18.00 is not implemented with the hot-keys at all, pushing [Alt]+[F] selects the "File" menu on the controller (OK, this is possible), and [Alt]+[D] selects the "Setting" menu (The author doesn't understand why)!
    And some other kinds of bugs were experienced around the hot-keys and the menu operations.

  4. [unsolved]
    Even when a part of source code is set to a Break-Point, it is occasionally not fixed as a token after parsing.
    Even when a Break-Point is once set, its watch function occasionally does not work.


    These phenomena did not appear in older versions, but appeared only in the version 00.18.00.
    The cause is not yet detected.
    They will be investigated after the release of the latest version.

  5. [unfixed]
    Viivi kernel is not yet fully compliant to R5RS.

    Before the previous version (version 00.17.01) was released, the author could not find the test-code file r5rstest.scm for R5RS compatibility.
    After releasing the previous version, the file r5rstest.scm was searched on the internet.
    The Viivi kernel will be improved to be fully-compliant to R5RS based on this test-code file.

    Since the problems of Viivi IDE have higher priority to be fixed, however, tuning Viivi kernel without imperious needs will be postponed after Viivi IDE completion.

  6. [unfixed]
    Apart from the R5RS-compatibility, Viivi kernel is still incomplete and involves basic problems.

    Wrong behaviors are observed for the basic functions of the Scheme programming language processor.
    They will be fixed continuously with the priority next to that of Viivi IDE.
    More bug-reports make Viivi kernel fixed more exactly.
    Please report problems to <bugs@viivi.io>, when you find them.

    Most of the problems in Viivi are trivial and can be fixed just after they are reported to the author.
    A few essential problems, however, go above the author's understanding.
    (Unfortunately, the author is not a Real Schemer, but just one of Little Schemers.)
    They are listed on the page "Tell me, Schemer!" and the author would like to ask the Schemers [like YOU :)] to show him the ways for the solutions.

  7. [unfixed]
    Both of the evaluation-lit and the selection-lit are still incomplete.


    The author could not have enough time to complete the lighting functions before releasing the current version.
    There still remain wrong parts: some parts are unlit but should light intuitively, and others light but on unexpected targets.
    They will be finished in the future version.

  8. [unfixed]
    Opening a file-input-port takes very long time.


    The cause is that, when Viivi kernel opens a file, it always tries to parse all the contents.
    This is a wrong behavior and will be fixed in a future version.

  9. [unfixed]
    The error and warning messages became terse/poor compared to the previous versions.


    The author could not prepare enough messages (including how to avoid the error by customizing) before the release of the new version.
    The messages will be enriched (including how to avoid the error by customizing) in the future versions.

  10. [unfixed]
    Re-opening a table window does not always show on the table the latest internal state of Viivi kernel
    .

    A process of updating the table contents when the table window is re-opened, will be inserted in a future version.

    [A temporary workaround]
    If you keep all the table windows open, then they always show the latest internal state of Viivi kernel.

  11. [unfixed]
    Length of a circular linked list always returns the negative integer of the number of the net list-elements.
    It may be sometimes better with "the positive number of the net list-elements" or with "a symbol like INFINITY".


    It will be improved to be customizable using options in a future version.

  12. [specification]
    Any window cannot be hidden using the HIDE-button "_".
    Any window is hidden using the CLOSE-button "X", instead.
    The controller cannot be closed using any buttons.

    These are all specifications.
    There are no ways from Swing to know whether a window is open or hidden when the window is hidden/reopened.
    Since the controller had to manage the states of the window if they are open/hidden, only the CLOSE-function was used.
    When some windows are invisible, they are actually CLOSED, but are virtually treated as HIDDEN.
    Now the controller knows which windows are open and others are HIDDEN (actually CLOSED).
    In this situation, the HIDE-button "_" are never used.
    As Swing cannot remove the HIDE-button, it still stays on each window.
    Please use the CLOSE-buttons anytime, and ignore the HIDE-buttons.
    Sorry for the confusing appearance.

    Only the controller is always shown on the screen, as it is necessary to do anything on Viivi IDE.

  13. [specification]
    The message output does not support German language in the new version, which was supported in the previous versions.


    The author could not take enough time for translating all the messages (especially those on IDE) into German language.
    The implementation will go with English and Japanese languages for a while.
    When the program is completed, any language can be supported only with its own message file appended.

  14. [specification]
    The ZENKAKU (double-width) SPACE is treated as a "SPACE CHARACTER" in the Scheme language.
    Therefore, you cannot use the character within a symbol input directly (without using string->symbol procedure).


    This is a consideration mainly for Japanese beginners, who might use the invisible character for a space character.
    When she/he uses a document-writing software integrated in an Office Suite in the Japanese language environment to edit a Scheme source file, she/he might put the double-width space character as a space character.
    If such a character is allowed as a character composing symbols, the users would be confused with the invisible-but-effective character.
    Please keep it in mind that "invisible characters" are all treated as "space-characters for Scheme" (like a tab-character and a newline-character) in Viivi.

  15. [specification]
    The symbol call/cc is undefined in the new version, although it has been bound to the procedure #<procedure:call-with-current-continuation> in the previous version beforehands.


    This is a specification just for simplicity.
    If you want to use the symbol call/cc, you need to enable it with the argument-command
    or, to define it beforehands as
    at the top of your source code.


Known Problems of Viivi < Viivi's Cell < Entrance


Contact

Exhibited on 2022/03/02
Updated on 2022/04/29
Copyright(C) 2003-2022 ilma <ilma@viivi.io> All rights reserved.