Diff for MrGwen

Sun, 12/12/2010 - 12:57 by Gwenael CasaccioSun, 12/12/2010 - 13:01 by Gwenael Casaccio
Changes to Body
Line 22 Line 22
2) no empty classes. [ Done ] 2) no empty classes. [ Done ]
3) no empty methods returning self. Leave those unimplemented or use #subclassResponsibility. 3) no empty methods returning self. Leave those unimplemented or use #subclassResponsibility.
- 4) methods such as wrongClassIfFloatShape: and wrongClassIfCharacterShape: make no sense. Just override checkArgumentClass: instead. + 4) methods such as wrongClassIfFloatShape: and wrongClassIfCharacterShape: make no sense. Just override checkArgumentClass: instead. [ Done ]
5) #shape: not implemented yet using shapes, as a result #resolveShape: is unused. [ WIP ] 5) #shape: not implemented yet using shapes, as a result #resolveShape: is unused. [ WIP ]
6) no class-method-only classes. Move those to Shape. [ Done ] 6) no class-method-only classes. Move those to Shape. [ Done ]

Revision of Sun, 12/12/2010 - 13:01:

MrGwen

== My Task List: ==

- VisualGST:

bugs:
-----
NamespaceSource [ DONE ]
Refactoring => Move Namespace fileout to a fileout class

- UnicodeCharacter speed up:
git://github.com/MrGwen/GNU-Smalltalk.git on the uchar branch

the vm has been updated need to be review.

- Method Pragma:
to do

- Shape:
git://github.com/MrGwen/GNU-Smalltalk.git on the shape branch

1) use singletons. Creating instances all the time is not acceptable. [ Done ]
2) no empty classes. [ Done ]
3) no empty methods returning self. Leave those unimplemented or use #subclassResponsibility.
4) methods such as wrongClassIfFloatShape: and wrongClassIfCharacterShape: make no sense. Just override checkArgumentClass: instead. [ Done ]
5) #shape: not implemented yet using shapes, as a result #resolveShape: is unused. [ WIP ]
6) no class-method-only classes. Move those to Shape. [ Done ]

- PackageLoader fileOutPackage:

git@github.com:MrGwen/gst-smalltalk.git package

Disclaimer: !!! Nothing has changed on the package format !!!

How It Works:
========

- PackageLoader fileOutPackage: 'Iliad' to: '/aPath'

right now It will save the package namespace,

/aPath/namespace/Cat1/SubCat1/.../Class.st

PackageSource

- VModule:

- bootstrap the kernel (reuse my old bootstrap code)
- scheduler in user mode (use delay)
- reuse my old multi threaded vm (merge only the threaded side)

- Multi Threaded VM:

Learn from previous approach:
Multiple image/Multiple Thread design mistake also
the vm design is not so good on that side, all the classes
could be inside a struct each vm will have its own struct.
Instead of something like that why not the classical struct and image loaded like any normal ObjectSpace.

The pro less VM changes ^^
The cons slower, are all the primitives usuable (ie changeClassTo chekc if the new class inherit from Behavior or something like that)

An image is just a simple normal thread with a userland scheduler

Scheduler1 ... SchedulerN
Th1 .... Thn Th1 .... Thn

As a first step no multiple ObjectMemory
The GC will block the other VMs til it is running
Idem for some primitives and memory operation ?allInstances/become/stackAllocation?

User login