Changes Since 2.0.1:

* Fixed cut/copy/paste on MacOS 8/9 StarLogo.

* Fix print/type commands to not deadlock the output window.

* MacOS X version now uses Helvetica 12 point font for the Info Window
because it looks nicer than Monaco.

* Fixed double-clicking of project files on MacOS X. The application
now waits til it has finished initializing before attempting to open
the file.

* Don't set the turtle head icon image on Macintosh window title bars.
It's not the proper UI.

* When loading a project on a Mac, make sure no windows overlap the
menu bar.


Changes Since 2.0:

* Fixed file loading bug on Macs caused by an inadvertant leaving-out
of a condition in one if statement. This bug caused a Null Pointer
Exception on loading all projects.

* Sliders now drag properly again.

* New/Edit Monitor dialog box is now big enough to fit all the
controls on MacOS X.

* Fixed a bug re: saving a project with a wizard ptolemy plot that has
never been edited. 

* Modified Turtle and Patch monitors to be better at avoiding
deadlock.


Changes Since 2.0rc1:

* Fixed one-of-turtles-at, one-of-turtles-towards, one-of-breeds-at, 
one-of-breeds-towards run by a turtle asking for a turtle that is not 
on his own patch. It used to return nobody if there was one turtle on 
the other patch. Now it returns that turtle.

* Fixed java.lang.NullPointerException on loading a project by 
double-clicking it. Also related: fixed a bug in resizing the 
PatchCanvas that caused the first problem.

* The observer procedure startup is now always run (if it exists) when
you load a project, even when you double-clicked to open it.

* Made sure that starlogo.jar has all the required classes on Unix and
Other distributions.

* Made sure that StarLogo runs on Mac OS X 10.1 as well as 10.2.

* Fixed some missing documentation.

* Added three new primitives: plot-grid-on, plot-grid-off and
plot-grid?

* Fixed painting on the patches for Mac OS X with hardware accelerated
drawing, MacOS 9, and Solaris. For some reason, on Linux it still 
doesn't draw properly until you release the mouse button.

* If you plot to a non-existent plot, you now get an error message 
about it. Previously it just ignored you.

* Fixed StarLogo on international versions of Windows. We accidentally
omitted a file from the Java runtime.

* Linux StarLogo was excessively slow. Now it's less slow. When 
StarLogo is running really slowly, suspect the bandwidth of your X11 
connection. Especially be suspicious of running StarLogo over an 
SSH-encrypted X11 tunnel.

* Plot window menus didn't show up on Linux. This is fixed.

* Finished StarLogo 2.0 for MacOS 8/9.

* Renamed set-bar-width primitive to setplot-bar-width.

* Made the trash icons on Windows 2000 and Windows XP prettier.

* If you made a shape non-rotatable and then made it rotatable, it 
scribbled all over itself and made a mess. Now it behaves properly.

* Make sure to compile StarLogo code after anything that could change
a shape name.

* Fixed plot widgets with wizards if you run a turtle command before 
you edit the widget. They used to give a compile error if there was no
instruction in the plot widget.

* You can now click on the slider track for the Speed Slider and the 
Patch Size Slider.

* Fixed up how we flush text to the command center when using "show". 
It should be more faster and more robust.


Features Added Since 1.2.2:

* Added shapes feature for turtles.  There is a shape editor that allows
you to create new shapes, and a shape chooser that allows you to
choose individual shapes for your turtles.  Turtle shape can also be
set using the setshape command.  Shapes appear at patch sizes 8, 16,
and 32.

* Added templates (not compatible with Mac OS 9) that allow users to
easily begin creating models using a "wizard".

* Added many new kinds of plots (histograms, bar charts, x-y plots,
scatter plots), all of which can be placed on the StarLogo interface
and created with simple point and click procedures.

* Added a legend widget that allows the user to define what specific
colors or shapes represent.

