brainstorming lists: gist.github.com/203173 paste.lisp.org/display/88288 IRC logs: irclog.perlgeek.de/perl6book/today source: github.com/perl6/book/
Set by moderator on 20 October 2009.
07:25 masak joined 12:11 lichtkind joined 12:36 lichtkind_ joined
masak meeting tonight? 13:31
moritz_ oops
wrong way 'round
masak: yes 13:32
moritz_ hopes for more attendees than last week
masak I'll come. 13:39
when we do the release later in the week, do we plan to release things with '# TODO' comments in them? 14:03
moritz_ plans to, yes 14:04
jnthn what time? 1800 utc? 14:05
moritz_ yes, I think so
masak I think so too.
anyone mind s/Stone/Rock/ in the Rock-Paper-Scissors game? 14:06
moritz_ go right ahead
as long as you :g it :-)
masak I will :) 14:08
rakudo: enum Signs <Rock Paper Scissors>; multi wins(Rock $, Paper $) { 1 }; multi wins(Paper $, Rock $) { 1 }; multi wins(Scissors $, Paper $) { 1 }; multi wins(::T $, T $) { 0 }; multi wins ($, $) { -1 }; say wins(Rock, Paper)
p6eval rakudo 073d5e: TIMED_OUT
masak that works locally.
masak kicks p6eval
I would argue that an enum is nicer than three empty classes.
moritz_ it is
masak I'll make the changes separately, for great justice. 14:09
moritz_ and feel free to do hack any improvements in, I don't feel stronlgy about "owning" that chapter
masak excellent.
jnthn masak: yeah but 14:13
I'm not sure that's going to type sort the way you want.
Hmm...maybe
Does draw still work? 14:14
masak I'll check.
why would it type sort differently, by the way. 14:15
s/\\./?/
jnthn I'm not sure enum elems count as nominal types. 14:16
masak they better do, or they'll have me to deal with!
moritz_ if the aren't, they shouldn't be allowed as type constraints
std: enum Foo <Bar Baz>; my Baz $x; 14:17
p6eval std 28870: OUTPUT«ok 00:02 112m␤»
masak draw works.
dalek ok: abc7de1 | masak++ | src/multi-dispatch.pod:
[MMD] s:g:ii/stone/rock/

