Calico: Whats New

From IPRE Wiki
Revision as of 21:12, 9 December 2013 by Doug Blank (Talk | contribs) (Calico Version 2.4.2)

Jump to: navigation, search

This page is a listing of what is the latest status of the Calico Project. If you would like to see the list of unresolved issues, please see Calico Bugs.

Download the latest version of Calico, or see the full installation instructions.

Known Issues

For a list of known issues in Calico, please see

Also, if you find something that should be on that list, or you have questions, please use the calico-users mailing list or post an issue in the tracker. You can also make feature requests there.

Committed Changes

You can see a list of all changes to Calico here:

Future Release

Recent Changes not yet in a release. See our Git Source Code Repository for more details.

  1. Need to fix Chat's /join, /help, and /create
  2. Issue with mixing tone-generation and playing wav files; Calico error?
  3. Test removing the draconian kill-process now that all threads are background-threads, and replacing with a normal Exit

Calico Version 2.4.2

Version 2.4.3 released Monday Dec 9, 2013.


  • new assembly language, Calico LC3
  • Image conversions for Calico Myro/Calico Graphics <-> Calico Processing (Thanks Keith!)
  • Physics refinements in Calico Graphics (thanks Jim!)
  • Fixed showing window bug in Graphics (thanks Sven!)
  • Word wrap in Processing (Thanks Keith!)
  • Fix to keep weird blocks from printing from Calico Python (Thanks Jay!)
  • Calico Myro enhancements for Arduino
  • ellipseMode(CORNERS) for Processing
  • Now supports textFont("fontname"). textAlign() works nicely in Processing
  • Added fullscreen() to Processing, and default frameRate to 60 fps.

Calico Version 2.4.2

Version 2.4.2 released Monday August 26, 2013.



    • added menu -> Calico -> Options -> Remember Window Position
    • added menu -> Calico -> Reset Options...
    • fixed pane repositioning
    • enabled and refined --lang=LANGUAGE
    • added menu option "Change to Directory" which will change the current-directory to that of the current document. Useful for "import script" from the shell when you have "" as current document.


  • Calico Processing
    • change: no more (o,e) parameters needed on loop or event handlers
    • many bug fixes
    • Escape key now closes window
    • new Processing.pixels[] interface
    • new and improved functions and examples: save(filename), listFonts(), text(), markup(), textFont(), textAlign()
  • Calico Myro
    • Fixed bug in servo() and enablePanNetworking
    • upgrade firmware: printStatus typos fixed, by Brian Vancil
    • simulation fixes: can now close and restart simulator window; fixed radian/degree bug in turning robot
    • New function for easily making your own simulations. Myro.makeSimulation(calico, ""). See Calico Simulator
    • Fixed bug in servo() and enablePanNetworking.
  • Calico Graphics
    • new functions: Shape.drawAt(target, position); Shape.move(dx, dy, seconds), Shape.moveTo(x, y, seconds) that will glide a shape to a position
    • new shape: Sprite() - change costumes, add animation
    • added Shape.speak(text)
  • Calico Events
    • new module for broadcasting/publish and receiving/subscribing messages; event-driven programming


  • Calico Python
    • now uses standard "__main__" for __name__ when run from Calico
  • Calico Jigsaw
    • fixes to assignment and statement blocks to update the gui
    • menu -> Script -> Script Options -> Ask to Delete Block
  • Calico Scheme
    • speed improvements

Calico Version 2.4.1

Version 2.4.1 released Friday, July 26, 2013.


  • Myro: Fixed a bug in the simulated Scribbler turnTo() function
  • Jigsaw: fixed an issue in updating the GUI during assignments and statements
  • Graphics: Added new Shape.moveTo(x, y, seconds) and Shape.move(x, y, seconds) that will glade a shape to a location; fixed events on shapes; can get global positions for points of a shape drawn on a shape
  • Scheme: speed ups and refinements
  • Calico UI: fixes for --exec --graphics; new functions for programming cloud API
  • Myro: updated docs for MyROS

Calico Version 2.4.0

Version 2.4.0 released Wednesday, July 24, 2013.


  • Calico window now remembers it size, position, and configuration
  • New Myro commands for better controlling quad-copter drones
  • Many Scheme refinements: better stack trace, bug fixes, and 50% speed improvement
  • Fixes for --exec and --repl; removed --nographics, added --graphics (no graphics is the default)
  • Calico Processing now has Perlin noise, and example
  • Myro fixes for getBlob using Fluke2 with big pictures
  • Fixed Myro simulator window crash when mouse-over
  • Refinements to Myro Finch interface
  • MyROS now starts/stops ROS services
  • Icon for Mac (thanks connor-k, our first git-pull request!)
  • new Graphics.speechBubble()
  • new Arduino interface (Jigsaw, Advanced 4)

Calico Version 2.3.9

