Make sure the image knows how to print circular data structures.

Our catalogs representation is designed to be circular, which helps
navigating the graph from anywhere when processing it. This means that we
need to have *print-circle* set to t in the pgloader image, otherwise we
might run into Control stack exhausted when trying to print out debug
information...

Fixes #865, #800, #810, #859, #824.
This commit is contained in:
Dimitri Fontaine 2018-11-16 00:03:31 +01:00
parent e291c502ba
commit 8b1acbae87
2 changed files with 10 additions and 1 deletions

View File

@ -12,6 +12,13 @@
;; So that we can #+pgloader-image some code away, see main.lisp
(push :pgloader-image *features*)
;;;
;;; We need to support *print-circle* for the debug traces of the catalogs,
;;; and while at it let's enforce *print-pretty* too.
;;;
(setf *print-circle* t *print-pretty* t)
(in-package #:cl-user)
(defun close-foreign-libs ()

View File

@ -7,7 +7,9 @@
(defun make-kernel (worker-count
&key (bindings
`((*monitoring-queue* . ,*monitoring-queue*)
`((*print-circle* . ,*print-circle*)
(*print-pretty* . ,*print-pretty*)
(*monitoring-queue* . ,*monitoring-queue*)
(*copy-batch-rows* . ,*copy-batch-rows*)
(*copy-batch-size* . ,*copy-batch-size*)
(*rows-per-range* . ,*rows-per-range*)