On Sat, Aug 11, 2012 at 3:27 AM, Stefan Monnier wrote: > > Aplus (a gnu/linux APL variant) has been one of the languages that > > runs only on XEmacs but not GNU-Emacs. Recently XEmacs has been > > giving some trouble compiling under Debian (it seems). > > I have hacked up something which makes Aplus run with GNU-Emacs: > > http://www.emacswiki.org/emacs/AplInDebian > > Is this a suitable forum for discussions towards cleaning up that code? > > Sure. Especially if you intend to include it in GNU ELPA. > Since Markus has already signed the needed copyright paperwork, > and it doesn't look like the code has seen many external contributions, > inclusion in GNU ELPA should be fairly easy. > > As for cleaning up the code, I suggest you start by defining a major > mode for APL code. See sample-mode.el for an example. > This mode would most likely enable the apl input method by default. > Ive defined inferior-apl-mode by copying from cmu-scheme like this: (define-derived-mode inferior-apl-mode comint-mode "Inferior APL" .... and then removing most of the stuff to keep it still working. The current version at http://www.emacswiki.org/emacs/inferior-apl.el is a still further cleaned up and cut-down version. Of course the mode-ly stuff should be cleaned up -- I dont understand the scoping rules for buffer-local variables. I think however that there are more immediate questions before that. The code was up there on the wiki and working as best as I knew until someone informed me that it was not. The immediate hack I found was that starting emacs with LANG=C makes it again work. Evidently when the OS moved from defaulting to latin-1 to utf-8 this broke. Trying to make an 'inside-emacs' version of the same hack I discovered that the following does the trick of removing the need for LANG=C. (setq coding-system-for-write 'iso-latin-1) (setq coding-system-for-read 'iso-latin-1) Obviously this is not a proper solution. Firstly these variables should not be globally assigned. Whats the best way of scoping these assignments or should some other variables be used I am not sure. The second point is that iso-latin-1 just works by saying so-to-speak "Not-UTF" but it is obviously wrong. So in short: How do I say "latinish" without saying latin-1. And where (scope) to say it? Perhaps the best solution would be to define a new Aplus charset. The tables are already there in Markus code. Maybe just some tying some ends together required? Any pointers/docs on how one goes about converting a restricted-charset-to-unicode data-table into an emacs charset? Thanks Rusi