* Removed the MS-DOS Windows that pops up when you run StarLogo in
Microsoft Windows.

* Support more of Resnick's TT&TJ StarLogo syntax, including
turtles-have, patches-have, added dash between "set" and the variable
name (e.g. turtles-have [foo-bar] set-foo-bar 5) but only if the
variable itself has a dash in it.

* Increased StarLogo's maximum memory size to 256 MB. It won't take 256
MB initially, but if need be, it will grow to that size. In Microsoft
Windows, the maximum size will be capped at the amount of free
physical RAM or 256 MB, whichever is smaller (with a minimum of 32 MB
allocated to StarLogo).

* Scroll-wheel mice should be supported in Java 1.4, thus being
supported by StarLogo as we install it on Microsoft Windows. If you
have a different platform that comes with its own Java, scroll-wheel
mouse support must be added by your platform vender's Java, not by us.

* Support for native MacOSX Java application.

* In Microsoft Windows, changed the default folder that File/Open...
and File/Save menu items go to the Users's My Documents folder.

* Swing is now required (and included) on all supported StarLogo
platforms. This should fix problems where the control center resize
panel bar was not working on MacOS 9.

* Added tooltips. Users can add their own tooltips to their buttons,
sliders, monitors, text boxes and legends.

* Added cut-copy-paste support in the Interface window for buttons,
sliders, monitors, text boxes, legends and plot widgets.

* We no longer run the compiler every time after you click out of the
procedures page. We now run it on-demand, the first time you perform
an action that requires compiled code after making a modification to
the procedures pane, a button, slider or monitor.

* You can now only resize the patches to sizes 1, 2, 3, 4, 5, 6, 7, 8,
16, and 32. Shapes only show up in sizes 8, 16 and 32.

* Added code template generation feature to make it easier to begin
certain kinds of StarLogo projects without training in the StarLogo
programming language.

* Added a speed-control slider to enable you to control the speed of
StarLogo simulations. Believe it or not, sometimes StarLogo runs too
fast. With this slider you can slow it down and even pause it.

* Can now save the patches/turtles as a GIF (without the interface part
of the window).

* Added a display in the color bar to show you what color is currently
selected. You can also type in your own StarLogo expression (that
evaluates to a number between 0 and 140 (larger numbers will be
rounded)) to select the perfect color.

* Added a status bar to the main Interface window to show you what patch
your cursor is over. Also lets you see the size of a widget as you
resize it.

* StarLogo now saves a backup project every three minutes and deletes it
when you manually save your project. Think of this as insurance in
case StarLogo crashes on you. When StarLogo starts up and tries to
load a project that has a backup, it will let you choose which version
to keep, the backup or the most recently saved version of the project.

* Put the StarLogo project's name on the Control Center window so you
can tell which one is which if you have StarLogo running twice (You
can only run StarLogo twice on Windows and Unix).

* Added a trash can to the user interface to make it really obvious how
to delete a widget. Drag it to the trash. Note: the trash deletes the
widget immediately. There is no undo.

* Removed the Stop All button from the Control Center and replaced it
with a Stop sign button in the Interface window. When your project is
running, you tend to look at the Interface window, not the Control
Center. And a button with words was less obvious to click on than a
picture of a stop sign.

* Removed the Clear Graphics button from the Control Center. No one ever
touched it. And once people started painting things on the patch
canvas, they didn't want to casually clear their painting with one
click.

* Added a Snap to Grid feature in the Interface window.

* Much of StarLogo has Spanish support. We'll release a spanish-language
version of StarLogo soon.

* You can now import pictures (JPG, GIF and PNG) without having
Quicktime installed. If you have Quicktime installed (and StarLogo can
tell) it'll use it instead, for loading pictures, because Quicktime
supports more image formats than we do.

* You can now save the graphing window as a GIF.

* StarLogo can now print any of its windows.

* Paint tools are now always visible instead of hidden behind a toolbar
button.

