Cosmacs: A Personal Voyage

48 views
Skip to first unread message

Jeff Dlouhy

unread,
Nov 9, 2010, 5:51:35 PM11/9/10
to edwin-...@googlegroups.com
I've been chugging along on getting what Olin calls "Cosmetic Emacs" working. Along the way I have been fixing things inside Edwin that are somewhat related, as well as getting things fixed up in scsh 0.7.

COSMACS
=======

Cosmacs now works with very simple input and will print out the command that a key is bound to. I also have it working where it will dispatch on that key/command as well. The current roadblock now is interpreting control characters from the terminal and converting them to use our keystroke record type. This again deals with porting over code that is in calias.scm (bucky bits) and input.scm. I'm moving slowly in this area until I get a better grasp of the tty.

Example Cosmacs Output:
KEYSTROKE: (kbd (backspace)) COMMAND: delete-backward-char
KEYSTROKE: (kbd (1)) COMMAND: self-insert-command

One error semi related to this is that tty-info in Scsh 0.7 is broken. See http://code.google.com/p/scsh/issues/detail?id=6


TERMINFO
========
While banging on the latest trunk of Scsh 0.7, Roderic and I came across a few bugs in Duncan's Terminfo library that broke with the move to the latest Scheme48. We think these were related to s48's new OS-String system and Terminfo assuming it always be receiving an 8-bit char. Also Roderic fixed a bug on Ubuntu.

* 45541fd - (HEAD, master) Use the i/o package's READ-BYTE (2 weeks ago)
* a31c720 - Fix terminfo finding in Ubuntu. (2 weeks ago)

EDWIN48
=======
In addition to working on Cosmacs, I have spent a significant amount of time on restructuring some of the package files as well as cutting down on the number of duplicate imports in various structures. Anyone who loads up the scratch-load.scm file will know that there is still a ways to go until more of the warnings are gone.

One insanely helpful little tool lately has been Taylor's "Apropos" (http://mumble.net/~campbell/scheme/s48-apropos.scm)

Here is an example of using it:

Welcome to scsh 0.7
Type ,? for help.
> ,exec ,load scratch-load.scm
> ,open apropos
> (apropos-all 'comtab)

** Exported by #{structure 419 edwin:text-property}
local-comtabs (not yet defined)
set-region-local-comtabs! (not yet defined)
set-subgroup-local-comtabs! (not yet defined)

** Exported by #{structure 417 edwin:command-table}
comtab->alist (not yet defined)
comtab-entry (not yet defined)
comtab-key-bindings (not yet defined)
comtab-key? (not yet defined)
local-comtab-entry (not yet defined)
make-comtab (not yet defined)

** Exported by #{structure 432 edwin:mode}
minor-mode-comtab (not yet defined)
mode-comtabs (not yet defined)

> ,open edwin:command-table
> (apropos 'comtab)

** Local bindings in #{package 362 scsh-user}

** Imported from #{structure 417 edwin:command-table}
comtab->alist = #{procedure 16844 (comtab->alist in edwin:command-table)}
comtab-entry = #{procedure 16885 (comtab-entry in edwin:command-table)}
comtab-key-bindings = #{procedure 16838 (comtab-key-bindings in edwin:command-table)}
comtab-key? = #{procedure 16875 (comtab-key? in edwin:command-table)}
local-comtab-entry = #{procedure 16883 (local-comtab-entry in edwin:command-table)}
make-comtab = #{procedure 16895 (make-comtab in edwin:command-table)}

> (apropos-all 'comtab)

** Exported by #{structure 419 edwin:text-property}
local-comtabs (not yet defined)
set-region-local-comtabs! (not yet defined)
set-subgroup-local-comtabs! (not yet defined)

** Exported by #{structure 417 edwin:command-table}
comtab->alist = #{procedure 16844 (comtab->alist in edwin:command-table)}
comtab-entry = #{procedure 16885 (comtab-entry in edwin:command-table)}
comtab-key-bindings = #{procedure 16838 (comtab-key-bindings in edwin:command-table)}
comtab-key? = #{procedure 16875 (comtab-key? in edwin:command-table)}
local-comtab-entry = #{procedure 16883 (local-comtab-entry in edwin:command-table)}
make-comtab = #{procedure 16895 (make-comtab in edwin:command-table)}

** Exported by #{structure 432 edwin:mode}
minor-mode-comtab (not yet defined)
mode-comtabs (not yet defined)


Other than that, there are some other changes, below are the latest commits.

* f3bb64a - (HEAD, master) Autoload s48-apropos.scm in scratch-load.scm (6 days ago)
* 0a356d7 - Added Taylor's Scheme48 Apropos structure for utility purposes. (6 days ago)
* fa2f953 - (origin/master, origin/HEAD) Update README to reflect recent changes in development enviornment. (9 days ago)
* 3c32dc8 - Really update the ordering of the load file and use the Pantene Edwin interfaces. (9 days ago)
* a041be7 - We don't need srfi-78 in our main Command Table package. (9 days ago)
* c5b09c2 - Comment out the group tests. (9 days ago)
* f3a8944 - Start bringing the tests up to date. Still a WIP. (9 days ago)
* bee61b7 - Comment out the SRFIs that are now available in scheme48 1.9T and scsh 0.7. (9 days ago)
* af74665 - Reorder the loading of packages and switch to the new Pantene edwin interfaces. (9 days ago)
* 667952c - Switch to use new edwin- packages for Pantene. (9 days ago)
* 1335129 - Pull in the latest Pantene changes. (9 days ago)


That's all for now.

- Jeff

Reply all
Reply to author
Forward
0 new messages