familiar to people.
14:33
ok: e5d44d9 | masak++ | src/multi-dispatch.pod:
[MMD] replaced the classes by an enum decl
16:00 dalek joined 17:05 colomon joined 17:08 perlpilot joined
moritz_ What I did last week: * Wrote about MMD, regexes and a bit about grammars * wrote a release announcement * Got lots of feedback. masak++ and jnthn++ in particular 17:15
What I plan to do this week:
* Announce the book, and make a "release"
(if nobody provides a toolchain for conversion to HTML or PDF it will be
just a tarball of .pod files)
* Split regexes and grammars
(into separate chapters)
* More about grammars
* Action methods for grammars
What I'm blocking on
* Tuits 17:16
* More good examples
EOR
masak oh, we're pre-reporting?
moritz_ I suggested that last week. Nobody objected ;-)
masak ok, here goes: 17:17
did last week: the Task class example, various minor corrections, an SVG diagram for MMD.
plan to do this week: help with release, help set up toolchain if we get the tools. 17:18
blocking on: tuits, focus, plain ol' time.
.eor
moritz_ masak: could you add the +1/0/-1 to the table in that awesome SVG thing? 17:22
I'm thinking of the color blind here
masak consider it done.
moritz_: hm. you wrote +1 instead of just 1. I'm thinking whether that might not be a good idea, in the table, in the coloured code next to the table, and in the chapter text. what do you think? 17:30
moritz_ masak: for symmetry I'd prefer to use +1 everywhere, but I'm also fine with justing 1 everywhere 17:31
masak same here. I'll try +1 everywhere, since we haven't done that yet. 17:32
if I put all the changes into one commit, they won't be difficult to separate from the rest.
moritz_ +1 ;-)
17:33 takadonet joined
masak :P 17:33
moritz_ masak: do you have local changes to the regex-chapter?
masak nope.
moritz_ good.
masak but even if I did -- this is git, so no problem. :) 17:37
moritz_ just splitted it into two chapters
masak (it's not you, it's English grammar. 'split') 17:38
moritz_ oh
right
masak we spent years in school rehearsing that. instead of fixing the problem at its root. :)
moritz_ well, I learned that too. And then spent countless hours on IRC where your grammar can decay, and nobody tells you (except masak++ ;-) 17:39
masak it's a gamble telling people. they are wont to get defensive. 17:40
moritz_ well, you can safely tell here, because you'd have to correct it in the repo in the end anyway ;-) 17:42
masak that's a good reason. :) 17:44
skimming the regex chapter, I don't see anything about code assertions and similar not-yet-in-Rakudo-but-in-Rakudo-star stuff. 17:56
moritz_ aye
my plan was to add them when they actually work
masak that might be a good plan. 17:57
moritz_ so that I can actually test them
perlpilot (working code)++
masak I'll start thinking about good examples already, though. :)
it would be neat to hook up all code snippets in the book to a testing framework, somehow.
moritz_ aye
masak: there's a very good example for assertions: parsing whitespace-significant formats 17:58
masak right, with indentation and things.
moritz_ ^^(\\s+) <{ $0.chars >= $limit }>
masak I agree.
another common, simple example is IP numbers.
moritz_ right 17:59
maybe a good IPv6 grammar would be nice
masak I like it because the corresponding 'pure regex' is possible to write out, and it look pretty hideous in comparison. :)
perlpilot Did we say that the book was going to have one voice or if each chapter would have its own voice?
moritz_ that chesk the max. number of colons, at most one :: etc.
masak perlpilot: are you referring to the use of the pronoun 'I' in the book? 18:00
moritz_ 'I' vs. 'we' should be standardized
masak moritz_: are we sure IPv6 will take off, though? it might make the book look quaint in 5 years or so.
perlpilot I was thinking more of the general tone than that. 18:01
moritz_ in 5 years there'll be a much more awesome {Programming,Learning} Perl anyway ;-)
perlpilot: a consistent tone would be nice, IMHO
masak I'd very much like it for the general tone to be the same throughout the book. but I'm not going to worry about that in a few months.
moritz_ btw it's meeting time ;-)
masak right now it's spit-out-many-examples.
moritz_ any more reports?
masak any lurkers actually participating in the meeting? 18:02
perlpilot I've done nothing but read. EOR :)
moritz_ perlpilot++ # concise report
rakudo: token ws { A+}; say 'fAAAb' ~~ m/:s f b/ 18:03
p6eval rakudo 073d5e: OUTPUT«␤»
moritz_ rakudo: token ws { A+}; say 'fAAAb' ~~ m/:s[]f b/
p6eval rakudo 073d5e: OUTPUT«Confused at line 2, near "f b/"␤in Main (file <unknown>, line <unknown>)␤»
moritz_ rakudo: token ws { A* }; say 'fAAAb' ~~ m/:s f b/ 18:04
p6eval rakudo 073d5e: OUTPUT«␤»
moritz_ so overriding ws only works in grammars right now?
masak doesn't surprise me.
perlpilot Should I mention the book effort in the Rakudo release announcement? 18:05
moritz_ perlpilot: no need, there's going to be a separate announcement on Friday
perlpilot It's not a question of "need" as much as "want" :)
moritz_ it's fine by me either way 18:06
masak I'd like to see if we can get hold of chromatic before Friday, and ask him nicely about the converter he mentioned.
moritz_ rakudo: role A { method foo { 'foo' } }; grammar B does A { token TOP { <foo> } }; say B.parse('foo')
p6eval rakudo 073d5e: TIMED_OUT 18:07
masak ooh, interesting. grammars doing roles.
moritz_ and it fails 18:08
No such attribute '$.pos'
in Main (file src/gen_setting.pm, line 288)
18:08 KyleHa joined
masak works here. 18:08
prints "foo"
moritz_ curious 18:09
masak very.
moritz_ needs to run a 'make install'
masak maybe you just found a bug which was fixed before it was reported. :) 18:10
18:10 chromatic joined
masak chromatic: oh hai. about that converter from POD to... was it LaTeX? 18:11
18:11 perlpilot joined
moritz_ sorry, have to run for supper, bbl 18:12
chromatic Yes, it's Pod::PseudoPod::LaTeX on the CPAN. We use it at Onyx Neon for all of our projects. 18:13
masak oh, on CPAN.
that makes things easier. 18:14
perlpilot was under the impression that it was proprietary last time this came up
CPAN++
chromatic We have a custom LaTeX stylesheet, but I hesitate to describe formatting instructions as *proprietary*. 18:15
perlpilot I meant the code that grappled with pseudo pod, but you're right, that word is probably not quite what I meant at all. :) 18:17
18:19 dalek joined 18:20 dalek joined 18:22 dukeleto_ joined, PerlJam joined, jnthn joined, pmichaud joined 18:38 hugme joined
moritz_ ls 18:40
masak I just pushed a script that generates a .tex file from the POD sources.
moritz_ masak++
masak moritz_: there are no files here.
only people :)
moritz_ "ls" just means "list", not "list files"
masak true.
and according to Plan 9, everything is files, so... 18:41
KyleHa Plan 9 is from outer space.
masak someone is very welcome to create a Makefile from what I just made. 18:43
dalek ok: 026f34f | masak++ | (2 files):
[bin/book-to-latex] script to generate a .tex file

  $ perl bin/book-to-latex > book.tex
  $ pdflatex book.tex
