Release Notes for Version 4.64

Help Contents Release Notes Release Notes for Version 4.64
Buglist for version 4.65 Berkeley Logo User Manual

Release Notes for Version 4.64

This is a major rewrite of the core of UCBLogo including the garbage collector, now with typesafe C++ classes, many new enums, templates for GC debugging and with a speed gain of about 20-40 times :-))) Top speed is better than 310 CPU clock cycles per logo instruction, which is not too bad for an interpreter. This was possible by the introduction of stacks and so the avoidance of new constructors during the runtime, which charged the GC too much.

The command line is now a RichEdit control with all its advantages. CTRL-ENTER inserts a new line, ENTER executes the line. There is no prompt any more (except some errors when pausing), because every line should be executable. The error "You don`t say what to do with" now is removed in favour of the result with the comment ;-) so you can make fast computations by hand if you need them. Line continuations ~ are not needed any more.

e calls the editor (write the following settings to your autoexec.bat or into your system environment on Windows XP:
set AEDITOR=C:\Windows\Notepad
set ALOGOLIB=C:\aUCBLogo\Lib
set ALOGOHELP=C:\aUCBLogo\Help).

h [command] opens a web browser with the help page for that command. You will have to change the directories in h.lg for correct operation.

A bit of new syntax has been introduced to make unquoted variable assignments and colonless variables possible, like

a_variable=some_other_var
b=[1 2 3]
c=3.14
d+=pi

Equality can be checked with ==, as in

show true==false
false

A variable now has higher priority than a procedure of the same name.

Also some new primitives are included:

repeatCount, ShellSpawn, traced, setCaseIgnored, CaseIgnoredP,

Matrix, setMatrix, TurtleMatrix, TM, setTurtleMatrix, setTM, IdentityMatrix, IDM, setIdentityMatrix, setIDM, Pixel, setPixel, Line, movePixel, moveLine, fillRect, fill, fillEllipse, setFC,setFloodColor, FloodColor, RGB, reRGB, HSB, addColors, savePicture, savePic, loadPicture, loadPic, savePostScript, savePS,

CharP, intP, floatP, complexP, readCharExt,rCE, rotate, ArrayToList, ListToArray, merge, mergePairs, toListList, mergeSort, _setButFirst, PropertyList, getProperty, putProperty, removeProperty,

Faculty, primeP, factorize, =, lessEqualP,greaterEqualP, <=, >=, min, max, Norm, maxNorm, resize, rnd, cross, invertMatrix, trunc, Tan, mod, ^, radTan, abs, xCopy, xAdd, xSub, xMul, xDiv, xMod, +=, -=, *=, /=,

Arity, Primitives, PropertyLists, printOut, printOutTitles, eraseAll, eraseProcedures, eraseNames, erasePropertyLists,

timeFine, timeMilli, TimeU, TimeURes, TimerFreq, time, MIPS, Tone, playWave, waitMS,

setTextFont, insertMode, overwriteMode, setPrintPrecision

LabelSize, setLabelSize, setLabelFont, setLabelWeight, setLabelAlign.

PrintSize, SetPrintSize, saveScreenBMP, saveBMP, setUpdateGraph, updateGraph, updateVars, Calls, updateCalls, refreshP, dispatchMessages, BitCopy, BitPaste, BitPasteT, scroll, scrollCalibrate, scrollCal

Multiple turtles: Turtle, newTurtle, setTurtle

3D: perspective, unperspective, setEye, leftRoll,lR, rightRoll,rr, upPitch,uP, downPitch,down, setZ, setXYZ, setPosXYZ, _setPosXYZ, setSpherePos, setCylinderPos, xCor, yCor, zCor, PosXYZ, setRoll, setPitch, setOrientation, Roll, Pitch, Orientation, towards, towardsXYZ, Distance, DistanceXYZ.

And some functions have been extended, especially the math functions, which can now take nested lists and arrays and complex numbers like

{[1 2] 3.14 {4 5 [6 7]}}+{[1 2] 3.14 {4 5 [6 7]}}
{[2 4] 6.28 	{8 10 [12 14]}
}  ;-)

(1+2i)*(2+4i)
-6+8i  ;-)

1+2e3i
1+2000i  ;-)

exp pi*2i
-1+1.22460635382238e-016i  ;-)

unary functions: BitNot, random, Int, round, truncate, Sin, Cos, Tan, radSin, radCos, radTan, Sqr, Sqrt, exp, LN, Log10, real, imag, conjugate

binary functions: +, -, *, /, Remainder, aShift, lShift, BitOr, BitAnd, BitXOr, Power, ArcTan, radArcTan

Shell acts now more like in unix, it gives back the output in form of a list, but it has still some bugs.

A syntax highlighting scheme for the free Proton Editor is included (aUCBLogo.sch), another editor scheme is for the Crimson editor (crimson.zip).

For questions concerning this special version of good old UCBLogo you may ask Andreas Micheler.

Buglist for version 4.65 Berkeley Logo User Manual