## LATEX-L@LISTSERV.UNI-HEIDELBERG.DE

#### View:

 Message: [ First | Previous | Next | Last ] By Topic: [ First | Previous | Next | Last ] By Author: [ First | Previous | Next | Last ] Font: Proportional Font

Subject:

Re: expl3's seq_pop_right etc.

From:

Date:

Thu, 17 Mar 2011 09:42:17 -0400

Content-Type:

text/plain

Parts/Attachments:

 text/plain (112 lines)
 Hello Frank, thank you for your time. > I took your package pushed it into my environment and first of all tried to > run our test suite against it. Of course that ended up in a huge number of > failures. I'm sorry about that. I'm couldn't get "make check" to work (on a clean svn download), and I'm investigating that (I probably misplaced some file, or permissions). So my testing is a bit klunky right now. > - first discuss it > - initially provide compatibly code > - and only at a later stage retire something Right. I should have double-checked: I lost quite a few variants along the way as well, and unfortunately, I was working from a version of l3seq which was a few weeks old. > there are a number of advantages to this most importantly for me that we can > run the test suite against the new code. So far I added After a manual grep (more or less), I think we need to add the following. % % \section{Compatibility} % % Getting elements from the left (top of the stack). % \begin{macrocode} \cs_generate_variant:Nn \seq_get_left:NN {cN} \cs_new_eq:NN \seq_get:cN \seq_get_left:cN \cs_new_eq:NN \seq_top:NN \seq_get_left:NN \cs_new_eq:NN \seq_top:cN \seq_get_left:cN % \end{macrocode} % % \begin{macrocode} \cs_new:Npn \seq_pop:NN #1#2 {    \seq_pop_left_with:Nn #1 {\tl_set:Nn #2} } \cs_new:Npn \seq_gpop:NN #1#2 {    \seq_gpop_left_with:Nn #1 {\tl_set:Nn #2} } \cs_generate_variant:Nn \seq_pop:NN {cN} \cs_generate_variant:Nn \seq_gpop:NN {cN} % \end{macrocode} % % Mapping functions % \begin{macrocode} \cs_new_eq:NN \seq_map_break: \seq_break: \cs_new_eq:NN \seq_map_break:n \seq_break:n \cs_new_eq:NN \seq_map_function:NN \seq_map_function:Nn \cs_new_eq:NN \seq_map_function:cN \seq_map_function:cn % \end{macrocode} % % Auxiliary functions (needed?). % \begin{macrocode} \cs_new:Npn \seq_remove_duplicates_aux:NN {   \seq_remove_duplicates_aux:NNN \seq_if_in:NnF} \cs_new:Npn \seq_remove_duplicates_aux:n {   \seq_remove_duplicates_aux:Nn \seq_if_in:NnF} \cs_new_protected:Npn \seq_put_aux:Nnn #1 #2 #3 {   \tl_set:Nx #1 {\exp_not:n {#2} \exp_not:V {#1} \exp_not:n {#3}}} \cs_new_protected:Npn \seq_pop_aux:nnNN #1 #2 #3 #4 {   \seq_pop_left_aux:Nnn #3 {#1} {#2 #4}} % \end{macrocode} % % Function that seems used in "l3file", but defined nowhere in % the current implementation?? % \begin{macrocode} \cs_new_eq:NN \seq_remove_all_in:Nn \seq_remove_element:Nn % \end{macrocode} % % Removed because I can't figure out any sensible way to support % those internal functions: % \cs{seq_map_variable_aux:Nnw}, % \cs{seq_pop_aux:w}, % \cs{seq_elt:w}, % \cs{seq_elt_end:}, % \cs{seq_get_aux:w}, % \cs{seq_put_aux:w}. Hopefully that's ok. Of course, if other modules happen to try and define their own seq functions using \seq_elt:w, then that's not going to work. > but that is not enough there are still several areas where the test files > for the seq module fail ... but on the whole the implementation looks > already good. If possible, could you send me a log of those tests that fail? It would help me find all the missing functions. > So I propose we first make your implementation support the current > interfaces (even if only by compatibility code) so that the files m3seq00... are > properly processed and in parallel discuss its individual merrits > and preferably we should at the same time write some additional tests for > any functionality that has changed or is additionally there (Joseph will tell > you that I'm pestering him about writing test cases in parallel wil code, but it > really helps to nail down interfaces and ensure that they aren't violated > later) As I said, I can't run "make check" right now. Is it possible to run single tests "by hand"? Then there is the issue of l3candidates, which I have not re-programmed yet, as well as the quicksort defined in l3prg.dtx Thanks again for your comments, -- Bruno