Starting with tag: [TAG StablePoint-0.3.5.3 The Slate Team **20060201213801] [Bug-fix for PositionableStream upToAll:. Brian T. Rice **20060202045710] [Further fixed PositionableStream #upToAll: to use whileFalse: and peek: vs. loop and next:, fixing a further bug and cleaning it up. Brian T. Rice **20060202051304] [Added a Portfile for DarwinPorts. Brian Templeton **20060201080316] [Added support for embedding the image into the VM executable in boot.c. Brian T. Rice **20060203042915] [Moved the Portfile to pkg/. Brian T. Rice **20060202232000] [Fixes for starting Slate in emacs. Brian T. Rice **20060204004047] [Added a basic NullSoft installer configuration for Windows, already tested. Brian T. Rice **20060209154257] [Changed the bootstrap kernel image output name to kernel.endianness.wordsize.image. Brian T. Rice **20060209205817] [Updated INSTALL instructions for the new kernel image naming conventions. Brian T. Rice **20060209222830] [Adjusted the slateMain local declarations for portability. Brian T. Rice **20060209234919] [Bug-fix for ExternalLibrary loading error-handling. Brian T. Rice **20060210173240] [Small Makefile fixes. Brian T. Rice **20060210004018] [Re-factored ifCompletes:/unlessCompletes: in terms of an ifTrue:ifFalse:-like ifCompletes:otherwise: setup. This also fixes ifCompletes:. Brian T. Rice **20060210174159] [Extracted Console/DebugConsole code into console.slate, and fixed the use of Console I/O for stderr. Brian T. Rice **20060210205823] [Formatting fixes for the manual. Brian T. Rice **20060210194643] [Various BUGS updates. Brian T. Rice **20060210194747] [Added #TODO as a selector to raise a debugger for methods which are incomplete. Brian T. Rice **20060213184517] [Added #TODO: message to complement #TODO and add a note. Brian T. Rice **20060213184914] [Added the skeleton of an Interval type, in unfinished/. Brian T. Rice **20060213185607] [Added #BareDefinition to the Image-building code as a quick illustration of how to template a custom build. Brian T. Rice **20060213190258] [More Interval code. Brian T. Rice **20060213210129] [Cleanups for primitive Types code. Brian T. Rice **20060213191346] [Made use of newLiteralFor: in the Lexer to clean up code. Brian T. Rice **20060213191502] [ExternalLibrary error primitive cleanup. Brian T. Rice **20060213231154] [Cleanup of extprim.c code. Brian T. Rice **20060213231232] [Range code cleanups. Brian T. Rice **20060213231325] [Separated the newboot target into one that creates a bootstrapper image for re-use. Brian T. Rice **20060214024819] [Bug-fix for newLiteralFor: code (commented out an incomplete override). Brian T. Rice **20060214165825] [Made Syntax Parser Error an attribute of the traits object, not every Parser object. Brian T. Rice **20060214164105] [More Interval code, and some fixes. Brian T. Rice **20060217015906] [Fixed the parsing of optional argument declarations in literal block headers. Brian T. Rice **20060217221739] [Added a blessnew target for the Makefile which backs up bootstrap sources and copies the newboot results to the regular filenames. Brian T. Rice **20060217223211] [Separated &optionals: functionality from applyTo: into applyTo:optionals:. Brian T. Rice **20060218010716] [Fixed the bootstrap process "make" call to only build a VM executable and not try a full bootstrap when the new images aren't made. Brian T. Rice **20060218011928] [Separated SmallInteger math primitives into ext/smallint.slate. Brian T. Rice **20060218013533] [Separated &optionals: functionality from applyTo: into applyTo:optionals:. Brian T. Rice *-20060218010716] [Cleaned up the ByteCompiler code for return statements. Brian T. Rice **20060218174801] [ByteCompiler random code cleanups. Brian T. Rice **20060218174812] [Syntax code cleanups. Brian T. Rice **20060218180400] [Pidgin code-generator cleanups. Brian T. Rice **20060218201536] [Added support for #do: to the Pidgin generator, and a stub for #doWithIndex:. Brian T. Rice **20060218202650] [Bug-fix for #below:by:do: in the Pidgin generator. Brian T. Rice **20060218202946] [Added #above:by:do: support to the Pidgin code generator. Brian T. Rice **20060218203116] [Improved Pidgin code generator handling of #do:/#doWithIndex: by making a more basic #keysDo:. Brian T. Rice **20060218223147] [Added #reset to Syntax Parser. Brian T. Rice **20060219020426] [Removed redundant line in slate-startup.el. Brian T. Rice **20060224000948] [Cleanups of define: to use &slots:. Brian T. Rice **20060223224259] [Added a skeletal slot.slate to unfinished with a basic ValueSlot type. Brian T. Rice **20060224200104] [Added #newDelegatingTo: Namespace convenience method. Brian T. Rice **20060224215043] [Modified the REPL to use scratch namespaces delegating to the lobby by default and an #in: method to change that delegation. Brian T. Rice **20060224220257] [Bug-fix for the last REPL changes. Brian T. Rice **20060224222634] [Added a #refreshWorkspace method to the REPL. Brian T. Rice **20060224231758] [SmartConsole code cleanups. Brian T. Rice **20060222222819] [Moved QuadTree code to unfinished/. Brian T. Rice **20060223221936] [Driving addPrototype: to extinction. Brian T. Rice **20060223233238] [Fixed #from:to:do: to perform proper safety checks, fixing allButFirst/allButLast calls for single-element Sequences. Brian T. Rice **20060226002555] [Unicode / i18n code cleanups. Brian T. Rice **20060226202507] [Replaced the #method accessor of the bytecode compiler with #currentMethod and added #currentContext to clarify code. Brian T. Rice **20060225234633] [More ByteCompiler code cleanups. Brian T. Rice **20060226000801] [Defined Association as: Sequence to return a two-element array of key and value. Brian T. Rice **20060226205952] [Added graph/digraph to the AutoLoad scan sequence. Brian T. Rice **20060226210732] [Added a #removeAll and #clear protocol for ExtensibleCollections. Brian T. Rice **20060226211754] [Added a sketch version of a StateMachine library and FSM subtype that would wrap a Digraph. Brian T. Rice **20060227011613] [Added an XCode project for MacOS X build support (which mostly just wraps the Makefile). Brian T. Rice **20060227030626] [Renamed the XCode project C file group to "VM base sources". Brian T. Rice **20060227031707] [Added a newautoloaddb target to the Makefile to re-generate the AutoLoad database without undo fuss. Brian T. Rice **20060226212729] [Removed quadtree from the AutoLoad list. Brian T. Rice **20060226225026] [Added comments and quick bug-fix for the image-locating code where the VM is called without a fully-qualified path, and FIXME note for later. Brian T. Rice **20060227210153] [Fixed the use of combined VM+image in the case where the executable is invoked via use of the PATH. Brian T. Rice **20060227220055] [Small cleanups to i18n encoding code. Brian T. Rice **20060301004505] [Added a generic load: implementation which just throws a warning and tells the user what's not-quite-right about what they're doing. Brian T. Rice **20060301184453] [Fixed the previous load: error-handler. Brian T. Rice **20060301202231] [Added bitAt: to SmallInteger. Brian T. Rice **20060301224242] [Added cloneSettingSlots:to: to the primitives and out of root.slate to make it faster and useful for using immutable objects. Brian T. Rice **20060302030307] [Non-bootstrap uses of cloneSettingSlots:to:. Brian T. Rice **20060302074222] [Used cloneSettingSlots:to: in bootstrap code. Brian T. Rice **20060302085231] [Used cloneSettingSlots: in UI code. Brian T. Rice **20060302092459] [Fixed printing of the SmallInteger "prototype". Brian T. Rice **20060304212703] [Added #arg:put: to the Debugger's added-commands list to set indexed arguments. Brian T. Rice **20060305225946] [Added support to the setTo:/:= macro for selectors that have variants with put: appended. Brian T. Rice **20060305220728] [Added user-land code for immutability. Brian T. Rice **20060302000803] [Cleaned up C-generation of for-loops. Brian T. Rice **20060307062552] [Removed the notice from the VM bootstrap sequence for each major line-number since we can now get that in the Debugger easily or from the other notices. Brian T. Rice **20060307064333] [Added nested indentation levels to the printouts for load: calls that recurse. Brian T. Rice **20060307071002] [Defined log: and log10. Brian T. Rice **20060307081842] [More C Generator cleanups. Brian T. Rice **20060307093905] [Used some method-generation to clean up Types C setup code. Brian T. Rice **20060307095026] [Bug-fix for C Generator cleanups. Brian T. Rice **20060307203530] [Silenced C compiler warning in boot.c. Brian T. Rice **20060307205826] [Refactored the fullCleanBootstrap method so its parts may be called separately. Brian T. Rice **20060307223528] [Added a #freeze/#isFrozen protocol for recursive immutable-object creation. Brian T. Rice **20060309010253] [Renamed File handle-generating primitives from open:/openForInput:/openForOutput:/openForNew: to handleFor*. Brian T. Rice **20060313040654] [Updates to the BSD Portfile. Brian T. Rice **20060309010202] [Moved RoleEntry-specific code from map.slate to role.slate. Brian T. Rice **20060309013801] [More pseudo-code detail on an Objective-C bridge. Brian T. Rice **20060309064537] [Included basic INSTALL notes for the XCode project. Brian T. Rice **20060309072847] [Further split up the Makefile newboot target and allowed a separate imagemaker.image target and vmmaker.image target for fine-grained bootstrap setups. Brian T. Rice **20060309072927] [Added a PathFinder type which is a stream of possible Path objects to a given target, using pluggable criteria. Brian T. Rice **20060309213352] [Changed type declarations in some Pidgin code from LongInt to UnsignedLongInt for clarity (and reduced warnings). Brian T. Rice **20060313213832] [Fixed the FFI VM module to work with the asObject type change in pidgin. Brian T. Rice **20060314221253] [Fixed printing of the faux-prototype String. Brian T. Rice **20060316041105] [Created a conditions:(otherwise:) method to complement caseOf:(otherwise:); basically a COND vs. case-switch. Brian T. Rice **20060316050735] [Created a sketch version of a conditions: inliner based on the caseOf: inliner, with TODO notes where extra work is needed. This is for the ByteCompiler, of course. Brian T. Rice **20060316054207] [Cleaned up TypeMismatch signalling for local variable stores. Brian T. Rice **20060315005006] [Cleanups of pidginPrimitive macro code. Brian T. Rice **20060315032227] [Added support for returning a given number of lexical scopes up the chain. Brian T. Rice **20060219023317] [Syntax code cleanups and bug-fixes for creation methods. Brian T. Rice **20060316173930] [IR code cleanups. Brian T Rice **20060308053854] [Syntax Mode code cleanups. Brian T Rice **20060315025043] [Mobius IR Optimizer code cleanups. Brian T Rice **20060315025118] [Added an Immutable map flag bit, and #isImmutable and #restrictsDelegation methods for Object pointers. Brian T. Rice **20060111232439] [Added #immutable to the VM-Image linkage array SpecialObjectsArray/specialOops to signal trying to change an immutable object. Brian T. Rice **20060111234215] [Moved SmallInteger primitives from prims.slate to smallint.slate. Brian T. Rice **20060301234509] [Syntax refactorings to use #surroundings and Block #new. Brian T. Rice **20060316212818] [Syntax Writer cleanups. Brian T. Rice **20060317012134] [Added the url for the monads in Ruby blog post that inspired this little excursion. Brian T. Rice **20060317204838] [Refactored the Makefile newboot target into newvm and newimages, and added a run-check to installcheck target. Brian T. Rice **20060317221547] [Refactored #indicesOf: to use a new #indicesOfAllSatisfying: for Sequences. Brian T. Rice **20060318201047] [More pidginPrimitive cleanups and added checks for SmallInteger tags to arguments. Brian T. Rice **20060319013838] [Moved Perl-style idioms for conditional execution (#if: #if:then: #if:then:else: #while: #until: #unless:) into the normal method.slate control-flow library. Brian T. Rice **20060319200907] [SortedArray refactorings, some bug-fixes for safety. Brian T. Rice **20060320184113] [More SortedArray and SortedSet bug-fixes. Brian T. Rice **20060320201302] [Bug-fix for SortedArray #copy method. Brian T. Rice **20060320202439] [Renamed ifCompletes:otherwise: to ifCompletes:ifFails:. Brian T. Rice **20060210195948] [Fixed #unlessCompletes:. Brian T. Rice **20060320205119] [Added the platform plugin as a "newvm" Makefile target prerequisite. Brian T. Rice **20060321031902] [Added #die and #quit to Image for convenient exit signalling. Brian T. Rice **20060321032434] [Cleaner Slate-quitting from the Makefile targets. Brian T. Rice **20060321032757] [Further bug-fixes of silly uses of #[] (they don't make compile-time blocks, they evaluate at compile-time to Nil!). Brian T. Rice **20060321055200] [Added a hook protocol for objects to override lookup in a post-facto manner using #didNotUnderstand:at:. Brian T. Rice **20060321071259] [Parser code cleanups. Brian T. Rice **20060317201622] [Moved #expected:butFound: and #check:is: from token.slate to parser.slate since it is Parser-centric code. Brian T. Rice **20060322033227] [Added #parseConcatenatively which enables the old-style statement-separator-less syntax. It is enabled by default now. Brian T. Rice **20060322091155] [Only add -m32 on i386 CPUs Tony Garnock-Jones **20060325121319] [Use signedLongInt_asObject instead of longInt_asObject Tony Garnock-Jones **20060325121803] [Update code which exercises Semaphore and SharedQueue Tony Garnock-Jones **20060325160851] [Moved Fraction code from numeric.slate to fraction.slate. Brian T. Rice **20060328223610] [Moved fraction.slate from the core bootstrap to the prelude, since it's not needed. Brian T. Rice **20060329024005] [Allowed for Integer division to provisionally work if Fraction code is not loaded. Brian T. Rice **20060329024738] [Bug-fixes for Fraction code. Brian T. Rice **20060329034500] [Changed addPrototype: to be the basis of addPrototype:derivedFrom: and added an &immutable option to make immutable objects by default. Brian T. Rice **20060329202053] [Fixed #derive to work with immutable prototypes. Brian T. Rice **20060329214038] [Clean-ups of derive-related code. Brian T. Rice **20060329221633] [Moved interp/map.slate (Map code) up in the prelude load order so that other non-essential libraries can use immutability. Brian T. Rice **20060329211748] [Added #slotNames and #delegateNames to Map code, to replace the neglected pre-bootstrap.slate versions. Brian T. Rice **20060330005422] [Bug-fix for slotNames to avoid #slotCount call problems. Brian T. Rice **20060330080148] [Added a Makefile rollback target to undo the effects of blessnew should something go wrong. Brian T. Rice **20060330085023] [More pidginPrimitive adjustments. Brian T. Rice **20060321031705] [Fixed a typo in File Locator #copy method. Brian T. Rice **20060329030631] [Made the REPL use an interactive parse by default, for ease of use. Brian T. Rice **20060329031249] [Added a trivial #defineOddball: method to make new Oddball objects. Brian T. Rice **20060329202214] [Added #addImmutableSlot: for #addImmutableSlot:valued:. Brian T. Rice **20060329203801] [Moved the SmallInteger prototype printOn: fix into print.slate. Brian T. Rice **20060330083629] [Use of the style of recent REPL namespace code to improve the Debugger design. Brian T. Rice **20060330170334] [Added whereIs: as a convenience method for finding Paths to objects, similar to POSIX `where`. Brian T. Rice **20060330175918] [Use of &slots: in non-core library code. Brian T. Rice **20060331061808] [Added a `disable macro for the purpose of "commenting-out". Brian T. Rice **20060331062253] [Added a VARIANT configuration variable to common.mk so that bootstraps of new VM/image sets can proceed without special command-line futzing. Brian T. Rice **20060331063924] [Made usage of VARIANT in the BOOTIMG Makefile variable, and changed the blessnew target to bless, where VARIANT customizes its usage. Brian T. Rice **20060401000258] [Used ANSI strchr instead of POSIX index string function in boot.c, fixing native Windows builds. Brian T. Rice **20060403151104] [Removed old and cruddy SDL code. Brian T. Rice **20060331061029] [Cleanups and a fix for SDL-windows plugin Slate code. Brian T. Rice **20060405161132] [Bug-fix for the Cairo binding. Brian T. Rice **20060406010330] [Added `erOnKey: as a variant of `er which calls the first selector on all results of applying the key selector to the input arguments. Brian T. Rice **20060406081749] [Bug-fix in #Cairo namespace setup code. Brian T. Rice **20060409183116] [Fixed PrettyPrinter usage in the Debugger. Brian T. Rice **20060330171932] [Simplified Makefile newboot component targets, using a new imagemaker.image explicit target. Brian T. Rice **20060406083010] [UI: Fixed bitrot Todd Fleming **20060411230540] [less cryptic examples at beginning of documentation wkornew@gmx.net**20060415100454] [Fix semaphore implementation to *not* share a global waiters queue. Sigh. Tony Garnock-Jones **20060503191002 Mutable state considered harmful? :-( This bug has been present since my first submission of the semaphore code. All the hypothetical faults with ensure: and friends were red herrings! ] [Remove debugging print statements from sharedqueue. Tony Garnock-Jones **20060503191625] [New bug (?) report in BUGS Tony Garnock-Jones **20060503224945] [Note the fact the counting semaphore now works. Tony Garnock-Jones **20060503225020] [Factor truncateTo:paddedBy: and truncateTo: out into Sequence Tony Garnock-Jones **20060503225037 The code was duplicated between EncodedString and String. Now it's in Sequence, where it kind of belongs. ] [Fix several problems with Time and Duration. Tony Garnock-Jones **20060503234304] [Avoid stomping on lib/time.slate's Time from plugins/time/time.slate Tony Garnock-Jones **20060503234342] [Add explicit .boring file Tony Garnock-Jones **20060504144956] [Added #+- and #+/- as Number methods to create Intervals. Brian T. Rice **20060513231219] [Update time plugin to support gettimeofday. Tony Garnock-Jones **20060514234717 - Support for Doubles would be nice, since then we could use a double-precision float to represent fractions-of-a-second in UTC since the epoch. - When calling GetTimeOfDay applyWith:, initially I just passed the CObject itself, expecting that the storage field of the CObject would be magically extracted and passed through the FFI to C. This turns out not to be the case: I had to say "GetTimeOfDay applyWith: tv storage" explicitly. - We should consider making socket_Select take a CTimeval. ] [Bug-fix for unexpected block header tokens in the Parser. Brian T. Rice **20060516015716] [listbox-and-themeable timmy@cc.gatech.edu**20060517030537 I added a basic listbox component to make listboxes, I cleaned up the ui.slate file to not use #addSlotAndReturnValue, and I also added a basic theme framework thingy to centralize the location of color information, etc. ] [scrolling-and-buttons timmy@cc.gatech.edu**20060522042106 I added scrollbars and extended the listbox to use them. I also made a simple button class and put demos of using both components in the ui.slate file. At this point, the UI is really slow so it's too much trouble to make the scrollbar cool. ] [scrollbar-pagedelta-cleanup timmy@cc.gatech.edu**20060522044932] [activators-and-listbox-menus timmy@cc.gatech.edu**20060528222506 I added menus based on listboxes and centralized some functionality in an activator object. I added some code to demonstrate menus in ui.slate. In the future, I suppose I could make it easier for objects to have menus via a mixin and it'd probably be a good idea to make them look better when slate speeds up. On the other hand, I think it would be interesting to dump the traditional vertical menus for a web/pie-menu-like visible mouse-gesture menu. ] [textbox beginnings timmy@cc.gatech.edu**20060601015957 In this patch I write a generic interface for textbuffers and then I fill out an example one that is based on an array of arrays. I extended the Command object for textbuffer manipulations so when things need to modify a textbuffer, they can group a bunch of commands in a recording and then execute them at once. Those can then be replayed with #undo to undo the changes. But where should I store these recordings so that they can be played back and stuff? I created a file called focus.slate for the beginnings of a way to determine what morphs have focus and I think I'll try to figure out in there a way that user keyboard input is redirected to the right components. But I'm not really sure how I should design that. Right now nothing is getting keypresses, so the textbox in the ui.slate file is pretty much a dud. I also did some cleaning in listbox.slate and put the behavior in scrollpane where it belongs. Perhaps in the future I can make it so scrollpanes don't crash and burn in the drawing method when the scrollbars are nil. I also started a file called fundamental-mode. This would ideally be a command list that takes basic key presses and sends the textbuffercommands to the buffer. Right now though I have no idea how the defined CommandMap is supposed to work (it's a dictionary but what maps to what? what does translators do? what kind of object is an accelerator? etc) ] [pass-keyboard-events-to-children timmy@cc.gatech.edu**20060606040547 A patch to add an easy, perhaps temporary, way to pass the keyboard events to all the children SceneElements because I'm not sure inputHandler would be for more specific cases I think. There probably should be an easier interface for using that feature. I also fixed some bugs in the text buffer and now pressing a button actually adds text to the buffer. ] [sdl-keyboard-fix timmy@cc.gatech.edu**20060605055503 The windows.slate and sdl-windows plugin didn't include support for keyboard button presses. I'm not sure why it wasn't there, but I went ahead and added it. ] [Find all methods, in order of decreasing specificity, for a selector. Tony Garnock-Jones **20060607200055] [Remove pun of #as: for encoding/decoding - needs a better codec framework Tony Garnock-Jones **20060607200730] [Replace pun of #as: for ASCII-encoding with {en,de}codeASCII Tony Garnock-Jones **20060607200747 Using #as: to convert strings into byte-arrays and vice versa is problematic for two reasons: 1. it defaults to ASCII encoding without allowing specification of the particular codec that should be used; and 2. it inadvertently overrides (String as: Symbol), causing problems with non-interning. Removing the punning of #as: for String codecing and replacing it with a more precise API takes the first step along the road toward a proper codec framework, and also avoids the nasty side-effect preventing Symbol interning in some places where it's needed (e.g. CObject's parseDefinitionsFrom:into:). ] [Update Directory primitives to use encodeASCII/decodeASCII Tony Garnock-Jones **20060607204558] [Use encodeASCII/decodeASCII in extlib.slate Tony Garnock-Jones **20060607205033]