Merge branch 'pu'
[jungerl.git] / lib / distel / ChangeLog
blobaa3b8e6ba10d2c35ce281d6c6cbc64635fbe3051
1 2006-09-25  Mats Cronqvist  <locmacr@mwlx084>
3         * src/distel.erl: added erl-reload-modules. reloads all modules
4         that are out of date. compares time of compilation for the loaded
5         code and the code in the corresponding beam file.
6         * elisp/distel.el: bound erl-reload-modules to C-c C-d r.
7         
8 2006-09-04  Mats Cronqvist  <locmacr@mwlx084>
10         * src/distel.erl (Module): reload_module/2; 1st arg assumed to be
11         sting, could be atom or string.  resolved by creating to_atom/1
12         and to_bin/1. got rid of l2a/1 and l2b/1.
14 2006-08-03  Mats Cronqvist  <locmacr@mwlx084>
16         * src/distel.erl (Module): had problems in guess_source_file/2;
17         1st arg was assumed to be atom, but could be atom or list.
18         wound up creating 3 functions;
19         
20         l2a/1 - list_to_atom
21         l2b/1 - list_to_binary
22         to_list - *_to_list
24         and use them consistently.
25         
26 2006-05-15  Mats Cronqvist  <locmacr@mwlx084>
28         * src/distel.erl (Module): behaviour of int:meta changed in R10B-10.
29         edb now understands the new, and (hopefully) the old as well.
31         new feature; you can attach to a process that exited in
32         interpreted code and inspect the stack (just as if you're in a
33         break)
35         fixed bug when trying to do c:l/1 on a string
36         
37 2005-06-07  Mats Cronqvist  <locmacr@mwlx084>
39         * elisp/derl.el (derl-cookie): made derl-cookie writable
41 2005-06-03  Mats Cronqvist  <locmacr@mwlx084>
43         * elisp/erl-service.el (erl-openparent): inserts a "(" and the
44         argument list from erl-openparen.
45         
46         (erl-reload-dwim): Do What I Mean to erl-reload-module. when
47         reloading beam files; if erl-reload-dwim is non-nil, and the
48         erlang module cannot be found in the load path, we attempt to find
49         the correct directory. I.e. if we're editing PATH/Mod.erl we look
50         for PATH/Mod.beam orelse PATH/../ebin/Mod.beam. if found we add
51         the dir to the load path and retry the load.  We also don't prompt
52         for the module name. this is your basic bloat.
54         * elisp/distel.el (Module): bound M-( to erl-openparent
56 2005-06-02  Mats Cronqvist  <locmacr@mwlx084>
58         * src/distel.erl (reload_module/2): runs c:l/1, if it fails it looks
59         for the beam file in in srcdir and srcdir/../ebin (srcdir is where
60         the .erl file that you're editing lives, it's sent from emacs). if
61         it finds the beam file it adds the appropriate dir to the load
62         path and reruns c:l/1.
63         (stack_pos/2): debugger wouldn't show the variable
64         bindings in the top level function. now it does! 
65         (refresh_dir/1): fixed typo 
66         (Module): imported some functions from filename, renamed some
67         unused vars...
69 2005-03-25  Mats Cronqvist  <mats.cronqvist@ericsson.com>
71         * elisp/derl.el (derl-int32-to-decimal): Rewrote the test for
72         enough precision in floating-point. the test is pretty lame, even
73         if it succeeds we cannot be sure it'll work for all int32's.
74         alas, i'm too ignorant to write a good test. the previous version
75         of the test was nicer, but FSFmacs-specific :<
77 2005-02-20  Luke Gorrie  <luke@synap.se>
79         * doc/distel.texi (Conventions): Added a note that you need to
80         start the Erlang node yourself, to make Joe happy.
82 2005-01-30  Luke Gorrie  <luke@synap.se>
84         * elisp/erl-service.el (erl-goto-end-of-call-name): Rewrote to
85         hopefully suck less badly.
87 2004-10-27  Luke Gorrie  <luke@synap.se>
89         * elisp/erl-service.el (erl-refactor-subfunction): Strip text
90         properties from refactored text.
92         * elisp/erl.el (&erl-group-leader-loop): Make *erl-output* a plain
93         Emacs buffer created on demand. Previously it was actually the
94         Distel group leader process and so it was bad to kill it (now it's
95         fine).
97 2004-10-26  Martin Bjorklund  <mbj@bluetail.com>
99         * elisp/distel.el (distel-menu-items): Use erl-choose-nodename in
100         the menu.
102 2004-10-25  Luke Gorrie  <luke@synap.se>
104         * elisp/derl.el (derl-send-name): Lie to Erlang by saying that we
105         support extended PIDs. This way we can establish distribution with
106         R10B-0, which doesn't seem to actually send extended pids
107         initially. (This is a lame workaround but I'm in a hurry and the
108         extended-pid format is not documented.)
110         * doc/distel.texi: Updated to describe `erl-choose-nodename' and
111         the fact that `C-u' is now a regular prefix argument instead of a
112         new-node-chooser.
114         * README, INSTALL: Updated to describe simplified installation
115         instructions.
117 2004-10-23  Luke Gorrie  <luke@synap.se>
119         * elisp/erl-service.el (erl-choose-nodename): Update
120         distel-modeline-node.
122         * elisp/distel.el (distel-keys, distel-bind-keys): Bind keys
123         manually instead of with define-minor-mode. The latter makes it
124         hard to change the bindings without restarting Emacs.
125         (distel-modeline-node): Variable containing the (possibly
126         abbreviated) name of the current Erlang node. This is displayed in
127         the modeline so the user can see which node is in use.
129 2004-10-16  Luke Gorrie  <luke@synap.se>
131         * elisp/derl.el (derl-int32-to-decimal): No longer try to use the
132         'dec32' helper program: rely solely on floating point. This way we
133         can remove that C program entirely.
135 2004-08-26  Luke Gorrie  <luke@bluetail.com>
137         * erl/distel.erl: Added who_calls/3 front-end to cross
138         referencing.
140         * elisp/patmatch.el (patmatch): Fixed bugs in matching lists and
141         tuples.
143 2004-08-25  Luke Gorrie  <luke@bluetail.com>
145         * elisp/erl-service.el (erl-read-call-mfa): This is now the One
146         True Way to determine the module/function/arity for a command to
147         operate on.
148         (erl-who-calls): New command to list all callers of a given
149         function.
150         (erl-node-name): Renamed to `erl-target-node'. Does not look at
151         prefix argument anymore. If you want to switch nodes you now have
152         to use `M-x erl-choose-node' instead of just `C-u'. This frees up
153         the prefix argument for more interesting uses.
155         * elisp/erl.el (&erl-group-leader-loop): Make the *erl-output*
156         window scroll properly.
158 2004-05-27  Luke Gorrie  <luke@bluetail.com>
160         * elisp/erl-service.el (erl-refactor-subfunction): More
161         robust. Can now handle things like trailing ';' characters in the
162         region being refactored.
164 2004-05-24  Luke Gorrie  <luke@bluetail.com>
166         * elisp/erl.el (erl-nodes): New variable. Contains the list of
167         nodes that we're connected to, like the nodes() BIF.
169         * elisp/erl-service.el (erl-openparen): Don't lookup the arglist
170         unless we're actually connected to the node.
172 2004-05-21  Luke Gorrie  <luke@bluetail.com>
174         * elisp/erl-service.el (erl-openparen): New command to print the
175         argument list for a function call. Automatically runs when you
176         type '('.
178         * erl/distel.erl (get_arglists): The Erlang part.
180 2004-03-23  Dave Love  <fx@gnu.org>
182         * doc/distel.texi: Fix some @xref usages.
184 2004-03-10  Dave Love  <fx@gnu.org>
186         * elisp/patmatch.el (cl): Require when compiling.
187         (mcase-parse-clauses): Wrap in eval-and-compile.
188         (mlet): Don't use gensym.
189         (pmatch-tail): New.
190         (patmatch): Use it.
191         (pattern): Defvar when compiling.
193         * elisp/net-fsm.el (cl): Require when compiling.
194         (with-error-cleanup): Don't use gensym.
195         (fsm-build-message): Use default-enable-multibyte-characters.
197         * elisp/erlext.el (xemacs-only, gnu-only): Delete.  Don't use them
198         to signal error on loading.
199         (erlext-binary-to-term, erlext-term-to-binary): Use
200         default-enable-multibyte-characters, with-temp-buffer.
201         (erlext-read1): Define conditionally on fbound char-int.
203         * elisp/erl.el: Only require cl when compiling.  Provide erl
204         early.  Doc fixes.
205         (defprocvar): Wrap in eval-when-compile.
206         (erl-remove-if): New.  Change callers of remove-if to use it.
208         * elisp/erl-service.el (cl): Require when compiling.
209         (erl): Require.
211         * elisp/erl-example.el (cl): Require when compiling.
212         (erl): Require.
214         * elisp/epmd.el (cl): Require when compiling.
215         (epmd-port-please): Comment out (unused).
217         * elisp/edb.el (cl): Require when compiling.
218         (erlang-extended-mode): Autoload.
220         * elisp/distel-ie.el (cl): Require when compiling.
221         (erl): Require.
222         (erl-ie-evaluate, erl-ie-copy-buffer-to-session)
223         (erl-ie-copy-region-to-session): Doc fix.
225         * elisp/derl.el (cl): Require when compiling.
226         (derl-alive): Use default-enable-multibyte-characters,
227         with-temp-buffer, erl-tuple-elt.
228         (derl-int32-to-decimal): Maybe use floating point.
229         (derl-hexstring-to-binstring): Renamed from
230         hexstring-to-binstring; callers changed.
231         (derl-merge-halves): Renamed from merge-halves; callers changed.
232         (derl-hexchar-to-int): Renamed from hexchar-to-int; callers
233         changed.
235         * elisp/distel.el (distel-erlang-mode-hook): Doc fix.
236         (erlang-extended-mode-hook): Quote lambda in hook.
237         (font-lock): Require when compiling.
238         (report-distel-problem): Require font-lock.
240 2004-01-09  Luke Gorrie  <luke@bluetail.com>
242         * erl/distel.erl (debug_toggle): Call code:ensure_loaded/1 to
243         make sure a module is loaded before trying to interpret. This is
244         an attempt to avoid not-properly-understood debugger problems.
246 2003-06-11  Luke Gorrie  <luke@bluetail.com>
248         * elisp/erl-service.el (erl-refactor-strip-macros): Now removing
249         macros before attempting to find free variables in
250         expressions. This allows us to refactor code that uses macros,
251         though it could lead to invalid refactorings in pathological cases
252         (i.e. if a macro expansion would really have introduced a new free
253         variable.)
255 2003-03-26  Luke Gorrie  <luke@bluetail.com>
257         * Release: 3.3!
259 2003-03-11  Luke Gorrie  <luke@bluetail.com>
261         * elisp/derl.el (erl-dec32): Portability fix for Win32, thanks to
262         Nicolas Charpentier.
264         * erl/distel.erl: Now converting fdoc result strings into
265         binaries, to avoid the classic string/list encoding problems.
267 2003-03-10  Luke Gorrie  <luke@bluetail.com>
269         * elisp/distel.el: Added "C-x SPC" keybinding for toggling
270         breakpoints, for consistency with the rest of Emacs.
272         * elisp/erl-service.el: fdoc commands now accept a numeric prefix
273         to mean, "rebuild the doc database."
275 2003-03-06  Luke Gorrie  <luke@bluetail.com>
277         * elisp/edb.el: Improved breakpoint handling.
279         * elisp/erl-service.el (erl-fdoc-apropos, erl-fdoc-describe):
280         Added commands for finding documentation via 'fdoc'.
282 2003-02-17  Luke Gorrie  <luke@bluetail.com>
284         * elisp/erl-service.el (erl-check-backend): Now using the
285         `erl-nodeup-hook' to automatically check that the `distel' module
286         is loadable by Erlang nodes we connect to, and print a warning if
287         not. You can avoid this by setting `distel-inhibit-backend-check'
288         to t.
290 2003-01-15  Luke Gorrie  <luke@bluetail.com>
292         * elisp/erl-service.el (erl-read-nodename): The universal prefix
293         argument (C-u) means "prompt me for which node to use", but
294         numeric prefixes no longer do. This is to free them up for other
295         purposes.
296         (erl-find-source-under-point): Numeric prefix argument forces the
297         same behaviour as `distel-tags-compliant', i.e. prompt for
298         function name. Useful for jumping to functions that aren't being
299         called anywhere handy.
300         (erl-refactor-subfunction): Slightly improved error reportage.
302         * elisp/edb.el (edb-new-attach-buffer): Inhibiting
303         `erlang-new-file-hook' in attach buffers. It was misfiring and
304         causing problems.
306         * elisp/erl-service.el (erl-refactor-subfunction): Small
307         portability fix; this feature probably only worked in the CVS
308         version of Emacs 21 previously. Now also works in 21.2.1.
310 2003-01-14  Luke Gorrie  <luke@bluetail.com>
312         * elisp/erl-service.el (erl-refactor-subfunction): New refactoring
313         command: takes all expressions in the region and makes a new
314         function out of them. The original text is replaced by a call to
315         the new function, and all needed variables are passed as
316         parameters. The function itself is placed on the kill ring, for
317         manual placement. Bound to "C-c C-d f".
319         * erl/distel.erl: Erlang-side refactoring support, requires
320         syntax_tools version 1.2 (from erlang.org contributions.)
322 2003-01-11  Luke Gorrie  <luke@bluetail.com>
324         * elisp/edb.el: Toggling stale breakpoints is now a local
325         operation - it doesn't talk to the erlang node. This fixes a
326         problem caused by the expected inconsistencies. Also, making a
327         buffer uninterpreted now removes all breakpoints (the erlang
328         debugger backend already quietly works this way.)
330 2002-12-16  Luke Gorrie  <luke@bluetail.com>
332         * Release: 3.2!
334         * elisp/edb.el (edb-make-breakpoint-overlay): Changed
335         `point-at-bol' call to `line-beginning-position', for Emacs20
336         compatibility.
337         Minor XEmacs compatibility hacks.
339         * elisp/distel.el (erlang-extended-mode): Moved "BODY" part from
340         erlang-extended-mode's define-minor-mode and into a hook, for
341         Emacs20 compatibility.
343         * erl/distel.erl (debug_add): Now always reinterpreting modules,
344         even when int:interpreted() says they're already interpreted,
345         since it can give false information if modules are reloaded behind
346         its back. Maybe we need to talk with OTP about the semantics of
347         reloading interpreted modules in various ways..
349         * elisp/derl.el (derl-cookie): Variable for explicitly setting
350         cookie (from Mats Cronqvist)
352         * elisp/distel.el (erlang-extended-mode): Some new key bindings:
353         C-d C-d e: erl-ie-show-session (moved from C-c C-d s)
354         C-c C-d s: edb-synch-breakpoints
355         C-c C-d S: edb-save-dbg-state
356         C-c C-d R: edb-restore-dbg-state
358         * elisp/erl-service.el (erl-reload-module): Bugfix - if a module
359         is interpreted, then we reinterpret it instead of
360         reloading. Avoids problem of quietly uninterpreting modules.
362         * elisp/erl.el (erl-node-name): Now including the unix pid of
363         Emacs in the node name, so that multiple Emacsen can connect to
364         the same erlang node. Previously there was a naming conflict.
366 2002-12-15  Luke Gorrie  <luke@bluetail.com>
368         * elisp/edb.el (edb-make-breakpoints-stale): Never mark
369         breakpoints as stale in attach buffer.
370         (edb-breakpoint-stale-face): Switched stale breakpoint colour to
371         purple (no decent dark yellow, at least on LCD screen.)
373 2002-12-13  Martin Bjorklund  <mbj@bluetail.com>
375         * elisp/edb.el (edb-save-dbg-state): Save debugger state
376         (i.e. which modules are interpreted, and their breakpoints).  The
377         saved state can be restored after e.g. a node restart with
378         edb-restore-dbg-state.
380 2002-12-12  Luke Gorrie  <luke@bluetail.com>
382         * elisp/edb.el (edb-synch-breakpoints): When calculating the line
383         number of a breakpoint overlay, now counting lines from
384         (point-min) (beginning of buffer) instead of (window-start)
385         (beginning of visible part of buffer).
387 2002-12-08  Luke Gorrie  <luke@bluetail.com>
389         * elisp/erl-service.el (erl-find-source): Fixed problem where
390         erl-find-source would only work from files with -module(..)
391         declarations. Now it works in any erlang-mode buffer.
393 2002-12-08  Martin Bjorklund  <mbj@bluetail.com>
395         * elisp/erl-service.el (erl-find-source-under-point): Don't ask
396         for nodename if a local function definition is asked for.
398 2002-12-06  Martin Bjorklund  <mbj@bluetail.com>
400         * elisp/edb.el (edb-synch-breakpoints): Added "synch all
401         breakpoints to erlang" command, bound to C-c C-d S.  Might be used
402         after a buffer with breakpoints has been modified, recompiled and
403         loaded to erlang, to re-apply all breakpoints in the buffer.
405         * elisp/edb.el (edb-breakpoint-stale-face): Added a face which is
406         used to mark breakpoints to be out of synch when a buffer is
407         modified.
409         * elisp/edb.erl: Cleanups.
411 2002-12-06  Luke Gorrie  <luke@bluetail.com>
413         * elisp/erl-service.el (erl-pman-kill-process): Added "kill this
414         process" command, bound to 'k' (patch from Mats Cronqvist.)
416         * elisp/erl.el (erl-exit): Fixed stupid bug.
418         * elisp/edb.el (edb-monitor): Now putting the point at the last
419         process after popping up the monitor (patch from Mats Cronqvist.)
421 2002-11-30  Luke Gorrie  <luke@bluetail.com>
423         * elisp/edb.el (edb-make-breakpoint-overlay): Tiny tweak of
424         setting the overlay "rear advance" to nil. This means that if you
425         open a new line following a breakpoint, the overlay won't spill
426         over onto it.
428 2002-11-28  Luke Gorrie  <luke@bluetail.com>
430         * elisp/edb.el (edb-attach-mode): Bound "b" to
431         edb-toggle-breakpoint in attach buffers, as a shortcut.
433 2002-11-28  Martin Bjorklund  <mbj@bluetail.com>
435         * elisp/edb.el: Added visual breakpoints, both in source files and
436         the attach buffer.  It uses the customizable face
437         'edb-breakpoint-face' for breakpoint highlighting.
438         
439         * elisp/distel.el: Extended the Erlang menu with a 'distel'
440         submenu, which contains the common distel functions.
442         * elisp/derl.el (derl-use-trace-buffer): Added a customizable
443         'derl-use-trace-buffer' (default t) which is used to turn on/off
444         the trace buffer.
446         * elisp/net-fsm.el (fsm-use-debug-buffer): Added a customizable
447         'fsm-use-debug-buffer' (default nil) which is used to turn on/off
448         the net-fsm debug buffer.
450 2002-11-24  Luke Gorrie  <luke@bluetail.com>
452         * configure: Added configure script to CVS.
454         * elisp/distel.el (erlang-extended-mode): Added completion binding
455         on M-?, since M-TAB is often used by window managers.
457         * elisp/distel-ie.el: Changed keybindings. Now C-j evaluates the
458         expression behind the point and inserts the result in-line, and
459         C-M-x evaluates a function definition and shows the result as a
460         message. Based on suggestions from people at EUC.
462         * elisp/distel.el (distel): Added Distel customization group under
463         Programming->Tools, and put `distel-tags-compliant' and
464         `edb-popup-monitor-on-event' in there.
466         * elisp/erl-service.el (erl-complete): Added command to complete
467         module names and fully-qualified function names, with all the
468         fixin's (popup completion list etc). This is bound on M-TAB, and
469         _nice_!
470         (process-list-mode): Pressing "u" now updates the process list. A
471         bunch of small usability enhancements to process info viewing.
473 2002-11-23  Luke Gorrie  <luke@bluetail.com>
475         * elisp/derl.el (derl-nodedown): Now delivering EXIT signals from
476         linked remote processes when we lose contact with their node. This
477         fixes some long standing problems, like the debug monitor hanging
478         if you restart the node it's talking to.
480 2002-11-21  Martin Bjorklund  <mbj@bluetail.com>
482         * elisp/distel.el (distel-tags-compliant): New variable for making
483         M-. prompt for which function to find.
485 2002-11-21  Luke Gorrie  <luke@bluetail.com>
487         * elisp/erl.el: Various minor fixes: added erl-group-leader
488         function (if the variable is nil in a non-process buffer, it takes
489         the default), improved erl-pid-to-string, rearranged some things.
491         * elisp/erl-service.el (erl-send-rpc): Using a new
492         erl-group-leader function instead of the variable of the same
493         name, to fix a problem when sending RPCs from non-process buffers.
495         * elisp/edb.el (edb-monitor-format): Avoiding trailing spaces in
496         summary lines, so that it doesn't unnecessarily wrap lines on < 80
497         column displays (was needed for the big font I used in the EUC
498         presentation.)
500         * elisp/distel-ie.el: Added a couple of `push-mark' calls, so that
501         after you evaluate a definition the mark will be placed where the
502         cursor is (and thus when you type a new expression, the region
503         will be around your new text, ready for M-x). But what we really
504         need to do is change M-x so that it grabs a whole expression
505         instead of using the region.
507 2002-11-12  Luke Gorrie  <luke@bluetail.com>
509         * elisp/derl.el (erl-connect): Now printing an error if we try to
510         connect to an erlang node that has the same nodename as Emacs, to
511         prevent a commonly confusing problem.
513 2002-11-10  Luke Gorrie  <luke@bluetail.com>
515         * Release: 3.1!
517 2002-11-08  Luke Gorrie  <luke@bluetail.com>
519         * Everywhere: Incompatible changes to the pattern syntax. All
520         symbols are now variables by default, to match a symbol by value
521         it has to be quoted. The basic difference is:
522           [ok Value]
523         becomes:
524           ['ok value]
525         The algorithm for updating your patterns is:
526           Put a quote in front of all lower-case match-by-value symbols.
527           Change all the symbols for variables to lower-case.
528         And that's all. Hopefully I've correctly fixed this in all the
529         code included in Distel.
530         
531         * elisp/erl-service.el (fprof-analyse): Added new command to view
532         an existing fprof analysis file.
534 2002-11-05  Luke Gorrie  <luke@bluetail.com>
536         * elisp/erl.el (erl-make-ref): Equivalent to make_ref/0 BIF in
537         Erlang. Also added support for encoding/decoding refs "on the
538         wire" (erlext.el).
540         * elisp/erlext.el (erlext-read-obj): Bignums are now skipped over,
541         giving the symbol SMALL-BIGNUM or LARGE-BIGNUM instead of an
542         error.
544 2002-10-30  Luke Gorrie  <luke@bluetail.com>
546         * elisp/erl-service.el (erl-reload-module): Convenience function
547         for reloading an Erlang module. I often see people switch from
548         Emacs to an erlang shell to type "l(mymod)" after a 'make'. This
549         is a quicker way.
550         Bound to "C-c C-d L".
552 2002-10-23  Luke Gorrie  <luke@bluetail.com>
554         * elisp/distel.el (report-distel-problem): New automated bug
555         reporting command. Creates a bug report email template including
556         some recent trace information.
558 2002-10-08  Luke Gorrie  <luke@bluetail.com>
560         * distel.erl, elisp/edb.el (edb-toggle-interpret): Fixes for
561         finding the right source code to interpret when debugging is
562         toggled on (patch by Mats Cronqvist). Now we use the absolute path
563         name of the Emacs buffer as the filename to interpret on the
564         Erlang node. This essentially assumes a common file system between
565         both nodes. The issue of "fully general" debugging on arbitrary
566         remote nodes still needs some thinking (e.g. if node and Emacs
567         have different versions of the code, etc.). But for now this is
568         more convenient for debugging nodes that do have a common file
569         system with Emacs.
571 2002-10-04  Luke Gorrie  <luke@bluetail.com>
573         * erl/distel.erl, erl-service.el: Can now find the source file for
574         a module from information in the beamfile saying where it was
575         originally compiled.  Idea & patch by Mats Cronqvist
576         <etxmacr@cbe.ericsson.se>.
578 2002-09-30  Luke Gorrie  <luke@bluetail.com>
580         * elisp/erl-service.el (erl-find-source): Doesn't do the
581         source-file-finding RPC when already in a buffer matching the
582         module name.
584 2002-08-29  Luke Gorrie  <luke@bluetail.com>
586         * Release: 3.0!
588 2002-08-29  david wallin  <david.wallin@ul.ie>
590         * README.ie-session (Module): New file, trying to explain what
591           distel-ie is supposed to do.
593 2002-08-29  Luke Gorrie  <luke@bluetail.com>
595         * elisp/distel-ie.el (erl-ie-inline-results): Added variable to
596         control how results are reported (inline in buffer, or in message
597         area). Uses the message area by default, prefix argument inverts.
598         (erl-ie-show-session): This is the new "create a blank session"
599         command (calls erl-ie-session and pops up the buffer, something
600         I'd broken)
602 2002-08-28  Luke Gorrie  <luke@bluetail.com>
604         * elisp/erl-service.el (display-message-or-view): Fixed
605         embarrassing bug where an unbound variable was being
606         used (apparently it previously had the right dynamic binding by
607         luck - scary).
609         * erl/distel.erl (find_source/1): Now resolves relative paths.
611         * elisp/erl-service.el (erl-find-source-under-point): Included
612         details of the workings in the docstring. Made a portability
613         tweak.
615 2002-08-27  Luke Gorrie  <luke@bluetail.com>
617         * elisp/erl.el (erl-stop-on-error): Setting this variable to
618         non-nil stops the scheduler from trapping elisp errors, so you
619         can debug them normally. See variable docstring for details.
621         * elisp/distel.el (erlang-extended-mode): Fixed up the mode line
622         format for erlang-extended-mode. Working around a bug in Emacs 21,
623         I think.
625 2002-08-24  david wallin  <david.wallin@ul.ie>
627         * elisp/derl.el (erl-connect): Well well well... who would have
628           guessed that I would have to step in and save the day with some
629           elisp hacking? :-) Anyway, Luke, better take a look at the changes,
630           at least now you can connect to an erl node.
632 2002-08-23  Luke Gorrie  <luke@bluetail.com>
634         * elisp/erl-service.el (display-message-or-view): Emacs20
635         compatibility fix. Also, now only using the echo area for
636         single-line messages, even though Emacs21 can handle bigger
637         ones. This feels better for process info items, since it's
638         confusing to have e.g. one large backtrace in a buffer and then
639         another smaller one pop up in the echo area - better to always use
640         the buffer.
642         * elisp/edb.el (edb-monitor): Monitor buffer now pops up when an
643         attached process exits (as well as when an unattached process hits
644         a breakpoint).
646         * elisp/erl.el (erl-set-name): Added this function that processes
647         can call to give themself a name. This name is printed if the
648         process crashes - it's handy for debugging. Updated some existing
649         processes to use it.
651         * elisp/derl.el (erl-connect): When epmd lookup fails, the *derl
652         <node>* buffer is now killed. This fixes a long-standing bug that
653         forced you to manually kill this buffer before you can try to
654         connect again.
656 2002-08-22  david wallin  <david.wallin@ul.ie>
658         * elisp/distel-ie.el (erl-ie-copy-[buffer|region]-to-session): Move 
659           the pointer to the end of the buffer before inserting.
660         
661         * elisp/distel-ie.el (erl-ie-session): The welcome message should 
662           only occur once (on startup), i.e., that the user is welcome back 
663           is now implicit.
665         * erl/distel_ie.erl (add_remote_call_info/2): Added the string tuple. 
666           So 'cd("/usr/local").' can now properly be evaluated.
668 2002-08-22  Luke Gorrie  <luke@bluetail.com>
670         * elisp/erl-service.el (erl-bury-viewer): Add this command, which
671         is like `erl-quit-viewer' but buries rather than kills the buffer.
672         (erl-find-source): Improved error reportage, and now only adding
673         locations to the M-, history when we actually jump somewhere.
675         * elisp/edb.el: Various debugger improvements: Monitor buffer pops
676         up when an unattached process hits a breakpoint (unless
677         `edb-popup-monitor-on-event' is nil); Monitor better intercepts
678         debug commands to either start monitoring or switch nodes; 'q' now
679         hides rather than kills the monitor buffer/process ('k' kills);
680         Return and C-m can be used to attach to a process from the monitor,
681         as well as the traditional 'a'.
683 2002-08-21  Luke Gorrie  <luke@bluetail.com>
685         * config/emacs-init-snippet.el.in: Now being careful to add
686         Distel at the end of the load-path, so that the
687         possibly-redundant files we include for compatibility (ewoc.el,
688         md5.el) don't override any locally installed ones.
690         * README, Makefile.in (VERSION): Increased 3.0a -> 3.0b to
691         distinguish from the version installed on Bluetail'ers' machines
692         earlier today.
694         * elisp/erl.el (erl-reductions): Added reductions counter, saying
695         how many times a process has been executed (_not_ how many calls
696         it has made, like Erlang reductions). This can be inspected
697         directly for debug purposes.
699         * config/emacs-init-snippet.el.in: Using autoconf on the .emacs
700         snippet to setup the right load-path. It seems that just making a
701         directory in ${prefix}/share/emacs/site-lisp/ doesn't get you
702         into the load path automatically.
704         * elisp/edb.el, erl/distel.erl: Reworked the debugger so that the
705         Monitor process tracks the current set of breakpoints and
706         interpreted modules. Erlang-extended-mode buffers now indicate via
707         the mode line whether they are currently being interpreted.
709         * Makefile.in: Moved the documentation onto separate targets:
710           "info", "info_install", "postscript". Hopefully this will avoid
711           hittings errors in basic installations on non-GNU systems.
713 2002-08-20  david wallin  <david.wallin@ul.ie>
715         * elisp/distel.el (erlang-extended-mode): Added a keybinding
716           for erl-ie-evaluate: C-M-x.
718         * elisp/distel-ie.el (erl-ie-evaluate): If the current buffer 
719           isn't a session; start a session and copy the marked region 
720           over to it. All interaction will then take place in the 
721           session buffer.
723 2002-08-20  Luke Gorrie  <luke@bluetail.com>
725         * elisp/erl-service.el (erl-find-source-under-point): Can now
726         handle text like "foo:bar/2" - i.e. reads the arity correctly, so
727         you can jump to definitions from e.g. export lists. Actual change
728         made in `erl-get-arity'.
729         (erl-find-source-under-point): When arity can't be determined,
730         finds the first matching function of any arity. This is useful
731         when you're writing a function call and can't remember what
732         arguments/arities a function has - you can jump to the definition
733         and see.
735         * All: XEmacs and Emacs20 compatibility fixes (tested edb,
736         erl-process-list).
738 2002-08-19  david wallin  <david.wallin@ul.ie>
740         * elisp/distel.el (erlang-extended-mode): Added keybindings 
741         for distel-ie.
742         C-c C-d s : Start a session.
743         C-c C-d c : Copy current buffer to a session.
744         C-c C-d r : Copy a marked region in the current buffer to a session.
746         * elisp/distel-ie.el (erl-ie-copy-buffer-to-session): Renamed
747         erl-ie-copy-to-session.
748         * elisp/distel-ie.el (erl-ie-copy-region-to-session): Same as 
749         erl-ie-copy-buffer-to-session but works on a marked region.
751 2002-08-19  Luke Gorrie  <luke@bluetail.com>
753         * elisp/distel.el, elisp/erlang-mode-ext.el: Renamed
754         erlang-mode-ext.el to distel.el, so that it's obvious what the
755         "top level" is. Now you need to (require 'distel) in your init
756         file instead of (require 'erlang-mode-ext).
758         * elisp/erl-service.el, distel.erl (fprof): Fixed the fprof
759         interface to handle multiple processes. Used the compiler as a
760         test case.
762         The presentation of results is seriously inadequate for such large
763         quantities of data. What's needed is a sexy tree layout like the
764         OptimizeIt profiler for Java has.
766 2002-08-18  david wallin  <david@dolly.csis.ul.ie>
768         * elisp/distel-ie.el (erl-ie-evaluate): Can now receive messages 
769         that should go into the minibuffer.
771         * elisp/distel-ie.el (erl-ie-evaluate): Slight correction on how
772         the output of formatted.
774         * elisp/distel-ie.el (erl-ie-fiddle-with-me): New function. Copies
775         the content of the current buffer into a session. So you can 'fiddle'
776         away on the code without screwing up the original file. 
777         (Suggestions for name change are welcome).
779         * erl/distel_ie.erl (ensure_registered/0): Updates the 
780         group leader on an already running 'distel_ie' process. 
781         So if you do M-x erl-ie-session and connect to a node where 
782         distel_ie is already running, the stdin/stdout is correctly
783         redirected.
785         * erl/distel_ie.erl (evaluate/2): Defining a new function returns 
786         the function name and arity.
788         * erl/distel_ie.erl (get_function_name/1): Returns the arity as well.
789         
790 2002-08-17  Luke Gorrie  <luke@bluetail.com>
792         * Buildscripts: Revamped the makefiles, inspired by host fast
793         Ghostscript does "the null make" without recursions. Stole all the
794         code from Darius Bacon's idel package - very handy.
796         Anyhoo, now you can do "./configure && make && make install" and
797         you get the files installed in all the usual bits of /usr/local/ -
798         even the manual in your Info directory.
800         For really lazy people, you can do "make conf_install", which will
801         patch your .emacs and .erlang to setup the right hooks to run
802         everything (this Should Be perfectly safe, not that I'd trust
803         someone else's program to do it to mine..)
805         You can also do "make dist" to build a distributable package (in
806         ../) -- but if I start finding cheap knock-off Distel CDs selling
807         in china, I'm gonna come after you.
809         NOTE: When you checkout this from CVS, you will have to do
810         "autoconf && ./configure" to generate your Makefile.
811         
812         * doc/distel.texi: Brought up-to-date with recent changes.
814 2002-08-14  Luke Gorrie  <luke@bluetail.com>
816         * elisp/edb.el (edb-attach-with-new-frame): Setting this variable
817         to non-nil makes the debugger create new frames to attach to
818         processes.
820 2002-08-04  Luke Gorrie  <luke@bluetail.com>
822         * elisp/edb.el: Improved variables window (now you can press
823         return on a variable to popup its full value).
825         * elisp/erl-service.el (erl-read-nodename): Now you can enter node
826         names without the @host part, and they're taken to refer to the
827         local host.
829         * README: OSX setup instructions care of David Wallin.
831         * elisp/edb.el, distel.erl: Added up/down motion through the
832         stack in the debugger.
834 2002-08-03  Luke Gorrie  <luke@bluetail.com>
836         * Everywhere: Changed the datatype mapping so that tuples are just
837         vectors, so {ok, "foo"} becomes [ok "foo"] instead of
838         [tuple ok "foo"]. Pids and ports, which are also vectors, now
839         contain a special `erl-tag' in their first element, which is the
840         uninterned symbol `TYPE'. Because the symbol is uninterned, it's
841         not equal to what you get from 'TYPE, even though it looks the
842         same. It's distinct from any value that can appear in an actual
843         tuple, so the mapping is unambiguous.
845         This modification is _not_ backwards compatible. Any tuple-based
846         pattern matching needs to be updated, and any accesses to tuple
847         elements with `elt' will now be off-by-one (there is a `tuple-elt'
848         function to use instead, which indexes from 1). I've fixed
849         everything that grepped on "elt" or "tuple", and everything seems
850         to work.
851         
852         I'd been scratching for a nice way to do this since the beginning
853         -- an uninterned symbol is just right.
854         
855 2002-08-02  Luke Gorrie  <luke@bluetail.com>
857         * elisp/derl.el (ensure-have-dec32): Rewrite based on
858         `locate-library', hopefully now more portable.
860 2002-08-01  Luke Gorrie  <luke@bluetail.com>
862         * elisp/erl-service.el (erl-goto-end-of-call-name): Added a
863         work-around for the installation on Tobbe's machine, which doesn't
864         put ':' in the same syntax class as mine does. Cause as yet
865         unknown.
867         * elisp/erlang-mode-ext.el: Decided to hijack the TAGS key
868         bindings, so now M-. takes you from a function call to the
869         definition, and M-, jumps you back afterwards.
871         * elisp/erl-service.el (erl-find-source-unwind): Added "unwind"
872         feature for going back after following function calls to their
873         definitions (suggested by Tobbe, and very nice).
875 2002-07-29  Luke Gorrie  <luke@bluetail.com>
877         * elisp/erl.el (erl-determine-hostname): Doing a better job of
878         figuring out the local hostname, to choose emacs's node name.
880         * everywhere: On-line documentation improvements, so that
881         'describe-mode' (C-h m) will tell you about all the funky features
882         of the various modes.
883         
884         * erlang-mode-ext.el: Switch keybindings prefix to "C-cC-d". Now
885         have an "erlang-extended-mode" minor mode, which includes all
886         extensions including edb.
888         * elisp/erl.el (erl-run-process): When a process crashes due to an
889         elisp error, the exit reason is stringified to avoid e.g.  trying
890         to send buffer objects to erlang nodes inside an exit reason.
892         * edb.el, distel.erl: Debugger enhancements.
893         
894         * derl.el: Stopped including "TICK" messages in the
895         "*trace <nodename>*" buffers. They're too distracting.
897 2002-07-27  Luke Gorrie  <luke@bluetail.com>
899         * elisp/erl.el (erl-idle): (erl-idle) puts the process into a
900         receive that matches nothing, making the process idle
901         indefinitely. This can be interrupted by executing code in the
902         process via an emacs command.
904         * elisp/erl-service.el (erl-show-process-info-item): Now possible
905         to view individual process items, with special support for
906         message queues and backtraces.
907         (erl-find-source): Better.
909 2002-06-24  Luke Gorrie  <luke@bluetail.com>
911         * erl/distel.erl: Erlang-side debugger support. Fprof interface
912         can parse expressions.
914         * elisp/erlang-mode-ext.el: More key bindings ("C-c C-e" prefix),
915         moved debugging code to edb.el
917         * elisp/edb.el: New file for (much improved and extended) debugger
918         code.
920         * elisp/erl-service.el (erl-find-source): Added erl-find-source to
921         find and load the source code for a module by name.
922         (fprof): Fprof now takes an erlang expression as input instead of
923         MFA.
925         * elisp/erl.el (erl-run-process): Saves current buffer when
926         invoking the process continuation, so that cleanup works when the
927         process returns in another buffer.
929 2002-06-17  Luke Gorrie  <luke@bluetail.com>
931         * elisp/erlang-mode-ext.el, erl/distel.erl: Beginnings of
932         debugger support: partial implementation of the "monitor".
934 2002-06-02  Luke Gorrie  <luke@bluetail.com>
936         * erl/distel.erl: Added rpc_entry(M,F,A) which installs a
937         group_leader proxy/adapter.
939         * elisp/net-fsm.el: Sprinkled some more multibyte-avoidance code
940         around. The default coding-system mangled messages on my laptop,
941         but with 'no-conversion' it now works.
943         * elisp/erl.el: Added "real" group_leader support, with a default
944         group_leader writing output to *erl-output*. The group leader
945         protocol is not the same as Erlang's (needs to be adapted), and
946         supports just one message: {put_chars, Chars}.
948         * elisp/erl-service.el (erl-send-rpc): RPCs now go via
949         distel:rpc_entry(M,F,A), to setup a group_leader.
950         (erl-eval-expression): Added - evaluates an erlang expression.
952         * elisp/derl.el: Giving a specific error when 'dec32' isn't
953         installed in PATH.
955 2002-04-24  Luke Gorrie  <luke@bluetail.com>
957         * elisp/erl-service.el (fprof): Added a front-end to the 'fprof'
958         profiler. Very minimal so far.
960 2002-04-22  Luke Gorrie  <luke@bluetail.com>
962         * elisp/erl.el (erl-run-process): Uncaught errors in processes
963         are now caught by the scheduler, which terminates the process and
964         then continues.
966 2002-04-21  Luke Gorrie  <luke@bluetail.com>
968         *  elisp/*.el: XEmacs compatibility fixes.
970 2002-04-20  Luke Gorrie  <luke@bluetail.com>
972         * elisp/*.el: Added 'receive' construct, and updated existing
973         programs to use it.