The Joy of SEXP
The Pocket Scheme development weblog.
Sat, 25 Mar 2006
Featurizing 1.3
I can feel the undertow sucking me back to the Real World even as I type,
so I'd better write this up before I drown. [Ed.: I fell asleep last night immediately
after typing that.]
1.3 basically works.
I've spent the last couple of days fiddling with the interface,
trying to polish what passes for the Pocket Scheme user experience,
as well as how we manage multiple script-type operations
on a platform that does not provide a good generic way to do so.
Those two goals have at times worked at cross purposes.
For example, I revoked some fairly involved soft input panel manipulation
when I found that it confused CE's cross-application SIP manipulation,
especially when another instance of pscheme
was running a background script.
Presently I'm looking at the following:
- Tracking running scripts, and notifying the user when they complete.
Recent versions of Windows Mobile offer what appear through the scant documentation
to be some nice notification mechanisms, intended for "You have mail!" blurbs,
that might assist here.
- Fixing SIP manipulation again - in unrolling the last delta,
it went from overly clever to obviously stupid.
- And at some point in 1.3 I apparently managed to booger the pscheme core's stack juggler.
Evaluating
(iota 0 5000) now crashes the interpreter thread.
This one's going to be a lot of fun to chase,
since I don't have a working CE debugger right now,
and the bug doesn't manifest itself on my console development platform.
After that, I have to finish coding DWIM, aka Input→Smart Mode,
and add a couple more paren-balancing options to the context menu.
My current notion of DWIM entails:
- Replace two successive single quotes with double quotes.
This common character recognition error is almost impossible to see in a proportional font.
- Replace a b ... with (a b ...).
- Replace (a b ...) ... with (begin (a b ...) ...),
which will make the case where the second or later forms raise an error
easier to resume.
In fact, I should do this one even if the user disables Smart Mode.
- Outside of string and character constants,
replace the alternate left brackets [ and { with (,
and likewise for their right-bracket complements.
This is another common character recognition error.
- Complete all pending right parens in the expression.
- Add a space after every sequence of right parens.
This will make the expression wordwrap prettily when echoed in the transcript.
And I want an explicit "Balance this S-expression" command,
and for successive "Select S-expression" commands to increase their scope beyond the current selection.
And I want a pet elephant, too.
posted at: 10:18 | path: | permanent link to this entry

.