»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by moritz on 25 December 2014.
vendethiel wendy++ 00:00
pretty amazing, if you ask me ;-)
00:00 skids joined
tadzik oh, I'm on the internet :) 00:02
woolfy++
masak_grr internet++
woolfy tadzik: I still have lots of troubles finding a flattering picture of you... 00:03
tadzik heh
well, there's always the one with red mohawk... :
:P
woolfy By the way, this is certainly a El_Che++ for putting all the info into the FOSDEM system, not an easy task...
tadzik El_Che++
woolfy I got a lovely one of you at the French Perl Workshop in 2012 00:04
adu tadzik: lol
tadzik oh, I had some nice ones from there :)
woolfy: well, if you can't find anything by tomorrow I can try to take one of myself :) 00:05
now I'm too sleepy
00:05 sivoais_ left
tadzik zzz * 00:05
woolfy Nope, got it. On to the next fotogenic person. Three to go.
tadzik &
masak_grr tadzik: sleep well
woolfy tadzik: sleep well
El_Che doesn't the intertubes have shameful pics of you all to put on the fosdem site?
:)
tadzik thank you, and so to you, when you decide to :) 00:06
woolfy No, but Wendy's backup does have pictures of many people, including El_Che! :-)
El_Che omg
:)
woolfy Muhahaha!
El_Che: go to bed!!!
:-)
El_Che yeah, getting up in 5h18 minutes :( 00:07
damn, I need to win the lottery :)
woolfy Ouch...
El_Che goingto bed, good idea
bye
woolfy \o
00:08 sivoais joined 00:11 Guest19303 is now known as felher 00:25 gfldex left 00:31 Sqirrel joined, Ugator left
adu I figured it out! 00:42
masak_grr let's hear it.
00:42 masak_grr is now known as masak
adu I put the long enums in C::AST::Ops, and everything else in a single file 00:44
so much cleaner
I think I made a number of mistakes 00:45
I was doing "use C::AST3", but the thing at the top was "module C::AST;" 00:46
github.com/andydude/p6-c-parser/bl...C/AST3.pm6 01:02
isn't it pretty? 01:03
01:03 Guest37082 left 01:10 retupmoca left 01:12 retupmoca joined 01:13 IllvilJa left 01:14 Alina-malina left 01:22 IllvilJa joined
masak 'night, #perl6 01:22
01:22 kurahaupo joined 01:26 dj_goku joined 01:31 dj_goku left 01:48 Sqirrel left, dj_goku joined, dj_goku left, dj_goku joined, Sqirrel joined 01:49 BenGoldberg joined
skids m: my @in = (Num.^methods.gist x 400).split(/\s+/); now.say; my @t = @in.grep({ /ee/ }); now.say; my $in = @in.join(" "); my @v = $in ~~ m:g/\w*ee\w*/; @v = @v».Str; now.say; say so (@v) eq (@t) # drastic performance difference 01:50
camelia rakudo-moar 0463a4: OUTPUT«Instant:1421373078.155182␤Instant:1421373081.166052␤Instant:1421373081.401042␤True␤»
01:59 skids left
TimToady subtraction...hard... 02:07
why not use @v eqv @t, which will hopefully short circuit if an early element is different 02:12
m: my @in = (Num.^methods.gist x 400).split(/\s+/); now.say; my @t = @in.grep(/ee/); now.say; my $in = @in.join(" "); my @v = $in ~~ m:g/\w*ee\w*/; @v = @v».Str; now.say; say @v eqv @t 02:15
camelia rakudo-moar 0463a4: OUTPUT«Instant:1421374540.527195␤Instant:1421374543.173888␤Instant:1421374543.408081␤True␤»
TimToady you can get rid of ⅔ of the time just be losing the closure around the /ee/
*by
02:16 skids joined
TimToady hopefully you can lose most of the other ⅓ by implementing the GLR 02:16
skids: see backlog
skids Yeah actually I put the closure in at one point to see if it helped the rx stay compiled (assuming that was part of it) and forgot to take it back out before pasting. 02:20
The parens/lists were just superstitious 02:22
TimToady so was the so :) 02:23
02:25 bonsaikitten left 02:26 chenryn joined, xiaomiao joined 02:30 cbk1090 joined
cbk1090 When installing Rakudo what does "Parrot without ICU is not supported anymore." mean and how do I fix it? 02:32
leont Parrot uses the ICU library for unicode support
02:33 77CAABY7Q left, CAABY7Q joined
cbk1090 Ok so just fix unicode. got it. Thanks 02:34
adu You can't fix unicode 02:36
geekosaur you need to make sure the ICU development headers and libraries are installed when parrot is built (usually Configure ... --gen-parrot) 02:38
02:39 chenryn left
cbk1090 It looks like the ICU headers are not being installed with the Configure --gen-parrot option. At least for me 02:39
02:40 chenryn joined
geekosaur ... 02:40
maybe I need to rephrase that
gen-parrot does not install ICU for you; you must install it, however you need to do it on your OS, *before* the gen-parrot
or parrot will build without it, and will not work for rakudo-parrot 02:41
cbk1090 oh ok.
02:52 vendethiel left 02:54 vendethiel joined 03:06 frew left 03:12 vukcrni joined 03:15 vendethiel left 03:17 vendethiel joined 03:24 noganex joined 03:28 noganex_ left 03:39 vendethiel left 03:45 leont left 03:50 cbk1090 left 04:07 IllvilJa left 04:15 IllvilJa joined 04:19 Rounin joined 04:38 anaeem1_ joined 04:56 Rounin left 04:59 kurahaupo left 05:02 frew joined 05:03 yeahnoob joined, yeahnoob left 05:04 yeahnoob joined, yeahnoob left, BenGoldberg left, yeahnoob joined 05:05 yeahnoob left, yeahnoob joined, yeahnoob left 05:06 yeahnoob joined
adu hmm 05:12
05:21 vendethiel joined 05:25 Guest24916 is now known as ponbiki
raydiak hm? 05:44
05:44 vendethiel left
raydiak m: my $a = 'foo'; $a.substr-rw(2,1) = 'x'; say $a; 05:56
camelia rakudo-moar 0463a4: OUTPUT«No such method 'substr-rw' for invocant of type 'Str'␤ in block <unit> at /tmp/FXDKKGCLEh:1␤␤»
raydiak can anyone suggest a good way to replace 1 character in a string by index?
thought we had substr-rw implemented already, but guess it's gone 05:57
05:57 kaleem joined 06:01 dwarring left
raydiak rn: my $a = 'foo'; $a.substr-rw(2,1) = 'x'; say $a; 06:01
camelia niecza v24-109-g48a8de3: OUTPUT«(signal ABRT)Stacktrace:␤␤ at <unknown> <0xffffffff>␤ at (wrapper managed-to-native) object.__icall_wrapper_mono_gc_alloc_string (intptr,intptr,int) <0xffffffff>␤ at (wrapper alloc) object.AllocString (intptr,int) <0xffffffff>␤ at string…»
..rakudo-{parrot,moar} 0463a4: OUTPUT«No such method 'substr-rw' for invocant of type 'Str'␤ in block <unit> at /tmp/tmpfile:1␤␤»
06:02 IllvilJa left
adu o raydiak 06:09
raydiak omg adu where'd yer arm go!? 06:10
adu pastie.org/9834616
my arm?
TimToady I found it over here --> / 06:11
adu I don't get it
raydiak ^^^^^^ thought " o " was a o/ missing the part that TimToady found :)
adu o that's what it means 06:12
I always though "\o" was just a lazy way of spelling "hello"
06:12 Rounin joined
raydiak heh I spent a good few months lurking here wondering what kind of escape sequence "\o" was 06:12
nice adu++ # tenacity 06:13
adu I apparently spent several years doing the same
raydiak so you've got CAST starting to work? 06:14
adu yes
I'm on my second major rewrite, CAST3
github.com/andydude/p6-c-parser/bl...C/AST3.pm6 06:15
isn't it beautiful?
TimToady 11 more rewrites and you can get it to CASTE if you stick to hex 06:16
06:16 IllvilJa joined
raydiak oh pretty 06:16
TimToady I guess that would be B momre rewrites though
adu TimToady: lol 06:17
TimToady *more
adu 0x65
JimmyZ why AST3? not AST
adu JimmyZ: because I like to copy some things instead of write from scratch, when I'm ready I'll rename s/AST3/AST/ when I merge into master branch 06:18
06:21 kaleem left 06:22 Alina-malina joined 06:27 chenryn_ joined 06:28 chenryn left
TimToady crud, the civil time idiots are adding another leap-second in June 06:36
I thought they were getting over that
xiaomiao TimToady: you could convince earth to wobble less ;) 06:38
TimToady let's also persuade all our timezones to relocate all of their positions to the exact center of each timezone, then maybe leap seconds would matter slightly 06:39
all leap seconds do is screw things up 06:40
06:40 dj_goku left
TimToady it doesn't matter if civil time drifts a minute or two over the next century 06:40
06:42 [Sno] left 06:43 dj_goku joined, dj_goku left, dj_goku joined, adu left
TimToady we should've just nail civil time to atomic time in 2000, and the let the people in 3000 decide whether it's got bad enough to warrant an adjustment yet 06:45
*nailed
*then 06:46
can't type tonight
probably some leap-microseconds in there I didn't account for
06:47 telex left 06:48 telex joined 06:49 mr-fooba_ left, dj_goku left 06:54 dj_goku joined, dj_goku left, dj_goku joined 06:57 kjs_ joined 06:58 nebuchadnezzar joined 07:02 dj_goku left, kjs_ left 07:06 chenryn_ left 07:10 chenryn_ joined 07:11 dj_goku joined, dj_goku left, dj_goku joined 07:29 rindolf joined 07:33 gfldex joined 07:34 FROGGS left 07:35 [Sno] joined 07:36 vendethiel joined 07:39 darutoko joined 07:44 vukcrni left 07:45 vukcrni joined 07:46 jack_rabbit left 07:50 abraxxa joined, abraxxa left
moritz agrees 100% with TimToady++ 07:51
07:55 jack_rabbit joined 07:56 kjs_ joined 07:58 brrt joined 07:59 vendethiel left 08:04 FROGGS joined
TimToady rosettacode.org/wiki/Ulam_spiral_%2...%29#Perl_6 08:07
08:08 gfldex left
jnthn hah, I read the var name as $yolo... 08:08
08:09 kaleem joined 08:21 vukcrni left 08:22 chenryn_ left, chenryn_ joined 08:24 simcop2387 left, simcop2387_ joined, simcop2387_ is now known as simcop2387, zakharyas joined 08:25 vukcrni joined, kaleem left 08:32 petercommand left, petercommand joined 08:56 dayangkun joined 08:57 mvuets joined 09:01 chenryn_ left, TuxCM left, chenryn_ joined 09:04 Shozan is now known as SHODAN 09:06 abraxxa joined 09:07 vendethiel joined, TuxCM joined 09:21 pecastro joined 09:30 vendethiel left 09:31 yeahnoob left 09:41 xfix joined, xfix left, xfix joined 09:44 Ven joined 09:45 Ven left, vendethiel joined 09:56 donaldh joined 10:00 TuxCM left
masak $yolo, #perl6 10:00
moritz \o masak
10:00 TuxCM joined
masak I've been back to the drawing board, and I now have a new 4x4 maze generator algorithm, Correct This Time™, which I will implement. 10:01
10:01 krunen joined
moritz oh, was the previous one buggy? 10:03
masak subtly so. 10:04
which is good, because that'll make for an even better blog post ;)
10:05 TuxCM left, spider-mario joined 10:10 TuxCM joined 10:11 virtualsue joined 10:13 rurban joined 10:14 dayangkun left
ab5tract yay for blogpost :) 10:15
10:18 sqirrel_ joined 10:20 araujo left 10:21 araujo joined 10:22 virtualsue left 10:28 virtualsue joined 10:29 rurban left 10:30 araujo left
dalek p: 081cde2 | donaldh++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/IndyBootstrap.java:
Fix compilation warnings on Java 1.8
10:30
kudo/nom: 6f79fcc | lizmat++ | src/core/Str.pm:
Implement Str.substr-rw, raydiak++ for spotting
10:33
lizmat_ .tell raydiak my $a = "foo"; $a.substr-rw(2,1) = "x"; say $a # -> fox
yoleaux lizmat_: I'll pass your message to raydiak.
10:33 lizmat_ is now known as lizmat 10:34 araujo joined
lizmat .tell raydiak github.com/rakudo/rakudo/commit/6f79fcc296 implements it, tests welcome 10:34
yoleaux lizmat: I'll pass your message to raydiak.
Woodi_ hallo today :) 10:44
Perl5 have some problems with regexes and non ascii chars, yes ? $_ =~ /(\w+)'s$/ sometimes not catch 's words... 10:45
10:45 araujo left
masak finds a use for infix:<^^> 10:45
FROGGS cute 10:46
10:46 araujo joined 10:48 araujo left 10:49 araujo joined 10:51 sqirrel_ left 10:58 andreoss joined 11:01 pdcawley_ left 11:03 virtualsue left
lizmat .tell jnthn from an optimization point of view, would it make sense to move functionality like Str.substr(|c) to sub substr(Str, |c) ? as a sub call optimizes better ? 11:04
yoleaux lizmat: I'll pass your message to jnthn.
11:06 virtualsue joined 11:07 TuxCM left 11:08 TuxCM joined
moritz it would 11:13
lizmat ok, I'll see if I can get that together 11:14
moritz but please run some non-trivial benchmarks 11:15
it could be that we're calling the method form everywhere
lizmat in the setting, it's about 2/3 method, 1/3 sub 11:16
moritz and thus moving the functionality to the sub introduces a redispatch, and makes things slower
dunno if we care about the semantics if somebody subclasses Str and overrides substr
lizmat no, my idea would be that the sub case would *not* do a redispatch
it does a redispatch now
moritz well 11:17
sorry
I meant that calling the method would introduce a re-dispatch to the sub
unless you want to implement it twice
lizmat the method version of .substr would call the sub version of substr 11:18
moritz thus making the method form slower
that's what I meant
lizmat not necessarily, as the sub call inside the method could be inlined
11:18 rurban joined
lizmat so, the idea is that the method version would not get slower, but the sub version would 11:19
s/slower/faster
*sigh*
the sub version would get faster
moritz aye
worth a trial, at the very least 11:20
dalek p/parrot-rpa: 7d370c8 | rurban++ | / (7 files):
Replace unneeded QRPA with ResizablePMCArray
11:22
nqp/parrot-rpa: d91e5e2 | rurban++ | tools/build/Makefile-Parrot.in:
nqp/parrot-rpa: Makefile-Parrot: simplify ops2c rule, no chdir needed
11:22 dalek left, dalek joined, ChanServ sets mode: +v dalek
ab5tract we would we not inline a method in the same way that we would inline a sub in a method? 11:26
that seems weird to me
masak ab5tract: and you say this knowing about the late binding of method dispatch, I take it? 11:27
11:27 chenryn_ left
jnthn moritz, lizmat: As a design principle we've almost always had it that sub versions of things delegte to method versions, not the other way around. 11:28
yoleaux 11:04Z <lizmat> jnthn: from an optimization point of view, would it make sense to move functionality like Str.substr(|c) to sub substr(Str, |c) ? as a sub call optimizes better ?
lizmat jnthn: that's not how the implementation looks atm :-)
jnthn lizmat: It does in many cases.
lizmat in about 1/3
but glad I'm on to something here 11:29
11:29 chenryn_ joined, brrt left, espadrine joined
jnthn On performance, the answer is that you really want to avoid |c when you can just delegate with normal parameters. 11:30
Then it doesn't matter much which way around we have it.
Whichever one is doing the delegating will be a good inlining candidate. 11:31
The static optimizer has an easier time of subs, but it's also extremely restrictive in what it will do
It exists mainly to inline native operations so they get good code-gen from the start. 11:32
ab5tract masak: i say this not comprehending how inlining the sub in a late-bound dispatch makes it any less late-bound
jnthn The majority of interesting inlining for non-natives is done dynamically by the VM
ab5tract i am admittedly out of my depth here :)
jnthn And it can see through dynamic dispatch.
And is only going to get better at doing so. 11:33
masak jnthn: I'm still taken aback by that at times.
jnthn masak: Which bit? :) 11:34
masak it being able to see through dynamic dispatch.
lizmat jnthn: so to gist what you're saying: don't bother, but kill any occurrences of |c
ab5tract and if the answer to speed up method calls is to call a sub from the method, then why not wire that together implicitly 11:35
jnthn lizmat: Well, not *any* occurences, but if you can write a couple of specific candidates rather than one general one, then yes, it's worth it.
lizmat ok
jnthn lizmat: |c is not well optimized, and it's a multi-day project to make things significantly better (with at least a day thinking hard about how on earth to make it better :)) 11:36
lizmat I hear ya... :-)
masak ab5tract: because method calls dispatch depending on the type you call them on. 11:37
jnthn masak: Type specialization done by Moar and also using indy on the JVM is done on exact types, and if you know the exact type you know its exact method table, and if you know its exact method table you know the method. :)
11:37 mls_ is now known as mls
jnthn Most programs are "eventually static" in most places. 11:38
masak *nod*
does that mean that, in some sense, the dynamism put in by the programmer is "for people to read, and only occasionally for computers to execute"? 11:39
11:40 robins left
dalek kudo/nom: 2004789 | lizmat++ | src/core/ (8 files):
Make .infinite faster by using MMD
11:41
jnthn I'm not sure you put in dynamism knowingly. Or at least, I don't. It's just that the code doesn't demand much.
11:42 jack_rabbit left
masak well, not dynamism for the sake of it. 11:42
11:42 robinsmidsrod joined
masak maybe it just sneaks in because of other things that are straightforward to write. 11:43
jnthn And we tend to like that because the less demanding a piece of code is on the world/data it interacts with, the easier it is to keep it working as the world/data changes around it.
masak more "lack of explicit constraints" than "dynamism", perhaps.
jnthn Up to a point, at least.
*least
masak jnthn: right -- a program can spesh differently based on different inputs, I guess.
jnthn Oh, very much so.
Consider a method foo($a) { $a.bar } 11:44
In a module.
If one program passes the method a Gym, and another program passes it a Pub, you'll get different specializations :) 11:45
The Gym bar may be short enough to inline, but a good Pub bar probably won't. :P
masak :P 11:46
jnthn But yeah, the same code can, depending on how it gets used in a program, specialize in a different way.
That extends to the runtime and even the compiler.
11:47 spider-mario left 11:51 robinsmidsrod left 11:52 robinsmidsrod joined 11:53 denis_boyun_ joined 12:02 chenryn_ left 12:04 chenryn_ joined 12:05 chenryn_ left 12:06 denis_boyun__ joined 12:07 denis_boyun_ left 12:08 andreoss left, chenryn_ joined 12:10 donaldh left 12:14 abraxxa left 12:17 kjs_ left 12:18 kjs_ joined
Mouq 'morning #perl6! 12:18
I ran the 4x4 last night:
100352
perl6 reboot.clean.p6 9293.29s user 109.52s system 99% cpu 2:36:46.80 total
masak that number looks familiar from oies 12:19
it's the one that counts symmetric mazes multiple times. 12:20
Mouq I'd really like to find a way to only generate the symmetric ones, without having to build a list and subsequently filter it 12:22
masak the number of symmetric ones is 12600
see gist.github.com/masak/eb8e9a370300c666a0ec for the newest, Correct This Time™, algorithm 12:24
oeis*
12:24 rindolf left
Mouq masak++ 12:25
12:25 rindolf joined 12:29 kjs_ left, fhelmberger joined 12:32 chenryn_ left, chenryn__ joined 12:33 kjs_ joined
lizmat .tell jnthn could you tell me if there's something wrong with gist.github.com/lizmat/6176e1bfab8a9e5289c4 12:40
yoleaux lizmat: I'll pass your message to jnthn.
lizmat .tell jnthn it makes things siginificantly slower
yoleaux lizmat: I'll pass your message to jnthn.
lizmat .tell jnthn I guess having just a single method still beats MMD
yoleaux lizmat: I'll pass your message to jnthn.
masak Mouq: and 28 symmetric 3x3 mazes. (where before I had 24.) 12:42
12:43 kjs_ left
timotimo o/ 12:48
lizmat timotimo o\ 12:49
need to be afk, unfortunately &
timotimo did i miss something good today already?
masak .oO( afk is a cruel and barren place to be ) 12:50
timotimo: leap seconds, inlined subs and methods, mazes. 12:51
timotimo we had multiple leap second in the mean time?
damn it
masak no. we will have one in July. 12:53
masak .oO( Not So Great Leap Forward )
12:53 anaeem1_ left 12:54 kjs_ joined
jnthn fails to melt down all his possessions 12:54
yoleaux 12:40Z <lizmat> jnthn: could you tell me if there's something wrong with gist.github.com/lizmat/6176e1bfab8a9e5289c4
12:40Z <lizmat> jnthn: it makes things siginificantly slower
12:40Z <lizmat> jnthn: I guess having just a single method still beats MMD
12:55 anaeem1_ joined
masak jnthn: is this a case for "smelt", or are both OK? 12:55
12:55 xfix left
masak Mouq: if I switch off the symmetry checking, I get 100352 for 4x4 too, which is promising. 12:56
jnthn masak: Well, I'm sure the process smelt too :P
lizmat: Well, did you check how often you hit the delegation-y cases? 12:57
lizmat: self.gimme(*) if nqp::isnanorinf(nqp::unbox_n(target)); for example 12:58
12:58 kjs_ left 12:59 anaeem1_ left, skids left 13:03 kjs_ joined 13:04 kjs_ left 13:06 chenryn__ left, Guest34430 joined, Guest34430 left 13:07 kjs_ joined 13:20 breinbaas left 13:22 breinbaas joined, kaare__ joined 13:23 kaleem joined 13:24 jluis left 13:25 robinsmidsrod left, robinsmidsrod joined
timotimo is anyone TGIFing today? 13:26
hoelzro o/ #perl6 13:28
13:30 xfix_ joined, xfix_ is now known as xfix 13:31 leont joined
dalek kudo-star-daily: 8680f63 | coke++ | log/ (9 files):
today (automated commit)
13:31
[Coke] what do I need to install on hack.p6c.org to make modules/DBIish tests pass? 13:32
hoelzro I would like to add some text describing how Grammar actions' methods work with look[ahead|behind]; where would that go best? 13:33
[Coke] still a bunch of failures on rakudo-star-jvm
jnthn timotimo: As in, being glad it's Friday? :) 13:35
timotimo yeah
jnthn Yes, very
timotimo and having something cool planned for the weekend
jnthn 'cus I've been teachign the last 3 days with a cold.
And at the weekend can rest enough to get rid of it :)
timotimo my condolences
jnthn Planning to hack on Perl 6 stuffs at the weekend :) 13:36
timotimo \o/
Mouq masak: \o/ 13:37
jnthn Given 6pe a shove further along and start using it a bit, I hope :)
*Give
Mouq jnthn: \o/
13:37 robinsmidsrod left
Mouq needs to put his hands down if he hopes to drive to school 13:37
o/ #perl6
13:38 Mouq left
timotimo sounds great! 13:38
we have all of the tests passing on moar and jvm now, yes?
13:39 adu joined, anaeem1_ joined 13:40 robinsmidsrod joined 13:42 kaleem left
[Coke] news.perlfoundation.org/2015/01/gra...pid-a.html - only one submittal this period, leave a comment if you have the feels. 13:48
masak jnthn: what's 6pe?
timotimo "sixpack of 'eer" 13:50
masak :P
13:51 donaldh joined
adu TimToady: what about the civilians who calculate the probability of asteroid collisions with Earth? 13:55
masak that sounds like a question screaming for more context. 13:56
adu masak: lol 13:57
"<TimToady> crud, the civil time idiots are adding another leap-second in June" 13:58
13:59 brrt joined, Rounin left
donaldh Java 7 reaches end of public updates in April - www.oracle.com/technetwork/java/jav...35779.html 14:00
14:03 kaleem joined, pmurias joined
pmurias if I have a chunk of QAST how should I run it on moarvm? 14:04
(when running on moarvm)
14:05 xinming left, xinming joined
timotimo you can feed it to what you get from getcomp 14:07
getcomp gives you the HLL::Compiler subclass for the given name 14:08
adu pmurias: something along the lines of Perl6::Compiler.eval() or something 14:10
timotimo you can feed it to the stage that comes after qast 14:13
pmurias what I have thus far: pastie.org/9835301
dalek jo6: aa71078 | hoelzro++ | t/mojo/css.t:
Test E[attr]
14:14
jo6: 7c63f76 | hoelzro++ | lib/Mojo/DOM/CSS.pm:
Implement E[attr]
jo6: 48e4f5e | hoelzro++ | lib/Mojo/DOM/CSS.pm:
Notes for cleanup
jo6: a94613f | hoelzro++ | t/mojo/css.t:
Test E[attr="value"]
jo6: 45d0362 | hoelzro++ | lib/Mojo/DOM/CSS.pm:
Implement E[attr="value"]
jo6: cb2254d | hoelzro++ | lib/Mojo/DOM/CSS.pm:
A bit of refactoring
donaldh I don't think there is a compiler exposed for QAST tho
timotimo every compiler turns their stuff into qast 14:15
masak well. NQP and Rakudo do.
14:15 IllvilJa left
masak adu: I guessed that it was a continuation of that conversation. where you're heading with that question still eludes me, though. what would be a possible answer? "well, I guess they might be one second too late in their estimated impact calculations..." ? 14:17
pmurias nqp::getcomp('nqp') does seem to be available from Perl 6
donaldh Oh, they do expose their stages :D
timotimo that's what i meant 14:20
[Coke] hoelzro++
pmurias just abusing the Perl6 compiler and turning of optimalisation works
donaldh Something like nqp::getcomp('perl6').compile($qast, :from('ast')) 14:21
jnthn timotimo: Yes, but only 'cus I didn't write enough tests :P
timotimo :D
jnthn masak: "6model parametric extensions"
nqp::getcomp('QAST') may also work :) 14:23
pmurias jnthn: that gets me mast
jnthn Yes, true :)
pmurias which I figured how to save to disk but not how to run 14:24
I'm not sure what to do with the result of assemble_and_load
jnthn Invoke it, iirc :) 14:25
See what method eval in HLL::Compiler does
pmurias doesn't seem to work from Perl6 land
jnthn oh, wait, it refers to the whole compilation unit
So you need to get the mainline code iirc
But yeah, using the pipeline of one of the existing compilers using HLL::Compiler is likely easier. 14:26
pmurias abusing the pipeline of an existing compiler should be enough for stage 1 of secret project 14:27
jnthn Ooh, what does it do? :) 14:29
donaldh r: nqp::getcomp('perl6').compile('say "hi"'))()
camelia rakudo-{parrot,moar} 200478: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unexpected closing bracket␤at /tmp/tmpfile:1␤------> qp::getcomp('perl6').compile('say "hi"')⏏)()␤»
donaldh r: nqp::getcomp('perl6').compile('say "hi"')()
camelia rakudo-{parrot,moar} 200478: OUTPUT«hi␤»
14:29 kaare__ left 14:32 skids joined
lizmat jnthn: before gimme MMD patch: Files=935, Tests=34357, 197 wallclock secs ( 8.92 usr 3.03 sys + 1194.02 cusr 144.41 csys = 1350.38 CPU) 14:34
after: Files=935, Tests=34357, 217 wallclock secs ( 9.54 usr 3.40 sys + 1329.13 cusr 151.26 csys = 1493.33 CPU) 14:35
14:35 IllvilJa joined
lizmat that's 10% more CPU and wallclock 14:36
14:36 hugme left, synopsebot left, Util_ left, Juerd left
vendethiel all(@names.map: { $attrs{$^name}:exists }); <- can't that be all($attrs{@names}:exists) ? 14:37
14:38 pmichaud_ left 14:39 Juerd joined, pmichaud joined
lizmat vendethiel: feels that it should 14:40
timotimo i'd prefer [&&] tbh
vendethiel right
[&&] is definitely better when just using the junction as a bool :) 14:41
timotimo and yeah, putting @names inside the { } as an array should be optimizabler. 14:42
14:42 hugme joined, ChanServ sets mode: +v hugme
[Coke] in github.com/rakudo/rakudo/commit/20...a4be06e90, a method is changed to multi but there don't appear to be any actual multi methods; isn't this a behavioral change (now we can have multis, before we couldn't) to get a speedup? is this right? 14:42
14:43 synopsebot joined
lizmat [Coke]: that's what I understand 14:43
14:43 Util joined 14:44 chenryn joined
timotimo having the :D check in a place that's closer to the MMD itself lets us optimize (or rather: introspect) it more easily 14:44
FROGGS I understand [Coke]++'s question more as: do we want to make changes to behaviour for the sake of performance? 14:45
and... is this behaviour wanted?
14:45 anaeem1_ left
sjn woolfy++ # great fosdem devroom schedule! 14:46
oh and good *, #perl6 :)
moritz without answering the actual question, I'd like to add that the specs are not very explicit about which methods are multis and which aren't
pmurias jnthn: 007.js
lizmat [Coke]: in any case, I try to batch my commits for easy revertability 14:47
PerlJam FROGGS: what's the downside of changing the behavior? (I can't think of one)
sjn woolfy: a few typos though, but nothing horrible :)
FROGGS PerlJam: I am just formulating how I understood [Coke]'s question :o) 14:48
pmurias jnthn: stage 1 is a Q -> QAST translator
FROGGS I also think that there is no pro or contra to the behaviour change...
woolfy sjn: the texts are from the speakers... and we did remove some typos. You're very much welcome to send me (and/or El_Che) any corrections.
sjn: The corrections can/will be put into the texts online. It's too late to change anything in the printed texts. FOSDEM has sent all texts to the printer. The whole schedule for the Perl-devroom will be in the booklet. 14:49
14:51 gfldex joined, chenryn left
sjn woolfy: s/""/"/g; s/^"|"$//g; 14:52
[Coke] FROGGS++ has it. just wondering if the behavior change is worth it. to moritz++'s point, we should probably decide if we want multis or not for core class methods.
also, lizmat++ for doing the work in the first place.
14:52 chenryn joined
woolfy sjn: in my thoughts, I will distribute your ++ to the speakers, of which several can be found in this awesome channel! jnthn++ tadzik++ nine++ pmichaud++ FROGGS++ CurtisOvidPoe++ mst++ rjbs++ sawyer++ stevanlittle++ mickeyn++ 14:52
sjn agrees :) 14:53
PerlJam woolfy++ too for doing the work :)
[Coke] as a generic OO user, I'm still kind of surprised we have multi methods and non multi methods.
moritz and [Coke]++ for raising the issue
woolfy and El_Che++ !!!
moritz and hugs for everybody!
lizmat [Coke]: jnthn can explain that one better, from an implementation point of view 14:54
FROGGS free hugs /o/
sjn El_Che++ # deserves lots of praise
PerlJam moritz++ for the FindBin patch that you submitted in 2011 and I just noticed that it was you today ;)
14:54 beastd joined
woolfy sjn: I don't understand... 14:54
moritz PerlJam: tinita++ has been nagging about that FindBin thingy 14:55
sjn woolfy: there are a couple of the talk descriptions that are in quotes
14:56 Ven joined
woolfy Just got word that somebody from the city of Perl has an extra special surprise for the Perl 6 speakers at FOSDEM... I hope it works out. 14:56
sjn hehe
woolfy sjn: ah. Yes, I saw that. I will leave that to El_Che to fix.
sjn vaguely remembers one more typo, but can't seem to find it any more 14:57
donaldh r: my Mu $c := nqp::getcomp('perl6'); $c.compile($c.compile('say "hi"', :target('ast'), :compunit_ok), :from('ast'))
camelia ( no output )
donaldh my Mu $c := nqp::getcomp('perl6'); $c.compile($c.compile('say "hi"', :target('ast'), :compunit_ok), :from('ast'))()
PerlJam woolfy: some random person from the city of Perl or an offical of the city?
*official
sjn well, there are still some capitalization bugs in mst's text :)
14:57 rurban left
sjn nothing major though 14:57
PerlJam sjn: I haven't looked, but are you sure mst didn't captialize that way on purpose ? :) 14:58
sjn heheh
woolfy mst's text might be from Mark... ;-)
14:59 chenryn left
woolfy PerlJam: neither... and if I explain, the surprise is gone. :-) 14:59
14:59 chenryn joined
dalek kudo/nom: 1b59b0b | lizmat++ | src/core/GatherIter.pm:
Use natives in GatherIter.reify
15:01
15:01 kaleem left
PerlJam woolfy: Just make sure the interaction is recorded so that those of us who are locationally challenged can fee like we were there :) 15:02
woolfy sjn: the awesome El_Che already fixed the "..." typos. Thanks for mentioning.
PerlJam *feel
woolfy PerlJam: see video.fosdem.org/ and that will happen this year again! 15:03
Though, we have one volunteer now for doing the videorecording. And we could use another one or two. There will be 8 hours of recording to do... 15:04
15:04 [Sno] left, adu left, eMBee left
woolfy So if anybody here would like to volunteer for doing some video recording... please message me. 15:04
Ow, this was the Perl-room last year: K.3.201 video.fosdem.org/2014/K3201/Saturday/ 15:05
The volunteer will get a little bit of training: push this button to start, that one to end, that one to focus, etc. Take care of the cables, microphone, aim camera at the speaker and/or at the screen and sometimes at the audience. 15:06
espadrine I'm tempted, but I haven't even got my train ticket to fosdem 15:09
(yet)
15:11 PZt joined
sjn hopes the videos this year work out 15:11
too many bad ones last year :-( 15:12
15:12 rurban joined
dalek kudo/nom: 3b0cef5 | lizmat++ | src/core/Str.pm:
Lose |c on signature
15:16
kudo/nom: 997864d | lizmat++ | src/core/ (6 files):
Reify is always called with parameters

So lose the defaults for faster MMD dispatch / smaller binary
woolfy sjn: we hope the same... problem with cables (to microphones, and power cables), and the power units... It was driving VanHoesel crazy (our volunteer). 15:17
sjn mm 15:18
woolfy This has been reported to FOSDEM, and we were not the only ones.
15:18 xinming left
sjn one useful trick would be to offer some headphones so that one might at least hear what's being recorded 15:18
woolfy So, let's hope lessons were learned. It was the first time every room got a videorecording setup
15:18 xinming joined 15:19 pmurias left 15:20 anaeem1_ joined, telex left 15:21 Mso150 joined 15:22 chenryn left, telex joined
sjn woolfy, El_Che: Oh, one more thing for the schedule! Stevan Little should be Stevan "#damnitstevan" Little! :D 15:24
woolfy Oh no, absolutely not, that meme should have died some time ago!
sjn aw :-( 15:25
El_Che hi sjn thx for the fixes
woolfy well, we can change your name to dammitsalve!
sjn isn't competent enough to deliver #p5mop and that goodness, so damning me wouldn't make any difference :-| 15:26
El_Che sjn: we can try :) 15:27
15:27 adu joined
El_Che sjn: will we be honoured by your gracious presence at fosdem this year? 15:28
woolfy sjn: the dammit was because of something else...
lizmat afk for a few hours 15:29
sjn El_Che: I'll be there, arriving friday, leaving monday 15:30
although s/gracious/bumbling/ :)
El_Che sjn: nice 15:31
woolfy sjn: \o/
afk for some time
El_Che woolfy: don't let lizmat escape now she's afk
:)
15:32 Mso150 left
woolfy -> ...(bicycle trip...) 15:32
15:33 Mso150 joined
rurban found the blocking parrot resizablepmcarray bug github.com/parrot/parrot/issues/1174 15:36
15:41 anaeem1_ left, anaeem1 joined
masak pmurias: did you say... 007.js? 15:42
15:42 anaeem1 left 15:44 anaeem1 joined, Ven left
hoelzro there's no shorthand for $<foo>.defined ?? $<foo>.Str !! '', is there? 15:44
moritz ~($<foo> // '') 15:45
hoelzro ah, that makes sense
15:46 beastd left
hoelzro I was thinking something along the lines of $<foo>.?Str 15:46
15:50 treehug88 joined 16:01 anaeem1 left 16:02 anaeem1 joined 16:06 anaeem1 left
mst woolfy: actually, I think it's recycled from a previous submission 16:06
16:10 robinsmidsrod left 16:12 robinsmidsrod joined 16:15 rurban left 16:16 leont left 16:20 jdv79_ is now known as jdv79 16:22 zakharyas left 16:23 mr-foobar joined
dalek ast: a31f1e7 | lizmat++ | test_summary:
Fix deprecation
16:26
timotimo lizmat: "reify is always called with parameters" and then + method reify() { () } 16:27
seems wrong?
lizmat timotimo: excellent catch 16:28
timotimo :)
ugexe re META6.json: if a module B emulates module A, and module C depends on module A, if module B is already installed should module A be pulled in as a dependency of module C? or should module B satisify that dependency?
dalek kudo/nom: 407630f | lizmat++ | src/core/Nil.pm:
Nil.reify always called with 1 param, timotimo++
16:29
16:29 anaeem1 joined 16:30 anaeem1 left, kaleem joined 16:31 anaeem1_ joined 16:32 anaeem1_ left 16:33 anaeem1 joined 16:34 mvuets left
dalek ast: 2fe1e1f | lizmat++ | S32-io/copy.t:
Replace deprecated .path by .IO
16:36
16:37 anaeem1 left
dalek ast: 01dd57f | lizmat++ | S32-io/io-path-cygwin.t:
Replace deprecated .directory by .dirname
16:40
16:42 kaleem left
dalek ast: 2e63301 | lizmat++ | S32-io/io-path.t:
Replace deprecated .path by .IO
16:43
16:43 anaeem1_ joined
dalek ast: 3c0f230 | lizmat++ | S32-io/io-path.t:
Replace deprecated .directory by .dirname
16:44
16:45 molaf joined 16:47 [Sno] joined, anaeem1_ left
dalek ast: 42a5d1b | lizmat++ | S32-list/uniq (2 files):
.uniq is now .unique
16:48
ast: 6bbf7c3 | lizmat++ | S32-list/unique.t:
Change all the references of .uniq to .unique
kudo/nom: 63402e5 | lizmat++ | t/spectest.data:
We renamed the .uniq testfile, so follow suit
16:49
16:50 Alina-malina left, Alina-malina joined, anaeem1 joined
dalek ast: 8c129b3 | lizmat++ | integration/advent2011-day23.t:
Replace deprecated .uniq by .unique
16:52
16:54 kjs_ left 16:59 berekuk_ left 17:00 fhelmberger left 17:07 brrt left
TimToady adu: the location of the earth in its orbit has almost nothing to do with the earth's wobble, so astronomers will already be using a timebase independent of leap seconds for that purpose 17:19
but it's true that astronomers are really the only group of people who care much about exactly where to point their telescopes when 17:20
but they're already used to doing complicated calculations
inflicting that damage on all users of civil time, a much larger group, is not really supportable 17:21
17:21 denis_boyun__ left 17:22 reshtnk71 joined
tadzik hmm, didn't github use to use gravatar for avatars? 17:22
dalek kudo/nom: a3e5f25 | lizmat++ | src/core/ListIter.pm:
Presize array with 5 for .reify(Whatever)