Version 2.3.9 released Thursday, July 11, 2013.

  1. Calico
    1. Examples button on Home tab
    2. Using new IKVM
    3. --repl refinements
  2. Languages
    1. Calico Ruby
      1. Removed "Ruby loaded" message by proper setting of path
    2. Calico CSharp
      1. Refinements: can run files, other fixes
    3. Calico Scheme
      1. Added some missing functions
      2. Handle string-like things better
      3. Fixed bug in external lookup
    4. Calico Jigsaw
      1. Can now remove modules that have used (menu -> Edit -> Remove a Module)
      2. Better reporting of errors
    5. Calico Console
      1. Allow pipes to handle objects (rather than just strings)
      2. Allow echoing multiple generators: echo generator [generator...] | ...
      3. added: head, tail commands
  3. Modules
    1. Calico Myro
      1. Initial examples using Calico MyROS (ROS, Robot Operating System)
      2. ARDrone support (appears on "M/Advanced 3" tab in Jigsaw)
      3. Updated Finch examples
    2. Calico Graphics
      1. added SpeechBubble(p1, p2, text, p3)
    3. Added new Calico Events module
      1. Events.publish(message, [object])
      2. Events.subscribe(message, procedure, [object])
    4. Added revised Calico Sprites module

Calico Version 2.3.8

Version 2.3.8 released Thursday, June 20, 2013.

  1. Calico
    1. New source code repository and issue tracker:
    2. New language, Calico Console, for exploring command-line-style programming (using function chains to create utility)
      1. First-class Calico language: stepping, language interop, share variables
      2. Real pipes between commands
      3. limited functions with limited support for flags/options, so far
    3. On Mac and Windows, exiting Calico kills all mono's running (work-around for killing non-background threads)
    4. Refinements of the read-eval-print loop (REPL)
  2. Modules
    1. MyROS - new module (beta); see example code here:
      2. Allows programming with ROS from any Calico language
    2. Myro
      1. New robots: Finch, and Hummingbird
      2. Fixes for Ruby's strings
    3. Graphics
      1. Fixes for Ruby's strings
  3. Languages
    1. Ruby
      1. Fixed Ruby's variables so that they don't have to be public
    2. Scheme
      1. Fixed user code sorting
      2. Fixed (string char ...)
    3. Jigsaw
      1. Separated Myro robot commands into different sets, depending on robot
      2. New Finch robot control examples
      3. Fix for assignments in modules, eg = "Howdy"

Calico Version 2.3.7

Version 2.3.7 released June 5, 2013.

  1. Calico
    1. Fixed: after playing a beep on Windows, Calico would not exit cleanly, and required a forced close. This is now fixed.

Calico Version 2.3.6

