Release 5.4 of Berkeley Logo is now available by anonymous FTP or Web. This release is available only for Unix (including MacOS X) and Windows, until I get back to California where my Classic Mac and my DOS machine live. Version 5.3 remains available for Classic Mac and DOS. Berkeley Logo (a/k/a UCBLogo) is FREE SOFTWARE, with source code included. -------------
Logo is the educational programming language best known for its "turtle graphics" but also featuring easy and powerful facilities for computing with words and sentences. Sample projects included with the Berkeley Logo distribution range from a tic-tac-toe game to a Pascal compiler and a Logo implementation of Student, Daniel Bobrow's program that solves algebra word problems.
Berkeley Logo is distributed under the terms of the GNU General Public License: You may redistribute it freely, and you may use it as a base for developing additional free software, but you may not use it as a base for commercial software products. The exact details are included in the distribution, in the file named GPL.
Advantages of Berkeley Logo:
* It's free.
* It comes with source files (in C).
* Logo programs are completely compatible among Unix, PC, and Mac.
Disadvantages of Berkeley Logo:
* It's relatively slow.
* It doesn't do anything fancy about graphics. (One turtle.)
This announcement has four more parts: * How to get Berkeley Logo. * Installation instructions. * Details about this release. * Pointers to other people's Berkeley-Logo-related distributions.
---------------------------------------- HOW TO GET BERKELEY LOGO: ----------------------------------------
FTP to ftp.cs.berkeley.edu and get any of the following files:
pub/ucblogo/ucblogo.tar.gz Unix sources and documentation (gzip format)
pub/ucblogo/ucbwlogosetup.exe Windows version, self-installing, with executable UCBWLOGO.EXE
pub/ucblogo/macosx-ucblogo-Installer.hqx MacOS X version, self-installing, BinHex.
pub/ucblogo/usermanual Just the documentation file.
Be sure to use BINARY transfer mode when retrieving the archive files!
(The filenames above are links to filenames that include the version number, e.g., ucblogo-5.4.tar.gz; either name is okay. Anything other than the current version, if still online, is in the subdirectory pub/ucblogo/old.)
The Mac version is in the form of a BinHex-converted self-extracting StuffIt archive. To install it, just copy to your hard disk, un-BinHex it (this may be done automatically by your file transfer program), and double-click on it.
The Unix version is a gzipped tar file. To install it, copy to your machine, then say gunzip ucblogo.tar tar -xf ucblogo.tar cd ucblogo configure make
The Windows and Mac versions include a SOURCE subdirectory containing the C source files used to compile Berkeley Logo. If you don't want to play with the code, you can delete this directory and all its contents. You can also delete some or all of the contents of the DOCS directory, which has the usermanual in various formats (Postscript, PDF, HTML, INFO, TEXI). The HTML files are particularly huge, if you're looking for something to delete. (In the Unix version, the source files are in the top-level directory of the distribution.)
In the source directory, the file plm is a Program Logic Manual that documents some of the inner mysteries of this interpreter. You should read _Structure and Interpretation of Computer Programs_ before you read plm. Also included is evaluator.ps, a beautiful one-page simplified flowchart of the evaluator to admire while reading plm.
In the Unix version, if you want to save space, you can delete the entire ucblogo directory created by tar once you've done "make install".
Unix version: the makefile compiles with optimization turned off. This is necessary to avoid mysterious garbage collection failures. (NOTE: On my HP 712, for reasons I don't understand, I had to compile the entire interpreter without optimization. But on other platforms, such as PCs running Linux and FreeBSD, it's sufficient merely to un-optimize mem.c. If that works on your machine, you can remove the "-O0" at the end of the CFLAGS line at the beginning of the makefile, after running configure.)
The Windows version, named UCBWLOGO.EXE, requires Windows 95/98/Me/NT/2000/XP or later (not 3.1; sorry). It is distributed as a self-installing setup file.
The Mac installer puts Logo in /usr/bin/logo and puts runtime support files and documentation in /usr/lib/logo. To run Logo, you must start X11, then type "logo" into an xterm window. The installer puts the source files in, by default, /ucblogo-5.4 but that's movable. The installer has an uninstall option as well as a "custom install" to select only the desired components.
---------------------------------------- THIS RELEASE: ----------------------------------------
Fix bug that embedded null characters in print-to-buffer generated strings.
Fix graphics routines that didn't call prepare_to_draw (has different effects on different platforms).
Change the print-to-string feature so that you can OPENWRITE a string, then SETWRITE to and from it repeatedly, then CLOSE it, just like a file, and all output is accumulated correctly.
If you CLOSE the current reader or writer, then the reader or writer is changed to stdin or stdout.
SETEDITOR sets EDITORNAME variable as well as EDITOR.
If a file named startup.lg exists in the initial working directory, it is loaded when Logo starts.
Check for zero arg to MOD or REMAINDER.
(RANDOM 3 8) is equivalent to (RANDOM 6)+3.
Fatal error messages get printed (instead of causing another fatal error).
compare_node() can handle quoted list without crashing.
Fixed bug about procedures defined with DEFINE of literal lists sharing code. (DEFINE now deep-copies its second input.)
An instruction line starting with #! is taken as a comment. This allows a Logo program file to be shell-executable if you put #! /usr/local/bin/logo as its first line. (This only benefits Unix users, but the feature applies to all platforms.)
New operation PRIMITIVES returns the a list containing the names of all primitive procedures, including synonyms created with COPYDEF.
New infix operators <=, >=, and <> and new operations LESSEQUALP, GREATEREQUALP, and NOTEQUALP.
FPUT and LPUT will now accept a word as the second input, provided that the first input is a one-letter word. (This restriction preserves the fact that FPUT and FIRST are opposites.)
TO in the middle of a line gives a correct title line to the resulting procedure. Also, COPYDEF "FOO "TO works.
COPYDEF of a defined procedure generates a correct title line (with the new name instead of the old), and, therefore, no longer buries the new procedure.
ASCII now handles backslashed characters (in particular, the ones returned by READCHAR for control characters) correctly.
The CSLSLOAD command loads a file from the directory containing the _Computer Science Logo Style_ example programs. (Added because the Windows version now starts in the user's Documents directory rather than in the Logo installation directory.) The SETCSLSLOC command can be used to change Logo's idea of where it is.
Fixed a bug about redrawing graphics with consecutive turtle moves with the pen up. (This led to a crash in Windows and a premature end of drawing on all platforms.)
The installer and Logo agree on the registry name HELPFILE for the help file installation directory.
Logo now starts in the user's "My Documents" folder rather than in C:\UCBLOGO and/or wherever the shortcut is found. This should help with users on shared systems prevented from saving by file access restrictions.
The installer now offers the option of making UCBLogo the default application for .lg files, so they can be double-clicked to start Logo.
Fixed a bug in the parsing of command-line arguments that prevented giving Logo a quoted filename to run.
The desktop icon is now installed for all users, like the start menu entry, if the installer runs with Administrator privilege.
Default editor is emacs instead of jove (mainly for the sake of MacOS, whose X11 installation includes emacs but not jove).
'configure' sets up makefile to use gmake if available, else make.
helpfiles/ALL_NAMES is a file with all the procedure and variable names from the user manual, one per line, for use by emacs logo-mode procedure coloring.
New emacs logo-mode version 3.0 with syntax checking.
MacOS X version now has a double-clickable installer that puts the files needed to run Logo in /usr/bin and /usr/lib/logo; source files are by default in /ucblogo-5.4 but can be moved. (Note, Logo itself isn't double-clickable.)
In the Unix tarball, docs files are no longer inside the emacs directory.
---------------------------------------- OTHER UCBLOGO-RELATED DISTRIBUTIONS: ----------------------------------------
MSWLogo is a free port of Berkeley Logo to Microsoft Windows done by George Mills. He has added a lot of Windows-specific capability to the language, so you can do cool multimedia stuff with it. Look in