Skip to content

Commit 4c4b012

Browse files
JanWielemakerclaude
andcommitted
DOC: read/1 and write/1 no longer use the C stack
Section "Other Limits" claimed they may crash the system on deeply nested terms, which no longer holds now both use an explicit stack. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017dv8qG8JrSfiHguZaFbLAW
1 parent d9faa81 commit 4c4b012

1 file changed

Lines changed: 2 additions & 4 deletions

File tree

man/overview.plx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4189,10 +4189,8 @@ Most built-in predicates that process Prolog terms create an explicitly
41894189
managed stack and perform optimization for processing the last argument
41904190
of a term. This implies they can process deeply nested terms at constant
41914191
and low usage of the C stack, and the system raises a resource error if
4192-
no more stack can be allocated. Currently only read/1 and write/1 (and
4193-
all variations thereof) still use the C stack and may cause the system
4194-
to crash in an uncontrolled way (i.e., not mapped to a Prolog exception
4195-
that can be caught).
4192+
no more stack can be allocated. This includes read/1 and write/1 and
4193+
all variations thereof.
41964194
41974195
\item[Integers]
41984196
SWI-Prolog has two integer representations. \jargon{Tagged integers} are

0 commit comments

Comments
 (0)