12:00 AM
@tsj tex expansion is "just in time" if you are processing a tex primitive and it needs some tokens then the next token in the input is expanded and its first token is expanded and so on until you get enough for the primitive to process.
@tsj uncomment the \tracingmacros line in the above (with a smaller example like {2}{4} :-) and see the expansions being logged to the terminal

Is there some way to observe the stack so I could see all the \fi's built up?

12:15 AM
@tsj Try the unravel package

@PhelypeOleinik ooh :)
fun

@tsj or this which actually makes it seem worse tahn it is as it leaves more on the stack, to force the trace:
\documentclass{article}
\errorcontextlines1000
\begin{document}
\def\foo#1#2{\number#1
\ifnum#1<#2,
\expandafter\foo
\expandafter{\number\numexpr#1+1\expandafter}%
\expandafter{\number#2}%
\else
\zzz
\fi}

{
%\tracingonline=2 \tracingmacros=2

\foo{2}{10}
}

\end{document}
thi sshows terminal output
! Undefined control sequence.
\foo ...fter }\expandafter {\number #2}\else \zzz
\fi
\foo ...1+1\expandafter }\expandafter {\number #2}
\else \zzz \fi
\foo ...1+1\expandafter }\expandafter {\number #2}
\else \zzz \fi
\foo ...1+1\expandafter }\expandafter {\number #2}
\else \zzz \fi
\foo ...1+1\expandafter }\expandafter {\number #2}
the fact that all those \else\zzz\fi are after the linebreak means they are in the input buffer but not processed yet

1:04 AM
I was missing the bit about the expandafter results going back on the input stack instead picturing something like "stuff I have expanded (but may expand more)": "2, \foo{3}{4}" and "stuff I am going to expand immediately": "\fi". But it's "done": "2, " and "next": "\foo{3}{4}\fi"
Does this mean you can only write a macro with a 5000 token argument
Or even a 5000 token document

5 hours later…
6:23 AM
@AlanMunn Nice :D What was the subject?

7:20 AM
\documentclass{article}

\usepackage{l3fp-extras}
\ExplSyntaxOn
\fp_set_function:nnn {foo} { x,y,z } { sin(x)+cos(y)*exp(z) }
\ExplSyntaxOff
\usepackage{xfp}

\usepackage{pgf}
\makeatletter
\pgfmathdeclarefunction*{foo}{3}{%
\begingroup
\pgfmathparse{sin(deg(#1)) + cos(deg(#2)) * exp(#3)}%
\pgf@x=\pgfmathresult pt
\pgfmathreturn\pgf@x
\endgroup
}
\makeatother

\begin{document}

\fpeval{foo(0.1,0.2,0.3)}
\pgfmathparse{foo(0.4,0.2,0.3)}\pgfmathresult

\end{document}
@egreg ^^^ I think I prefer Bruno's interface

7:53 AM
@DavidCarlisle No! I'd replace them with \def\foo\fi\@secondoftwo#1#2{\fi#1} :)
@DavidCarlisle and if it should be more robust, I'd go for \def\foo\fi\@secondoftwo{\fi\@firstoftwo}, which is still faster than \expandafter\@secondofthree.
@JosephWright I don't have any real experience with it so far, so no educated recommendation from me.

@JosephWright I would prefer #1/#2/#... style arguments, both for consistency with TeX macros and because { x,y,z } reminds me too much of xparse (or is it ltcmd these days?) where similar looking syntax is used with completely different meaning.

8:12 AM
@MarcelKrüger Yes, I can see that: I need to have a look at Bruno's code, and work out how easy that would be
@MarcelKrüger only came up yesterday, so I'm just looking at what we have at the moment; there's no support for tuples ATM

@barbarabeeton I like that one.

'ello

8:30 AM
@tsj no the buffer than holds the replacement texts is a lot larger, the stack of input sources is kept here mostly for error reporting so on error you can see which macros are partially expanded. There is essentially no limit on the total document size tex never reads the document in to memory just reads it line by line
@PauloCereda 'reakfast

@DavidCarlisle oh no

@PauloCereda 'ello luv, 'ow's it goin'? :p

@Plergux ooh the 'oop.
^^ Meanwhile in the TeX world...

@PauloCereda oh, we aare grand, aren't we? Excuse me while I go and play the graand piaaano. XD

@Plergux ooh but you are on a wireeeee

8:44 AM
@PauloCereda I am no' ona wire!

@Plergux want me to give you the 'oop? :D

@PauloCereda yeah, 'and me the 'oop! :p

@Plergux LOLOLOLOL
@Plergux there's a gap in it

@JosephWright Definitely!

@egreg there is also the "declare function" thing, though --- which is intermediate I think:
\documentclass{article}
\usepackage{tikz}
\tikzset{declare function={
foo(\x,\y,\z)=sin(\x)+cos(\y)*exp(\z);
}}
\begin{document}
\pgfmathsetmacro{\out}{foo(0.1,0.2,0.3)}\out
\end{document}

8:58 AM
@PauloCereda Oh! A gaahp in ones hoop! Of course iss got a gap in it! Woudn't be an 'oop otherwise, would it mush!

@Plergux ooh :)

@Rmano Ah
@Rmano That's closer to what we have

@JosephWright currently I'd use (and tell others to use) \newcommand\foo[3]{sin(#1)+cos(#2)*exp(#3)} and use the macro. \fpeval works fine with those
@JosephWright the big advantage of \pgfmathdeclarefunction is that you don't have to work fully expandable. The big advantage of l3fp is that it's fully expandable. :)

9:22 AM
@samcarter_preparing_for_xmas I thought this was a metaphor: github.com/pgf-tikz/pgf/issues/928#issuecomment-730346453
@samcarter_preparing_for_xmas As a result I have actually improved the release workflow significantly, so that I can now make new releases much quicker with a lot less manual work. I plan to publish patch versions, i.e. 3.1.x, much more often now.
In the next step I have to really set up those test, because then I can implement a PR self service, where PRs only have to pass the tests for automatic merging.

@HenriMenke while in theory great, I'd still apreciate if any of my PRs would be "proof-read" by some human being :) Just because it doesn't break any of the existing tests, doesn't mean it's unproblematic. (I know this is much work, and thank you for volunteering to maintain and develop PGF/TikZ)

@Skillmon Code review will still be in place but currently I (or someone else with write access) has to review and merge and I would like this to me a bit more decentralized.

@HenriMenke ooh chocolate

@HenriMenke /relief

9:35 AM
@HenriMenke ohh, secret conversation

@Skillmon ooh

@Skillmon yes but I am hoping we can allow keyword creation

9:59 AM
@JosephWright don't understand me wrong, it is a great idea to finally add this to l3fp, all I wanted to say is that it doesn't have a very high priority, imho, as there is a viable solution.

@HenriMenke how are you liking gh actions (compared to Travis)? I looked at the doc when it first came out but haven't tried it yet at all....

10:17 AM
@DavidCarlisle meanwhile, life is a breeze in GitLab. :)

@PauloCereda I have used gitlab actions a bit (more or less identical to travis in the way I used it:-)
@PauloCereda currently working on Jenkins...

@DavidCarlisle ooh :)
@DavidCarlisle ah

