Camelia, the Perl 6 bug

IRC log for #perl6, 2014-07-04

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 kurahaupo joined #perl6
00:39 carlin joined #perl6
00:41 zengargoyle has anybody used ::Test skip,skip_rest,todo functions?
00:52 Khisanth joined #perl6
01:04 perltricks joined #perl6
01:10 BenGoldberg joined #perl6
01:25 perltricks hey EVAL is missing from perl6/doc and I want to add it, but I'm not sure where it should go. Should it be in routines? All the routines seem to be extracted from a parent file - what would the parent of EVAL be? thanks!
01:30 hoverboard joined #perl6
01:45 dayangkun joined #perl6
01:52 FROGGS_ joined #perl6
01:57 klapperl_ joined #perl6
01:57 chenryn joined #perl6
01:59 xfix joined #perl6
01:59 xfix joined #perl6
02:04 telex joined #perl6
02:04 perltricks left #perl6
02:21 mtj joined #perl6
02:26 dalek ecosystem: 80070e7 | (Andrew Egeler)++ | META.list:
02:26 dalek ecosystem: Repoint some modules to fixed versions.
02:26 dalek ecosystem:
02:26 dalek ecosystem: The following modules have had PR's open to fix tests for over a month,
02:26 dalek ecosystem: so they are being moved to a fork:
02:26 dalek ecosystem:
02:26 dalek ecosystem: IRC::Utils
02:26 dalek ecosystem: Date::WorkdayCalendar
02:26 dalek ecosystem: MessagePack
02:26 dalek ecosystem: TestML
02:26 dalek ecosystem: YAML
02:26 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/80070e72a4
02:54 chenryn so, what's perl6-community-modules? all modules which noone want to manage?
03:04 rurban1 joined #perl6
03:07 retupmoca it's modules I've fixed so they build and pass tests, but the original author isn't responding to pull requests
03:07 retupmoca and I don't want to own them, so I just threw them into a new project
03:11 zengargoyle is there a better way to get a type object from a string than $type = EVAL "$string.new()"; ?
03:12 retupmoca m: my $name = 'DateTime'; say ::($name).now
03:12 camelia rakudo-moar cce7f9: OUTPUT«2014-07-04T03:12:09Z␤»
03:12 retupmoca zengargoyle: ^ that's the best way I know
03:15 zengargoyle thanks, that looks much better.
03:17 molaf joined #perl6
03:23 atroxaper joined #perl6
03:29 dalek perl6-roast-data: ec1d448 | coke++ | / (6 files):
03:29 dalek perl6-roast-data: today (automated commit)
03:29 dalek perl6-roast-data: review: https://github.com/coke/perl6​-roast-data/commit/ec1d448404
03:37 chenryn ::() is operator?
03:39 [Coke] dwarring?
03:39 [Coke] FYI, you can todo a rakudo test on all three platforms at once with a single line. leave off the ".<vm>" bit, and all 3 will todo.
03:49 [Coke] IIUC, rakudo.parrot is now building but has known issues in spectests?
04:05 kaare_ joined #perl6
04:07 dalek ecosystem: 81dd34d | (Andrew Egeler)++ | META.list:
04:07 dalek ecosystem: Add Net::XMPP
04:07 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/81dd34d116
04:11 anaeem1 joined #perl6
04:11 xenoterracide__ joined #perl6
04:15 anaeem1__ joined #perl6
04:18 dayangkun joined #perl6
04:21 chenryn joined #perl6
04:23 [Coke] I really don't like flattening. :P
04:23 zengargoyle chenryn: i think this explains ::() a bit: http://perlcabal.org/syn/S02.​html#Interpolating_into_names
04:24 [Coke] I have a list of lists that I am trying to print out. It seems the only way I can get it to work is by printing it via .perl; everything else I am trying flattens.
04:25 zengargoyle how would you want it to print out?
04:27 rindolf joined #perl6
04:30 [Coke] m: say set(1..3).combinations(2).lol;
04:30 camelia rakudo-moar cce7f9: OUTPUT«1 2 1 3 2 3␤»
04:31 [Coke] m: say set(1..3).combinations(2).perl;
04:31 camelia rakudo-moar cce7f9: OUTPUT«([1, 2], [1, 3], [2, 3]).list␤»
04:31 [Coke] IWBNI there was a way to get it to stringify like:
04:31 [Coke] [1, 2], [1, 3], [2, 3]
04:31 [Coke] m: say set(1..3).combinations(2).Str
04:31 camelia rakudo-moar cce7f9: OUTPUT«1 2 1 3 2 3␤»
04:32 [Coke] m: say set(1..3).combinations(2).lol.Str
04:32 camelia rakudo-moar cce7f9: OUTPUT«1 2 1 3 2 3␤»
04:32 [Coke] m: say set(1..3).combinations(2).list
04:32 camelia rakudo-moar cce7f9: OUTPUT«1 2 1 3 2 3␤»
04:32 [Coke] m: say set(1..3).combinations(2).list.Str
04:32 camelia rakudo-moar cce7f9: OUTPUT«1 2 1 3 2 3␤»
04:33 zengargoyle m: set(1..3).combinations(2).ma​p({"[{.join(',')}]"}).join(' ');
04:33 camelia rakudo-moar cce7f9: ( no output )
04:34 [Coke] Yes, I feel I shouldn't have to write that code. :)
04:34 zengargoyle funny, that worked in REPL
04:34 retupmoca m: set(1..3).combinations(2).ma​p({"[{.join(',')}]"}).join(' ').say
04:34 camelia rakudo-moar cce7f9: OUTPUT«[1,2] [1,3] [2,3]␤»
04:34 [Coke] you didn't say "say"
04:34 zengargoyle aha
04:34 [Coke] retupmoca++ #but I still feel I shouldn't have to roll that code.
04:35 zengargoyle i doubt print/say can serve as a generic data dumper that always dwims
04:36 zengargoyle maybe there should be a module for that. :)
04:36 [Coke] eh. I'll hold my nose until we get the mythical list rewrite.
04:37 zengargoyle a reverse Grammar would be nice.
04:41 zengargoyle maybe a .sexpr method on listy things
04:42 jack_rabbit joined #perl6
04:44 zengargoyle set(1..3).combinations(2).sexpr('' => ' ', '[' => ', ')
04:50 carlin joined #perl6
04:54 rurban1 joined #perl6
04:56 xenoterracide__ joined #perl6
05:04 thou joined #perl6
05:11 kaare_ joined #perl6
05:15 Exodist joined #perl6
05:29 water joined #perl6
05:30 xinming joined #perl6
05:32 rurban1 joined #perl6
05:32 moritz m: say (1..3).combinations(2).fmt('%02d', ', ')
05:33 camelia rakudo-moar cce7f9: OUTPUT«01 02, 01 03, 02 03␤»
05:33 pdcawley joined #perl6
05:35 [Sno] joined #perl6
06:13 Isp-sec joined #perl6
06:45 rurban1 joined #perl6
06:47 FROGGS_ joined #perl6
06:57 FROGGS_ .tell perltricks I would put EVAL where try/CATCH is, so P5er see how P5's eval became try *or* EVAL
06:57 yoleaux FROGGS_: I'll pass your message to perltricks.
06:57 FROGGS_ psch++
07:04 noganex joined #perl6
07:07 sergot morning o/
07:07 FROGGS_ morning
07:12 Akagi201 joined #perl6
07:12 akagi201_ joined #perl6
07:13 erkan joined #perl6
07:13 erkan joined #perl6
07:15 igorsutton joined #perl6
07:18 jest joined #perl6
07:18 jest hi
07:18 darutoko joined #perl6
07:19 jest I have a clever plan to finally learn some Perl6 by converting some of my P5 code to P6
07:20 jest but I'd like to do this using specific P6 idioms. Is there any organized way (e.g. some website), where such "convert & review with an expert" process would be appropriate or should I organize it on my own?
07:20 zakharyas joined #perl6
07:20 lue joined #perl6
07:21 kivutar joined #perl6
07:21 FROGGS_ jest: there is nothing like that as a website...
07:22 FROGGS_ jest: start doing your conversion, ask here and point to your github repositories, your code and your commits
07:22 FROGGS_ you'll get plenty of advices in case ppl are awake, which usually means daylight in europe
07:25 dalek zavolaj: 0ee3c6c | sergot++ | / (3 files):
07:25 dalek zavolaj: nativecast added
07:25 dalek zavolaj:
07:25 dalek zavolaj: nativecast has been added, it makes us able to cast things conditionally.
07:25 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/0ee3c6ce04
07:25 dalek zavolaj: ab44674 | (Arne Skjærholt)++ | / (3 files):
07:25 dalek zavolaj: Merge pull request #45 from sergot/master
07:25 dalek zavolaj:
07:25 dalek zavolaj: nativecast added
07:25 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/ab446745ec
07:27 chenryn joined #perl6
07:27 FROGGS_ arnsholt: there are open pull requests for moarvm and nqp, and it has to be ported to parrot+jvm in nqp
07:27 FROGGS_ arnsholt: so you might want to revert to unbreak NativeCall
07:27 jest FROGGS_: great, when I'm done with P5 version of my module, I'll try to send something here
07:28 FROGGS_ jest++
07:28 FROGGS_ jest: ooc, what is your module about?
07:28 sergot jest++
07:28 sergot arnsholt: as FROGGS said, it doesnt work until we have MVM_nativecall_cast in moar.
07:29 FROGGS_ sergot: and parrot and jvm
07:29 sergot actually,yes :)
07:29 FROGGS_ because that explodes at compile time, not at runtime
07:31 dalek zavolaj/revert-45-master: c0f68bc | (Tobias Leich)++ | / (3 files):
07:31 dalek zavolaj/revert-45-master: Revert "nativecast added"
07:31 dalek zavolaj/revert-45-master: review: https://github.com/jnthn/zavolaj/commit/c0f68bca0a
07:31 dalek zavolaj: c0f68bc | (Tobias Leich)++ | / (3 files):
07:31 dalek zavolaj: Revert "nativecast added"
07:31 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/c0f68bca0a
07:31 dalek zavolaj: 5706ad7 | (Tobias Leich)++ | / (3 files):
07:31 dalek zavolaj: Merge pull request #46 from jnthn/revert-45-master
07:31 dalek zavolaj:
07:31 dalek zavolaj: Revert "nativecast added"
07:31 dalek zavolaj: review: https://github.com/jnthn/zavolaj/commit/5706ad765f
07:33 teodozjan joined #perl6
07:36 brrt joined #perl6
07:38 noganex joined #perl6
07:39 arnsholt Oh, I just assumed it was merged over there since there was a Zavolaj PR
07:39 nwc10 so excitement. much short lived. wah! :-(
07:40 jest FROGGS_: it's a Pandoc filters copy of Python version: https://github.com/jgm/pandocfilters
07:41 jest FROGGS_: I translated it to P5 almost line-to-line and will "perlify" now
07:41 jest sergot: maybe some side-by-side session then?
07:41 mr-fooba_ joined #perl6
07:42 FROGGS_ arnsholt: no :/... and sorry for not making it clear in the PR
07:43 sergot arnsholt: that's my fault, I'm sorry
07:44 sergot jest: what do you mean?
07:45 virtualsue joined #perl6
07:48 rurban1 joined #perl6
07:53 jest sergot: to show you my code and apply P6 idioms to it, face to face. Unless you are very busy at GSoC?
07:56 dayangkun joined #perl6
07:57 arnsholt Not a problem =)
07:57 arnsholt Just keep me posted on progress on the Parrot/JVM side of things, and we can merge it once that's settled
07:58 arnsholt I've not been following things too closely recently, so it's my bad really
07:58 pecastro joined #perl6
07:58 FROGGS_ yeah, it is a shame you are not here more often :o)
07:59 sergot jest: I'm quite busy at GSoC but we can do this soon-ish I think.
08:00 clkao w
08:00 clkao ~>l
08:36 mr-foobar joined #perl6
08:42 denis_boyun joined #perl6
08:47 masak good antenoon, #perl6
08:49 rurban1 joined #perl6
08:49 moritz \o masak
08:53 chenryn joined #perl6
08:55 kaleem_ joined #perl6
08:55 masak jest: I see that people have said so before, but it bears repeating: most of the nice dicussions about Perl 6 idioms happen here, on the channel.
08:56 masak it's as simple as asking "how do I remove all the elements of @b from @a?" and then you get good answers.
08:56 masak #perl6++
09:03 chenryn joined #perl6
09:04 sergot masak: o/
09:05 xinming_ joined #perl6
09:05 kkielak joined #perl6
09:15 masak \o
09:15 masak heh, Configure.pl works fine without --gen-nqp
09:20 FROGGS joined #perl6
09:22 spider-mario joined #perl6
09:35 chenryn joined #perl6
09:40 jest masak: I'm not sure; there's a big leap from "how do I remove @b-s from @a" to "well... I didn't know about lazy list, this is the pattern that exactly fits in this module". Although, I agree that sharing the code and asking for a bird's-eye view is the way to go.
09:42 pecastro joined #perl6
09:42 masak jest: asking questions is the way to go.
09:42 masak even if you ask the "wrong" question, the answers tend to point in the right way.
09:45 jest masak: sure, but isn't this the old debate of "how do I do X in Y?", "why do you want to do X in Y", "because I want to achieve Z", "oh, then in Perl you should do it like this: ..."
09:46 moritz jest: my typical approach is to ask "I want to achieve Z, so I tried X, and have this problem with it: ..."
09:46 jest masak: the problem is I don't have a problem :)
09:46 moritz jest: that way whoever answers can decide if X is a viable approach, or tackle Z differently right away
09:47 masak what moritz++ said.
09:47 masak IMO, the important thing is to ask.
09:47 Psyche^_ joined #perl6
09:48 masak there are some valuable learnings from "How To Ask Questions". mainly, you should show that you've put in the effort of answering the question yourself.
09:48 jest masak: sure, I fully agry. I just say that partial question may not solve the original problem
09:48 jest masak: for example, take a look at sergot's post http://filip.sergot.pl/en/bl​og/perl6/gsoc_http::headers/ and the response of smls
09:48 * masak does so
09:48 sergot masak: direct link: http://filip.sergot.pl/en/blog/perl6/g​soc_http::headers/#comment-1419095651
09:49 jest masak: I would never got that answer if I only asked "How do I append an element to a list"
09:49 jest masak: only the whole module gives you the idea of how to use it; if it's against the idioms, the API should probably be changed
09:50 jest masak: anyway, sergot declared to do a side-by-side review with me, so I'll share the session impressions on the blog in August :)
09:50 masak jest: oh! that's another trick that I've seen recommended. :)
09:50 jest masak: :)
09:50 masak jest: the best way to get good answers in a forum is not to say "how do I X"
09:51 masak jest: it's to say "your language sucks; can't even do X!"
09:51 jest masak: BTW, on PLPW I asked on approachable and current docs for P6
09:51 masak yes?
09:51 jest masak: you mentioned something new (wiki? docs portal?) being prepared, but not announced yet
09:51 jest masak: I don't remember what or where it was...
09:52 dmol joined #perl6
09:54 sqirrel joined #perl6
09:58 masak jest: http://doc.perl6.org/ ?
09:58 masak jest: it's coming along, much thanks to moritz++ and others.
09:58 masak it's' just a lot of work.
10:00 amkrankruleuen joined #perl6
10:03 jest masak: I know, I highly appreciate their work; I was afraid that Perl 6 book (which I tried to hack 2 years ago...) is not up to the recent changes to the language
10:03 chenryn joined #perl6
10:04 rurban1 joined #perl6
10:15 masak jest: not so much has changed since the Perl 6 book was actively developed.
10:16 masak jest: having said that, the book is not an active project anymore. (maybe it will be again? with the right kind of reboot I believe it could be.)
10:19 denis_boyun_ joined #perl6
10:21 brrt left #perl6
10:21 chenryn Need <beginning perl6>\<learning perl6>\<mastering perl6> etc.
10:24 masak agreed.
10:34 sftp_ joined #perl6
10:37 lizmat good *, #perl6!
10:37 lizmat I was looking where the behaviour of .hash is specced, but I can't seem to find it
10:38 lizmat only hash() (S29:421)
10:38 synopsebot Link: http://perlcabal.org/syn/S29.html#line_421
10:38 lizmat specifically, I'm interested in what:
10:38 lizmat m: { a => 1 }.hash.perl.say
10:38 camelia rakudo-moar cce7f9: OUTPUT«{"a" => 1}␤»
10:39 lizmat m: Hash.new( a => 1 ).perl.say
10:39 camelia rakudo-moar cce7f9: OUTPUT«().hash␤»
10:39 lizmat m: Hash.new( (a => 1) ).perl.say
10:39 camelia rakudo-moar cce7f9: OUTPUT«("a" => 1).hash␤»
10:39 jnthn m: [1,2,3].list.perl.say
10:39 camelia rakudo-moar cce7f9: OUTPUT«Array.new(1, 2, 3)␤»
10:40 jnthn .hash should do the analogous thing.
10:40 jnthn (strip the containerization)
10:40 lizmat right, that's what I would think as well
10:40 jnthn In EnumMap we currently have, for no reason I can understand:
10:40 jnthn method hash(\SELF:) is rw {
10:40 jnthn SELF
10:40 jnthn }
10:40 lizmat let me see how many spectests will break if I fix this  :-)
10:40 jnthn Should that not just be
10:41 jnthn method hash() { self }
10:41 jnthn :)
10:41 lizmat but that would not decontainerize?
10:41 jnthn It would
10:41 jnthn Oh, wait...
10:41 jnthn returning preserves hat
10:41 jnthn *that
10:41 jnthn So yeah, needs an explicit decont I guess
10:42 jnthn huh, though...in List.pm it looks just like that
10:42 jnthn And .list seems to decont OK
10:42 jnthn m: [1,2,3].perl.say
10:42 camelia rakudo-moar cce7f9: OUTPUT«[1, 2, 3]␤»
10:42 lizmat so maybe something deeper is amiss?
10:43 jnthn m: [1,2,3].VAR.^name.say
10:43 camelia rakudo-moar cce7f9: OUTPUT«Array␤»
10:43 jnthn Hmm...that's surprising too
10:43 jnthn Should say Scalar, no?
10:43 lizmat feels like it, yes
10:43 lizmat but that could just be a problem in VAR
10:43 jnthn m: say nqp::iscont [1,2,3]
10:43 camelia rakudo-moar cce7f9: OUTPUT«1␤»
10:44 jnthn m: say nqp::iscont [1,2,3].list
10:44 camelia rakudo-moar cce7f9: OUTPUT«0␤»
10:44 lizmat m: nqp::iscont { a => 1 }
10:44 camelia rakudo-moar cce7f9: ( no output )
10:44 jnthn m: augment class Hash { method hash() { self } }; say nqp::iscont { a => 1 }
10:44 camelia rakudo-moar cce7f9: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/N40RN0rp_uâ�¤augment not allowed without 'use MONKEY_TYPING'â�¤at /tmp/N40RN0rp_u:1â�¤------> [32maugment class Hash [33mâ��[31m{ method hash() { self } }; say nqp::isc[0mâ�¤    expecting any of…»
10:44 lizmat m: say nqp::iscont { a => 1 }
10:44 camelia rakudo-moar cce7f9: OUTPUT«1␤»
10:44 lizmat m: say nqp::iscont { a => 1 }.hash
10:44 camelia rakudo-moar cce7f9: OUTPUT«1␤»
10:44 jnthn m: use MONKEY_TYPING; augment class Hash { method hash() { self } }; say nqp::iscont { a => 1 }
10:44 camelia rakudo-moar cce7f9: OUTPUT«1␤»
10:44 jnthn m: use MONKEY_TYPING; augment class Hash { method hash() { self } }; say nqp::iscont { a => 1 }.hash
10:44 camelia rakudo-moar cce7f9: OUTPUT«0␤»
10:45 jnthn Seems it'll do it :)
10:45 lizmat and drop the "is rw" as well ?
10:47 jnthn Right
10:47 jnthn And the \SELF
10:47 jnthn Oh, I know why it works
10:48 jnthn It's because self is *always* decontainerized
10:48 jnthn It's nothing to do with return handling. :)
10:48 jnthn duh :)
10:48 * jnthn needs to slurp the coffee harder or something
10:48 lizmat :-)
10:48 lizmat running spectest now
10:54 lizmat lo and behold: no spectests failing, but 7 todo's passing :-)
10:54 jnthn much wow
10:54 chenryn joined #perl6
10:56 dalek rakudo/nom: 44d5357 | (Elizabeth Mattijsen)++ | src/core/EnumMap.pm:
10:56 dalek rakudo/nom: Make sure .hash decontainerizes
10:56 dalek rakudo/nom:
10:56 dalek rakudo/nom: {}.hash did not decontainerize.  jnthn++ suggested to simplify EnumMap.hash
10:56 dalek rakudo/nom: (because returning self always decontainerizes if necessary)
10:56 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/44d5357987
11:01 atroxaper joined #perl6
11:11 kkielak joined #perl6
11:12 colomon_ I guess I forgot to say anything when I checked last night, but the (moar) smoke test ran fine overnight and automagically updated http://host07.perl6.com:8080/report
11:14 lizmat apparently my change also fixed #122223
11:14 synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=122223
11:16 FROGGS colomon_++ # that site is bookmarked now :o)
11:17 colomon_ FROGGS: don't forget moritz++ too!  :)
11:18 FROGGS troo, moritz++
11:19 dalek roast: 51e4682 | (Elizabeth Mattijsen)++ | S02-types/ (7 files):
11:19 dalek roast: Unfudge tests fixed by .hash decontainerizing
11:19 dalek roast: review: https://github.com/perl6/roast/commit/51e46824a1
11:23 * lizmat wonders what #77760 is about
11:23 * synopsebot Link: https://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=77760
11:24 lizmat I guess that should probably be marked as "wontfix"
11:31 BenGoldberg joined #perl6
11:32 dalek roast: 71d92f5 | (Elizabeth Mattijsen)++ | S02-types/ (5 files):
11:32 dalek roast: Test fixes now that we now %h = {} won't work
11:32 dalek roast: review: https://github.com/perl6/roast/commit/71d92f571a
11:32 lizmat *know
11:32 lizmat *sigh*
11:32 lizmat time to get to http://www.bst-hydepark.com/​events/detail/black-sabbath
11:33 jnthn lizmat: Enjoy!
11:36 * masak .oO( but, but... it's Friday, and daytime ) :P
11:49 SamuraiJack_ joined #perl6
12:08 virtualsue joined #perl6
12:09 atroxaper joined #perl6
12:09 sqirrel joined #perl6
12:15 mr-foobar joined #perl6
12:24 atroxaper joined #perl6
12:30 FROGGS m: my Int $x = 42; my uint8 $y = $x
12:30 camelia rakudo-moar 44d535: ( no output )
12:32 MilkmanDan joined #perl6
12:35 psch joined #perl6
12:36 psch hi #perl6 o/
12:36 sergot psch: o/
12:37 psch sergot: \o
12:41 Shozan joined #perl6
12:41 carlin joined #perl6
12:46 SamuraiJack_ joined #perl6
12:51 masak krunen: which time are we aiming for tonight?
13:04 Ben_Goldberg joined #perl6
13:05 donaldh joined #perl6
13:05 krunen masak: any time after 6 is good for me
13:05 krunen timotimo: Re HDMI adapter - wasn't mine
13:15 cognominal joined #perl6
13:22 sqirrel joined #perl6
13:41 molaf joined #perl6
13:41 [Coke] masak: have fun you crazy kids!
13:45 guru joined #perl6
13:46 prevost joined #perl6
13:47 atroxaper joined #perl6
13:53 Kripton_ joined #perl6
13:54 Kripton_ left #perl6
13:55 kaare_ joined #perl6
13:55 atroxaper joined #perl6
13:58 masak krunen: are you able to start at 18:00 sharp?
14:01 nwc10 18:00 UGT, or some other timezone? :-)
14:03 masak oh, sorry. CEST.
14:03 * jnthn figures 18:00 in the timezone they mutually inhabit :)
14:03 nwc10 I wasn't sure if they were sure about that
14:03 masak since we're in GMT+2 in summer, I guess that'd be 18:00 UTC.
14:04 nwc10 masak: you seem to be low on coffee
14:04 jnthn masak? coffee? :)
14:04 nwc10 18:00 CEST isn't 18:00 UTC
14:04 donaldh indeed not :)
14:05 jnthn haha
14:05 jnthn Timezones are hard.
14:05 jnthn you have to, like, subtract numbers :P
14:06 donaldh and know what your reference point is :D
14:08 dayangkun joined #perl6
14:11 spider-mario joined #perl6
14:15 carlin try living in UTC+13. I've had some software break in strange ways because it think the time is set wrong
14:16 * donaldh imagines some kind of temporal instability
14:17 masak heh. I was so sure I wrote 16:00 UTC. :)
14:17 masak nwc10: thanks for noticing. :)
14:24 xenoterracide__ joined #perl6
14:38 btyler joined #perl6
14:43 xenoterracide__ joined #perl6
14:43 rurban1 joined #perl6
14:47 erkan joined #perl6
14:50 masak how does this sound? https://github.com/masak/emmabot#stories
14:51 [Coke] masak: what's the module population that is being tested?
14:52 masak R*'s modules, I guess.
14:52 [Coke] also: nice if the bot can say "rakudo changed" "module changed" or "both changed"
14:52 masak hmmm
14:52 masak yes.
14:53 * masak adds that
14:55 [Coke] masak: ok. if you expand past R*, then it would be nice if the message included "THis module is bundled in R*"
14:55 [Coke] also which backend you're testing.
14:56 masak *nod*
14:56 [Coke] we have many jvm specific failures atm, for example.
14:56 * masak adds those things
14:56 [Coke] (also: "nqp changed" "vm changed")
14:56 [Coke] I'm tracking all this stuff now, but not automating all the discovery.
14:57 [Coke] you are free to use any bits of my repository to get started.
14:57 masak url?
14:58 [Coke] https://github.com/coke/rakudo-star-daily
14:58 [Coke] right now I just dump things into the log files. I imagine you'd put them into a DB.
15:00 masak don't know, don't care at this point. :)
15:00 masak a file is a DB, sort of.
15:00 zengargoyle Test::skip() does what it's supposed to.
15:00 masak what concerns me right now is the core logic, which deals with neither files nor databases.
15:00 zengargoyle /^^/i'm not sure/
15:01 masak zengargoyle: do you have a short piece of code to showcase your concerns?
15:01 zengargoyle i'm not sure skip() works that is.
15:01 zengargoyle it emits the skip, but still runs the skipped test
15:02 zengargoyle there's actually no code in skip() other than emitting a skip line, unlike todo() which changes things so that following test results get emmited differently.
15:03 hoelzro morning #perl6!
15:03 zengargoyle skip() just massages the number of tests, emits an empty SKIP message and the following test runs as normal.
15:04 masak zengargoyle: it's meant to be used together with some (manual or automatic) action that comments out the skipped tests.
15:04 hoelzro I have a quick question about gather/take: is it supposed to generate a lazy list?
15:04 masak hoelzro: yes.
15:04 hoelzro masak: could you perhaps point out what I'm doing wrong in this example? https://gist.github.com/ho​elzro/9d9d706015993745805c
15:05 zengargoyle yeah, like SKIP in p5 Test::* modules.  but it's spec'd like it's smart and does the skipping itself.
15:05 hoelzro for seems to slurp the entire list before executing its blog
15:05 hoelzro *block
15:08 zengargoyle guess it's just S24 bundling todo and skip together made me think they both worked the same-ish.
15:08 zengargoyle The C<skip()> function is called I<instead> of the some tests (usually because
15:08 zengargoyle they would die), and emits C<$count> SKIP markers in the TAP output.
15:09 [Coke] FROGGS: you're working on archive::tar and ::zip, yes? (https://github.com/perl6/perl6-most-wan​ted/blob/master/most-wanted/modules.md) ?
15:09 zengargoyle i read that as: skip('broken',2); fail; fail; # would skip running the failing tests.
15:10 zengargoyle since: todo('not yet',2); fail; fail;  # does make the failing tests TODO tests.
15:12 FROGGS joined #perl6
15:12 virtualsue joined #perl6
15:13 zengargoyle also think throws_like($code,$ex_type,%matchers) should accept a expected type as the string name of the type or a type object itself like isa_ok() does.
15:14 dalek ecosystem: db19e02 | (Andrew Egeler)++ | META.list:
15:14 dalek ecosystem: Move MessagePack back to original author
15:14 dalek ecosystem: review: https://github.com/perl6/e​cosystem/commit/db19e02922
15:15 zengargoyle isa_ok Buf.new, 'Buf' # ok  -  throws_like { X::AdHoc.new().throw }, 'X::AdHoc' # not ok
15:15 * zengargoyle been pouring through Test.pm attempting to write some documentation.
15:15 masak zengargoyle: maybe there is a way we can improve the wording of S24 to make this more clear?
15:16 masak zengargoyle: the usual reason for skipping a test is that the compiler or runtime *dies* if the code is run.
15:16 * [Coke] wonders if metacpan terrorists are DDOSing search.cpan.org
15:16 zengargoyle also die_on_fail() is not exported. :P
15:16 FROGGS joined #perl6
15:17 zengargoyle right, so: skip; fail; # should not run the fail :)
15:17 zengargoyle oops flunk....
15:18 zengargoyle instead of having to do: if $test { skip } else { test_that_flunks }
15:19 zengargoyle guess skip is only really needed if you have a plan() to comply to, otherwise you could just not run the tests.
15:19 masak right.
15:19 masak well, yes and no.
15:19 masak it might still be interesting to see that there were skipped tests.
15:20 [Coke] gives you an indication that there is still work to be done when you're looking at the summary as opposed to lookinga t test guts.
15:20 hoelzro huh, weird.  That standalone example doesn't work, but my actual code does =/
15:26 hoelzro (if anyone's curious what I'm working on: https://github.com/hoelzro/wwid)
15:26 hoelzro most of the work is under extlib these days
15:26 hoelzro I intend to break those out out into separate repos after they're stable-ish
15:27 zengargoyle i have some ::Test documentation started, but think i'll try and clean up Text::Fortune a bit today.
15:28 hoelzro zengargoyle: nice!
15:28 zengargoyle if anybody wants a laugh: https://github.com/zengargoyle/perl6-Text-Fortune
15:28 zengargoyle it's mosly in the hack away until it works stage ATM
15:29 zengargoyle vs nice enough for ecosystem :)
15:29 masak hoelzro: your example runs fine here too.
15:30 hoelzro zengargoyle: looks good so far
15:30 hoelzro masak: it doesn't print '2' on your machine?
15:34 retupmoca Heap corruption detected: pointer 0x7f744282d2f0 to past fromspace
15:34 retupmoca ^ moarvm really doesn't like Sum
15:35 retupmoca also had a "Internal error: zeroed target thread ID in work pass"
15:35 masak hoelzro: it prints 2.
15:36 hoelzro should it, though? because the for loop should shift it off of @input, no?
15:37 masak hm.
15:38 masak ah, I see what expectation you have.
15:41 btyler joined #perl6
15:42 masak hm, krunen hasn't replied...
15:42 masak I'm done cooking dinner here. will clean up a bit, and then I will get this hackathon going :)
15:47 hoelzro masak: either way, I got it working in App-Subcommander
15:47 hoelzro it's more of a curiosity
15:48 hoelzro 4th of July celebrations are starting, so I'm off
15:51 krunen masak: ready as soon as my coffee is brewed!
15:52 masak excellent.
15:53 * masak boils some tea water
15:54 noganex joined #perl6
15:55 rurban1 joined #perl6
15:56 * [Coke] should have kicked off this build before he went to sleep last night!
15:56 [Coke] (jvm slow)
15:57 ChoHag [Coke]: I am kicking myself for using threads from day 1.
15:58 cognominal r:  my $m = 'abc' ~~ /a(b)c/; my $b; ($b) = $m; say $b; ($b) = @$m; say $b
15:59 camelia rakudo-jvm 44d535: OUTPUT«(timeout)»
15:59 camelia ..rakudo-{parrot,moar} 44d535: OUTPUT«「abc」␤ 0 => 「b」␤␤「b」␤␤»
16:00 dragon_d joined #perl6
16:00 cognominal I thought in  ($b) = $m  ,  $m would be evaluated in list context.
16:00 cognominal n:  my $m = 'abc' ~~ /a(b)c/; my $b; ($b) = $m; say $b; ($b) = @$m; say $b
16:00 camelia niecza v24-109-g48a8de3: OUTPUT«「abc」␤ 0 => 「b」␤␤「b」␤␤»
16:02 masak ok, hackathon is now *on*, and waiting for krunen++ to show up with his coffee ;)
16:04 * krunen slurps
16:05 masak ready?
16:05 * krunen salutes. "Yes, sir!"
16:05 masak ok, here are the rules of engagement:
16:05 masak we try doing ping-pong pairing.
16:06 masak that is, I push a test. you implement it and write a test. I implement that and write a test. etc.
16:06 masak I just pushed my first test. go go go! :)
16:06 krunen hehe, ok
16:06 tadzik oh oh :)
16:07 masak also: no merge commits. consider setting merge.ff = only in your config.
16:08 masak please make it clear when you've passed the test and written your test; I will try to do the same.
16:08 FROGGS masak: what repo is that about?
16:08 masak whoever causes a conflict for the other owes the other a beer :)
16:08 masak FROGGS: https://github.com/masak/emmabot
16:09 FROGGS oi, nice
16:09 masak :)
16:11 rurban1 joined #perl6
16:12 masak krunen: implementing something should take O(minutes), and so should writing a test. at least, we'll try to keep the cycles short ;)
16:13 masak though flagging things up for design discussion is permitted and encouraged.
16:13 krunen yeah, just getting up some infrastructure
16:14 masak \o/
16:16 krunen do_daily_report -> do-daily-report ?
16:17 masak I kinda prefer the underscores, if you don't mind.
16:17 masak works better with vim's color coding.
16:18 masak and other editors'.
16:18 masak fwiw, I paused and considered dashes.
16:18 krunen ok. I've started getting used to dashes...
16:18 masak we can do it with dashes, that's OK.
16:19 masak but please make such a change in a separate commit.
16:21 BenGoldberg Perl6ers do it with dashes?
16:22 masak not all of us.
16:23 masak anyhoo, I don't have a horse in the dashes-vs-underscores race. not today :)
16:24 masak we have bigger fish to catch :)
16:26 [Sno] joined #perl6
16:26 Rotwang joined #perl6
16:28 [Coke] inappropriately commented out test in S03-operators/assign-is-not-binding.t - look for "#rakudo skip" - can someone see if that test makes sense and properly rakudo fudge it if so?
16:29 [Coke] "broken in ng1".
16:29 masak krunen: any progress?
16:30 krunen masak: pushed an implementation
16:30 masak ah, pulling.
16:30 masak looks good; I have a tiny refactor that I'm making now.
16:31 masak shouldn't conflict if you're currently working on our second test ;)
16:31 krunen since you have actually thought about this, do you have an idea for the next test
16:31 krunen ?
16:31 ren1us joined #perl6
16:32 masak krunen: see the README.md for ideas.
16:32 masak krunen: haven't thought as far as the second test, no. we can discuss it.
16:32 masak it should preferably be the "smallest possible thing" that extends what we have now in the direction we want to go.
16:33 masak that *may or may not be* the "does the module still fail" test case.
16:34 masak pushed my refactor; please pull --rebase whenever convenient.
16:35 krunen ok, that's better
16:35 masak :)
16:36 masak I like that shortcut. a lot.
16:36 masak krunen: did my rambling above get you unstuck on what test to write?
16:38 ren1us is there a way to get a timestamp that gives the time in ms? time() seems to use seconds
16:39 krunen masak: Thinking about it. Not used to working this way, will be a bit slow at the start
16:39 masak m: say now()
16:39 camelia rakudo-moar 44d535: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/0CndavTiOiâ�¤Undeclared routine:â�¤    now used at line 1â�¤â�¤Â»
16:39 masak m: say now
16:39 camelia rakudo-moar 44d535: OUTPUT«Instant:1404491989.088240␤»
16:39 ren1us that works
16:39 masak ren1us: there you go.
16:39 ren1us masak++
16:39 masak krunen: 's ok. it'll take a few iterations before we both get the hang of it :)
16:41 * [Coke] returns to his home time zone!
16:45 virtualsue joined #perl6
16:48 dragon_d joined #perl6
16:52 ren1us by the way, should i assume EVAL to be really slow?
16:52 masak yes.
16:53 ren1us mmk, just checking
16:56 smls joined #perl6
17:05 krunen pushed an extended test to emmabot
17:05 masak krunen: pulling.
17:06 masak krunen: I think I'll start by teasting that apart into two separate test blocks, if that's OK with you.
17:06 smls joined #perl6
17:06 masak krunen: oh, and your editor seems to be producing tab characters. might want to look into that ;)
17:07 rmt joined #perl6
17:07 krunen masak: :) noticed the tabs. .pm gave text mode for some reason
17:08 masak pushed whitespace fix.
17:08 Isp-sec joined #perl6
17:09 masak pushed split tests into two.
17:11 masak pushed implementation -- all tests pass again.
17:12 masak pondering next test to write :)
17:14 masak krunen: I'm pondering whether I don't want to change the first test a bit.
17:14 masak krunen: it's doing both newly-failing modules as two separate reports.
17:14 masak krunen: might want it to be one report, two modules.
17:15 krunen masak: yes, agree
17:15 masak then one "report" will more closely correspond to one utterance on IRC>
17:15 masak and it's better if determining that is part of the bot logic, instead of part of $channel, which feels weird.
17:15 masak ok, going ahead and doing that.
17:16 masak I'll consider this to be a refactor, and then I'll write a test after this.
17:17 dalek nqp/nativecast: 7382574 | sergot++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
17:17 dalek nqp/nativecast: nativecast operator added
17:17 dalek nqp/nativecast:
17:17 dalek nqp/nativecast: nativecast op has been added, it makes us able to cast things
17:17 dalek nqp/nativecast: conditionally. FROGGS++
17:17 dalek nqp/nativecast: review: https://github.com/perl6/nqp/commit/7382574c02
17:18 * colomon_ has been missing all the action because of being roped into reading "Prisoner of Azkhaban" to the little guy.
17:19 dmol joined #perl6
17:19 masak pushed refactor.
17:23 masak pushed new test.
17:23 masak krunen: your turn again :)
17:23 BenGoldberg The HP books, though good, are long... couldn't you have tricked the kid into hearing a shorter book? :)
17:24 krunen masak: on it
17:30 krunen masak: pushed
17:31 krunen masak: hmm.. what to test...
17:31 masak pulling.
17:32 masak heh, you could have gotten away with always returning True ;)
17:32 masak (which also gives an idea about the next test, I guess)
17:32 krunen i know... Not that I think it's finished now.
17:32 masak oh, wait, slight misunderstanding about .summarized
17:33 masak I meant for it to be a Bool; you're returning Str.
17:33 krunen that's why I wrote something there. What do we need a bool for?
17:34 masak ah; to answer the question "is this report so long that it's been summarized?"
17:34 krunen do you want another class to do the actual text formatting? In that case, shouldn't that choose whether to summarize or not?
17:34 masak but I'm toying with the notion of taking .type and .summarized and turning them into an enum instead -- currently with four values.
17:35 masak I'm fine with FailureReport stringifying to the right thing.
17:35 masak (and we can have tests for that in a separate .t file)
17:35 denis_boyun joined #perl6
17:38 masak anycase, I'm eagerly expecting another test ;)
17:46 guru joined #perl6
17:49 masak krunen: how's it going? can I help?
17:50 rurban1 joined #perl6
17:52 krunen masak: just fixing a typo...
17:52 masak ok :)
17:53 krunen pushed
17:54 masak pulling.
17:55 masak oh, a log? interesting.
17:56 krunen i'm not sure we can test the number of entries, though.
17:56 krunen there can be a lot in there
17:57 masak krunen: a request: when you add a new test case, please create a new block and write the test case there, rather than modifying an existing test case. kthx.
17:57 * masak separates out this new test case from the old one
17:58 dalek zavolaj/nativecast: a8f3111 | (Tobias Leich)++ | / (3 files):
17:58 dalek zavolaj/nativecast: Reenable usage of nqp::nativecast, and its tests
17:58 dalek zavolaj/nativecast:
17:58 dalek zavolaj/nativecast: This reverts commit c0f68bca0a3d34a7d59f872fce0e7f34892cdff2.
17:58 dalek zavolaj/nativecast: review: https://github.com/jnthn/zavolaj/commit/a8f3111570
17:58 krunen eh, I did what?
17:59 masak 24e0ca6 modifies the last test I added.
17:59 masak d3a0760 did the same.
17:59 ren1us in terms of speed, should i be expecting a whole lot out of moar?
18:00 masak krunen: I'd rather you copy/paste an old block and do your modifications there ;)
18:00 masak ren1us: define "a whole lot".
18:00 masak ren1us: also depends on what what type of code you're running.
18:00 krunen masak: though I did that. I'm struggling a bit with my editor. But I should have seen in in the diff.
18:01 jack_rabbit joined #perl6
18:01 masak yes.
18:01 masak pushed separated tests.
18:02 ren1us my ($x, $y) = $_.split(' '); <--- i'm clocking this at 2.9ms, which is somehow the slowest thing in my entire program o.O
18:02 masak krunen: I have a naggling notion that we can do without the log object. but I'm going to go ahead and pass your test, and then we can discuss it.
18:03 masak ren1us: probably because it involves a lazy list.
18:03 ren1us brb googling
18:05 kivutar joined #perl6
18:05 masak pushed passing of the test.
18:05 masak all tests now pass.
18:06 masak now, design discussion.
18:06 masak krunen: what's the log?
18:07 cognominal joined #perl6
18:07 krunen masak: that's a very general question :)
18:07 masak krunen: my mental model of what we're building is Modules =updates=> [BOT] =reports=> Channel -- is the log something like a file that the bot stores things in?
18:07 masak or is it something else?
18:08 masak related to this, what are the $level and $fmt and @rest parameters in the .log method?
18:08 masak ooh -- they make up a small logging framework, don't they?
18:08 masak like "[warning] these are the things that just broke: flub1 blorb2 glaps3"
18:08 nwc10 masak: could you remind me where your repository is please
18:08 krunen masak: yeah, not really relevant in a test, though - this is more like sketching code
18:09 masak nwc10: https://github.com/masak/emmabot
18:09 nwc10 thanks
18:09 masak krunen: I think the test is relevant, but I think we can do without a log object, which feels like a cop-out in a sense :)
18:10 btyler joined #perl6
18:10 krunen If we use a log framework, testing it is not relevant here. No, I lean towards deleting the whole thing.
18:11 krunen (test that is)
18:11 masak on it.
18:12 masak pushed ditch the log. test survived, still passes.
18:12 masak hold on, I'd like to simplify the .summarized implementation.
18:13 krunen I think it would be better if we actually discuss the direction we go in. You have a certain idea in mind now, and I fail at mind-reading.
18:15 masak agreed.
18:15 masak I guess the effects of that are exacerbated by us not co-locating.
18:15 masak I've only ever done this kind of ping-pong in the same room as someone.
18:15 masak a new test pushed.
18:16 krunen that latest test doesn't actually test anything new now.
18:16 masak well, it tests that the two reports are done together, and in the right order.
18:16 masak which we didn't test before.
18:16 masak so it's OK as a regression test.
18:16 masak but you're right, it doesn't test any functionality that we hadn't already implemented.
18:17 masak the test I just pushed should be implementable by re-introducing the condition into the .summarized method.
18:18 masak krunen: I'm still pondering the enums idea. something like `enum MessageType <NEW_FAIL NEW_FAIL_SUMM ONG_FAIL ONG_FAIL_SUMM>;`
18:19 masak krunen: and then we could switch on those cases when stringifying the report.
18:19 krunen Yes, but summarized | not summarized is a layout question
18:19 krunen so the formatter should decide
18:20 masak ok, that means that we only have `enum MessageType <NEW_FAIL ONG_FAIL>;` and we expose .summarized in the same way we do now.
18:20 masak not so different from what we already have. just upgrade a string type to an enum.
18:20 krunen it should also be configureable - so it must be stubbed in the test
18:21 masak ok, fair enough. but it should have a default.
18:21 masak I actually don't know what the limit should be -- and we've avoided pinpointing it so far.
18:21 masak I only know that 20 definitely wants summarizing :)
18:21 masak maybe the limit is something like... 5?
18:22 masak I guess it depends on how much info is printed with each new failure.
18:22 masak actually, let's spec out what a NEW_FAIL message actually should look like on the channel. let's make it as realistic as possible.
18:23 masak so, let's say Acme::Meow just failed on Parrot, and we know only nqp changed since yesterday.
18:23 masak what do we want <emmabot> to say on #perl6?
18:25 masak <emmabot> Acme::Meow just started failing on Parrot. (nqp has changed.)
18:26 krunen something like that
18:26 masak what if Druid and Math::Tau just failed on all backends, and Rakudo and Math::Tau changed since yesterday?
18:26 masak (trying to tease out a pattern here in the messages)
18:27 Akagi201 joined #perl6
18:27 masak <emmabot> Druid and Math::Tau just started failing on <Parrot JVM Moar>. (<Rakudo Math::Tau> have changed.)
18:27 masak ok, I think we can work with this.
18:28 krunen yeah
18:28 masak the pattern seems to be "X just started failing on Y. (Z changed.)"
18:28 krunen dependencies may make it harder, though
18:28 masak yes, no doubt.
18:28 masak let's consider that information to be available through $modules, for now.
18:28 krunen but we can look at that later
18:28 masak oh, you mean deps between modules?
18:29 krunen yes
18:29 masak I somehow consider that Not Our Problem, actually.
18:29 masak if a module fails, it fails.
18:29 krunen but it will introduce failures
18:29 masak how do you mean?
18:29 masak oh, I think I see what you mean.
18:29 masak there are degrees of failure here.
18:29 masak like "fails the tests"
18:30 masak or "doesn't build because a dependency is busted"
18:30 krunen we don't know if a dep caused it to fail, or rakudo...
18:30 masak well, the "what changed" information is not meant to be perfect, just a clue for where to start looking.
18:30 krunen so (<x y z> have changed) may be complicated
18:31 krunen or may have to include deps
18:31 ren1us masak: in a program that called that line about 11k times, i replaced it with a fixed size array and a couple calculations and cut my runtime from 30 seconds to 3 lol
18:31 ren1us just fyi
18:31 ren1us well not fixed size array but whatever
18:32 dmol joined #perl6
18:32 krunen masak: but the line format is good enough to start with
18:32 masak ren1us: nice.
18:32 virtualsue joined #perl6
18:33 ren1us by the way, should i consider the culprit to be the my ($x, $y) =, or the $_.split(' '), or both?
18:33 ren1us just so i know what to avoid like the plague
18:33 itz_ joined #perl6
18:33 masak krunen: after you implement my latest test, you are welcome to create a new test file and write a test for FailureReport stringification of one of the cases above :)
18:33 masak krunen: ...or something completely different. it's up to you.
18:34 krunen masak: ok
18:36 rurban1 joined #perl6
18:36 ren1us on a generally unrelated note
18:37 ren1us Heap corruption detected: pointer 0x7fee3d952a90 to past fromspace <--- what should i be looking for from this
18:37 ren1us as in, what would cause... that
18:37 ren1us (i'm still learning the errors, don't judge me too harshly)
18:37 krunen masak: pushed passing code
18:39 masak pulling.
18:39 masak yeah, nice.
18:39 masak what I had in mind :)
18:40 Ben_Goldberg joined #perl6
18:42 FROGGS ren1us: we didn't have this error since a long time... you should be proud but also scared... how did you manage to get this?
18:43 ren1us i changed something in my recursion from "is copy" to "is rw"
18:43 FROGGS ren1us: if you really wanna know what this error means, there is a talk (video) from from jnthn here: http://www.infoq.com/presentatio​ns/terminology-garbage-collector
18:43 Ben_Goldberg joined #perl6
18:43 ren1us it smells like a recursion error
18:44 FROGGS ren1us: and it smells like garbage (collector)
18:45 ren1us the only other thing i did was remove a couple "say now" statements and change some things from nested for loops and a hash to a single for loop, a small list, and some arithmetic
18:45 FROGGS hmmmm
18:45 FROGGS would be nice to have short piece of code that still triggers that error
18:45 FROGGS feel free to paste it as it is, others can golf it down if you don't have time/patience
18:46 masak krunen: while I was waiting, I put descriptions on all the 15 tests we have right now.
18:47 masak krunen: do you have outstanding changes on t/report.t? otherwise I'll just go ahead and push this change.
18:47 krunen masak: go ahead
18:47 masak pushed.
18:47 ren1us sec, i'll try and get it back, i only ran it once before i went in and made a couple edits
18:47 masak krunen: ok, so what's up next?
18:48 masak what's the next this we want to test?
18:49 krunen masak: We need info on which backend things fail on
18:49 krunen masak: Also, what repos have commits in them
18:50 masak oh, excellent!
18:50 masak yes.
18:50 masak yeah, both of those should come from $modules
18:51 masak I'll let you decide how exactly.
18:51 krunen I need that info in the stringification test, so I'm stubbing something. but I have to change the return from new_failures etc.
18:51 masak yes, makes sense.
18:51 masak for the moment at least, we can assume that $modules does all the "computation" for us.
18:51 masak that is, we receive the information in the most convenient form possible.
18:52 ren1us FROGGS: Yeah, it's not showing up anymore, even after reverting back.  I'll grab it if I see it again, though
18:52 masak we can do this, because $modules does not really exist, except as an interface we need to communicate with.
18:52 masak so we make it maximally convenient for $bot to work with.
18:52 ren1us (identical code rerun didn't have the error... weird)
18:54 FROGGS hmmm
18:54 krunen masak: agree
18:56 masak krunen: I'll be back in ~10 minutes.
18:58 krunen masak: ok
19:05 masak back.
19:06 masak everything on track? when do I get my next test? :)
19:06 krunen committing
19:06 virtualsue joined #perl6
19:08 krunen pushed
19:09 krunen forgot done - fixing
19:09 masak pulling.
19:10 krunen pushed fix
19:10 masak pulled it.
19:10 masak ok, gonna go ahead and implement this.
19:11 krunen feel free to refactor new_failures if you disagree
19:11 ren1us http://screencloud.net/v/gaLb should I be concerned about what moar is up to?
19:13 masak krunen: I dig the API so far.
19:13 masak looks sane.
19:13 masak I think fixing this will break our first test file, though.
19:13 masak s/fixing/implementing/
19:13 krunen i'll fix report.t
19:14 krunen unless you'll change stuff?
19:14 masak hm, I think your second test in report_stringify.t contradicts the first test in report.t
19:14 masak that's a more urgent thing to consider.
19:15 masak mind if I change your second test in report_stringify.t a little?
19:15 krunen yeah, there's a choice to make :)
19:15 masak krunen: my thinking here is that this is where we want to be not too spammy on the channel.
19:16 masak krunen: I wrote a little about that in the README.md, if you saw.
19:16 krunen so, just concatinate lists and ony output one line
19:16 masak right.
19:16 * masak makes it so
19:18 masak krunen: in the second test of that file, .changed_repos returns <X>, but X isn't part of the output.
19:19 masak krunen: did you intend for the former to be empty, or for the latter to include X?
19:19 krunen yes
19:20 masak haha
19:20 krunen eh. include X
19:20 masak oki
19:20 * masak makes it so
19:20 krunen <X blop>
19:21 masak pushed.
19:21 masak now, for the implementation.
19:21 masak this will be a little non-trivial :)
19:22 krunen meanwhile, I'll fix report.t
19:23 masak krunen++
19:32 masak I've gotten the first test block to pass now.
19:33 krunen \o/
19:33 masak for the second one, I need to start classifying by backend.
19:36 dwarring joined #perl6
19:43 pdcawley joined #perl6
19:46 masak implementation pushed.
19:46 masak krunen: if you're fixing report.t, you'll want to pull --rebase before the next push.
19:47 krunen ok
19:47 masak I have a simplification to report_stringify.t I've been itching to make. I'll do that one before I write the next test.
19:47 krunen do that
19:50 masak pushed simplification
19:50 masak now turning to a minor rename.
19:54 telex joined #perl6
19:55 masak pushed three renames and some more test descriptions.
19:55 masak krunen: how's that upgrade of report.t coming along?
19:56 masak writing a new test for you now. :)
19:56 krunen have to update it after .modules() disappeared
19:57 guru joined #perl6
19:58 masak test pushed. your turn.
19:58 masak oh, right. .modules() -- that was my fault.
19:59 masak wasn't running that .t file at all, since I know it was going to be busted after my implementation changes anyway...
20:08 masak how are things coming along?
20:09 krunen struggling a bit with the contents of @.failures. map() doesn't seem to like it
20:12 masak is this all part of the t/report.t upgrade?
20:12 * masak tries it in parallel
20:13 ElderDryas joined #perl6
20:13 krunen i have fixed everything but checking .failures, I can push
20:13 masak excellent; please do.
20:14 masak we can look at the remaining bit together.
20:14 masak I started in on it, and I think I see the problem.
20:14 masak and yes, you'll want to project somehow. I think I can fix it quickly.
20:15 krunen maybe add something like this to Report.pm: method modules { @.failures.map({$_<package>}) }
20:16 masak aye.
20:16 masak at least as a stop-gap to get the tests running again ;)
20:16 masak .<package> is now known as .<module>, btw.
20:17 krunen yeah, but my perpetually-confused brain refuses to accept that
20:17 masak ;)
20:18 masak where's that push you promised me?
20:19 krunen pushed
20:19 masak pulling.
20:20 krunen modules() in Report.pm returns only spaces
20:20 krunen er. empty strings
20:20 masak ooh, nice. you made the refactoring into the modules() function I had planned. :)
20:20 masak we're reaching resonance here. :) nice!
20:21 krunen because i wrote package :(
20:21 masak aye.
20:21 masak fixing.
20:21 masak pushed.
20:21 masak I still have empty strings, though.
20:21 masak and undefinedness warnings.
20:22 krunen yep
20:22 masak actually, only two tests fail, though: 2 and 5.
20:22 masak ah, '  ...with the right modules'.
20:22 masak so.
20:23 * masak resorts to die and .perl
20:24 anaeem1 joined #perl6
20:24 masak ah. t/report.t still has them as :package
20:24 masak fixing.
20:24 krunen i just saw that as well
20:25 krunen still spaces, but no undefs
20:26 krunen Array.new({"module" => -> ($_? is parcel) { #`(Block|140520791501824) ... }, "backend" => "X"}, {"module" => -> ($_? is parcel) { #`(Block|140520791528760) ... }, "backend" => "X"})
20:26 krunen ^ @reports[0].failures.perl
20:26 masak I think we just ran into lizmat's itemization bug.
20:26 masak fixing.
20:28 masak yes, got it.
20:28 masak there's definitely something rotten there in Rakudo right now.
20:29 masak hashes spontaneously disappearing and dropping their keys into the surrounding array.
20:29 masak pushed.
20:30 masak all tests now pass -- except krunen++'s next task :)
20:31 krunen :/ ugly hack, but works
20:32 masak aye.
20:34 masak m: my @l = map { { foo => $_ } }, 1, 2, 3; say @l.perl
20:34 camelia rakudo-moar 44d535: OUTPUT«Array.new("foo" => 1, "foo" => 2, "foo" => 3)␤»
20:35 masak now that I think about it, I'm not sure it's a bug :/
20:35 masak the innermost block there is a Block, not a Hash -- because it has a $_
20:37 masak pushed a slightly less hacky version.
20:39 denis_boyun_ joined #perl6
20:40 rurban1 joined #perl6
20:42 krunen pushed, all tests passing
20:45 rurban1 joined #perl6
20:50 sjn krunen, masak: url?
20:50 masak sjn: https://github.com/masak/emmabot
20:50 masak krunen: pulling.
20:51 masak yes, looks good.
20:51 masak krunen: looking forward to another test :)
20:51 * masak reviews the README.md in the meantime
20:51 kaiserpathos joined #perl6
20:52 rindolf joined #perl6
20:52 masak we actually do the first five things at this point.
20:52 masak not number six. sort of number seven.
20:52 masak this is a good evening's work.
20:53 krunen yes, it's been a lot of fun
20:54 colomon_ masak++ krunen++
20:55 masak we should do this more often ;)
20:55 krunen so the next step is maybe the history?
20:55 masak generic universal promise: I will do my best to find time for hackathons with anyone on any projects, under similar conditions.
20:56 masak krunen: yes, maybe history.
20:56 masak krunen: I'm also thinking there is some logic in the $modules that merits testing.
20:56 masak krunen: how about we go all-out and write one test each? :P
20:56 masak then we don't have to block on each other.
20:57 krunen masak: ok, I'll do some history stuff with a stubbed backend
20:57 masak I'll make a t/modules.t
20:58 itz_ joined #perl6
20:59 masak ooh, no. I know a simpler thing we haven't tested.
21:00 rurban1 joined #perl6
21:02 cooper joined #perl6
21:03 rurban2 joined #perl6
21:03 masak pushed a new test.
21:03 masak should be fairly simple to pass, I think.
21:03 ChoHag Can I declare a sub ($new) {...} in $foo which will be called by the block in $bar which = sub ($xxx) { $foo($xxx)) }
21:04 ChoHag More or less.
21:04 ElderDryas left #perl6
21:04 ChoHag Can I have the $bar block which calls $foo automatically set $xxx so that it's automatically declared, like self?
21:04 ChoHag So $foo = sub ($xxx) { $xxx.whatever } can lose the (sub and) signature?
21:05 masak ChoHag: no, and this sounds a bit like an XY problem -- but go on.
21:06 ChoHag Oh it is. It's just an aside - can I save users of the module a massive 7 keystrokes.
21:06 ChoHag I guess they can just use $^something
21:06 masak yes, that's a good use of $^something
21:08 kivutar joined #perl6
21:08 ChoHag How do you pronounce that?
21:08 ChoHag dollar-caret-something is a bit of a mouthful.
21:09 masak dollar *hiccup!* something
21:09 masak :P
21:10 ChoHag Hmm. More of a mouthful, but would make quasi-agile standups more entertaining.
21:12 masak also works very well with the Ballmer peak.
21:12 masak krunen: anything I can help with?
21:14 krunen added t/history.t - requires some thought
21:14 krunen pushed
21:14 denis_boyun_ joined #perl6
21:15 masak pulling.
21:18 masak krunen: hee hee -- you just increased the total count of components from 3 to 4, again. :)
21:18 masak apart from that, I'm all on board.
21:19 masak to be precise, you seem to have spec'd .consecutive_failure_count as a computed output, like reports.
21:19 masak I had it more as a computed input, like the existing methods in modules.
21:20 masak as in, whatever data feeds into modules and the computations of new_failures and ongoing_failures, can also feed into the computation of consecutive_failure_count
21:21 masak does that make sense?
21:22 krunen hmm...
21:22 krunen pushed, t/message.t passing
21:24 masak pushed, slightly message tweak.
21:24 masak krunen++ # looks good
21:24 krunen This must run as a daemon, right. Every run creates a new Emmabot object at the moment
21:26 krunen to be able to send irc msg to get info, we must store it somewhere.
21:26 krunen maybe the Emmabot class should be refactored to hold this?
21:27 masak hmm.
21:28 masak yes, every run creates a new Emmabot object.
21:28 masak that's why some of the interesting logic is also held in the Modules object.
21:28 masak which must, for the simplest case, compare data from yesterday with data from today.
21:28 masak and, considering streaks of failures, data from further back.
21:29 masak I think for the stuff we've considered so far, we have the boundaries right.
21:30 masak though we haven't considered the "IRC user asks emmabot something" case yet.
21:31 masak pushed a slight refactor.
21:31 krunen so the modules class should do all this - that sounds fine
21:33 cooper_ joined #perl6
21:34 masak yes, I think so.
21:34 krunen it's getting a bit late, I need a break.
21:35 masak pushed one more refactor.
21:35 masak krunen: yes, we might call it a night, I think.
21:35 masak krunen: thank you for this hackathon. I greatly enjoyed it.
21:36 masak <3
21:40 psch masak++ krunen++
21:41 psch was fun watching this a bit on the side :)
21:41 psch and you seem to have gotten somewhere too and it looks great
21:41 krunen I want to keep helping with this bot. I'll be around, so more tests please! :)
21:41 masak yes. that makes me feel a bit better about hijacking the channel for five hours :P
21:41 masak krunen: got it ;)
21:41 masak krunen: same goes for you.
21:42 larryd joined #perl6
21:42 dalek nqp/nativecast: 0e777cf | (Tobias Leich)++ | src/vm/ (3 files):
21:42 dalek nqp/nativecast: rename nativecast to naticecallcast to align with the others
21:42 dalek nqp/nativecast: review: https://github.com/perl6/nqp/commit/0e777cfa26
21:42 krunen thanks a lot, masak++. This is an intensive but great way to help people to start contributing!
21:43 masak aye.
21:44 krunen g'night, #perl6
21:44 psch 'night krunen
21:44 masak 'night, krunen
21:45 dalek nqp/nativecast: 0351dbf | (Tobias Leich)++ | src/vm/jvm/runtime/org/perl6/n​qp/runtime/NativeCallOps.java:
21:45 dalek nqp/nativecast: Implement nativecallcast for jvm backend
21:45 dalek nqp/nativecast:
21:45 dalek nqp/nativecast: This passes all NativeCall tests about casting OpaquePointers to
21:45 dalek nqp/nativecast: native ints, nums, strings, CStructs, CArray and CPointers.
21:45 dalek nqp/nativecast: review: https://github.com/perl6/nqp/commit/0351dbf58b
21:47 masak rindolf: but why would she sign it as Chuck Norris??? whyyyyyyyyy
21:49 dalek zavolaj/nativecast: 4ed6c4e | (Tobias Leich)++ | lib/NativeCall.pm6:
21:49 dalek zavolaj/nativecast: bind result of nqp::nativecallcast so there is no extra container
21:49 dalek zavolaj/nativecast:
21:49 dalek zavolaj/nativecast: Otherwise calling nqp::isint($result) will blow up.
21:49 dalek zavolaj/nativecast: review: https://github.com/jnthn/zavolaj/commit/4ed6c4efaf
21:49 dalek zavolaj/nativecast: 798fcc5 | (Tobias Leich)++ | lib/NativeCall.pm6:
21:49 dalek zavolaj/nativecast: box native string returned by nativecallcast when we get one
21:49 dalek zavolaj/nativecast: review: https://github.com/jnthn/zavolaj/commit/798fcc588b
21:51 masak and with that, I'm turning in, too.
21:51 masak 'night, #perl6
21:51 FROGGS gnight masak
21:51 FROGGS I pushed my stuff... I'll go to bed too
21:51 FROGGS gnight all
21:52 psch night you two
22:00 sergot good night!
22:01 timotimo m: my &foo:(Int, Int);
22:01 camelia rakudo-moar 44d535: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: P6opaque, cs = 0)␤»
22:01 timotimo p: my &foo:(Int, Int);
22:01 camelia rakudo-parrot 44d535: OUTPUT«===SORRY!===␤invoke() not implemented in class 'QAST::WVal'␤»
22:01 timotimo .. oh well
22:05 psch so apparently what breaks OUTER for Foo::Bar in my golfed bit is precompilation of the outer class...
22:06 ren1us /home/Phoenix/.rakudobrew/bin/perl6: line 2: 17436 Killed                  /home/Phoenix/.rakudobrew/m​oar-HEAD/install/bin/perl6 "$@"
22:06 ren1us ^ what's that about?
22:06 ren1us given that it happened when nobody was anywhere near this computer so a kill command was *not* issued by a human being
22:08 jnthn ren1us: If you ever get "Heap corruption detected" from Moar, please file as much info as you can provide as to what code you were running, in the Moar issue tracker is fine.
22:08 ren1us jnthn: Even if I can't reproduce it a second time?
22:08 jnthn ren1us: Such things should *never* happen; if your code is single-threaded then such things are extremely rare these days
22:08 jnthn Yes
22:08 jnthn If you have the exact code that did it, and you know it was that code, file it.
22:09 jnthn Because I can tweak config things that make such bugs enormously more likely to appear.
22:09 ren1us I've got a git commit of the project in the exact state that threw the error
22:09 jnthn That works very well.
22:10 ren1us It's a big project, though, and the differences with the previous commit are kinda huge so that alone can't be relied on
22:10 ren1us well not big
22:10 ren1us it's a medium project
22:10 ren1us Is the moar issue tracker the same as the general perl6 one?
22:10 timotimo nah, we use the github issues thinige
22:10 timotimo thingie*
22:11 jnthn ren1us: https://github.com/MoarVM/MoarVM/issues
22:11 timotimo and it's not that important that the diff is too big; jnthn will force the garbage collector to run a thousand times more often than it usually would need to and the explosion will happen very close to the exact piece of code that makes the pointer go wrong
22:11 timotimo well, more than a thousand times more often
22:12 jnthn Well, normally we collect every 4MB allocated these days; I can drag that down to 512 bytes or so if I wish :)
22:12 ren1us it also just generally runs ridiculously slow but mmk
22:12 jnthn You can't imagine how slow it'll run when it's GCing all the time :)
22:12 atroxaper joined #perl6
22:13 timotimo ren1us: anyway, we'll have the answer for you by the end of the month
22:13 ren1us it takes approximately 2 hours to run in full, if i remember correctly
22:14 ren1us and lol
22:14 jnthn whoa
22:14 jnthn what on earth is it doing? :)
22:16 ren1us basically, i've got an agent in a 5x5 grid, and it runs randomly until it activates and then interacts with the goal (the goal has a set of conditions that it needs to be activated), and that usually takes about 1.5-3k moves, but i don't like waiting for that so i just did it ten times and dumped the records to a hash that i read in
22:16 ren1us and then it goes through and tries to cut out as many of the garbage moves as possible to get a more or less optimal set of actions to accomplish the thing
22:17 ren1us on the todo list is running it through a GA and then making it learn how to actually use that again
22:17 ren1us i do weird things.
22:18 timotimo ah yes, finding a solution in a problem space by doing random walk is far from optimal
22:18 jnthn Fair enough :)
22:18 ren1us i only started on it quite recently, there's a looooong way to go
22:18 ren1us potentially about 45 years
22:19 jnthn heh, last time I had to compute the probability distribution for how long something doing a random walk would take, it was about drunks staggering in random directions home. My math teachers at least made it interesting... :)
22:19 ren1us i'm just trying to dynamically learn scripts/frames
22:19 ren1us "just"
22:20 ren1us and to make it a little more interesting i'm doing it in an unfinished language that i don't technically know
22:21 timotimo what does "scripts" and "frames" refer to?
22:22 ren1us frames as in https://web.media.mit.edu/~min​sky/papers/Frames/frames.html
22:22 smls joined #perl6
22:23 ren1us and scripts as in a sequence of frames representing verbs which, when put together, define a higher level action
22:24 jnthn Hm, sounds interesting :)
22:24 ren1us and i'll file the issue in a bit, i've got a train to catch
22:24 jnthn Thanks!
22:24 jnthn Happy training :)
22:24 ren1us best of luck making it break
22:31 carlin is there a way to make javakudo dump out information about what it's turning things into
22:31 rurban1 joined #perl6
22:31 carlin for exaple I have a "__P6opaque__69@751f265a" and I want to know what that is in perl 6 terms
22:31 carlin if that makes sense
22:32 jnthn Not really... I've often thought we should attach a simple string identifier off every STable to make these things easier...
22:33 abetaha joined #perl6
22:35 carlin I'm just looking at the internals to try and see why doing trait_mod:<is>(&foo, :native('..') doesn't work on the jvm but `sub foo is native {*}` does
22:35 rurban1 joined #perl6
22:36 carlin the get_boxing_of method is being applied to __P6opaque__103 but the self in buildnativecall(self, ...) is a __P6opaque__69, but when doing "is native" it's a P6opaque__103 and works fine
22:37 carlin but then I don't really understand what I'm doing :)
22:45 rurban1 joined #perl6
22:45 smls Array/List/LoL are mutable and Parcel immutable, right?
22:48 dragon_d joined #perl6
22:48 insanity_ joined #perl6
22:48 psch m: my $x := (1, 2); $x.WHAT.say; $x = (2, 3);
22:48 camelia rakudo-moar 44d535: OUTPUT«(Parcel)␤Cannot assign to an immutable value␤  in block  at /tmp/r7Ahc48vci:1␤␤»
22:48 psch m: my $x = Array.new; $x.WHICH.say; $x.push: 2; $x.WHICH.say
22:48 camelia rakudo-moar 44d535: OUTPUT«Array|1406055344124​96␤Array|140605534412496␤»
22:49 psch smls: i think that's a "yes" - at least for Array. ISTR that LoL isn't implemented yet
22:52 psch but i might be misunderstanding binding there...
22:54 ChoHag I would just like to say that perl 6 is fantastic.
22:54 pdcawley joined #perl6
22:54 timotimo from the amount of trouble you ran into, i wouldn't have expected actual praise :)
22:54 ChoHag I've got more of a prototype up in a few weeks while learning the language while it's still being developed than I ever managed with bash or perl 5.
22:56 ChoHag Oh and running through the jvm because I've built the thing around threads so even compile errors take ~ 8 seconds to spot. A full run through is 36 seconds.
22:57 timotimo is moarvm's multithreading implementation currently too unstable/glitchy/broken for your program?
22:57 ChoHag I last checked out rakudo a while back.
22:57 timotimo in that case you could get great speedups from first trying to run the script with moar, then with jvm for the speed improvements towards the end
22:57 ChoHag Hand patched some bug I ran into and recompiled but otherwise it's pretty old.
22:58 ChoHag Yeah but that breaks the Up Enter cycle.
22:58 timotimo oh, "pretty old", huh? moarvm got a bunch of speed improvements over the last weeks and stability fixes for async I/O and threads last monday i think
22:58 ChoHag Or C-p C-m, rather.
22:58 timotimo ah, that's a good point
22:58 ChoHag I'll check it out.
22:59 timotimo well, you could have a short bash command that runs it with moar first and then the first thing the script does it "exit 0" if it is being run on moarvm and if that succeeds, run it with jvm
22:59 timotimo so you'll get compile-time errors from moar, it'll do the "successful exit" if there were no compile time errors and then it'll do the proper run on the jvm
22:59 timotimo the startup time of rakudo-moar is really really nice these days
23:00 ChoHag Maybe but usually running with moar broke just by trying to define Channels and things.
23:00 timotimo erm, when i say "really really nice" ... that's an overstatement ... but it's better than we had before.
23:00 ChoHag I think. Gave up and just relied on good-old-up-enter.
23:00 jnthn MoarVM's threading support is still very much a work in progress. Its age can be measrued in months and it has, uh, rather less resources available to it than the JVM has had.
23:00 anotherone joined #perl6
23:01 timotimo aye, jnthn gets a bit annoyed when people either praise moar's threading stuff as "very good!" or complain about it being buggy ... :)
23:01 ChoHag If the basics are there it's possible I may be able to run into some of moar's more useful bugs.
23:01 Mouq joined #perl6
23:02 timotimo well, i'm not the right person to pass judgement on whether or not finding complicated multithreading bugs at this point will help or just be superfluous :|
23:02 jnthn Knowing about things that fail is helpful, but ultimately the *real* issue is way too few people in a position to fix them.
23:03 jnthn There's only one of me, and Perl 6 stuff isn't the only thing I have on my plate.
23:04 timotimo aye, more tasty things
23:04 jnthn And refactoring my life so that I've got a bunch more Perl 6 tuits will need...quite some effort.
23:06 ChoHag Lives resist refactoring.
23:07 timotimo having automated test suites for ones life would be nifty
23:07 timotimo sadly, many improvements to ones life require effort
23:07 ChoHag How can I change a sub (:$foo?, *%bar) (or add another multi) so that $foo can be @foo and take a list?
23:08 jnthn Can you define "change a sub"?
23:08 Mouq This segfaults whenever I try to make any of the bottom loop concurrent on Moar: https://gist.github.com/Mouq/b636db38f62afc1ee711
23:08 ChoHag What to put in the signature.
23:09 ChoHag So that I can do funnyfn(foo => x) and (something like) funnyfn(foo => <<x y z>>).
23:09 ChoHag s/foo => x/foo => "x"/
23:09 timotimo for what it's worth, you can pass lists into $variables, then you'll have the list be "itemized" and you can listify it with @(...) or .list
23:09 jnthn Named parameters don't count towards candidate sorting, and act as tie-breakers.
23:09 timotimo depends entirely on what you intend to do with the variable directly
23:10 jnthn m: multi x(:@foo) { say 1 }; multi x(:$foo) { say 2 }; x([1,2,3]); x(42)
23:10 camelia rakudo-moar 44d535: OUTPUT«[31m===[0mSORRY![31m===[0m Error while compiling /tmp/ecd0QvVT77â�¤Calling 'x' will never work with argument types (int)â�¤    Expected any of:     :(:foo(@foo))     :(Any :foo($foo))â�¤at /tmp/ecd0QvVT77:1â�¤------> [32m; multi x(:$foo) { say 2 }; x(…»
23:10 jnthn uh, indeed :)
23:10 Mouq :@foo does work, and I believe you can destructure stuff with :foo(["x"]) if needs be
23:10 jnthn m: multi x(:@foo) { say 1 }; multi x(:$foo) { say 2 }; x(foo => [1,2,3]); x(foo => 42)
23:10 ChoHag Hmm. I was only writing the single scalar case so I didn't test actually passing a list in to the $ form.
23:10 camelia rakudo-moar 44d535: OUTPUT«1␤2␤»
23:11 jnthn Mouq: It'd be more helpful if I could see how you're trying to make it concurrent ;)
23:11 anotherone how about perl 6 performance agains perl 5? do you have a technical doc about?
23:11 anotherone sorry for not talk about you are
23:12 jnthn Mouq: And I'd try it but my local builds of stuff are spewing hundreds of lines of deopt debugging :)
23:12 timotimo anotherone: i run benchmarks semi-regularly. we only catch up to perl 5 performance in very "micro" benchmarks so far.
23:13 timotimo except rakudo-jvm, which sometimes overtakes perl 5 after a bit of warmup
23:13 anotherone by default perl 5 has a awesome bench, so this is good, thanks
23:13 timotimo i don't know what that means?
23:13 Mouq jnthn: Updated, but I'll update my Rakudo and try again :) It has been a while since I did
23:14 ChoHag Naturally, it Just Works without even needing to special-case it.
23:14 timotimo hehe. that's how perl6 does it :P
23:15 timotimo ChoHag: perl 6 has this strange thing where single things (at least things that do the Cool role) can act like "a list with the thing as its only element"
23:16 ChoHag I remember reading that and not coming up with a test case to see it work.
23:16 ChoHag I guess I just did.
23:16 timotimo that makes code that expects lists sometimes work fine with single things (strings, ints, stuff like that)
23:16 timotimo m: say "hello".elems; say ["hello"].elems; say ["hi", "bye"].elems
23:16 camelia rakudo-moar 44d535: OUTPUT«1␤1␤2␤»
23:16 timotimo that kind of thing
23:17 jnthn Mouq: OK; I did some fixes last weekend in the threading area.
23:17 jnthn Mouq: So things may be better.
23:17 ChoHag (not see how it works, see it works, so that it's gets In There behind the eyes and will come out of the fingers whilst coding)
23:17 ChoHag Now the jvm won't build...
23:17 timotimo oh no! :(
23:17 ChoHag Is make clean; make; enough?
23:17 timotimo no
23:17 ChoHag Not the jvm, sorry, the jvm backend.
23:17 timotimo often you need to reconfigure
23:18 BenGoldberg joined #perl6
23:18 jnthn Re-configure, and typically needs to re-gen NQP too
23:18 jnthn Especially if it's been a while.
23:18 timotimo ah, yes, i assumed he was talking about NQP as well
23:20 ChoHag Git also kicks arse.
23:20 ChoHag Clean out build environment: rm -rf *; git reset --hard HEAD
23:21 ChoHag I think I'll keep that one out of .bash_history ...
23:21 timotimo good idea
23:21 Mouq jnthn: It works \o/
23:21 timotimo ChoHag: git clean -xd is a better idea, i think
23:22 psch wanting to rebuild NQP is rm $PREFIX/install/bin/nqp-{m,p,j} for me heh
23:22 ChoHag Ah that looks much safer.
23:22 psch and then Configure.pl
23:22 timotimo i *think* it behaves less dangerous with regards to things you put in and don't want to lose
23:22 ChoHag Protip: Ensure there are no such things.
23:22 timotimo i used to put lots of small scripts into my rakudo folder, like benchmarks or test scripts, so that i could ./perl6 foo.p6
23:22 timotimo yes, that's what i do nowadays
23:23 pinocchio joined #perl6
23:23 ChoHag Hurry up god damn it I want to see if this'll run on moar...
23:24 timotimo rakudobrew is a nice thing, btw, it allows you to easily switch between implementations; though it doesn't have a concept of switching between different versions
23:24 timotimo (perl6-bench kinda lets you do that, though)
23:25 jnthn Mouq: ooh, nice
23:26 timotimo very good
23:26 anotherone timotimo talks about a bsd philosophy to maintain the compatibility
23:26 anotherone between versions
23:26 jnthn Mouq: Does using start/await speed it up?
23:26 timotimo anotherone: sorry, i'm confused by your messages; were you refering to what i said about rakudobrew?
23:27 Mouq Also, pulling from several weeks back, the un-parallel version goes from a pretty consistent 22.5s to a pretty consistent 17.7s, and this is not at all optimized code
23:27 timotimo that'? what we like to hear :)
23:27 Mouq jnthn: Unfortunate, with start/await it's actually 2-3 seconds slower
23:27 Mouq *ly
23:27 timotimo oh wow
23:28 timotimo does it occupy more than one core at all?
23:28 anotherone timotimo: "it doesn't have a concept of switching between different versions", bsd systems are very build between package versions compatibility
23:28 Mouq It says 174% cpu
23:28 anotherone just that, nevermind
23:28 Mouq But I don't know what the CPU is like on this computer
23:28 timotimo Mouq: hm. so that's at least something. strange.
23:29 dragon_d joined #perl6
23:29 BenGoldberg Is it 2-3 seconds slower than it used to be, or 2-3 seconds slower than the un-parallel version?
23:29 timotimo anotherone: what i meant was just i can't say "rakudobrew switch moar-2014.05" or "rakudobrew switch moar-2014.06"
23:29 anotherone np
23:30 anotherone I understood
23:30 timotimo OK
23:30 beastd joined #perl6
23:31 beastd left #perl6
23:31 jnthn Mouq: I was gonna say, what sort of hardware is this on :)
23:31 jnthn Anyway, glad it actually works.
23:32 jnthn And that we've made it faster on a single thread than the last build you had :)
23:32 timotimo i wonder how it spends those extra 74% of CPU Time if those are not actually contributing to making the program run any faster
23:35 jnthn Dunno, but the thread pool is not exactly smart yet
23:35 timotimo it wouldn't be giving two threads the same thing to do and then throw away one of the two results?
23:35 jnthn no, not that
23:36 jnthn But it hasn't learned restraint yet
23:36 timotimo the what now?
23:36 Mouq 2 core, "model name      : Intel(R) Xeon(R) CPU            3075  @ 2.66GHz
23:36 Mouq "
23:37 jnthn Its reasoning, up until it hits the limit, is "I've got more work; all the threads are busy; let's spawn another one"
23:37 timotimo ah, that's what
23:37 jnthn Which for CPU-bound workloads is LTA
23:38 ChoHag How do you get debug output from Configure.pl?
23:38 timotimo ah, then it'd be spending lots of time switching between OS-threads with no I/O to make a switch worth it
23:39 ChoHag inter::progs -        Determine what C compiler and linker to use...Compilation failed with 'cc'
23:40 ChoHag Hmmm ISTR I needed to specify the compiler somehow to get this to work on freebsd but I forgot what.
23:40 ChoHag how
23:41 jnthn That looks like an error from the Parrot build process, which I'm not too familiar with...
23:41 jnthn Though if you were specifying the option to Rakudo's Configure line I think it will have been --parrot-option=... or so
23:41 jnthn Time for some rest here. 'night
23:42 timotimo gnite jnthn
23:42 Mouq o/ jnthn
23:43 xragnar_ joined #perl6
23:43 psch 'nite jnthn
23:45 raiph joined #perl6
23:49 R0b0t1 joined #perl6
23:49 R0b0t1 http://mojolicio.us/
23:49 R0b0t1 I am impressed.
23:50 R0b0t1 Are there any other projects of similar goal?

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs