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.
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;
21 l2b/1 - list_to_binary
24 and use them consistently.
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
35 fixed bug when trying to do c:l/1 on a string
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.
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
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
97 2004-10-26 Martin Bjorklund <mbj@bluetail.com>
99 * elisp/distel.el (distel-menu-items): Use erl-choose-nodename in
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
114 * README, INSTALL: Updated to describe simplified installation
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
140 * elisp/patmatch.el (patmatch): Fixed bugs in matching lists and
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
148 (erl-who-calls): New command to list all callers of a given
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
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.
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
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.
211 * elisp/erl-example.el (cl): Require when compiling.
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.
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
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
255 2003-03-26 Luke Gorrie <luke@bluetail.com>
259 2003-03-11 Luke Gorrie <luke@bluetail.com>
261 * elisp/derl.el (erl-dec32): Portability fix for Win32, thanks to
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'
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
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
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>
334 * elisp/edb.el (edb-make-breakpoint-overlay): Changed
335 `point-at-bol' call to `line-beginning-position', for Emacs20
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
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
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.
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
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
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
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>
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:
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.
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
540 * elisp/erlext.el (erlext-read-obj): Bignums are now skipped over,
541 giving the symbol SMALL-BIGNUM or LARGE-BIGNUM instead of an
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
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
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
584 2002-08-29 Luke Gorrie <luke@bluetail.com>
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
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
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
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,
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
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
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
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
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.
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
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
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
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
735 * All: XEmacs and Emacs20 compatibility fixes (tested edb,
738 2002-08-19 david wallin <david.wallin@ul.ie>
740 * elisp/distel.el (erlang-extended-mode): Added keybindings
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
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
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.
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.
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
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
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
852 I'd been scratching for a nice way to do this since the beginning
853 -- an uninterned symbol is just right.
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
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.
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.
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
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
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
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
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