10:34 AM
@Skillmon Sure: I've got FMi after me about PDF things
@Skillmon Ir's mainly that we have 95% of the code here: it's really just a question of some interface decisions (TeX parameters vs named ones: I see reasons for going both ways)
@Rmano I guess IO was looking for a pgf interface as that's the level the maths parser sits at

@JosephWright I foresee a future in which the named one will lead to people trying to use functions with 26 arguments. Also: Will optional parameters be supported?

@Skillmon ooh let's make JW implement currying.

@Skillmon I think the symbolic version allows an arbitrary number of parameters: II think there should be a way to handle missing arguments (to make them optional)., but I can't find it just at the moment!

@PauloCereda done

@DavidCarlisle OH NO

10:48 AM
@PauloCereda check gchat

@JosephWright Hmmm... IO? well, as an user I use the declare function a lot because can give consistent documents (typeset formulas and graphs with pgfplots automatically in-sync changing parameters, invaluable in exam preparation). A similar approach with the range and precision of fp3math would be wonderful (but either that of fpu tend to explode in pgfplots ;-))

@Rmano Sure, I just meant that I was reading the bit of the manual that's about the PGF maths engine, as that's the natural place for me to look

@PauloCereda I'd like to order one chicken curry, please :)

@samcarter_preparing_for_xmas ooh would like chips with it?

@Skillmon Isn't "human being" a very restrictive requirement in the TeX world?
@PauloCereda Yes, that would be lovely :D

10:53 AM
@samcarter_preparing_for_xmas with vinegar :p

@HenriMenke Great to hear about the new workflow! For any "normal" package it would not be that important, but as pgf/tikz is a bit more difficult to install for the normal user it is really good to have new releases fast!
@Plergux Ohh, no!

@Plergux vinegar-marinated anchovies with chips is a classical in Spain (and yummi)
@samcarter_preparing_for_xmas ^^^

@samcarter_preparing_for_xmas maybe, but I think the ones with write access to the repository are mostly humans, and @HenriMenke is, afaik, so this restriction shouldn't become apparent in practice.