This seems to have a slightly beneficial effect on the spectest. Please revert if this is showing up as badness in other ways.
17:26
17:41 rmgk_ joined, rmgk is now known as Guest75643, Guest75643 left, rmgk_ is now known as rmgk, espadrine left 17:46 sqirrel_ joined 17:56 sivoais left 17:58 FROGGS left 18:01 Rounin joined
hoelzro does Perl 6 have something like \Q ... \E or quotameta from Perl 5? 18:01
flussence er... normal ' and " should do it 18:02
hoelzro I would like to see if a string begins with an arbitrary substring, where the latter can contain regex meta characters
oh, really?
so $str ~~ /^ "$prefix" /?
flussence exactly!
psch m: say '$prefix' ~~ / '$prefix' / 18:03
camelia rakudo-moar 63402e: OUTPUT«「$prefix」␤»
flussence wait... you don't need quotes there
$vars just interpolate as strings.
hoelzro oooooh
thanks flussence
osfameron what if you *wanted* them to expand to regexp metachars? ;-)
psch m: my $prefix = '$%foo'; say '$%foo-baz' ~~ / ^ $prefix /
camelia rakudo-moar 63402e: OUTPUT«「$%foo」␤»
flussence if you *want* a variable interpreted as regex, <$var> iirc
osfameron cute
18:04 eternaleye left
TimToady osfameron: note that changing the default here is what allows us to combine Perl 5's $1 and \1 into a consistent $0 18:05
and we can do that because regexes are no longer considered strings, but a language of their own 18:06
so it's easy to flip the semantics of interpolation
18:07 donaldh left, eternaleye joined
masak oh, nice. I had never put those two facts together before. 18:07
18:08 kjs_ joined 18:11 Mso150_y joined 18:12 Mso150 left 18:17 sqirrel_ left, Sqirrel left 18:20 kjs_ left
timotimo hoelzro: i'm surprised you didn't know that o_O 18:20
hoelzro timotimo: regexes are one of my weaker areas in P6 =/ 18:21
and I seldom use / $var /
timotimo but they are one of the stronger areas in P6 :)
hoelzro yes
so I need to work on that =)
18:21 dwarring joined 18:23 kjs_ joined 18:25 kjs_ left
nwc10 did you see how close they got to pulling it off? vine.co/v/OjqeYWWpVWK 18:26
masak nwc10: o.O 18:28
TimToady the problem appears to be attidude more than velocity
masak .oO( think positive thoughts! ) :P
TimToady unless it fell over from knocking one of the legs off
nwc10 there's an explanation here twitter.com/elonmusk/with_replies
jercos So... is there anything practical to do with lists constructed from pairs, like [=>] 1, 2, 3, 4? Sorta vaugely resembles lispy cons lists, but doesn't seem too useful given the higher level datastuctures available. 18:29
nwc10 with the lovely final (so far) comment "At least it shd explode for a diff reason."
TimToady they said it wouldn't be a slamdunk, but it might be a slam or a dunk; looks like the slam won... :)
nwc10 TimToady: explanation in twitter suggests your observations are spot on, and explain why
TimToady *attitude 18:30
is an 'attidude' like an 'attaboy'?
masak jercos: only "practical" uses of it I've seen are when the problem was specified such that cons lists were required. (on RC, for example) 18:31
18:32 FROGGS joined
TimToady masak: it's a useful data structure when you want to share tails of lists 18:33
masak troo
TimToady and trim the fronts visibly to the GC
masak read that as "and trim the fronds" 18:34
TimToady you have a fern grasp of the facts
jercos with fronds like these, who needs anemones? 18:35
TimToady has only a spore grasp of the facts
masak I just need to read the sentence slower and more palmly
TimToady for that you need more date-time 18:36
18:36 sqirrel_ joined
raydiak m: my int $a = 1; say $a.WHAT; 18:42
yoleaux 10:33Z <lizmat_> raydiak: my $a = "foo"; $a.substr-rw(2,1) = "x"; say $a # -> fox
camelia rakudo-moar a3e5f2: OUTPUT«(Int)␤»
yoleaux 10:34Z <lizmat> raydiak: github.com/rakudo/rakudo/commit/6f79fcc296 implements it, tests welcome
raydiak oh brilliant, lizmat++ 18:43
m: my int $a = 1; say $a.WHAT; # anyway, what is going on here?
camelia rakudo-moar a3e5f2: OUTPUT«(Int)␤»
TimToady boxing 18:47
natives can only be storage types, not object types 18:48
at least until we get typed pointers of some sort
raydiak I see...thank you 18:50
TimToady but letting in pointers without the rest of C's ills is somewhat...fraught...
especially since JVM goes out of its way to make pointers very difficult
jnthn++ is working on native arrays with the 6pe branch, which should help with that sort of thing some 18:52
but Perl 6 is defined to keep temporary values in the widest types by default, so for any normal method call, the int has to be boxed into an Int 18:54
we may add pragmas that change the default at some point
keeping integer temps in an int64 is going to be indistinguishable for most practical purposes, which typically excludes math :) 18:56
defaulting to correct is important though 18:57
raydiak so using native types in pure P6 code isn't likely to gain you anything, then...not speed, memory savings...nothing? 18:58
TimToady native arrays are very compact
lizmat m: class A { multi method a(int $a) { say "int" }; multi method a(Int $a) { say "Int" } }; A.a(my int $ = 42); A.a(42) # native int multis work
camelia rakudo-moar a3e5f2: OUTPUT«int␤Int␤»
TimToady and certainly if the optimizer can determine that your temps won't exceed a certain value, they can substitute faster representations 18:59
s/they/it/
and the spesher can deal with that sort of thing dynamically to some extent 19:01
jnthn The actual rules at the moment de facto are that if you declared at least one of the things involved in a computation as a native int, then you'll get native int operations. 19:02
TimToady m: my int $x = 2 ** 60; say $x * $x 19:03
camelia rakudo-moar a3e5f2: OUTPUT«0␤»
TimToady I see
jnthn Which imo is fair game; you opted in. 19:04
literal op literal will never go for native int versions
otoh, it'll probably also have gotten constant folded by the time you're doing runtime. But still, it's the same interpreter on both sides of the fence... 19:05
TimToady m: my int $x = 2 ** 60; say $x * 2 ** 60
camelia rakudo-moar a3e5f2: OUTPUT«1329227995784915872903807060280344576␤»
TimToady in this case it looks like both args have to be int to get int semantics 19:06
jnthn Hm, odd
Oh
TimToady perhaps that a good thing? 19:07
jnthn I wonder if the 2 ** 60 gets constant folded to something that doesn't look like a normal literal
TimToady sez it's an Int
jnthn m: my int $x = 2 ** 60; say $x * 1329227995784915872903807060280344576
camelia rakudo-moar a3e5f2: OUTPUT«1532495540865888858358347027150309183618739122183602176␤»
jnthn oh, what on earth am I doing... :) 19:08
TimToady beats me
jnthn survived 3 days teaching with a cold, but probably ain't good for much tonight :)
It's almost gone, though, so I should be able to have a good run at the parametric stuffs at the weekend :) 19:09
TimToady prefers his parameters without goobers all over them... 19:10
adu TimToady: I suppose 19:11
b2gills I think I would settle for parametric types with "goobers" on them, than no parametric types at all. 19:12
adu just saw the "timebase independent of leap seconds" comment
TimToady hmm, maybe that slang term for snot is more of a regionalism than I thot 19:13
jnthn We call 'em bogies where I'm from :P
TimToady thinks the 'goober' slang is probably a metathesis of 'boogers' 19:14
which is obviously related etymologically to 'bogies' 19:15
jercos so *that's* what a bat bogey hex does.
jnthn
.oO( They asked me to defend my thesis, so I wrote them a metathesis... )
jercos defend your thesis, take up a sword! 19:16
TimToady syncpe, apocop, methatesis...
garden pathological 19:17
jdv79 isn't goobers a candy?
raydiak yum
jnthn If you're desparate enough, I guess... :P
TimToady probably, it's also peanuts in the south
jdv79 that might be a regional and/or generational slang
TimToady the original is apparently a rube or hick sort of person 19:18
oh, and our favorite: vowul harmonu 19:19
we used to collect linguistic terms that were examples of themselves :) 19:20
jnthn :D
TimToady epinethesis 19:21
er, epenethesis
jnthn *groan*
arnsholt Vowul harmonu is pretty nice! 19:22
I like epenenthesis too =D
lizmat m: sub a(\b) { b(42) }; say a(*-1) # would expect to see 41 there
camelia rakudo-moar a3e5f2: OUTPUT«===SORRY!=== Error while compiling /tmp/dOJoqUuttE␤Variable '&b' is not declared␤at /tmp/dOJoqUuttE:1␤------> sub a(\b) { ⏏b(42) }; say a(*-1) # would expect to ␤»
lizmat jnthn: is that a bug or something that we just cannot expect to work ? 19:23
TimToady garden pathological is the one I made up after grad school, and wish we could've thunk of it in time to impress our profs
jnthn lizmat: Your expectations are off.
m: sub a(&b) { b(42) }; say a(*-1)
camelia rakudo-moar a3e5f2: OUTPUT«41␤»
jnthn That's how to write it. 19:24
lizmat ok, and if b could be something else, we need to write $b
TimToady m: sub a(\b) { b.(42) }; say a(*-1)
camelia rakudo-moar a3e5f2: OUTPUT«41␤»
TimToady or that way
but b is defined as a term
lizmat that's probably sub-optimal from a performance point of view
TimToady so it will never expect arguments
it's like saying pi() 19:25
dalek ast: 6740efe | raydiak++ | S32-str/substr-rw.t:
Add a test for method form of substr-rw
jnthn b.(42) should compile into something sensible
lizmat ok, I'll go with that then
TimToady m: sub a(\b) { (b)(42) }; say a(*-1)
camelia rakudo-moar a3e5f2: OUTPUT«41␤»
TimToady m: sub a(\b) { b\(42) }; say a(*-1) 19:26
camelia rakudo-moar a3e5f2: OUTPUT«41␤»
TimToady that almost works visually :)
or should I say :\
m: sub a(\b) {\ b\(42)\ }; say a(*-1); # if you can't convince 'em, confuse 'em 19:27
camelia rakudo-moar a3e5f2: OUTPUT«41␤»
TimToady m: sub a(\b) { b andthen .(42) }; say a(*-1) 19:28
camelia rakudo-moar a3e5f2: OUTPUT«Nil␤»
TimToady aww
m: sub a(\b) { .(42) given b }; say a(*-1)
camelia rakudo-moar a3e5f2: OUTPUT«41␤»
19:29 Sqirrel joined
TimToady m: sub a(\b) { b andthen 41 }; say a(*-1) 19:30
camelia rakudo-moar a3e5f2: OUTPUT«41␤»
TimToady so it's not topicalizing correclty
I guess that was a tpyo 19:33
19:34 kaare__ joined 19:38 rindolf left
jnthn Hm, yeah. Though I can never quite remember the spec of andthen... :) 19:38
jnthn back in 20 or so
19:40 kaare__ left, kaare__ joined 19:42 Guest38736 left 19:43 Khisanth joined, robinsmidsrod left 19:44 robinsmidsrod joined
japhb goobers are peanuts, in my mind 19:45
Heh
Backscrolled, didn't realize it. :-)
19:47 robinsmidsrod left 19:50 robinsmidsrod joined
lizmat hmmm... interesting state of affairs: 19:51
nice patch to make substr() a lot faster 19:52
it fails *every* spec test when run under make
it runs all of them fine with perl6
19:53 robinsmidsrod left 19:54 robinsmidsrod joined 19:56 robinsmidsrod left 19:58 kaare__ left, kaare__ joined, robinsmidsrod joined 19:59 robinsmidsrod left, robinsmidsrod joined
lizmat it appears PERL6LIB setting is the difference 20:08
20:09 sqirrel_ left
ugexe if i create a CompUnit with a module that already has a precompiled version, and then delete that precompiled version, am i supposed to create a new CompUnit or somehow tell the CompUnit that it no longer $has-precomp? 20:11
im creating a CompUnit, then checking for precomp-path.e and deleting if true. then calling .precomp but get cannot pre-compile an already pre-compiled file 20:12
lizmat A CompUnit for a given source path is a sentinel for the process
ugexe: in that case, there is a bug
you can also specify the :force flag with .precomp
ugexe force doesnt affect that specific die statement 20:13
lizmat on another note: vine.co/v/OjqeYWWpVWK # close but no cigar
20:13 darutoko left
lizmat ugexe: oops, wrong order in checks 20:14
ugexe die <message> if $.has-precomp;
github.com/rakudo/rakudo/blob/0154...#L113-L114 20:15
lizmat ugexe: yeah, looking at it now 20:16
testing a fix 20:17
ugexe cool
20:21 araujo left
dalek kudo/nom: 2cd9645 | lizmat++ | src/core/CompUnit.pm:
Make CompUnit.precomp(:force) work, ugexe++
20:23
jnthn back 20:24
20:24 araujo joined
ugexe lizmat: just so i understand correct... if i create a CompUnit that already has a precomp, then delete the precompiled file, its correct for $comp-unit.has-precomp to return true? 20:38
lizmat well, fwiw, I'd like to think that the location of the precomped file is not important
so, if you want to create a new one regardless of existing, use :force 20:39
ugexe right, but the existence of the file is
lizmat if you remove the file underneath the object, you will get failure later 20:40
I'm just trying to reduce the number of stat calls
I mean, during the lifetime of a CompUnit object, you'd expect it to be the same all the time
creating a new precomp would be ok, I guess, but not much more 20:41
ugexe so i should treat .has-precomp's value as what it was during .new, not during the time it was called? 20:42
i understand how to work around it and what you are saying
lizmat yeah, that's the idea 20:43
ugexe ok. thanks for fixing it lizmat++
lizmat yw
jnthn: will ~ box unboxed strings ? 20:47
20:47 skids left
moritz m: say .signature.perl for &prefix:<~>.candidates 20:50
camelia rakudo-moar a3e5f2: OUTPUT«:(Any \a)␤:(Str:D \a --> Str)␤:(str $a --> str)␤»
lizmat I guess that would be a yes then
?
moritz no
str $a --> $str
the last one looks suspiciously like a no-op to me
lizmat m: say .signature.perl for &infix:<~>.candidates 20:51
camelia rakudo-moar a3e5f2: OUTPUT«:(Any $x = { ... })␤:(Any \a, Any \b)␤:(Blob:D $a, Blob:D $b)␤:(Str:D \a, Str:D \b --> Str)␤:(str $a, str $b --> str)␤»
lizmat that would be a yes then :-)
sorry for not being clear I meant infix ~
20:56 Rounin left
moritz except infix ~ on two str 20:57
which doesn't box 20:58
jnthn What moritz said. :) 21:00
moritz++, I mean :) 21:01
dalek c: 280c3c4 | moritz++ | lib/Type/Metamodel/AttributeContainer.pod:
document set_rw
21:08
21:09 leont joined
dalek c: 77cac07 | moritz++ | lib/Type/Metamodel/AttributeContainer.pod:
Metamodel::AttributeContainer: document rw
21:10
21:11 denis_boyun_ joined
moritz wonders if those docs are actually of use to anybody 21:11
21:11 skids joined
masak that one in particular, or all of the doc effort? 21:11
moritz masak: the metamodel docs 21:12
masak ah.
21:12 adu left
masak it's hard for me to gauge. I think what I'd most expect to find as a newcomer, is a document giving an overview of *all* of the MOP. 21:12
there could well be individual articles with stuff too, but the overview would be the valuable/central one. 21:13
kind of a `perldoc perlmop` thing, if you see what I mean.
21:17 anaeem1 left, anaeem1 joined
jnthn I can imagine various module authors wanting to do MOP stuff. 21:21
21:22 anaeem1 left 21:26 xfix left 21:28 bcode left
psch fwiw, i hope MOP docs will help me with a fully functional JavaHOW 21:28
21:28 bcode joined 21:34 denis_boyun_ left, rurban joined
dalek kudo/nom: 1b417d8 | lizmat++ | src/core/ (2 files):
Streamline substr()/.substr substr-rw/.substr-rw

  - substr() is about 15% faster
  - .substr() is about 7% *SLOWER*
  - substr-rw is almost 4x as fast
  - .substr-rw is just over 3x as fast
