Some background on the WM5 bug:
Pocket Scheme uses an instance of the system HTML viewer control (essentially, the guts of Pocket IE repackaged for use by third-party applications) for its output pane. As PIE wasn't intended for dynamic content like the continually scrolling and extended content of the output pane, pscheme must convince PIE to display an incomplete document, much in the same manner that PIE displays the first part of a large web page while downloading the rest of that page over a slow link. There is no official interface by which to do this, so it breaks with nearly every new release of a Pocket PC operating system.
Why do I persevere with abusing the HTML viewer control like this?
Because the code for the control is in ROM,
so using it reduces the total code size of Pocket Scheme;
and the scrolling-TTY model for a Lisp REPL has a long history from Lisps on other devices,
not to mention being convenient when viewing a sequence of actions.
I could implement my own output pane, or else port some subset
of a rich control like Scintilla,
but that would inflate my code size and introduce plenty of new bugs.
Alternately, I could change the model of the output pane from the current scrolling TTY
to something easier to build with the HTML viewer:
perhaps a series of pages, one per evaluated expression,
with the user seeking through those pages via the History buttons;
or perhaps just showing the results of the last evaluation,
with a separate command displaying a summary of all evaluations made.
That would be easier to model with the HTML viewer
because I wouldn't be trying to make it scroll on command.
posted at: 00:00 | path: /pscheme | permanent link to this entry