* [NTG-context] letfrozen? @ 2023-06-12 8:57 Hans van der Meer via ntg-context 2023-06-12 9:12 ` Hans Hagen via ntg-context 0 siblings, 1 reply; 6+ messages in thread From: Hans van der Meer via ntg-context @ 2023-06-12 8:57 UTC (permalink / raw) To: NTG ConTeXt; +Cc: Hans van der Meer [-- Attachment #1.1: Type: text/plain, Size: 514 bytes --] The manual LMTX-primitives on page 21 tells me: You can explicitly freeze an unfrozen macro. ... A redefinition will now give: You can't redefine a frozen macro. But is this true? The following code seems to contradict this: \def\HOME{myhome} \writestatus{1}{\meaning\HOME} \letfrozen\HOME \writestatus{2}{\meaning\HOME} \def\HOME{other home} \writestatus{3}{\meaning\HOME}  Is this mechanism broken? It looks so useful to prevent accidental redefinition! dr. Hans van der Meer [-- Attachment #1.2.1: Type: text/html, Size: 1406 bytes --] [-- Attachment #1.2.2: letfrozen example.jpg --] [-- Type: image/jpeg, Size: 18295 bytes --] [-- Attachment #2: Type: text/plain, Size: 496 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [NTG-context] letfrozen? 2023-06-12 8:57 [NTG-context] letfrozen? Hans van der Meer via ntg-context @ 2023-06-12 9:12 ` Hans Hagen via ntg-context 2023-06-12 10:32 ` Hans van der Meer via ntg-context 0 siblings, 1 reply; 6+ messages in thread From: Hans Hagen via ntg-context @ 2023-06-12 9:12 UTC (permalink / raw) To: Hans van der Meer via ntg-context; +Cc: Hans Hagen On 6/12/2023 10:57 AM, Hans van der Meer via ntg-context wrote: > The manual LMTX-primitives on page 21 tells me: > You can explicitly freeze an unfrozen macro. > ... > A redefinition will now give: You can't redefine a frozen macro. > > But is this true? The following code seems to contradict this: > > \def\HOME{myhome} > \writestatus{1}{\meaning\HOME} > \letfrozen\HOME > \writestatus{2}{\meaning\HOME} > \def\HOME{other home} > \writestatus{3}{\meaning\HOME} > > >  > > Is this mechanism broken? It looks so useful to prevent accidental redefinition! here i run with \enabledirectives[overloadmode=error] (you can do that in cont-sys.mkxl) \enabledirectives[overloadmode=warning] Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [NTG-context] letfrozen? 2023-06-12 9:12 ` Hans Hagen via ntg-context @ 2023-06-12 10:32 ` Hans van der Meer via ntg-context 2023-06-12 17:47 ` Hans Hagen via ntg-context 0 siblings, 1 reply; 6+ messages in thread From: Hans van der Meer via ntg-context @ 2023-06-12 10:32 UTC (permalink / raw) To: NTG ConTeXt; +Cc: Hans van der Meer [-- Attachment #1.1: Type: text/plain, Size: 1293 bytes --] > On 12 Jun 2023, at 11:12, Hans Hagen via ntg-context <ntg-context@ntg.nl> wrote: > > On 6/12/2023 10:57 AM, Hans van der Meer via ntg-context wrote: >> The manual LMTX-primitives on page 21 tells me: >> You can explicitly freeze an unfrozen macro. >> ... >> A redefinition will now give: You can't redefine a frozen macro. >> But is this true? The following code seems to contradict this: >> \def\HOME{myhome} >> \writestatus{1}{\meaning\HOME} >> \letfrozen\HOME >> \writestatus{2}{\meaning\HOME} >> \def\HOME{other home} >> \writestatus{3}{\meaning\HOME} >>  >> Is this mechanism broken? It looks so useful to prevent accidental redefinition! > > here i run with > > \enabledirectives[overloadmode=error] > > (you can do that in cont-sys.mkxl) > > \enabledirectives[overloadmode=warning] > Hans > Pity. Now I get on loading the tex file: "csname overload > fatal error, protection level 4, control sequence 'nbsp', properties 'immutable', file 't-hvdm-text.tex', line 63 while I had hoped that frozen would give me something like: illegal attempt to redefine \HOME Byproduct (not unwanted) the above illegal redefinition to be solved :-) May I ask why obviously the frozen-mechanism seems (yet?) unimplemented? dr. Hans van der Meer [-- Attachment #1.2: Type: text/html, Size: 2009 bytes --] [-- Attachment #2: Type: text/plain, Size: 496 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [NTG-context] letfrozen? 2023-06-12 10:32 ` Hans van der Meer via ntg-context @ 2023-06-12 17:47 ` Hans Hagen via ntg-context 2023-06-13 10:43 ` Hans van der Meer via ntg-context 0 siblings, 1 reply; 6+ messages in thread From: Hans Hagen via ntg-context @ 2023-06-12 17:47 UTC (permalink / raw) To: ntg-context; +Cc: Hans Hagen On 6/12/2023 12:32 PM, Hans van der Meer via ntg-context wrote: >> On 12 Jun 2023, at 11:12, Hans Hagen via ntg-context <ntg-context@ntg.nl> wrote: >> >> On 6/12/2023 10:57 AM, Hans van der Meer via ntg-context wrote: >>> The manual LMTX-primitives on page 21 tells me: >>> You can explicitly freeze an unfrozen macro. >>> ... >>> A redefinition will now give: You can't redefine a frozen macro. >>> But is this true? The following code seems to contradict this: >>> \def\HOME{myhome} >>> \writestatus{1}{\meaning\HOME} >>> \letfrozen\HOME >>> \writestatus{2}{\meaning\HOME} >>> \def\HOME{other home} >>> \writestatus{3}{\meaning\HOME} >>>  >>> Is this mechanism broken? It looks so useful to prevent accidental redefinition! >> >> here i run with >> >> \enabledirectives[overloadmode=error] >> >> (you can do that in cont-sys.mkxl) >> >> \enabledirectives[overloadmode=warning] >> Hans >> > > Pity. Now I get on loading the tex file: > "csname overload > fatal error, protection level 4, control sequence 'nbsp', properties 'immutable', file 't-hvdm-text.tex', line 63 > > while I had hoped that frozen would give me something like: > illegal attempt to redefine \HOME > > Byproduct (not unwanted) the above illegal redefinition to be solved :-) > > May I ask why obviously the frozen-mechanism seems (yet?) unimplemented? It's okay and has been around for quite a while now. \enabledirectives[overloadmode=error] \starttext \frozen\def\HOME{!!!!} \def\HOME{!!!!!} \stoptext ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [NTG-context] letfrozen? 2023-06-12 17:47 ` Hans Hagen via ntg-context @ 2023-06-13 10:43 ` Hans van der Meer via ntg-context 2023-06-13 17:23 ` Hans Hagen via ntg-context 0 siblings, 1 reply; 6+ messages in thread From: Hans van der Meer via ntg-context @ 2023-06-13 10:43 UTC (permalink / raw) To: NTG ConTeXt; +Cc: Hans van der Meer [-- Attachment #1.1: Type: text/plain, Size: 2807 bytes --] Of course. But without that \enabledirective I can redefine the frozen macro at will, as a simple test did show. The crux, however, is that one wants to protect the frozen code always, irrespective of that directive setting. dr. Hans van der Meer > On 12 Jun 2023, at 19:47, Hans Hagen via ntg-context <ntg-context@ntg.nl> wrote: > > On 6/12/2023 12:32 PM, Hans van der Meer via ntg-context wrote: >>> On 12 Jun 2023, at 11:12, Hans Hagen via ntg-context <ntg-context@ntg.nl> wrote: >>> >>> On 6/12/2023 10:57 AM, Hans van der Meer via ntg-context wrote: >>>> The manual LMTX-primitives on page 21 tells me: >>>> You can explicitly freeze an unfrozen macro. >>>> ... >>>> A redefinition will now give: You can't redefine a frozen macro. >>>> But is this true? The following code seems to contradict this: >>>> \def\HOME{myhome} >>>> \writestatus{1}{\meaning\HOME} >>>> \letfrozen\HOME >>>> \writestatus{2}{\meaning\HOME} >>>> \def\HOME{other home} >>>> \writestatus{3}{\meaning\HOME} >>>>  >>>> Is this mechanism broken? It looks so useful to prevent accidental redefinition! >>> >>> here i run with >>> >>> \enabledirectives[overloadmode=error] >>> >>> (you can do that in cont-sys.mkxl) >>> >>> \enabledirectives[overloadmode=warning] >>> Hans >>> >> Pity. Now I get on loading the tex file: >> "csname overload > fatal error, protection level 4, control sequence 'nbsp', properties 'immutable', file 't-hvdm-text.tex', line 63 >> while I had hoped that frozen would give me something like: >> illegal attempt to redefine \HOME >> Byproduct (not unwanted) the above illegal redefinition to be solved :-) >> May I ask why obviously the frozen-mechanism seems (yet?) unimplemented? > It's okay and has been around for quite a while now. > > \enabledirectives[overloadmode=error] > > \starttext > > \frozen\def\HOME{!!!!} > > \def\HOME{!!!!!} > > \stoptext > > > ----------------------------------------------------------------- > Hans Hagen | PRAGMA ADE > Ridderstraat 27 | 8061 GH Hasselt | The Netherlands > tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl > ----------------------------------------------------------------- > > ___________________________________________________________________________________ > If your question is of interest to others as well, please add an entry to the Wiki! > > maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context > webpage : https://www.pragma-ade.nl / http://context.aanhet.net > archive : https://bitbucket.org/phg/context-mirror/commits/ > wiki : https://contextgarden.net > ___________________________________________________________________________________ [-- Attachment #1.2: Type: text/html, Size: 3751 bytes --] [-- Attachment #2: Type: text/plain, Size: 496 bytes --] ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [NTG-context] letfrozen? 2023-06-13 10:43 ` Hans van der Meer via ntg-context @ 2023-06-13 17:23 ` Hans Hagen via ntg-context 0 siblings, 0 replies; 6+ messages in thread From: Hans Hagen via ntg-context @ 2023-06-13 17:23 UTC (permalink / raw) To: Hans van der Meer via ntg-context; +Cc: Hans Hagen On 6/13/2023 12:43 PM, Hans van der Meer via ntg-context wrote: > Of course. But without that \enabledirective I can redefine the frozen macro at will, as a simple test did show. > The crux, however, is that one wants to protect the frozen code always, irrespective of that directive setting. there are several caregories, like primitive, permanent, instance, mutable, immutable and frozen at some point we could deepfreeze them all but in the end that makes no sense because then we can't for instance run tikz so in the end it's mostly about warnings and errors (one can actually distinguish between categories) there's also \overloaded and \aliased and \enforced etc of course you can at some point do \newcount\overloadmode but who can predict side effects (and one can argue that tex is progrmamable and that users get what they ask for) and keep in mind that all should also not hit performance too badly there's quite a bit involved here .. pretty all context commands have some kind of flagging and protection (which also is handy for tracing) You can spent hours playing with prefixes: \frozen \permanent \immutable \mutable %primitive \noaligned \instance \untraced \global \tolerant \protected \overloaded \aliased \immediate \deferred \semiprotected \enforced \inherited \constant if you're in the mood. Hans ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl ----------------------------------------------------------------- ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / https://www.ntg.nl/mailman/listinfo/ntg-context webpage : https://www.pragma-ade.nl / http://context.aanhet.net archive : https://bitbucket.org/phg/context-mirror/commits/ wiki : https://contextgarden.net ___________________________________________________________________________________ ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2023-06-13 17:24 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-06-12 8:57 [NTG-context] letfrozen? Hans van der Meer via ntg-context 2023-06-12 9:12 ` Hans Hagen via ntg-context 2023-06-12 10:32 ` Hans van der Meer via ntg-context 2023-06-12 17:47 ` Hans Hagen via ntg-context 2023-06-13 10:43 ` Hans van der Meer via ntg-context 2023-06-13 17:23 ` Hans Hagen via ntg-context
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).