diff --git a/src/wip/cache/cache.pysty3 b/src/wip/cache/cache.pysty3 index 6337939..e714240 100644 --- a/src/wip/cache/cache.pysty3 +++ b/src/wip/cache/cache.pysty3 @@ -17,7 +17,8 @@ __HEADER__(Cache definitions of previous LaTeX runs to avoid computations) \int_new:N \g__cache_cache_version_aux_int \int_gset:Nn \g__cache_cache_version_aux_int { -1 } -\tl_new:N \g__cache_dump_auxfile_tl +\clist_new:N \g__cache_dump_auxfile_clist %% usual dump +\clist_new:N \g__cache_dump_cache_clist %% will be dumped such that it is restored as \g__cache_lazy_auxfile_tl on next run. \tl_new:N \g__cache_lazy_document_tl \tl_new:N \g__cache_lazy_auxfile_tl @@ -39,22 +40,48 @@ __HEADER__(Cache definitions of previous LaTeX runs to avoid computations) \bool_if:NTF \g__cache_cache_bool { %% Writing things (at one go) to aux file at end of document: - \cs_new:Npn \__cache_put_aux:n #1 + \cs_new:Npn \__cache_dump_auxfile:n { - \tl_gput_right:Nn \g__cache_dump_auxfile_tl { #1 } + \clist_gput_right:Nn \g__cache_dump_auxfile_clist } - \cs_generate_variant:Nn \__cache_put_aux:n { x, V } + \cs_generate_variant:Nn \__cache_dump_auxfile:n { x } - \cs_generate_variant:Nn \iow_now:Nn { c V } + \cs_new:Npn \__cache_dump_cache:n + { + \clist_gput_right:Nn \g__cache_dump_cache_clist + } + \cs_generate_variant:Nn \__cache_dump_cache:n { V } + + + \cs_new:Npn \__cache_write_auxout:n + { + \iow_now:cn { @auxout } + } + \cs_generate_variant:Nn \__cache_write_auxout:n { x } %%% Handles dumping data to aux file at end of document \hook_gput_code:nnn { enddocument } { cache } { - \iow_now:cV { @auxout } \g__cache_dump_auxfile_tl + \clist_map_function:NN \g__cache_dump_auxfile_clist + \__cache_write_auxout:n + + \__cache_write_auxout:n + { + \csname tl_gput_right:cn \endcsname + { + g__cache_lazy_auxfile_tl + } + } + \__cache_write_auxout:x { \str_use:N \c_left_brace_str } + + \clist_map_function:NN \g__cache_dump_cache_clist + \__cache_write_auxout:n + + \__cache_write_auxout:x { \str_use:N \c_right_brace_str } } %%% Writes the current cache version into aux file - \__cache_put_aux:x + \__cache_dump_auxfile:x { \ExplSyntaxOn \int_gset:Nn \exp_not:N \g__cache_cache_version_aux_int @@ -77,10 +104,10 @@ __HEADER__(Cache definitions of previous LaTeX runs to avoid computations) { \tl_set:Nn \l_tmpa_tl { - \csname tl_gput_right:cn \endcsname { g__cache_lazy_auxfile_tl } { #1 } + { #1 } } \regex_replace_all:nnN { \cP\# } { \cO\# } \l_tmpa_tl - \__cache_put_aux:V \l_tmpa_tl + \__cache_dump_cache:V \l_tmpa_tl } %%% This handles loading either the cached definitions