»ö« 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 sorear on 25 June 2013.
00:01 clkaoud_ joined, xfix_ joined, isacloud_____ joined
grondilu I won't put it in the ecosystem because it is awefully slow right now, but here is what I've been trying to do today: github.com/grondilu/clifford (geometric algebra in Perl 6) 00:01
00:02 Rounin_ joined, haroldwu_ joined, moritz_ joined, japhb_ joined, nwc10_ joined, hoelzro_ joined, rhr joined, sjn_ joined, ashleydev joined 00:03 BinGOs_ joined, mst_ joined, integral joined, integral left, integral joined, sivoais_ joined 00:05 djanatyn1 joined, BinGOs left 00:06 nbrown__ joined, BinGOs_ is now known as BinGOs, BinGOs left, BinGOs joined 00:07 geekosaur left, sjn left, integral_ left, hoelzro left, djanatyn left, moritz left, mst left, xfix left, sivoais left, Rounin left, bjz left, japhb left, ashleyde1 left 00:08 bjz joined 00:09 geekosaur joined, Alina-malina left, isacloud____ left, isacloud_____ is now known as isacloud____, Alina-malina joined, clkaoud_ is now known as clkaoud 00:10 raiph joined, nbrown__ left 00:11 nwc10 left, rhr_ left, nebuchadnezzar left 00:17 nbrown__ joined 00:18 grondilu left 00:19 djanatyn1 is now known as djanatyn 00:23 Mouq left, nbrown__ left 00:30 nbrown__ joined 00:34 nbrown__ left 00:35 araujo left 00:36 nbrown__ joined 00:38 araujo joined 00:40 nbrown__ left 00:42 nbrown__ joined 00:45 avuserow joined 00:46 nbrown__ left 00:53 galledallegator joined 00:56 nbrown__ joined 00:57 ivan`` left 01:03 nbrown__ left 01:06 FROGGS_ joined 01:07 JL235 left 01:08 Sqirrel left, ivan`` joined 01:09 FROGGS left 01:17 ivan`` left 01:19 rindolf joined, araujo left 01:21 araujo joined 01:23 ivan`` joined, nbrown__ joined
colomon hmmm, no, openssl does have a Build.pm 01:23
01:24 raiph left 01:27 nbrown__ left 01:29 dayangkun joined, dayangkun is now known as dayangkun_pto 01:30 PZt joined 01:42 Sqirrel joined
colomon Ah, I think the problem is that changing %*ENV<PERL6LIB> doesn't change @*INC in the currently running process. 01:46
got it! 01:53
02:03 immortal left, erkan joined, erkan left, erkan joined
colomon now just need to figure out how to clean up an older git commit so I can push my fix to emmentaler. 02:08
TimToady m: my $p1 = (my $x = 42,1); my $p2 = (my $y = 42,1); say $p1 === $p2; say VAR($x).WHICH; say VAR($y).WHICH 02:09
camelia rakudo-moar ebccb2: OUTPUT«True␤Int|47556464␤Int|47556464␤»
TimToady this is incorrect, since $x and $y are supposed to be different variables
why VAR is not giving different WHICHes is perhaps the root of the problem; these are different objects 02:10
lizmat: ^^
in any case, the expression should be False, not true, since the identity of a container is its "location" 02:11
m: my $x = 42; my $y = 43; say VAR($x).WHICH; say VAR($y).WHICH 02:12
camelia rakudo-moar ebccb2: OUTPUT«Int|55125480␤Int|55125560␤»
TimToady m: my $x = 42; my $y = 42; say VAR($x).WHICH; say VAR($y).WHICH 02:13
camelia rakudo-moar ebccb2: OUTPUT«Int|60179944␤Int|60179944␤»
TimToady yes, that's bogus
02:16 chenryn joined 02:24 aborazmeh joined
TimToady m: my $p1 := (my $x = 42,1); my $p2 := (my $y = 42,1); say $p1 === $p2; 02:26
camelia rakudo-moar ebccb2: OUTPUT«True␤»
TimToady m: my $p1 := (my $x = 42,1); my $p2 := (my $y = 42,1); say $p1 === $p2; say $p1.WHICH; say $p2.WHICH 02:27
camelia rakudo-moar ebccb2: OUTPUT«True␤Parcel|(47195968)(Int|1)␤Parcel|(47195968)(Int|1)␤»
TimToady the problem seems to be tha that variables are dereffing on WHICH when they shouldn't 02:28
so it's ending up with the location of 42, or some such
rather than the location of the variable 02:29
02:32 noganex_ joined
TimToady m: my $x; say VAR($x).WHICH 02:35
camelia rakudo-moar ebccb2: OUTPUT«Any|17527800␤»
02:35 noganex left
TimToady the type of the variable should be Scalar 02:35
m: my $x; say VAR($x).WHAT
camelia rakudo-moar ebccb2: OUTPUT«(Scalar)␤»
TimToady WHAT has it right, it's WHICH that is dereffing wrongly 02:36
02:43 xenoterracide joined
dalek mentaler: 4fe033f | (Solomon Foster)++ | smoker:
Make exception handling more robust.
mentaler: a5eb593 | (Solomon Foster)++ | smoker:
Custom Build.pm modules need path.
03:04 pyrimidine joined
pyrimidine any reason that unbase only takes a Str? Seems odd 03:05
m: :4(0123)
camelia rakudo-moar ebccb2: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o123 if you mean that␤ at /tmp/0pZ67KXJXx:1␤ ------> :4(0123⏏)␤Type check failed in binding $str; expected 'Str' but got 'Int'␤ in su…»
pyrimidine m: :4(‘0123’)
camelia rakudo-moar ebccb2: OUTPUT«===SORRY!=== Error while compiling /tmp/YXrCp1RM1y␤Bogus statement␤at /tmp/YXrCp1RM1y:1␤------> :4(⏏‘0123’)␤ expecting any of:␤ lol composer␤ prefix or term␤ prefix or meta-pr…»
TimToady because :4(123) makes no sense 03:06
and you've got smartquotes on
pyrimidine ah
TimToady it's not so apparent there, but what about :16(deadbeef)? 03:07
pyrimidine where is unbase specced? 03:09
TimToady S02:3375 03:10
synopsebot Link: perlcabal.org/syn/S02.html#line_3375
pyrimidine I think I need to re-read that spec :) 03:17
03:19 raiph joined
TimToady I think I need to rewrite it :) 03:21
ingy TimToady: Perl? 03:23
ingy hasn't read the scrollback :) 03:24
"I think I need to rewrite it :)" — Larry Wall
TimToady '"I think I need to rewrite it :)" — Larry Wall' -- Ingy Döt Net 03:25
ingy "I think I need to make a language that can rewrite it!" — Ingy döt Net
TimToady s/D/d/ 03:26
ingy don't shout that 'd' man...
TimToady I unshouted it first
ingy JYNX
ingy is camping out at a Perl monger's house in SLC this week. I guess I wouldn't be here sans TimToady. :) 03:28
TimToady trying to get a jump on YAPC::NA 2015? 03:29
ingy aye!
TimToady yer a little early for the hackathon...
ingy well Perl 7 might take that long ;)
.oO(There is no Perl 7, and Ingy is not its prophet.)
.oO(A prophet is not without honor except in his HOME directory.)
03:47 BenGoldberg left 04:01 kaare_ joined 04:11 pyrimidine left 04:14 Salai left, akaseki joined 04:16 sivoais_ is now known as sivoais, sivoais left, sivoais joined 04:18 Salai joined 04:19 akaseki left 04:20 akaseki joined 04:23 Salai left, JL235 joined 04:25 Salai joined 04:26 akaseki left 04:29 cooper joined, cooper left, cooper joined 04:30 Salai left 04:33 jack_rabbit left, akaseki joined 04:34 akaseki is now known as Salai 04:39 Salai left 04:41 akaseki joined, akaseki is now known as Salai 04:48 kaare_ left 04:56 chenryn left 04:57 mr-foobar left 05:01 [Sno] left 05:10 chenryn joined 05:12 dwarring left, araujo left 05:13 raiph left 05:17 Salai is now known as HatakeKakashi 05:18 kaare_ joined 05:22 SamuraiJack joined 05:24 dayangkun_pto left 05:27 HatakeKakashi is now known as Salai, ecocode left, ecocode joined 05:31 ecocode left 05:36 kaleem joined 05:40 Zhi joined 05:45 Akagi201 joined 06:01 ecocode joined 06:02 mj41_nb joined 06:06 gfldex joined 06:16 denis_boyun joined 06:19 chenryn left 06:20 sjn_ is now known as sjn
cognome r: ' { a b c } } ' ~~ m/ $<block> = [ '{' ~ '}' [ .+? <before '}'> ] ] /; say $<block>; 06:22
camelia rakudo-jvm ebccb2: OUTPUT«(timeout)» 06:23
..rakudo-{parrot,moar} ebccb2: OUTPUT«「{ a b c }」␤␤»
cognome I thought the <before '}'> would be implicit with the '{' ~ '}'
06:23 aborazmeh left
cognome r: ' { a b c } } ' ~~ m/ $<block> = '{' ~ '}' [ .+? <before '}'> ] /; say $<block>; 06:24
camelia rakudo-{parrot,jvm,moar} ebccb2: OUTPUT«「{」␤␤»
cognome Also I thought the capture would include the whole span
r: ' { a b c } } ' ~~ m/ $<block> = [ '{' ] ~ '}' [ .+? <before '}'> ] /; say $<block>; 06:25
camelia rakudo-{parrot,jvm,moar} ebccb2: OUTPUT«「{」␤␤»
sergot hi o/
cognome And if I has wanted the opening construct, I would have explicetely grouped it.
TimToady = only works on atoms, and ~ does not create an atom 06:26
cognome I think one can go either way for both but that should be said
Well '{' ~ '}' ... creates something pretty tight, I could have construed that as an atom :) 06:28
06:28 chenryn joined
cognome People are usually interested on the whole thing, not the opening construct :) 06:29
TimToady it expresses the relationship of 3 atoms, and it's not really a pattern matcher but shorthand for an error check
the purpose of it is to panic if you don't end up at }
you can't simultaneously do that and also have it participate in backtracking 06:30
cognome Well, I find it so convenient that I wanted to do more than it does :)
TimToady well, but we can't define it to do contradictory things, alas :)
cognome Anyway, the "work around" were easy enough. 06:31
TimToady++ for the feedback 06:35
06:37 darutoko joined 06:38 [Sno] joined 06:40 chenryn left 06:43 xenoterracide left, dayangkun joined 06:48 mr-foobar joined 06:49 gfldex left, chenryn joined, nebuchad` is now known as nebuchadnezzar 06:51 mj41_nb left 06:58 zakharyas joined 07:10 jerrycheung left
danaj In rakudo from github, if I modify a file in nqp/MoarVM/src/..., what is the best way to get it incorporated into perl6-m at the top level? Even if I do make in nqp/MoarVM and nqp, I can't seem to get perl6 to include it. 07:11
TimToady you have to do make install in MoarVM 07:12
and in nqp if you changed anything there
danaj tyvm, that's what I was missing.
07:14 nwc10_ is now known as nwc10 07:20 domidumont joined
moritz_ \o 07:22
07:25 fhelmberger joined 07:34 Rounin_ is now known as Rounin, FROGGS_ is now known as FROGGS
FROGGS o/ 07:34
dalek line-Perl5: 6bc9619 | nine++ | README.md:
Fix typo in README.md

07:35 bjz left 07:36 bjz joined 08:00 xinming joined
nine FROGGS: I just realized that v5 might become the basis of a P5->P6 translator... 08:10
FROGGS nine: when we can generate P6 code from AST, perhaps yes 08:11
nwc10 I'm not sure how useful a translator is, in the general case. Even if it gets to 100% of the syntax (which it can't) it won't cover semantics of the Perl 5 runtime that poke through 08:13
Python's 2to3 didn't exactly help set the world on fire.
so I don't think it's useful as a primary goal.
other people's opinions may vary, and please don't let me stop anyone having fun trying things. 08:14
nine nwc10: not as a primary goal, no. 2to3 failed because one would have to use it on the entire code base including all used libraries to make the transition.
But being able to migrate an application one piece at a time and being able to start with an automatic direct translation might help a lot. 08:15
nwc10 might. I'm still of the opinion that rewriting of working code from Perl 5 to Perl 6 is unlikely. 08:16
it's subsystem rewrites that we need to "capture"
which is why Inline::Perl5 is awesome
but, I repeat, these are my opinions. 08:17
nine Nobody's gonna rewrite working code just for the sake of it. Especially when with v5 we'll be able to execute P5 code faster. But if I have to do substantial changes to existing code anyway, I'll want to port it to Perl 6 first to be able to use the new features. That's when a translator might come in handy. 08:19
Even if it doesn't produce 100 % working code.
08:19 telex left 08:20 telex joined, dakkar joined
nine That's how we got rid of 1000s of lines of Python code anyway. There's still ~ 5000 LOC left, but it used to be twice that. 08:20
08:33 kjs_ joined, rindolf left 08:48 domidumont left 08:49 brrt joined, domidumont joined 08:50 mr-foobar left 08:51 mr-foobar joined 08:54 kjs_ left 08:56 jerrycheung joined 08:57 ecocode left 08:59 jerrycheung left 09:03 kjs_ joined 09:05 brrt left
dalek kudo/nom: fc79953 | (Elizabeth Mattijsen)++ | src/core/Scalar.pm:
09:22 moritz_ is now known as moritz, xinming left
dalek kudo/nom: 329adf8 | (Elizabeth Mattijsen)++ | src/core/Scalar.pm:
Properly fix $.VAR.WHICH
kudo/nom: 4a6dbf5 | (Elizabeth Mattijsen)++ | src/core/Parcel.pm:
Fix Parcel.WHICH, as reported by TimToady++
09:36 Shozan is now known as SHODAN 09:37 daxim joined 09:39 Sqirrel left
dalek ast: 993eb27 | (Elizabeth Mattijsen)++ | integration/advent2013-day07.t:
Fix <a b c> === <a b c> test, with explanation
09:42 donaldh joined
dalek ast: 33818a0 | (Elizabeth Mattijsen)++ | integration/advent2013-day07.t:
Add some descriptions
09:45 spider-mario joined 09:46 domidumont left 09:48 domidumont joined
dalek ast: 5dfd323 | (Elizabeth Mattijsen)++ | S02-literals/quoting.t:
Unfudge now passing test
09:52 xfix_ is now known as xfix, mr-foobar left, xfix left, xfix joined 09:53 mr-foobar joined
moritz m: say <a b c>.WHICH 09:54
camelia rakudo-moar ebccb2: OUTPUT«Parcel|(Str|a)(Str|b)(Str|c)␤»
moritz m: say ('a', 'b)(Str|c)').WHICH 09:55
camelia rakudo-moar ebccb2: OUTPUT«Parcel|(Str|a)(Str|b)(Str|c))␤»
moritz m: say ('a', 'b)(Str|c') === <a b c>
camelia rakudo-moar ebccb2: OUTPUT«True␤»
moritz bug (but not new)
09:56 domidumont left 09:57 domidumont joined 10:00 zoosha joined
dalek osystem: 701b9d8 | (Filip Sergot)++ | META.list:
a newline removed
sergot "Sprockets" doesn't work on modules.perl6.org 10:04
I mean, it is printed wrongly 10:05
dalek ast: 83761ab | (Elizabeth Mattijsen)++ | S02-types/parcel.t:
Add some Parcel === tests
10:21 Zhi left
lizmat moritz: aware of that problem 10:23
but I don't see a solution apart from creating a WHICH object to be used everywhere
that has === overloaded as eqv
10:23 pmurias joined
lizmat any string representation has the potential of false positives 10:24
pmurias re perl5 -> perl6 translator, wouldn't translating test suits when porting modules be really usefull?
lizmat afk for most of the rest of the day& 10:25
10:27 mst_ is now known as mst, mst left, mst joined
FROGGS pmurias: probably, yes 10:27
10:32 cosimo left 10:33 cosimo joined 10:43 chenryn left 10:50 chenryn joined
donaldh porting test suites is probably more useful than the actual module. 10:51
dalek kudo/nom: ed10d58 | (Elizabeth Mattijsen)++ | src/core/Scalar.pm:
Fix Scalar.WHICH for type values
donaldh I'd want to refactor a module to make it idiomatic Perl 6 but i'd probably not care about the tests so much. 10:52
lizmat donaldh: those two statement seem contradictory 10:57
donaldh oh
.oO( seems we had a change of plan, I won't be afk for most of the day)
donaldh I don't care about the tests being good idiomatic Perl6. I care about the tests testing my module.
Does that make more sense?
lizmat ah, yes, much more 10:59
donaldh It's how we try to work in $dayjob. If we're planning a refactor or rewrite, for whatever reason, try really hard to automatically salvage the tests.
minimize test re-spend. minimized repeated mistake making. 11:00
nwc10 how does running the spectest differ from running a test individually? In that t/spec/S32-array/delete-adverb-native.t fails for me in the spectest (and I can get a coredump) but not if I run it by hand 11:02
coredump is in malloc (I suspect malloc corruption) called from
#3 0x00003fffab6a5e78 in MVM_string_utf8_decode (tc=0x1002a9b0690, result_type=0x1002a9bd590, utf8=0x3fffcf13f841 "LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01"..., bytes=1314) at src/strings/utf8.c:198
however running under valgrind spots no problem 11:03
11:13 chenryn left 11:20 chenryn joined
colomon does a happy dance because OpenSSL (and at least five other modules that had been failing) passed overnight in the smoke test. 11:29
dalek kudo/nom: 5a21173 | (Elizabeth Mattijsen)++ | src/core/ (5 files):
Fix many .WHICH related issues:

  - some cases typeobject.WHICH would fail
  - other cases WHICH method could be simplified
11:36 JL235 left
lizmat m: EVAL "Int".WHAT.say # there must be a better way to change a string into a typeobject 11:43
camelia rakudo-moar ed10d5: OUTPUT«(Str)␤»
lizmat m: (EVAL "Int").WHAT.say 11:44
camelia rakudo-moar ed10d5: OUTPUT«(Int)␤»
lizmat (not better but corrector :-) 11:45
moritz m: say ::('Int').perl 11:46
camelia rakudo-moar ed10d5: OUTPUT«Int␤»
moritz lizmat: ^^
lizmat moritz++ 11:47
11:57 mr-foobar left 11:58 mr-foobar joined 11:59 araujo joined, araujo left, araujo joined 12:00 chenryn left 12:02 chenryn joined
sergot m: grammar H { token TOP { <a>* }; token a { <a>* }}; say H.new.parse(''); 12:03
camelia rakudo-moar ed10d5: OUTPUT«(timeout)» 12:04
sergot m: grammar H { token TOP { <a>* }; token a { <a>* }};
camelia ( no output )
12:04 kaleem left
lizmat is there any reason why src/core/IO/Spec/QNX is not included in building the setting ? 12:08
seems like labster was the one working on that ~ 1 year ago 12:09
12:10 rindolf joined
dalek kudo/nom: abd4fed | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm:
Fix one more typeobject.WHICH error
12:13 chenryn left, raiph joined
lizmat adds IO/Spec/QNX: it's a subclass of IO::Spec::Unix, so hardly any extra code 12:15
hmmm... in parrot, it was already added 12:20
now added to JVM
but where is the list of modules for moar gone???
ah, moar_core_sources
moritz a necessary hack for working around the mac os X make bug 12:21
lizmat ah, ok, moritz++ :-) 12:22
FROGGS m: grammar H { token TOP { <a>+ }; token a { <a>* }}; say H.new.parse(''); # you shouldn't quantify nothing very often :o) 12:26
camelia rakudo-moar ed10d5: OUTPUT«(timeout)»
token a calls itself?! 12:27
dalek kudo/nom: dd4baad | (Elizabeth Mattijsen)++ | tools/build/ (2 files):
Add IO::Spec::QNX to JVM/MoarVM build

It was already on Parrot, for some reason
ast: e063ed7 | (Elizabeth Mattijsen)++ | S02-types/WHICH.t:
Add tests for typeobject.WHICH
lizmat FROGGS: seems like a reasonable assumption ? 12:29
moritz only if it consumes a non-empty string before doing so 12:32
13:03 slavik joined
sergot FROGGS: yeah, I was just curious what can happen then :) 13:05
it could be a secret sequence to launch something :) 13:06
carlin how often does the projects.json that panda downloads get updated? 13:08
13:09 kurahaupo left
FROGGS carlin: hourly AFAIK 13:09
13:09 slavik left
carlin It's missing projects that were added 18+ hours ago, something probably needs to be prodded somewhere 13:12
ohh the HTTP headers say Last-Modified: Wed, 27 Aug 2014 17:01:14 GMT 13:13
13:14 guru joined 13:15 guru is now known as Guest90094, Guest90094 is now known as ajr_
timotimo o/ 13:16
raiph carlin: iirc the cronjobs on several feather hosts were stopped around then 13:20
(because of hard drive failures) 13:21
13:25 aborazmeh joined
dalek kudo/nom: 7e61510 | (Elizabeth Mattijsen)++ | t/spectest.data:
Add type.WHICH tests to spectest
13:27 kaare_ left
jnthn evening, #perl6 13:34
13:34 jerrycheung joined 13:36 mr-foobar left
FROGGS hi jnthn 13:36
13:36 bjz_ joined
FROGGS jnthn: you are better today? 13:36
13:36 bjz left
jnthn FROGGS: Yes, in the relative rather than the absolute sense. 13:37
FROGGS jnthn: that's a start :o) 13:38
jnthn Anything anybody is blocking on that I might be able to address in the next 60-90 mins?
13:39 galledallegator left
FROGGS jnthn: review carlins PR? I don't know about anything else 13:39
nwc10 jnthn: PPC Linux works with SPESH disabled apart from 1 test that fails when run from make spectest, but not by hand 13:40
and I can't work out why
so, seems problem was mostly between keyboard and chair
seems that valgrind exists on PPC, but it's not telling me anything 13:41
raiph jnthn: nine said irclog.perlgeek.de/moarvm/2014-08-30#i_9270066 13:42
jnthn nwc10: Hm, so we know the PPC-argh is in spesh... 13:44
FROGGS: Which PR, in particular?
13:44 haroldwu_ is now known as haroldwu
nwc10 we know most of it is, and it seems to be mostly in the spectsts for trigonmetric functions 13:45
jnthn That sounds like someting I cna do...
13:45 haroldwu left, haroldwu joined
jnthn nwc10: How far do we get on PPC with spesh enabled? 13:45
raiph jnthn: Q from Mouq: irclog.perlgeek.de/perl6/2014-08-31#i_9276802
nine raiph: that one is already fixed :)
nwc10 jnthn: we have spectest failures. implication -> build builds, sanity tests pass, most spectests pass 13:46
jnthn raiph: Well, the answer to the nine question is "you leaked an exception from a C callback", usually... :)
nwc10: Ah, OK. Hmmm...that almost certainly means it's something to do with flaots...
raiph heh, you guys move way too fast
nwc10 jnthn: however, NQP nativecall test fails. I think it's confusion about 32 vs 64 bit. I've not dug into that one at all
nine that's exactly what I found out...and that getting refcounts in P5 XS code right is really hard.
nwc10 jnthn: might be. Seems to blow up with a NULL pointer in stringification. I'm not asking you to worry about this - I assume that I can figure it out 13:47
jnthn: actually, only question is "is there an easy way to disable spesh, "thing" by "thing", so that I can identify which one it is?"
13:48 FROGGS[mobile] joined
jnthn nwc10: Stringification? Hmm. Try disabling optimize_smart_coerce. 13:48
(You'll have to hack the code)
nwc10 I assumed that I was hacking the code.
jnthn (But should be just commenitn gout the call to it in optimize.c)
13:48 charsbar__ left, tadzik left, haroldwu is now known as suckwind 13:49 charsbar__ joined, tadzik joined, dirtyob joined 13:50 suckwind is now known as yenshine
nwc10 jnthn: anyway, it's in a lot better shape than I assumed 13:50
13:50 dirtyob left
nwc10 jnthn: and gives some hopes that we might be able to build on more debian platforms than the 2 usual suspects 13:50
jnthn .tell Mouq there are two operations you can do regarding the current routine's MVMCallCapture: usecapture and savecapture. The first populates a per-thread singleton and so is not reentrant. The latter saves a copy.
yoleaux jnthn: I'll pass your message to Mouq.
13:51 yenshine is now known as haroldwu
jnthn .tell Mouq both are worth avodiing on hot paths; savecapture has to allocate a GC-able, so it's the more expensive of the two. 13:51
yoleaux jnthn: I'll pass your message to Mouq.
jnthn raiph: Thanks for the pointers. :)
nwc10: Sounds good :) 13:52
13:52 mls_ is now known as mls
nwc10 jnthn: I'd like mberends to return so that I can pass on the good news. 13:55
13:56 aborazmeh left
jnthn nwc10: I'm not sure making folks magically appear on IRC is within my capabilities, sorry. :) 13:57
13:59 nbrown__ joined, pdcawley left 14:00 pdcawley joined
moritz nwc10: I'm pretty sure mberends has an email address that he still uses :-) 14:01
masak .oO( "this magical wand makes people appear on IRC. now, *this* one makes it so that they can't actually leave. use with caution." ) 14:04
timotimo that sounds like a pretty terrible fate 14:05
nwc10 jnthn: commenting that out changes the SEGV from a NULL pointer to a garbage pointer
jnthn: so it's part of the problem.
I can dig further at some point
timotimo that is optimize_smart_coerce? 14:06
nwc10 timotimo: yes. commenting that out changes the error
timotimo it may need to check for VMNull on top of a null pointer in the facts->type slot
i had to put that into optimize_can_op to make it robust enough to pass almost all spec tests 14:07
jnthn Not sure why thatd make us a PPC-specific issue though. 14:09
timotimo oh 14:10
i forgot about that part
nwc10 Big Endian 14:11
timotimo maybe it's a problem with the way i'm assigning operands?
they are unions; i'm just assigning them straight with =
i think that generates the proper code, but i can't know for sure ...
hm. i'm assigning to a .lit_i16; perhaps i'm not nulling out the value beforehand? 14:13
Timbus m: class A {}; my $test = (my $x = A.new(:a), A.new(:b), my $y = A.new(:c), A.new(:d)); say $test.perl
camelia rakudo-moar dd4baa: OUTPUT«$(A.new(), A.new(), $(A.new(), A.new()))␤»
timotimo nah, that comes from MVM_spesh_alloc, which nulls out everything properly
Timbus whys that parcelify the last two.. 14:14
timotimo it also parcelifys "all" of it 14:15
not sure if that's because of the my $x in there
jnthn I guess 'cus you end up with list assignment precedence there
(for the second assignment)
timotimo m: class A {}; my $test = (A.new(:a), A.new(:b), my $y = A.new(:c), A.new(:d)); say $test.perl 14:16
camelia rakudo-moar dd4baa: OUTPUT«$(A.new(), A.new(), $(A.new(), A.new()))␤»
timotimo ah, ok, the $ in front probably comes from assigning to $test
m: class A {}; my $test = (A.new(:a), my $x = A.new(:b), my $y = A.new(:c), A.new(:d)); say $test.perl
camelia rakudo-moar dd4baa: OUTPUT«$(A.new(), $(A.new(), $(A.new(), A.new())))␤»
timotimo m: class A {}; my $test = (A.new(:a), my $x = A.new(:b), my $y = A.new(:c), A.new(:d)); say $test.perl; say $x.perl
camelia rakudo-moar dd4baa: OUTPUT«$(A.new(), $(A.new(), $(A.new(), A.new())))␤$(A.new(), $(A.new(), A.new()))␤»
timotimo does this make it clearer?
(see also: why you have to write { my ($a, $b) } rather than { my $a, $b }) 14:17
Timbus yeah i guess. makes gtk::simple a little less.. cool
timotimo have i been doing that wrong in the example code?
Timbus no, it will work as long as you avoid making parcels
timotimo ah, you mean inside an argument list it'll work fine? 14:18
m: say(my $a = "hello", my $b = "world"); say $a.perl; say $b.perl; 14:19
camelia rakudo-moar dd4baa: OUTPUT«helloworld␤"hello"␤"world"␤»
timotimo apparently. phew :)
Timbus as long as you assign everything to a var, or only the first thing.. otherwise youll need to break out the ()'s 14:20
dalek p: 12ac42b | jonathan++ | src/QRegex/Cursor.nqp:
Avoid a bunch of str boxing in !cursor_pass.

When we have a conditional in non-void context, it needs to produce a single kind of result; since a method call cannot be known to unbox to a native string, then this caused us to perform a boxing operation. This gets rid of a boxing operation on every !cursor_pass.
timotimo neat!
jnthn profiler++ 14:25
lizmat NQP_REVISION bump? 14:26
jnthn Who says I'm done yet? :P
lizmat ah, ok
timotimo :D
colomon woah, that sounds like a handy optimization
lizmat awaits do for { start { @jnthn_fixes } } # to make things faster in wallclock
dalek p: b40622d | jonathan++ | src/QRegex/Cursor.nqp:
Save an integer boxing in every !reduce.

Similar trick to the previous commit; again, saves an allocation on every Cursor that passes.
moritz await Promise.allof(@jnthn_fixes)
jnthn Those two between them cut two GC runs off the benchmark nqp-m parse-json projects.json 10 14:31
timotimo that's amazing
moritz two out of how many?
jnthn moritz: From 31 down to 29
moritz so about 6%. Not bad. 14:32
m: say 29 / 31 * 100
camelia rakudo-moar dd4baa: OUTPUT«93.548387␤»
moritz m: say (31 - 29) / 31 * 100
camelia rakudo-moar dd4baa: OUTPUT«6.451613␤»
moritz it's a poor testament for my math skills that I don'T get a simple percent calculation right on the first attempt 14:33
masak it's these bloody abacus machines. 14:34
they have ruined real understanding of the underlying numbers.
moritz :-)
jnthn That or studying advanced enough math you forget what a number is... :P
masak my math only contains arrows these days. and knots. 14:35
colomon moritz++ # I do the same thing at least 50% of the time I try to calculate a percentage
masak I haven't seen a number in months.
14:36 nam_ joined
jnthn Such abstract... 14:36
tadzik computer, messages
jnthn Well, that was disappointing :P 14:37
moritz I know understand why many of my friends were so bad at math
they made the same stupid mistakes that I do
tadzik weechat says there was something 14:38
moritz but I think "93%? that can't be right", and look further
whereas they often say "yay, a result! We can play soccer now!"
well, put that in past sense
tadzik oh, a rakudobrew.ad :) 14:39
jnthn .ad?
masak .oO( much .ad about nothing ) 14:41
moritz rakudobrew sells ads now? 14:42
nam_ Code: 'my @a = abcadae ~~ m:g/a/' I would have exspected that @a contains 3 a's as it would in perl5. what am I doing wrong? 14:43
moritz m: 'abcadae' ~~ m:g/a/; my @a = $/.list; say @a.elems 14:44
camelia rakudo-moar 7e6151: OUTPUT«0␤»
moritz nam_: there's some only recently resolved spec issue around ~~ m:g// that's not yet implemented in rakudo 14:45
m: $_ = 'abcadae'; m:g/a/; say $/.list.elems
camelia rakudo-moar 7e6151: OUTPUT«0␤»
moritz m: $_ = 'abcadae'; say (m:g/a/).elems 14:46
camelia rakudo-moar 7e6151: OUTPUT«3␤»
TimToady m: ('abcadae' ~~ m:g/a/).WHAT.say
camelia rakudo-moar 7e6151: OUTPUT«(Bool)␤»
TimToady that's wrong
so not yet resolved
moritz TimToady: yes, m:g/a/ still returns a list in rakudo
jnthn m: say 'abcadae'.match(/a/, :g)
camelia rakudo-moar 7e6151: OUTPUT«「a」␤ 「a」␤ 「a」␤␤»
moritz TimToady: the spec issue is resolved, iirc
TimToady no, it's returning Bool ^^
jnthn Use ^^, which has been reliable for ages...
14:46 xenoterracide joined
moritz TimToady: no, $rhs ~~ m:g/a/ returns Bool 14:47
colomon tadzik: can you please look at my two patches to emmentaler? the more recent I'm pretty confident about, but the exception handling stuff from before that might be better expressed in other ways. (I sort of only committed it by accident.)
moritz TimToady: it's the ~~ that turns the List into Bool
TimToady m: $_ = 'abcadae'; say m:g/a/.WHAT 14:48
camelia rakudo-moar 7e6151: OUTPUT«(List)␤»
TimToady okay, NYI
14:49 mr-foobar joined
TimToady and it's 0 because it's redispatching to List.ACCCEPTS 14:49
14:50 PotatoGim^Home joined
TimToady nam_: we'll get it close to working as you'd expect soonish, though I believe it still requries a .list because Match doesn't quite act like a Parcel 14:51
nam_ hm this seems to work: say 'abcadae'.match(/a/, :g) a little confusing 14:52
moritz yes, it is. It must be fixed.
TimToady m: $_ = 'abcadae'; m:g/a/; say @$/.elems 14:55
camelia rakudo-moar 7e6151: OUTPUT«0␤»
spider-mario perl6.org/compilers/features
what are “delayed declarations”?
TimToady m: $_ = 'abcadae'; m:g/a/; say $/.elems
camelia rakudo-moar 7e6151: OUTPUT«0␤»
TimToady m: $_ = 'abcadae'; m:g/a/; say $/.list.elems
camelia rakudo-moar 7e6151: OUTPUT«0␤»
TimToady m: $_ = 'abcadae'; m:g/a/; say $/[0].elems
camelia rakudo-moar 7e6151: OUTPUT«0␤»
moritz spider-mario: declaring stuff in a macro
spider-mario oh, ok
moritz spider-mario: (more specifically, inside an unquote) 14:56
TimToady uh, in my coffeeless state I'd guess more like in a quasi
masak spider-mario: see D4 of news.perlfoundation.org/2011/09/hag...mplem.html
14:56 fhelmberger left
spider-mario thanks 14:57
masak briefly, if you do `class C {}` in normal code, it registers with the package scope and you can use it directly.
if you do the same in a quasi, you don't expect to get a class C (or whatever) to play with. not until you install the quasi in some actual code. 14:58
TimToady it's the problem of generic code