Am 24.08.2009 um 16:27 schrieb Aditya Mahajan:
To stop the TeX run we can have \setupmodule[contextversion=2009.08.22] at the begin of a module and ConTeXt will abort the run if the key 'contextversion' has a value and context is older than the user has requested. Do you want this to check to be part of the definition of \setupmodule? One difficultly that I see is that typically this will mean that we need to set this separately for each engine.
I don't need such a check, it was Olivers idea and I thought about a idea how this can be integrated without introducing a new command which breaks backward compatibility.
I meant that when you said \setupmodule[contextversion=...]", what is the implementation you had in mind. \setupmodule macro doing the checking, or the module writer doing the checking.
I think it's up to the developer to write something in the module, e.g. http://bitbucket.org/wolfs/simplefonts/src/46a1f454bccc/files/t-simplefonts.... but it's not so hard to integrate it into the \setupmodule command. % untested, it should only show how \setupmodule can be extended to stop a tex run % when a module is used with a too old context version \def\c!contextversion{contextversion} \def\doabortmodule#1#2#3% {\doif{#2}\c!contextversion{\doifolderversionelse\contextversion{#3} {\forcequitjob{#1}}\donothing}} \def\dosetupmodule[#1][#2]% {\scratchtoks\expandafter{\currentmoduleparameters}% \ifsecondargument \getparameters[\??md:#1:][#2]% \expanded{\getparameters[\??md:#1:][\the\scratchtoks]}% \processassignmentlist[#2]{\doabortmodule{#1}}% \else \getparameters[\??md:\currentmodule:][#1]% \expanded{\getparameters[\??md:\currentmodule:][\the \scratchtoks]}% \processassignmentlist[#1]{\doabortmodule\currentmodule}% \fi \let\currentmoduleparameters\empty} Wolfgang