----------------------------------------------------------------------
					ST CHANGES LOG
----------------------------------------------------------------------
$Id: _ST-CHANGES.txt 29867 2009-12-09 10:27:00Z oscar $
----------------------------------------------------------------------
12 Virtual Machines
- p 9 -- does optr point to first or second header field?! yes
  - this is the base hdr; not the class ptr
  - for large objects, a size hdr comes on top
  - compact classes probably not needed today (makes vm complex)
- p 15 - method ptr should point to hdr of compiledMethod
- p 33 - averages don't make sense
- p 45 - deoptimization needed for debugging (reconstruct stack)
13. Traits
- Add notes on Nile part
----------------------------------------------------------------------
H09 TO DO
*** Merge with software evolution? Add Moose lecture ...
* Add material on MDE and Metamodeling (ObjvLisp, Fame, Magritte, Mirrors etc)
* Perhaps add something more general on dynamic languages
* Add material on Regexes?
* Fix MwCountTest (missing MwCountMethodWrapper class?!)
- add something on duck typing somewhere? (eg block and symbol understand value:)
* Somewhere do we discuss the pattern of encoding todo items as message sends?
1. Intro
- add Monticello slide
* Change demo (should be different from P2 demo!)
2. Basics
- Replace syntax on a postcard (find a real example!)
3. Standard Classes
- String is abstract!
- 5 minutes too long & a bit rushed -- trim some material?
- Collections -- show examples first, then tables?
4. Idioms
- rename lecture "Distributing Responsibility"?
- Add slide for the book
- Replace foo-bar examples!
* Instead of set* constructor methods, name them initialize*
6. Debugging
* p 28 - Class methods cannot access ivars - rename GamePlayer>>setName: to initializeName:
* Add something on debugger internals
* Add a debugging scenario (from the book?)
- Add something on duck typing?
- MyClass>>new should be MyClass class>>new
7. Best Practice
- Choosing Object -> Choosing Message
8. Refactoring
- missing references to Kent Beck, Robert Martin etc.
- add some justification for Martin patterns?
* Add concrete (real) examples for code smells and refactorings
* Move Singleton example to metamodel lecture discussion on class vars and class ivars
9. Metaclasses
- should start with Object Model rules
* Here or in an other lecture look at alternative approaches
  (infinite towers of metaclasses, explicit metaclasses etc)
10. Reflection
- add literature links (stlit-reflection)
- 28 Classes are holders -- CompiledMethod>>sendsToSuper not sendsToSuper:
- Intercession examples: motivate with scenarios up-front!
----------------------------------------------------------------------
H09 CHANGES
Everywhere:
- Fixed Squeak->Pharo text and images
1. Intro:
- Fixed goals
- Added: "What is surprising about Smalltalk"
3. Standard Classes
- Added exception example
5. Seaside
- Added widget examples; fixed other pending items
6. Debugging
- fixed modifying iteration example
10. Reflection
- Restructured to tell a better story
- Updated examples to PBE1 chapter
- Fixed intercession examples for Pharo
----------------------------------------------------------------------
H07 THINGS TO FIX
5. Seaside
  - Maybe add some tiny css example?
  - need an overview how control flow and rendering relate
	- need minimal example showing all key parts
* Add something on continuations later? [Reflection lecture?]
6. - 18 -- modifying iteration example is incomplete -- range do: ...
- [about 10 minutes too short]
8. Refactoring
* Add more on refactoring engine (MD HPI-Refactoring slides)
11. Bytecode
- LARL -> LALR
- add a slide explaining the Visitor pattern?
- What does IRBuilder build?  How is an IR structured?
- slide 17: addTemps takes receiver + args + temps; numRargs includes self
- add IRBuilder factorial example?
- Decompiler is for old compiler; BytecodeDecompiler for new compiler
13. Traits and Classboxes
- need one good example multiple inheritance fragility
----------------------------------------------------------------------
H07 CHANGES
- Fixed schedule
- Changed CC License to 3.0
- Cleaned up formatting and animation in: 1, 2, 3, 4
- renamed Square, Snake, Ladder etc to BoardSquare, SnakeBoardSquare etc
1. Intro
- Added a slide on the explorer
2. Smalltalk Basics
- Added description of test-driven scenario
- Added a slide on extensions (Number>>chf)
6. Debugging
- Changed modifying iterator example
Swapped lectures 7 and 8.
7. Best Practice Patterns
- Double Dispatch -- class info could be "species" info
10
- More on ClassBuilder? (slide 25) --> md fixed.
11. ByteCodes
- p 17: Compiler: ByteCode generation
  add: "details to follow next section"            fixed
- p 39: InstructionStream hierarchy is broken      
  add: InstructionClient                           not really (see mail)
- p 42: "convenience"  							   fixed
- p 55: Profiling *MessageTally*                   fixed
  Wrong output for second example!                 removed output (too long)
12. Traits and Classboxes
- Fixed some ugly layout and fonts
----------------------------------------------------------------------
Extra topics:
- Concurrency
- Using thisContext and continuations to implement backtracking?
- Scaffolding patterns
- Morphic
- Exceptions
- primitives (methods like class and superclass)
- Class initialization
- Garbage Collection
----------------------------------------------------------------------
