Subject: bug#78516: 30.1; Feature request: accept ':' as a library/package indicator in identifiers.

From: Marco Antoniotti <[email-masked]>
Date: Tue, 20 May 2025 23:52:30 +0200

--text follows this line--

This is a feature request.  The request is to modify the “Emacs Lisp Coding
Conventions” (https://www.gnu.org/software/emacs/manual/html_node/elisp/Coding-Conventions.html)
 in order to admit ':' as a package/library separator too.

That is, allow to write

pkg:var and
pkg::internal-fun

The ':’ and ‘::’ offer clearer visual clues for a reader, and is well established
in several languages (especially Common Lisp) for that purpose.

This will not affect any code written up to now, but it will make new
code more structured, by clearly indentifying what is part of which
library/package.

Cheers

Marco

In GNU Emacs 30.1 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1671.60
Version 10.14.6 (Build 18G9323)) of 2025-02-24 built on
builder10-14.lan
Windowing system distributor 'Apple', version 10.3.2575
System Description:  macOS 15.4.1

Configured using:
'configure --with-ns '--enable-locallisppath=/Library/Application
Support/Emacs/${version}/site-lisp:/Library/Application
Support/Emacs/site-lisp' --with-modules 'CFLAGS=-DFD_SETSIZE=10000
-DDARWIN_UNLIMITED_SELECT' --with-x-toolkit=no'

Configured features:
ACL GLIB GMP GNUTLS JPEG LIBXML2 MODULES NOTIFY KQUEUE NS PDUMPER PNG
RSVG SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER ZLIB

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Info

Minor modes in effect:
  recentf-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  isearch-fold-quotes-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/Users/marcoxa/.emacs.d/elpa/editorconfig-20250219.1528/editorconfig hides /Applications/Emacs.app/Contents/Resources/lisp/editorconfig
/Users/marcoxa/.emacs.d/elpa/editorconfig-20250219.1528/editorconfig-core hides /Applications/Emacs.app/Contents/Resources/lisp/editorconfig-core
/Users/marcoxa/.emacs.d/elpa/editorconfig-20250219.1528/editorconfig-conf-mode hides /Applications/Emacs.app/Contents/Resources/lisp/editorconfig-conf-mode
/Users/marcoxa/.emacs.d/elpa/editorconfig-20250219.1528/editorconfig-tools hides /Applications/Emacs.app/Contents/Resources/lisp/editorconfig-tools
/Users/marcoxa/.emacs.d/elpa/transient-20250516.1031/transient hides /Applications/Emacs.app/Contents/Resources/lisp/transient
/Users/marcoxa/.emacs.d/elpa/editorconfig-20250219.1528/editorconfig-core-handle hides /Applications/Emacs.app/Contents/Resources/lisp/editorconfig-core-handle
/Users/marcoxa/.emacs.d/elpa/bind-key-20230203.2004/bind-key hides /Applications/Emacs.app/Contents/Resources/lisp/bind-key
/Users/marcoxa/.emacs.d/elpa/editorconfig-20250219.1528/editorconfig-fnmatch hides /Applications/Emacs.app/Contents/Resources/lisp/editorconfig-fnmatch
/Users/marcoxa/.emacs.d/elpa/use-package-20230426.2324/use-package-jump hides /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-jump
/Users/marcoxa/.emacs.d/elpa/use-package-20230426.2324/use-package-ensure hides /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-ensure
/Users/marcoxa/.emacs.d/elpa/use-package-20230426.2324/use-package-core hides /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-core
/Users/marcoxa/.emacs.d/elpa/use-package-20230426.2324/use-package-delight hides /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-delight
/Users/marcoxa/.emacs.d/elpa/use-package-20230426.2324/use-package-diminish hides /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-diminish
/Users/marcoxa/.emacs.d/elpa/use-package-20230426.2324/use-package hides /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package
/Users/marcoxa/.emacs.d/elpa/use-package-20230426.2324/use-package-bind-key hides /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-bind-key
/Users/marcoxa/.emacs.d/elpa/use-package-20230426.2324/use-package-lint hides /Applications/Emacs.app/Contents/Resources/lisp/use-package/use-package-lint
/Users/marcoxa/.emacs.d/elpa/eglot-1.18/eglot hides /Applications/Emacs.app/Contents/Resources/lisp/progmodes/eglot
/Users/marcoxa/.emacs.d/elpa/track-changes-1.4/track-changes hides /Applications/Emacs.app/Contents/Resources/lisp/emacs-lisp/track-changes