@Rmano but they are crisps not chips (in the sense of "chips and curry")

11:10 AM
@Rmano Oh, those are crisps :p (but chips are yummy with vinegar as well. :p)

@Rmano oh I should try this. We have some in the freezer. What is the green stuff?

@UlrikeFischer don't crisps go soggy in the freezer?

@UlrikeFischer it is some sort of plant-y thingy :)

@DavidCarlisle meh, everything is better soggy anyway. :p

@UlrikeFischer parsley
their are marinated with vinegar, oil, (bit of) garlic and parsley

11:16 AM
@Rmano fresh or fried somehow?

@UlrikeFischer not, everything is raw --- no cooking. Somebody adds lemon, but I don't like it too much (not a ceviche, you know ;-))
Well, the chips/crisps/ whatever are fried, obviously ;-)

@Rmano just in time for lunch :D

1 hour later…
12:27 PM
@DavidCarlisle Actions is okay. The main advantage over Travis is that the runners are quite a bit faster (ca. 20%).

@HenriMenke Ah

@DavidCarlisle But the configuration is the same nasty YAML stuff.

@HenriMenke YAML is OK, my concern when I looked before was it didn't feel as polished as Travis-CI

@JosephWright What does “polished” mean? Actions has fewer builtin features than Travis, but that's because Actions is supposed to be composable.

@HenriMenke When I looked, they didn't have built-in caching

12:32 PM
@JosephWright Yes, caching is an Action that you have to explicitly use in your workflow: github.com/pgf-tikz/pgf/blob/…

@HenriMenke That's what I mean by less polished :) You seem to have to write everything yourself

@JosephWright I have to say, automatically deploying releases from Actions was much more painful than from Travis.

@HenriMenke That's odd: you'd think they'd provide that!

@JosephWright Really odd, indeed. The responsible Action upload-release-asset is developed by GitHub staff but the repo is pretty much abandoned: github.com/actions/upload-release-asset

@HenriMenke Oh, dear
@HenriMenke That's a bit disturbing

12:46 PM
@JosephWright For now it works. It's just annoying that you have to upload assets one-by-one.

@HenriMenke URgh

Meanwhile, in our GL organisation... :D
2

1:31 PM
@JosephWright As a simple exercise I quickly ported the TeX Live installation script to a GitHub action: github.com/hmenke/pgf/commit/…
@PauloCereda PGF has a GitLab mirror: gitlab.com/pgf-tikz/pgf

2:07 PM
@JosephWright Just in time for X-Mas! Yeah!

1 hour later…
3:14 PM
@Plergux I'm a syntactician so it was a syntax class. We were talking about the relationship between verbal morphology and presence or absence of verb movement, and the loss of verb movement in Middle English and loss of V2 in Middle French.

@AlanMunn :D I must admit that of the various avenues of linguistics I know least about syntax. But I suppose that in a way it's not all that different from morphology. Or at least that's what some people have led me to believe :p

@Plergux I guess it depends a bit on whether you're interested in the phonological side of morphology or the syntactic side. The first grad course I ever taught was a morphology course. Half the semester was phonology and half was syntax. :)

@AlanMunn phony syntax sounds like fun

3:30 PM
@HaraldHanche-Olsen Phun indeed.

@AlanMunn Actually, I am more interested in the semantics of it :p

@AlanMunn “phonological” is just too many syllables.

@Plergux Hmm. I'm not sure what that means actually.

@AlanMunn Well, maybe it's just me, but if you take, say, a compound and look at it phonologically, that's obviously about the sounds needed to "perform" it, and if you take the morphology it's about the types of bits you can stick together, like derivations versus compounds. But neither of them really says anything about what it means. Though I must admit that I've not taken many morphology classes and I mostly argued with the teachers about what constitutes derivation or compounding. :p

@HaraldHanche-Olsen The phonologists like big words, like preantepenultimate. They're very stressing. :)

3:38 PM
@AlanMunn LOL

> AWS Engineer Puts Windows 10 on Arm on Apple Mac M1 -- and It Thrashes Surface Pro X
@HenriMenke ooh <3

@Plergux I guess for me those aspects of meaning are fundamentally related to syntax, or are independent of morphology itself.

3:59 PM
@AlanMunn Well, I suppose you could look at it like that. Like interaction of "meaning bits". After four hundred pages of thesis all I see are sets and categories. :p

4:27 PM
@PauloCereda super-hi-res pictures?
@PauloCereda but can it run Crysis?

@Skillmon looks like. :)
@Skillmon ooh

6 hours later…
10:06 PM

10:19 PM
@yo' LOL

10:40 PM
@Plergux you have been spotted bbc.co.uk/news/av/uk-wales-55177627