ACSLogo Release notes

Home Features Release Notes Examples

Release (December 2020)


This version should get rid of the security warnings when starting the program — so it should work OK under macOS Mojave (10.14), Catalina (10.15), and Big Sur (11).


ACSLogo doesn’t work well with macOS Dark Mode. You sometimes end up with dark text on a dark background.

Alan Smith
London, UK
December 2020

Release (July 2020)


Fixes a problem where short commands wouldn’t work if the macOS language is set to a language other than English.


ACSLogo doesn’t work well with macOS Dark Mode. You sometimes end up with dark text on a dark background.

Alan Smith
London, UK
July 2020

Release 1.6 (October 2019)

This release is required for macOS Catalina (10.15) and above.


Due to changes in macOS Catalina, ACSLogo had to be re-compiled as a 64-bit program instead of a 32-bit one. This has had some side-effects — the musical commands, Play and Instruments, no longer work because of Apple’s removal of Quicktime (which was 32-bit).

On the positive side, things should run a little more quickly, and should be a bit more robust when memory usage is high.

Alan Smith
London, UK
May 2019

Release 1.5.1 (May 2011)

This release requires Leopard (OS X 10.5) or above.


On-screen graphics have been brought into line with the graphics produced when exporting to PDF. This means you get proper ‘corners’ when drawing a connected series of lines, and most of the performance problems which emerged with Leopard should have gone.

New functions have been added - Wrap returns whether wrap is on or off , Shadow returns the shadow state, ColourAtPoint returns the colour of the pixel at the supplied co-ordinate.

You can now export graphics as JPEGs and PNGs as well as TIFFs and a few other types..

Bug Fixes

The Towards function sometimes gave the wrong angle; this should be fixed. A crash which occurred when opening a tutorial that is already open should be fixed.

Alan Smith
Norwich, UK
May 2011

Release 1.5 (September 2010)

This release requires Leopard (OS X 10.5) or above.


Commands can now be executed remotely via Applescript. For instance, this can be entered in the Applescript Editor utility:

		tell application "ACSLogo"
		tell document 1
		execute command "Forward 100"
		end tell
		end tell

This allows ACSLogo to be controlled from another machine (see the user guide for details). The graphics window can be put into fullscreen mode from a menu item and via the SetFullScreen command. This is only useful when controlling remotely, as you can’t type in commands in this mode. It allows a sort of ‘Kiosk mode’. The only way out of this mode on the local machine from the keyboard is Command-0 (zero).

Added the capability to use a function key to execute commands in addition to Command-Return. This is set from a pop-up menu in the Preferences Editing pane, Secondary Execute Key.

Added hyperbolic functions sinh, cosh, tanh, arsinh, arcosh, artanh, and trigonometric function atan2.

Added a SetWrap command which is the equivalent of turning wrap on or off in preferences. It takes a single argument, true or false.

Added a DrawImage command to allow images to be drawn from a file.

Added command SetClipPath which limits drawing to a given path.

Bug Fixes

Text wasn't getting output when exporting to PDF - this should be fixed.

Outputting shadows to PDFs did not always work.

The random function would crash when given a parameter less than 1. This should be fixed.

Fixed a crash in Snow Leopard related to font commands.

Alan Smith
Norwich, UK
September 2010

Release 1.4f (January 2009)

This release requires Tiger (OS X 10.4) or above.


Added the ability to vary the turtle’s speed - normally when the turtle moves forward, the line is drawn immediately and the turtle is redrawn at the end of the line. Now, using a slider in the Preferences window to reduce the turtle speed, the turtle will move along the line drawing as it goes. Similarly,as the turtle rotates, the rotation can be observed. This works for Forward, Back, Left, and Right.

Added a Wrap checkbox in the Preferences window. When this is checked, the turtle cannot move outside the canvas - if it moves to the edge of the canvas, it then comes in the opposite side: so if it moves out of the top, it comes in at the bottom.

Added the capability to make Return execute a command instead of Command-Return. This makes it more similar to command-line Logos. This is controlled by checkbox Return Executes Command in the Preferences window. If you have this checked and just want to insert a carriage-return, press Ctrl-Return.

Added an Open After Export checkbox to most of the export save panels so that the file will be opened after saving. So, for instance, checking the box when exporting a PDF will cause it to be opened in Preview or Acrobat Reader, or whatever default application you have for PDFs. Similar functionality has been added to movie creation - when selecting the menu item Finish Movie, hold down the Option (Alt) key, and it will be opened after saving.

Added command Pathlength which gives the length of a path.

Added a couple of items to the Help menu - Website takes you to the ACSLogo website; Email opens an email to send to me for feedback.

I've added localisation for the menu and dialog changes to varying degrees - if you see anything that hasn’t been localised properly, please let me know. The mapping from English commands to French and German commands is here.

A User Guide accompanies this release as a separate download. It includes material from the tutorials and some new stuff. I should be adding a lot more to it over the coming months.

Bug Fixes

Sometimes when using Play or Wait, the screen would not update properly - this should now be fixed.

Fixed a bug in GrType where it would crash if given an empty string as input.

Fixed a bug where a string with an escape character (\) would include the initial double-quote as part of the string.

