»ö« 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:00 FROGGS joined 00:02 ssutch left 00:03 berekuk left, lizmat left 00:05 locsmif left 00:06 berekuk joined 00:07 ssutch joined, colomon left 00:08 FROGGS left 00:11 kbaker joined
grondilu how do you guys manage to find a function definition in nqp or perl6 source code? Do you use etags or something? 00:12
00:13 lizmat joined 00:15 locsmif joined 00:17 locsmif left 00:19 census left
timotimo ran into a swapbomb somehow 00:22
lue: what confuses you about before and after? 00:23
r: say "foo" ~~ /o<?after o>/
camelia rakudo a37987: OUTPUT«「o」␤␤»
timotimo r: say "foo" ~~ /.o<?before o>/
camelia rakudo a37987: OUTPUT«「fo」␤␤»
timotimo r: say "foo" ~~ /.o<!before o>/
camelia rakudo a37987: OUTPUT«「oo」␤␤»
lue Well, I expect <?before to be true if I have yet to encounter the given thing, and <?after if I've passed it, and so far it doesn't seem to be the case. 00:25
Furthermore, it seems variables in there is currently broken, adding to my confusion >:/
say ":A:BCD" ~~ /$<CL>=. <alpha>+ <?before \:>/
r: say ":A:BCD" ~~ /$<CL>=. <alpha>+ <?before \:>/
camelia rakudo a37987: OUTPUT«「:A」␤ CL => 「:」␤ alpha => 「A」␤␤»
lue r: say ":A:BCD" ~~ /$<CL>=. <alpha>+ <?before $<CL>>/
camelia rakudo a37987: OUTPUT«Nil␤»
timotimo okay, let's see 00:26
00:26 locsmif joined, zwut00 left
timotimo r: say ":A:BCD" ~~ /$<CL>=. <alpha>+ {} <?before $<CL>>/ 00:26
camelia rakudo a37987: OUTPUT«Nil␤»
timotimo r: say ":A:BCD" ~~ /$<CL>=. <alpha>+ { say $<CL> } <?before $<CL>>/ 00:27
camelia rakudo a37987: OUTPUT«「:」␤␤「:」␤␤「:」␤␤「:」␤␤「B」␤␤「B」␤␤「C」␤␤Nil␤»
timotimo r: say ":A:BCD" ~~ /$<CL>=. <alpha>+ $<CL>/
camelia rakudo a37987: OUTPUT«「:A:」␤ CL => 「:」␤ alpha => 「A」␤␤»
timotimo very strange indeed. it should work
maybe the $<...> stuff is just not available inside <?...>? no clue 00:28
00:28 Mouq joined
timotimo .u 」 00:28
yoleaux U+FF63 HALFWIDTH RIGHT CORNER BRACKET [Pe] (」)
preflex yoleaux: you have 2 new messages. '/msg preflex messages' to read them.
timotimo r: say ":A:BCD" ~~ /:my $cl␤$<CL>=. { $cl := $<CL> } <alpha>+ <?before $cl>/ 00:29
camelia rakudo a37987: OUTPUT«===SORRY!=== Error while compiling /tmp/dFwVqArOP7␤Unrecognized regex modifier :my␤at /tmp/dFwVqArOP7:2␤------> <BOL>⏏$<CL>=. { $cl := $<CL> } <alpha>+ <?befo␤ expecting any of:␤ scoped declarator␤ constraint␤ …
timotimo r: say ":A:BCD" ~~ regex { :my $cl␤$<CL>=. { $cl := $<CL> } <alpha>+ <?before $cl> }
camelia rakudo a37987: OUTPUT«===SORRY!=== Error while compiling /tmp/67Q1_kG3ps␤Unrecognized regex modifier :my␤at /tmp/67Q1_kG3ps:2␤------> <BOL>⏏$<CL>=. { $cl := $<CL> } <alpha>+ <?befo␤ expecting any of:␤ scoped declarator␤ constraint␤ …
lue And for some reason in my grammar [<!before '::'> .]+ does what I would expect [. <?before '::'>]+ to do (that is, match everything /before/ the ::
) 00:30
timotimo <!before '::'> . means will match single : or anything else, but never the first : of a pair of two
[. <?before '::'>]+ means "match any character if it's followed by two more :" 00:32
repeatedly
lue (Which is why <before> seems to me as though it should be called <at-point> or similar. The word "before" doesn't imply any sense of immediacy for me.) 00:33
timotimo it means "am i before ...?" 00:34
lue Would it be slightly better described as "Am I right/immediately before ...?" That seems to me what it is.
timotimo yes 00:35
that's exactly how it works 00:36
just like lookahead and lookbehind always worked
lue It appears my idea of "before" and "looking ahead" doesn't match the accepted definitions. 00:37
lue has gotten to that point in problem solving where every misstep is a minor frustration, and likely needs a break. &
At least I know what <before> and <after> *really* mean, and that I wasn't going crazy moving from <?before "CONSTANT"> in small one-liner tests to <?before $<VAR>> in my grammar :) 00:39
timotimo i got panda installed now, fwiw 00:43
aaw shucks, i did *not* install panda correctly 00:45
gah 00:49
i'll go to bed instead >:(
00:55 benabik joined 01:01 PacoAir left 01:04 logie left 01:09 kbaker left 01:13 colomon joined
dalek ast: c790303 | coke++ | S (3 files):
rakudo.jvm fudges
01:19
01:24 bbkr joined 01:27 woolfy joined 01:30 aindilis` left 01:37 colomon left 01:40 colomon joined 01:56 crab2313 joined 02:01 btyler_ left 02:09 Khisanth joined
timotimo since i can't seem to fall asleep, i'll make the is dynamic test thingie right 02:17
because i'm convinced it should actually say my $y is dynamic in that test, rather than skipping it outright 02:18
02:23 FROGGS joined 02:28 FROGGS left
lue rn: say ":A:BCD" ~~ /$<CL>=. <alpha>+ <?before $<CL>>/ 02:37
camelia rakudo a37987: OUTPUT«Nil␤»
..niecza v24-88-g1f87209: OUTPUT«「:A」␤ CL => 「:」␤ alpha => 「A」␤␤»
lue niecza++
dalek ast: f5bbfc6 | (Timo Paulssen)++ | S02-names/pseudo.t:
i think $y actually supposed to be dynamic here.
02:38
02:48 Targen left
lue timotimo: ICUC, I solved my problem with a global variable and {$cl = $<CL>} 02:53
timotimo yikes :)
lue [it also happens to satisfy my "I'll show you!" attitude towards Rakudo for such an inexplicably missing feature :)] 02:57
03:06 BenGoldberg left, colomon left 03:12 wtw_ joined 03:13 crab2313 left 03:14 wtw left 03:19 colomon joined 03:22 FROGGS joined 03:30 FROGGS left
timotimo i'm amazed that i got an optimizer into place that actually gets executed 03:30
diakopter timotimo++ :) 03:31
timotimo it only causes crashes so far, though 03:32
03:32 sidus joined, raiph joined
raiph Pod errors are reported at the end of S05 and S32/IO 03:36
03:37 raiph left, crab2313 joined 03:38 FROGGS joined 03:42 FROGGS left 03:44 xinming left, colomon left 03:45 xinming joined
timotimo "get_number() not implemented in class 'int'" ?? 03:45
i'm just trying to == that number with another 03:46
03:47 colomon joined
timotimo ah, now i know what went wrong 03:51
my transformation is successfully finding places where nqp::add_n and friends are used, but cannot figure out if replacing it with ..._i is safe 03:57
Mouq rn: say circumfix:<( )>("a","b",4).^mro 03:58
camelia rakudo a37987: OUTPUT«===SORRY!=== Error while compiling /tmp/e6G01bxRdA␤Undeclared routine:␤ circumfix:<( )> used at line 1. Did you mean '&circumfix:<[ ]>', '&circumfix:<{ }>'?␤␤»
..niecza v24-88-g1f87209: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'circumfix:<( )>' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 36)…
timotimo i'm trying to $op[0].returns =:= 1 && $op[1].returns =:= 1, but that's apparently never true and using == instead of =:= sometimes gets me get_number() not implemented in class int which is ... o_O 04:00
04:00 FROGGS joined 04:01 colomon left
timotimo saving myself using nqp::isint doesn't help :| 04:01
i'll retry the sleep thing. 04:05
Mouq r: say so 2/e+^0+^+0^+e/2 04:11
camelia rakudo a37987: OUTPUT«True␤»
04:12 dalek left 04:13 dalek joined, ChanServ sets mode: +v dalek
diakopter github feature wish: when viewing a pull request, display any branches that currently would merge cleanly from the pull request's target branch, but if this pull request were merged, would cause conflicts with any of the other branches 04:30
.tell pmichaud happy birthday 04:31
yoleaux diakopter: I'll pass your message to pmichaud.
04:33 FROGGS left 04:43 JQK joined, JQK left 04:44 birdwindupbird joined 05:00 Targen joined, FROGGS joined, FROGGS left, crab2313 left 05:05 logie joined
moritz o/ 05:12
05:14 mdn joined
moritz grondilu: fwiw I usually use 'git grep' or 'ack' to find routine definitions 05:18
05:22 mdn left 05:51 SamuraiJack_ joined 05:52 logie left 05:55 SamuraiJack_ left 06:13 FROGGS joined
FROGGS o/ 06:14
masak o/ 06:23
masak .oO( or, if you decide to have an IPA to celebrate: hoppy birthday, pmichaud ) 06:24
FROGGS pmichaud: happy birthday! # finally 06:25
moritz pmichaud++ #birthday! 06:26
06:28 kaleem joined
masak FROGGS: the wait was excruciating? :) 06:30
FROGGS masak: well no, I just fell into torpidity 06:32
masak .oO( sounds like the next Bond movie. "Bond. James Bond. I just fell into this torpidity." ) 06:34
r: say so "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ~~ /a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/ 06:39
camelia rakudo a37987: OUTPUT«(timeout)» 06:40
masak :(
that one really should be trivial. 06:41
arnsholt Yeah, no Thompson engine yet =)
masak venue &
arnsholt: Perl 5.10 and up does it instantaneously. not even a hiccup.
arnsholt Oh, neat
In that case, Perl 5 has a better optimiser =) 06:42
Like matching from the end in cases like that, IIRC
JimmyZ masak: did you test this regex wtih swtch.com/~rsc/regexp/regexp1.html ? 06:43
06:43 berekuk left
moritz yes, perl 5 regexes track the min and max string length, and do some magic with that 06:47
and they take the longest literal substring and do a fast search for that, anchoring with the length information 06:48
06:48 nugged_ joined
moritz masak: perlgeek.de/blog-en/perl-tips/in-se...egexp.html :-) 06:48
06:53 nugged_ left 06:56 nugged joined 06:57 benabik left
BabsSeed Are there any online p6 sandboxes like eval.in for other languages? 06:59
moritz BabsSeed: we have camelia on irc 07:00
07:02 denis_boyun joined
masak moritz++ 07:03
moritz: I had forgotten about that one.
BabsSeed moritz: Does that parse multi-line input? 07:04
moritz r: say 42 07:07
camelia rakudo a37987: OUTPUT«42␤»
moritz BabsSeed: it translates ␤ to newline on input, and back again on output 07:08
BabsSeed: but it's not really suitable for larger programs 07:10
07:11 nugged left 07:12 dmol joined, woolfy left, lizmat left 07:13 dmol left, crab2313 joined 07:14 rindolf joined 07:19 BigBear joined 07:21 sqirrel joined
masak moritz: a very informative blog post. I think I may be able to work it in somehow. 07:21
moritz masak: each time you such a thing, I'm proud that I helped make your talk better, and feel bad about you spending even more conference time on making slides :-) 07:23
*say
masak no no, it's OK :)
07:25 nugged joined
masak I'm not using that much of actual conf time. 07:27
frettled haha :D 07:28
Thank goodness for your enthusiasm! 07:29
FROGGS BabsSeed: camelia can execute public gists 07:37
07:37 Vico_Wu2 left 07:38 denis_boyun left, denis_boyun joined 07:41 rindolf left 07:43 aindilis joined 07:44 rindolf joined 07:47 lizmat joined 07:51 benabik joined 07:52 Vico_Wu2 joined 07:55 Vico_Wu2 left 07:57 dmol joined 07:59 nugged left 08:00 Vico_Wu joined
dalek kudo/nom: aa7c682 | (Elizabeth Mattijsen)++ | src/vm/parrot/guts/container.h:
Add struct member for "is_dynamic" to be on the safe side
08:01
kudo/nom: b6e8999 | (Elizabeth Mattijsen)++ | src/Perl6/ (2 files):
$/, $! and $/ are now default Nil and dynamic
08:02 BigBear left 08:03 Gwyxx joined 08:04 dmol left, lizmat left 08:06 denis_boyun left 08:07 Gwyxx left 08:18 berekuk joined, bloonix left 08:20 not_gerd joined
not_gerd o/ 08:20
08:20 denis_boyun joined
diakopter o/ 08:20
masak 'An "else" block is now required to have braces except if the body of the "else" is another "if".' -- golang.org/doc/devel/release.html 08:21
there's nothing new under the sun.
surely dangling elses are a well-known language design issue?
not_gerd for some reason, building NQP with strawberry perl doesn't set nqp::version 08:22
08:22 segomos left
not_gerd ah, seems to be my fault - no git in PATH 08:24
diakopter masak: at least they didn't require indentation
08:29 berekuk left
BabsSeed Hmm, all the variations of my usual nick are reg'd :D 08:30
08:31 lizmat joined 08:32 berekuk joined 08:34 dmol joined 08:35 nugged joined 08:37 lizmat left 08:40 lizmat joined 08:41 ugexe joined, segomos joined
lizmat p: say $/ 08:41
camelia pugs: OUTPUT«␤»
lizmat n: say $/ 08:42
camelia niecza v24-88-g1f87209: OUTPUT«(Any)␤»
lizmat pn: say $!
n: say $!
camelia niecza v24-88-g1f87209: OUTPUT«(Any)␤»
lizmat p: say $!
camelia pugs: OUTPUT«␤»
lizmat p: say $_
camelia pugs: OUTPUT«␤»
lizmat n: say $_
camelia niecza v24-88-g1f87209: OUTPUT«(Any)␤»
lizmat
.oO( need to fudge Nil tests for $/, $! and $_)
08:44 denis_boyun left 08:45 BigBear joined
dalek ast: 8e4a5c6 | (Steve Mynott)++ | S02-magicals/ (2 files):
import of spectest for RT #78258
08:46
ast: 60b7fc0 | (Steve Mynott)++ | S05-transliteration/79778.t:
import of spectest for RT #79778
ast: 44d392a | masak++ | S32-io/IO-Socket-INET.sh:
kill stray IO-Socket-INET.sh process better

  cono++ for patch.
ast: 1411931 | masak++ | S32-io/IO-Socket-INET.sh:
remove some stray comments
ast: 04046f8 | (Elizabeth Mattijsen)++ | S02-names/is_default.t:
Unfudge now passing tests
ast: 751bd56 | (Elizabeth Mattijsen)++ | S02-names/caller.t:
Unfudge passing test
ast: 7252f0d | (Elizabeth Mattijsen)++ | S02-types/nil.t:
Add Nil tests for $/, $!, $_
08:47 fhelmberger joined 08:48 denis_boyun joined
lizmat hmm…. that as a bit more than I thought :-( 08:49
dalek rlito: 4e99a62 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - grammar - refactoring
not_gerd hm... rakudo build on strawberry perl is broken
looks like an infinite loop when building RESTRICTED.setting 08:50
moritz not_gerd: I think JimmyZ reported the same problem before
not_gerd: but we have no idea what's going on
not_gerd: does ./perl6 -e '' terminate?
not_gerd do we actually need RESTRICTED.setting by default?
moritz not really; but if that hangs, there's something else being fishy 08:51
not_gerd same thing happens when doing lib.pm6 -> lib.pir 08:54
moritz not_gerd: does executing (and not compiling) code also hang?
not_gerd repl starts up, then hangs after one entered code 08:55
same with -e
08:56 denis_boyun left
lizmat indeed: building the restricted setting is just the first use of the created perl6 executable 08:56
so *that* is borked
although I cannot reproduce 08:57
08:57 crab2313 left
lizmat you could try zapping the install directory and rebuilding 08:57
moritz lizmat: seems to be specific to windows + strawberry perl 08:58
not_gerd doesn't see anything wrong with the config hash 09:00
jnthn yay network 09:01
dalek rlito: 21f04b9 | (Flavio S. Glock)++ | / (5 files):
Perlito5 - grammar - refactoring
lizmat jnthn o/ 09:02
jnthn not_gerd: oh, so it's a Strawberry specific thing? Hm 09:04
not_gerd: I saw somebody else have that, and hunted it down so far as it being to do with setting up $*TZ, or all things
moritz eerew 09:05
09:05 dmol left
moritz sorry 09:05
dalek kudo/nom: 39597e8 | (Elizabeth Mattijsen)++ | src/core/PseudoStash.pm:
No longer need to special case $/, $! and $_
09:05 lizmat_ joined, nugged_ joined
masak moritz: those stray dalek commits are even the same that I got the other day when I pushed to roast. 09:05
09:06 dmol joined, berekuk left
lizmat_ maybe I borked my spec repo 09:06
tadzik jnthn: do you haev any kind of tests for select()? 09:07
moritz lizmat: unlikely 09:08
09:08 lizmat left
lizmat_ well, sometimes, when I do a spectest, I all of a sudden need to specify a commit message 09:08
09:09 nugged left
jnthn tadzik: No, not done spectests for any of the Threading.pm stuff yet. Yes, I know I'm naughty. :) 09:09
09:09 berekuk joined
tadzik so I can break it and it's not my fault? :P 09:09
jnthn ummm :P 09:10
I just won't pull until after my tak :D
*talk
tadzik I mean, do ou have any usecase with a predictive result
so I can run it aginst my refactor to see if it's mostly correct
jnthn I guess I got a bnch of demo code I'll use in my talk...can push it somewhere later 09:12
tadzik ok, cool
I'll keep breaking it locally 09:13
JimmyZ Socket Confidential
you should do handshake first 09:14
3 times
dalek kudo/nom: 0cd2c68 | (Elizabeth Mattijsen)++ | src/vm/parrot/guts/container.c:
Assigning Nil / undefine a scalar now also sets default for untyped scalars
09:26
09:26 SamuraiJack_ joined
BabsSeed Any DBI implementations with true prepared statements yet? 09:27
tadzik gist.github.com/tadzik/6219412
BabsSeed for MariaDB/MySQL?
tadzik my new idea for select
jnthn: ^^
it compiles, so it's probably flawless
jnthn lizmat_: Hm, is that the thing we couldn't do for ages 'cus it broke sectests?
JimmyZ BabsSeed: github.com/perl6/DBIish 09:28
the best one for now
dalek ast: cd8dbe0 | (Elizabeth Mattijsen)++ | S02- (2 files):
Unfudge now passing tests
moritz BabsSeed: fwiw DBIish uses prepared statements for postgresql and sqlite, not mysql (because the mysql C API for prepared statements sucks) 09:29
lizmat_ jnthn: yes, now that $/, $! and $_ are default Nil
the patch finally worked!
jnthn tadzik: Is is-ready menat to be API?
tadzik jnthn: it should probably be internal. I don't see a reason for it to be exposed
can be an inner sub of select() 09:30
jnthn aye
Goal is functional equivalence except the default feature?
09:30 BigBear left
tadzik not really 09:31
09:31 BigBear joined
tadzik it picks a random ready candidate, not the firs tone 09:31
as Go does
jnthn oh, and that
09:31 berekuk left
jnthn oh, it's vulnerable to semi-predicate issues 09:32
tadzik yeah, other than that it should be identical
semi-predicate?
jnthn What if the Promise evaluates to False?
tadzik aw
jnthn That's a perfectly valid result
tadzik right
jnthn Or a false hting comes down a channel
tadzik correct
jnthn The pick random thing is fine, though 09:33
arnsholt Do we have a solution to the semi-predicate thing for optional arguments?
jnthn arnsholt: You can always look in the capture if you really wish
arnsholt Right, so the data is there if you really, really need it
TimToady generally, you just use default to make it so you don't care
arnsholt Yeah, in 99% of the cases it's a non-problem 09:34
tadzik updated: gist.github.com/tadzik/6219412/revisions
TimToady you could use a default to set a flag that it was executed too
arnsholt Just curious about the remaining fraction of cases where it makes a difference
Yeah, that works as well
TimToady hmm
tadzik I have a gut feeling that it could be done simplier, that last thing
jnthn ooh, cute solution 09:35
TimToady nr: sub foo ($x = eval '$x++') { my $x; $x }; say foo()
camelia rakudo 39597e: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $x␤ at /tmp/FMyGfKTivk:1␤ ------> sub foo ($x = eval '$x++') { my $x⏏; $x }; say foo()␤0␤»
..niecza v24-88-g1f87209: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $x (see line 1) at /tmp/83nmFquStq line 1:␤------> sub foo ($x = eval '$x++') { my $x⏏; $x }; say foo()␤␤Unhandled exception: System.NullReferenceException: Object reference not…
jnthn I'm not sure is-ready multi-dispatch is an overall win over the smart match I had before?
TimToady nr: sub foo ($y = eval '$x++') { my $x; $x }; say foo() 09:36
camelia rakudo 39597e: OUTPUT«1␤»
..niecza v24-88-g1f87209: OUTPUT«Potential difficulties:␤ $y is declared but not used at /tmp/RdqsmtodBL line 1:␤------> sub foo (⏏$y = eval '$x++') { my $x; $x }; say foo␤␤1␤»
TimToady there you go :)
tadzik jnthn: well, we get error message for free :)
and it's probably easier to extend
like, add somethin gnew over Channel and Promise
jnthn we probably get an internal multi-dispatch error for free :P
09:36 berekuk joined
jnthn yes, good point... 09:36
09:38 xinming left 09:40 xinming joined 09:41 nugged_ left 09:43 lizmat_ left 09:48 mdn joined, danaj left 09:49 lizmat joined 09:50 dmol left
mathw o/ 09:50
masak \o 09:52
09:52 lizmat_ joined 09:53 mdn left 09:54 kaleem left, lizmat left 09:57 daxim joined 10:02 danaj joined 10:03 dmol joined
mathw Sounds like I'm missing out on some good stuff at YAPC::EU 10:03
moritz yes 10:04
10:08 PacoAir joined, berekuk left, daxim left
mathw But on the bright side, my city now has a PM group and we're meeting tonight :) 10:10
lizmat_ which city is that ?
10:10 lizmat_ is now known as lizmat 10:11 lizmat left 10:12 rindolf left, dmol left
mathw Nottingham 10:18
the one in England
10:31 BigBear left 10:32 aindilis` joined
grondilu r: say .fmt("%032b"), " ", $_ given my uint32 $ = 2**31; 10:34
camelia rakudo 0cd2c6: OUTPUT«10000000000000000000000000000000 -2147483648␤»
grondilu did not expect a negative number :/
10:35 gabriel_ joined, cxreg2 joined, BigBear joined 10:39 denisboyun joined 10:40 danaj left, aindilis left, Util joined
mathw not for a uint32, no... 10:44
10:46 Ulti joined, obra joined, Pleiades` joined 10:47 danaj joined, obra left, Pleiades` left 10:48 Pleiades` joined, obra joined 10:49 berekuk joined 10:56 berekuk left, dmol joined
masak mathw: do people of Nottingham keep having to listen to Robin Hood jokes all the time? 10:58
TimToady grondilu: parrot bug, likely; rakudo/jvm gets it right 10:59
unless it's a 32/64 bit thing
yah, breaks at 2**63 on my computer 11:00
(on JVM)
(with a uint64) 11:01
mathw masak: yes.
11:01 berekuk joined
TimToady it also puts a - on the binary output 11:02
well, jvm is known to be not very unsigned-friendly
FROGGS hmmm, I though rakudo@jvm uses nqp::sprintf which is bigint-capable... 11:05
moritz FROGGS: the problem seems to be uint32, not sprintf 11:06
FROGGS ohh 11:07
I missed that bit
masak did I hear something about a bug? 11:11
11:13 lizmat joined
masak jnthn giving his parallelism talk! 11:13
TimToady in parallel with other talks?!?
cono :D
masak TimToady: and concurrently! 11:14
11:14 nugged joined
diakopter also, asynchronously. with most of the audience, anyway 11:16
masak unless there's a non-empty intersection between the audience and members of N'Sync. 11:17
moritz masak: you know that the ' stands for "ot"? 11:18
or even "otIn"
masak moritz: o.O
:P
cono N::Sync 11:19
11:20 crab2313 joined 11:23 denisboyun left
grondilu r: sleep 2; say now - BEGIN now; 11:25
camelia rakudo 0cd2c6: OUTPUT«2.0531855␤»
arnsholt It's also worth noting that talks usually employ some kind of message-passing strategy to communicate with other concurrent processes
Arbitrarily twiddling bits is generally frowned upon in that kind of setting 11:26
masak audience members are generally assumed to be actors, even when they do not directly interact with the speaker. 11:27
arnsholt Indeed
diakopter naked actors
masak which means that they have an address (not necessarily unique), and they encapsulate and manage their own state.
moritz doesn't see anybody naked 11:28
diakopter it's the nervous speaker who's told to imagine the audience naked
moritz so that he becomes even more nervous? (he must think "what a bunch of weird freaks, I can't emphasize with them") 11:29
masak was gonna say.
or at least extremely distracted. 11:30
diakopter no, it's meant to amuse, to relax the speaker at the time of hearing the suggestion.
11:30 kivutar joined
diakopter thus implanting the reminder that they can relax themselves by remembering the thought/incident 11:30
/notion
(amusedment at the absurdity of the suggestion) 11:31
11:32 colomon joined 11:33 nugged left
cono :( async used at line 1. Did you mean '&asin', '&asec', '&asinh' 11:34
moritz cono: do you have rakudo on JVM? 11:35
cono oh, its only on jvm :(
moritz aye
FROGGS but I guess after we have a sane factoring/spec this will land on parrot too 11:36
cono fan of parrot ;)
diakopter orly
FROGGS we can't just try to implement threads on two different backends at the same time
JimmyZ fan of MoarVM
moritz fan of working code
cono not familiar with MoarVM atm
FROGGS yeah, MoarVM++ 11:37
cono: it is not yet ready for rakudo
cono ic
11:37 kivutar left
cono btw, I left from p2 talk (had to do something :( ), have you guys who are doing p2 were looking to llvm ? 11:38
diakopter no; reini explicitly stated he hated llvm 11:39
cono :)
ic
diakopter (for the use of a JIT, b/c it's so "huge")
JimmyZ sregex uses dynasm 11:40
11:40 kivutar joined
moritz really must do the blog post about why there's no llvm backend 11:42
cono moritz++ 11:43
masak "we're not targeting LLVM because it's too low-level a VM" :P
moritz masak: thank you. Please but that on your blog. :-) 11:44
cono :)
it more looks like a tweet, not a post :)
diakopter it's so low-level a VM it's not a VM
mathw Isn't llvm more like a slightly-higher-level abstract machine language? 11:46
tadzik it is
masak they should have called it SHLAML.
moritz shlaml!
mathw 'virtual machine' may be too wide a term, because it's correct to call llvm a virtual machine, but it's not a virtual machine in the same way that the CLR is 11:47
diakopter yes
mathw but one can understand why rakudo having an llvm backend would be difficult
maybe you'd have to build something else on llvm and then build nqp on that :)
at which point I'm starting to think, why bother? 11:48
diakopter well, you'd bother if you wanted llvm's tremendous optimizers
mathw true, true 11:49
11:50 berekuk left 11:53 dmol left, pmurias joined
dalek kudo-js: d3ee97b | (Pawel Murias)++ | / (4 files):
Rename nqp-mo to nqpmo.
11:53
11:53 dmol joined, lizmat_ joined
masak jnthn++ # talk 11:53
FROGGS :o( 11:54
FROGGS likes to have a video link
11:54 lizmat_ left 11:56 fridim_ left, lizmat left
not_gerd doesn't know of any dynamic language that has been successfully implemented on top of LLVM 11:56
apparently, there's work on an R implementation using VMKit 11:57
timotimo ohai
not_gerd: there was Unladen Swallow, which put a part of itself on top of llvm i believe
tadzik VMKit?
not_gerd tadzik: VM layer on top of LLVM 11:58
mostly runs Java
11:58 BigBear left
pmurias not_gerd: re succesfully on top of LLVM, it's possible to compile perl5 using clang isn't it? ;) 12:00
12:00 berekuk joined, lizmat joined
timotimo i suppose it really comes down to what's going on 12:00
not_gerd pmurias: perhaps I should have clarified that LLVM should be used for runtime code generation ;)
timotimo lizmat: the commit message you are being asked for when the spectests are being updates is the result of an implicit "git merge" that happens when the makefile uses "git pull" to get the newest and greatest of spectests and you have commits locally that are not up stream yet 12:01
12:01 lizmat left
timotimo aaw 12:01
i hope lizmat backlogs that
12:02 sqirrel left
pmurias not_gerd: rakudo on top of vmkit? ;) 12:02
12:04 nugged joined, dmol left
not_gerd pmurias: if someone's interested in doing that, why not 12:04
but I don't really see the appeal
timotimo jnthn: i've started on a stub-ish optimizer, but so far i'm not yet able to figure out when the transformation from (add|sub|mul)_n to $0_i is safe; i had hoped i could just introspect the .returns of both $op[0] and $op[1], but that leads nowhere, those seem to be unset.
not_gerd pmurias: btw, how goes the rakudo-js work? 12:05
12:07 dmol joined, lizmat joined
pmurias not_gerd: passing most tests, will start to work on bootstraping this week or the next one 12:07
timotimo \o/
12:07 lizmat left
pmurias will write a blog post explaining the current state of things today 12:08
not_gerd pmurias++ ++pmurias # work, blog post
diakopter pmurias: it has a regex compiler? 12:14
pmurias diakopter: a basic one
diakopter: a partial translation of the nqp-jvm/nqp-parrot QAST one 12:15
benabik would ponder writing a rakudo-on-vmkit if he was more impressed with vmkit. 12:17
12:17 rindolf joined
mathw llvm does seem more suited to languages which you just compile down to machine code and leave that way, like C++ or Haskell. 12:17
pmurias++ # rakudo-js progress
I'm impressed, because I can barely write a few lines of JS without going mad 12:18
pmurias berekuk: re rakudo-on-vmkit, I was joking we could run rakudo on top of jvm on top of vmkit on top of llvm, and technically we would have a llvm backend ;) 12:21
sorry, meant benabik
benabik pmurias++
12:23 mdn joined
mathw performance might be an issue with that :) 12:24
I mean, theoretically you could compile parrot using a C-to-javascript compiler and run rakudo on that...
12:26 berekuk left 12:28 kaleem joined 12:29 berekuk joined 12:31 crab2313 left
JimmyZ pmurias: another way to do rukudo-js: github.com/kripken/emscripten/wiki 12:31
not_gerd mathw: supposedly, asm.js performance is reasonably competitive
JimmyZ we just compile parrot to js
not_gerd blog.mozilla.org/javascript/2013/0...dermonkey/
C++/asm.js beats Java/Dalvik
JimmyZ and Emscripten use LLVM bitcode 12:32
12:33 crab2313 joined 12:41 berekuk left
pmurias JimmyZ: re compiling parrot to js, that's a joke? 12:43
12:45 berekuk joined
JimmyZ pmurias: not really, see github.com/kripken/emscripten/wiki...-languages 12:45
dalek rlito: 9483128 | (Flavio S. Glock)++ | / (2 files):
Perlito5 - better perl5 code formatter
12:46
12:46 dmol1 joined, dmol left 12:50 Ayiko left 12:53 berekuk left 12:56 ajr joined 12:57 daxim joined, ajr is now known as Guest85799, Guest85799 is now known as ajr_, bloonix joined
dalek rlito: da7bafb | (Flavio S. Glock)++ | / (4 files):
Perlito5 - perl5 code formatter fix
13:03
13:06 dmol1 left 13:07 dmol joined 13:09 cognominal left 13:11 cognominal joined
pmichaud good morning #perl6 13:16
yoleaux 04:31Z <diakopter> pmichaud: happy birthday
timotimo happy birthday pmichaud :) 13:17
13:17 bluescreen10 joined, mdn left
nwc10 was unaware of this 13:17
happy birthday pmichaud 13:18
colomon pmichaud! \o/
not_gerd pmichaud: happy (belated?) birthday 13:19
13:19 mdn joined
FROGGS pmichaud: happy birthday :o) 13:20
mathw I hear it's pmichaud's birthday, or possibly it was his birthday yesterday, so happy birthday :)
alternatively, it's not his birthday and someone got it wrong and we all followed along like sheep
mathw hums that bit from Messiah about the sheep going astray
pmurias pmichaud: good morning 13:21
pmichaud birthday is today, Aug 13
moritz pmichaud: it was Aug 13 here when we congratulated in the backlog :-) 13:22
pmichaud indeed. 13:23
colomon pmichaud: happy birthday!
pmichaud I just was wanting to remove any yesterday/today confusion. :)
nwc10 pmichaud: jnthn's concurrency talk was in the main room, because it was the most well attended of the three 13:26
colomon nice!
13:26 daxim left, nugged left
pmurias is there a way to implement nqp::bitneg_I in terms of other ops? 13:26
moritz pmurias: yes, it's two's complement 13:27
it's -$i + 1 or so
(modulo sign errors :-)
pmichaud nwc10: how did the talk go / how well was it received ?
(jnthn's talks are always excellent :-) 13:28
moritz it was awesome, though he ran out of time at the end
and I think it was well received too
13:30 dmol left
pmurias moritz: -$i + 1 seems to pass the test 13:30
mathw yay concurrency 13:31
felher rt.perl.org/rt3/Ticket/Display.html?id=119267 | anything I missed or shoud add? 13:32
13:35 mdn left
FROGGS felher: looks good to me 13:37
13:37 Aww joined
felher FROGGS: good :) 13:38
FROGGS: thnx 13:39
timotimo huh. how does the codegen know when to put coercing ops if not by looking at the .returns of the direct child of a QAST::Op?
13:39 kbaker joined
timotimo like, here i have a QAST::Var(lexical $cand_count) and a QAST::IVal(1); how do i make sure that lexical contains an int rather than a num? 13:39
13:40 notjack joined 13:42 btyler joined
tadzik r: (foo => 5).status.say 13:45
camelia rakudo 0cd2c6: OUTPUT«No such method 'status' for invocant of type 'Pair'␤ in block at /tmp/LM7qT0dGMC:1␤␤»
tadzik it says "Method 'status' not found" for Rakudo-jvm, without Pair 13:46
LTA error message
timotimo i think that's a know, though?
moritz nqp-jvm: 42.status 13:47
camelia nqp-jvm: OUTPUT«Invocant must be an object␤ in <anon>␤ in process_args␤ in <anon>␤ in <anon>␤ in compile_op␤ in as_jast␤ in as_jast␤ in <anon>␤ in compile_all_the_stmts␤ in as_jast␤ in as_jast␤ in <anon>␤ in compile_all_the_stmts␤ in as_jast␤ in as_jast␤ in <anon>␤ in c…
13:47 lizmat joined
FROGGS jnthn said something about a TODO for exceptions yesterday 13:47
moritz nqp-jvm: (sub (){}).status
camelia nqp-jvm: OUTPUT«Method 'status' not found␤ in <anon>␤ in <anon>␤ in eval␤ in evalfiles␤ in command_eval␤ in command_line␤ in MAIN␤ in <anon>␤ in <anon>»
moritz same problem in nqp-jvm
FROGGS: I wanted it to have the invocant in the exception object 13:48
timotimo just making sure here: i should be able to port the "turn lexicals into locals" optimisation into nqp almost verbatim, right?
moritz yes
except you don't have to care about parameters
13:48 not_gerd left 13:49 kaare_ joined
moritz (nor about explicit OUTER:: usage, which iirc doesn't exist in nqp) 13:49
pmurias timotimo: and how do you distinguish contextuals?
timotimo pmurias: i think they are :decl<contvar>
but i'm not sure yet
lizmat timotimo: which happens when I'm trying to do a spectest on all file potentially changed 13:51
hmmm… maybe we need a different target for not doing the git pull with make spectest?
or is there an environment variable for that yet?
FROGGS arnsholt: ping
lizmat: no, there is a cd t/spec && git pull hardcoded 13:52
timotimo i think "make spectest" should do a pull only if it can fast-forward, otherwise warn at the end and use the "old" spectest verison
version
i think i can implement that if you think that's a good idea
13:52 sqirrel joined
moritz lizmat: just make a shell alias for perl t/harness --fudge --keep-exit-code --icu=1 --tests-from-file=t/spectest.data 13:53
or maybe --icu=0 in your case
13:55 dmol joined, denis_boyun joined
pmurias timotimo: contvar is for containers not contextuals 13:58
tadzik gist.github.com/tadzik/6219412 updated
now not only it works, but it even has some tests :)
arnsholt FROGGS: Pong.
timotimo ah, ok 13:59
lizmat moritz: good point 14:00
FROGGS arnsholt: about using role Native, that won't work because Inline::C allows to declare a C gode block, how would I compile and call that using role Native?
tadzik now updated with exceptoins on bogus keys
arnsholt FROGGS: Could you write up a short example?
tadzik if no further comments arise, I'll commit it after the LT session 14:01
timotimo pmichaud: i'm not sure, honestly, how to differentiate contextuals from regular variables in nqp, except by looking if they have a * after their sigil
colomon tadzik: commit it where? 14:02
tadzik colomon: to rakudo-jvm
FROGGS arnsholt: or wait, it should work...
colomon tadzik++
14:02 lizmat left
timotimo but allegedly the changing add/sub/mul (probably not div though, right?) thing is going to give a very big benefit, so i'm chasing that first 14:04
arnsholt FROGGS: I assume everything gets compiled into a C function at some point, so it should be doable I think
FROGGS arnsholt: exactly
it gets compiled to a library, so I just need to apply the is native($library) trait 14:05
14:05 berekuk joined
arnsholt Yeah, which uses role Native internally 14:05
FROGGS true
pmurias timotimo: I talked with jnthn about marking contextuals, and they will be marked at decl time
FROGGS I guess this would be the smallest Inline::C module ever :o) 14:06
arnsholt Quite possibly =D
timotimo will be or already is? ;) 14:07
FROGGS well, it will be about 35 lines then (including blanks)
cant test atm if it works because my rakudo is not in a fit state atm 14:08
14:08 logie joined
pmurias timotimo: will be 14:09
timotimo can you perhaps point me at the right point? then i could perhaps implement that marking myself 14:10
would that require a new field for QAST::Var or is the hash interface to QAST::Node enough for now? 14:11
14:13 nugged joined 14:16 nugged left 14:19 mdn joined 14:21 kaleem left 14:23 berekuk left
dalek rlito: b4940fb | (Flavio S. Glock)++ | / (4 files):
Perlito5 - perl5, js - emit map-BLOCK
14:28
FROGGS puuuhhh, v5 should work now again... 14:29
timotimo ah damn. i thought .result would be the right way to go, but that's in POST, not QAST :(
14:32 berekuk joined
pmurias timotimo: one solution would be to declare the contextuals with a scope marked as contextual instead of lexical 14:32
timotimo ah, that would make it easy for my code at least; wouldn't i have to change lots of different things all over the place?
14:33 SamuraiJack_ left
pmurias all of the backends will need updating 14:33
alternatively it could be marked using the hash interface 14:34
14:35 SamuraiJack joined 14:36 denis_boyun left, Chris_____ joined 14:37 Chris_____ left 14:40 colomon left 14:42 Psyche^_ left 14:43 berekuk left
timotimo yeah, but moritz warned me that the hash interface will be very wasteful 14:43
14:44 Psyche^ joined
[Coke] .u 🍰 14:53
yoleaux U+1F370 SHORTCAKE [So] (🍰)
[Coke] .u 🍰🎈🎉😃
yoleaux U+1F370 SHORTCAKE [So] (🍰)
U+1F388 BALLOON [So] (🎈)
U+1F389 PARTY POPPER [So] (🎉)
14:55 colomon joined
pmurias timotimo: we need to s/contextual/dynamic at some point too 14:58
timotimo: re marking using the scope attribute, it shouldn't be so much changing, much more compiling and running tests 14:59
timotimo mhm
now that i finally figured out i have to use nqp::objprimspec to inspect the .returns of QAST::Vars, i can progress! 15:00
but it seems like even QAST::IVal has .returns of type 0 (which is "PMC" if i'm not mistaken)
maybe i should change IVal to have a default :returns of int? 15:02
pmurias you could try and see if anything breaks ;) 15:05
timotimo doing that ATM 15:06
but during build i get a strange failure; probably something to do with my changed makefile?
huh. that doesn't seem to have helped.
i put a method BUILD on IVal that nqp::bindattr(self, QAST::Node, '$!returns', int); - shouldn't that cause nqp::objprimspec to return 1? 15:07
masak diakopter just predicted in a lightning talk that we'll have Perl 6.0.0 within a year.
timotimo nqp: say(nqp::objprimspec(int))
camelia nqp: OUTPUT«1␤»
timotimo "missing or wrong version of dependency 'src/stage1/gen/nqp-mo.nqp' 15:08
not sure why i get that :(
PerlJam Perl 6 has always seemed about 2 years out to me (since around 2007 or so) 15:09
diakopter++ (I hope he's right :)
timotimo i expect my optimisation efforts to give us at least a 50% decrease of all run times!!!111¹one
masak PerlJam: also a (1 year) prediction about p5-p6 interop on moar, and a (2 year) prediction about p5 running faster on moar than in the standard implementation. 15:10
15:10 dmol left
timotimo why would p5 be faster on moarvm? 15:10
moritz timotimo: JIT compiler 15:11
PerlJam masak: no fair predicting something he's in direct control of making happen ;)
timotimo jit compiler for p5 as well? wow
moritz well, if moarvm gets a jit, and we run p5 code on moarvm, p5 code will benefit from the JIT compiler
timotimo is it safe to annotate any op that ends in _i with :returns(int), with _n to :returns(num) and _s to :returns(str)?
pmichaud ...annotate an op? 15:13
masak &
pmichaud is a little concerned
timotimo a QAST::Op 15:14
pmichaud Also note that Perl 6 doesn't have a "str" type. :-) 15:15
(although it's potentially fair for NQP to provide one) 15:16
timotimo this is only for nqp at the moment
15:16 ajr_ left, cono left
pmurias timotimo: annotate an op, shouldn't :returns just look at the op name? 15:17
instead of adding an extra attribute?
pmichaud: is gmp an acceptable dependency for nqp-on-node.js? 15:19
timotimo pmurias: i dunno. should it? 15:20
pmurias timotimo: not sure 15:21
dalek rlito: 8a1ddc6 | (Flavio S. Glock)++ | / (3 files):
Perlito5 - js - initialize "our" vars
15:22
pmurias I found a bug in my node.js gmp binding :( 15:26
timotimo i wonder why it would complain about the version of nqp-mo.nqp :/ 15:27
FROGGS arnsholt: PR closed 15:28
pmurias timotimo: it? 15:29
timotimo the build system; when it's trying to make NQPP5QRegex.nqp 15:30
from stage2
ah! 15:31
... no, not ah!
FROGGS: are you going to make an SDL2 binding as well? :) 15:33
that would be pretty cool
when i don't run my optimizer over the ast, i don't get the dependency problem. weird!
i must be botching up the ast somehow
oh, perhaps i'm using the wrong "int" 15:36
15:38 FROGGS left
arnsholt FROGGS: Oh, super-awesome. I thought we'd have to export bits of the internal API still. Not having to expose any of it is even better! 15:38
Oh, he timed out 15:39
pmurias is nqp::isprime_I 100% sure?
timotimo for low values surely 15:40
arnsholt pmurias: Only for values smaller than some threshold
After that it's wrong with a probability roughly on the order of a bit being flipped in your computer by a cosmic ray, IIRC 15:41
pmurias is 2^-50 good enough? 15:42
I have to determine which value should I pass to mpz_probab_prime_p from gmplib.org/manual/Number-Theoretic-...tions.html 15:44
arnsholt Sounds good 15:45
Which backend are you implementing this on?
pmurias JavaScript
node.js
arnsholt You can probably look at the Parrot backend for inspiration, though. IIRC it uses gmp as well
(Might be in the actual Parrot tree rather than NQP, mind) 15:46
15:47 SmokeMac_ joined 15:48 SmokeMachine left 15:52 FROGGS joined
FROGGS timotimo: I could, but that is not even at the bottom of my todo list :o) 15:52
pmurias hmm, what's a good way to implement nqp::div_In? (the last thing left for bignums test)
[Coke] tries running the spec tests -all- on diakopter's box today to reverse the polarity. 15:53
FROGGS pmurias: nqp's code should be a good pattern, no?
15:56 rindolf left
timotimo am i destroying the CompUnit or something? :( 15:57
pmurias FROGGS: I'm using a slightly buggy node.js gmp binding not the real library
FROGGS: I have dealt with the problem by multipling the number and the dividing it 15:58
dalek kudo-js: a78a4e4 | (Pawel Murias)++ | / (4 files):
Implement bignums and fill in nqp::composetype.

Pass test 60.
15:59
timotimo cool stuff, pmurias :)
pmurias pmichaud: 3 failing tests left in nqp/t/nqp, and one of them 49 requires bootstraping 16:00
timotimo aaw come on. diff shows no difference between the nqp-mo.pirs :( 16:02
between working and not working
FROGGS pmurias++
timotimo: what errors do you get?
timotimo wrong or missing dependency of nqp-mo.nqp 16:03
[Coke] seen au 16:04
16:04 sqirrel left
[Coke] .seen au 16:04
yoleaux I haven't seen au around.
FROGGS hmmm
[Coke] .to au Could use some help getting pugs running on a new box (host06) if you get a few minutes. Thanks.
yoleaux [Coke]: I'll pass your message to au.
16:04 Targen_ joined 16:05 Targen left
timotimo FROGGS: while trying to compile src/stage/gen/NQPP5QRegex.nqp 16:06
16:06 ajr joined 16:07 ajr is now known as Guest64498, Guest64498 is now known as ajr_, tsmith left
FROGGS timotimo: weird, P5QRegex is often a thing that breaks 16:07
last time I changed the order in the makefile: all: $(NQP_EXE) $(P5QREGEX_PBC) 16:08
timotimo interestingly it says "current instr:" comes from nqp-mo.pir line 7848
FROGGS it built then but I dunno why
timotimo ah, that's just a nqp_deserialize_sc
[Coke] raw.github.com/mauke/poly.poly/master/poly.poly 16:09
timotimo i just don't understand :(
pmurias timotimo: have you tried a 'make clean' 16:10
timotimo yes, multiple times
do i perhaps have to make bootstrap-files or something? 16:11
FROGGS usually not
pmurias not with a broken build
timotimo right 16:13
pmurias you didn't touch the Makefile at all? 16:15
timotimo i did
i had to add NQP/Compiler.nqp to the build
pmurias s/touch/change/
got to go& 16:16
16:18 mdn left 16:19 denis_boyun joined 16:20 rindolf joined, colomon left
timotimo well, turning the optimizer off to get a working build, then making bootstrap-files and turning it back on doesn't help the build unfortunately :( 16:22
16:24 kivutar left
FROGGS So ein Mist! 16:29
timotimo very true :( 16:31
how do i even begin to debug this? 16:32
16:33 kivutar joined
arnsholt FROGGS: Really awesome that you didn't need to export any of the internal stuff! I thought we'd have to do a bit of that 16:34
But I think you want to move the trait application to the inside of the setup block =) 16:35
FROGGS++ # Doing stuff so I don't have to =)
timotimo FROGGS: "not even at the bottom of my todo list" just means "isn't lowest priority", right? 16:36
16:41 spider-mario joined
FROGGS :o) 16:41
timotimo: true
16:42 spider-mario left
timotimo i just read the migration guide and a bit on the new feature set today, there's some really good stuff in there 16:42
FROGGS timotimo: because I'm not going to write from scratch or port a game in near future
timotimo: yeah, everything is there that was missing in 1.2 :o)
timotimo i was a bit surprised to see manymouse support dropped from sdl2, but there's still ManyMouse, so that's no big deal 16:43
16:49 fhelmberger left
dalek rlito: 3255126 | (Flavio S. Glock)++ | / (21 files):
Perlito5 - grammar - more all parser modules to Grammar/
16:53
: 33a007d | (Tobias Leich)++ | / (7 files):
catch up with rakudo

This covers latest use- and load_module refactorings.
17:02
17:04 sqirrel joined 17:06 spider-mario joined
FROGGS .tell jnthn I tried to use a custom ModuleLoader for v5, but something with the context went wrong so that I'm unable to `require` a script and use its subs via indirect lookup 17:06
yoleaux FROGGS: I'll pass your message to jnthn.
timotimo i guess i'll just push my optimizer wip and see what others think of it? 17:07
FROGGS .tell jnthn so I still need to "hack" rakudo... github.com/rakudo-p5/v5/blob/maste...kudo.patch
yoleaux FROGGS: I'll pass your message to jnthn.
17:07 birdwindupbird left
dalek p/nqp-optimizer: 456b7a6 | (Timo Paulssen)++ | / (6 files):
initial draft of optimizer, inactive ATM.
17:10
timotimo according to the debug output, it will transform a few adds, subs and mults to _i
dalek rlito: 2537119 | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - TODO update
17:16
timotimo wow, 2.5 more hours of river cruise 17:36
not going to get help with the optimizer portion any time soon :(
FROGGS :/ 17:39
timotimo well, still hope they are all enjoying it 17:42
FROGGS they will, no doubt :o) 17:43
17:46 Ayiko joined 17:48 kivutar left, Targen_ left
dalek kudo/from_nqp: 96314da | (Tobias Leich)++ | src/Perl6/ (2 files):
wire NQP's ModuleLoader to use ...:from<NQP>
17:56
ajr_ In the RosettaCode "100 doors" problem, this line ($_ = !$_ for @doors[0, * + $_ ...^ * > 100]) for 1..100; 18:01
produces this error message: Cannot assign to a readonly variable or a value
in block at 100_doors:3
Obviously, it's become impossible to assign values explicitly to $_ since that was written. Any suggestions as to how to acieve the same thing?
timotimo for 1..100 -> $_ is rw { ... } is my first suggestion 18:03
PerlJam for 1..100 <-> { ... } # should work too 18:05
timotimo oh indeed 18:06
18:13 kivutar joined 18:21 rindolf left 18:22 colomon joined 18:26 mdn joined 18:31 SamuraiJack left 18:39 sidus left 18:40 sidus joined 18:41 sqirrel left 18:53 TimK1 joined 18:54 TimK1 left, TimK1 joined
Util #ps in 30m 19:00
FROGGS hmm? 19:01
19:01 coax75ohm joined
timotimo parrotsketch 19:02
PerlJam
.oO( ... will there ever be a moarsketch? )
19:03
FROGGS that'd be cool
19:07 yangzhe joined
coax75ohm rakudo: my Int $i = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; say $i ~ " " ~ $i.fmt('%032x'); 19:12
camelia rakudo 0cd2c6: OUTPUT«340282366920938463463374607431768211455 000000000000000000000000ffffffff␤»
coax75ohm how do I get 128 bit hex output?
19:13 sidus left
FROGGS rakudo-jvm$ ./perl6 -e 'my Int $i = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; say $i ~ " " ~ $i.fmt("%032x");' 19:14
340282366920938463463374607431768211455 ffffffffffffffffffffffffffffffff
colomon right -- use rakudo JVM. ;) 19:15
FROGGS coax75ohm: rakudo@JVM contains a patch that will land on rakudo@parrot within the next weeks
19:15 exodist_ is now known as exodist
coax75ohm so wait...? 19:15
colomon FROGGS: oh, they're planning on adopting the NQP sprintf for parrakuido? 19:16
FROGGS coax75ohm: yes
coax75ohm ok
FROGGS colomon: sure, that is the only way to have a common interface
I'm not sure though what parrot's sprintf can what nqp::sprintf can't 19:17
colomon wishes this were not August, so he had some time to clean up the nqp::sprintf...
FROGGS maybe it is ready already
colomon: what's wrong with august?
colomon FROGGS: music festivals
;)
FROGGS yeah, I cant concentrate too when they make that loud music :P 19:18
FROGGS really hopes that v5 passes this time ó.ò
colomon "this time"?
FROGGS yeah 19:19
it is like I pull nqp+rakudo HEAD like once a week, and usually v5 looses like >250 passing tests 19:20
so I fixed one thing, from pulling yesterday, pulled again and again things exploded
colomon ugh.
FROGGS it sucks when you depend on other's internals 19:21
[Coke] FROGGS: we appreciate your pain. Thank you 19:22
FROGGS :o)
[Coke] (I had similar issues trying to code against parrot six years ago)
FROGGS I really just have to pull at least once a day, so I dont search for the problems >2h 19:23
yeah
I mean, these refactorings are sane... but still make my life harder
19:24 mdn left 19:25 riceandbeans joined
riceandbeans when is perl6 coming out? 19:25
FROGGS haha
next one
riceandbeans: you can download the latest release from rakudo.org 19:26
19:26 troydm joined
PerlJam riceandbeans: There is a Rakudo Perl 6 compiler release every month. 19:26
[Coke] "there are monthly releases of the rakudo compiler, and irregular but usually at least quarterly releases of Rakudo *, a bundle of the compiler and many modules. The specification is not yet frozen at 6.0.0."
FROGGS and a so called "Rakudo Star"-release containing useful momdules
modules* 19:27
[Coke] PerlJam: combine those, put them up in a gist we can point people to?
riceandbeans is Larry Wall not doing anything with Perl 6?
PerlJam riceandbeans: sure he is! What makes you think otherwise?
riceandbeans the site looks like something a 12 year old girl would draw
FROGGS riceandbeans: he is, why do you ask?
troydm riceandbeans: haha
riceandbeans not something a 45 year old man in his mother's basement would craft
PerlJam riceandbeans: excellent! Perl 6 is meant for 12 year old girls.
[Coke] score one for the home team.
troydm perl6 is pedobear 19:28
[Coke] that's not cool.
riceandbeans when will it be a stable release?
FROGGS riceandbeans: the releases we do arn't unstable
troydm stable != production ready i guess
FROGGS troydm: and there are gazillion of production-ready-definitions 19:29
PerlJam riceandbeans: you need to be even more specific :)
dalek rlito: 247f88f | (Flavio S. Glock)++ | TODO-perlito5:
Perlito5 - TODO update
FROGGS if one asks detailed questions he/she would might get a better answer from me
19:30 TimK1 left
troydm which one is bleading edge perl6 development branch? i've heard of some alternatives poping up and i was just interested 19:30
like MoarVM
PerlJam troydm: there are multiple Perl 6 implementations. Which are you referring to? 19:31
troydm: moarvm is a low-level vm that implementations will target.
troydm PerlJam: the one that would eventually become defacto Perl 6 reference implementation/standard
PerlJam well ... at least one implementation.
troydm which one will be it?
grondilu rakudo 19:32
FROGGS troydm: rakudo is the most active developed perl 6 compiler, running on parrot and on JVM (and someday on MoarVM too)
troydm so MoarVM is like alternative for Parrot ?
[Coke] there isn't a "reference implementation" like there is with perl5.
PerlJam troydm: aye
grondilu but consider rakudo as a 'high-level' perl6 implementation, since it needs a specific runtime.
[Coke] troydm: Aye.
troydm hmm.... ic 19:33
[Coke] there's also niecza (p6 on mono - getting a little crufty), and pugs (p6 on haskell - pretty much dead, but still passing a huge chunk of spec tests)
FROGGS mono is like .Net fwiw
[Coke] also, GSOC project working on a JS backend rakudo could use.
FROGGS and there is a javascript backend in the works... 19:34
right
[Coke] TOO SLOW I WIN
FROGGS *g*
PerlJam
.oO( is there an echo in here? )
FROGGS [Coke]: sure, you're coffeinated :P
[Coke] FROGGS: i'm in the middle of drinking a diet mountain dew.
geekosaur I'm sure there's some pseudo-wit who would refer to this channel as an echo chamber...
19:34 xenoterracide left
grondilu Isn't TimToady also working on his own implementation with std, viv and vile? 19:35
PerlJam grondilu: yeah, but those aren't full compilers 19:36
[Coke] std: say "can I { parse } this?"
camelia std c2215f0: OUTPUT«===SORRY!===␤Undeclared routine:␤ 'parse' used at line 1␤Check failed␤FAILED 00:00 42m␤»
PerlJam heh
FROGGS grondilu: I guess it was only meant to be a parser that other implementors could adopt
grondilu in std/README: C<vill> is a prototype STD-based LLVM-based Perl 6 JIT compiler. 19:37
^seems promising
japhb *rez*
[Coke] maybe that's where the LLVM questions keep coming from.
PerlJam could be 19:38
japhb yoleaux, ask jnthn Pretty please can you post your talk slides for those of us stuck in the wrong hemisphere.
[Coke] japhb: ".ask jnthn <msg>"
japhb .ask jnthn Pretty please can you post your talk slides for those of us stuck in the wrong hemisphere.
yoleaux japhb: I'll pass your message to jnthn.
japhb Thank you, [Coke]
ETOOMANYBOTSYNTAXES 19:39
[Coke] nojoke.
19:39 crab2313_ joined
FROGGS grondilu: I dont see a villl script 19:39
PerlJam now if only that bot figured out to best get in touch with jnthn and deliver the message rather than waiting for him to appear here ;) 19:40
grondilu FROGGS: neither do I, but the description is indeed in the README
FROGGS grondilu: and old :o)
19:42 crab2313 left
FROGGS PerlJam: if the bot had beer.... since I guess beer finds jnthn these days, not vice-versa :o) 19:42
19:43 mdn joined
dalek : 1792099 | (Tobias Leich)++ | lib/Perl5/Actions.nqp:
remove Perl6::ConstantFolder, moritz++
19:47
: 9981fe9 | (Tobias Leich)++ | / (2 files):
fixed assignment to a list of vars

When there were less vars on the LHS than on the right, the vars were Mu instead of Any.
19:50 xenoterracide joined
riceandbeans is perl6 fully object oriented? 19:51
[Coke] r: say 9.sqrt 19:52
camelia rakudo 0cd2c6: OUTPUT«3␤»
[Coke] (i'm not sure what you mean by "fully", but there's a data point.)
19:53 Targen joined
PerlJam Coke: Can you identify anything in Perl 6 that is not an object? 19:54
FROGGS riceandbeans: yes
PerlJam (I'd answer "yes, Perl 6 is fully object oriented")
19:54 colomon left
PerlJam riceandbeans: But that doesn't mean you *must* use it in an object oriented manner. 19:55
19:55 zwut00 joined, zwut00 left 19:58 zwut00 joined
segomos is any of the module versioning stuff implemented ? 19:58
FROGGS segomos: not much, no
19:59 crab2313_ left
FROGGS we had some discussions and drafts how to do it right, but there is no complete proposal yet 19:59
19:59 colomon joined
FROGGS (there is one that I consider to be 80% complete, there are still some minor quirks) 19:59
segomos FROGGS: ahh okay..i was looking at how i'm going to do this packaging stuff. whether we're looking at folder structures or some kind of internal 'db' for perl to do version lookups, etc. 20:00
20:00 prammer left
sergot hi ! o/ 20:00
20:00 crab2313 joined
FROGGS it probably will be a mix of both 20:01
there will be at least metadatafiles (dbs), that tell where a file/unit/module/whatever is stored on disk, so you have to query that metadata file first in most cases
20:02 sidus joined
segomos FROGGS: okay, my plan was to implement the function you just described manually (in pp6) until i knew more about how it was going to work internally 20:03
FROGGS 'the function' ? 20:04
segomos not the comp sci definition 20:05
20:05 PacoAir left
segomos i was going to build out a way in pp6 to do the version/package/author stuff as an interim solution to including versioned modules 20:06
unsure of whether it's useful to anyone other than me
i should've prefaced this by saying that i'm working on writing a package management system in perl6 20:08
FROGGS segomos: then you might want to read this: github.com/FROGGS/p6-S11Versioning
segomos FROGGS: i've been reading that and have been doing some testing with it, i was just curious about a solution in the interim 20:09
FROGGS yeah
btw, my module/description is not in sync with latest discussion (mostly happened during YAPC::NA) 20:10
ahh, and btw, right now the parser already accepts the adverbs like :auth to use-statements, and passes this to Perl6::ModuleLoader 20:11
segomos i'm trying to find information on how that stuff is stored on disk or if it's a db somewhere 20:12
20:12 kaare_ left
FROGGS segomos: if it is easier to start putting everything in a database, go ahead 20:14
segomos: hint: you could have a switch like: use Test:from<Database> which will use your module locating+loading logic, and if you omit the :from, it would load the modules the common way 20:17
r: use Test:from<Database> 20:18
camelia rakudo 0cd2c6: OUTPUT«===SORRY!===␤Do not know how to load code from Database␤»
FROGGS r: use Test:test<ohh yeah!>
camelia rakudo 0cd2c6: ( no output )
FROGGS or you just use a custom adverb :o)
jnthn++ for that gift :o) 20:19
segomos i'm guessing i'd have to extend the module loader
FROGGS true
basically only the part that slurps the file
segomos FROGGS: thanks a lot 20:22
FROGGS segomos: you are welcome
dont hesitate to ask (me or lizmat++) 20:23
20:26 kivutar left, kivutar joined, benabik left
segomos FROGGS: we using :auth and :vers ? 20:27
FROGGS :auth, :ver, :name, :file and :from 20:28
segomos thanks
FROGGS but the hairy bits for you are :auth and :ver 20:29
20:30 tsmith joined 20:31 crab2313 left, mdn left 20:32 mdn joined 20:33 benabik joined 20:34 tsmith left 20:36 mdn left 20:37 bluescreen10 left 20:42 lizmat joined
[Coke] ARRRRRGH 20:42
FROGGS sup?
[Coke] ah, whew, false alarm. THought I had to rerun today's spec test. 20:43
lizmat ??
20:43 berekuk joined
FROGGS hi lizmat 20:44
[Coke] lizmat: due to potentially screwing up a merge on the new test machine 20:45
20:46 stevan_ joined
dalek rl6-roast-data: 415cc66 | coke++ | doit:
Change default runs for new host
20:46
rl6-roast-data: ed3e200 | coke++ | / (5 files):
today (automated commit)
[Coke] ok. I've now switched from running pugs,rakudo.p,niecza on one machine, and merging in the results from rakudo.j on the other machine, to running everything but pugs on the new machine. 20:47
20:47 spider-mario left
[Coke] I see that rakudo.p, rakudo.j have improved; niecza is failing more tests than yesterday, which might be a problem with the new host, or with new spectests. 20:48
20:48 riceandbeans left
[Coke] S05-mass/properties-block.t aborted 670 test(s) - that looks like the main culprit. 20:48
might just be slower on the new box, I suppose. 20:49
lizmat [Coke]: looking at it
[Coke] lizmat: it's on niecza. 20:50
lizmat ah, could it be that the new machine doesn't have icu properly installed ?
ah, ok
lizmat shuts op
up
[Coke] rakudo.p is only failing 5 tests on the new box, down from 9ish.
timotimo oh hey lizmat :) 20:51
the cruise is over?
lizmat yes, and we managed to get a cab quickly 20:52
timotimo did y'all enjoy it? :)
lizmat I guess most of the people are still on their way back from the harbor
it was very enjoyable, the weather was nice… food and drink and everything
and even manaaged to talk some shop 20:53
:-)
just submitted a lightning talk proposal showing how easy it is tp contribute to Perl 6 and its internals 20:55
20:55 traceur joined
lizmat now going downstairs again for some more drinks 20:55
afk& 20:56
FROGGS have fun!
masak o/ 21:02
FROGGS hi masak!
masak hejehj :)
ugh. laggy connection is laggy. 21:03
diakopter I guess I don't understand with stating my expectations. I wasn't suggesting anyone should make business decisions on the timings; I was pointing out WHERE IT'S HEADING, and gave 3-4x conservative time horizons 21:05
*what's wrong
my point was that NO ONE KNOWS that's where it's heading 21:06
so I wanted to make people aware
that people believe those things are reasonable
masak re irclog.perlgeek.de/perl6/2013-08-13#i_7446742 , I think $_ should be rw there.
diakopter: "underpromise and overdeliver" covers exactly what you went up and talked about this afternoon. it doesn't matter whether you call it "promise" or not. 21:07
what I admire jnthn++ for is that he does shit, and then showcases it, in that order. 21:08
FROGGS (showcase shit)++ :P 21:09
21:09 thou joined 21:10 traceur left
masak Perl 6 has such a lousy reputation of (its various representatives) conjecturing "we're totally gonna do X" that we shouldn't even be using that kind of language any more. 21:10
thou o/
FROGGS o/
21:14 lizmat left 21:16 sidus left
diakopter masak: it's not that I didn't call it promise. I explicitly called it NOT PROMISE 21:17
(can't possibly be any more clear than that)
21:18 kbaker left
diakopter I really don't think the average yapc attendee is so stupid as to thing "he must mean promise" when he says in all caps, bold, and italic, "not commitments" 21:18
masak it's not that people are stupid, it's a bandwidth thing. 21:19
simple things get across, complex things don't.
"this is not a commitment" gets lost in the noise of "we will do all this awesome stuff in 1 or 2 years" 21:20
diakopter well, good thing I was way underpromising
masak I kinda wish you had underpromised a bit more. :/ 21:21
s/kinda //
diakopter how should I have phrased it? 21:22
am I not allowed to talk about what I'll be working on the next few months?
or imply that I have high confidence it will be achieved? 21:23
21:23 lizmat joined
masak looks for a reference that will explain the phrase "underpromise but overdeliver" to diakopter 21:24
diakopter I still don't see how I didn't underpromise
masak "If you set expectations high and fail to live up to them you will lose trust and credibility." -- www.dailyblogtips.com/underpromise-...erdeliver/ 21:25
note, "expectations", not even "commitments". 21:26
21:26 stevan_ left
masak you're not the first to phrase it as "I expect X within Y time units." -- and yes, you may well turn out to be right about your corageous predictions. 21:27
diakopter again, what should I have said, given I had the goals stated above? 21:29
masak but when I look at them, I mostly see more ammunition for people like chromatic who keep track and write sarcastic blog posts 1 or 2 years later.
21:30 rafl joined
dalek kudo/nom: 59f0605 | tadzik++ | src/vm/jvm/core/Threading.pm:
Make select() more awesome and more useful.

Add a default block that runs when no other candidate is ready.
When more than one candidate is ready, pick one at random.
21:30
masak diakopter: again, I admire what jnthn does in this case: build stuff first, then give a presentation. I don't know how else to phrase it.
diakopter so your answer to my question "am I not allowed to talk about what I'll be working on the next few months" is no 21:31
er, yes.
FROGGS I guess 'not allowed' are not the right words
masak your lightning talk wasn't "what I'll be working on the next few months"!
it was "what Perl 6 will be like in the next few years". 21:32
PerlJam diakopter: you could also be exceedingly awesome rendering masak's fears moot.
masak by all means, please do.
diakopter I'm VERY VERY VERY VERY VERY VERY VERY VERY VERY VERY confused. 21:34
masak diakopter: do you have the impression that more than, say, two people are telling you what I am telling you?
diakopter what exactly is so uncertain about my expectations?
masak *sigh* 21:35
diakopter I'm trying to find out the source of your fears
PerlJam my guess is "other people"
masak I don't want to iterate another cycle through this conversation.
just re-read the backlog.
lue My guess would be: masak but when I look at them, I mostly see more ammunition for people like chromatic who keep track and write sarcastic blog posts 1 or 2 years later. 21:36
lizmat well, when I found out about MoarVM and Perl 5 interop, I was hopeing to see this in action at the YAPC::NA
or by YAPC::EU at the latest
alas, that did not happen yet
timotimo diakopter: i think the problem is that you expect people to be much more sensible than they actually are
masak YAPC::EU was the goal. then life interferred.
lue
.oO( Apparently, jnthn hasn't finished it yet :) )
21:37
diakopter *facepalm*
lizmat life will always interfere
timotimo you have the best intention and given pertectly reasonable people you would probably have done just fine
21:37 colomon left
timotimo at least that's my guess 21:37
21:37 coax75ohm left
FROGGS I was expecting that MoarVM hosts nqp by now fwiw :/ 21:37
diakopter FROGGS: I think focusing on getting rakudo-jvm ready to demo the async stuff was the better choice 21:38
masak fwiw, me too.
FROGGS so, everybody has his/her expectations, and you probably make ppl upset when you raise em' and can't deliver
lue diakopter: I think it's that masak would like to avoid more bad thoughts about Perl 6 wherever possible. 21:39
timotimo i think so, too. there have been rakudo parallelism talks already, but p5 interop with moar was rather new in comparison
FROGGS diakopter: yeah, but I thought you were working on that to demo it at the yapc
diakopter who said that?
FROGGS lue: true, we have to be careful 21:40
diakopter: you
diakopter I might've said I'd like to do that
or even hope to
timotimo right. too many bad thoughts and the dwarves are going to throw a tantrum
a tantrum spiral would be very bad for our fortress
pmichaud pmurias: I'm fine with gmp as a dependency 21:41
lue
.oO(No sense instigating a war with the elves, the siege'd come at the worst part of the spiral.)
diakopter FROGGS: feel free to quote me with dates; if I had unreasonable expectations about my time availability, that's good to know
pmichaud sees he will need to read the backlog
timotimo lue: you know that elves are the "everybody hates them" people of df? :)
diakopter pmichaud: no, just privmsg masak 21:42
lue We may not like them, but I'd rather not have *two* civilizations want to siege my fortress. (esp. during a tantrum spiral) 21:43
diakopter lizmat: are you saying I shouldn't have helped yapc::na occur and put off the other work?
I could've sworn statements about expectations implied "as long as my expectations about dependencies remain correct" 21:44
[Coke] diakopter: I think the disconnect here is that you expect people to deal rationally with what you presented, and masak doesn't expect them to. 21:45
21:45 bruges_ left
masak I've never seen diakopter be so defensive. he really thought that was a good idea. 21:45
experience tells me it probably wasn't.
21:46 colomon joined
[Coke] and, having lobbed that potential grenade, I have to commute home. Hasta luego. 21:46
perigrin diakopter: this actually isn't about anything you *said*
masak right.
perigrin masak is (I think) saying that people will only hear the dates
and make of them what they will
PerlJam Hmm.
diakopter well what dates or 95% confidence interval should I have given? 21:47
21:47 bruges joined
lizmat and when you *not* make it for a very good reason, they will just assume that you would have never been able to anyway 21:47
PerlJam masak: earlier you implied that had his talk been "what I'm working on" it wouldn't have been a problem. true or false?
btyler trolls feast on perl6 statements that involve dates, I think is the overall message
lizmat 95% confidence is a a
statistical anomaly 21:48
perigrin diakopter: I wouldn't have given dates at all ... or even a confidence interval
just said "this is where I want to go."
lizmat perigrin++
diakopter without a time frame it's delusional dreaming that hasn't considered the level of effort
perigrin diakopter: not true
lizmat I expect a 50% chance of rain this Thursday in Kiev
masak PerlJam: I've seen "what I'm working on talks". they're usually 20 minutes long, and don't list numbered predictions. they're more about code, design, and results.
perigrin diakopter: also I'm saying *nothing* about what research or consideration you've done 21:49
masak s/on talks"/on" talks/
21:49 benabik left
masak perigrin: me neither. 21:49
lue Your Hauge Grant would beg to differ on the "delusional dreaming" notion.
perigrin I'm saying announcing it has almost no upside, and a lot of downside.
diakopter you guys changed the text
I didn't say "what I'm working on"
perigrin wasn't there. 21:50
diakopter I didn't say "what I'm working on" above
21:50 benabik joined, nugged_ joined
lizmat "21:22am I not allowed to talk about what I'll be working on the next few months?" 21:50
diakopter yes.
future.
perigrin I'm just responding to the two conversations I've seen about it :)
diakopter these guys are implying they are defining "what I have been working on, look at it"
FROGGS diakopter: this was what I was talking about: irclog.perlgeek.de/moarvm/2013-08-08#i_7424966
diakopter like I said above 21:51
'might' is even weaker than 'hope'
FROGGS diakopter: note that I am not upset or so, just wanted to note... I appreciate your work, no doubt
diakopter: not in my understanding 21:52
perigrin diakopter: your expectations of people parsing your meaning and intent is painfully optimisitic, I *sincerely* hope you don't get disappointed by it.
diakopter lue: huh?
21:53 nugged joined
diakopter lue: that makes no sense 21:53
lue If you had just talked about what you're planning to do, I'd've also mentioned the grant to give the idea more weight than just "delusional dreaming"
(not all dreams apply for grants)
diakopter yes, you're right, it would've been a good idea to mention the grant app 21:54
lizmat it's getting too late for me to stay coherent& 21:55
timotimo does anyone have an intuition why changing the ast after the ast stage when compiling NQP will give me wrong or missing version of dependency nqp-mo.nqp in stage2?
lue I think the ultimate point masak was making was: now that you've mentioned specific timeframes, it'd be really cool if you met them, and food for trolls if you don't. 21:56
perigrin honestly, I've reached the jaded opinion that anybody stating goals for open source projects that they're not *directly* funded for with solid deadlines ... is ultimately a form of dreaming
21:56 lizmat left
timotimo well, wrong or missing version of dependency nqp-mo.nqp in stage1/gen 21:56
21:57 nugged_ left
colomon perigrin: I've reach the jaded opinion that anybody stating goals and deadlines for non-trivial software projects is ultimately a form of dreaming. 21:58
timotimo i'm trying to golf the optimizer down to the minimal bit of doing stuff that still breaks the build down the road and i'm now down to not changing the ast at all 22:00
at least it seems to me
22:02 aindilis` left
PerlJam in 20 22:04
perigrin colomon: yeah but I'm paid to dream sometimes.
if I get jaded about my job *that* badly, I stop being able to feed my kids. 22:05
colomon perigrin: I'm not jaded about doing the work, just predicting anything like a schedule for it.
perigrin: I mean, I'll do my best to make the prediction, but I'm wrong about it 90% of the time. 22:06
perigrin is a consultant ... we dream up front and get paid based on how accurate our dreams were.
Oh I'm wrong nearly 100% of the time.
colomon this is definitely why I prefer to be paid by the hour for these things. ;) 22:07
pmichaud I thought consultants got paid for helping others to articulate dreams (that then turn out to be inaccurate) :-)
segomos pmichaud: we get paid to talk in irc about dreams
diakopter haha
timotimo huh! 22:09
say, can ~~ in nqp cause modifications to something?
tadzik s///?
pmichaud afair, ~~ in NQP just calls .ACCEPTS, same as in Rakudo 22:10
(well, without the topicalization that Rakudo does)
benabik method infix:sym<~~>($/) { make QAST::Op.new( :op<callmethod>, :name<ACCEPTS>, :node($/) ); }
timotimo the line that breaks the build is: 22:11
if $op.op ~~ /^$<opt>=(add|sub|mul)_n$/ { }
if i remove that, everything's fine, if i add it, the build breaks with the missing required version
$op is a QAST::Op node
pmichaud I'm not paying close attention, but sounds to me like a stale or incorrect QRegex library is being loaded. 22:12
because it would then call accepts on the /.../ regex.
timotimo would an exact error message dump help?
pmichaud I think I'm at the extent of my ability to help 22:13
gotta run
timotimo ah
thank you!
fortunately i can do this with substr just as easily
nqp: say(nqp::substr("add_n", * - 2, 2))
camelia nqp: OUTPUT«Error while compiling block : Error while compiling op call (source text: "nqp::substr(\"add_n\", * - 2, 2)"): Error while compiling op substr (source text: "nqp::substr(\"add_n\", * - 2, 2)"): Error while compiling op substr3: Error while compiling op mul_n (source text: "*…
timotimo nqp: say(nqp::substr("add_n", nqp::chars("add_n") - 2, 2))
camelia nqp: OUTPUT«_n␤»
22:20 rafl left
timotimo i would have never guessed the regex would cause trouble 22:20
22:20 troydm left
timotimo yeeeaaaah it goes through! :) 22:21
now qast tests fail, because ... some reason? 22:23
all the other tests succeed, though. looking forward to building a rakudo with this 22:25
22:27 rafl joined
timotimo aaw, stage parse didn't get any faster at all 22:30
but ... but ... all my hopes and dreams!!
FROGGS :o(
colomon so what exactly did jnthn demo? just saw a raving tweet…. 22:32
diakopter super-cool factorings of neat async patterns 22:33
timotimo i think i might want to add more knowledge about other ops, like "nqp::chars returns an int" 22:34
diakopter using the new things he made (Promise, Channel, etc)
timotimo is op "numify" guaranteed to return an int?
like in +@foo? 22:35
i can't tell if numify is used in places where it could turn into a num, but i think it could surely do that
i suppose the optimizer could know that if an op numify has a var that starts with @, it will return an int 22:37
FROGGS hmmm, I can't think of something that returns something else 22:38
colomon I'd be surprised if it only returns an Int. What happens when you call it on a double?
a Num
timotimo exactly, that's my worry
timotimo sprinkles more "int" after "my" in some rakudo files 22:39
colomon I mean, I don't know the nqp ops that well yet, but int and num have *very* distinct meanings in p6 talk
timotimo this is all int and num, not Int and Num 22:40
colomon still very distinct meanings
22:41 denis_boyun left
timotimo and in nqp, too ;) 22:41
22:44 nugged left, nugged joined 22:47 nugged left 22:48 woolfy joined
timotimo nqp: say(nqp::ord("foo")) 22:52
camelia nqp: OUTPUT«102␤»
22:57 yangzhe left
timotimo any ops you can think of that clearly return int, but do not end in _i? 22:59
segomos FROGGS: is there plans to redo the moduleloader ? 23:00
FROGGS segomos: it must be done somehow for S11, but plans in a sense of beeing an item of a TODO, no
timotimo if i could go from "callmethod .to/.from on lexical $/", that would be a big win, too 23:06
does that sounds dumb?
if somebody defines "my $/" in nqp code and has a class that has .to and .from that don't return int, that would bomb pretty bad 23:07
and even worse may explode in very unexpected ways
23:10 benabik left 23:11 zwut00 left
FROGGS nqp: my $/ 23:12
camelia nqp: ( no output )
FROGGS :/
23:14 nugged joined 23:15 BenGoldberg joined
BenGoldberg Good evening 23:17
timotimo hello ben 23:18
BenGoldberg r: (^Inf).infinite.say
camelia rakudo 59f060: OUTPUT«True␤»
BenGoldberg r: (0..Inf).infinite.say
camelia rakudo 59f060: OUTPUT«True␤»
23:20 btyler left 23:22 ajr_ left
BenGoldberg r: (grep(True,(^Inf))).infinite.say 23:22
camelia rakudo 59f060: OUTPUT«Nil␤»
23:23 nugged left
timotimo nqp: say(nqp::isnull(NQPMu)) 23:24
camelia nqp: OUTPUT«0␤»
timotimo oh, huh
23:24 FROGGS left 23:28 benabik joined, colomon left
BenGoldberg r: role finite-list { };my @foo but finite-list;say @foo ~~ List;say @foo ~~ finite-list; 23:29
camelia rakudo 59f060: OUTPUT«True␤False␤»
timotimo i get lots of transform successes in nqp, but almost none in rakudo 23:31
in some of the files it seems like i can't find "int", "num" or "str" symbols 23:32
23:32 fridim_ joined
timotimo and stage parse is still >100s; before i call that a failure i should look at how long exactly it takes with unoptimized nqp, though. 23:33
23:34 berekuk left
timotimo stage parse is 105.1s and stage optimize is 14.0s for optimized nqp. 23:35
23:36 berekuk joined
segomos r: say "test" ~~ rx{^ <![e]>+ $} 23:37
camelia rakudo 59f060: OUTPUT«(timeout)»
segomos this is a bug? 23:39
diakopter pmichaud: ^ bug?
timotimo seems pretty buggy, yeah. that should totally terminate 23:40
virtually no change in time with unoptimized nqp :| 23:42
BenGoldberg r: say "test" ~~ /<![^e]>+/;
timotimo must be because this exact optimisation is failing so hard when perl6 is being compiled
i wonder why
camelia rakudo 59f060: OUTPUT«(timeout)» 23:43
segomos BenGoldberg: both timeout from what i've seen
timotimo what's that ^ supposed to do there?
BenGoldberg Oops
r: say "test" ~~ /<![e]>+/;
camelia rakudo 59f060: OUTPUT«(timeout)»
segomos the problem is with the negation
r: say "test" ~~ rx{^ <[e]>+ $}
camelia rakudo 59f060: OUTPUT«Nil␤» 23:44
segomos r: say "test" ~~ rx{<[e]>+}
camelia rakudo 59f060: OUTPUT«「e」␤␤»
segomos r: say "test" ~~ rx{^<[e|\w]>+$} 23:45
camelia rakudo 59f060: OUTPUT«「test」␤␤»
23:45 kivutar left
BenGoldberg r: say "test" ~~ /<![e]>{3}/; 23:46
camelia rakudo 59f060: OUTPUT«===SORRY!=== Error while compiling /tmp/rDEDjqJAic␤Unsupported use of {N,M} as general quantifier; in Perl 6 please use ** N..M (or ** N..*)␤at /tmp/rDEDjqJAic:1␤------> say "test" ~~ /<![e]>{3}⏏/;␤»
BenGoldberg r: say "test" ~~ /<![e]>{3,3}/;
camelia rakudo 59f060: OUTPUT«===SORRY!=== Error while compiling /tmp/63D81hQNiF␤Unsupported use of {N,M} as general quantifier; in Perl 6 please use ** N..M (or ** N..*)␤at /tmp/63D81hQNiF:1␤------> say "test" ~~ /<![e]>{3,3}⏏/;␤»
BenGoldberg r: say "test" ~~ /<![e]>**3/;
camelia rakudo 59f060: OUTPUT«「」␤␤»
BenGoldberg r: say "test" ~~ /<![e]>**5/;
camelia rakudo 59f060: OUTPUT«「」␤␤»
BenGoldberg r: say "test" ~~ /<![e]>**Inf/;
camelia rakudo 59f060: OUTPUT«===SORRY!=== Error while compiling /tmp/EIeTD9MMCJ␤Quantifier quantifies nothing␤at /tmp/EIeTD9MMCJ:1␤------> say "test" ~~ /<![e]>**⏏Inf/;␤ expecting any of:␤ postfix␤ infix stopper␤ infix or meta-infix␤… 23:47
BenGoldberg r: say "test" ~~ /<![e]>**0..Inf/;
camelia rakudo 59f060: OUTPUT«===SORRY!=== Error while compiling /tmp/xKy0WHiKLn␤Only integers or '*' allowed as range quantifier endpoint␤at /tmp/xKy0WHiKLn:1␤------> say "test" ~~ /<![e]>**0..⏏Inf/;␤»
BenGoldberg r: say "test" ~~ /<![e]>**0..*/;
camelia rakudo 59f060: OUTPUT«(timeout)»
BenGoldberg r: say "test" ~~ /<![e]>**10000/;
camelia rakudo 59f060: OUTPUT«「」␤␤»
BenGoldberg r: say "test" ~~ /<![e]>**100000/;
camelia rakudo 59f060: OUTPUT«「」␤␤»
BenGoldberg What prevents a zero-length match from happening two or more times in the same locaiton? 23:48
r: say "test" ~~ /<![e]>**1000000/; 23:49
camelia rakudo 59f060: OUTPUT«(timeout)»
timotimo ah, i can kind of guess why symbol "int" wouldn't be available when compiling BOOTSTRAP.nqp
ah, i found out what i did wrong! 23:51
silly me :D
maybe now it'll turn out to be a bit faster 23:52
23:52 Vico_Wu1 joined
timotimo huh. it did transform lots of things, in grammar and friends, too. but no visible change in run time :( 23:54
23:54 Vico_Wu left 23:55 Vico_Wu joined
timotimo ell, i hope at least the spectests are clean, since clearly the optimizer has no speed benefits >_> 23:56
23:56 Vico_Wu1 left
timotimo failures only in is_default and nil so far ... 23:57
23:59 araujo joined