emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A prototype for a binding based approach to proper namespaces


From: Vladimir Sedach
Subject: Re: A prototype for a binding based approach to proper namespaces
Date: Sat, 09 May 2020 15:52:29 -0700
User-agent: mu4e 1.3.10; emacs 26.2

Hi Andrea,

The implementation reminds me of how Corman Common Lisp implements
thread-local dynamic binding, minus the chaining of bindings.

Here are some comments on the document:

> potentially could open the door to other interesting options like
> namespace versioning. Different version of the same library could
> then coexist loaded.

This is an interesting idea. In R6RS, library definitions and imports
include optional version information, but if you look at section 7.9
of the R6RS rationale document:

> Implementations are encouraged to prohibit two libraries with the
> same name but different versions to coexist within the same program.
> While this prevents the combination of libraries and programs that
> require different versions of the same library, it eliminates the
> potential for having multiple copies of a library's state

http://www.r6rs.org/final/html/r6rs-rationale/r6rs-rationale-Z-H-9.html

So it seems that the use of R6RS library version numbers is intended
for dependency management only.

I think the same reasoning applies to Elisp. For example, a package
could change the type of arguments it accepts for a customizable
variable. This recently happened in a few places in mu4e. Or a change
in the data structures used in some resource outside of the
namespace, such as a file somewhere on disk.

But versioning information could be used for dependency management if
shared between namespaces, require, and package.el

--
Vladimir Sedach
Software engineering services in Los Angeles https://oneofus.la



reply via email to

[Prev in Thread] Current Thread [Next in Thread]