If you have any bug reports or comments, please send them to me using Email from the Help menu.

Alan Smith
Norwich, UK
January 2009

Release 1.4e (March 2008)

This release requires Tiger (OS X 10.4) or above.

This is a universal binary version - it will run natively on PowerPC or Intel architectures.

Bug Fixes

Some bugs in Play fixed.

Random will now give a different set of numbers after each start-up of the program.

If a string passed to GraphicsType had a linefeed in it, GraphicsType would move up, instead of down. It now linefeeds down as you would expect. Textbox has been changed to take linefeeds into account.

GraphicsType had a problem with ligatures, printing out a small box shape. This has been fixed.

Fill was not stopping at boundaries - this should be fixed.

Alan Smith
Norwich, UK
March 2008

Release 1.4d (April 2007)

This release requires Tiger (OS X 10.4).

This is a universal binary version - it will run natively on PowerPC or Intel architectures.


Added commands OpenTextRead, OpenTextWrite, & OpenTextAppend to handle reading and writing to Unicode files.

Added EOF? to test whether the end of the input file has been reached. Added export commands which do the same as commands in the main menu - ExportEPS, ExportPDF, ExportTIFF. These allow images to be created and saved in 'batch' mode.

SetCanvasSize added to allow change of window size from a command. See help for details on these commands.

Bug Fixes

A lot of display bugs when writing to PDF have been fixed.

Filling a disk when using FPRINT or FSHOW will now raise an alert rather than crash the program.

Member? now gives the correct result for strings.

A hang during tracing should now be fixed.

Alan Smith
Norwich, UK
April 2007

Release 1.4c (March 2006)

This release requires Tiger (OS X 10.4).

This is a universal binary version - it will run natively on PowerPC or Intel architectures.


Added commands Name?, Catch, Throw, Proplist, Putprop, Getprop, Remprop, and commands to read what the mouse is doing - Button?, Mouse, GetMouseMoved, GetMouseClick, GetMouseChange. See help for details on these commands.

Bug Fixes

Page setup didn't have any effect on printing - this should now work.

Abort (Command-period) didn't work on very tightly recursive procedures - this should now be OK.

After doing a lot of tracing, ACSLogo would fail with an obscure exception - this shouldn't happen now, but tracing might be a bit slower.

The Output command would return 'unexpected object' if it wasn't the last thing in a procedure. This has been fixed.

Alan Smith
Norwich, UK
March 2006

Release 1.4b (March 2005)

This release requires Panther (OS X 10.3).


The main changes in this release are to do with localisation - customising the program for use with non-English languages. In previous versions, it's been possible for anyone to localise the user interface - dialogs, menus, etc. - for a different language by editing the program resources (this is a general OS X feature and is not specific to ACSLogo). Localisation support has now been extended by allowing anyone to substitute their own set of commands for the provided English ones without any program changes. Full instructions on how to do this are provided in ACSLogo Localisation.

Command localisation has been done for French and German but is switched off by default. To activate it, go to the Localisation tab in the Preferences window and check the switch. A full list of ACSLogo commands and their French and German equivalents can be found in the ACSLogo Command Table.

Localisation of menus has been done for Spanish.

Bug Fixes

Help didn't open properly for some people. Hopefully this has been solved.

Word wrap in the main window didn't seem to work properly, and sometimes the text didn't update properly. I think this should be OK now.

The French and German Info windows didn't update when opened. This has been fixed.


Added a SetLineDash command which sets a dash pattern for subsequent line drawing. See the help for full details.

Unicode encoding is preserved for strings passed to the interpreter, so accented characters put into lists or strings or passed to commands such as GraphicsType will retain their accents.

Exporting EPSes and PDFs - exporting EPSes and PDFs has been possible in previous releases from the print dialog (as for all OS X applications), but this is in bitmap format. By choosing PDF or EPS from the Export submenu (in the File menu) you can export the picture as a vector-based file which can then be imported into vector-based illustration programs such as Adobe Illustrator.

Alan Smith
Norwich, UK
March 2005

Release 1.4 (January 2004)

Please note that this release requires Panther (OS X 10.3).

Bug Fixes

Fixed a crash which would occur when setting the font to one which didn't exist or had some sort of problem.

Fixed a failure to update the graphics window correctly after a SetYPos.


Increased speed of drawing.

Added some extra turtle images which you choose between in the Preferences Window. Also the ability to drag in your own image to use as a turtle (the image should be a TIFF with an alpha channel to act as a mask, although other image types will work).

Added a SetShadow command which adds a drop shadow to all subsequent drawing.

The Say command will speak its parameter (a string or list).

The Play command plays musical notes.

Added and changed some path statements: the StrokePath command is now called StrokeCurrentPath. FillPath is now FillCurrentPath. This is because StrokePath now takes a list parameter containing the path to stroke. Similarly, FillPath takes a list parameter. SetCurrentPath sets the current path to its list parameter, while CurrentPath returns the current path as a list.

