summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/expl3/l3alloc.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-07-31 18:29:08 +0000
committerKarl Berry <karl@freefriends.org>2011-07-31 18:29:08 +0000
commit332d583e34cb464fadc271aac86368fc71af2c40 (patch)
tree24afad6e2f2915364873082b6bfad0bad04ba5bf /Master/texmf-dist/source/latex/expl3/l3alloc.dtx
parented6913bb5d71e9779f8714d469d5903b9d328020 (diff)
rm expl3, now l3kernel
git-svn-id: svn://tug.org/texlive/trunk@23285 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/expl3/l3alloc.dtx')
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3alloc.dtx265
1 files changed, 0 insertions, 265 deletions
diff --git a/Master/texmf-dist/source/latex/expl3/l3alloc.dtx b/Master/texmf-dist/source/latex/expl3/l3alloc.dtx
deleted file mode 100644
index c095e913a82..00000000000
--- a/Master/texmf-dist/source/latex/expl3/l3alloc.dtx
+++ /dev/null
@@ -1,265 +0,0 @@
-% \iffalse
-%% File: l3alloc.dtx Copyright (C) 1990-2006,2009 LaTeX3 project
-%%
-%% It may be distributed and/or modified under the conditions of the
-%% LaTeX Project Public License (LPPL), either version 1.3c of this
-%% license or (at your option) any later version. The latest version
-%% of this license is in the file
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the ``expl3 bundle'' (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%% http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%% Snapshots taken from the repository represent work in progress and may
-%% not work or may contain conflicting material! We therefore ask
-%% people _not_ to put them into distributions, archives, etc. without
-%% prior consultation with the LaTeX Project Team.
-%%
-%% -----------------------------------------------------------------------
-%
-%<*driver>
-\RequirePackage{l3names}
-%</driver>
-%\fi
-\GetIdInfo$Id: l3alloc.dtx 2223 2011-04-09 12:57:14Z will $
- {L3 Experimental register allocation}%
-%\iffalse
-%<*driver>
-%\fi
-\ProvidesFile{\filename.\filenameext}
- [\filedate\space v\fileversion\space\filedescription]
-%\iffalse
-\documentclass[full]{l3doc}
-\begin{document}
-\DocInput{\filename.\filenameext}
-\end{document}
-%</driver>
-% \fi
-%
-%
-% \title{The \textsf{l3alloc} package\thanks{This file
-% has version number \fileversion, last
-% revised \filedate.}\\
-% Allocating registers and the like}
-% \author{\Team}
-% \date{\filedate}
-% \maketitle
-%
-% \begin{documentation}
-%
-% \section{Allocating registers and the like}
-%
-% Note that this module is only used for generating an pkg{expl3}-based
-% format. Under \LaTeXe, the |etex.sty| package is used for allocation
-% management.
-%
-% This module provides the basic mechanism for allocating \TeX's
-% registers. While designing this we have to take into account the
-% following characteristics:
-% \begin{itemize}
-% \item |\box255| is reserved for use in the output routine, so it
-% should not be allocated otherwise.
-% \item \TeX\ can load up 256 hyphenation patterns (registers
-% |\tex_language:D| 0-255),
-% \item \TeX\ can load no more than 16 math families,
-% \item \TeX\ supports no more than 16 io-streams for reading
-% (|\tex_read:D|) and 16 io-streams for writing (|\tex_write:D|),
-% \item \TeX\ supports no more than 256 inserts, Omega supports more.
-% \item The other registers (|\tex_count:D|, |\tex_dimen:D|,
-% |\tex_skip:D|, |\tex_muskip:D|, |\tex_box:D|, and |\tex_toks:D|
-% range from 0 to 32768, but registers numbered above 255 are
-% accessed somewhat less efficiently.
-% \item Registers could be allocated both globally and locally; the
-% use of registers could also be globaly or locally. Here we
-% provide support for globally allocated registers for both
-% gloabl and local use and for locally allocated registers for
-% local use only.
-% \end{itemize}
-% We also need to allow for some bookkeeping: we need to know which
-% register was allocated last and which registers can not be
-% allocated by the standard mechanisms.
-%
-% \section{Functions}
-%
-%
-% \begin{function}{\alloc_new:nnnN}
-% \begin{syntax}
-% "\alloc_new:nnnN" \Arg{type} \Arg{min} \Arg{max} <alloc_cmd>
-% \end{syntax}
-% Shorthand for allocating new registers. Defines \cs{<type>_new:N} and
-% \cs{<type>_new_local:N} allocators of the specified <type>, indexed up from
-% <min> for global registers and down from <max> for local registers, with
-% registers assigned using the function <alloc_cmd>.
-%
-% Internally uses "\alloc_setup_type:nnn" and "\alloc_reg:NnNN"
-% defined below in case you want finer-grained control.
-% \end{function}
-%
-%
-% \begin{function}{\alloc_setup_type:nnn}
-% \begin{syntax}
-% "\alloc_setup_type:nnn" \Arg{type} \Arg{g_start_num} \Arg{l_start_num}
-% \end{syntax}
-% Sets up the storage needed for the administration of registers of
-% type <type>.\\
-% <type> should be a token list in braces, it can be one of
-% "int", "dimen", "skip", "muskip", "box", "toks", "ior", "iow",
-% "pattern", or "ins".\\
-% <g_start_num> is the number of the first non-allocated global
-% register, it will be incremented by 1 when the allocation is done.
-% <l_start_num> is the number of the first non-allocated local
-% register, it will be decremented by 1 when the allocation is done.
-% \end{function}
-%
-% \begin{function}{\alloc_reg:NnNN}
-% \begin{syntax}
-% "\alloc_reg:NnNN" "g"$\big/$"l" <type> <alloc_cmd> <cs>
-% \end{syntax}
-% Performs the allocation of a register of type <type> to control
-% sequence <cs>, using the command <alloc_cmd>. The "g" or "l"
-% indicates whether the allocation should be global or local.
-% This macro is the basic building block for the definition of the
-% "\"<type>"_new:N" commands
-% \end{function}
-%
-% \end{documentation}
-%
-% \begin{implementation}
-%
-% \section{\pkg{l3alloc} implementation}
-%
-% \subsection{Internal functions}
-%
-% \begin{function}{ \alloc_next:Nn }
-% \begin{syntax}
-% "\alloc_next:Nn" "l"/"g" \Arg{type}
-% \end{syntax}
-% These functions find the next free register for the specified type.
-% \end{function}
-%
-% \subsection{Module code}
-%
-% \begin{macrocode}
-%<*initex>
-% \end{macrocode}
-%
-% \begin{macro}{\alloc_setup_type:nnn}
-% For each type of register we need to `counters' that hold the
-% last allocated global or local register. We also need a sequence
-% to store the `exceptions'.
-% \begin{macrocode}
-\cs_new_nopar:Npn \alloc_setup_type:nnn #1#2#3 {
- \seq_new:c {g_#1_allocation_seq}
- \tl_new:cn {g_#1_allocation_tl } {#2}
- \tl_new:cn {l_#1_allocation_tl } {#3}
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\alloc_next:Nn}
-% This routine finds the next free register. For globally allocated
-% registers we first increment the counter that keeps track of them;
-% for local registers, decrement.
-% \begin{macrocode}
-\cs_new_nopar:Npn \alloc_next:Nn #1#2 {
- \tl_set:cx {#1_#2_allocation_tl}
- {
- \int_eval:n
- {
- \tl_use:c {#1_#2_allocation_tl}
- \if:w #1 g + \else: - \fi: 1
- }
- }
-% \end{macrocode}
-% Then we need to check whether we have run out of registers.
-% \begin{macrocode}
- \tex_ifnum:D \etex_numexpr:D
- \tl_use:c{g_#2_allocation_tl} \tex_relax:D = \etex_numexpr:D \tl_use:c{l_#2_allocation_tl} \tex_relax:D
- \iow_term:x {
- We~ ran~ out~ of~
- \if:w #1 g \scan_stop: global~ \else: local~ \fi:
- 'l#2!'~ registers!
- }
- \tex_else:D
-% \end{macrocode}
-% We also need to check whether the value of the counter already
-% occurs in the list of already allocated registers.
-% \begin{macrocode}
- \seq_if_in:cxTF {g_#2_allocation_seq} {\tl_use:c{#1_#2_allocation_tl}}
- {
- \iow_log:x{ \tl_use:c{#1_#2_allocation_tl}~already~allocated. }
- \alloc_next:Nn #1 {#2}
- }
-% \end{macrocode}
-% By now the |.._allocation_tl| counter will contain the number of
-% the register we will assign a control sequence for.
-% \begin{macrocode}
- { \iow_log:x{\tl_use:c{#1_#2_allocation_tl}~free.} }
- \tex_fi:D
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\alloc_reg:NnNN}
-% This internal macro performs the actual allocation. Its first
-% argument is either `|g|' for a globally allocated register or `|l|'
-% for a locally allocated register. The second argument is the
-% type of register to allocate, the third argument is the command
-% to use and the fourth argument is the control sequence that is to
-% be defined to point to the register.
-% \begin{macrocode}
-\cs_new_nopar:Npn \alloc_reg:NnNN #1#2#3#4 {
- \chk_if_free_cs:N #4
- \if:w #1 g
- \exp_after:wN \pref_global:D
- \fi:
- #3 #4 \tl_use:c{#1_ #2 _allocation_tl}
- %%\cs_record_meaning:N#1
- \iow_log:x{
- \token_to_str:N#4~=~#2~register~\tl_use:c{#1_#2_allocation_tl}
- }
- \alloc_next:Nn #1 {#2}
- }
-% \end{macrocode}
-% \end{macro}
-%
-%
-% \begin{macro}{\alloc_new:nnnN}
-% Shorthand for defining new register types and their allocators:
-% \begin{macrocode}
-\cs_new:Npn \alloc_new:nnnN #1#2#3#4 {
- \alloc_setup_type:nnn {#1} {#2} {#3}
- \cs_new_nopar:cpn {#1_new:N} ##1 {
- \alloc_reg:NnNN g {#1} #4 ##1
- }
- \cs_new_nopar:cpn {#1_new_local:N} ##1 {
- \alloc_reg:NnNN l {#1} #4 ##1
- }
-}
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macrocode}
-%</initex>
-% \end{macrocode}
-%
-%
-% \end{implementation}
-% \PrintIndex
-%
-% \endinput