LINUX.ORG.RU

История изменений

Исправление naryl, (текущая версия) :

Я пакеты Tcl дальше в комменте описал. Там можно обращаться глобально, начав полное имя символа с двоеточия, а можно относительно текущего пакета. Ну и пакеты иерархичные, что потребует изменения синтаксиса read для полных имён символов.

Кстати, у всех package-local-nicknames в CL есть проблема с write/read локально-переименованных пакетов. Появляются такие штуки как find-package-using-package. С иерархическими пакетами и этой фичёй из Tcl можно локально-переименованные пакеты представлять просто как локальные пакеты, являющиеся псевдонимами других. Например:

(in-package :my-app)
(local-nickname threads :bordeaux-threads)
(defun start ()
  (threads:make-thread #'my-entry-point))

После этого символы из :bordeaux-threads окажутся доступны по, например, :my-app:threads:make-thread. И никаких костылей с write/read, кроме самого изменения синтаксиса полного имени символа.

/me кастует обратно Monk

Исправление naryl, :

Я пакеты Tcl дальше в комменте описал. Там можно обращаться глобально, начав полное имя символа с двоеточия, а можно относительно текущего пакета. Ну и пакеты иерархичные, что потребует изменения синтаксиса read для полных имён символов.

Кстати, у всех package-local-nicknames в CL есть проблема с write/read локально-переименованных пакетов. Появляются такие штуки как find-package-using-package. С иерархическими пакетами и этой фичёй из Tcl можно локально-переименованные пакеты представлять просто как локальные пакеты, являющиеся псевдонимами других. Например:

(in-package :my-app)
(local-nickname threads :bordeaux-threads)
(defun start ()
  (threads:make-thread #'my-entry-point))

После этого символы из :bordeaux-threads окажутся доступны по, например, :my-app:threads:make-thread. И никаких костылей с write/read, кроме самого изменения синтаксиса полного имени символа.

Исправление naryl, :

Я пакеты Tcl дальше в комменте описал. Там можно обращаться глобально, начав полное имя символа с двоеточия, а можно относительно текущего пакета. Ну и пакеты иерархичные, что потребует изменения синтаксиса read для полных имён символов.

Кстати, у всех package-local-nicknames в CL есть проблема с write/read локально-переименованных пакетов. Появляются такие штуки как find-package-using-package. С иерархическими пакетами и этой фичёй из Tcl можно локально-переименованные пакеты представлять просто как локальные пакеты, являющиеся псевдонимами других. Например:

(in-package :my-app)
(local-nickname threads :bordeaux-threads)
(defun start ()
  (threads:make-thread #'my-entry-point))

После этого символы из :bordeaux-threads окажутся доступны по, например, :my-app:threads:make-thread. И никаких костылей с write/read.

Исправление naryl, :

Я пакеты Tcl дальше в комменте описал. Там можно обращаться глобально, начав полное имя символа с двоеточия, а можно относительно текущего пакета. Ну и пакеты иерархичные, что потребует изменения синтаксиса read для полных имён символов.

Кстати, у всех package-local-nicknames в CL есть проблема с write/read локально-переименованных пакетов. Появляются такие штуки как find-package-using-package. С иерархическими пакетами и этой фичёй из Tcl можно локально-переименованные пакеты представлять просто как локальные пакеты, являющиеся псевдонимами других. Например:

(in-package :my-app)
(local-nickname threads :bordeaux-threads)
(defun start ()
  (threads:make-thread #'my-entry-point))

После этого символы из :bordeaux-threads окажутся доступны по :my-app:threads:make-thread. И никаких костылей с write/read.

Исправление naryl, :

Я пакеты Tcl дальше в комменте описал. Там можно обращаться глобально, начав полное имя символа с двоеточия, а можно относительно текущего пакета. Ну и пакеты иерархичные, что потребует изменения синтаксиса read для полных имён символов.

Кстати, у всех package-local-nicknames в CL есть проблема с write/read локально-переименованных пакетов. Появляются такие штуки как find-package-using-package.

С иерархическими пакетами и этой фичёй из Tcl можно локально-переименованные пакеты представлять просто как локальные пакеты, являющиеся псевдонимами других. Например:

(in-package :my-app)
(local-nickname threads :bordeaux-threads)
(defun start ()
  (threads:make-thread #'my-entry-point))

После этого символы из :bordeaux-threads окажутся доступны по :my-app:threads:make-thread. И никаких костылей с write/read.

Исправление naryl, :

Я пакеты Tcl дальше в комменте описал. Там можно обращаться глобально, начав полное имя символа с двоеточия, а можно относительно текущего пакета. Ну и пакеты иерархичные, что потребует изменения синтаксиса read.

Кстати, у всех package-local-nicknames в CL есть проблема с write/read локально-переименованных пакетов. Появляются такие штуки как find-package-using-package.

С иерархическими пакетами и этой фичёй из Tcl можно локально-переименованные пакеты представлять просто как локальные пакеты, являющиеся псевдонимами других. Например:

(in-package :my-app)
(local-nickname threads :bordeaux-threads)
(defun start ()
  (threads:make-thread #'my-entry-point))

После этого символы из :bordeaux-threads окажутся доступны по :my-app:threads:make-thread. И никаких костылей с write/read.

Исходная версия naryl, :

Я пакеты Tcl дальше в том комменте описал. Там можно обращаться глобально, начав полное имя символа с двоеточия, а можно относительно текущего пакета. Ну и пакеты иерархичные, что потребует изменения синтаксиса read.

Кстати, у всех package-local-nicknames в CL есть проблема с write/read локально-переименованных пакетов. Появляются такие штуки как find-package-using-package.

С иерархическими пакетами и этой фичёй из Tcl можно локально-переименованные пакеты представлять просто как локальные пакеты, являющиеся псевдонимами других. Например:

(in-package :my-app)
(local-nickname threads :bordeaux-threads)
(defun start ()
  (threads:make-thread #'my-entry-point))

После этого символы из :bordeaux-threads окажутся доступны по :my-app:threads:make-thread. И никаких костылей с write/read.