Added the ability to include comments in procedures by preceding the comment with a double-slash (//).

Added a simple auto-indent when editing procedures.

Added Undo to the Preferences window.

Added the standard Find commands to the Edit menu.

Alan Smith
Norwich, UK
January 2004

Release 1.3f (November 2003)

This is a fairly minor release containing a few bug fixes and some new commands to do with fonts.

Bug Fixes

If a Repeat statement had a syntax error, the program used to crash trying to report it.

SetBackground n, where n was the number of defined colours, would crash the program.

When comparing numbers extracted from a list, they would be compared as strings rather than numbers.

TextBox would intermittently crash the program. In addition, the x and y co-ordinates returned were window co-ordinates rather than turtle co-ordinates.

Executing an empty procedure would crash the program.

Closing, then re-opening the graphics window would cause the window not to be updated properly.

New commands:

These are all to do with fonts.

FontFace, Font - return the name of the current font.

FontFamily - return the name of the current font's family.

FontFaces, Fonts - return the names of all available fonts.

FontFamilies - return the names of all available font families.

SetFontFace, SetFont - Set the current font.

SetFontFamily - Set the current font family.

SetFontTraits - Set the traits of the font (such as bold and italic).

Alan Smith
Norwich, UK
November 2003

Release 1.3 (June 2003)

Graphics Commands

New commands:

Arc draws arcs and circles.

SetTypeSize sets the size of type drawn with GraphicsType.

StrokePath allows you to stroke text, i.e., outline text.

TextBox returns a rectangle describing the 'size' of the text.

File Commands

New commands:

Commands to open, close, read, write, files.

Commands to set current directory, list current directory.

Miscellaneous Commands

New commands Date and Time.


Quicktime movies can be created by taking a sequence of snapshots of the graphics window.


Many tutorials have been added to the help menu.

You can look up a command in help by command-double-clicking on it in the main text window.

Procedure Window Changes

The text view in the Procedures window now demonstrates a certain amount of syntax highlighting - brackets, numbers, and operators are in various colours. This behaviour can be turned off in the preferences dialogue.

Procedures can be dragged from the Procedures window of one document and dropped into the Procedures window of another. Procedures within one procedures window can be reordered by dragging.

Right-clicking in the procedures table-view brings up a context-sensitive edit menu (cut, paste, etc).


A preferences window has been added. The turtle attributes (transparency, size, etc.) have been moved into this window and so are now global across documents.

The preferences window also includes attributes for editing in the Procedures window. By default, editing in the procedures window is in a fixed-pitch font and has syntax highlighting. These can be changed.

Bug Fixes

Fixed a crash when using Fillin.

Improved accuracy of SVG paths. Previously was using integers rather than floats. Inaccuracy was obvious under high magnification.

Alan Smith
Norwich, UK
June 2003

Release 1.2 (Mar 2002)

Bug Fixes

A bug where procedures called recursively were not getting called properly has been fixed.


If you hold down the Alt key over the graphics window, it changes to a magnifying glass. Click to double the magnification of the window, shift-click to demagnify. You can also drag a rectangle to define the region to be magnified, or double-click to set the magnification back to 100%.

Info Window

The info window, if displayed, shows the state of the turtle, colours chosen, and mouse pointer position. You can click on the foreground and background colours to change them using the colour picker.


You can paint with transparent colours. SetRGB can take as input a four-member list as well as a three-member list. The fourth member, if present, is opacity - 1.0 means completely opaque, 0.0 means completely transparent.

Trace Window

If the trace window is displayed, each function and procedure call is written to the window. This can produce a lot of output, so don't use it unless you need to debug a procedure.


If the trace window is displayed, updating of the graphics window sticks until you click on it.

Occasional updating problems with the info window.

Release 1.1 (Jan 2002)


A number of functions/primitives which did not work at all or did the wrong thing have been fixed.


The Graphicstype function now takes a note of the turtle heading, and will display text at the appropriate angle. Font characteristics for Graphicstype can now be set using the normal font menu. The graphics window needs to be fromtmost for this to take effect.

A new function, Fillpath, has been introduced. This addresses some of the drawbacks of the other fill methods. It fills the path (polygon) made by the turtle since the last pen down. This fill is a lot quicker and looks a lot better than the other fill methods.


As well as bitmap graphics (TIFFs), Scalable Vector Graphics (SVGs) can be exported. These are an emerging web standard, but you need a plug-in to view them as the current browsers can't read them. The importance of them is that,unlike bitmaps, they can be magnified without loss of quality. For a simple picture, they will take up less space than a bitmap, but for a very complex path, they will take up a lot more space. Note that pixel-type operations such as fill, fillin and dot do not get exported. Forward, back and fillpath do. For more information on SVGs, see SVG Links and SVG Books.

The Export text menu command will save all of the main text window, together with all procedure text, in a plain text file.


You can now print the currently selected text in the main window rather than the whole document using the Print Selection menu item.

You can print procedures - either the whole lot, or selected ones.


I've completely changed the way this works - hopefully it's a change for the better. The procedure window now uses a table view rather then a pop-up menu to select the procedure. This allows you to select multiple procedures for, say, deleting or printing. Undo/redo should work for most actions.


Windows for saved documents, when reopened, should open in the last saved position.






Alan Smith
Norwich, UK
January 2002