»ö« 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 spider-mario left 00:11 raiph left 00:14 xenoterracide joined 00:16 dmol left
FROGGS jnthn: labels in while loops seem to work now: gist.github.com/FROGGS/e03e0b067431a23b790c 00:25
00:25 jlaire joined 00:26 kst`` is now known as kst
FROGGS like: 00:26
nqp-p -e 'my $x := 0; HURZ: while $x++ < 2 { say($x); for [1] { last HURZ } }'
1
jnthn: that patch needs a bit cleanup though, I'd like to add the magic numbers to %control_map, like 'labeled_next' => 512 00:28
I think the exception types starting at one are free, so we can start there 00:29
rp: say pir::const::CONTROL_LOOP_NEXT
camelia rakudo-parrot 8d994c: OUTPUT«65544␤»
FROGGS rp: say pir::const::CONTROL_LOOP_REDO
camelia rakudo-parrot 8d994c: OUTPUT«65546␤»
FROGGS rp: say pir::const::CONTROL_LOOP_DONE
camelia rakudo-parrot 8d994c: OUTPUT«===SORRY!===␤error:imcc:syntax error, unexpected DOT, expecting COMMA or ')' ('.')␤ in file '(file unknown)' line 65␤␤»
FROGGS rp: say pir::const::CONTROL_LOOP_LAST
camelia rakudo-parrot 8d994c: OUTPUT«65545␤»
dalek p/loop_labels: 3203a9f | (Tobias Leich)++ | src/ (3 files):
implement labels for while loops

