kernel: Check the timeout before queuing the interrupt

While Phexample was ported we noticed that the interrupt was queued
long after the Delay has stopped and the process continued. The process
was interrupted at the wrong point. Check the timeout variable to
see if the normal process continued to execute.

I think the race-free operation should make sure that the process
can't wake up if it is still sleeping, then check sem and then
schedule the interrupt and resume the process (if needed).

2014-01-24  Paolo Bonzini  <bonzini@redhat.com>

	* kernel/Delay.st: Check the Semaphore before queuing the
	interrupt for the target process.
scripts: Add -d/--debug handling to gst-sunit

In case a test is failing due an unhandled exception or a test
failure occurs VisualGST will be loaded and the situation can
be analyzed. This should help during development/porting the
only downside is the load time of the VisualGST package.

2014-01-24  Holger Hans Peter Freyther <holger@freyther.de>

	* scripts/Test.st: Add -d/--debug option parsing.
debug: Add >>#restart to the debugger package

2013-10-21  Gwenael Casaccio  <gwenael.casaccio@gmail.com>

	* debugtests.st: Add test for >>#restart.
	* DebugTools.st: Restart a execution of a context (useful it the method is updated).
visualgst: Use >>#restart to restart a modified function in the debugger

2013-10-21  Gwenael Casaccio  <gwenael.casaccio@gmail.com>

	* Debugger/GtkDebugger.st: Handle >>#selectAnInstanceMethod: and
	>>#selectAClassMethod:.
visualgst: Implement restarting the selected frame in the debugger

When debugging an algorithm it can be handy to just re-start a
given frame. Depending on the side-effects that already occurred
the restarted function might not do the right thing and it doesn't
work for block contexts right now.

2014-01-28  Holger Hans Peter Freyther  <holger@moiji-mobile.com>

	* Debugger/GtkDebugger.st: Allow to re-start a selected context.
visualgst: Fix NotFound exception when editing code in SUnit.

When editing code in the SUnit view a NotFound exception of the
MethodDictionary was raised. This was due the symbol being converted
to a string and then not be found. Keep it as a symbol.

2014-01-20  Holger Hans Peter Freyther  <holger@moiji-mobile.com>

	* SUnit/GtkSUnit.st: Change parameter from Symbol to String.
visualgst: Ask the TestCase for all test selectors

With Phexample testcases are called should* and they do not show
up in GtkSUnit. Change the finding of testcases to query TestCase
for all test selectors.

2014-01-24  Holger Hans Peter Freyther  <holger@moiji-mobile.com>

	* SUnit/GtkSUnit.st: Ask TestCase for testcases.
kernel: Speed up MethodDictionary>>#select:

The default >>#select: implementation will call Behavior>>#flushCache:
for every CompiledMethod that is inserted into the new Dictionary.
Avoid this by creating a dedicated >>#select: implementation that avoid
the cache flush.

2014-01-19  Gwenael Casaccio  <gwenael.casaccio@gmail.com>

	* kernel/MethodDict.st: Introduce >>#select: and
	>>#dangerouslyAt:put:.