Version 2.3.6 released June 4, 2013. Code fixes by Doug Blank, Keith O'Hara, Mark Russo, and Ashley Gavin. Suggestions made by Michael Rogers, and Laura Blankenship.

  1. Calico
    1. On Mac, all control keys are now Apple keys (the cloverleaf key)
    2. Fixes and enhancements for Calico Cloud
    3. added calico.ReceiveData, calico.SendMessage, and calico.SendData
    4. Can now copy/paste in entry widgets (eg, Spreadsheet, Jigsaw's Properties tab)
    5. Made tabs work more like expected in treeviews (eg, Jigsaw's Properties tab)
    6. Added a Replace and Replace All (+/- on find)
    7. Added calico.RegisterLanguage(lang)
  2. Modules
    1. new Data Structures module (especially useful with Jigsaw) (new docs: Calico DataStructures)
      1. arrays, lists, dictionaries, sets, and tuples
    2. Myro
      1. Add click-and-show pixel info on show(pic) windows
      2. Give better error messages if robot is not initialized
      3. Fixed turnTo() and related functions with Scribbler2
      4. Added support for functional use: Sort, map, doTogether, apply, freeze, thaw
      5. getInfo() reports proper information for Scribbler-less fluke
      6. Reverted exception throwing behavior of read_byte() on timeout
      7. fixed setPictureSize()
      8. fixed senses() from crashing without init()
      9. Added a third parameter version of a blocking motors(left, right, duration) [Thanks Ashley Gavin]
  3. Languages
    1. Java
      1. fixed calico.Evaluate('x', 'java')
      2. Updated jar files
    2. Python
      1. added yaml to make nltk work
    3. Jigsaw
      1. Final revised tab graphics
      2. fixed missing 'pass' on empty main when exported to Python
      3. Fixed ability to do assignments to dotted variable names, such as Myro.robot = robot1 and = "Sally"
      4. Enabled Jigsaw to return Locals while stepping
      5. Modified Jigsaw to use true division and the Python print function.
      6. Expanded Jigsaw behavior to allow multiple block selection using shift-click.
      7. Changed multi-block-select behavior in Jigsaw to use control/command key instead of shift.
      8. Added new context menu option named "Deleted Selected Blocks"
      9. These two new additions allow multiple blocks to be selected and deleted in one action.
      10. Jigsaw can now print to printer
      11. new examples: picasso.jig (shows drawing with curves); quicksort.jig
      12. changed Common.Utils.beep() to use tones
      13. added beep(duration, freq), beep(duration, freq1, freq2)
      14. added speak(text)
      15. Sorted and remove duplicate method signatures
      16. Jigsaw beep is now working on Mac (rewrote to use tone-generator)

Calico Version 2.3.5

Version 2.3.5 released Wednesday May 15, 2013, noon. Code fixes by Doug Blank, Keith O'Hara, and Mark Russo. Suggestions made by Michael Rogers, Andy Brodnik, Laura Blankenship, and Ashley Gavin.

  1. Calico
    1. New Calico Cloud services: save, open, sync, send/receive data/message from user-to-user
    2. Added help on right-click on errors
    3. Removed Ruby and C# as initial languages
    4. Refinements in Output/Properties tab panel re-sizing
    5. Fix in focus selection
    6. All known bugs listed in one place: Calico Bugs
    7. Save filename to recents from Abandon/Save dialog
    8. Entry widgets (such as Jigsaw Properties and Spreadsheet cells) now support Select All/Copy/Paste/Cut [Thanks Michael Rogers for report]
    9. added calico.ReceiveData, calico.SendMessage, and calico.SendData
  2. Languages
    1. Spreadsheet
      1. Don't crash on opening non-existing files
    2. Jigsaw
      1. Show local variables when stepping
      2. New examples: mergeSort.jig, quickSort.jig and sim-robot.jig
      3. Fixed display bug when searching
      4. Engine resets when double-clicking a "when script runs" block
      5. Deleting a block in stack no longer leaves remaining blocks unattached
      6. Jigsaw now supports multi-block select (shift-click)
      7. Jigsaw now supports multi-block delete (right-click, select Delete Selected)
      8. Printing from Jigsaw
      9. Uses true division and print function
      10. Fixed reading in block locations when they were actually doubles not ints
      11. Don't crash if file doesn't exist
      12. New example: picasso.jig using Shapes and Curves
      13. Fixed Jigsaw file format (ints and doubles) and loading
    3. Logo
      1. Some refinements in error display
  3. Modules
    1. Myro
      1. don't show getBright in senses() (takes too long, and sometimes times out)
      2. don't crash on timeouts
      3. show() window now shows x,y and rgb of selected pixel on click [Thanks Michael Rogers for report]
      4. give a good error message if robot hasn't been initialized yet [Thanks Michael Rogers for report]
      5. Fixed turnTo(), turnBy(), moveTo(), and moveBy() with real Scribbler so that it waits until it is finished [Thanks Michael Rogers for report]
      6. give better error message if robot is not connected [Thanks Michael Rogers for report]
    2. Graphics
      1. Fix update issue that caused a crash [Thanks Laura Blankenship for report]
  4. Documentation
    1. New pages: Calico Translations, Calico Cloud

Calico Version 2.3.4

Version 2.3.4 released Wed April 24, 2013, 2:15pm.

  1. Languages
    1. Fixed issue with compiled DLR languages (Python and Ruby)
    2. Python
      1. Set Maximum Recursion limit to 1024

Calico Version 2.3.3

Version 2.3.3 released Wed April 24, 2013, 10:45am.

  1. Calico
    1. DLR languages are now compiled (Python and Ruby)
      1. Faster
      2. No more hacky method of setting print function, true division, and with statement
      3. imported code is now also compiled with same settings
    2. Switched all languages to compile with dmcs
    3. calico.onKey["F1"] = function(o, args, focus)
    4. Added svn revision property to *.cs files
  2. Modules
    1. Removed some unneeded libraries
    2. Shapes
      1. Better names for Jigsaw
    3. Graphics
      1. Added missing QueueDraw requests on some setX() functions in Graphics (thanks Roberto Carrasco)
      2. Added Picture(Gtk.Window)
      3. Better names for Jigsaw
    4. Myro
      1. Added makePicture(Gtk.Window)
      2. cleanup environment after pressing Stop
      3. Better names for Jigsaw
  3. Languages
    1. Jigsaw
      1. Drag and drop connection zone larger
      2. Added some public methods to make Jigsaw more interactive through other languages
      3. Reset zoom also resets canvas position
      4. ladybug2.jig example fixes
    2. Java
      1. Updated module jar files
    3. Scheme
      1. Fixed semantics of calico.Evaluate, calico.Execute
      2. Added (call-with-keywords func args kwargs)

Calico Version 2.3.2

Released Monday April 15, 2013.

  1. Calico
    1. Now properly handles low-level exceptions in the GUI thread so that user code can catch them
  2. Languages
    1. Jigsaw
      1. new examples: ladybug (Processing example ported from Python), ladybug2 (Processing example using Procedure blocks),
      2. Renamed "program" to "script"
      3. Added calico to the global environment
      4. Standardized on block labels, variables, function call syntax
      5. Show user-editable changes as blue font on white background
      6. Actually included read-only Properties Block Label row
      7. Updated documentation Calico Jigsaw
    2. Python
      1. updated so users can run/generate their own app
  3. Modules
    1. Replaced NPlot with Florence (need examples)
    2. Myro
      1. added setForwardness("fluke-forward" | "scribbler-forward") to Simulated Scribbler
      2. added list = loadPictures("animated.gif")
      3. added pic = loadPicture(string) alternative

Calico Version 2.3.1

Released Monday April 8, 2013.

Reversed backwards incompatible change in savePicture(). Filename is now always second parameter. See for more variations.

  1. Calico
    1. Support for Calico Emgu.CV - webcam and computer vision library
    2. If trying to save over a read-only file, ask to "save as" somewhere else
    3. Added --nomodules for running installation code that might update modules
    4. REPL now changes directory before executing file
  2. Modules
    1. Myro
      1. Simulation
        1. fixed blinking objects
        2. added height (Shape.zHeight), and distance off of ground (Shape.z) to objects
        3. can see objects behind other objects
      2. Robot.turnTo() and Robot.turnBy() are faster and accurate (perfectly)
      3. added Picture.toBitmap() and Myro.makePicture(bitmap) method and variation
      4. reverted argument order of Myro.savePicture(pic OR pics, "filename") [previous useage, filename is second]
    2. Graphics
      1. added Picture("file.bmp") constructor
  3. Languages
    1. Jigsaw
      1. prevent editing of block label via property row
    2. Python
      1. example updated showing Myro.savePicture() args
    3. Images
      1. can open Windows Bitmap ".bmp" files

Calico Version 2.3.0

Released Friday April 5, 2013.

Backwards-incompatible reversal:

  • has been replaced to its pre-2.2.15 version (Keith O'Hara)

Backwards-incompatible changes:

  • all versions of savePicture(...) now take the filename as first argument
  1. Calico
    1. Updated Spanish language strings (thanks Roberto Carrasco)
    2. Stops robots when stops program
    3. Updated About window to show OS, Gtk, and Runtime details
  2. Languages
    1. Boo
      1. game of life Processing example: added doEvents()
    2. Python
      1. game of life Processing example: added doEvents()
      2. New sample using NPlot
    3. Jigsaw
      1. Scrollbars for Jigsaw palettes (Mark Russo)
      2. game of life Processing example: added doEvents()
      3. New blobs.jig example
      4. Change to dir of filename, on each start of running of program
      5. All Executions of library methods now run in thread, and Jigsaw will update Gui
  3. Modules
    1. Processing
      1. removed unneeded Gtk.Application.Init(), Gtk.Application.Run(), and Gtk.Application.Quit()
    2. Graphics
      1. removed resize of pre-existing windows (for now) because of interaction with scrollbars
      2. new Window.setMode(MODE) method
      3. new Window.isVisible() method
      4. turned all bytes to ints in outward-facing API
      5. rewrote animated gif code
    3. Myro
      1. Add alias setPicSize() to setPictureSize()
      2. Rewrote simulation code
      3. Added turnTo, turnBy to SimScribbler
      4. makeRobot("Type") returns a robot in native type (not cast to a Myro.Robot generic)

and many other fixes and updates. See "svn log -v" for more details.

Calico Version 2.2.15

Released Tuesday March 25, 2013.

Backwards-incompatible changes:

  • Use Window.isRealized() rather than Window.IsRealized
  • requires an initial or, init=True)
  1. Calico
    1. Can drag and drop tabs (editing, shell, output, etc)
    2. All main editing and executing code is now gui-thread-safe
    3. Fixed issues on selecting script and properly setting toolbar controls (start, stop, speedbar, pause, step)
    4. Fixed issues in cancelling programs (sends control+c signal to more-gracefully finish)
    5. Exits without hanging
    6. Updated Spanish translations (thanks Roberto Carrasco)
    7. control+CHAR issues fixed (thanks Roberto Carrasco for report)
  2. Languages
    1. Python
      1. Re-arranged examples
      2. All example programs brought up-to-date
      3. Updates to ai.conx, neural network package
      4. Added unparse for parsing/unparsing Python programs (convert Python to Jigsaw, etc)
    2. Spreadsheet
      1. Can open sheets with large number of columns/rows
  3. Modules
    1. Myro
      1. Calls made gui-thread-safe
      2. show() now requires an initial show(), or show(..., init=True)
    2. Graphics
      1. Calls made gui-thread-safe (except for button, slider, and pixel/color operations)
      2. No longer re-uses windows (causes issues after an abort)
    3. Processing
      1. Examples reorg

Calico Version 2.2.10

Released Wednesday March 20, 2013.

  1. Calico
    1. Rewrote tab management code in main Calico window
    2. Auxiliary window is now inside main Calico Window
    3. Control+Up, Control+Down in Shell concatenates sequential commands together (useful for then pasting into a file)
    4. Selecting Shell properly puts focus in shell command area
    5. control+e now puts you at end of line (beginning of an Emacs mode)
    6. control+g searches for next (without having to have search box open)
    7. changed menu items to use "primary" instead of "control" (should work more intuitively on macs)
    8. Basic Chat now works (register, login, sending messages, blast, /join)
    9. More thread-safe fixes in main Calico
    10. Dialogs return translated text; now works correctly
    11. Tooltips are now translated (manual edits to gtk-gui/Calico.MainWindow.cs generated file)
  2. Languages
    1. Python
      1. New (in languages/Python/modules) from MediaComp
      2. Refined,, and ai.conx libraries
      3. Updated examples
      4. Updated standard library to current CPython 2.7 version
      5. Added example
      6. Rearranged Python Graphics examples
      7. Rearranged Python Processing examples
      8. Fixed case-sensitive library file names
    2. Logo
      1. Updated examples
  3. Modules
    1. Myro
      1. shape.penUp() - now just puts pen up, leaving previously drawn segments (previously would return line segment, and remove it)
      2. shape.penUp(True) - returns line, and removes it from window (old behavior)
      3. New shape.setPenColor(color) - just changes the pen color for new segment
      4. A number of shapes were missing the pen up/down drawing functionality
      5. New inform(message) dialog box
      6. Dot is now Circle with zero radius

Calico Version 2.2.8

Released March 6, 2013, Linux only.

  1. Calico
    1. Fixed re-opening closed files (thanks to Roberto Carrasco for report)
    2. Added all strings for translation
    3. Added and compiled Spanish translation files (thanks Roberto Carrasco)
    4. Added French and Chinese translation files (need human edits)
    5. Renamed "Library" as "Module"
  2. Languages
    1. Python
      1. Ported conx neural network Python (which used numpy) to pure-python ("import ai.conx") (see example)
      2. Fixed example (from Graphviz fixes, below)
      3. Added sympy, symbolic manipulations, calculus functions, and solver
      4. Made highlighting of traced lines more obvious (thanks Laura Blankenship for suggestion)
    2. Images
      1. Added images to examples
      2. Fixed some examples
    3. Jigsaw
      1. Fixed many issues related to windows, and threading (Mark Russo)
      2. Add context menu to main canvas (Mark Russo)
      3. Fixed issues with inset (Mark Russo)
      4. Export to Python now suggests new name based on Jigsaw name
    4. Java
      1. Null pointer exception is now explicit
      2. Rebuilt jar files from module dlls
  3. Modules
    1. Graphics
      1. Fixed Graphviz construction
      2. Fixed a memory leak with text objects
      3. Fixed setBackground color to run in graphics thread (thanks to Roberto Carrasco for report)
      4. Lock world when touching physics values
      5. Moved KeepAbove setting to the GUI thread (thanks Jay Summet for report)
    2. Myro
      1. Fixed Robot.rotate(), Robot.translate() so they are independent and can be blended (thanks to Jay for report)
      2. Fixed Shape.forward() (movement was wrong in x, y) (Roberto Carrasco)
      3. Rewrote all dialog functions to work in and out of graphics thread (Mark Russo)
      4. New simulated robot SimPioneer
      5. New methods for Simulation:
        1. Simulation.setPose(robot-number, x, y, theta)
        2. Simulation.setOption(robot-number, option, value)
      6. New methods for Robot (only implemented on simulated ones):
        1. Robot.setPose(x, y, theta)
    3. Processing
      1. Added default parameters to all function parameters (Mark Russo)

Calico Version 2.2.5

Released Wednesday February 13, 2013, 12:00pm.

  1. Calico
    1. Fixed history search
    2. Handle control+c, control-z properly
    3. added calico.relativePath("../examples/images") for getting path relative to calico.exe
    4. Refinement to --repl and --nographics
    5. New Window control (Keith O'Hara)
  2. Modules
    1. Myro
      1. Added categories for tabs in Jigsaw
      2. Don't add additional robots with repeated calls to init("sim")
      3. Added delay when using joystick() so as not to overwhelm robot connection
    2. Graphics
      1. Fixed issue where canvas would be unrealized
      2. Fixed compound polygon for Physics (thanks Vic Norman!)
      3. Fixed cancel in loop for smoother exits
  3. Languages
    1. Experimental language, Collaborate (Linux only for now)
    2. Experimental language, Images (seeing images; edit images someday)
    3. Python
      1. Chess enhancements: two additional sample players: another randomPlayer, and a static analysis player
    4. Basic
      1. Added CHR$
    5. Jigsaw
      1. Adds Shift-Scroll and Ctrl-Scroll behaviors for scrolling left-right, and zooming. Also fixes a bug that resets global translate when zoom is reset. (Mark Russo)
      2. More progress on new scrolling functionality. Tab stack will now scroll up and down. (Mark Russo)
  4. Installation
    1. True Types included (right-click, open to add)

Calico Version 2.2.3

Released Thursday January 31, 2013, 9:00am for Linux.

  1. Calico
    1. Tabs can be moved from one Notebook to another (Keith O'Hara)
    2. Fixed Windows on top issues, especially on Mac (Keith O'Hara)
    3. New external window for tabs (Keith O'Hara)
    4. Redirect all output to shell, for Mono 3.0 (Keith O'Hara)
  2. Libraries
    1. Graphics
      1. Added Graphics.Window.removeTagged("tag")
  3. Languages
    1. Python
      1. Enhanced version of with graphics
      2. Added raw_input
    2. BrainScrew
      1. new language
    3. Images
      1. new "language", see pictures. Can't edit them (yet)
    4. SQL
      1. Initial code for developing an interface to Sqlite3
    5. Ruby
      1. now contains its standard library
      2. fixed library access issue (set paths appropriately)

Calico Version 2.2.2

Released Tuesday January 29, 2013, 4:00pm.

  1. Calico
    1. CLI Loads languages on demand, if not already active
  2. Libraries
    1. Myro
      1. Fixed Myro.init() with no arguments bug
      2. Fixes to Plot axis (Keith O'Hara)
      3. Added arc(degrees, radius) command. *this does not update position/angle yet* (Keith O'Hara)
      4. moveTo/By handles negative coordinates correctly. (Keith O'Hara)
      5. getAngle()/setAngle() use degrees. getPosition()/setPosition() use millimeters. Those are the default for turnTo()/turnBy()/moveTo()/moveBy()/arcTo()/arcBy() as well. Fixed bug in fluke version helper function. (Keith O'Hara)
      6. Added getForwardness() for robots that support it
  3. Language
    1. Python
      1. move() had wrong args, wrong place
    2. Java
      1. examples: import static Name.*;
      2. New example using Gtk
      3. Added Gtk and Gdk jars

Calico Version 2.2.1

Released Thursday January 24, 2013, 12:00pm.

  1. Calico
    1. Added command-line interface for Calico (by Keith O'Hara):
      1. can be used from inside emacs
      2. use --repl to get console read-eval-print loop
      3. also can use --exec and --nographics
    2. Protection from crash for files with no extensions (Doug Blank)
    3. Fixed "cursor not at end of output" bug (Doug Blank)
    4. new language-based options (restart shell on file run, show stack trace, etc) (Doug Blank)
    5. Right-click in Calico output window allows GOTO on error lines (works for Python and Scheme, so far) (Doug Blank)
  2. Languages
    1. Java
      1. Added DrJava's DynamicJava to Calico (Doug Blank)
      2. Can access Calico's libraries from Java
      3. See Calico Java for more details
      4. new examples: use Gtk graphics directly, use Calico Processing (Doug Blank)
    2. Scheme
      1. Added stack trace for exceptions (they look like Python's) (Doug Blank)
      2. Scheme is 33% faster, in some cases (Doug Blank)
      3. new example: "rolls" dice choose (via suggestion from Thad Blank)
      4. Major fixes: generalized lookup-binding to lookup-variable; tweaked env representation; cleaned up lex address; added make-set, odd?, even?, quotient, remainder, %, cd, current-directory, current-environment; fixed sqrt and abs; set! now handles all types of variables including components; fixed dir; fixed import and load; renamed env to current-environment; fixed length (Jim Marshall)
      5. Fixed modulo, abs, and sqrt
    3. annotate refactor, with fix of continuation, and define-datatype enhancements (Jim Marshall)
    4. Boo
      1. Show errors when running file (Doug Blank)
      2. new example, game of life (Keith O'Hara)
      3. new example, game of life, with types (Doug Blank)
    5. Python
      1. new example, game of life (Keith O'Hara)
  3. Libraries
    1. Myro
      1. Added support for NXT Robot (Doug Blank)
      2. Fixed bug on second init() after a failed init() (Keith O'Hara)
      3. Added ability to upgrade("scribbler") and upgrade("fluke") (Python library) (Keith O'Hara)
      4. Support for older Fluke2 cards (Keith O'Hara)
      5. Added support for fluke2 functions: setPicSize("small | "large"); servo(id, position); getFlukeLog(); enablePanNetworking() (Keith O'Hara)
      6. Fixed getPixel() and setPixel(). Calico no longer crashes when pixel location is outside bounds ob pixbuf. Also, alpha channel now working for all pixel manipulation. (Mark Russo)

Calico Version 2.1.1

Released Thursday November 1, 2012, 9:00am.

  1. Calico
    1. New Gtk libraries (to fix Windows copy out of Calico clipboard bug, etc). Uses 2.22:
  2. Libraries
    1. Myro
      1. \\.\COM issue in Myro on Windows fixed
      2. All dialogs are now non-GUI-blocking (which means you can still cancel, operate Calico IDE). They still wait for input, but they are no longer effectively "modal".
  3. Languages
    1. Added Lua
    2. Scheme
      1. Added String Language Parser system
      2. Added functions: zero? modulo string=? string-length string-ref char=? char-whitespace? char-alphabetic? char-numeric? string->number list->string char? string substring assv memv
      3. Fixed: append, true?, format, car/cdr on improper lists, mu-trace-lambda memq assq abs sqrt vector list->vector
      4. Added => syntax in case
      5. Major refactor of internal annotated forms (Jim Marshall)
      6. Added lexical-address lookup mechanism
      7. Major speed (x2) increase by rearranging a CPS creation

Calico Version 2.1.0

Released Friday October 5, 2012, 1:30pm.

    1. Scheme
      1. Refinements on debugging, tracing, and breakpoint support
      2. Added trace-lambda
      4. Fix to format (which prevented error from working)
      5. Fix to append (which prevented (lambda v v) from working)
      6. Fix to SyntaxMode file to allow better symbol coloring in editor and shell
  1. Calico
    1. Adjustments to allow fast printing without locking up
    2. On Windows, assumes that mono is in Calico\mono for all versions. If you want to use a system-installed mono, change your StartCalico.bat file to use that mono rather than mono\bin\mono.exe

Calico Version 2.0.14

Released Wednesday October 3, 2012, 1:30pm. This version was removed as the adjustment made to allow fast display to screen was taking too long. Please upgrade to 2.1.0.

  1. Languages
    1. Boo
      1. Re-added Boo language (was in Calico1, now also in Calico2) - Boo is similar to Python, but statically-typed (see for more details)
    2. Scheme
      1. Added tests to define-datatype's variant constructors
      2. Adding visual trace, slide speed-control, and break points
  2. Calico
    1. Adjustments to allow fast printing without locking up
  3. New Examples
    1. Scheme example controlling the simulator
    2. Boo example
    3. Example to test Processing font bug from 2.0.11
    4. Python Sprite typo fixes (transparent -> transparency)
    5. Python Sprite demo

Calico Version 2.0.13

Released Tuesday October 2, 2012, 2:50pm.

  1. Languages
    1. Scheme language fixes
      1. Added a number of missing procedures, including: list-ref, assq, memq, string-append, number?
      2. Added define-datatype and cases
      3. Fixes on running transformers from continuation-passing-style to data structure to register machine to C#
      4. Fixed printing to be safe and yet display more than just a few levels deep
      5. Infrastructure changes to allow expression-based tracing and debugging
    2. BASIC - new Calico language (see Calico Basic). Can import Calico libraries.
  2. Libraries
    1. Myro library
      1. Added missing DLLs to Calico/bin so Windows users can play sounds
      2. Simulation fixes (can run simulation after running real robot)
      3. Added:
        1. shape.connect(shape2) - shapes share common center
        2. shape.disconnect(shape2) - shapes no longer share common center
        3. shape.moveShape(dx,dy) - move points relative to center without moving center
        4. shape.moveShapeTo(x,y) - move points to absolute location without moving center
    2. Sprites library
      1. Beginning of new library to do scratch-like projects (see Calico Sprites)
  3. Calico changes/fixes
    1. Calico will reset the engine before running script; set to true by default. To change, menu -> Script -> Options -> "Reset Shell on Run"
    2. Languages are now sorted alphabetically in all menus
    3. No need to restart Calico when activating/deactivating a language
  4. New Examples
    1. Added examples/python/CS/ - add a language to Calico
    2. Added examples/python/CS/ - shows how to use simulation to make your own world
    3. Added examples/python/Sprites/ - shows beginning of Sprites library use

Calico Version 2.0.12

Released Tuesday September 18, 2012, 12:00pm.

  1. Fixed Scheme subtraction with doubles issue (continued).
  2. Added calico.Eval(code, language) for all text languages.
  3. Added ability to create new Calico Languages in local user space
  4. New TextEditor class to handle drag and drops
  5. New buttons for tab placements (horizontal, vertical, and in second window)
  6. Fixed drag and drop files with spaces in them
  7. Property window now shows up when needed (user can't close it)
  8. Processing library fixes: added onMouseClicked, fix text coloring bug
  9. Fixed crash on comment/uncomment in certain circumstances

Calico Version 2.0.10

Released Tuesday September 11, 2012, 9:00am.

  1. Fixed Scheme subtraction with doubles issue.
  2. Added calico.Eval(code, language) for all text languages.

Calico Version 2.0.9

Released Wednesday September 6, 2012, 2:00pm.

  1. Jigsaw loop fix, continued
  2. Windows splash screen on startup
  3. Mac speak fix
  4. Scheme last line if Trim == "", then execute (still not right for all language: should be that there is no text from this point on, eg, second to last line hit enter)

Calico Version 2.0.8

Released on Tuesday September 4, 2012, 8:00am.

Changes from 1670 to 1691 in our Source Code Repository.

  1. Refactored Myro robots to allow drop-in additions; added makeRobot("RobotName", ...)
  2. Jigsaw loop fix
  3. Calico Languages using Python as the defining language fix
  4. Jigsaw fix in text alignment
  5. Major issue in Processing.dll which caused seg fault on repeated use
  6. Spreadsheet language now saves without extra cells
  7. Graphics.dll undraw fixes
  8. New API for simulator (add walls, lights and robots)
  9. All-in-one .zip for Windows (mac and linux under development)
  10. Mac no-longer needs Speak as it comes with Calico

Calico Version 2.0.7

Released on Wednesday August 29, 2012, 3:00pm.

Changes from revision 1577 to 1670 in our Source Code Repository.

  1. All in one ZIP files, no installation needed (Doug Blank)
  2. New Processing library (Mark Russo)
  3. Upgraded Myro to work with Fluke2 (Keith O'Hara)
  4. Fixed Graphics.undraw bug which caused erratic crashes (Doug Blank)
  5. New properties tab now populated (Mark Russo)
  6. Removed Auto Properties (Mark Russo)
  7. No longer crashes on infinite loops in Python scripts (Doug Blank)
  8. Some fixes with variable args in Logo (Doug Blank)
  9. Added import "Name "* form in Logo (Doug Blank)
  10. New button to run with output in separate window
  11. Lots of other bug fixes and enhancements

Calico Version 2.0.4

Released on Wednesday March 28, 2012, 3:00pm.

Changes from revision 1556 to 1576 in our Source Code Repository.

  1. Simulator fixed on Mac (issue with Cairo.Context) (Reported by Keith O'Hara)
  2. Select languages to load at startup time from menu
  3. Icons on toolbar smaller
  4. Added zoom in, zoom out, and default zoom to toolbar
  5. Added Logo, the language
  6. Fixed bug in showing proper title when switching languages
  7. Added ability to define languages in terms of other languages
  8. Added Arduino example and DLLs (see Calico Nifty Projects)
  9. Added "flapping butterfly" to indicate running program (suggested by Jennie Kay)
  10. Logo better integrated with Calico: case sensitive, can load and execute CLR libraries (issues with arity/calling API: need "right" parameters)
  11. Added Logo Syntax highlighting
  12. Fixed alpha issue in Graphics when reading jpg's on Mac/Linux (Windows can't read jpgs) (fixed by Keith O'Hara)

Calico Version 2.0.3

Released on Monday March 19, 2012, 9:00am.

Changes from revision 1536 through 1555 in our Source Code Repository.

  1. Working on Chat-based functionality (script blast, chat, etc)
  2. Drag and drop filenames on Calico window to open
  3. Fixed Local tab to show locally-defined variables
  4. Fixed output window alignment of shell-entered, multi-line scripts
  5. New Python example: searching a Boggle board for a given word
  6. New functionality for Myro.doTogether
  7. New freeze(f, a1, a2, ...) and thaw(freeze(...)) Myro functions
  8. Added a new thread in Calico that updates GUI once per second (allows canceling of tight loops in user code)
  9. Properly turns off Stop button when script crashes
  10. New View -> normal 1:1 option
  11. New property tab
  12. Can Blast Jigsaw scripts
  13. Added Blast functionality from Pyjama
  14. New Chat functionality and pane
  15. Fixed SaveAs (did not work)

Calico Version 2.0.2

Released on Friday March 9, 2012, 1:30pm.

Changes from revision 1513 through 1535 in our Source Code Repository.

  1. New Jigsaw simulated robot example program (Doug Blank)
  2. Myro functions which required time (beep, SimRobot.move, etc) would lock up the GUI when not run in the background. Fixed by looping and updating GUI. (Doug Blank)
  3. Don't save a file if it hasn't been edited (Doug Blank)
  4. Increase maximum audio channels from 8 to 1000 (Doug Blank)
  5. Rebuilt XMPP Chat DLL for CVM (CLR Virtual Machine) version 4 (Doug Blank)
  6. Jigsaw timer is only run when needed (Mark Russo)
  7. Fixed some tracing/breakpoint issues with Python (Doug Blank)
  8. Start of serial port cache (for multi robot programming) (Doug Blank)
  9. ngram example based on SIGCSE 2012 (Doug Blank)
  10. Window in Scrollbars can use full width/height (see example) (Doug Blank)
  11. Fixed strange state if you decided not to overwrite a file (Doug Blank)
  12. Jigsaw auto scrolls canvas only when you get close to edge of window (Doug Blank)
  13. Set Jigsaw-to-Python export format to better match Calico text edit defaults (indent, range) (Doug Blank)
  14. Fix for null filename on Document Save (reported by Bard College students; fix by Doug Blank)

Calico Version 2.0.1

Released Monday March 5, 2012, 10am.

Changes from revision 1512 through 1490 in our Source Code Repository.

  1. Got rid of annoying terminal window on Mac (reported by Laura Blankenship, fix by Doug Blank)
  2. Line Comments are now language-based (;; for scheme, ## for Python, // for F#, etc) (Reported by Keith O'Hara, fix by Doug Blank)
  3. Changed menu View -> Show, to View -> Tabs (Doug Blank)
  4. Protection in doTogether for error in script (Find by Bard College students, fix by Doug Blank)
  5. Partial fix for multiple Jigsaws running and trying to control the Stop/Go controls (Mark Russo)
  6. HidePropertiesWindow on closing of tab (Doug Blank)
  7. Completely removed dependency on Pango in Jigsaw to fix a major memory leak. (Mark Russo)
  8. Myro interactive blob configuration (Keith O'Hara)
  9. Added <= and >= binary operators to Scheme (Jim Marshall)
  10. Scheme now reports error on file load (Doug Blank)
  11. Joystick now rotates in proper direction, Myro.joystick. (Doug Blank)
  12. Graphics: line.getP2 now returns correct point for lines (Doug Blank)
  13. Simulation works correctly; no need for timing hack (Doug Blank)
  14. Only ask to save document if actually dirty; prior it would ask if it had never been saved before and could be empty (Doug Blank)
  15. Fixed Scribbler Simulation (Doug Blank)
  16. Jigsaw slider control refined when moving to zero (eg, stop) (Mark Russo)

Calico Version 2.0.0

Calico 2.0.0 was released on Monday February 27, 2012.

Calico1 was written in Python, and Calico2 is a complete rewrite in C#. Everything is much more stable, and faster. And many parts have been enhanced:

  1. Calico
    • New stepper/debugger
  2. Jigsaw - Scratch-like visual programming language
    • can export to Python
  3. Kinect
  4. Scheme
  5. Graphics
    • New Graph layout - define a graph, and Graphics will layout the nodes and links
  6. Audio
    • New function-based tone generator
    • Play audio files
  7. Myro - robots and more
    • support for new Scribbler2 functionality (arcs, microphone, odometry, beeps during movements, volume control, and more)
  8. Spreadsheet - integrated with languages