~ chicken-core (chicken-5) 042b576454edfaf820cddc86bc08ede286d0d820
commit 042b576454edfaf820cddc86bc08ede286d0d820 Author: Christian Kellermann <ckeen@pestilenz.org> AuthorDate: Sun Mar 4 09:33:12 2012 +0100 Commit: Peter Bex <peter.bex@xs4all.nl> CommitDate: Sun Mar 4 15:51:58 2012 +0100 Make maximal-string-length architecture dependent Rely on the bits set in C_HEADER_SIZE_MASK for the string lenght and do not hard code it to #xffffff. This will enhance buffering etc on 64bit systems. Signed-off-by: Peter Bex <peter.bex@xs4all.nl> diff --git a/NEWS b/NEWS index 522b9f63..97071fb4 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,10 @@ - enhanced line number tracking to get better error messages from the scrutinizer. +- Runtime system + - the maximum length of strings is no longer limited to a 24-bit + number on 64-bit architectures but can be 56 bits. + 4.7.4 - Security fixes diff --git a/library.scm b/library.scm index 82ed0648..62115846 100644 --- a/library.scm +++ b/library.scm @@ -33,7 +33,8 @@ ##sys#grow-vector ##sys#default-parameter-vector current-print-length setter-tag read-marks ##sys#print-exit - ##sys#format-here-doc-warning) + ##sys#format-here-doc-warning + maximal-string-length) (not inline ##sys#user-read-hook ##sys#error-hook ##sys#signal-hook ##sys#schedule ##sys#default-read-info-hook ##sys#infix-list-hook ##sys#sharp-number-hook ##sys#user-print-hook ##sys#user-interrupt-hook ##sys#step-hook) @@ -144,13 +145,12 @@ EOF (include "common-declarations.scm") (include "banner.scm") - (define-constant namespace-max-id-len 31) (define-constant char-name-table-size 37) (define-constant output-string-initial-size 256) (define-constant read-line-buffer-initial-size 1024) (define-constant default-parameter-vector-size 16) -(define-constant maximal-string-length #x00ffffff) +(define maximal-string-length (foreign-value "C_HEADER_SIZE_MASK" unsigned-long)) ;;; System routines:Trap