* Added Show Spaces menu item so you can see little squares between
words in the procedures pane. This makes it easier for kids to copy
code.

* The command center now displays what you type in bold, and what
StarLogo returns in plain text. It's prettier, no?

* The default patch size is now 8x8, and there are 51x51 patches.

* You can now turn off the gray border around text widgets.

* Note: partner and partners may only be used textually within a grab
statement. A procedure called from within grab does not have access to
partner or partners.

* If you used plot commands in your StarLogo 1.x project and load it
into StarLogo 2.0, you'll get a new plot widget created in your
interface. This is where the plot commands will go. You will not be
able to delete this plot widget (unless you remove all the plot
commands from your code).

* To push a button from code, you now have to say start<buttonname>
instead of <buttonname> in order to avoid name conflicts by users
naming the button the same as a procedure.

 


New Commands Added Since 1.2.2:

* asin, acos 
alive?, alive?-of 
ask-turtles-with, ask-patches-with, ask-frogs-with 
plotxy 
clear-plots 
log 
dolist, dotimes 
sort-num-list, average-of-list, max-of-list, median-of-list,  min-of-list,
    mode-of-list, sdev-of-list, variance-of-list 
average-of-patches, average-of-turtles, median-of-patches,  median-of-turtles
    mode-of-patches, mode-of-turtles, sdev-of-patches, sdev-of-turtles,
    variance-of-patches, variance-of-turtles 
sum-of-patches-with, min-of-patches-with, max-of-patches-with,
    average-of-patches-with, median-of-patches-with, mode-of-patches-with,
    variance-of-patches-with, sdev-of-patches-with 
sum-of-turtles-with, min-of-turtles-with, max-of-turtles-with,
    average-of-turtles-with, median-of-turtles-with, mode-of-turtles-with,
    variance-of-turtles-with, sdev-of-turtles-with 
print-status 
insert, remove, remove-element, reverse 
save-next-version 
shape, shape-at, shape-towards 
setshape, setshape-of, setshape-at, setshape-towards 
who-max-of-frogs, who-max-of-frogs-with, who-max-of-turtles,
    who-max-of-turtles-with, who-min-of-frogs, who-min-of-frogs-with,
    who-min-of-turtles, who-min-of-turtles-with

 


Bugs Fixed Since 1.2.2:

* Fixed parsing of statements similar to: sum-of-turtles [xcor] /
count-turtles so that you don't need parens: (sum-of-turtles [xcor]) /
count-turtles.

* If a turtle dies while being asked to do something (inside of an
ask-turtles), he will stop obeying the commands, but will stay alive
(in a zombie state) long enough to respond to all queries about his
state (e.g. xcor, ycor, etc). Once the ask-turtles is finished, the
zombie turtle will then die.

* A turtle that dies while grabbing other turtles now lets go before
dying.

* Turtles shouldn't show up outside the patch grid anymore (sometimes
they would appear one patch outside).

