Я думал слишком сложно: в моем случае (для выражения содержимого файла) алгоритм «SHA» -Secure Hash - фактически НЕ требуется, простая хеш-функция может сделать эту работу. Таким образом, будет использоваться CRC32, что позволяет последовательно добавлять байты.
defpackage является макросом. По сути, это расширено во время компиляции, не время выполнения. То, что Вы хотите, является чем-то, что называют во времени выполнения для создания нового пакета. Поэтому defpackage ничего не может сделать для Вас.
К счастью, существует также делать-пакет, который обеспечивает функции defpackage как функцию. Используйте его вместо defpackage.
Отказ состоит в том, чтобы ожидаться здесь, потому что макрос используется, когда его аргумент не должен быть оценен.
В Вашем первом make-package-from-path def-dynamic-package получит как аргумент список, который РАВЕН значению следующего выражения:
(list 'pathname-name 'path)
В Вашем случае Вы только хотите функцию:
(defun def-dynamic-package (name)
(defpackage (string-upcase name)
(:use :common-lisp)))
BTW при проверке CLHS Вы будете видеть, что первым аргументом defpackage не должен быть символ, но любой строковый указатель.