»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by moritz on 3 May 2013.
timotimo OH! 00:00
of course
diakopter two is the name/key, three is the value
timotimo "file", "nofile", True?
yes
diakopter yes, it defaults to True
timotimo # Error: Type check failed in assignment to '$a'; expected 'Tree' but got 'Tree' (Tree and Tree|7052662459765981306 respectively)
diakopter says the spec anyway
timotimo why does one have a WHICH with and one a WHICH without a number?
diakopter o_O 00:01
timotimo hopefully one of the experienced rakudo-guts-wranglers sees this is the backlog and knows what's going on
i'll go to bed :)
FROGGS ya, me too 00:02
timotimo gute nacht, FROGGS :)
gnite, rest
FROGGS schlaf gut :o)
gnight all
timotimo gebe mir mühe :3
00:19 PacoAir left 00:23 kurahaupo joined
census gootnight FROGGS 00:45
00:48 frdmn left, frdmn joined 00:50 kurahaupo left
dalek ast: c6dcb13 | (Brent Laabs)++ | S32-io/io-spec- (3 files):
405 IO::Spec tests
01:03
colomon labster++ 01:05
labster most of those come from Perl 5.
colomon so? no one had raided them in the previous decade. so I say labster++ 01:06
labster I feel like a Viking raider.
census hahah 01:07
viking
indiana jones
or a robin hood
labster Maybe Arsène Lupin (but more like Lupin III, probably) 01:09
01:10 lue left
TimToady The Scarlet Pimpernel 01:10
01:10 berekuk left 01:14 MrMeek-afk joined
labster Exactly! Saving blue-bloods from the guillotine, dressed like a dandy. But with tests. 01:14
01:15 kurahaupo joined 01:17 MrMeek left 01:18 grondilu left, berekuk joined 01:23 lue joined 01:24 FROGGS_ joined 01:28 FROGGS left 01:30 berekuk left 01:56 thou joined 02:15 zacts joined 02:29 census left 02:54 kurahaupo left 02:55 Chillance left 02:58 kurahaupo joined 03:04 kurahaupo left 03:25 kurahaupo joined 03:53 preflex_ joined 03:54 preflex left, preflex_ is now known as preflex 04:00 zacts left 04:01 jeffreykegler joined 04:03 frd|afk joined 04:06 jeffreykegler left 04:07 frdmn left 04:25 Psyche^ joined 04:29 Patterner left, Psyche^ is now known as Patterner 04:45 kurahaupo left 05:06 kaare_ joined 05:20 dmol joined 05:45 xinming_ left 05:55 zby_home joined 06:21 CharellKing joined 06:25 xinming joined 06:27 xinming left 06:28 xinming joined 06:39 pecastro left 06:43 CharellKing left, kaare_ left
dalek ast: 09bd951 | (Brent Laabs)++ | S32-io/io-path-unix.t:
added IO::Path::Unix tests
06:52
Iish: 8a82a8d | moritz++ | lib/DBDish/Pg.pm6:
[Pg] reafctoring handling status code
07:33
07:38 dmol left
moritz www.debian.org/News/2013/20130504 \o/ wheezy released! 07:46
08:09 xinming left 08:19 donaldh left 08:21 donaldh joined
diakopter any moose folks around? 08:21
labster sorry, I'm not canadian. 08:25
08:29 FROGGS_ is now known as FROGGS
FROGGS diakopter: no, sorry 08:29
diakopter nm, I found #moose-dev
08:35 domidumont joined 08:41 rindolf joined
labster well, just found my first bug in the IO::Spec stuff thanks to the tests. It seems that someone changed the behavior of the ? quantifier while I wasn't looking. 08:42
moritz yes
it used to generate a zero- or one-element list, now it generates Nil or Match
labster It didn't actually produce wrong results, oddly enough; it just complained about Any in string context. 08:43
08:55 domidumont left, domidumont joined
labster Well, I have a pull request up for it. A two character swap. 09:00
dalek kudo/nom: 1b7852a | (Brent Laabs)++ | src/core/IO/Spec/Win32.pm:
fix IO::Spec::Win32 warn due to ?-quantifier
09:02
kudo/nom: 88f9c9e | moritz++ | src/core/IO/Spec/Win32.pm:
Merge pull request #133 from labster/nom