This allows the declaration of labels for all statements, and adds next/redo/last LABEL functionality for while loops.
00:37
TimToady \o/ 00:40
FROGGS that is for nqp-p only though 00:41
TimToady still 00:42
FROGGS but if that works out it should not be too hard to steal that to jvm/moar/rakudo
yeah, pretty useful
00:46 berekuk left
FROGGS gnight 01:01
colomon FROGGS++ 01:09
01:26 BenGoldberg joined
raydiak what is a more elegant way to write "@bar = .a, .b, .c for $foo"? 01:29
TimToady if there's only one thing, we usually use 'given' instead of 'for' 01:30
01:30 Rotwang left
raydiak ah, good to know 01:31
so there's no magic way to write the list of methods? like $foo.<<a b c>> or some similar contrivance? 01:32
BenGoldberg If it were perl5, one could do @bar = map $foo->$_() for qw(a b c); 01:35
Err
If it were perl5, one could do @bar = map $foo->$_(), qw(a b c);
But I don't think you can do that in perl6 01:36
01:36 raiph joined
TimToady well, you can say @bar = ($foo."$_"() for <a b c>); 01:37
but generally, using names symbolically like that is considered a code smell
BenGoldberg I could be wrong, though :)
raydiak thanks, but imo the version I have is already much more concise (and asthetically pleasing) than that :) 01:38
TimToady indeed
BenGoldberg The smelly solution is ugly, and likely will remain so in order to dicourage it :) 01:39
TimToady yes, we make symbolic lookups uglier than referential lookups on purpose 01:41
01:46 MikeFair_ left 01:48 woolfy joined 01:58 xenoterracide left, xenoterracide joined, woolfy left 01:59 tgt left 02:03 MikeFair joined 02:08 PacoAir left 02:11 rurban1 left 02:14 raiph left
raydiak sorry, got lost in another window...thanks for the help guys 02:16
02:16 woolfy joined 02:17 BenGoldberg left, rurban1 joined 02:20 BenGoldberg joined 02:36 rurban1 left
dalek kudo-star-daily: ebd4db8 | coke++ | log/ (5 files):
today (automated commit)
02:51
rl6-roast-data: 58f97eb | coke++ | / (5 files):
today (automated commit)
03:01 adu left 03:17 Ben_Goldberg joined 03:18 BenGoldberg left 03:35 Suhosin left 03:36 Suhosin joined 03:40 ggoebel18 joined 03:41 ggoebel_ joined 03:43 ggoebel17 left, ggoebel left, ggoebel_ is now known as ggoebel 03:47 ggoebel19 joined 03:48 ggoebel18 left 04:01 raiph joined 04:05 preflex left 04:06 preflex_ joined, ChanServ sets mode: +v preflex_, preflex_ is now known as preflex 05:06 raiph left 05:07 Entonian joined, Entonian left 05:14 Entonian joined 05:41 Entonian left 06:03 raiph joined 06:09 Ben_Goldberg left
timotimo oh no, i b0rked C code in nqp :( 06:09
i don't see the actual implementation for control in the loop_labels branch that takes arguments, i think FROGGS perhaps forgot to check in the changes to a specific file? 06:14
06:18 rurban1 joined 06:20 sorear_ left 06:21 sorear joined 06:41 raiph left 07:22 fridim_ left 07:40 rindolf joined 07:41 SamuraiJack joined 07:45 berekuk joined 07:46 dbr left 07:47 darutoko joined 08:14 nnunley left
FROGGS timotimo: did I? 08:15
timotimo i dunno? i didn't see a change to the control op 08:16
dalek p/loop_labels: 30b9b79 | (Tobias Leich)++ | src/vm/parrot/QAST/Operations.nqp:
file lost in last commit
FROGGS but, there it is :o)
timotimo: thanks for the pointer :o) 08:17
timotimo yw
FROGGS colomon: can you check that Inline::C now passes its tests? 08:18
I'll add tests later today for loop labels 08:21
08:39 rurban1 left
moritz good UGT morning everybody 09:00
moritz.faui2k3.org/tmp/rakudo-star-...RC1.tar.gz please test!
FROGGS does so 09:04
umm, icu fails... 09:05
timotimo is a bit ashamed about the C blunder
FROGGS need to add the symlink, right? 09:06
FROGGS takes a note to patch that
ahh, that is better 09:07
moritz timotimo: not a big deal, doing the NQP point release was only 5 minutes extra work 09:09
timotimo i'll try to know better in the future 09:10
masak good antenoon, #perl6 09:18
moritz good an, masak
09:23 Rotwang joined
FROGGS hi masak 09:24
masak .oO( an what an adorable an it is! ) 09:25
timotimo huh. a parallel-as-possible build of nqp for all three backends takes about 6 minutes 09:30
moritz well, the building in stages doesn't lend itself well to parallelization 09:31
timotimo yeah
do i have to watch out for the negate property of an anchor?
is there ever going to be a case where a bos anchor will have negate set to 1?
moritz I don't think so
one can write <!before ^> 09:32
09:32 beastd joined
moritz but then it's still an un-negated BOS, and an outer before node that negates the result 09:32
timotimo: just add a guard that dies if it's negated, just to be sure
FROGGS moritz: rakudo-test passed, modules-test passed and I an use perl6-debug for example
moritz FROGGS: \o/ 09:33
FROGGS: does panda also work?
09:34 dmol joined
FROGGS ==> Successfully installed Inline 09:34
but we really should fix parrot<=>icu-config for the next release 09:35
moritz +1
masak re perl6/specs:5e2c420566a46af03937c95f6ed0d7051a29aba2 -- I really like the switch from Increase/Decreasse to Less/More. *but* as long as we keep making such changes to the spec, I don't think we have any claim to talking about language/spec stability. 09:37
"Perl 6 is stabilizing month by month, year by year." yeahbut we just changed the names of the enums for *comparison*. 09:38
(with all the associated downstream ecosystem changes)
itz_ RC1 passes "make rakudo-test" for me 09:39
although the docs still say "make test" :)
09:39 rurban1 joined
itz_ ah its "make test" within the rakudo dir itself 09:40
09:42 xinming left 09:43 xinming joined 09:44 rurban1 left 09:48 hummeleB1 joined 09:54 berekuk left 09:57 awwaiid left 09:59 berekuk joined 10:03 kaare_ joined
lizmat good *, #perl6! 10:10
catching up on backlog
moritz: irclog.perlgeek.de/perl6/2013-11-23#i_7905147 good to hear, moar will land soon so don't worry 10:11
10:11 berekuk left
lizmat TimToady: irclog.perlgeek.de/perl6/2013-11-23#i_7904809 , how about collect { } ? 10:12
fwiw, I would think $_ would *not* be set on each iteration
10:13 `patch` left
lizmat r: $_ = "foo"; map { state $a; last if $a++; .say} # should say "foo" instead of 1 10:14
camelia rakudo-parrot 8d994c, rakudo-jvm 8d994c: OUTPUT«1␤»
lizmat moritz: irclog.perlgeek.de/perl6/2013-11-23#i_7904275 sadly, putting a "return unless $deprecated" for JVM only, does not fix the problem 10:16
will look into that later today 10:17
10:18 spider-mario joined, berekuk joined 10:32 lizmat_ joined 10:33 huf left
moritz ok, thanks everybody for testing 10:35
10:35 lizmat left
moritz please also review the release announcement 10:35
10:51 kivutar left 11:04 berekuk left 11:05 kivutar joined 11:25 PacoAir joined
masak does so 11:53
11:53 kivutar left 11:56 denis_boyun joined 12:00 xenoterracide left
masak moritz: very minor nit: s/Proc::Status-objects/Proc::Status objects/ -- it's probably a Germanism to hyphenate there. 12:02
in general, it's "<noun><noun>" or "<noun>-<noun>" in German, but "<noun> <noun>" in English. 12:03
(Swedish does the same as German in this regard)
12:07 berekuk joined 12:12 aborazmeh joined 12:16 tgt joined
dalek kudo/nom: a7ee091 | (Elizabeth Mattijsen)++ | src/core/Deprecations.pm:
Make sure DEPRECATED messages don't die on JVM
12:20
lizmat_ $ perl6-j -e 'say "foo".ucfirst'
Foo
Saw 1 call to deprecated code during execution.
================================================================================
Any eval (from unknown) called at:
gen/jvm/stage2/NQPHLL.nqp, line 1186
12:21 lizmat_ is now known as lizmat, aborazmeh left
lizmat the position is completely wrong, but at least this may give jnthn some pointer as to what's wrong with Backtrace in on jvm 12:21
off to see some more of Copenhagen& 12:22
jnthn Yeah, that looks the wrong line of the backtrace.
preflex jnthn: you have 2 new messages. '/msg preflex messages' to read them.
jnthn Hmm...
lizmat also: it seemed that $deprecated contained an Any instance 12:23
jnthn lizmat: What's it meant to be? 12:24
lizmat original error message:
No such method 'package' for invocant of type 'Any'
in sub DEPRECATED at gen/jvm/CORE.setting:16747
I tried to do an early exit from DEPRECATED by doing a 12:25
return unless $deprecated;
but that didn't fire, also unless $deprecated.defined didn't fire
could also be some "is hidden-from-backtrace anomaly 12:26
really off now&
jnthn o/
timotimo o/
12:26 kkielak joined
FROGGS masak: okay, will take that into account :o) 12:27
12:29 SamuraiJack_ joined
FROGGS hi jnthn, hi lizmat btw :o) 12:29
jnthn masak: I think the stabalizing statement is clearly about the overall trajectory, and I think it's true for that. Picking out one data point that's off it doesn't mean it's false overall. 12:31
12:32 SamuraiJack left
masak jnthn: agree. 12:37
aka "anecdotal".
I'm just saying that sometimes it feels surprising which parts of the spec are still negotiable.
I'm *very* aware that the stability of the ecosystem/community depends on the stability of the spec. 12:38
and if it's true that speed will cease to be the bottleneck soon, then spec stability may very well become the new bottleneck.
12:40 SamuraiJack__ joined 12:44 SamuraiJack_ left
jnthn masak: Yes, I can agree there's a risk of that. 12:44
timotimo is moarvm going to be much faster than parrot before we start on the JIT? 12:47
FROGGS I hope there won't be any breaking changes necessary in future... I mean, it feels alright atm, but what do I know?
and by breaking I mean only implemented stuff of course
12:50 preflex left
masak jnthn: it's hard to quantify, but "they just changed the names of the comparison enums" contributes to some extent to "they are still fiddling with the language [so I'll wait]" 12:51
12:52 preflex joined, ChanServ sets mode: +v preflex
jnthn station; bbiab 12:57
masak release announcement looks good. 13:09
moritz++ 13:10
13:11 denis_boyun left
timotimo i should move unary nodal hyper ops back to the top of my priority queue ... 13:13
13:15 denisboyun joined
timotimo it's been in the announcement for a long time now :P 13:15
masak ++timotimo 13:18
timotimo questhub.io/realm/perl/quest/520fe6...dd3200001b <- you can +1 my quest on questhub :) 13:19
timotimo commutes
FROGGS writes now tests for loop labels 13:25
timotimo for less denglisch, move the now before the verb or at the end of the sentence 13:31
what shall iname my new nodal branch? 13:32
nodality_2_the_hypering
nodal-electric-boogaloo
masak nodal-all-the-things 13:33
timotimo should i actually watch electric boogaloo? 13:35
maybe i should just watch the first one in the series 13:36
nodal-the-things 13:37
moritz nodal-the-brave 13:40
dalek albot: e6b8a4e | moritz++ | stdin:
Christmas time approaches
13:42
masak nodal-the-noodle 13:52
14:06 kkielak left 14:12 ilogger2 joined, ChanServ sets mode: +v ilogger2 14:17 nnunley joined
dalek p/loop_labels: 3f0dc90 | (Tobias Leich)++ | t/nqp/83-loop-labels.t:
added tests for loop labels
14:20
moritz R* tagged. 14:24
R* uploaded.
FROGGS I need to test the msi build then... 14:25
moritz++
moritz rakudo.org updated. 14:29
announcement mail sent. 14:31
\o/ wikipedia accepted first first attempt to enter the captcha 14:33
dalek ar: fab1ecd | moritz++ | tools/star/release-guide.pod:
update release guide with 2013.11 release
14:37
moritz this concludes the release process
colomon \o/ 14:39
tadzik moritz++ 14:41
colomon oooo, star release! moritz++ 14:43
So, I was telling my wife about Liz Carroll's Irish fiddle version of Peter and the Wolf. I said "Her 'Duck' is a nice enough reel, but I think the oboe in the original does a better job of conveying duckiness." And she replied, "Well, when you're a fiddler, everything looks like a nail." 14:45
My question: Is there a formal name for that sort of thing? An allusion to a metaphor?
timotimo "sick burn" not good enough word for ya? 14:46
moritz (colomon's wife)++
snow... something
arnsholt moritz: Snowclone
colomon should perhaps point out that his wife is a fiddler. ;) 14:47
moritz not sure how well it fits here
arnsholt Yeah, it's only snowcloneish
14:52 zakharyas joined
dalek p/loop_labels: a40804b | (Tobias Leich)++ | src/vm/parrot/QAST/Operations.nqp:
remove debug cruft
14:54
masak it's an interesting snowclone, because the template is "when all you have is a <X>, everything looks like a <Y>". 14:56
14:57 chturne joined
timotimo are most snowclones unary? 14:57
masak but this instance is "when you're a <X>...", and also the <Y> has been retained from the original ("hammer", "nail") instance.
timotimo oh
masak timotimo: no, I don't think so.
timotimo now i wonder what naryness most snowclones have
FROGGS nqp: for [1, 2, 3, 4, 5] { next if $_ == 3; say($_) } 14:58
camelia nqp-moarvm, nqp-jvm, nqp-parrot: OUTPUT«1␤2␤4␤5␤»
chturne I'm having problems building Rakudo Star from Git with ICU support on Ubuntu. :-(
timotimo oh yes, icu :(
there was an outstanding issue, wasn't there?
chturne My error message is: auto::icu - Is ICU installed...error: icushared not defined
I have no idea what this means :'( 14:59
timotimo, I've no idea, I'm just trying to get started with Perl 6. I'd like to contribute some day, so that's why I'm building from git. 15:00
timotimo ah, you're building github.com/rakudo/rakudo, right?
"Star" is just our monthly packaging of rakudo plus a bunch of modules 15:01
15:01 ajr joined
chturne git clone git://github.com/rakudo/rakudo.git was my poison of choice. 15:01
15:01 ajr is now known as Guest16815
timotimo if parrot won't build for you, you can try our JVM port instead. it has pretty much all features except full NativeCall 15:01
i *believe* you can build parrot without icu, too. you won't have cool unicode properties and stuff though
but you don't need icu to get the jvm port to work 15:02
chturne Yeah, that makes me sad
timotimo otherwise, if you're already building stuff from source, you might as well try building icu, too
chturne I'll try the JVM port for now, just to play, but if anyone has any ideas how I can get the Parrot version working, I'd be grateful :)
timotimo worst case, rely on camelia here:
chturne (with ICU)
timotimo p: say "hi there, i'm your helpful evalbot"; 15:03
camelia rakudo-parrot a7ee09: OUTPUT«hi there, i'm your helpful evalbot␤»
FROGGS chturne: you'd need to make a symlink
from /usr/include/x86_64-linux-gnu/unicode to /usr/include/unicode
timotimo thanks FROGGS :) 15:04
chturne: i've only started contributing ~10 month ago, so it's almost still fresh in my mind and i'd love to help you get started
chturne FROGGS, I passed the --icuheaders option to specify the directory where Ubuntu installs the libicu headers, why would the symlink be change the behaviour I'm seeing?
FROGGS chturne: parrot is using icu-config, which borken when it comes to multi-arch... we'd need to path it to use pkgconfig
15:05 Guest16815 is now known as ajr_
chturne timotimo, great! I'd appreciate that :) 15:05
FROGGS chturne: because parrot is using icu-config which tells it wrong paths
chturne Ah right, thanks FROGGS, I'll give that a whirl in a sec and report back!
FROGGS chturne: no idea if --icuheaders works at all, never used it
chturne Well it fixed my initial problem of the configure script moaning that it couldn't find the icu headers, since it was looking in /usr/include/unicode 15:06
FROGGS exactly 15:07
chturne Huzzah! Parrot is now compiling. Thank you FROGGS! 15:08
FROGGS you're welcome :o) 15:09
timotimo you can still build the JVM port anyway, because you can play around with our concurrent stuff on it :)
FROGGS yes, one can build both version without any problems
chturne Neat, I'll build that next :) 15:10
timotimo perl Configure.pl --backend=jvm,parrot && make -j3 all install
FROGGS you will end up with a perl6-p and perl6-j binary
timotimo after a configure, you'll have to rebuild both parts, so best start with it already
chturne Oh, well that train has left the station, haha.
15:10 xinming joined
timotimo well, building jvm, parrot and moarvm in parallel takes about 6 minutes on my system, so you're not losing too much time 15:11
15:17 raiph joined
dalek p/loop_labels: 1cefc86 | (Tobias Leich)++ | src/ (2 files):
implement labels for repeat and for loops
15:18
FROGGS jnthn: that works like a charm!
timotimo did you find a good place to put the constants yet? 15:19
diakopter .
timotimo can't they go right next to the ones we already had for control exceptions? 15:20
FROGGS timotimo: yes, %const_map, %handler_names and %control_map
I'd call them NEXT_LABEL for example 15:21
timotimo maybe i'll work on the jvm codegen for you :)
FROGGS ohh, that'd be nice :o) 15:22
if that works out we could have it in rakudo in a week :o)
timotimo right now i'm on my simplify_begin branch, though 15:24
FROGGS okay, I think I let that how it is, and wait for jnthn++ to give his opinion
doesn't make sense to spend more time if we don't know if that is how it should be 15:25
timotimo: no worries :o)
TimToady lizmat: then what does collect {} do that {} xx * doesn't do?
FROGGS I'll muse about S11 module installation a bit more
timotimo is collect the name for listless map? 15:26
TimToady it's the rename that lizmat++ suggested
(rename of listless map) 15:27
timotimo something's weird. i've run j-clean and it won't build anything but Pod and ModuleLoader and then proceeds to create perl6-j, perl6-jdb-server and perl6-eval-server
moritz maybe j-clean misses some files 15:28
timotimo yeah, perl6-eval-server and perl6-jdb-server for example :)
install/languages/perl6/lib/Perl6/*.jar has lots of stuff
ah, but that's not supposed to be cleaned 15:29
15:29 mtk joined
timotimo removing those two seems to have helped 15:30
no, wait
it just does these super early
15:36 xinming left 15:37 xinming joined
diakopter I like trains 15:40
FROGGS :o)
masak p: enum Choice <Aye Nay>; sub vote(Choice $choice = *) { say "You voted $choice" }; vote() 15:41
camelia rakudo-parrot a7ee09: OUTPUT«Nominal type check failed for parameter '$choice'; expected Choice but got Whatever instead␤ in sub vote at /tmp/nnkKjjqOEZ:1␤ in block at /tmp/nnkKjjqOEZ:1␤ in any at /tmp/nnkKjjqOEZ:1␤ in any at gen/parrot/stage2/NQPHLL.nqp:1146␤ in a…»
masak p: enum Choice <Aye Nay>; sub vote(Choice $choice = *) { say "You voted $choice" }; say "but it's a runtime error, no?"; vote() 15:42
camelia rakudo-parrot a7ee09: OUTPUT«but it's a runtime error, no?␤Nominal type check failed for parameter '$choice'; expected Choice but got Whatever instead␤ in sub vote at /tmp/BI7iWQi6fV:1␤ in block at /tmp/BI7iWQi6fV:1␤ in any at /tmp/BI7iWQi6fV:1␤ in any at gen/parrot…»
masak thinks we can do better on that one :)
also, what's the easiest way to actually be able to provide a * value in the above?
make a subtype that's either a Choice or Whatever? 15:43
moritz yes
colomon re trains: www.youtube.com/watch?v=DV8Qfs5vaBA # we have tickets to ride in three weeks
FROGGS: Inline::C passing (parrakudo) smoke tests 15:47
FROGGS \o/ 15:48
thank you!
masak oh! so LPW is why zefram++ has submitted two rakudobugs! 15:49
jnthn o/ from a train
colomon \o 15:50
jnthn is, apparently, surfing with "full fart" :D
masak trainthn! \o/
FROGGS hehe
timotimo haha
masak yes, 'cus sv:"fart" is en:"speed". :)
timotimo "volle fahrt" in german as well 15:51
masak the closest gloss in English is "fare", as in "fare thee well".
jnthn masak: I know, but I still can't not smile at it :)
15:51 Rotwang1 joined
timotimo strange, the error i used to get with my simplify_before branch is now gone 15:51
16:01 xinming left 16:02 xinming joined 16:03 pecastro joined 16:09 xinming left 16:10 xinming joined
masak today I am a PHP programmer. 16:10
diakopter so scare.
masak I can see why people don't have a big fondness for this language. :)
<masak> yeahbut what's the keyword for declaring a local variable? 16:11
<php> uh...
<masak> :( :( :(
timotimo what do you need local variables for? you have namespaces!
diakopter masak: just build your own closure system. 16:12
masak PHP likes globals so much, it has superglobals.
diakopter ".. and then when you want to invoke something, just run this eval instead..."
masak diakopter: so simple!
timotimo er, is t/spec/S05-modifier/perl5_5.rakudo.parrot failing tests even without my local changes? 16:14
3 tests?
hm, it doesn't seem to come from the optimizer 16:19
FROGGS timotimo: I think that is what I reported a few days ago 16:23
timotimo did you find out what caused it? 16:24
it doesn't seem like --target=optimize is giving me different regexes
oh, of course, i didn't get the commit for rakudo that calls the regex optimizer yet
%)
16:25 MAA0HXZ joined 16:26 cognominal joined
FROGGS no, I am not sure what caused it 16:26
timotimo it was probably my mucking about with everything :( 16:28
FROGGS well, it was all clean by the release, so, must be your local changes, right? 16:31
timotimo it was? that's good
FROGGS yes 16:32
16:32 huf joined
dalek kudo/nom: 60c8c1a | moritz++ | tools/build/Makefile- (2 files):
make clean is now more thorough
16:33
moritz with this patch, 'make clean && git status --ignored' looks pretty clean
timotimo thanks
moritz (of course you need to configure first to get the patches into your actual Makefile) 16:34
diakopter if only you could make all the targets depend on teh makefile, and the makefile depend on teh configure things..
moritz you can, in fact 16:35
but the Makefile must invoke Configure.pl, which isn't pretty
diakopter :)
timotimo nqp doesn't have rx:P5? 16:38
FROGGS timotimo: no
it is compiled after the nqp binary
timotimo ah, so i can't test it directly
jnthn Well, there's a p5regex tests
masak dalek's path summarizer could benefit from a little bit of rosettacode.org/wiki/Find_Common_Directory_Path
timotimo ah, that's good
dalek kudo/moar-support: a6eeb0b | jonathan++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Implement nominal type checks in binder.

Actually regresses us a tiny bit 'cus it picks up on something that is not yet implemented in the HLL type mapping. But gets rid of all the warnings.
16:42
timotimo t/p5regex/01-p5regex.t ................ ok :\ 16:46
16:47 denis_boyun joined
masak liked www.modernperlbooks.com/mt/2013/11/...arker.html 16:49
16:55 raiph left 16:56 denis_boyun__ joined 16:57 denis_boyun left 16:58 btyler joined, xinming left 16:59 autumn joined 17:02 xinming joined 17:04 rurban1 joined 17:14 fridim_ joined, Rotwang1 is now known as Rotwang
masak wow. you can stash a change to a file, 'git mv' the file to a new name, and pop the stash -- the stashed changes apply to the new file. 17:16
this is why I love git <3
17:16 rindolf joined
timotimo indeed! 17:17
i'm not sure why the regex breaks 17:20
17:20 xinming left
timotimo does **? work for frugal quantifiers in p6regex? 17:20
17:20 xinming joined
timotimo r: say "acdbcdbe" ~~ /a [b|c|d] **? 6..7 (.)/; 17:24
camelia rakudo-parrot a7ee09: OUTPUT«「acdbcdbe」␤ 0 => 「e」␤␤»
..rakudo-jvm a7ee09: OUTPUT«Unhandled exception: java.lang.RuntimeException: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp'␤ in (gen/jvm/main.nqp)␤␤»
17:32 raiph joined
timotimo oh! oh! oh! 17:32
the codegen for quantifiers will create a new array of integers for the labels for every iteration of the loop, when it could just re-use the first one 17:33
cxreg any ideas about the first Star to target jvm?
timotimo we're pretty close to getting NativeCall working, so next month or the month after that, depending on when our NativeCall-jvm person finds the time 17:34
cxreg awesome
timotimo you can already use rakudo from source to install panda and then install most modules you're interested in
i mean, with JVM
17:35 xenoterracide joined
timotimo oh, i was wrong, the IntegerArray came from alt, not from quantifier 17:35
i wonder if it's worth it leaving a register allocated for that list and only building it once 17:37
17:38 avar joined 17:44 btyler left 17:50 btyler joined 17:55 xinming left 17:56 xinming joined 18:02 btyler left
timotimo er, i must have done something horribly wrong 18:03
Stage parse : 224.189 18:04
FROGGS uhh, I dont wanna have that
18:04 btyler joined
timotimo yeah, i can imagine 18:04
18:11 klaas-janstol joined 18:17 denis_boyun__ left 18:22 kkielak joined 18:24 denis_boyun joined 18:31 colomon joined 18:39 kkielak left
timotimo i don't understand how it can have gotten so slow :( 18:39
does a fresh_p start out being null? 18:40
rather, when i get a fresh_p, will unless_null do the goto or not?
18:49 ajr_ left 18:52 zakharyas left 18:56 kkielak joined
chturne timotimo, I don't know what you're talking about, but I got Stage parse : 224.518 when I built Rakudo as it was thinking about gen/parrot/CORE.setting, which is like 17k long 19:00
19:01 sqirrel joined 19:02 denis_boyun left
timotimo i used to have 110s 19:04
this better not be something i messed up in the regex implementation right before the release >_<
19:06 denis_boyun joined, klaas-janstol left
timotimo chturne: so, since you already said you'd like to contribute, do you have any particular area of interest? 19:06
my main interest at this moment seems to be making rakudo faster, which is not bearing a lot of fruit 19:07
19:12 kkielak left 19:13 raiph left 19:15 kkielak joined
timotimo has the encoding for all files always been utf8? 19:19
has been since may apparently 19:20
timotimo downgrades parrot 19:24
19:28 berekuk joined 19:33 djanatyn joined
timotimo where is the logical explanation for this? 19:34
jlaire javascript's this has no logical explanation 19:46
timotimo :D
timotimo is now smart-checking his hard drives 19:47
lue timotimo: I would imagine that Perl 6, The Champion of Unicode™, has all its source files in some sort of UTF- format :) 19:51
timotimo qrpa.c:54:1: error: ‘ASSERT_ARGS_COMPARE’ undeclared (first use in this function) 19:53
what, why?
everything is just crumbling to pieces around me, what is going on? :(
i can't seem to get nqp back to a state where it's not dog slow 20:02
chturne timotimo, I'm not sure yet, I'd like to get started with anything really, just to familiarise myself with the bootstrapping/project organisation. 20:04
timotimo that's fine :)
chturne I've got experience with dynamic language targetting the JVM, so I might take a look at the JVM port first.
Oh, and I need to learn Perl 6 too :D 20:05
lue timotimo: I had that ASSERT_ARGS_COMPARE error a while ago (and even got a fix in rakudo out of it). Have you updated your rakudo with the latest changes (in particular to qrpa.c) ? 20:06
timotimo i'm bouncing around through old commits to see if i can get my nqp fast again
i'm gonna lose my mind here 20:09
20:10 raiph joined
timotimo okay. my hard drives are not obviously damaged, my CPU is not overheating, my swap space is deactivated, my parrot has been at 5.9.0 and 5.10.9 and my nqp has been in all sorts of versions 20:17
still stage parse has grown to about 220% its normal time 20:18
now i'll try the things that are not supposed to help, but inevitably will >_>
like rebooting
FROGGS :/
timotimo FROGGS: did you experience a speed regression?
FROGGS I'll switch the branch and try... 20:19
nwc10 debugging build vs optimised build?
timotimo don't think so. does parrot have a flag for that?
nwc10 IIRC 20:20
and the default is not to optimise
timotimo oh
that could be it
20:20 jnap joined 20:21 rindolf left
FROGGS parrot_config --dump | grep configure_args 20:22
configure_args => '"--optimize" "--prefix="/home/froggs/dev/nqp/install""'
chturne Is there a coding style guide somewhere? 20:24
timotimo i don't think so, at least i never read one 20:25
FROGGS I guess the Perl 5 style guides are still appropriate
chturne I'm sorry to start with bikeshedding and generally being a douche, but there's a lot of useless whitespace in the Rakudo sources :'( 20:26
FROGGS except that sub names are now do-that instead of do_this
jnthn back
FROGGS wb jnthn :o)
nwc10 back online, or back where you started? 20:27
timotimo chturne: if you keep removing whitespace around changes you did anyway, it's fine
but i wouldn't like seeing a huge diff made up only of whitespace changes
chturne Fair enough, I figured as much :)
timotimo i know there's lots of lines that contain only spaces
jnthn nwc10: Back online :) 20:29
After taking some dinner
timotimo FROGGS: that was it
i feel like punching something
a whole day wasted due to that
FROGGS :(
woolfy timotimo: punch my virtual hands! They can take it!
FROGGS nwc10++ for that
woolfy lizmat does the real punching my hands sometimes...
timotimo woolfy: POW! POW!
woolfy ah! oh! 20:30
HARDER!!!
20:30 sqirrel left
timotimo 𝐏𝐎𝐖 𝐏𝐎𝐖 𝐏𝐎𝐖 20:30
POW POW POW
ꟼOW ꟼOW ꟼOW 20:31
tadzik f.kulfoto.com/pic/0001/0025/0Vcn124393.jpg
nwc10 the speed difference (about 2.5x) looked suspiciously like the speed difference between optimised and not
woolfy Hehehe
timotimo nwc10: so the 2x speed improvement i measured for update lineposcache was from optimized to unoptimized build with my optimisation!
i feel like this is a good point in time to go out and run for half an hour 20:33
20:34 jnap left
timotimo even though it's fricking cold and also dark outside 20:34
woolfy we're not stopping you... 20:35
dalek p: f4514bb | dwarring++ | examples/rubyish/ (3 files):
basic rubyish inheritance (no mixins yet)
20:36
jnthn Wow. Rubyish keeps going and going :) 20:37
timotimo: fresh_p - you have no promises about what'll be in there. Just that nother else is using it. 20:42
FROGGS .oO( will nqp run all the dynamic languages? )
FROGGS .oO( fresh_p of Bel Air ) 20:43
woolfy and lizmat just had sushi... translate.google.com/#nl/en/nom%20nom%20nom (select the loudspeaker to listen)
FROGGS hehe 20:44
jnthn haha! 20:45
hah, I like the google translate suggestion...
Translate from: French
:D
FROGGS ohh, it actually means something: translate.google.com/#hmn/en/nom%20nom%20nom 20:46
jnthn haha! 20:47
FROGGS our official branch :o)
woolfy :-) 20:54
timotimo ran the stress away by going 2.62km in 16:00m 21:03
masak 'night, #perl6
FROGGS gnight masak 21:06
woolfy timotimo++ 21:08
jnthn e 21:10
um ;)
lizmat is also calling it a day 21:11
gnight #perl6!
FROGGS sleep well lizmat 21:13
jnthn o/ lizmat
timotimo now i feel slightly better 21:19
21:23 Rotwang left 21:24 Rotwang joined, Rotwang1 joined 21:25 Rotwang1 left 21:26 Rotwang left, Rotwang joined 21:28 kkielak left
diakopter 21:34
timotimo 21:36
tadzik .u FRONT FACING BABY CHICK 21:37
timotimo i can't find the black heart on my keyboard :(
tadzik :u
jnthn jnthn.net/papers/2013-npw-conc.pdf # slides from NPW talk. same as APW, pretty much, but with updated naming...
diakopter tadzik: rotfl 21:38
timotimo jnthn: will a recording be uploaded at some point?
jnthn timotimo: There was no recording, afaik 21:40
timotimo aaw. all right then :(
i'm considering doing a lightning talk about perl6 during the congress, but i don't know yet what it should be about
FROGGS what congress? 21:41
timotimo the 30c3
nwc10 jnthn: I fear that that means that you'll just have to keep presenting the talk, until someone records it 21:42
jnthn nwc10: Looks like :P 21:43
FROGGS .oO( "Repetitive epic is the most elegant form of Cardassian literature." ) 21:44
timotimo so if i call $p.vow, the $p will no longer accept .keep or .break called on it? 21:45
tadzik oh, someone's watching DS9?
timotimo surprisingly, rebuilding parrot --optimize'd won't make the lineposcache update go any faster 21:48
oh well.
21:48 dwoldrich joined
FROGGS :/ 21:48
timotimo i'll still take a 2x improvement. though benabiks worries are probably legit.
jnthn timotimo: correct 21:49
FROGGS caches are evil by default 21:50
21:54 raiph left
diakopter FROGGS: I agree. 21:59
I've begun to believe that all manual optimizations are [some form of] evil 22:00
FROGGS and it adds a factor of complexity 22:01
btw, I'd like to implement automatic dependency recompilation at some point 22:02
aka cache invalidation of *.pbc
timotimo i'm interested in that 22:03
FROGGS ohh, pick it if you want :o) 22:04
timotimo oh, no
i'm interested in *you* delivering that :D
FROGGS hehe
timotimo but in my books, you've already done one of the coolest things, which is loop labels
well, partially :)
FROGGS hehe 22:05
yeah, would be cool to have them in rakudo
diakopter well if you have those, you have most of all the gotos 22:06
FROGGS and, two days to implement them in nqp is alright I think, since I never did code-gen before
timotimo diakopter: for a goto, just emit a dummy loop with a label? ;)
diakopter might need more than one. like, 16, perhaps
timotimo code-gen gets nonscary pretty quickly in NQP, IMO.
diakopter so nonscare 22:07
FROGGS diakopter: really? I just go to the already existing loop labels by throwing an exception to the loop
timotimo much gen
FROGGS how would that fit with goto?
okay, I see that you could go to a label if that is in outer frames... 22:08
but what if you would have to go forward? 22:09
you can't throw an exception in the other direction :o)
timotimo make everything before the label "inside" a frame
because that'll totally work! :)
22:12 cognominal left, cognominal joined
diakopter of course the solution is to put every statement in its own frame called from the previous statement 22:15
timotimo ah, why didn't i think of that!
i'll implement that optimization immediately!
that's as clever as SSA!
diakopter er. 22:16
I meant.. called from the following statement.
*the frame of the 22:17
timotimo yeah
so like in lisp, but in reverse
the program begins with (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
diakopter yes.
quite insightful. 22:18
timotimo jnthn: was there simply no time for the KeyReducer or did you stop liking it? 22:20
jnthn timotimo: I've never been completely happy with it; it's a bit too specific. 22:21
We need something for reduction-y things, I think, but I think we probably want to solve the general problem...
timotimo good to know, thanks 22:23
jnthn Also, at the time I thought it was nice to have synchronization primitives that align with $/@/%, as it felt kinda helpful for explaining. But I'm less convinced on that now...especially as we have both channels and supplies.
timotimo uh oh, if you make stage parse 2x as fast, the optimizer might become the bottleneck and then i'll have to optimize the optimizer =o 22:24
jnthn Well, I'm very much still investigating stuff at the moment, but also need to sleep soon...teaching tomorrow morning. 22:27
timotimo that's okay :) 22:31
seems like creating a new ResizableIntegerArray each time we run into an alt to store the labels is no noticable performance hit ... 22:36
(at least not for 3 alterations ... maybe it's bigger for more)
(at least i could pre-size the array instead of letting it grow dynamically) 22:37
jnthn It's normally rather small.
And yeah, those objects are short lived
timotimo i thought short-lived objects = lots of GC
does an Ops support unshift? 22:38
jnthn Well, lots of short lived objects trigger it, yeah...
But then they go away relativley cheaply too
It's those with mid-length lives that cause most headaches.
timotimo because they just go into the long-lived-object-store, but then immediately get the costly removal?
diakopter they don't take up any more cpu time, just memory between 2nd-gen collections, at least on moar 22:39
dalek p/cursor-mem-opts: 3b28064 | jonathan++ | src/QRegex/ (2 files):
Be more eager to throw out things we'll not need.

This saves memory and eases the GC's role, especially as we keep hold of a lot less call frames.
22:40
diakopter well, I guess a bit extra cpu time for 2nd gen stuff, but constant
jnthn Yeah, it's more than they live longer than they need to.
So mostly memory.
timotimo grabs and compiles 22:41
FROGGS too 22:42
timotimo and i'll spectest as well. on parrot.
FROGGS: you'll do jvm?
FROGGS moar atm 22:43
the others after that
22:45 Rotwang left
timotimo is almost to the setting 22:46
i get no noticable time improvement 22:50
FROGGS hmmm 22:51
I'm not there yet
diakopter maybe some hamsters got into jnthn
I mean, into jnthn's computer
to make it go faster or something.
jnthn Well, I did a sample profiled build just now and we come out with about 2/3 the sample count. 22:52
diakopter anyone going to lpw here? 22:54
timotimo t/spec/S06-other/main-usage.rakudo.parrot ....................... Dubious, test returned 1 (wstat 256, 0x100) 22:56
FROGGS happens on my box since months 22:57
timotimo OK
FROGGS (using 4 jobs)
jnthn 'night, #perl6 23:02
23:16 Vlavv` joined 23:18 cosimo_ left, cosimo joined
timotimo p: say "jnthns branch may not save time when parsing, but it saves {(1748856 / 1636340) * 100 - 100} percent of max resident set size."; 23:25
camelia rakudo-parrot 60c8c1: OUTPUT«jnthns branch may not save time when parsing, but it saves 6.876077 percent of max resident set size.␤»
timotimo about 10 MB, not bad. 23:26
23:28 rjbs joined 23:43 pippo joined
pippo r: my @a; my @b; for ^10 {@b=1..$_; @a[$_]=@b}; say @a.perl; 23:45
camelia rakudo-jvm 60c8c1: OUTPUT«(timeout)»
..rakudo-parrot 60c8c1: OUTPUT«Array.new([1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4,…»
pippo n: my @a; my @b; for ^10 {@b=1..$_; @a[$_]=@b}; say @a.perl;
camelia niecza v24-98-g473bd20: OUTPUT«[[1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, …»
timotimo r: my @a; my @b; for ^10 {@b=1..$_; @a[$_]=@b[]}; say @a.perl; 23:46
camelia rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new([1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, …»
timotimo r: my @a; my @b; for ^10 {@b=1..$_; @a[$_]=@b.list}; say @a.perl;
camelia rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new([1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, 8, 9], [1, 2, 3, 4, 5, 6, 7, …»
timotimo r: my @a; for ^10 {my @b:=1..$_; @a[$_]=@b.list}; say @a.perl;
camelia rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new(().list.item, (1,).list.item, (1, 2).list.item, (1, 2, 3).list.item, (1, 2, 3, 4).list.item, (1, 2, 3, 4, 5).list.item, (1, 2, 3, 4, 5, 6).list.item, (1, 2, 3, 4, 5, 6, 7).list.item, (1, 2, 3, 4, 5, 6, 7, 8).list.item, (1, 2,…»
timotimo r: my @a; for ^10 {my @b=1..$_; @a[$_]=@b}; say @a.perl; 23:47
camelia rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new([], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8, 9])␤»
pippo Hello timotimo !
timotimo hello pippo :) 23:48
dalek kudo-star-daily: 2625ddb | coke++ | log/ (5 files):
today (automated commit)
rl6-roast-data: e7c6d47 | coke++ | / (3 files):
today (automated commit)
pippo That is what I wanted ! How did you manage to know ?
:-)
timotimo i know that symptom from python ;) 23:49
this may be helpful:
r: my @a; for ^10 {my @b=1..$_; @a[$_]=@b}; @a[0].push("hi"); say @a.perl
camelia rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new(["hi"], [1], [1, 2], [1, 2, 3], [1, 2, 3, 4], [1, 2, 3, 4, 5], [1, 2, 3, 4, 5, 6], [1, 2, 3, 4, 5, 6, 7], [1, 2, 3, 4, 5, 6, 7, 8], [1, 2, 3, 4, 5, 6, 7, 8, 9])␤»
timotimo er, sorry
r: my @a; my @b; for ^10 {@b=1..$_; @a[$_]=@b}; @a[0].push("hi"); say @a.perl
camelia rakudo-parrot 60c8c1, rakudo-jvm 60c8c1: OUTPUT«Array.new([1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5, 6, 7, 8, 9, "hi"], [1, 2, 3, 4, 5,…»
timotimo see how it pushed "hi" to all the lists, though you pushed only once? 23:50
that's because @a contains exactly one @b in every slot
you never caused a copy to happen, because @b = 1..$_ is a list assignment
rather than a reference replacement
23:50 BenGoldberg joined
timotimo if you put the my @b inside the loop, you'll get a fresh @b every iteration 23:51
23:51 dmol joined
pippo OK I understood. Thank you very much!! 23:51
timotimo you're welcome :)
always glad to help
pippo good night timotimo :-) 23:52
23:52 pippo left 23:55 dmol left 23:56 dmol joined, FROGGS joined 23:58 denis_boyun__ joined 23:59 denis_boyun left