unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* CL packages landed
@ 2022-10-21  4:47 Gerd Möllmann
  2022-10-21  5:35 ` Po Lu
                   ` (5 more replies)
  0 siblings, 6 replies; 28+ messages in thread
From: Gerd Möllmann @ 2022-10-21  4:47 UTC (permalink / raw)
  To: emacs-devel

I've pushed the branch "pkg" which implements CL packages for Emacs.

Before Someone (tm) gets the idea of blowing up something like Internet
cables instead of pipelines, or we have blackouts here, or whatever, I
thought I'd better make this accessible.

What to expect:

- It runs on macOS with unchanged init file.  I'm not using much, but I
  can say that it works with Helm and Lsp,

- I know of a bug when connecting to Gmail imap using Gnus that's not
  there in master.

- YMMV, it's all only a few weeks old, if at all.


What it does:

- Lisp_Package is a new Lisp type.

- There are 2 predefined packages "emacs" and "keyword", and a
  current package *package* (buffer-local IIRC).

- The whole package stuff is available very early in C. It's initialized
  right after init_alloc.

- Obarrays are gone.  Good riddance. I removed them in a
  backward-compatible way.

- Symbols have packages (symbol-package).  Uninterned symbols have
  a nil package, others have "emacs" or "keyword".

- Lisp_Symbol::next is gone.  So, the size of Lisp_Symbol is unchanged.

- The symbol name of keywords does NOT include the colon.  That turned
  out the only sane way to do it, after some experimentation.

- A number of places in C that assumed that symbol names of keywords
  start with ':' are changed.  On the Lisp side, symbol-name for
  keywords returns a string starting with ':'.  I tried without, but
  that wasn't compatible enough.  There is a cl-symbol-name not
  prepending the ':'.

- Some functions like list-all-packages, make-package are implemented in
  Lisp.  Many others are still missing, defpackage most notably.  I plan
  to add them based on public-domain code from CMUCL.

- Reading symbols and printing symbols is changed.

- A new variable package-prefixes controls if ':' in symbol names is
  interpreted as a separating package names from symbol names.  Default
  is not to.  Astonishingly many code uses such symbol names, the best
  one I've seen is a complete URL 'http://...' :-).


What it is not/does not have:

- Bug-free, for sure, but it is pretty usable.

- Documentation.

- A complete Lisp-side implementation of packages (defpackage,
  use-package, ...

- Tests of the new stuff.  There is a stub under test/, but it doesn't
  do much.

- Fixes for tests of old stuff.  In fact, I haven't run make check yet.
  Weeding out all bugs is currently not my focus.

- shorthand.el is currently not supported.

- Support for pure space is missing.  I have cherry-picked a commit by
  Stefan that removes uses of pure_alloc.  I didn't want to deal with
  pure space, and I can't test it anyway here.

- Other stuff that I currently forget.

And the code is not entirely terrible, at least IMO :-).


Plans:

I think I'll continue using this branch.  No plans, no commitments
though.


Have fun :-)






^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2022-10-24  4:17 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-10-21  4:47 CL packages landed Gerd Möllmann
2022-10-21  5:35 ` Po Lu
2022-10-21  6:42 ` Stefan Kangas
2022-10-21  6:48   ` Gerd Möllmann
2022-10-21  6:55     ` Po Lu
2022-10-21  6:58       ` Gerd Möllmann
2022-10-21  7:46     ` Eli Zaretskii
2022-10-21  8:01       ` Gerd Möllmann
2022-10-21 10:48         ` Eli Zaretskii
2022-10-21 10:49           ` Gerd Möllmann
2022-10-21 13:04             ` Stefan Monnier
2022-10-21 14:01               ` Gerd Möllmann
2022-10-22  9:40               ` Michael Albinus
2022-10-22 10:20                 ` Gerd Möllmann
2022-10-22 15:09                   ` Michael Albinus
2022-10-22 15:45                     ` Gerd Möllmann
2022-10-22 10:24                 ` Stefan Kangas
2022-10-22 15:06                   ` Michael Albinus
2022-10-21  6:50   ` Gerd Möllmann
2022-10-21  7:42 ` Andrea Corallo
2022-10-21  7:57   ` Gerd Möllmann
2022-10-21 15:06 ` [External] : " Drew Adams
2022-10-21 17:21   ` Gerd Möllmann
2022-10-21 20:13     ` Drew Adams
2022-10-22 10:56 ` Philip Kaludercic
2022-10-22 12:13   ` Gerd Möllmann
2022-10-23 19:14 ` Richard Stallman
2022-10-24  4:17   ` Gerd Möllmann

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).