Loading tools/build-unidata.lisp +58 −109 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ ;;; This code was written by Paul Foley and has been placed in the public ;;; domain. ;;; (ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/tools/build-unidata.lisp,v 1.1.2.12 2009/06/09 13:07:50 rtoy Exp $") (ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/tools/build-unidata.lisp,v 1.1.2.13 2009/06/10 00:28:22 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; Loading Loading @@ -415,7 +415,47 @@ (write32 (n stm) (write16 (ldb (byte 16 16) n) stm) (write16 (ldb (byte 16 0) n) stm)) (update-index (val array) (write-ntrie32 (data stm) (write-byte (ntrie32-split data) stm) (write16 (length (ntrie32-hvec data)) stm) (write16 (length (ntrie32-mvec data)) stm) (write16 (length (ntrie32-lvec data)) stm) (write-vector (ntrie32-hvec data) stm :endian-swap :network-order) (write-vector (ntrie32-mvec data) stm :endian-swap :network-order) (write-vector (ntrie32-lvec data) stm :endian-swap :network-order)) (write-ntrie16 (data stm) (write-byte (bidi-split data) stm) (write16 (length (bidi-hvec data)) stm) (write16 (length (bidi-mvec data)) stm) (write16 (length (bidi-lvec data)) stm) (write-vector (bidi-hvec data) stm :endian-swap :network-order) (write-vector (bidi-mvec data) stm :endian-swap :network-order) (write-vector (bidi-lvec data) stm :endian-swap :network-order)) (write-ntrie8 (data stm) (write-byte (ntrie8-split data) stm) (write16 (length (ntrie8-hvec data)) stm) (write16 (length (ntrie8-mvec data)) stm) (write16 (length (ntrie8-lvec data)) stm) (write-vector (ntrie8-hvec data) stm :endian-swap :network-order) (write-vector (ntrie8-mvec data) stm :endian-swap :network-order) (write-vector (ntrie8-lvec data) stm :endian-swap :network-order)) (write-ntrie2 (data stm) (write-byte (ntrie2-split data) stm) (write16 (length (ntrie2-hvec data)) stm) (write16 (length (ntrie2-mvec data)) stm) (write16 (length (ntrie2-lvec data)) stm) (write-vector (ntrie2-hvec data) stm :endian-swap :network-order) (write-vector (ntrie2-mvec data) stm :endian-swap :network-order) (write-vector (ntrie2-lvec data) stm :endian-swap :network-order)) (write-ntrie1 (data stm) (write-byte (ntrie1-split data) stm) (write16 (length (ntrie1-hvec data)) stm) (write16 (length (ntrie1-mvec data)) stm) (write16 (length (ntrie1-lvec data)) stm) (write-vector (ntrie1-hvec data) stm :endian-swap :network-order) (write-vector (ntrie1-mvec data) stm :endian-swap :network-order) (write-vector (ntrie1-lvec data) stm :endian-swap :network-order)) (updavte-index (val array) (let ((result (vector-push val array))) (unless result (error "Index array too short for the data being written"))))) Loading Loading @@ -457,77 +497,35 @@ ;; Codepoint-to-name mapping (let ((data (unidata-name *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie32-split data) stm) (write16 (length (ntrie32-hvec data)) stm) (write16 (length (ntrie32-mvec data)) stm) (write16 (length (ntrie32-lvec data)) stm) (write-vector (ntrie32-hvec data) stm :endian-swap :network-order) (write-vector (ntrie32-mvec data) stm :endian-swap :network-order) (write-vector (ntrie32-lvec data) stm :endian-swap :network-order)) (write-ntrie32 data stm)) ;; Codepoint-to-category table (let ((data (unidata-category *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie8-split data) stm) (write16 (length (ntrie8-hvec data)) stm) (write16 (length (ntrie8-mvec data)) stm) (write16 (length (ntrie8-lvec data)) stm) (write-vector (ntrie8-hvec data) stm :endian-swap :network-order) (write-vector (ntrie8-mvec data) stm :endian-swap :network-order) (write-vector (ntrie8-lvec data) stm :endian-swap :network-order)) (write-ntrie8 data stm)) ;; Simple case mapping table (let ((data (unidata-scase *unicode-data*))) (update-index (file-position stm) index) (write-byte (scase-split data) stm) (write16 (length (scase-hvec data)) stm) (write16 (length (scase-mvec data)) stm) (write16 (length (scase-lvec data)) stm) (write-vector (scase-hvec data) stm :endian-swap :network-order) (write-vector (scase-mvec data) stm :endian-swap :network-order) (write-vector (scase-lvec data) stm :endian-swap :network-order) (write-ntrie32 data stm) (write-byte (length (scase-svec data)) stm) (write-vector (scase-svec data) stm :endian-swap :network-order)) ;; Numeric data (let ((data (unidata-numeric *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie32-split data) stm) (write16 (length (ntrie32-hvec data)) stm) (write16 (length (ntrie32-mvec data)) stm) (write16 (length (ntrie32-lvec data)) stm) (write-vector (ntrie32-hvec data) stm :endian-swap :network-order) (write-vector (ntrie32-mvec data) stm :endian-swap :network-order) (write-vector (ntrie32-lvec data) stm :endian-swap :network-order)) (write-ntrie32 data stm)) ;; Decomposition data (let ((data (unidata-decomp *unicode-data*))) (update-index (file-position stm) index) (write-byte (decomp-split data) stm) (write16 (length (decomp-hvec data)) stm) (write16 (length (decomp-mvec data)) stm) (write16 (length (decomp-lvec data)) stm) (write-vector (decomp-hvec data) stm :endian-swap :network-order) (write-vector (decomp-mvec data) stm :endian-swap :network-order) (write-vector (decomp-lvec data) stm :endian-swap :network-order) (write-ntrie32 data stm) (write16 (length (decomp-tabl data)) stm) (write-vector (decomp-tabl data) stm :endian-swap :network-order)) ;; Combining classes (let ((data (unidata-combining *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie8-split data) stm) (write16 (length (ntrie8-hvec data)) stm) (write16 (length (ntrie8-mvec data)) stm) (write16 (length (ntrie8-lvec data)) stm) (write-vector (ntrie8-hvec data) stm :endian-swap :network-order) (write-vector (ntrie8-mvec data) stm :endian-swap :network-order) (write-vector (ntrie8-lvec data) stm :endian-swap :network-order)) (write-ntrie8 data stm)) ;; Bidi data (let ((data (unidata-bidi *unicode-data*))) (update-index (file-position stm) index) (write-byte (bidi-split data) stm) (write16 (length (bidi-hvec data)) stm) (write16 (length (bidi-mvec data)) stm) (write16 (length (bidi-lvec data)) stm) (write-vector (bidi-hvec data) stm :endian-swap :network-order) (write-vector (bidi-mvec data) stm :endian-swap :network-order) (write-vector (bidi-lvec data) stm :endian-swap :network-order) (write-ntrie16 data stm) (write-byte (length (bidi-tabl data)) stm) (write-vector (bidi-tabl data) stm :endian-swap :network-order)) ;; Unicode 1.0 names Loading @@ -548,47 +546,17 @@ (write-vector (dictionary-namev data) stm :endian-swap :network-order)) (let ((data (unidata-name1 *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie32-split data) stm) (write16 (length (ntrie32-hvec data)) stm) (write16 (length (ntrie32-mvec data)) stm) (write16 (length (ntrie32-lvec data)) stm) (write-vector (ntrie32-hvec data) stm :endian-swap :network-order) (write-vector (ntrie32-mvec data) stm :endian-swap :network-order) (write-vector (ntrie32-lvec data) stm :endian-swap :network-order)) (write-ntrie32 data stm)) ;; Normalization quick-check data (update-index (file-position stm) index) (let ((data (unidata-qc-nfd *unicode-data*))) (write-byte (ntrie1-split data) stm) (write16 (length (ntrie1-hvec data)) stm) (write16 (length (ntrie1-mvec data)) stm) (write16 (length (ntrie1-lvec data)) stm) (write-vector (ntrie1-hvec data) stm :endian-swap :network-order) (write-vector (ntrie1-mvec data) stm :endian-swap :network-order) (write-vector (ntrie1-lvec data) stm :endian-swap :network-order)) (write-ntrie1 data stm)) (let ((data (unidata-qc-nfkd *unicode-data*))) (write-byte (ntrie1-split data) stm) (write16 (length (ntrie1-hvec data)) stm) (write16 (length (ntrie1-mvec data)) stm) (write16 (length (ntrie1-lvec data)) stm) (write-vector (ntrie1-hvec data) stm :endian-swap :network-order) (write-vector (ntrie1-mvec data) stm :endian-swap :network-order) (write-vector (ntrie1-lvec data) stm :endian-swap :network-order)) (write-ntrie1 data stm)) (let ((data (unidata-qc-nfc *unicode-data*))) (write-byte (ntrie2-split data) stm) (write16 (length (ntrie2-hvec data)) stm) (write16 (length (ntrie2-mvec data)) stm) (write16 (length (ntrie2-lvec data)) stm) (write-vector (ntrie2-hvec data) stm :endian-swap :network-order) (write-vector (ntrie2-mvec data) stm :endian-swap :network-order) (write-vector (ntrie2-lvec data) stm :endian-swap :network-order)) (write-ntrie2 data stm)) (let ((data (unidata-qc-nfkc *unicode-data*))) (write-byte (ntrie2-split data) stm) (write16 (length (ntrie2-hvec data)) stm) (write16 (length (ntrie2-mvec data)) stm) (write16 (length (ntrie2-lvec data)) stm) (write-vector (ntrie2-hvec data) stm :endian-swap :network-order) (write-vector (ntrie2-mvec data) stm :endian-swap :network-order) (write-vector (ntrie2-lvec data) stm :endian-swap :network-order)) (write-ntrie2 data stm)) ;; Write composition exclusion table (let ((data (unidata-comp-exclusions *unicode-data*))) (update-index (file-position stm) index) Loading @@ -597,13 +565,7 @@ ;; Write full-case lower data (flet ((dump-full-case (data) (update-index (file-position stm) index) (write-byte (full-case-split data) stm) (write16 (length (full-case-hvec data)) stm) (write16 (length (full-case-mvec data)) stm) (write16 (length (full-case-lvec data)) stm) (write-vector (full-case-hvec data) stm :endian-swap :network-order) (write-vector (full-case-mvec data) stm :endian-swap :network-order) (write-vector (full-case-lvec data) stm :endian-swap :network-order) (write-ntrie32 data stm) (write16 (length (full-case-tabl data)) stm) (write-vector (full-case-tabl data) stm :endian-swap :network-order))) (dump-full-case (unidata-full-case-lower *unicode-data*)) Loading @@ -612,24 +574,11 @@ ;; Write case folding data (let ((data (unidata-case-fold-simple *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie32-split data) stm) (write16 (length (ntrie32-hvec data)) stm) (write16 (length (ntrie32-mvec data)) stm) (write16 (length (ntrie32-lvec data)) stm) (write-vector (ntrie32-hvec data) stm :endian-swap :network-order) (write-vector (ntrie32-mvec data) stm :endian-swap :network-order) (write-vector (ntrie32-lvec data) stm :endian-swap :network-order) ) (write-ntrie32 data stm)) ;; case-folding full (let ((data (unidata-case-fold-full *unicode-data*))) (update-index (file-position stm) index) (write-byte (case-folding-split data) stm) (write16 (length (case-folding-hvec data)) stm) (write16 (length (case-folding-mvec data)) stm) (write16 (length (case-folding-lvec data)) stm) (write-vector (case-folding-hvec data) stm :endian-swap :network-order) (write-vector (case-folding-mvec data) stm :endian-swap :network-order) (write-vector (case-folding-lvec data) stm :endian-swap :network-order) (write-ntrie32 data stm) (write16 (length (case-folding-tabl data)) stm) (write-vector (case-folding-tabl data) stm :endian-swap :network-order)) Loading Loading
tools/build-unidata.lisp +58 −109 Original line number Diff line number Diff line Loading @@ -4,7 +4,7 @@ ;;; This code was written by Paul Foley and has been placed in the public ;;; domain. ;;; (ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/tools/build-unidata.lisp,v 1.1.2.12 2009/06/09 13:07:50 rtoy Exp $") (ext:file-comment "$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/tools/build-unidata.lisp,v 1.1.2.13 2009/06/10 00:28:22 rtoy Exp $") ;;; ;;; ********************************************************************** ;;; Loading Loading @@ -415,7 +415,47 @@ (write32 (n stm) (write16 (ldb (byte 16 16) n) stm) (write16 (ldb (byte 16 0) n) stm)) (update-index (val array) (write-ntrie32 (data stm) (write-byte (ntrie32-split data) stm) (write16 (length (ntrie32-hvec data)) stm) (write16 (length (ntrie32-mvec data)) stm) (write16 (length (ntrie32-lvec data)) stm) (write-vector (ntrie32-hvec data) stm :endian-swap :network-order) (write-vector (ntrie32-mvec data) stm :endian-swap :network-order) (write-vector (ntrie32-lvec data) stm :endian-swap :network-order)) (write-ntrie16 (data stm) (write-byte (bidi-split data) stm) (write16 (length (bidi-hvec data)) stm) (write16 (length (bidi-mvec data)) stm) (write16 (length (bidi-lvec data)) stm) (write-vector (bidi-hvec data) stm :endian-swap :network-order) (write-vector (bidi-mvec data) stm :endian-swap :network-order) (write-vector (bidi-lvec data) stm :endian-swap :network-order)) (write-ntrie8 (data stm) (write-byte (ntrie8-split data) stm) (write16 (length (ntrie8-hvec data)) stm) (write16 (length (ntrie8-mvec data)) stm) (write16 (length (ntrie8-lvec data)) stm) (write-vector (ntrie8-hvec data) stm :endian-swap :network-order) (write-vector (ntrie8-mvec data) stm :endian-swap :network-order) (write-vector (ntrie8-lvec data) stm :endian-swap :network-order)) (write-ntrie2 (data stm) (write-byte (ntrie2-split data) stm) (write16 (length (ntrie2-hvec data)) stm) (write16 (length (ntrie2-mvec data)) stm) (write16 (length (ntrie2-lvec data)) stm) (write-vector (ntrie2-hvec data) stm :endian-swap :network-order) (write-vector (ntrie2-mvec data) stm :endian-swap :network-order) (write-vector (ntrie2-lvec data) stm :endian-swap :network-order)) (write-ntrie1 (data stm) (write-byte (ntrie1-split data) stm) (write16 (length (ntrie1-hvec data)) stm) (write16 (length (ntrie1-mvec data)) stm) (write16 (length (ntrie1-lvec data)) stm) (write-vector (ntrie1-hvec data) stm :endian-swap :network-order) (write-vector (ntrie1-mvec data) stm :endian-swap :network-order) (write-vector (ntrie1-lvec data) stm :endian-swap :network-order)) (updavte-index (val array) (let ((result (vector-push val array))) (unless result (error "Index array too short for the data being written"))))) Loading Loading @@ -457,77 +497,35 @@ ;; Codepoint-to-name mapping (let ((data (unidata-name *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie32-split data) stm) (write16 (length (ntrie32-hvec data)) stm) (write16 (length (ntrie32-mvec data)) stm) (write16 (length (ntrie32-lvec data)) stm) (write-vector (ntrie32-hvec data) stm :endian-swap :network-order) (write-vector (ntrie32-mvec data) stm :endian-swap :network-order) (write-vector (ntrie32-lvec data) stm :endian-swap :network-order)) (write-ntrie32 data stm)) ;; Codepoint-to-category table (let ((data (unidata-category *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie8-split data) stm) (write16 (length (ntrie8-hvec data)) stm) (write16 (length (ntrie8-mvec data)) stm) (write16 (length (ntrie8-lvec data)) stm) (write-vector (ntrie8-hvec data) stm :endian-swap :network-order) (write-vector (ntrie8-mvec data) stm :endian-swap :network-order) (write-vector (ntrie8-lvec data) stm :endian-swap :network-order)) (write-ntrie8 data stm)) ;; Simple case mapping table (let ((data (unidata-scase *unicode-data*))) (update-index (file-position stm) index) (write-byte (scase-split data) stm) (write16 (length (scase-hvec data)) stm) (write16 (length (scase-mvec data)) stm) (write16 (length (scase-lvec data)) stm) (write-vector (scase-hvec data) stm :endian-swap :network-order) (write-vector (scase-mvec data) stm :endian-swap :network-order) (write-vector (scase-lvec data) stm :endian-swap :network-order) (write-ntrie32 data stm) (write-byte (length (scase-svec data)) stm) (write-vector (scase-svec data) stm :endian-swap :network-order)) ;; Numeric data (let ((data (unidata-numeric *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie32-split data) stm) (write16 (length (ntrie32-hvec data)) stm) (write16 (length (ntrie32-mvec data)) stm) (write16 (length (ntrie32-lvec data)) stm) (write-vector (ntrie32-hvec data) stm :endian-swap :network-order) (write-vector (ntrie32-mvec data) stm :endian-swap :network-order) (write-vector (ntrie32-lvec data) stm :endian-swap :network-order)) (write-ntrie32 data stm)) ;; Decomposition data (let ((data (unidata-decomp *unicode-data*))) (update-index (file-position stm) index) (write-byte (decomp-split data) stm) (write16 (length (decomp-hvec data)) stm) (write16 (length (decomp-mvec data)) stm) (write16 (length (decomp-lvec data)) stm) (write-vector (decomp-hvec data) stm :endian-swap :network-order) (write-vector (decomp-mvec data) stm :endian-swap :network-order) (write-vector (decomp-lvec data) stm :endian-swap :network-order) (write-ntrie32 data stm) (write16 (length (decomp-tabl data)) stm) (write-vector (decomp-tabl data) stm :endian-swap :network-order)) ;; Combining classes (let ((data (unidata-combining *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie8-split data) stm) (write16 (length (ntrie8-hvec data)) stm) (write16 (length (ntrie8-mvec data)) stm) (write16 (length (ntrie8-lvec data)) stm) (write-vector (ntrie8-hvec data) stm :endian-swap :network-order) (write-vector (ntrie8-mvec data) stm :endian-swap :network-order) (write-vector (ntrie8-lvec data) stm :endian-swap :network-order)) (write-ntrie8 data stm)) ;; Bidi data (let ((data (unidata-bidi *unicode-data*))) (update-index (file-position stm) index) (write-byte (bidi-split data) stm) (write16 (length (bidi-hvec data)) stm) (write16 (length (bidi-mvec data)) stm) (write16 (length (bidi-lvec data)) stm) (write-vector (bidi-hvec data) stm :endian-swap :network-order) (write-vector (bidi-mvec data) stm :endian-swap :network-order) (write-vector (bidi-lvec data) stm :endian-swap :network-order) (write-ntrie16 data stm) (write-byte (length (bidi-tabl data)) stm) (write-vector (bidi-tabl data) stm :endian-swap :network-order)) ;; Unicode 1.0 names Loading @@ -548,47 +546,17 @@ (write-vector (dictionary-namev data) stm :endian-swap :network-order)) (let ((data (unidata-name1 *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie32-split data) stm) (write16 (length (ntrie32-hvec data)) stm) (write16 (length (ntrie32-mvec data)) stm) (write16 (length (ntrie32-lvec data)) stm) (write-vector (ntrie32-hvec data) stm :endian-swap :network-order) (write-vector (ntrie32-mvec data) stm :endian-swap :network-order) (write-vector (ntrie32-lvec data) stm :endian-swap :network-order)) (write-ntrie32 data stm)) ;; Normalization quick-check data (update-index (file-position stm) index) (let ((data (unidata-qc-nfd *unicode-data*))) (write-byte (ntrie1-split data) stm) (write16 (length (ntrie1-hvec data)) stm) (write16 (length (ntrie1-mvec data)) stm) (write16 (length (ntrie1-lvec data)) stm) (write-vector (ntrie1-hvec data) stm :endian-swap :network-order) (write-vector (ntrie1-mvec data) stm :endian-swap :network-order) (write-vector (ntrie1-lvec data) stm :endian-swap :network-order)) (write-ntrie1 data stm)) (let ((data (unidata-qc-nfkd *unicode-data*))) (write-byte (ntrie1-split data) stm) (write16 (length (ntrie1-hvec data)) stm) (write16 (length (ntrie1-mvec data)) stm) (write16 (length (ntrie1-lvec data)) stm) (write-vector (ntrie1-hvec data) stm :endian-swap :network-order) (write-vector (ntrie1-mvec data) stm :endian-swap :network-order) (write-vector (ntrie1-lvec data) stm :endian-swap :network-order)) (write-ntrie1 data stm)) (let ((data (unidata-qc-nfc *unicode-data*))) (write-byte (ntrie2-split data) stm) (write16 (length (ntrie2-hvec data)) stm) (write16 (length (ntrie2-mvec data)) stm) (write16 (length (ntrie2-lvec data)) stm) (write-vector (ntrie2-hvec data) stm :endian-swap :network-order) (write-vector (ntrie2-mvec data) stm :endian-swap :network-order) (write-vector (ntrie2-lvec data) stm :endian-swap :network-order)) (write-ntrie2 data stm)) (let ((data (unidata-qc-nfkc *unicode-data*))) (write-byte (ntrie2-split data) stm) (write16 (length (ntrie2-hvec data)) stm) (write16 (length (ntrie2-mvec data)) stm) (write16 (length (ntrie2-lvec data)) stm) (write-vector (ntrie2-hvec data) stm :endian-swap :network-order) (write-vector (ntrie2-mvec data) stm :endian-swap :network-order) (write-vector (ntrie2-lvec data) stm :endian-swap :network-order)) (write-ntrie2 data stm)) ;; Write composition exclusion table (let ((data (unidata-comp-exclusions *unicode-data*))) (update-index (file-position stm) index) Loading @@ -597,13 +565,7 @@ ;; Write full-case lower data (flet ((dump-full-case (data) (update-index (file-position stm) index) (write-byte (full-case-split data) stm) (write16 (length (full-case-hvec data)) stm) (write16 (length (full-case-mvec data)) stm) (write16 (length (full-case-lvec data)) stm) (write-vector (full-case-hvec data) stm :endian-swap :network-order) (write-vector (full-case-mvec data) stm :endian-swap :network-order) (write-vector (full-case-lvec data) stm :endian-swap :network-order) (write-ntrie32 data stm) (write16 (length (full-case-tabl data)) stm) (write-vector (full-case-tabl data) stm :endian-swap :network-order))) (dump-full-case (unidata-full-case-lower *unicode-data*)) Loading @@ -612,24 +574,11 @@ ;; Write case folding data (let ((data (unidata-case-fold-simple *unicode-data*))) (update-index (file-position stm) index) (write-byte (ntrie32-split data) stm) (write16 (length (ntrie32-hvec data)) stm) (write16 (length (ntrie32-mvec data)) stm) (write16 (length (ntrie32-lvec data)) stm) (write-vector (ntrie32-hvec data) stm :endian-swap :network-order) (write-vector (ntrie32-mvec data) stm :endian-swap :network-order) (write-vector (ntrie32-lvec data) stm :endian-swap :network-order) ) (write-ntrie32 data stm)) ;; case-folding full (let ((data (unidata-case-fold-full *unicode-data*))) (update-index (file-position stm) index) (write-byte (case-folding-split data) stm) (write16 (length (case-folding-hvec data)) stm) (write16 (length (case-folding-mvec data)) stm) (write16 (length (case-folding-lvec data)) stm) (write-vector (case-folding-hvec data) stm :endian-swap :network-order) (write-vector (case-folding-mvec data) stm :endian-swap :network-order) (write-vector (case-folding-lvec data) stm :endian-swap :network-order) (write-ntrie32 data stm) (write16 (length (case-folding-tabl data)) stm) (write-vector (case-folding-tabl data) stm :endian-swap :network-order)) Loading