- ABORT
- ABORT"
- ABS
- ACCEPT
- ACTION-OF
- AGAIN
- ALIGN
- ALIGNED
- ALLOT
- AND
- BASE
- BEGIN
- BL
- BUFFER:
- [
- [CHAR]
- [COMPILE]
- [']
- CASE
- C,
- CELL+
- CELLS
- C@
- CHAR
- CHAR+
- CHARS
- COMPILE,
- CONSTANT
- COUNT
- CR
- CREATE
- C!
- :
- :NONAME
- ,
- C"
- DECIMAL
- DEFER
- DEFER@
- DEFER!
- DEPTH
- DO
- DOES>
- DROP
- DUP
- /
- /MOD
- .R
- .(
- ."
- ELSE
- EMIT
- ENDCASE
- ENDOF
- ENVIRONMENT?
- ERASE
- EVALUATE
- EXECUTE
- EXIT
- =
- FALSE
- FILL
- FIND
- FM/MOD
- @
- HERE
- HEX
- HOLD
- HOLDS
- I
- IF
- IMMEDIATE
- INVERT
- IS
- J
- KEY
- LEAVE
- LITERAL
- LOOP
- LSHIFT
- MARKER
- MAX
- MIN
- MOD
- MOVE
- M*
- -
- NEGATE
- NIP
- OF
- OR
- OVER
- 1-
- 1+
- PAD
- PARSE-NAME
- PARSE
- PICK
- POSTPONE
- +
- +LOOP
- +!
- QUIT
- RECURSE
- REFILL
- REPEAT
- RESTORE-INPUT
- R@
- ROLL
- ROT
- RSHIFT
- R>
- SAVE-INPUT
- SIGN
- SM/REM
- SOURCE-ID
- SOURCE
- SPACE
- SPACES
- STATE
- SWAP
- ;
- S\"
- S"
- S>D
- !
- THEN
- TO
- TRUE
- TUCK
- TYPE
- '
- *
- */
- */MOD
- 2DROP
- 2DUP
- 2/
- 2@
- 2OVER
- 2R@
- 2R>
- 2SWAP
- 2!
- 2*
- 2>R
- U.R
- UM/MOD
- UM*
- UNLOOP
- UNTIL
- UNUSED
- U.
- U<
- U>
- VALUE
- VARIABLE
- WHILE
- WITHIN
- WORD
- XOR
- 0=
- 0<
- 0>
- 0<>
- \
- .
- <
- >
- <>
- #>
- <#
- #
- #S
- (
- ?DO
- ?DUP
- >BODY
- >IN
- >NUMBER
- >R
6.2.1850 MARKER CORE EXT
Skip leading space delimiters. Parse name delimited by a space. Create a definition for name with the execution semantics defined below.
name Execution:
Restore all dictionary allocation and search order pointers to the state they had just prior to the definition of name. Remove the definition of name and all subsequent definitions. Restoration of any structures still existing that could refer to deleted definitions or deallocated data space is not necessarily provided. No other contextual information such as numeric base is affected.
See:
Rationale:
ContributeContributions
JennyBrien [162] Extending MARKERRequest for clarification2020-09-16 15:33:45
Many years ago, when I was modifying F-83 to be ANS-compilant, I had to temporarily patch several parts of the core. I used:
CHANGED \ n addr -- ; add addr and old value to a linked list and then store n at addr
I then modified FORGET
to run down the list and restore any values changed after that point.
Is there any common practice on how to add similar further "landmark information" that MARKER should restore?
ruv [246] Ambiguous conition for MARKERComment2022-07-16 10:55:40
The glossary entry for forget
declares an ambiguous condition:
An ambiguous condition exists if
FORGET
removes a word required for correct execution.
Probably, a similar ambiguous condition should be declared for the words defined via marker
too. Something like the following:
An ambiguous condition exists if definitions or data required for correct execution of the program are removed during execution of name.
lmr [325] WORDLIST interactionExample2023-12-25 12:05:23
Is MARKER
supposed/allowed to also erase subsequent WORDLIST
-created wid's? If so, after MARKER
deletes a wid, can/must subsequent invocations of WORDLIST
re-use that wid (and thereby stay within the system wordlist limit)?
ruv [371] The search order and compilation word list after a marker executionRequest for clarification2024-12-05 09:25:19
The specification for 6.2.1850 MARKER says:
Restore all dictionary allocation and search order pointers to the state they had just prior to the definition of name.
What does "search order pointers" mean? Does it mean the search order? If yes, should the compilation word list be restored?
If not, would it it be compliant if the system restores the search order and the compilation word list?
No other contextual information such as numeric base is affected.
What is a rationale for not restoring the numeric base?