LATEX-L Archives

Mailing list for the LaTeX3 project


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Frank Mittelbach <[log in to unmask]>
Reply To:
Mailing list for the LaTeX3 project <[log in to unmask]>
Wed, 16 Mar 2011 21:03:09 +0100
text/plain (68 lines)
Hi Bruno

 > I'm attaching to this email an alternative version of l3seq, where
 > sequences are stored as \seq_elt:n {<item>}. Since it's a dtx,
 > hopefully there is enough comments in the file to follow the code, but
 > a quick overview. FYI, the ins file is at the bottom of this email,
 > and to test the package, I just make a symbolic link
 > l3seq.sty->seq-one-braces.sty and then \usepackage{expl3}.

quite a mouthful. thanks.

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

Not surprising really as you changed the interfaces.

Now, there may be good reasons for any of theses changes, but I would claim
that as an initial ste this is not helpful as it makes it difficult to compare
things and on top of it it will break a lot of code that has been already
built upon the current expl3. For example \seq:gpop:NN and its variant are
used in a good number of places. Same for \seq_map_function:NN etc

So while there there might be valid reasons while one version is superior to
another we should 

 - first discuss it
 - initially provide compatibly code
 - and only at a later stage retire something

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

% \section{Compatibility}
%    \begin{macrocode}
\cs_new:Npn \seq_pop:NN #1#2 {
   \seq_pop_with:Nn #1 {\tl_set:Nn #2}
\cs_new:Npn \seq_gpop:NN #1#2 {
   \seq_gpop_with:Nn #1 {\tl_set:Nn #2}
\cs_set_eq:NN \seq_map_break: \seq_break:
\cs_set_eq:NN \seq_map_break:n \seq_break:n
%    \end{macrocode}

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

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

I haven't read the code section of your file yet, but hope that I'll find some
time later tonight or tomorrow