Now, could someone who knows how please make a Makefile that does the above?
masak it's probably not hard.
moritz_ I've added all of the previous ops who are registered to freenode to the access list 18:45
jnthn hi hi hi!
Am I late to b00k meeting?
moritz_ jnthn: yes
so we can just become op when necessary
no need to carry around our donoughts publicly ;-)
jnthn Also, what on earth happened while I was doing @otherjob... 18:46
moritz_ jnthn: feather went down
jnthn ah
gah, now we irssi window numberings have changed. :-/
PerlJam actually feather appears to have stayed up, it's just that its neetwork connection went away for a while
moritz_ right 18:47
PerlJam jnthn: you can save those (I forget the syntax)
moritz_ the processes were still running
jnthn I'll be posting in the wrong place for days.
Yeah, my screen session lived.
moritz_ jnthn: /window move $number
jnthn moritz_: oh wow!
moritz++
So...people call the game Rock Paper Scissors? 18:49
PerlJam jnthn: in the USA they do
jnthn Oh.
Paper Scissor Stone in proper English.
masak oh.
jnthn ;-)
Erm, British. I meant British English.
:-)
PerlJam (I think it's a minor cultural thing that anyone can get used to, so the british english way would be fine by me) 18:50
moritz_ we should keep two branches, one in Proper English, one in Slanglish ;-)
PerlJam The USAian version has the benefit of unique first characters
jnthn Don't forget the Geordie branch, which is just like the others, but eveyr sentence ends in "like", like.
moritz_ rakudo: say 'a.b' ~~ m/<.ww>b/ 18:52
masak is this still the meeting? or are we just having an after-meeting chat?
p6eval rakudo 073d5e: TIMED_OUT
moritz_ I suppose it's after-meeting chate
*chat
sorry, I had to run off, so I kinda lost track
jnthn I'm backlogging at the moment. Is there anything anyone wanted to ask me? 18:53
Since I managed an off-by-1 error.
(1 hour, that is...)
moritz_ ;-)
don't think so
masak jnthn: so you were actually 15 minutes early? :P 18:54
jnthn Yeah, I'd just finished dinner and was going to write my pre-meeting report of what I did for book this week. ;-)
moritz_ well, write it now 18:55
jnthn Fine
Scribbled some stuff in the OO chapter.
Reviewed moritz++'s MMD chapter
EOR
masak jnthn++
jnthn I'm planning to do more on OO chapter during the next week, unless that conflicts with anyone?
moritz_ not with me 18:56
jnthn My only other thing. Moritz wrote "'I' vs. 'we' should be standardized". I agree.
moritz_ I'm focusing on grammars for now
I'd prefer 'we'
erm
jnthn I don't mind strongly which one, but I hate fixing up text from one to the other, so would rather try and having it right.
moritz_ we'd prefer 'we'
jnthn We'd prefer it too. 18:57
Are we amused?
masak I don't use either much.
moritz_ we can haz pluralz_
s/_/?/
(tippgicht)
(tipp = typing, gicht = gout) 18:58
jnthn German is awesomecombinatinglanguage.
masak is considering heading home
jnthn "we" works for me though
I think it's what I've been using.
chromatic Where's this pronoun use?
masak I'm not sure it's such a big problem. there's lots of editing to be done once we have all the material anyway. 18:59
jnthn isn't quite sure how to answer that
masak we will read the text hundreds of times...
jnthn chromatic: Erm, "in the bits of the book written so far" is the first answer that comes to mind. :-)
chromatic: What is it specifically that you're asking?
chromatic How do you address the reader? As "you" or as "we"? 19:00
jnthn I've been using "we" so far.
But the discussion is mostly, should we try and standardize on one.
moritz_ has been using "you", mostly
chromatic My preference is "you".
jnthn OK
If we^Wyou prefer that, I can switch. 19:01
chromatic I find the imperative mood "Reader, go do this!" clearest.
masak nod.
and 'we' for the writers makes sense, since we're several.
jnthn Yes.
masak and 'we' for both writers and readers also makes sense.
moritz_: did you try creating a PDF? 19:02
moritz_ masak: no, not yet
masak it already looks pretty cool. 19 pages. :)
I'd say the priority until Friday is to make it look a bit more polished... releasable, simply. 19:03
that's probably what I'll be putting my effort on.
moritz_ I'm writing a bit about grammar inheritance right now, and then will focus on polishing
jnthn I'm madly sorting out slides for my talks at IPW, and tomorrow will be jumping on a flight, and then will be doing conferency things for next couple of days. 19:04
So I'm not sure I'll be able to make a lot of time for book before the release - sorry.
moritz_ no problem.
masak what moritz_ said. 19:05
good luck, and have a good flight!
jnthn masak: Thanks! 19:06
pmichaud I'll make book time, although I also have a conferency-thing this weekend.
chromatic Would it help for me to make a quick editorial pass?
pmichaud But mine isn't quite so far out-of-town as jnthn's
chromatic +1
chromatic Someone'll have to hugme commit access.
moritz_ hugme: add chromatic to book 19:07
hugme hugs chromatic. Welcome to book!
masak :)
jnthn
.oO( first time I saw hugme used as a verb :) )
moritz_ we can verb anything!
jnthn pmichaud: Mine's so far out of town, it's even out of country! ;-)
chromatic I'm an editor. I have fiendish word powers.
pmichaud jnthn: well, sometimes my "in-state" conferences are still farther than your out-of-country ones :) 19:08
jnthn pmichaud: I knew that comment was coming. :-)
pmichaud ...you could see it coming from halfway across the state? ;-)
jnthn ...not literally. Ya state's so big even Hubble can't see accross it. 19:09
pmichaud it's not only size, it's ozone coming from Houston.
"Worst air quality in the U.S.! Woo hoo!" 19:10
masak sounds like Houston has a problem.
jnthn :-)
Thing with ozone is, unlike methane you can't just blame it on the huge number of cattle. 19:11
chromatic This must be some use of the name "US" which no one outside of Texas intends.
pmichaud heh.... did you see the poll about Texas seceeding from the union? 19:12
chromatic I voted for it! 19:13
pmichaud so did apparently a majority of folks in the U.S. (outside of Texas)
www.dallasnews.com/sharedcontent/dw...3cb13.html 19:14
masak hah!
moritz_ dalek eated my commit. Bah. 19:15
19:15 dalek joined
masak dalek was booted because of your commits? :) 19:16
moritz_ feels mostly inocent
jnthn Man, these people who commit too much. 19:18
masak "captain! the bots are overheating due to all the commits!" 19:19
I really like the development the book has had so far. 19:20
I feel I've contributed very little to it, but that might change in the future.
I have think-of-examples running as a background job in my mind. 19:21
jnthn masak: Your have contributed.
masak: Your OO example inspired me to write the bits I did. 19:22
masak yeah, that was kinda cool.
I should do more of those drive-by commits.
jnthn I've have found it a lot harder to start without a good example to work from
moritz_ same here
jnthn If you feel like showing the code for some extensions too (not bulk out the original but a more "how we could add to it") to demonstrate delegation and inheritance, that would be excellent.
Oh, and multi-dispatch. 19:23
masak I can put together the variant with parallel tasks I mentioned.
moritz_ and you can delegate to @!dependencies.push ;-) 19:24
masak wohoo! TimToady++
jnthn Both good examples.
Also multi-methods if we can fit those in.
moritz_ which reminds me, I wanted to write tets for that
masak logging off. see y'all around. o/
jnthn o/
moritz_ seeya
jnthn moritz_: yay, tests :-) 19:25
moritz_: I suspect that while we enabled tests for named and attributive parameters, they both might be more extensively tested too.
moritz_: Further to that, signature literals also now work. I'm nt sure we have/enabled any tests for those either.
moritz_ we don't have that many 19:26
jnthn *nod*
moritz_ rakudo: say (-> $x, $y { }).signature === :($x, $y)
jnthn I'm not saying you do them all, but maybe stuff to put in TASKS file. :-)
p6eval rakudo 073d5e: OUTPUT«0␤»
moritz_ rakudo: say (-> $x, $y { }).signature eqv :($x, $y)
jnthn moritz_: I didn't actually make them do a whole lot yet.
p6eval rakudo 073d5e: TIMED_OUT
jnthn moritz_: I mean, .perl and introspection on 'em work. 19:27
moritz_ that should be enough to get eqv to work too
jnthn Before you couldn't even write a signature literal without it exploding.
moritz_ ae
aye
jnthn Feel free to put eqv support in, if you like. :-)
dalek ok: f027e5e | moritz++ | src/ (5 files):
PseudoPod starts at =head0, so decrease the heading level by one everywhere
19:32
19:39 KyleHa left
colomon Might I get a commit bit for the book? I've just found a typo... :) 19:58
moritz_ hugme: add colomon to book 19:59
hugme hugs colomon. Welcome to book!
colomon Thanks!
Is it okay if I edit sentences as well? 20:03
moritz_ sure
PerlJam colomon: you can only edit odd numbered lines that do not end with a consonant 20:05
:-)
colomon is that before or after I'm done editing them?
moritz_ depending on the moon phase 20:06
the correct algorithm is still being worked on
PerlJam consults some tarot cards for colomon's answer
colomon Huh. I'm having a heck of a time trying to get my change into the PDF. Like book-to-latex worked once and that was it.... 20:12
moritz_ it works here 20:13
colomon apparently I am suffering from "made dumb by the battering of a 13-month-old" syndrome. I've got it working now. 20:14
and of course now I realize I'm editing in a git sandbox clone without write privileges. where is that git book? 20:16
moritz_ just edit .git/config 20:17
url = git@github.com:perl6/book.git
now it's proably url = git://something
colomon ye-ha! I've gone down the dark path to editing text.... 20:19
dalek ok: cac7c9f | (Solomon Foster)++ | src/multi-dispatch.pod:
Add missing t to arbitrary. Rewrite first sentence of paragraph to flow more naturally (IMO).
moritz_ colomon++ 20:20
colomon Ack, while I was working on that, I managed to bork up a $work build by typing svn up in the wrong place. 20:24
I'm still reading the JSON example (and learning stuff, hurrah!) 20:35
Having just reached the first paragraph of page 6, I'm wondering how to-json($d where undef) actually matches anything. 20:36
Or is undef always of type Any? 20:37
moritz_ any object in Perl 6 can be undef 20:38
if it responds with False to .defined
colomon So if I have an undef Int variable, to-json will fire off the (Int $d) case rather than the ($d where undef) case? 20:39
moritz_ right 20:40
colomon seems like maybe that could use further clarification in the text. 20:41
moritz_ ah, that's an even simpler way to get an undef Int 20:49
PerlJam colomon: the first paragraph under Constraints is awkward. If you can think of a way to make it less so, that would be awesome 20:53
colomon PerlJam: nothing jumps to mind at the moment, but I will try to look at again later when I don't have a 13-month-old pounding on me. :) 20:55
dalek ok: 437783b | moritz++ | src/multi-dispatch.pod:
[MMD] further clarifications requested by colomon++
moritz_ colomon: does that answer your question? 20:57
colomon moritz_: it's a good start, for sure. the second half of the question is explaining how this applies to the to-json example. 21:01
Another way of saying this is when I saw the to-json example, I figured ($x where undef) must beat (Int $x) for undefined Ints. (Mind you, I didn't understand how.) 21:04
then later I understood that it wouldn't, but then I was confused about the example. :) 21:05
PerlJam C<$d where { $d ~~ undef }> That should be $d where { $_ ~~ undef }, right? 21:07
moritz_ PerlJam: the two are equivalent
PerlJam right, but only because $d is in the scope of the block. 21:08
Two different things that do the same thing leads to confusion :)
moritz_ it alwyas is, in the case of constraints
PerlJam: but feel free to change it if you think it's clearer the other way round
PerlJam I'll think on it some. 21:09
After the Rakudo release I'll probably hack the book in my spare time
colomon I've always done it $d where { $d ~~ undef }.
Seems more natural to my C++ perverted mind. 21:10
PerlJam Can we do $foo where &some_sub ?
moritz_ sure 21:11
PerlJam I guess that gets translated to $foo where { $foo ~~ &some_sub } # :-)
moritz_ aye
PerlJam not at all what I meant though. 21:12
moritz_ which in turn calls some_sub
what did you mean?
PerlJam shorthand for C<$foo where { some_sub($foo) }>
moritz_ that's what it does 21:13
PerlJam hasn't delved into the particulars of constraints enough to remember much of anything about the syntax
moritz_: are you saying that C<some_sub($foo)> and C<$foo ~~ &some_sub> are equivalent?
moritz_ yes. 21:14
at least if some_sub is unary
PerlJam obviously I hadn't thought about that at all, but it seems weird.
moritz_ it is very convenient 21:15
anything that expects a matcher and does a smartmatch against that can be fully customized by a closure
PerlJam reads S03 again 21:16
Hmm. 21:20
So ... C<$x ~~ &some_sub> checks the arity of C<&some_sub> and if it's 0 or 1, calls C<some_sub>, but if the arity is > 1, it dies a horrible death? 21:22
moritz_ either that, or it fail()s or so
PerlJam Or, in keeping with the language of the paragraphs preceeding the table, it could read the signature directly (that's how I read "pattern types"). 21:24
22:21 d4l3k_ joined 23:21 dalek joined