Logisim 2.5.0 to 2.6.2 release history

Most recent releases
2.5.0 to 2.6.2
2.2.0 to 2.4.0
2.1.0 to 2.1.8
2.0.0 to 2.0.6
2.0 Beta 1 to 2.0.0
0.3 to 1.09c

Version 2.6.2 (December 23, 2010)

  • Feature: If you go to the Preference window's Window tab and check "Show Tick Rate," Logisim will measure the actual rate of ticks and display it in the canvas's upper right corner. For complex circuits, the circuit cannot be simulated at the faster rates listed in the Simulate menu, and so the measured tick rate can be much less than what the user has selected.

  • Feature: A Portuguese (Brazilian) translation is included.

  • Feature: Several configuration items were moved from the project-specific Options dialog into the application-wide Preferences dialog, since users are unlikely to want the values to vary between projects. This includes all items formerly under the Option window's Canvas tab and the Toolbar Location item under its Toolbar tab. These were moved into the application-wide Preferences dialog's new Window and Layout tabs.

  • Feature: Several window attributes are automatically saved as preferences when the user exits (though they don't appear in the dialog) so they can be restored to their previous values on the next startup. This includes the tick rate, window size, zoom factor for both the layout editor and appearance editor, whether to show the grid in the layout editor and appearance editor grid, whether the window is maximized, and the portion of the window dedicated to the main canvas, the explorer pane, and the attribute table.

  • Feature: Added Open Recent submenu to the File menu.

  • Feature: Added a "-clearprops" command-line option that clears all saved application preferences on startup.

  • Feature: In the I/O library, the Joystick component's Bit Width attribute can be configured through pressing Alt-2 through Alt-5.

  • Feature: A very partial translation of the German documentation is included.

  • Appearance change: Rectangular XOR and XNOR gates are drawn with "=1" to conform to the ISO standard (previously it was simply "1"). However, if the "Multiple-Input Behavior" attribute is "When an odd number are on" and there are more than two inputs, the label is "2k+1" to reflect that it is actually doing an odd parity. (Previously it showed this label for odd parity even when there were just two inputs.)

  • Bug fix: The tick rate would default to 1 KHz, although the initially checked tick rate was 1 Hz.

  • Bug fix: Libraries could not be unloaded.

  • Bug fix: The XNOR gate incorrectly did even parity by default, rather than being off only when exactly one input is one.

  • Bug fix: Most options were not loaded when a file was later reopened (all except the toolbar and mouse mappings).

  • Bug fix: The Logisim version saved in the project file was not interpreted correctly when opening the project. One consequence: If you edited the toolbar to include the Select and Wiring tools, they would be replaced by the Edit tool when reloaded.

  • Bug fix: When moving a selection so that one wire in the selection is moved exactly into the location of a wire being moved, the wire would sometimes disappear entirely rather than be moved.

  • Bug fix: With the Select Tool, pressing the backspace key deletes the current selection (just as it does when the delete key is pressed).

  • Bug fix: The project toolbar would appear at startup regardless of whether its menu item was checked

  • Bug fix: When elements are duplicated, the attribute table does not allow changes to those elements to occur until the elements are deselected and reselected.

  • Bug fix: When adding a subcircuit, the "ghost" would not be drawn faded as with other regular components.

  • Bug fix: When a subcircuit element is selected and the Circuit Name altered through the attribute table, the updated value would not always be reflected in the attribute table.

  • Bug fix: When a subcircuit is added into a circuit and moved, changes to the underlying circuit's pins were not reflected in the subcircuit component.

  • Bug fix: In loading from a file into RAM or ROM, very long strings of non-zero values would see large portions treated as zero.

  • Bug fix: When a rectangle, oval, or rounded rectangle in a circuit's appearance had a paint type of "Border & Fill" and it was filled with solid black, that information was not properly stored in the saved file.

  • Bug fix: In editing the appearance and creating a rectangle, oval, or rounded rectangle, there would sometimes be artifacts left behind as the mouse was dragged.

  • Bug fix: Edits to the Bit Extender's Extension Type attribute or the Comparator's did not have an immediate effect in the circuit.

  • Bug fix: Under MacOS X, the title bar's close-window button would indicate that the file was changed after the first change, but the indicator would not disappear when the file was saved.

  • Interface change: The Window menu now includes a menu item for accessing the window for application preferences.

  • Interface change: A customized application icon is configured to appear in each window's title bar, where the Java logo had previously appeared.

  • Implementation change: The documentation's directory hierarchy was changed to facilitate easier translation.

Version 2.6.1 (October 4, 2010)

  • Feature: A German translation of the GUI strings is now included. (Translation of the documentation is not yet available.)

  • Feature: Added a Label and Label Font attribute for all components in the Gates library except Constant.

  • Feature: Added the Bit Finder component into the Arithmetic library.

  • Feature: Added tool tips for each input and output of all Arithmetic components.

  • Feature: Memory image files generated by a text editor or other file can include comments: Logisim ignores the '#' character and the following characters on that line.

  • Feature: Added Off Color and Background attributes for the I/O library's Seven-Segment Display and Hex Digit Display.

  • Feature: Added Color and Background attributes for the I/O library's TTY component.

  • Feature: Enhanced the splash screen and "About" dialog to give credit to other team members.

  • Interface change: The Preferences dialog now defaults to the International tab, the languages appear in a list rather than a drop-down box, and each language is described by both its own language and the currently selected language.

  • Interface change: Even after selecting a wire, starting a drag from one of its endpoints will lengthen or shorten the wire. (Previously the wire would be moved in this situation.)

  • Bug fix: If you have never previously executed Logisim, it should default to the platform language if a supported translation is available.

  • Bug fix: Circuit statistics were not computed recursively as intended (it was done correctly in 2.5.1).

  • Bug fix: When the simulation frequency is more than 1KHz, choosing "Tick Once" after a series of several ticks would lead to multiple ticks occurring.

  • Bug fix: The Bit Adder's output bit width was one bit too small when the maximum possible count was a power of 2.

  • Bug fix: With a multiplexer/demultiplexer/decoder selected, pressing 1 through 4 alters the number of select bits, but 5 does not work properly.

  • Bug fix: If you select a wire and drag one endpoint in the same direction the wire is facing, then it shows just a fragment of the resulting longer wire being selected.

Version 2.6.0 (September 27, 2010)

  • Feature: You can customize how a subcircuit component will be drawn, in place of the default rectangle-with-notch appearance earlier.

  • Feature: When the poke tool is selected, clicking a subcircuit will lead a magnifying glass to appear over the subcircuit, and double-clicking in the magnifying glass will enter the subcircuit's state.

  • Feature: For input and output pins, pressing Alt with a direction key changes the pin's Label Location attribute.

  • Feature: Multiplexers, demultiplexers, decoders, and priority encoders all support 5 "Select Bits."

  • Feature: The Arithmetic library now includes a "Bit Adder" which computes the number of 1 bits in its input(s).

  • Feature: The I/O library's LED has an "Off Color" attribute.

  • Feature: The facing of a subcircuit can be changed after it is placed into a circuit.

  • Bug fix: After removing a circuit from the project, an Undo would place the removed circuit at the end of the project's list rather than back in its previous location.

  • Bug fix: When loading more than 4,096 memory entries into RAM or ROM, if the 4,096th entry (or a multiple of 4096 entries) was at the end of a line in the text file, all subsequent entries were ignored.

  • Bug fix: When the circuit is scaled using the zoom controls, tool tips would show up in the wrong location.

  • Bug fix: A "ConcurrentModificationException" was observed from the EventSourceWeakSupport class. It was changed to guarantee that it does not occur there.

  • Bug fix: Sometimes a diagonal line would appear across the layout when you selected a different component to be added.

  • Interface change: The menu shortcut for moving up in the state hierarchy is now MenuKey+Left, since MenuKey+Up is used for raising the selection (and MenuKey+Shift+Up for raising the selection to the top). Similarly, moving down the hierarchy is MenuKey+Right.

  • Interface change: When the grid is being shown and the zoom factor is 200% or more, each grid dot is actually a square of several pixels.

  • Interface change: The project toolbar is drawn slightly differently, with a darker "add" icon, and of course the added elements for selecting to edit the layout or the appearance. Behind the scenes, the icons are drawn differently - this will likely be most apparent under MacOS X, where it was fairly ugly before.

  • Interface change: Subcircuits are drawn (by default) with a slightly different notch to adapt to the quadratic Bezier curve supported by the customized appearance module.

  • Interface change: The explorer pane's magnifying glass is drawn with a hint of blue in its center.

  • Architectural change: Subcircuits are implemented using the newer logisim.instance API rather than the deprecated logisim.comp API.

Version 2.5.1 (September 2, 2010)

  • Feature: Added the "Get Project Statistics" menu item and the "-tty stats" command-line option.

  • Feature: The integrated help system now includes full-text search. Also, the most recent version of the JavaHelp library is packaged with Logisim.

  • Feature: Added Control Line Location to Controlled Buffer and Controlled Inverter, and added Gate Size attribute to the Controlled Inverter.

  • Feature: Increased the maximum number of inputs for gates to 32.

  • Feature: Added a third, larger Gate Size option to the multi-input logic gates, which may look better for very large numbers of inputs. What was called "Wide" before is now "Medium."

  • Feature: The color and font dialogs were modified so that their strings could more easily be translated. A Russian translation is included.

  • Interface change: The rectangular OR and NOR gates are drawn with the proper "≥1" label rather than ">0".

  • Interface change: The shaped OR, NOR, XOR, and XNOR gates are drawn slightly differently, using Java's GeneralPath class. As a result, the corners connect well and the "wings" for a large number of inputs don't get overly deep.

  • Bug fix: In 2.5.0, Logisim projects were opened assuming a UTF-8 encoding, and it refused to open files with invalid encoding. It now first attempts opening the file assuming UTF-8 encoding (since that is now the default save format); but if that fails, it attempts to open the file using the platform's default encoding.

  • Bug fix: An exception could occur when loading multiple libraries into a project, at least one of which is a Logisim file.

  • Bug fix: It was reported that a race condition could occur when opening many files. (Thanks to Joshua Cranmer of Georgia Tech for providing the report and suggesting changes to fix it.)

  • Bug fix: In previous versions, projects were saved using the platform's default encoding (even though the XML indicated it used UTF-8), leading files to be non-portable if they included non-ASCII characters. Now the file is always saved using UTF-8.

  • Bug fix: Using DIN 40700 gate shapes, the OR and NOR gates were drawn improperly for even numbers of inputs, and the NAND and NOR gates' output lines did not quite go as far as their input.

  • Bug fix: With the font dialog library, changes to the selected language would not be reflected until the program was restarted.

  • Bug fix: The documentation used the XHTML " />" idiom for childless elements like "
    ", but this confuses Java 5 systems (not Java 6) so that the ">" appears when viewing the pages in the integrated help system. All instances of this idiom were removed.

  • Internal modification: All references to the JDOM library were removed. Logisim now uses Java's integrated XML support instead.

Version 2.5.0 (August 30, 2010)

  • Feature: When moving components, Logisim will modify the wires in the circuit so that connections are preserved. For example, if you have an input connected to an AND gate, and you move the AND gate away from the input, Logisim will add new wires so the input remains connected. This will not happen if the shift key is pressed during the drag. This feature can be turned off under the Canvas panel of the Project Options dialog.

  • Feature: A complete Russian translation of the documentation is added. This was produced by Ilia Lilov, a student at Moscow State University of Printing Arts.

  • Feature: For many components, typing digits can configure it - for example, you can select an AND gate and type 3 to change the number of inputs to three - and you can type Alt-3 to change the bit width to 3. That works whether you're adding a new AND gate or you have an existing AND gate selected. A similar principle applies to most components - typing a digit will configure how "big" it is, or it will configure the bit width if the Alt key is down at the same time.

  • Feature: The new "Tunnel" component in the Base library allows you to connect two points in the circuit as if they were connected by wire - all you need is two (or more) tunnels sharing the same label.

  • Feature: The new "Pull Resistor" component allows one to add a wire that pulls floating values to 0, 1, or the error value.

  • Feature: The new "Bit Extender" component in the Base library takes an input of one width and produces an output of another width - the additional output bits can be configured to be 0, 1, the input's topmost (sign) bit, or the value coming in an additional one-bit input.

  • Feature: The gates in the Gates library allow individual inputs to be negated.

  • Feature: The gates in the Gates library allow any number of inputs from 2 to 16.

  • Feature: The I/O library's LED Matrix component received a "Light Persistence" attribute.

  • Feature: Added the "-load" command line option for loading programs into RAM before command-line circuit execution.

  • Feature: Added the "halt", "speed", and "tty" arguments for the "-tty" command line option to customize the behavior of command-line circuit execution.

  • Feature: When saving a file, Logisim asks the user if it sees an extension other than ".circ". The identification of extensions is now more strict. Also, the dialog for replacing the extension has more descriptive options, including a new option of adding ".circ" to the name's end.

  • Feature: In saving files, attribute values are not written when they match with the default value. This brings the file size down dramatically, particularly for small circuits - a nearly empty circuit would result in a 14KB file before but now takes less than 3KB.

  • Feature: As you are shortening a wire, the full wire is never drawn onto the screen (so it doesn't have to be painted over in white as before).

  • Interface change: When pasting or duplicating the selection, the subsequent move of the selection is treated as part of the same action so that an "Undo" undoes the move as well as the preceding paste/duplicate.

  • Interface change: The "false" value is drawn with a slightly lighter green in order to be more distinctive from the black of multi-bit lines.

  • Interface change: An "error" value is drawn with a darker red than before, since it arises more often for innocuous reasons with the new gate behavior of 2.4.0.

  • Interface change: Added the Control-K shortcut for the Ticks Enabled menu item.

  • Bug fix: When viewing a subcircuit of a larger circuit that is running, poking a pin brings up a dialog stating: "The pin is tied to the supercircuit's state." For some subcircuits (it seems those that themselves contain subcircuits containing subcircuits), clicking OK would result in inaccurate behavior.

  • Bug fix: In the explorer pane, libraries would collapse when the project is saved and when it is changed from the saved version. This would also happened with "Set As Main Circuit" and with moving circuits.

  • Bug fix: When a component's pins changes locations due to a change in an attribute such as Facing, wires were not merged or split appropriately.

  • Bug fix: Placing an exact copy of an existing wire on top of itself would mess up the internal representation so that connection nodes would be drawn where they should not.

  • Bug fix: You could configure a custom template in the application preferences dialog, but it would revert to the default plain template on restart.

  • Bug fix: When opening a project just after starting Logisim, the default empty project's circuit attributes were still shown in the attribute table, and changes to those attributes resulted in an error dialog.

  • Bug fix: If a circuit within the current project was added to the toolbar, then it would disappear when the project was reloaded.

  • Bug fix: If a wire was started, dragged, and then dragged back to the beginning to effectively "cancel" the new wire, that point where you started would be used as the starting point when you begin creating the next wire.

  • Bug fix: When drawing a wire using the Edit Tool, if the clock was ticked during the drag, the green circle would be drawn at the drag's start.

  • Bug fix: When editing a label using the Text Tool, changes to the component's Label attribute via the attribute table had no effect.

  • Bug fix: A one-bit pin with its "Three-State?" attribute set to "yes" would not draw a red circle as the background when it sees an error input, wehreas one with "Three-State?" set to "no" would.

  • Bug fix: In some circumstances, the Combinational Analysis module's Build Circuit feature would wire inputs into a gate incorrectly. In particular, this would happen when you have a gate with many inputs, and some in the upper half of the inputs have to be bent upwards (or some in the lower half had to be bent downwards).

  • Bug fix: From the Combinational Analysis module, when building a circuit from with only NAND gates, any NOT gates converted to a NAND gate would be built with a three-input gate when only two were used.

  • Bug fix: If a circuit other than the one being viewed was right-clicked in the explorer pane, the Analyze Circuit was chosen, and then Build Circuit pressed, the dialog box would suggest that the currently viewed circuit be replaced, not the one that was analyzed.

  • Bug fix: When viewing attributes for the wire, the strings "horizontal" and "vertical" were displayed in English regardless of the language chosen.

  • Bug fix: Many minor repairs to the documentation, nearly all of which were suggested by Ilia Lilov of Moscow State University of Printing Arts.

  • Bug fix: Added the mysteriously missing 128 Hz option into the Tick Frequency submenu.

  • Architectural change: All code was converted to use Java 5 generics.

  • Architectural change: The internal technique for applying changes to a circuit was changed to a transaction-based approach, and all wire irregularities (i.e., wires that need to be split or merged) are identified at the conclusion of each transaction in a generic way.

  • Architectural change: All components in the Gates library now use the logisim.instance API for their implementation rather than the older logisim.comp API.

  • Architectural change: The Pin, Probe, Clock, and Text components were also rewritten to use the logisim.instance API, and they've been moved into the package logisim.std.base. The only pieces still using the logisim.comp API are the Wire, Splitter, and Subcircuit components from Base and all components from Legacy.