fix IO::Spec::Win32 warn due to ?-quantifier
Nom- Anyone know the reasoning behind the last statement in a block having an optional semicolon? 09:04
moritz Nom-: think of semicolons as statement separators, not statement terminators, and it suddenly makes sense 09:06
Nom- ok 09:08
09:08 kurahaupo joined
moritz jnthn: how hard would it be to implement leave(), and would approach would make sense? 09:08
09:09 spider-mario joined
moritz s/would/which/ 09:09
r: my %h = a => 42, b => 1; say %h.sort.perl 09:14
camelia rakudo 88f9c9: OUTPUT«("a" => 42, "b" => 1)␤»
dalek Iish: ceb2f8e | moritz++ | t/99-common.pl6:
[t] do not compare hashes by string
09:17
Nom- all good and well, but i'm struggling to wrap my head around how to correctly handle all scenarios in this experment i'm doing :) 09:19
It's definitely simpler if they're not optional, but i'll get there 09:20
09:20 telex joined, tangentstorm left
FROGGS Nom-: think of a CSV file, if there where was a , at the end, would it mean it terminates the line or could it mean that there is an empty field after that? 09:21
Nom- Yeah, I know how I *want* to do it... I think my issue is I either can't work out how to express it in this grammar i'm toying with, or it doesn't support it 09:23
Not sure which yet... still diving through it's code to see which is which
moritz Nom-: are you trying to parse Perl 6 code?
Nom- NQP 09:24
dalek Iish: d7f171d | moritz++ | lib/DBDish/Pg.pm6:
[Pg] fix column_names
Nom- It's a tad simpler as an experiment than Perl6 itself :)
FROGGS Nom-: uhh, why if I'm allowed to ask?
09:26 zby_home left, dmol joined
Nom- I like punishing myself it seems :) 09:26
FROGGS if it is just about parsing a random language, you may start with an old basic (one with line numbers for example)
Nom- Nah not random.. 09:31
I'm hoping to eventually be able to contribute... but I've got a bit of learning to do -- most of my programming career has been around doing Web Apps and stuff .. compilers and parsers are new to me :) 09:32
But I like a challenge... just some hurdles that I need to jump over
09:37 berekuk joined
masak antenoon, #perl6 09:39
09:39 berekuk left
Nom- What's an "anternoon" ;) 09:47
diakopter well, ante- is the Latin prefix for "before" 09:48
so it's a pun on 'afternoon'
09:48 berekuk joined
huf oh wow this is a word i've been needing since i learned the words "morning" and "afternoon" 09:49
09:52 Gothmog_ joined
masak you're welcome ;) 09:52
huf i never could really accept that 11:00 is still morning :) 09:53
masak yeah, it's somewhere around there I draw the line, too.
"they've all gone crazy / mourning all day and mourning all night" -- Lloyd-Webber's Evita 09:57
huf sounds like summer in st petersburg 09:58
10:03 kurahaupo left 10:08 kivutar joined 10:10 jtpalmer_ joined 10:11 __sri joined, hrbkid_ joined 10:12 rhr_ joined, charsbar_______ joined 10:13 moritz_ joined, xdbr joined, Juerd_ joined 10:14 Subterra joined, awwaiid_ joined, integral_ joined, integral_ left, integral_ joined 10:17 shinobicl left, moritz left, awwaiid left, Ayiko left, lee__ joined, Juerd_ is now known as Juerd
timotimo whoa 10:17
10:24 ivan``_ joined, integral joined, kurahaupo joined 10:27 Rix left, wtw left, moritz_ left, jtpalmer_ left, rindolf left, sftp left, Bucciarati left, Nom- left, LordVorp left, yoleaux left, dpk left, ironcamel left, mikemol left, geekosaur left, mls left 10:28 moritz_ joined, jtpalmer_ joined, rindolf joined, sftp joined, Nom- joined, Bucciarati joined, mikemol joined, geekosaur joined, LordVorp joined, markov joined, arnsholt joined, Yappo________ joined, estrabd_ joined, Pleiades` joined, bonsaikitten joined, gabriel_ joined, hoelzro joined, mls joined, yoleaux joined, dpk joined, ironcamel joined, Rix joined, wtw joined, felipe joined, sjn joined, labster joined, jlaire joined, zamolxes_ joined, yves_ joined, atrodo joined, breinbaas joined, chee joined, szbalint joined, kcwu joined, tomaw joined, cotto joined, scottp joined, nyuszika7h left 10:33 [particle] left, integral_ left, Rix left, wtw left, felipe left, tomaw left, moritz_ left, jtpalmer_ left, rindolf left, sftp left, Bucciarati left, Nom- left, LordVorp left, estrabd_ left, yoleaux left, dpk left, ironcamel left, yves_ left, kcwu left, mikemol left, geekosaur left, markov left, bonsaikitten left, gabriel_ left, hoelzro left, mls left, sjn left, labster left, jlaire left, zamolxes_ left, atrodo left, arnsholt left, Yappo________ left, Pleiades` left, breinbaas left, chee left, szbalint left, cotto left, scottp left, ivan``_ left, ivan``_ joined, integral left, integral joined, [particle]1 joined, Chillance joined, nyuszika7h_ joined 10:34 nyuszika7h_ left, bruges left, skids left, jaldhar left, dalek left, camelia left, raiph left, berekuk left, dmol left, telex left, lue left, lizmat left, espent left, `patch` left, SHODAN left, swarley left, Chillance left, [particle]1 left, __sri left, kivutar left, mtk left, xenoterracide left, Kharec left, wooden left, Patterner left, preflex left, woolfy left, arlinius left, araujo left, bakedb left, robinsmidsrod left, Celelibi left, bloonix left, japhb_ left, Maddingue left, Juerd left, charsbar_______ left, REPLeffect left, cognominal left, TimToady left, vaelxon left, moritz_ joined, jtpalmer_ joined, rindolf joined, sftp joined, Nom- joined, Bucciarati joined, mikemol joined, geekosaur joined, LordVorp joined, markov joined, arnsholt joined, Yappo________ joined, estrabd_ joined, Pleiades` joined, bonsaikitten joined, gabriel_ joined, hoelzro joined, mls joined, yoleaux joined, dpk joined, ironcamel joined, Rix joined, wtw joined, felipe joined, sjn joined, labster joined, jlaire joined, zamolxes_ joined, yves_ joined, atrodo joined, breinbaas joined, chee joined, szbalint joined, kcwu joined, tomaw joined, cotto joined, scottp joined 10:36 sciurius joined, nyuszika7h joined 10:37 daniel-s_ joined 10:39 sivoais left, Chillance joined, [particle]1 joined, Juerd joined, charsbar_______ joined, __sri joined, kivutar joined, berekuk joined, dmol joined, telex joined, Patterner joined, preflex joined, lue joined, japhb_ joined, woolfy joined, skids joined, REPLeffect joined, jaldhar joined, arlinius joined, cognominal joined, lizmat joined, araujo joined, mtk joined, bakedb joined, xenoterracide joined, espent joined, Kharec joined, wooden joined, bruges joined, robinsmidsrod joined, dalek joined, Celelibi joined, camelia joined, raiph joined, `patch` joined, jerome_ joined, stevan_ joined, prammer joined, daniel-s joined, pmichaud joined, mathw joined, baest joined, hugme joined, tadzik joined, PerlJam joined, masak joined, betterworld joined, rajaniemi.freenode.net sets mode: +vvv dalek camelia hugme, ruoso joined, flussence joined, colomon joined, rurban joined, ingy joined, sjohnson joined, revdiablo joined, kshannon joined, snarkyboojum joined, TimToady joined, Maddingue joined, vaelxon joined, SHODAN joined, bloonix joined, swarley joined, c1sung joined, patspam_ joined, BooK joined, cxreg joined, simcop2387 joined, takesako___ joined, jfried joined, lestrrat joined, GlitchMr joined, smash joined, sunnavy joined, genehack joined, huf joined, larks joined, japhb joined, sdgvf_ joined, anocelot joined, apejens joined, mikec__ joined, ponbiki joined, risou joined, nyuszika7h left 10:40 sivoais joined, thou left 10:41 salv0 joined, daniel-s left 10:42 sivoais left, sivoais joined, raiph left, nyuszika7h joined 10:43 erkan left 10:44 raiph joined 10:46 kurahaupo left 10:49 sivoais left 10:50 sivoais joined 10:52 gcole joined 10:55 cognominal left 10:56 cognominal joined 11:00 sivoais left 11:01 sivoais joined
masak nwc10++ # rebasing a merged scenario for better bisectability 11:04
I had never thought of doing that -- now I must add a slide to our git course :P
general question: if I want to apply a patch to parrot/ in Rakudo, what's the easiest way after that to tell Rakudo's Configure.pl to re-build parrot (and nqp)? 11:08
11:09 MAACJVP joined
arnsholt Hmm. Good question 11:10
11:10 nyuszika7h left, nyuszika7h joined
masak nwc10: curious question: how do you defined "left" and "right" in the context of a merge? 11:11
11:11 sivoais left
arnsholt I guess the assignment of current branch and branch being merged in to either of those terms is arbitrary 11:12
11:12 sivoais joined
arnsholt Depends entirely on how you draw the diagram on paper, I suppose =) 11:12
masak that's what I'm thinking. 11:13
timotimo that's one of the points where git gets loads of criticism; that you can't tell any more afterwards 11:14
11:14 PacoAir joined
masak timotimo: that's not true, though. 11:15
timotimo: in a merge commit, the first parent is the commit you merged into, and the subsequent ones are the commits you merged. 11:16
timotimo mercurial proponents sure keep wiggling that argument at git proponents :)
masak if you have a URL where that argument is presented, I'd be interested to read it.
timotimo: ooc, do you know if mercurial users use the terms "left" and "right" about merges? 11:17
by the way, "java.lang.RuntimeException: Method code too large" is both funny, scary, and worrying all at the same time. 11:18
jnthn, what are you making the JVM do? :P
and, heh, the Jython people have found that one too: bugs.jython.org/issue1891 11:19
diakopter No, JVM, *you're* too large 11:20
masak :P 11:21
11:21 sivoais left 11:22 sivoais joined
nwc10 masak: left and right, as in 11:31
Merge: 72df616 5cf0134
^left ^right
I think that "left" or "leftmost" is used somewhere in the git docs 11:32
11:32 sivoais left
masak oh, ok. didn't find it in 'git merge --help' 11:32
anyway, that clarifies you usage. thanks.
11:33 sivoais joined 11:37 preflex_ joined, preflex left, preflex_ is now known as preflex 11:38 Subterra is now known as Ayiko
masak your* 11:39
11:40 mikec__ left
moritz_ r: say Date.new(2013, 1, 31).delta(2, month) 11:40
camelia rakudo 88f9c9: OUTPUT«2013-03-31␤»
11:43 sivoais left 11:44 sivoais joined 11:45 pecastro joined, rindolf left 11:55 sivoais left 11:56 sivoais joined, sciurius left 11:59 berekuk left 12:07 sivoais left, sivoais joined
masak moritz_: do you think spec'ing an object which represented a bunch on deltas on different time scales would be useful? some kind of "duration" or "time span" object? 12:15
moritz_ masak: I don't know
masak: but maybe I'll find out soon :-) 12:16
timotimo i don't have a link for that argument right now, sorry 12:17
moritz_ I'm implementing what I outlined here: irclog.perlgeek.de/perl6/2013-05-04#i_7019279
timotimo moritz_: any clue whatsoever about this error? # Error: Type check failed in assignment to '$a'; expected 'Maybe' but got 'Maybe' (Maybe and Maybe|7052662458959412579 respectively)
(i added the WHICH output to the error message method)
moritz_ looks like one is a type object and the other an instance
12:18 sivoais left
moritz_ so maybe some definedness thingy? 12:18
Maybe:D vs. Maybe?
timotimo that might make sense. in that case, it's even more unhelpful to get the WHICH output
because it will always expect an undefined thing and get a defined thing or an undefined thing
as in, you wouldn't say my 1 $foo = 1; you'd say my Int $foo = 1; 12:19
12:19 sivoais joined
moritz_ arnsholt: I have some code that uses DBDIsh::SQLite and segfaults every time I run it 12:19
arnsholt moritz_: Gimme! =) 12:20
timotimo if you would like to go bug hunting, you can grab my EXPORT_sub branch from github.com/timo/ADT and run t/02-EXPORT.t
moritz_ \o/
arnsholt That was nothing short of perfect timing, BTW
I've literally just come back from a walk outside
timotimo i'll rest my wrist now. it hurts :( 12:21
masak moritz_++ # donor-o-meter
moritz_ arnsholt: ok, steps to reproduce: 12:22
1) git clone [email@hidden.address]
2) cd donate-o-meter
12:22 zby_home joined
moritz_ 3) sqlite3 db.sqlite3 < schema.sql 12:22
4) sqlite3 db.sqlite3 < irclog-data.sql
12:23 kaare_ joined
moritz_ 5) panda install DBIish 12:23
6) perl6 balance.pl
masak moritz_: having an object for time spans would re-introduce the ordering issues we avoided with .delta -- but I don't think it'd be so bad, actually. there are two "obvious" orders, and we can just pick the more sensible of those. and most of the "add or subtract time span to/from DateTime" logic can be delegated to .delta
FROGGS moritz_: where is that donor-o-meter?
masak FROGGS: it's not complete yet, IIUC.
FROGGS ahh, k
moritz_ FROGGS: I've just started implementing it, at [email@hidden.address] 12:24
FROGGS: once it works, you'll be able to see it on the irc log page
FROGGS on the today-page too?
otherwise I'd miss it
moritz_ yes
FROGGS k, sounds good
arnsholt starts updating his Perl 6 stuff
moritz_ but it's a long way to go
arnsholt: I've run it with This is perl6 version 2013.02.1-90-g1c99395 built on parrot 4.10.0 revision RELEASE_4_10_0 12:25
masak: the ordering issue can be avoided by just storing a list of (value, unit) pairs, and always processing them in the same order 12:26
arnsholt moritz_: Recent-ish git version, right? 12:29
12:30 sivoais left
moritz_ arnsholt: February 12:30
12:30 sivoais joined, kivutar left
masak moritz_: that's a double-edged sword, though. advantage: more exact in some cases. disadvantage: timespan addition doesn't commute. 12:31
moritz_ masak: advantage: timestamp addition doesn't commute.
it doesn't commute, period. 12:32
if you write code where it commutes, it can't be correct
s/timestamp/durationi/ 12:34
*duration
r: say Date max Date.today
camelia rakudo 88f9c9: OUTPUT«2013-05-05␤»
geekosaur the result is a durr-ation
moritz_ r: say Date min Date.today 12:35
camelia rakudo 88f9c9: OUTPUT«2013-05-05␤»
dmol !karma 12:37
masak moritz_: you may very well be right, but I don't see it. my mental view of duration objects is that they are "detached" from any actual point on the (civil) timeline. so you can talk about durations without having to care about leap years and leap seconds, and only at the end do you apply it back down and start caring again. 12:39
moritz_: under that model I do believe duration addition commutes.
12:40 sivoais left
moritz_ masak: ah, my mental model is a bit different. For me a Duration is like a diff that only makes sense in context of applying it to a certain Date(Time) 12:40
FROGGS btw, I calculate fees for 550 employees (using p5's DateTime::Span and firends), and you really need span objects 12:41
so for example I useally create spans like: 1 day, but this doesnt mean it is actually 24 hours long
12:42 sivoais joined
FROGGS only at the time I do: $spanset->intersection( $span_one_day ) it become a 'real time' 12:42
masak moritz_: oh, but (again according to my model) that loses one of the big advantages of durations: being able to say "as long after DateTime Z as DateTime Y is after DateTime Z". 12:44
moritz_: use case: scheduling software: want to move an appointment to some other datetime. want to calculate the end of that appointment. 12:45
moritz_ masak: good and valid point 12:46
masak FROGGS: I like the word "span" better than "duration", I think.
it feels more neutral, somehow.
FROGGS cool, so I have to grep/replace on word less then *g* 12:47
gtodd FROGGS: you have 550 employees?!
FROGGS gtodd: well, not me personally
the company I am working for
gtodd FROGGS: would be cool if CEO's used IRC :)
FROGGS maybe it is a german idom to say 'my company' and 'my employees' 12:48
err, not 'my employees' actually
gtodd ah yes ok ... my coworkers, fellow employees, etc
moritz_ I found a really nice implementation of calculating how much recurring transactions contribute to a given time span: github.com/moritz/donate-o-meter/b...nce.pl#L55
it boils down to return $amount * elems($start, *.delta($interval, $unit) ...^ *>$end); 12:49
arnsholt is somewhat embarrased to admit that he has never used Panda before now
masak moritz_: nice!
moritz_ arnsholt: you don't actually *need* panda; if you install zavolaj first and then DBIish, you are fine too
masak every day Perl 6 just grows nicer somehow.
arnsholt moritz_: I figure it's a good time as any to install it =) 12:51
12:51 countley joined 12:52 sivoais left 12:53 sivoais joined 12:54 berekuk joined
arnsholt Oh, FFS. Ubuntu has sqlite 2 12:54
moritz_: Any idea if your stuff will work with sqlite2 instead?
moritz_ wtf? sqlite2 is, like, decades dead, isn't it? 12:56
arnsholt: I'm sure ubuntu has sqlite3 (maybe under the name 'sqlite' though) 12:57
the SQL would likely work with sqlite2, but the C api (and thus DBD::SQLite) would not 12:58
cosimo arnsholt: sqlite3 maybe
arnsholt Bah.
Right. That's libsqlite3-dev installed at least 13:00
geekosaur is looking at his mint (ubuntu derivative) system and not seeing sqlite2...
arnsholt It's just called sqlite
sqlite is sqlite2 and sqlite3 is the new one 13:01
It's just that apt-cache search is useless
geekosaur moo? apt-cache search tells me 'sqlite' is a cli, not a library
moritz_ geekosaur: the library is probably in a separate package
arnsholt So I missed the 3-suffixed versions in the midst of the more or less irrelevant stuff
YEah
libsqlite3
geekosaur yes, moritz_, libsqlite3
my point is that what most people think of as sqlite is the library; the cli might well have an independent version number (and work with multiple sqlite lib versions) 13:03
moritz_ by the way, I love sqlite. It has awesome documentation, a simple but powerful C API, comprehensive tests and is generally just awesome
the small number of datatypes can be surprising, but it's well documentation, and it works well in most cases 13:04
13:04 sivoais left, sivoais joined
gtodd liking sqlite can lead to liking fossil :) 13:06
FROGGS has rakudo a 'per package' symbol table?
arnsholt moritz_: perl6 balance.pl prints 15 locally 13:07
Does the sqlite driver use callbacks, by any chance? 13:08
moritz_ arnsholt: revert to the first commit of that repo please 13:10
arnsholt: the second commit avoids the segfault by don't talking tot he database at all :-) 13:11
arnsholt Oh, right =)
There we go. Boom. 13:12
Looks like it's segfaulting while packaging up a string of return
13:15 sivoais left, sivoais joined 13:16 MrMeek joined, MrMeek-afk left
arnsholt moritz_: Oh. It's trying to make a string result from a null pointer 13:21
FROGGS why would it want to do that? :P 13:22
arnsholt That's a very good question =)
I think it's a braino 13:23
13:26 sivoais left, sivoais joined
FROGGS okay, to answer my question, is is just: ($package.WHO){$name} 13:28
arnsholt moritz_: Building NQP with probable fix now 13:33
moritz_ \o/ 13:34
arnsholt Building Rakudo now 13:36
13:36 sivoais left
FROGGS .tell jnthn beware: I want to talk about the 'underlying problem' with you *g* 13:37
yoleaux FROGGS: I'll pass your message to jnthn.
FROGGS awesome
13:37 sivoais joined
FROGGS see ya later guys 13:38
13:41 FROGGS[mobile] joined 13:44 rindolf joined 13:45 rindolf left
dalek p: cdbd822 | (Arne Skjærholt)++ | src/vm/parrot/ops/nqp_dyncall.ops:
Correctly handle NULL pointers in make_str_result.
13:45
volaj: 37f1592 | (Arne Skjærholt)++ | t/03-simple-returns. (2 files):
Add test for Str function returning NULL.
arnsholt moritz_: That should fix it I think 13:48
13:48 sivoais left 13:49 sivoais joined
arnsholt Yep. Checked your code now. It works 13:55
Thanks for finding the bug =)
13:59 sivoais left 14:00 sivoais joined 14:07 countley left 14:10 sivoais left 14:11 sivoais joined 14:21 sivoais left 14:22 sivoais joined 14:32 sivoais left 14:33 sivoais joined 14:36 sivoais left 14:39 spider-mario left, sciurius joined 14:42 sivoais joined 14:47 CharellKing joined 14:49 CharellKing left 14:52 sivoais left 14:53 sivoais joined 15:03 sivoais left 15:04 sivoais joined 15:14 sivoais left 15:15 sivoais joined
masak answer to my own question previously, about how to tell Rakudo that Parrot needs to be rebuilt: clean -xdf everything. Configure.pl --gen-parrot. patch Parrot and make install it. make install Rakudo. 15:25
15:25 sivoais left
masak nqp doesn't seem to need to be rebuilt. 15:25
15:27 sivoais joined 15:30 saxx joined
colomon is finally actually trying to set up a smoke tester for the ecosystem. 15:34
15:35 spider-mario joined
FROGGS[mobile] colomon++ 15:36
timotimo cool :)
that will probably make rakudo star releases smoother
colomon mind you, I still need to figure out the details of how to do it!
I've created a separate account on my linux box for it. 15:37
FROGGS[mobile] masak: would be cool if dont need to rebootstrap modules after recompiling rakudo
15:37 sivoais left
colomon I'm running a smoke test by hand at the moment there using emmentaler. 15:37
Now the question is how to automate it all.
15:38 sivoais joined
FROGGS[mobile] fetch module list, smoke em in lastchange order 15:39
tadzik and difftool
and irc bot
that
* that'd be Future
colomon difftool and irc bot? 15:40
FROGGS[mobile]: I'm looking for something simpler: the best way to automate running a sequence of command lines. cd rakudo; git pull; perl Configure.pl --gen-parrot; etc
arnsholt colomon: I've thought a bit about that particular problem. On mobile IRC right now, but I'll try to remember to dump my thoughts later
FROGGS[mobile] colomon: bat and sh files? p5 script 15:42
?
colomon was just going to check if CPAN has a solution. 15:43
15:44 sciurius left
masak my all-day bisect is coming along fine. I've now reduced the suspects to this short-ish list: gist.github.com/masak/5520459 15:47
may the betting on the culprit begin.
(my bet is on the merge commit)
15:47 sivoais left
masak or, more exactly, something from that branch. 15:48
timotimo 22b3cf3 run S02-magicals/vm.t, timotimo++ - this one most probably didn't introduce the trouble! 15:50
colomon FROGGS[mobile]: doing a simple sh script would be easy. but having one that detects when something goes wrong and notifies me is a bit trickier. Or maybe I'm just not thinking of something obvious!
geekosaur set -e ? 15:51
15:51 xinming joined
FROGGS[mobile] a cronjob will give you stderr via email 15:57
16:00 spider-mario left
colomon FROGGS[mobile]: Good point. I never really had that working properly on my old Linux box -- I really need it mailed to my gmail address, not some mail limited to one box that I never actually read. 16:01
And on the other hand, I don't want the e-mail if everything is working.
geekosaur colomon, redirect stdout (not stderr) to /dev/null. and add a mail alias redirecting your local account to your gmail account 16:02
set -e; exec >/dev/null
some crons also support a MAILTO=address in the crontab entry 16:03
colomon MAILTO I understand (though I'm not sure it's the right granularity) . 16:04
set -e is a mystery to me. 16:05
geekosaur tells the shell to abort if any command not used as a conditional (i.e. "if command ..." or "command || somethingelse") exits nonzero
16:05 sivoais joined
colomon ah! 16:06
okay, yes that's definitely a good tip!
geekosaur a related handy tip, if you *do* want to run some command and allow it to fail safely under "set -e", append " || :" to it. (the "||" makes it conditional, and ":" is the null command. you could substitute "true" for ":" if you wanted, but some shells will actually run an external /bin/true in that case; ":" is a shell builtin) 16:09
colomon geekosaur++ 16:14
colomon is currently trying to set up e-mail for the box.
16:16 sivoais left 16:17 sivoais joined
colomon sweet! mail seems to be working 16:20
16:22 genehack left, genehack joined 16:26 saxx left 16:27 sivoais left, sivoais joined
moritz_ masak: what is slow, exactly? 16:35
16:35 sciurius joined 16:38 sivoais left 16:39 skids left, sivoais joined
moritz_ ar 16:43
arnsholt: I'm now testing your nqp fix
that is, running panda and all that stuff again :_) 16:45
... and hoping that my laptop doesn't overheat 16:48
I've hibernated a few times during rakudo compilation to avoid that
erm, hibernated the laptop, not myself :-)
16:49 sivoais left
lizmat hopes that the fan keeps running during hibernation 16:49
yoleaux 4 May 2013 23:03Z <jnthn> lizmat: you want to subclass ClassHOW, I expect. You then write a role with the new functionality you want in, and then arrange for it to be mixed in to every class automatically (easiest is probably method compose($obj) { self.add_role($obj, YourRolewithNewIn); nextsame; }
moritz_ lizmat: it doesn't :( 16:50
16:50 skids joined
lizmat then ^Sing maybe better than hibernating to prevent overheating 16:50
16:50 xinming left, sivoais joined
geekosaur you mean ^Z? 16:51
moritz_ lizmat: good point, I should try that
lizmat geekosaur: doubting now...
pmichaud 15:25 <masak> nqp doesn't seem to need to be rebuilt. 16:52
lizmat I use ^Z mostly when I'm editing
pmichaud seems more like the case that nqp is automatically rebuilt.
moritz_ Ctrl+S should SIGSTOP the process, no?
or does it just lock the terminal?
geekosaur that's ctrl-z
ctrl-s pauses terminal output, which will eventually cause the program to block
moritz_ ah, but not during setting compilation
lizmat ack, geekosaur is right, you want ^Z
moritz_ fairy 'nuff 16:53
lizmat i am crazy
moritz_ lizmat: tell news :-)
lizmat note to self: never leave your keyboard unattended when woolfy is around 16:54
woolfy :-)
moritz_ :-)
masak pmichaud: are we both talking about Rakudo's nqp, not Parrot's?
16:54 sivoais left
pmichaud masak: yes. 16:54
moritz_ arnsholt: your fixed works, thank you very much 16:55
arnsholt++
masak in that case, at what part (of the steps I posted) is it rebuilt? I'm not doing a re-Configure.
pmichaud it's possible that nqp doesn't need rebuilding... but that'd surprise me a bit.
16:55 sivoais joined
pmichaud btw, my bet is on 256339c 16:55
masak oh, indeed.
that one is immediately suspect.
moritz_ what exactly is slow? 16:56
masak moritz_: running psyde on my posts.
lizmat a factor of 10 slower
masak moritz_: it takes either 4 minutes, or between 40 and 60.
pmichaud masak: in fact, a quick check would be to pick the 2013.01 rakudo release and build it against the 5.0 parrot.
moritz_ that's not exactly minimal, I guess :-)
pmichaud well, "quick" being relative here, of course. :) 16:57
16:57 berekuk left
masak moritz_: it's not. but it puts the difference in stark contrast. and today, I happen to have the time for this. 16:57
moritz_: consider it an experiment being repeated $NUMBER_OF_POSTS times with each run ;) 16:58
to avoid sampling bias, etc.
350 posts. I seem to have blogged 350 times. 16:59
moritz_ finds that he prefers fatarrow over colonpair when vertically aligning the values
lizmat TIMTOWTPI
masak ;)
moritz_ lizmat++ 17:00
masak .oO( just give me a 351st chance, I think I got it this time... )
pmichaud actually, my "quick check" doesn't appear to be able to actually check whatever changed.
moritz_ and thanks to arnsholt++, I can now account recurring transactions with data from the sqlite database
masak I'll take the scenic route. 17:02
I think it'll become pretty evident at what point I'll have something RT-able.
pmichaud fwiw, I think you can safely skip testing 483ce86 :-)
masak hehe 17:03
pmichaud and
78d2a2a
moritz_ as well as f67e101, c89dd87 and a763a18
masak .oO( HOW CAN YOU BE ABSOLUTELY SURE??? )
pmichaud because I looked at the commits?
masak EDEUSEXBISECT 17:04
pmichaud so, you could "git bisect skip" those and speed up the bisect just a bit 17:06
masak oki
felher masak: I found some time today to start with your workshop. If you want to take a look or place a link, here's the solutions to roman and promise.
masak: gist.github.com/a8ff211b6f47c9e84024.git
masak felher: looking.
felher: happy to continue any further conversation over at #masakism ;)
17:08 census joined
pmichaud masak: if the NQP_VERSION bump is the problem commit, then it's going to be something that happened in NQP between commits 883fd06 and f8a37df 17:11
masak yes. :) and a new bisect.
pmichaud that includes the commits where EXPR was converted from PIR to NQP, fwiw.
masak oh!
pmichaud there aren't that many commits between the two -- just eight commits. 17:12
masak sounds like a very likely slowdown... :/
moritz_ masak: do you eval a lot in psyde?
masak checking.
moritz_ because EXPR is compile time only, afaict
masak moritz_: no, no eval in psyde.
moritz_ masak: or very large amounts of code? 17:13
pmichaud gist.github.com/pmichaud/5521439 # commits between 883fd06 and f8a37df
large amounts of code shouldn't affect runtime speed, though.
unless the code itself is taking forever to start.
moritz_ no, just compile time
masak moritz_: it's 256 lines of code.
pmichaud masak: oh! Can I see the code? 17:14
masak sure.
pmichaud that might help me narrow it down really quick.
(256 isn't much at all :)
masak pmichaud: github.com/masak/psyde/blob/master/psyde
I'm planning to do some refactors to psyde. reduce it down to ~16 lines of code :P
moritz_ uses lots of stuff that could potentially be slow 17:15
regexes, trans, IO, list-y stuff 17:16
pmichaud well, there aren't many commits left in the bisect that would seem to be able to affect it
masak no matter what's affecting what, something slowed down my blog generator 10x.
pmichaud gist.github.com/pmichaud/5521450 # masak's list reordered by commit date 17:17
masak I want to find that something, first the commit, and then the cause :)
moritz_ masak: does the machine swap when it's that slow?
and then EXTERMINATE it!
masak moritz_: no, I can't imagine that.
plenty of memory here.
pmichaud indeed, looking at the remaining commits, it seems it will have to be either 256339c or c255f1d
masak moritz_: it's definitely CPU-bound.
moritz_ well, you'd feel it if you're using the computer for other purposes too :-)
lizmat hmmm… that would explain the spread of 40 .. 60 minutes
masak moritz_: which I am. 17:18
pmichaud masak: does your code have any regex interpolations?
masak pmichaud: I gave you the code! :P
but no, I don't think so...
pmichaud masak: I'm still parsing it.
masak: I figure you know the answer already :)
masak it uses .trans
pmichaud well, I've always hated the .trans code :)
masak then write a better one :)
pmichaud I started to, but I have to understand .trans first. 17:19
masak I know you've had bad experiences with that code bringing out failures and stuff...
moritz_ pmichaud: the spec, or the old code?
masak ...but the thing that's there today is a great improvement on what we had before. at least in some respects.
pmichaud moritz_: either.
masak pmichaud: and I know it's not the end state of that code. 17:20
pmichaud in some ways it's like the sequence operator stuff.... I had to carefully parse the spec in my head before I could finally come up with clean code.
moritz_ does interpolating array variables into regexes work properly?
masak pmichaud: TimToady keeps mumbling about how .trans should really induce a grammar and piggyback LTM somehow.
pmichaud masak: I can believe that.
moritz_ if yes, it's easy to... exactly
masak but for that, we'd need a kind of API to build a grammar. a bit like a MOP for grammars. I don't know to what extent we have that already.
moritz_ parts of the awefulness of the current code is that it has to re-invent LTM (with limited scope) 17:21
masak I suppose to quite a large extent.
pmichaud oh, we could definitely improve on that.
array interpolation does have LTM built in now.
masak it would be a very happy thing to do.
lizmat so we're sure it's .trans now?
pmichaud no
moritz_ we're just speculating while masak++'s machine does the work :-) 17:22
masak ...but I wouldn't be surprised...
well, not .trans per se.
pmichaud There are basically two commits left... one of them changes regex interpolation (which .trans might be doing)
masak but something slowing down .trans doing whatever the heck it does.
right.
pmichaud the other one incorporates a number of NQP revisions
17:22 mtk left
pmichaud either one are still candidates for the problem 17:22
masak "incorporates a number of NQP revisions"...? so, it's a merge? :P 17:23
pmichaud no, it's not a merge
moritz_ masak: NQP revision bump
masak oh! the Rakudo commit.
pmichaud it's an NQP revision bump.
masak sorry :)
masak is slow today, but not as slow as psyde on the bad commits
pmichaud masak: eta til we know the result of the 255f1d commit, ooc? 17:24
er, c255f1d
masak RSN 17:25
pmichaud okay. 17:26
17:26 mtk joined
masak no more than 40 minutes :) 17:26
pmichaud I'm not sure which commit I'm wanting it to be.... :-/
17:28 Ayiko left 17:29 Ayiko joined
pmichaud oh, wait! 17:29
masak hm, I seem to have provided the wrong set of commits we're reduced down to already. here's the real one: gist.github.com/masak/5520459
pmichaud right
just looked at that also
masak :)
the rule is that the currently tested commit should always be in the middle of the list :P 17:30
pmichaud so now there are *more* nqp revisions that could be implicated.
pmichaud looks 17:31
moritz_ is guilty of premature OO in his newest project, and already regrets it 17:35
pmichaud gist.github.com/pmichaud/5521515 # list of NQP commits involved in masak's commit range 17:37
*bisect range 17:38
masak ok, now I can mark c255f1d as bad.
the next suggested one is 78d2a2af.
skipping that one. 17:39
pmichaud +1
masak also skipping f67e101e.
pmichaud +1
masak building and testing c89dd87c. 17:40
pmichaud isn't that just a bump to VERSION?
masak yes.
moritz_ skip it
masak and hence significant.
moritz_ no
masak oh wait.
moritz_ the only thing it changes is the version of itself that rakudo reports 17:41
masak indeed not.
moritz_ when you do perl6 --version
pmichaud I'd be very surprised if that affects anything. :)
masak ok, skipping.
pmichaud I think we're down to 256339c being the culprit.
masak also skipping 42f8ead6.
pmichaud worth a test, definitely 17:42
masak yes. building and testing that one now.
17:42 berekuk joined 17:44 spider-mario joined
pmichaud it's looking as though it has to be the EXPR code somehow. :-( 17:49
17:51 berekuk left 17:53 ggoebel joined 17:54 thou joined
pmichaud oh, and Rakudo's Cursor type calls eval() 17:54
(for regex interpolation)
okay, I'm off to work on other things.. I eagerly await to hear the bisect results. :) 17:56
masak me too :) 17:58
hm, 256339c appears to be good. 17:59
moritz_ have to say, error reporting is really nice in comptemporary rakudo 18:04
s/^/I/
18:04 kurahaupo joined
pmichaud ...256339c is *good*? 18:04
masak yep. 18:08
surprising, I know.
colomon suspects the changelog.
;)
pmichaud were you being certain to reset the nqp build on each bisect? 18:09
timotimo it's crazy how long these runs take
over an hour vs 5 minutes, holy cow.
pmichaud (and the parrot build?)
masak pmichaud: I clean -xdf everything on each bisect step. taking no chances here.
pmichaud did you clean -xdf in the parrot/ and nqp/ directories, also?
masak pmichaud: specifically, I did so before that step.
pmichaud: clean -xdf *removes* those directories. 18:10
pmichaud on my system it doesn't.
masak Removing nqp/
Removing parrot/
timotimo regexes in arrays in regexes o_O
pmichaud it says "Removing nqp/" and "Removing parrot/", but doesn't actually remove them.
watchs
masak dammit.
(clean -xdf)-- 18:11
masak wonders how far back to rewind the bisect
pmichaud you may have to start over-ish.
masak yeah.
timotimo oh wow
masak ok, I'll assume the endpoints are accurate.
pmichaud because any later nqp/parrot would've been considered "good enough" for the builds
masak aye.
restarting bisect. 18:12
pmichaud gist.github.com/pmichaud/5521625 # git clean -xdf doesn't actually clean parrot/ and nqp/
masak TIL 18:13
jnthn evening, #perl6 18:15
yoleaux 13:37Z <FROGGS> jnthn: beware: I want to talk about the 'underlying problem' with you *g*
masak jnthn! \o/
jnthn the...what? :P 18:16
pmichaud afk, lunch
masak jnthn: want to talk about THE UNDERLYING PROBLEM with YOU. :P 18:17
jnthn: AM I MAKING MYSELF CLEAR :P
lizmat masak: wrt the bisect: maybe you can reduce the run by not doing all documents, so that a bad run will only take 5 mins, and a good one 30 seconds? 18:18
timotimo should make sure that that really happens; could be the bad run will only get a growth that bad if the number of articles is huge 18:19
masak *sigh* -- all you hectic modern people. here I am, trying to enjoy a slow Sunday bisect... :P
18:19 ggoebel left
lizmat if you are enjoying it, by all means! 18:20
masak timotimo: I doubt that, though. I can generally tell just by looking at the speed of the output. (it prints a line of progress output per post).
timotimo ok 18:21
masak and the 10x slowdown shines through a bit.
timotimo sounds good then
pmichaud I think I want to add a tools/build/bisect script to make git bisecting a bit more robust in the future
masak ooh.
pmichaud (i.e., to avoid the dependency issues masak++ just came up with)
and to avoid re-cloning the nqp/ parrot/ directories at each bisect step 18:22
colomon pmichaud++
masak sounds good. 18:23
pmichaud but lunch comes first :-/
anyone else is welcome to contribute a script before me :)
colomon is still working on automatic ecosystem smoke testing. 18:24
pmichaud could also be a --bisect option to Configure.pl, although that doesn't help in the current bisection 18:25
18:26 ggoebel joined
jnthn is very curious what the slowness will turn out to be. 18:28
lizmat rn: my enum Day <Mon Tue Wed Thu Fri Sat Sun>; say 3 ~~ Day 18:30
camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«False␤»
moritz_ rn: my enum Day <Mon Tue Wed Thu Fri Sat Sun>; say Day(3).defined 18:31
camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«True␤»
moritz_ rn: my enum Day <Mon Tue Wed Thu Fri Sat Sun>; say Day(42).defined
lizmat S12:1887 states: " 3 ~~ Day # True, using Day as a subset of Int"
camelia niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: No match␤ at /home/p6eval/niecza/lib/CORE.setting line 1504 (die @ 5) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2103 (EnumMap._lookup @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1308 (CommonEnum.postcircumfix:<( )> @ 5)…
..rakudo 88f9c9: OUTPUT«False␤»
masak rn: my enum Day <Mon Tue Wed Thu Fri Sat Sun>; say Day ~~ Int
camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«True␤»
moritz_ can it be both a subtype and a subset? 18:32
that sounds wrong to me
masak enums are not subtypes, if by "subtype" you mean the thing with the keyword "subset" in Perl 6.
moritz_ no, I meant "class that inherits from" 18:33
masak it's also not a question of inheritance, since infix:<~~> does lots of other things.
well, not *necessarily* a question of inheritance.
jnthn I suspect if you want to implement those semantics you can get them by hacking on EnumHOW a bit
lizmat is just trying things from the Synopses
jnthn But what that working really means is "if you match one of the enum value's underlying values it's good enough" 18:34
masak yes, that was what I was after.
it doesn't say how it's implemented. 18:35
lizmat fwiw, 3 ~~ Thu works
(as in: returns True)
jnthn Well, it's kinda significant how you implement it in so far as whether you expect to be able to pass 3 to a sub foo(Day $x) { } 18:36
masak oh, sure.
moritz_ and if the callee can still expect all the goodness of a Day object 18:37
jnthn But I suspect "subtype" is being used a bit handwavily in the spec there.
masak jnthn: does that mean hacking ACCEPT won't be enough?
er, ACCEPTS
jnthn masak: Well, ACCEPTS for a :U invocant typically delegates to the meta-object.
lizmat jnthn: indeed
rn: my enum Day <Mon Tue Wed Thu Fri Sat Sun>; sub foo ( Day $d ) { say "foo" }; foo(3)
camelia niecza v24-37-gf9c8fc2: OUTPUT«Potential difficulties:␤ $d is declared but not used at /tmp/ruUVS3HBNM line 1:␤------> Tue Wed Thu Fri Sat Sun>; sub foo ( Day ⏏$d ) { say "foo" }; foo(3)␤␤Unhandled exception: Nominal type check failed in binding '$d' in 'foo'; got In…
..rakudo 88f9c9: OUTPUT«Nominal type check failed for parameter '$d'; expected Day but got Int instead␤ in sub foo at /tmp/DQ6GB9NyWw:1␤ in block at /tmp/DQ6GB9NyWw:1␤␤»
jnthn We can special-case ACCEPTS on :U for enum types I guess. 18:38
masak \o/
jnthn But it'll drag it out of kilter with the usual expectation that ~~ SomeType gives the same answer that a type check would on binding.
So we may want to tread carefully :)
lizmat but this warrants a rakudobug, right ? 18:39
masak absolutely.
a NYI one, I guess.
lizmat submits rakudobug
masak lizmat++
jnthn In so far as "we don't match the spec", yes. But I don't yet feel I've enough information to knwo what the right way to fix it is :)
('cus of the two ways I can think of, both have a slightly unattractive consequence) 18:41
masak yeah. from a spec perspective, it doesn't feel completely "orthogonal" either.
lizmat fwiw, I think the use of enums is so that you do *not* have to use any numbers 18:42
masak I mean, I can see why one would want this sometimes, but it also somehow feels like a big "bend" in the spec for relatively little gain.
lizmat so, to me, as a lay person, it is perfectly understandable that this doesn't work
masak lizmat: yeah.
lizmat: obviously the quick-and-easy solution here would be to unspec that one. :)
lizmat so, this could be considered a spec issue rather than a NYI bug
indeed 18:43
masak lizmat: but I would suggest investigating just how impossible it is first.
lizmat #117875 has it all
masak also, an unspec would need to go through TimToady, who will likely have an interesting take on it.
jnthn Yeah, it's a lang design call. 18:45
pmichaud I'd suggest verifying the lang design first before dealing with implementation stuff. 18:51
We had a similar situation where $value ~~ Grammar was supposed to smart match something against a Grammar, until we pointed out that you couldn't easily type-match. 18:52
This sounds.... similar
masak dealing with implementation stuff sometimes is how we verify the lang design, though.
I agree, though. we should discuss whether this is vital before spending time trying to implement it.
I for one wouldn't lament the unspec'ing of that feature. for the reasons lizmat gave. 18:53
lizmat this I think is a typo in the spec (S12:1910)
rn: my enum Day <Mon Tue Wed Thu Fri Sat Sun>; say Day.enums.invert{3}
camelia rakudo 88f9c9: OUTPUT«postcircumfix:<{ }> not defined for type List␤ in method gist at src/gen/CORE.setting:10022␤ in method gist at src/gen/CORE.setting:893␤ in sub say at src/gen/CORE.setting:10917␤ in block at /tmp/aIctujKlzU:1␤␤»
..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Cannot use hash access on an object of type List␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting line 352 (Any.at_key @ 9) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /tmp/teIKosjtpS line 1 (mainli…
pmichaud also, having 3 ~~ Day feels wrongish to me, since 3 is an Int and Int !~~ Day
lizmat rn: my enum Day <Mon Tue Wed Thu Fri Sat Sun>; say Day.enums.invert[3]
masak 3 is an Int, and Day is Int, but I don't have to have 3 being a Day.
camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«3 => "Thu"␤»
masak especially as (and this is perhaps a convincing point), declaring the enum effectively inserts Day *between* 3 and Int, which... feels weird, conceptually. 18:54
heh, there's probably some category-theoretical theorem somewhere saying "don't do that, it'll lead to tears" :) 18:55
pmichaud let's assume there is one and fix the spec. :) :) :)
masak not quite a +1, but no objections either ;) 18:56
and I'm still curious to hear what TimToady has to say. 18:57
(which might well be "screw category theory, we want this for reasons A, B and especially C")
lizmat so: "Day.enums.invert{3}" doesn't work, but is in the spec, "Day.enums.invert[3]" works as expected 18:58
masak r: my %h; say %h.invert.^name
camelia rakudo 88f9c9: OUTPUT«List␤» 18:59
masak lizmat: .invert{3} looks weird.
it's a List...
lizmat that was my feeling as well
indeed
pmichaud rn: my enum Day <Mon Tue Wed Thu Fri Sat Sun>; say Day.enums.invert.hash{3}
camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«Thu␤»
lizmat but the fact that it's a list may be the issue?
pmichaud .invert is returning a list of Pairs
lizmat no, that's according to spec 19:00
indeed
lizmat will fix spec with s/{3}/[3]/ ?
pmichaud there's been some mumbling that a list of Pairs should be able to act like a hash.
masak lizmat: +1
jnthn does some mumbling about that idea :)
pmichaud i.e., that it would be able to understand .{ } 19:01
masak pmichaud: I hope that remains a mumbling.
jnthn .{ } on an array is reserved for custom indexing schems, no?
masak yeah.
pmichaud wouldn't .invert be a form of "custom indexing scheme", though?
masak pmichaud: it's a list because there can be duplicate keys.
jnthn If it is, it produces a bit more than a nrmal List... :)
pmichaud masak: yes, I know, but .{ } on such a List could "handle" duplicate keys somehow 19:02
masak /o\
pmichaud I'm merely point out that .{ } on List is a defined behavior.
*pointing
masak yes, I agree.
pmichaud (in S09)
masak I'm just uncomfortable even going down that road :) 19:03
pmichaud and thus enum.invert could produce the results listed in the spec.
masak s/even going/even imagining going/
pmichaud I'd be wary of putting .[3] into the spec.
Yes, it works in the example just given, but that's something of an artifact of how the enum is constructed and/or .pairs is being produced. 19:04
19:05 PacoAir left
lizmat maybe I should make an issue out of this? 19:05
19:05 PacoAir joined 19:06 kurahaupo left
pmichaud rn: my enum Day ( :Mon(1), 'Tue', 'Wed', 'Thu' ); say Day.enums.invert.[3] 19:06
camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«4 => "Thu"␤»
pmichaud rn: my enum Day ( :Mon(1), 'Tue', 'Wed', 'Thu' ); say Day.enums.invert.[3]; say Thu;
camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«4 => "Thu"␤Thu␤»
pmichaud rn: my enum Day ( :Mon(1), 'Tue', 'Wed', 'Thu' ); say Day.enums.invert.[3]; say +Thu; 19:07
camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«4 => "Thu"␤4␤»
pmichaud note that .[3] doesn't give the enum with value 3 (which would be Wed)
lizmat that's because the enums start at 1 19:09
the list starts at 0
the list that "invert" returns 19:10
moritz_ but enums can start at any value, and indeed they don't need to be continuous at all 19:11
lizmat so you're saying the error in the spec is the missing .hash ?
moritz_ hasn't followed the discussion closely enough to tell 19:12
19:13 moritz_ is now known as moritz
masak lizmat: yeah. 19:13
lizmat: though .hash isn't what we recommend either after an .invert
lizmat: (because that gives last-entry-wins behavior) 19:14
lizmat: we recommend pushing the result onto another hash.
lizmat but in the case of an enum, you never have that problem
masak troo
...unless you do
lizmat so is there a reason why .invert on a hash doesn't return a Bag? 19:15
masak rn: my enum Ex ( :Foo(1), 'Bar', :Baz(1) ); say Ex.enums
camelia niecza v24-37-gf9c8fc2: OUTPUT«EnumMap.new(...)␤»
..rakudo 88f9c9: OUTPUT«("Foo" => 1, "Bar" => 2, "Baz" => 1).hash␤»
moritz yes, bags count, but you're not (always) interested in the count
lizmat true
masak and you really want inverted Pairs, and a Bag doesn't give you that. 19:16
lizmat: as you see, duplicate enum values are OK, at least according to the implementations.
lizmat: which means .invert can have duplicate keys.
lizmat indeed
feels more and more like an issue that requires TimToady's attention, no? 19:17
moritz aye 19:19
masak lizmat++ # teasing out issues that require TimToady's attention 19:20
lizmat brb 19:21
moritz notices that the hpmor podcast has nearly caught up to the written hpmor 19:23
masak pmichaud: I tried to reproduce the weird 'git clean -xdf' behavior in a new git repository, but there it works as I expect it to: gist.github.com/masak/5521876 19:24
pmichaud: oh! but I bet I know what it is. both nqp and parrot subdirectories have a .git directory in them -- perhaps git-clean special-treats them. 19:25
19:25 domidumont left
masak investigating. 19:25
moritz yes, it does 19:28
git clean does not descend into other git repos by default
masak it does? it just removed mine when I tested here.
moritz: also, I didn't see anything about it in the manpage. maybe I missed it.
moritz: do you agree that it's still surprising/unintuitive that it outputs "Removing parrot/" ? 19:29
(and then does nothing)
moritz yes
lue hello world o/ 19:33
masak moritz: ok, I reproduced it. 'git clean -dfx' stops removing the nested git repo as soon as there's a commit in that repo. 19:35
moritz: it actually removes it if it's a repo without an initial commit.
moritz woah. 19:37
masak: so you bisected, and didn't always have the recommended nqp/parrot revisions? 19:38
colomon has done that before. :(
masak moritz: reporting on #git now. 19:39
colomon: yeah. but no problem, I can just do it again.
colomon masak: sure, but you wasted hours, no? 19:40
masak nah :)
I did other stuff in the meantime. :)
colomon just started a test smoke run of his new smoking script
masak learning the hard way. it's often very effective, even if it isn't efficient...
19:43 zby_home left 19:53 kivutar joined
colomon masak: maybe I'm getting old, but I find that if my "learning the hard way" is on something I don't do that often (like a major bisect) I'm apt to forget it by the next time I do it. :( 19:55
masak colomon: forgetting things is part of the semantics of "hard" :P 19:57
moritz sounds... hard! 20:01
FROGGS g'evening 20:02
lizmat evening FROGGS! 20:04
FROGGS hi lizmat
masak FROGGS! \o/
lizmat to come back to earlier
rn: my enum Day <Sun Mon Tue Wed Thu Fri Sat>; sub foo ( Int $d ) { say $d.WHAT }; foo(Wed)
FROGGS masak: o/
camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«(Day)␤»
lizmat foo accepts Int, is that the way to do this? To still get the types in the sub? 20:05
FROGGS jnthn: would be cool if we could talk about what is wrong with things like:
r: our @a = 4, 5
camelia rakudo 88f9c9: OUTPUT«No such method 'STORE' for invocant of type 'Any'␤ in block at /tmp/1jwgBF2IVu:1␤␤»
colomon lizmat: absolutely, if B is an A, foo(A $a) should accept B as an argument, and it's still a B even inside foo. 20:06
lizmat FROGGS: its another way of saying: $ perl -wE 'our @a=4,5; say @a'
Useless use of a constant (5) in void context at -e line 1.
FROGGS lizmat: I know what it is, the problem is that this does not work in rakudo 20:07
colomon rn: my @a = 4, 5; 20:08
camelia niecza v24-37-gf9c8fc2: OUTPUT«Potential difficulties:␤ @a is declared but not used at /tmp/8ZFlI4Y5C4 line 1:␤------> my ⏏@a = 4, 5;␤␤»
..rakudo 88f9c9: ( no output )
colomon rn: my @a = 4, 5; say @a
camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«4 5␤»
FROGGS I know now a bit more about how the symbol table in perl 5 works, but I dont see why it actually does not work in rakudo
colomon rn: our @a = 4, 5; say @a
camelia rakudo 88f9c9: OUTPUT«No such method 'STORE' for invocant of type 'Any'␤ in block at /tmp/D28gbkOjbM:1␤␤»
..niecza v24-37-gf9c8fc2: OUTPUT«4 5␤»
20:09 berekuk joined
lizmat why would there be a difference between "my" and "our" in this case? 20:09
colomon looks like a rakudobug to me. 20:11
FROGGS well, the difference is where @a is stored, exactly the same like in perl5
colomon rn: our @a; say @a;
camelia rakudo 88f9c9: OUTPUT«(Any)␤»
..niecza v24-37-gf9c8fc2: OUTPUT«␤»
FROGGS colomon: it is
and jnthn said that there is some 'underlying problem'
20:14 berekuk left
jnthn FROGGS: I think the fix may be to install the appropraite kind of container inside the WHO at compile time 20:24
FROGGS: e.g. have something like install_lexical_contaienr that instead installs it in the package 20:25
Then the lexical is just bound each frame entry to that
Not sure if that'll fix it, but I'm hopeful.
FROGGS jnthn: sounds good 20:26
and doesnt really sound like a problem
jnthn Well, the problem is that we dont do anything like that today ;) 20:27
FROGGS but we do that for 'my'-vars (not in the package though) 20:28
timotimo are we talking about installing things in symbol tables? in my test case for the ADT module, something seems to be going wrong with the EXPORT sub, such that i would get an error like Type check failed in assignment to '$a'; expected 'Maybe' but got 'Maybe' (Maybe and Maybe|7052662458959412579 respectively) 20:37
FROGGS timotimo: we are talking about our-vars only 20:39
timotimo ok
20:48 FROGGS[mobile] left
FROGGS timotimo: how do you create the Tree class? is that done once, over maybe several times (always when hitting "Tree") ? 20:49
timotimo it's created once, as far as i know. then it's passed through a hash into and then as a hash out of my EXPORT sub
lizmat was there a time in the spec of Perl 6, where Any === Mu ? 20:50
colomon lizmat: there was a time when there was no Mu... 20:51
20:51 kivutar left
colomon probably the most straightforward answer to what I think you mean is "yes". 20:51
lizmat indeed.. so I think S12:2387, wherever it says "Cool and Any", it should become "Cool, Any and Mu" 20:52
timotimo i don't think you can get more straight forward than a plain "yes" or "no".
colomon timotimo: but I might be mistaking what she means, which is why the qualifiers. ;) 20:53
lizmat e.g. on the ^parents method: " :excl exclude Cool and Any (the default)"
that should be: " :excl exclude Cool, Any and Mu (the default)"
rn: say Str.^parents :all
camelia rakudo 88f9c9: OUTPUT«(Cool) (Any) (Mu)␤»
..niecza v24-37-gf9c8fc2: OUTPUT«Unhandled exception: Unable to resolve method parents in type ClassHOW␤ at /tmp/by2CUfeDlK line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4299 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4300 (module-CORE @ 583) ␤ at…
colomon lizmat: I'm not sure that's a fair assumption -- Mu and Cool came about at the same time, as I recall. 20:54
20:54 bruges_ joined
colomon or did they? 20:54
20:54 skids left
jnthn lizmat: I suspect Mu is implied transitively. 20:54
lizmat then why is it listed specifically with :all ? 20:55
colomon was here when Mu and Cool were invented, but doesn't necessarily remember all the details.
jnthn lizmat: Dunno. :all includes all the things, not adding that means "stop searching when you hit Cool or Any" 20:56
20:56 bruges left
lizmat lines were added in 2010 by TimToady 20:56
jnthn Feel free to make them match, anyway. We certainly exclude the stuff in Mu. 20:57
lizmat 2010-09-24 09:38:47 -0700, did we have Mu then already?
FROGGS r: class A { has @.a = 7 }; my $a = A.new
camelia rakudo 88f9c9: ( no output )
FROGGS r: class A { has @.a = 7 }; my $a = A.new; say $a.a
camelia rakudo 88f9c9: OUTPUT«7␤»
jnthn I'm fairly sure that :all came some time after Mu did.
lizmat I will make them match
20:59 skids joined 21:08 kaare_ left
lizmat scratch that: S12:2511 states "Note that when we say "C<Cool> and C<Any>" above, we really mean those types as well as any types outside of them, such as C<Mu> or C<Junction>. 21:08
feels a bit like monkeypatching to me, but there you go ;-) 21:09
jnthn wasn't keen on meta-methods lying by default... :) 21:12
OK, it's past midnight here, so sleep... &
lizmat S12:2501 has a rationalisation for that 21:13
goodnight jnthn!
masak lizmat: I've never been keen on making C<Any> and C<Cool> "special". feels like it clutters the type system. 21:14
feels like a design smell.
FROGGS gnight jnthn
masak lol, I blogg'd. strangelyconsistent.org/blog/after-...m-workshop 21:24
FROGGS lol, I read 21:25
tadzik lol, do want 21:27
21:28 berekuk joined
tadzik yeah, that was awesome :) 21:29
lizmat masak++ again!
and on that thought, I'm calling it a day: "a day" 21:30
masak \o/
FROGGS maybe I have time at the next event too, on may 1st I could just lurk a bit the last 30mins :/ 21:31
masak FROGGS: when would be a good time for you? 21:33
FROGGS more like 9pm to > midnight (berlin time) 21:34
I think we are one hour off atm
masak FROGGS: I think we're both on CET. 21:35
FROGGS or, before 18pm on weekend
it is 23:35p.m here
masak here too.
FROGGS I just was thinking the we must be of because jnthn said something about already midnight
off*
masak (though 23:35 am would be weird) :P 21:36
FROGGS: well, jnthn is one timezone to the west at present :P
don't assume that just because we're neighbors, we're in the same time zone :P
er, east*
FROGGS ahh, I see *g* 21:37
lue is in an awkwardly position timezone for suggesting times (PDT/PST), relative to the most common timezones of #perl6 :P 21:38
labster I already live in PDT (Pacific Standard Time), so that sounds good to me :P 21:39
masak how can I get lots of people to commit on four hours of workshop time that would suit them? 21:40
sort of like a kickstarter but for scheduling.
lue (#perl6's off-hours to me tend to be from 16:00 to somewhere in the 00:00..02:00 range) 21:41
21:41 kurahaupo joined
masak I know about doodle.com -- I'm curious if there's something people like even more. 21:42
FROGGS I just wanted to say that
I dont know something similar though 21:43
21:45 PacoAir left
gtodd www.whenisgood.com ? doodle.com is the simplest I've seen 21:46
21:46 spider-mario left
masak all I know is May is out of the question. middle of June is the earliest I could commit to. 21:46
FROGGS same for me 21:47
masak oh, and if I don't hear from anyone about desired topics and tasks, I'm going to simply improve the current material, trying to make it more effective.
but I'm very open for suggestions.
lue same here on the "after May" bit
masak ok, let me just throw a date out there: June 19. 21:48
and, since FROGGS requested it, from 18:00Z to 22:00Z. 21:49
labster Well, I haven't done all of the original material yet, so that works for me
en.wikipedia.org/wiki/Juneteenth ?
masak (which will make it more difficult for Asians to attend, but maybe easier for people from the New World)
I put it in my work schedule.
we'll let it brew for a while, and make it official if people seem OK with that datetime. 21:50
labster: oh, I didn't know that date had any special significance like that.
labster: does that make it worse, or better, from your perspective? or doesn't matter? 21:51
21:51 erkan joined, erkan left, erkan joined 21:53 Moukeddar joined
labster I'm on the west coast, and it's not celebrated out here. But for the places that it's a holiday, it would likely be easier. 21:53
lue sounds like a good time to me :) 21:55
labster It's not a major holiday, anyway, and it's the middle of the week.
21:55 cognominal left 21:56 cognominal joined
labster 18-22Z sounds good to me, too 21:56
lue imagines the possible day when #masakism is a big enough deal to warrant a 24-hour workshop, just to avoid scheduling issues :) 21:57
labster that sounds like more of a #masakre 21:59
r: say IO::Path::Win32.new("\\\\server\\share\\").Str 22:04
camelia rakudo 88f9c9: OUTPUT«\\server\share\\␤»
labster dang, bugs already. harmless ones, but still.
masak one nice thing about repeatedly generating HTML for all of my posts all day is that I'm reminded of old posts. :) 22:18
for example, this is what programming on Rakudo was like in 2009: strangelyconsistent.org/blog/three-...-right-now
we have *markedly* improved in the past four years.
here's hoping the next four years will bring an improvement of the same magnitude. 22:19
22:19 kurahaupo left
census yay for masakism 22:20
masak census: glad you liked it ;) 22:21
22:22 kurahaupo joined
lue
.oO(There was a time rakudo devs were nowhere to be seen?)
22:23
masak or masak-of-2009 was using hyperbole. possibly. 22:27
22:33 cosimo left, cosimo joined 22:35 Moukeddar left 22:36 dmol left
cognominal I commented about returning Nil on a failed match github.com/rakudo/rakudo/commit/5e...nt-3148676 22:52
masak 'night, #perl6 22:56
labster cognominal: you should try perl6-debug. it does a great job showing regex-in-progress.
night, masak.
23:19 itz__ joined, Chillance left 23:21 rafl joined 23:31 census left 23:37 grondilu joined
grondilu rn: my $x = 13; say $x[0] 23:44
camelia rakudo 88f9c9, niecza v24-37-gf9c8fc2: OUTPUT«13␤»
23:44 berekuk left 23:45 berekuk joined
geekosaur eyes that suspiciously 23:47