Features:
(shadow sort mail-extr emacsbug message yank-media puny rfc822 mml
mml-sec epa epg rfc6068 epg-config gnus-util mm-decode mm-bodies
mm-encode mailabbrev gmm-utils mailheader sendmail mail-utils jka-compr
display-line-numbers flycheck shortdoc comp-common help-fns radix-tree
misearch multi-isearch view edmacro kmacro noutline outline mail-parse
rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr package-lint
let-alist imenu finder find-func lisp-mnt shell pcomplete thingatpt
files-x grep compile text-property-search comint ansi-osc ansi-color
ring time-date vc-git diff-mode track-changes vc-dispatcher dired-aux
dired dired-loaddefs wombat-theme iron-main pl1-mode hlasm-mode
jcl-poly-mode use-package-ensure use-package-core polymode poly-lock
polymode-base polymode-weave polymode-export polymode-compat advice
polymode-methods polymode-core format-spec polymode-classes eieio-custom
eieio-base color jcl-mode iron-main-mode easy-mmode iron-main-epf
derived iron-main-hercules-cmds iron-main-jcl-templates cl-extra
help-mode iron-main-utils iron-main-session iron-main-ruler-function
iron-main-widgets iron-main-vars desktop frameset ruler-mode recentf
tree-widget wid-edit sgml-mode facemenu dom erlang-start fortress-mode
scala-mode-auto finder-inf a68-mode-autoloads ada-mode-autoloads
ada-ref-man-autoloads auctex-autoloads tex-site auto-complete-autoloads
bitpack-autoloads cmake-font-lock-autoloads cmake-ide-autoloads
cmake-mode-autoloads cmake-project-autoloads company-autoloads
csv-mode-autoloads delight-autoloads eclipse-theme-autoloads
editorconfig-autoloads eglot-jl-autoloads eglot-autoloads
elisp-autofmt-autoloads ess-autoloads evil-autoloads
fantom-theme-autoloads flycheck-julia-autoloads flycheck-autoloads
flymake-swi-prolog-autoloads github-dark-vscode-theme-autoloads
gnat-compiler-autoloads goto-chg-autoloads haskell-mode-autoloads
highlight-indent-guides-autoloads highlight-indentation-autoloads
inspector-autoloads julia-mode-autoloads julia-repl-autoloads
julia-vterm-autoloads levenshtein-autoloads markdown-mode-autoloads
mimetypes-autoloads package-lint-flymake-autoloads
package-lint-autoloads pcre2el-autoloads pdf-tools-autoloads
popup-autoloads pq-autoloads rust-mode-autoloads
slime-repl-ansi-color-autoloads slime-autoloads macrostep-autoloads
slime-theme-autoloads sml-basis-autoloads sr-speedbar-autoloads
mode-icons-autoloads tablist-autoloads toml-autoloads
toml-mode-autoloads track-changes-autoloads
treemacs-all-the-icons-autoloads all-the-icons-autoloads
treemacs-icons-dired-autoloads treemacs-magit-autoloads magit-autoloads
pcase transient-autoloads magit-section-autoloads llama-autoloads
treemacs-tab-bar-autoloads treemacs-autoloads cfrs-autoloads
posframe-autoloads ht-autoloads hydra-autoloads lv-autoloads
pfuture-autoloads ace-window-autoloads avy-autoloads dash-autoloads
tuareg-autoloads rx caml-autoloads uniquify-files-autoloads
vc-darcs-autoloads vs-dark-theme-autoloads vs-light-theme-autoloads
vscdark-theme-autoloads vscode-dark-plus-theme-autoloads
vscode-icon-autoloads vterm-autoloads wisi-autoloads info
with-editor-autoloads yaml-mode-autoloads package browse-url url
url-proxy url-privacy url-expand url-methods url-history url-cookie
generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs icons password-cache json
subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib
rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook
vc-hooks lisp-float-type elisp-mode mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win tool-bar dnd fontset image
regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode
prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu
timer select scroll-bar mouse jit-lock font-lock syntax font-core
term/tty-colors frame minibuffer nadvice seq simple cl-generic
indonesian philippine cham georgian utf-8-lang misc-lang vietnamese
tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek
romanian slovak czech european ethiopic indian cyrillic chinese
composite emoji-zwj charscript charprop case-table epa-hook
jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs
theme-loaddefs faces cus-face macroexp files window text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget keymap
hashtable-print-readable backquote threads kqueue cocoa ns multi-tty
make-network-process emacs)

Memory information:
((conses 16 340124 50272) (symbols 48 53580 0)
(strings 32 101190 7806) (string-bytes 1 2727917) (vectors 16 29750)
(vector-slots 8 288878 39073) (floats 8 353 347)
(intervals 56 4690 0) (buffers 992 22))