author |
Steve Losh <steve@stevelosh.com> |
date |
Wed, 09 Feb 2011 09:16:52 -0500 |
parents |
cfd5d659d737 |
children |
(none) |
2002-11-23 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.20.
* Pymacs/__init__.py: Integrate version.py.
* Pymacs/version.py: Deleted.
* setup.py, Pymacs/pymacs.py: Adjusted.
2002-11-15 François Pinard <pinard@iro.umontreal.ca>
* pymacs.el (pymacs-python-reference): Handle when function is
defined as a mere variable, or when a function is being advised.
2002-11-14 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.19.
* Pymacs/pymacs.py (List.__getitem__): Raise IndexError when
out of bounds. This should allow for iterating over a list.
* README.html: New, merely a template for Webert.
2002-11-13 François Pinard <pinard@iro.umontreal.ca>
* pymacs.el (pymacs-call): New. Use it whenever adequate.
2002-09-26 François Pinard <pinard@iro.umontreal.ca>
* Makefile (publish): Revised.
2002-08-18 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.18.
2002-08-09 François Pinard <pinard@iro.umontreal.ca>
* Pymacs/rebox.py (Emacs_Rebox.find_comment): Correctly spell
backward_char, not backward-char.
2002-08-08 François Pinard <pinard@iro.umontreal.ca>
* Pymacs/rebox.py (pymacs_load_hook): Compute the interactions
map from the bound methods, instead of from the generic ones.
2002-07-14 François Pinard <pinard@iro.umontreal.ca>
* Pymacs/pymacs.py (Lisp_Interface.__call__): Wrap argument in
progn, so lisp() could accept a sequence of expressions.
2002-07-01 François Pinard <pinard@iro.umontreal.ca>
* pymacs.el (pymacs-start-services): Disable undo for *Pymacs*.
2002-06-25 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.17.
* pymacs.py: Deleted, this was the compatibility module.
* setup: Simplified to handle the Emacs Lisp part only.
Deleted -P, -p and -x, as well as compile_python.
* Makefile: Adjusted. Removed pythondir and pymacsdir.
* pymacs.el (pymacs-load-path): Merely preset to nil.
* setup: Changes for easing installation on Win32.
Reported by Syver Enstad.
* Pymacs/pymacs.py (print_lisp): Produce Emacs strings more
explicitly, avoiding hexadecimal sequences generated by Python
2.2. Those hexadecimal sequences confused Emacs when immediately
followed by more hexadecimal looking characters.
2002-01-30 François Pinard <pinard@iro.umontreal.ca>
* pymacs.el (pymacs-load-path): Initialise with pymacsdir.
* pymacs-services: Do not handle a patched pymacsdir anymore.
* setup (complete_install): Set pymacsdir for Lisp, not Python.
Do not accept a -b option anymore, do not install pymacs-services,
as this is now to be done through setup.py.
* Makefile (install): Do not use -b while calling setup.
2002-01-29 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.16.
* Pymacs/pymacs.py: New file, previously top-level.
* pymacs.py: Now a mere bootstrap for Pymacs/pymacs.py.
* Pymacs/__init__.py: Define lisp and Let.
* Makefile (pythondir): Documentation amended.
* setup: Distinguish between empty arguments, which ask for
autoconfiguration, and None arguments, which inhibit it.
* pymacs-services: Import pymacs from Pymacs.
* Pymacs/version.py: New file. Rename pymacs to Pymacs.
* setup, setup.py, Pymacs/pymacs.py (main): Use it.
* setup: Substitute None for pymacsdir instead of the empty string.
* pymacs-services: Adjusted.
* Pymacs/pymacs.py (Let): Have all push_* methods to return self.
2002-01-20 François Pinard <pinard@iro.umontreal.ca>
* pymacs.el, pymacs.el: Replace LISP by Lisp in comments.
Reported by Paul Foley.
2002-01-10 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.15.
* pymacs.el (pymacs-start-services): Properly diagnose a timeout,
using the timeout parameter value instead of a fixed string.
2002-01-07 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.14.
* pymacs.py: Set various __repr__() to yield Python code,
containing the corresponding expanded LISP expression.
Set various __str__() to yield mutable LISP code.
* pymacs.py (Let): Point markers to nowhere once done with them.
2002-01-06 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.13.
* pymacs.el (pymacs-load): Imply prefix correctly when the module
is part of a package, that is, when its name has at least one dot.
* pymacs.py (pymacs_load_helper): Idem.
* pymacs.py (Protocol): New name for Server.
* pymacs.py (pymacs_load_helper): Implement pymacs_load_hook.
* MANIFEST.in, setup.py, Pymacs/__init__.py: New files.
* Makefile: Adjusted and simplified.
2002-01-03 François Pinard <pinard@iro.umontreal.ca>
* pymacs.py (pymacs_load_helper): Handle module within package.
Reported by Syver Enstad.
2001-12-18 François Pinard <pinard@iro.umontreal.ca>
* pymacs.bat: New file.
2001-11-29 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.12.
* pymacs.el (pymacs-timeout-at-start, pymacs-timeout-at-reply,
pymacs-timeout-at-line): New variables. Use them.
2001-10-17 François Pinard <pinard@iro.umontreal.ca>
* pymacs.py (pymacs_load_helper): Check the function attribute
before the interactions dictionary, for people having Python 2.x.
Reported by Carel Fellinger.
* pymacs.el, pymacs.py, pymacs-services: Add the usual GPL notices.
Reported by Richard Stallman.
2001-10-16 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.11.
* pymacs.el (pymacs-defuns): Accept interaction specifications.
(pymacs-defun): Process an interaction specification.
(pymacs-python-reference): Adjust for interactive functions.
* pymacs.py (pymacs_load_helper): Transmit interaction specifications.
Reported by Christian Tanzer and Stefan Reichör.
2001-10-15 François Pinard <pinard@iro.umontreal.ca>
* pymacs.py (pymacs_load_helper): Accept dashed module names.
Reported by Stefan Reichör.
* pymacs.el (pymacs-python-reference): Rewrite, as it was broken.
(documentation): Say it is a Python function, even if no docstring.
Reported by Stefan Reichör.
2001-10-12 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.10.
* pymacs.el (pymacs-print-for-eval): Handle multi-line strings.
Reported by Dave Sellars.
* pymacs.el (pymacs-print-for-eval): Remove string text properties.
Reported by Eli Zaretskii.
2001-10-06 François Pinard <pinard@iro.umontreal.ca>
* pymacs.py (Let.__nonzero__): New.
2001-09-28 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.9.
2001-09-26 François Pinard <pinard@iro.umontreal.ca>
* pymacs.py (Let.push): Save the value of the symbol, not the
symbol itself.
2001-09-25 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.8.
* pymacs.py (Let): New class.
* pymacs.el: New variable pymacs-use-hash-tables, set to t when
hash tables are available, or nil otherwise. Use it. This is so
older Emacs would work.
Reported by Dirk Vleugels.
2001-09-21 François Pinard <pinard@iro.umontreal.ca>
* pymacs.el (pymacs-defun): Ensure the function is registered
at definition, not at call time. Otherwise, it would never be
garbage-collected if it is never called.
2001-09-20 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.7.
* pymacs.el (pymacs-print-for-apply): Also accept Python objects
for a function, instead of requiring strings.
(pymacs-defun): Use a Python object, not an explicit string reference.
(pymacs-python): Merge pymacs-save-index.
(pymacs-save-index): Deleted.
2001-09-18 François Pinard <pinard@iro.umontreal.ca>
* pymacs.el (pymacs-load): Accept a noerror argument.
2001-09-17 François Pinard <pinard@iro.umontreal.ca>
* setup: New script.
* Makefile: Use it.
* pymacs.py (Symbol.set): Make things simpler when value is None.
* pymacs.el (pymacs-print-for-eval): Use Python lists to represent
LISP proper lists and Python tuples to represent LISP vectors,
instead of the other way around.
* pymacs.py (pymacs_load_helper, print_lisp): Similar changes.
Reported by John Wiegley.
2001-09-16 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.6.
* pymacs.el (pymacs-start-services, pymacs-print-for-eval,
pymacs-round-trip): Protect match data.
2001-09-15 François Pinard <pinard@iro.umontreal.ca>
* pymacs.el (documentation): Completed. Now into service.
(pymacs-documentation): Deleted.
(pymacs-python-reference): New.
* pymacs.el (pymacs-print-for-eval): Use car-safe.
2001-09-14 François Pinard <pinard@iro.umontreal.ca>
* pymacs.el (pymacs-print-for-eval): replace-regexp-in-string does
not exist in older Emacs versions, so use paraphrases.
Reported by Carey Evans.
* pymacs.el (pymacs-start-services): Set pymacs-transit-buffer
permanently only at end of the function, in case anything fails.
Reported by Carey Evans.
2001-09-13 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.5.
* pymacs.el (documentation, pymacs-documentation): New, experimental.
* pymacs.py (doc_string): New.
(pymacs_load_helper): The result should evaluate to the module.
2001-09-12 François Pinard <pinard@iro.umontreal.ca>
* pymacs.py (pymacs_load_helper): Use reload instead of __import__
whenever the module was already loaded.
* pymacs.py (pymacs_load_helper): Return t when there is nothing
to define, instead of returning a noisy pymacs-defuns noop.
* Makefile (dist): Update a version-less symbolic link.
* pymacs.el (pymacs-python, pymacs-defun): New functions.
(pymacs-defuns): Use pymacs-defun.
* pymacs.py (print_lisp): Use the above.
* pymacs.py (Server): Free all accumulated LISP indices, while
replying for another reason. This should decrease overhead.
(Lisp.__del__): Delay freeing LISP, do not free one index at a time.
* pymacs.el (pymacs-free-lisp): Free many indices at once.
* pymacs.el (pymacs-start-services, pymacs-round-trip): Recognise
reply even when not at beginning of line. The Python module may
print incomplete lines, unrelated to the communication protocol.
2001-09-11 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.4.
* pymacs.py (zombie): New, so to get a clear diagnostic.
(zombie_python): Link objects to the above function.
* pymacs.el (pymacs-terminate-services): Ask for confirmation if
any object in LISP space is still in use on the Python side.
* pymacs-test.el (try-lisp): Do not terminate the helper.
* pymacs.py (Buffer): New class, yet empty for now.
* pymacs.el (pymacs-print-for-eval): Use it.
Reported by Brian McErlean.
* pymacs.py (Table): New class.
* pymacs.el (pymacs-print-for-eval): Use it.
Reported by Brian McErlean.
* pymacs.py (List, Vector): New classes, split out of Lisp class.
* pymacs.el (pymacs-print-for-eval): Use them.
(pymacs-lisp-length, pymacs-lisp-ref, pymacs-list-set): Deleted.
Reported by Brian McErlean.
* pymacs.py (Server.loop): Allow keyboard interrupts through.
* pymacs.el: Use Lisp instead of Handle. Rename
pymacs-handle-length to pymacs-lisp-length, pymacs-handle-ref to
pymacs-lisp-ref, pymacs-handle-set o pymacs-lisp-set,
pymacs-allocate-handle to pymacs-allocate-lisp and
pymacs-free-handle to pymacs-free-lisp.
* pymacs.py: Rename Lisp to Lisp_Interface, and Handle to Lisp.
Adjust for other renamings above.
* pymacs.el: Rename pymacs-id to pymacs-python. Ajust for below.
* pymacs.py: Rename handles to python, free_handles to
free_python, zombie_handles to zombie_python and allocate_handle
to allocate_python.
* pymacs.el (pymacs-proper-list-p): New function. Use it
everywhere instead of listp, which is not what I thought it was!
* pymacs.el (pymacs-serve-until-reply): In case of LISP error,
transmit a list of one argument, instead of the argument itself,
to print-for-apply. This was preventing proper diagnostic.
Correct a similar error for when expansion is requested.
* pymacs.el (pymacs-print-for-eval): Do not transmit a symbol
by its name, when it comes from another oblist than the main one.
* pymacs.py (print_lisp): Transmit pymacs-id as a dotted pair.
* pymacs.el (pymacs-print-for-eval): Adjusted.
* pymacs.el (pymacs-print-for-eval): Use lisp[], not sym[].
Avoid double escaping of the transmitted string in this case.
Reported by Brian McErlean.
2001-09-10 François Pinard <pinard@iro.umontreal.ca>
* : Release 0.3.
* pymacs.py (Server.send): Ensure an end of line after reply.
* pymacs.el (pymacs-round-trip): Do not add one after Python replies.
* pymacs.el (pymacs-round-trip): Check for vanishing helper process.
(pymacs-serve-until-reply): Get text without catching errors, than
eval. Else, protocol errors get reported back to Python.
* pymacs.py (Server.ProtocolError): New. Better than AssertError.
If it occurs, get out of program, do not keep returning errors.
Reported by Carey Evans.
* pymacs.el (pymacs-round-trip): If point coincides with marker,
just keep it that way as the buffer grows.
* pymacs.el (pymacs-start-services): If the hash table already
exists, inform the Python side of IDs that it should not reuse.
Otherwise, old lambdas may randomly refer to new Python objects.
(pymacs-terminate-services): Remember Python IDs, do not reset them.
* pymacs.py (zombie_handles): New.
* Makefile: Transmit $(pymacsdir) to pymacs-services.
* pymacs-services: Handle it.
* pymacs.py (print_lisp): Process an empty tuple properly.
Reported by Carey Evans.
* pymacs.el (pymacs-start-services): With run-at-time, use `20 20'
instead of `t 20', so XEmacs is happy.
Reported by Carey Evans.
* pymacs.el (pymacs-start-services, pymacs-terminate-services):
Use `post-gc-hook' if available, instead of using a timer.
Reported by Gerd Möllman.
* pymacs.py (Symbol.value, Symbol.copy): Add argument self.
(print_lisp): Quote symbols if quoted=1.
2001-09-09 François Pinard <pinard@iro.umontreal.ca>
* pymacs.el (pymacs-defuns): New function.
* pymacs.py: Use it. This should allow faster imports.
* Makefile, pymacs.el, pymacs.py: Use `(pymacs-version VERSION)',
not `(started)'. Check for version discrepancies.
* Makefile: A bit more parameterization.
* : Release 0.2, including ideas and suggestions from others.
Reported by Brian McErlean, Carel Fellinger, Cedric Adjih,
Marcin Qrczak Kowalczyk, Paul Winkler and Steffen Ries.