* Compiler now reports a bug if you forget to put a space between your
operators (+, -, *, /, etc) inside of a parenthesized expression (e.g.
set foo (3 +4) will now report an error that +4 isn't understood).
Previously, the erroneous operator and whatever followed it were
ignored and not included in the compiled code.

* max-of-turtles now returns the proper answer if the answer is
negative.

* Sometimes when StarLogo saved/loaded a project, all of the buttons got
the same id number (invisible to the user) causing all but one button
to stop working. This is fixed.

* Fixed a bug in diffuse4 that caused it to hang.

* The case primitive now takes up MUCH less memory (a constant amount)  on the stack, so you can have enormous (or even small) case statements  without overflowing the turtle's stack memory.

* Widgets that need to draw black actually draw in a really really dark
gray now, so that if you drag them ontop of a black patch grid,
they're still visible.

* When an enumerated variable (e.g. turtles-own [temp [hot cold warm]])
is the same name as some other already defined thing, the compiler now
reports an error.

* setplot-xrange and setplot-yrange arguments were interpreted in the
wrong order.

* When you drop the max or raise the min value of a slider, the current
value, if out of range, will now peg itself to the min or max,
whichever is closer.

* Sometimes when you compiled, the cursor would remain an hourglass. We
think this one is licked.

* Sometimes after you compiled by clicking on the Interface window onto
a button, the cursor would get stuck as a Move cursor. We think this
one is licked, too.

* Sometimes the keyboard focus would be lost from the interface window,
making the keyboard command 'delete' to delete a widget not work
right.  This always works now.

* All the following commands now exclude the caller turtle from the
calculation: sum-of-turtles, sum-of-breeds, list-of-turtles,
list-of-breeds, one-of-turtles, one-of-breeds, min-of-turtles,
max-of-turtles, min-of-breeds, max-of-breeds, average-of-turtles,
average-of-breeds, variance-of-turtles, variance-of-breeds,
median-of-turtles, median-of-breeds, list-of-turtles-with,
list-of-breeds-with, min-of-turtles-with, min-of-breeds-with,
max-of-turtles-with, max-of-breeds-with, average-of-turtles-with,
average-of-breeds-with, variance-of-turtles-with,
variance-of-breeds-with, median-of-turtles-with,
median-of-breeds-with.  All the other variants of these commands were
already correct.

* Note: count-turtles, count-turtles-with, count-breeds,
count-breeds-with will not exclude the calling turtle. That's so that
whenever a turtle asks for this value, he gets the same value as all
other turtles.

* When we save the output window and the info window, they now save with
Windows linefeeds, rather than always using a \n.

* Fixed memory leak in count-turtles-with.

* one-of-{turtles, breeds}-{here, at, towards} now returns a random
turtle who is not yourself, rather than just the topmost turtle on
that patch.

* You can now change the size of of the patch grid while the turtles are
moving without causing a crash.

* If you ask a turtle to do something, but that turtle doesn't exist,
StarLogo used to freeze up. That's fixed.

* When you invoke New Project from the menu, it now creates 100 turtles,
just like starting the StarLogo application.

* If you load a project that causes the interface window to become
larger than your screen, we shrink it to fit.

* We now use a better oval drawing algorithm in the paint tools.




Bugs Remaining in 2.0:

Windows 2000 and XP introduced a new kind of mouse pointer feature
called a pointer shadow. When you have this turned on (which it is by
default) it wreaks havoc with graphical Java applications. It causes
them to draw much more slowly and makes the cursor flicker on and off
really fast. To get much better graphics performance in StarLogo, go
to your Mouse control panel, and turn Pointer Shadows off.

Code templates don't work on MacOS 9 or X. The code doesn't properly
interpret the difference between Windows and Mac/Unix line feeds.

Don't use the backtick (`) character in your StarLogo code or in the
Info window. We don't deal with it well.

On Windows 95, you see the Windows 2000 trash can, rather than the
Windows 95 trash can. On Unix systems you always see the Windows 2000
trash can, rather than the ones native to KDE or Gnome or whatever
desktop manager you are using.

The turtle in the about box has a strange smile.

Many dialog boxes aren't aesthetically pleasing. We'll work on it.
Java (AWT and Swing) sure doesn't make this easy.

MacOS X does not recognize file type and creator codes any more.
StarLogo has been changed to open any type of file, but to be safe, on
MacOS X we save project with a .slogo ending (and no creator/type
code). If you have saved a project in MacOS X and try to use it in
MacOS 9/Classic it will not have a proper creator/type code. You'll
need to add a creator code of 'StrL' and a type code of 'TEXT' to be
able to load it.

Double-clicking on a project file in MacOS X will properly launch
StarLogo, but will not open the project. This is a bug in Java in
MacOS X and as of MacOS X 10.2, has not been resolved.

Still no 3-D holographic cerebral interface. 