21:38
21:39 jack_rabbit joined 21:42 virtualsue left 21:44 telex left 21:46 telex joined 21:47 anaeem1 joined, virtualsue joined 21:49 sivoais joined 21:58 skids left
psch gist.github.com/peschwa/45ff88238adc74aa2405 <- fixed this just now \o/ 22:01
jnthn psch++ 22:04
FROGGS dang, how I love documentation.... >.< 22:05
xmlXPathObjectPtrxmlXPathNewString(const xmlChar * val)
Create a new xmlXPathObjectPtr of type string and of value @val
val:the xmlChar * value
Returns:the newly created object.
? 22:06
22:06 Mso150_y left
jnthn "the newly created object" :D 22:06
So insight!
psch ah yes, the "reorder the objects in the description" documentation method, often seen in javadoc as well
FROGGS absolutely...
I'd like to know what I'd use it for 22:07
dalek ast: 47d0d01 | lizmat++ | S32-str/substr.t:
Fudge dubious test
22:08
raydiak can anyone suggest something faster than but equally portable to "my &clear = $*DISTRO.is-win ?? {shell 'cls'} !! {run 'clear'};" ? 22:09
22:11 rurban left
lizmat not me :-( 22:14
psch .oO( readline bindings..? ) 22:15
oh hm. during debugging i merged my JavaHOW work that implements .^methods and .^add_method, but now the PR wouldn't be minimally scoped anymore 22:17
that's what cherry-picking is for i think?
jnthn The depressing Windows answer... support.microsoft.com/kb/99261
dalek kudo/nom: 46e92b2 | lizmat++ | src/core/ (17 files):
Favour substr(foo,...) over foo.substr(...)

as substr() is 13% faster than .substr()
22:18
lizmat
.oO( shell 'cls' it is then )
22:19
psch oh, now, cherry-picking is for repacking changes into different commits apparently 22:20
*no
raydiak thanks jnthn++, won't be wasting any more time on that for now :) 22:21
22:24 eiro left
dalek Heuristic branch merge: pushed 22 commits to rakudo/newio by lizmat 22:24
22:25 eiro joined 22:30 ajr joined, sivoais left, ajr is now known as Guest55315, Guest55315 is now known as ajr_
lizmat good night, #perl6! 22:34
raydiak sleep well lizmat 22:35
psch jnthn: is it sensible/feasible to bring this into the JavaHOW? gist.github.com/peschwa/0f8830ba3c6a2eb852ba 22:41
jnthn: that is, for every method pair of the form set_$ident generate a method named just $ident that wraps the previous two in a Proxy
*set_$ident and get_$ident 22:42
jnthn psch: For public fields? 22:44
psch jnthn: right. my qualms about this is more about the perl6 side though 22:45
jnthn But yeah, that'd seem helpful...I just wonder if there's cases where it collides with a method name. But that'd be odd I guess.
psch jnthn: as in, i have no clue how to Proxy.new in JavaHOW.nqp 22:46
jnthn Ah
Yeah...hmm. "With difficulty."
psch afaict we don't have $*W in Metamodel/, so i can't find_symbol 22:47
jnthn I wonder if we could write JavaHOW in Perl 6
And include it in the CORE.setting instead somehow.
Then we would have easy access :) 22:48
psch i suppose i could call a method on the JavaHOW from the vm in RakudoJavaInterop too, but i don't know if that's actually easier... 22:49
as for having the JavaHOW in Perl 6, i'm not sure where i'd start :) 22:50
22:51 araujo left
timotimo m: if 1 ~~ True { } 22:51
camelia rakudo-moar 1b417d: OUTPUT«Potential difficulties:␤ Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead␤ at /tmp/G_NH7xOKPE:1␤ ------> if 1 ~~⏏ True { }␤»
22:51 sivoais joined
timotimo m: enum Frob <Hello Goodbye>; if 1 ~~ Hello { } 22:51
camelia ( no output )
psch as for collisions, my idea was to warn and drop the field, seeing as we still get set_$ident and get_$ident as fallback
timotimo hum.
psch but reaching the method isn't as easy when the shortname gets dropped
22:52 reshtnk71 left
timotimo oh 22:52
m: enum Frob <Hello Goodbye>; if 1 ~~ Helloo { }
camelia rakudo-moar 1b417d: OUTPUT«===SORRY!===␤Function Helloo needs parens to avoid gobbling block␤at /tmp/hiMtyy9z5f:1␤------> Frob <Hello Goodbye>; if 1 ~~ Helloo { }⏏<EOL>␤Missing block (apparently taken by 'Helloo')␤at /tmp/hiMtyy9z5f:1…»
psch and telling users "if you have a field and overloaded methods of the same name you have to call the method with 'method/mmd+$methName/([Ljava/lang/Object;)java/lang/Object' instead" feels kind of unreasonable 22:53
22:53 araujo joined
psch because that's (at least close to) the descriptor for the generated dispatch method 22:54
i'm not 100% sure on the return type, might be SixModelObject :)
22:56 eiro left 22:58 eiro joined 23:06 adu joined
adu hey 23:08
why does this not work? pastie.org/9836063
I get the error "Variable '$op' is not declared"
timotimo i think you want to put a : before "our" 23:09
um
actually
you're putting perl6 code directly into a rule
that is parsed as regex syntax
that's kinda weird
psch that's a weird mixture of action method and rule
timotimo++ for the details 23:10
adu o crap, s/rule/method/ works
timotimo :)
adu sorry guys
my bad 23:11
timotimo :)
adu another thing 23:14
CAST::TransUnit or 23:15
C::AST::TransUnit ?
psch adu: isn't that between C::Parser::CAST::TransUnit and C::Parser::C::AST::TransUnit?
adu psch: github.com/andydude/p6-c-parser/bl...C/AST3.pm6 23:16
psch: I'm thinking of just removing the 3, and merging that into the master branch 23:17
I think the ${SingleChar}AST system works for 2 or 3 systems, but it's not extensible to every language and/or Slang that will be written 23:18
so I think C::AST is better
psch adu: right. having CAST in the root namespace seems pollute-y to me
there's an argument to be made for having Language::C::* instead, but i'm not gonna make. i think it's probably mostly traditional 23:19
adu psch: right, but using C::AST in a package called "C::Parser" is also a little poluty
Language::C is how Haskell does it 23:20
but I don't know anything about Perl5 convention, I'm just guessing, basically
psch adu: but people could only use C::AST if they don't need the Parser, couldn't they? which imho justifies having it next to Parser instead of below
s/only use/use only/ 23:21
23:21 treehug88 left
adu I'm a convert from Java ANTLR to Perl6, so all that "oh it's just like Perl5" means nothing to me 23:21
psch: should I put C::AST into a different github repo? 23:22
dalek p: 0556d2e | donaldh++ | src/HLL/Compiler.nqp:
Fixed thinkos in HLL::Compiler.removestage
adu psch: or should I just declare it in the META.info thing?
psch adu: i think the latter, iirc provides allows this kinda of thing
adu ok :) thanks for the help 23:23
psch i.e. "the 'provides' field allow one repo to supply multiple packages"
adu: in the end this is just what i think, and i'm far from a champion for our cpan-ish thingy 23:24
adu cpanish, that's a new one
I think "C::AST" and "C::Parser" is a good example of that 23:25
23:36 anaeem1 left 23:37 anaeem1 joined 23:38 skids joined 23:40 prime- left 23:42 anaeem1 left 23:45 prime joined