Singing yourself to sleep
Or, how I exercised the hibernation code in the version of pscheme under development:
(load "w32.dll") (define p (w32:foreign-procedure "coredll.dll" "PostMessageW" '(w32api bool handle dword dword))) (p w32:*host-hwnd* #x03ff 0 0)
That magic number in the last line is the value of the (poorly named) WM_HIBERNATE message, broadcast by the system in low memory scenarios. I built a thunk to call the PostMessage API, used that thunk to simulate the broadcast of WM_HIBERNATE, then sat back and watched the fireworks.
posted at: 15:09 | path: /pscheme | permanent link to this entry
A preliminary 1.3 release
For the brave and the bold, I have finished a preliminary cut at 1.3. To install it, start with an installation of 1.2.2 on a WM 2003, 2003SE, or WM5 device, then unzip this archive into your installation directory thereon.
Again, this version only supports WM 2003, WM 2003 SE, and WM 5.0.
The user interface has changed a fair bit, a result of both my accommodating limitations of the HTML viewer control and my attempting to improve the overall user experience. The changes are mostly obvious upon inspection.
Not yet implemented:
Not yet exercised:
(display 'something)(newline)(read-char)doesn't put echoed input on its own line.
Known annoyances that 1.3 will have to endure:
One solution to both the flashing transcript window and the moving edit window
involves abandoning the TTY metaphor,
i.e., the conceit that your entered expression and the system's response to it
appear at the bottom of the screen,
scrolling up to make room for new data as necessary.
If instead new items appear at the top,
with older data scrolling down,
then the edit control could be at the top of the screen,
where it wouldn't move on SIP state change,
and the transcript window below it,
not flashing on update because it now starts with the most recent entries.
Two problems immediately occur to me, however.
First, separating the editable input pane and the command buttons and keys
forces the user's eyes to scan greater distances while editing,
passing the noise in the transcript pane
(though View→Input→Full Screen could help).
Second, scrolling down doesn't work so well if the standard program output
is interlaced with the transcript. That program output must appear top to bottom
and left to right, in the order of the English language.
posted at: 07:50 | path: /pscheme | permanent link to this entry