Fix "make sourcedoc"

An error was introduced in SVN 4014 which meant that 

  \testfile{foo}

did not work as the "foo" was supposed to be passed as a parameter and was
not. So a function is needed to print the text here rather than a tl.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4070 de43f980-851b-0410-b2f7-c40aca1f87e0
Use \dim_show:n instead of \tex_showthe:D in a test file.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4071 de43f980-851b-0410-b2f7-c40aca1f87e0
Remove unnecessary \exp_args:No from test file.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4072 de43f980-851b-0410-b2f7-c40aca1f87e0
Whitespace, to follow our coding conventions.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4073 de43f980-851b-0410-b2f7-c40aca1f87e0
Another replacement of \tex_showthe:D by \dim_show:n.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4074 de43f980-851b-0410-b2f7-c40aca1f87e0
Add l3trial/l3check, with only l3expan checks so far.

The goal is to go through the kernel modules one at a time,
trying to redefine functions to do as many checks as possible.
The current code only redefines the l3expan internals, which
then make sure that, e.g., \use:c raises an error when it
builds \relax; or \::o and others raise warnings when their
argument does not change under that kind of expansion.

Loading l3check after l3candidates in expl3 leads to a couple
of failing tests, which most often point to not-so-good code
or weird tests (see the past few commits).


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4075 de43f980-851b-0410-b2f7-c40aca1f87e0
Add testfile to show double-expansion bug in messages.

Currently, the :nnn...n variety of kernel messages perform
x-expansion, the :nnx...x variety perform two consecutive
x-expansions, the :nnn...n non-kernel messages are ok, and
the :nnx...x non-kernel messages perform two x-expansions.
To be fixed in the next commit.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4076 de43f980-851b-0410-b2f7-c40aca1f87e0
Fix double x-expansion problem in messages.

Now the nnxxxx functions call the nnnnnn functions with
arguments expanded (through \use:x), and the nnnnnn
functions turn their arguments to strings before going
further in the code.  The remaining code is free to do
as many expansion as it wishes.



git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4077 de43f980-851b-0410-b2f7-c40aca1f87e0
Clean up l3fp-logic, make \__fp_compare_npos:nwnw internal,
so that it can be used in l3fp-basics (soon).  I'm still
not sure how to do the ternary operator properly, so this
part is still a mess.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4078 de43f980-851b-0410-b2f7-c40aca1f87e0
Clean up addition and subtraction in l3fp-basics.

This fixes at least one bug: (x - y) gave wrong results in cases where
y << x and (x - y) has a smaller exponent than x.  For instance,
(1 - 1e-16) was wrongly evaluated as 1 rather than 0.9999999999999999.
The code is generally cleaner, and I thrived to use auxiliaries which
are common with other modules (not fully successful at that).  Another
highlight is that (inf - inf) now correctly raises an invalid_operation
exception.



git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4079 de43f980-851b-0410-b2f7-c40aca1f87e0
Clean multiplication and division in l3fp-basics a little.

In particular, 1/0 now produces a "division_by_zero" exception,
which can be made to produce an error with

  \fp_trap:nn { division_by_zero } { error }

Also, this clean up includes using more generic auxiliaries
where applicable, and less functions overall.  It is probably
still possible to make the code for the division clearer/simpler.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4080 de43f980-851b-0410-b2f7-c40aca1f87e0
Add '_o' to the names of functions which implement unary operations

Those internal functions expand once after the floating point
result they produce.  I am trying to clarify in the code which
functions do and do not perform this kind of expansion.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4081 de43f980-851b-0410-b2f7-c40aca1f87e0
Fix three bugs in l3fp-assign and l3fp-old.

Evaluate the second argument of \fp_add:Nn and friends using 
\__fp_parse:n, rather than simply parentheses: otherwise
"\fp_add:Nn \l_tmpa_fp {2)*(3}" would be legal.

Remove \fp_compare_p:NNN from l3fp-old since that test is protected and 
the predicate didn't exist in earlier versions.

Include the "type" in the name of the constants where sines and cosines 
computed with \fp_sin:Nn and \fp_cos:Nn are stored.  The earlier set-up 
meant that after "\fp_sin:Nn \A {0}", giving zero, the call "\fp_sin:Nn 
\B {inf}" gave incorrecly "0", because both values were using the same 
constant floating point storage.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4082 de43f980-851b-0410-b2f7-c40aca1f87e0
A test cs was defined twice there, within \OMIT\TIMO


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4083 de43f980-851b-0410-b2f7-c40aca1f87e0
Clean l3fp-convert, in particular catcodes letter => other

Now "\fp_eval:n {1e234}" produces an 'e' with category other;
similarly, "\fp_to_tl:n {nan}", "\fp_to_tl:n {inf}", and
"\fp_to_dim:n {...}" all produce their letters with category
other.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4084 de43f980-851b-0410-b2f7-c40aca1f87e0
A \fi: was wrongly skipped in l3fp-aux, wreaking havoc elsewhere.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4085 de43f980-851b-0410-b2f7-c40aca1f87e0
Get 'round' to raise a proper invalid_operation exception.

This function is currently the only function with more than
one argument which may raise exceptions.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4086 de43f980-851b-0410-b2f7-c40aca1f87e0
ln(-0) = nan rather than -inf

The choice between the two values is probably somewhat arbitrary,
but one reason of having +0 and -0 is that they are allowed to
behave differently under various operations.  From the point of
view where -0 is the limit of very small negative numbers, setting
ln(-0) = nan seems natural.


git-svn-id: http://www.latex-project.org/svnroot/experimental/trunk@4087 de43f980-851b-0410-b2f7-c40aca1f87e0