»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:01 kurahaupo joined 00:34 colomon_windows left 00:39 carlin left, carlin joined
zengargoyle has anybody used ::Test skip,skip_rest,todo functions? 00:41
00:45 Khisanth left 00:52 Khisanth joined 01:04 perltricks joined 01:10 BenGoldberg joined
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:25
01:30 hoverboard joined 01:43 dayangkun joined 01:52 FROGGS_ joined 01:56 FROGGS left 01:57 klapperl_ joined, chenryn joined 01:59 xfix left, xfix joined, xfix left, xfix joined, klapperl left 02:02 telex left 02:04 telex joined, perltricks left 02:20 mtj left 02:21 mtj joined
dalek osystem: 80070e7 | (Andrew Egeler)++ | META.list:
Repoint some modules to fixed versions.

The following modules have had PR's open to fix tests for over a month, so they are being moved to a fork:
IRC::Utils Date::WorkdayCalendar MessagePack TestML YAML
02:26
02:34 BenGoldberg left
chenryn so, what's perl6-community-modules? all modules which noone want to manage? 02:55
03:04 rurban1 joined
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
and I don't want to own them, so I just threw them into a new project
zengargoyle is there a better way to get a type object from a string than $type = EVAL "$string.new()"; ? 03:11
retupmoca m: my $name = 'DateTime'; say ::($name).now 03:12
camelia rakudo-moar cce7f9: OUTPUT«2014-07-04T03:12:09Z␤»
retupmoca zengargoyle: ^ that's the best way I know
zengargoyle thanks, that looks much better. 03:15
03:17 molaf joined 03:23 atroxaper joined 03:28 molaf left
dalek rl6-roast-data: ec1d448 | coke++ | / (6 files):
today (automated commit)
03:29
chenryn ::() is operator? 03:37
[Coke] dwarring? 03:39
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.
IIUC, rakudo.parrot is now building but has known issues in spectests? 03:49
03:53 rurban1 left 03:59 [Sno] left 04:01 dayangkun left 04:05 kaare_ joined
dalek osystem: 81dd34d | (Andrew Egeler)++ | META.list:
Add Net::XMPP
04:07
04:11 anaeem1 joined, xenoterracide__ joined 04:13 chenryn left 04:15 anaeem1 left, anaeem1__ joined 04:18 dayangkun joined 04:19 xenoterracide__ left 04:21 chenryn joined
[Coke] I really don't like flattening. :P 04:23
zengargoyle chenryn: i think this explains ::() a bit: perlcabal.org/syn/S02.html#Interpol...into_names
[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:24
zengargoyle how would you want it to print out? 04:25
04:27 rindolf joined
[Coke] m: say set(1..3).combinations(2).lol; 04:30
camelia rakudo-moar cce7f9: OUTPUT«1 2 1 3 2 3␤»
[Coke] m: say set(1..3).combinations(2).perl; 04:31
camelia rakudo-moar cce7f9: OUTPUT«([1, 2], [1, 3], [2, 3]).list␤»
[Coke] IWBNI there was a way to get it to stringify like:
[1, 2], [1, 3], [2, 3]
m: say set(1..3).combinations(2).Str
camelia rakudo-moar cce7f9: OUTPUT«1 2 1 3 2 3␤»
[Coke] m: say set(1..3).combinations(2).lol.Str 04:32
camelia rakudo-moar cce7f9: OUTPUT«1 2 1 3 2 3␤»
[Coke] m: say set(1..3).combinations(2).list
camelia rakudo-moar cce7f9: OUTPUT«1 2 1 3 2 3␤»
[Coke] m: say set(1..3).combinations(2).list.Str
camelia rakudo-moar cce7f9: OUTPUT«1 2 1 3 2 3␤»
zengargoyle m: set(1..3).combinations(2).map({"[{.join(',')}]"}).join(' '); 04:33
camelia ( no output )
[Coke] Yes, I feel I shouldn't have to write that code. :) 04:34
zengargoyle funny, that worked in REPL
retupmoca m: set(1..3).combinations(2).map({"[{.join(',')}]"}).join(' ').say
camelia rakudo-moar cce7f9: OUTPUT«[1,2] [1,3] [2,3]␤»
[Coke] you didn't say "say"
zengargoyle aha
[Coke] retupmoca++ #but I still feel I shouldn't have to roll that code.
zengargoyle i doubt print/say can serve as a generic data dumper that always dwims 04:35
maybe there should be a module for that. :) 04:36
[Coke] eh. I'll hold my nose until we get the mythical list rewrite.
zengargoyle a reverse Grammar would be nice. 04:37
maybe a .sexpr method on listy things 04:41
04:42 jack_rabbit joined
zengargoyle set(1..3).combinations(2).sexpr('' => ' ', '[' => ', ') 04:44
04:46 kaare_ left 04:49 carlin left 04:50 carlin joined, carlin left 04:53 erkan left 04:54 rurban1 joined 04:56 SevenWolf left, xenoterracide__ joined 04:57 kurahaupo left 04:58 rurban1 left 05:03 thou left 05:04 thou joined 05:11 kaare_ joined 05:13 dayangkun left 05:15 Exodist left, Exodist joined 05:29 water joined, hoverboard left, water is now known as hoverboard 05:30 xinming left, xinming joined 05:32 pdcawley left, rurban1 joined
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 05:35 [Sno] joined 05:36 rurban1 left 05:37 hoverboard is now known as moistcherry 05:49 moistcherry is now known as hovercraft 05:56 pdcawley left 06:05 chenryn left 06:13 Isp-sec joined 06:16 xenoterracide__ left 06:23 hovercraft is now known as moistcherry 06:31 jack_rabbit left 06:35 FROGGS_ left 06:45 rurban1 joined 06:47 FROGGS_ joined 06:49 rurban1 left
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.
FROGGS_ psch++
07:04 noganex joined, noganex left
sergot morning o/ 07:07
FROGGS_ morning
07:08 lue left 07:12 Akagi201 joined, akagi201_ joined 07:13 erkan joined, erkan left, erkan joined 07:15 igorsutton joined 07:18 jest joined
jest hi 07:18
07:18 darutoko joined
jest I have a clever plan to finally learn some Perl6 by converting some of my P5 code to P6 07:19
07:19 dmol left 07:20 moistcherry is now known as hoverboard
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
07:20 zakharyas joined 07:21 lue joined, kivutar joined
FROGGS_ jest: there is nothing like that as a website... 07:21
jest: start doing your conversion, ask here and point to your github repositories, your code and your commits 07:22
you'll get plenty of advices in case ppl are awake, which usually means daylight in europe
dalek volaj: 0ee3c6c | sergot++ | / (3 files):
nativecast added

nativecast has been added, it makes us able to cast things conditionally.
07:25
volaj: ab44674 | (Arne Skjærholt)++ | / (3 files):
Merge pull request #45 from sergot/master

nativecast added
07:27 chenryn joined
FROGGS_ arnsholt: there are open pull requests for moarvm and nqp, and it has to be ported to parrot+jvm in nqp 07:27
arnsholt: so you might want to revert to unbreak NativeCall
jest FROGGS_: great, when I'm done with P5 version of my module, I'll try to send something here
FROGGS_ jest++ 07:28
jest: ooc, what is your module about?
sergot jest++
arnsholt: as FROGGS said, it doesnt work until we have MVM_nativecall_cast in moar.
FROGGS_ sergot: and parrot and jvm 07:29
sergot actually,yes :)
FROGGS_ because that explodes at compile time, not at runtime
dalek volaj/revert-45-master: c0f68bc | (Tobias Leich)++ | / (3 files):
Revert "nativecast added"
07:31
volaj: c0f68bc | (Tobias Leich)++ | / (3 files):
Revert "nativecast added"
volaj: 5706ad7 | (Tobias Leich)++ | / (3 files):
Merge pull request #46 from jnthn/revert-45-master

Revert "nativecast added"
07:33 teodozjan joined 07:36 brrt joined 07:38 noganex joined
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! :-(
jest FROGGS_: it's a Pandoc filters copy of Python version: github.com/jgm/pandocfilters 07:40
FROGGS_: I translated it to P5 almost line-to-line and will "perlify" now 07:41
sergot: maybe some side-by-side session then?
07:41 mr-fooba_ joined
FROGGS_ arnsholt: no :/... and sorry for not making it clear in the PR 07:42
07:42 hoverboard left
sergot arnsholt: that's my fault, I'm sorry 07:43
jest: what do you mean? 07:44
07:44 mr-foobar left 07:45 virtualsue joined 07:48 rurban1 joined 07:52 rurban1 left
jest sergot: to show you my code and apply P6 idioms to it, face to face. Unless you are very busy at GSoC? 07:53
07:56 dayangkun joined
arnsholt Not a problem =) 07:57
Just keep me posted on progress on the Parrot/JVM side of things, and we can merge it once that's settled
I've not been following things too closely recently, so it's my bad really 07:58
07:58 pecastro joined
FROGGS_ yeah, it is a shame you are not here more often :o) 07:58
sergot jest: I'm quite busy at GSoC but we can do this soon-ish I think. 07:59
clkao w 08:00
~>l 08:01
08:14 erkan left 08:20 thou left 08:35 mr-fooba_ left 08:36 mr-foobar joined 08:38 chenryn left 08:42 denis_boyun joined
masak good antenoon, #perl6 08:47
08:49 rurban1 joined
moritz \o masak 08:49
08:53 rurban1 left, chenryn joined 08:55 kaleem_ joined
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:55
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
#perl6++
09:00 chenryn left 09:03 chenryn joined
sergot masak: o/ 09:04
09:05 xinming_ joined, kkielak joined 09:08 xinming left 09:09 FROGGS_ left
masak \o 09:15
heh, Configure.pl works fine without --gen-nqp
09:20 FROGGS joined 09:22 spider-mario joined 09:27 chenryn left 09:35 chenryn joined 09:37 akagi201_ left 09:38 pecastro left
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:40
09:42 pecastro joined
masak jest: asking questions is the way to go. 09:42
even if you ask the "wrong" question, the answers tend to point in the right way.
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:45
09:45 Isp-sec left
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 :)
moritz jest: that way whoever answers can decide if X is a viable approach, or tackle Z differently right away
masak what moritz++ said. 09:47
IMO, the important thing is to ask.
09:47 Psyche^_ joined
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 chenryn left
jest masak: for example, take a look at sergot's post filip.sergot.pl/en/blog/perl6/gsoc_...::headers/ and the response of smls 09:48
masak does so
sergot masak: direct link: filip.sergot.pl/en/blog/perl6/gsoc_...1419095651
jest masak: I would never got that answer if I only asked "How do I append an element to a list" 09:49
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
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. :)
jest masak: :)
masak jest: the best way to get good answers in a forum is not to say "how do I X"
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
masak yes?
jest masak: you mentioned something new (wiki? docs portal?) being prepared, but not announced yet
masak: I don't remember what or where it was...
09:52 Psyche^ left, dmol joined 09:54 sqirrel joined
masak jest: doc.perl6.org/ ? 09:58
jest: it's coming along, much thanks to moritz++ and others.
it's' just a lot of work.
10:00 amkrankruleuen left, amkrankruleuen joined
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
10:03 chenryn joined 10:04 rurban1 joined 10:09 denis_boyun left 10:12 dayangkun left 10:15 rurban1 left
masak jest: not so much has changed since the Perl 6 book was actively developed. 10:15
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:16
10:19 denis_boyun_ joined 10:21 brrt left
chenryn Need <beginning perl6>\<learning perl6>\<mastering perl6> etc. 10:21
masak agreed. 10:24
10:29 kkielak left 10:34 sftp_ joined 10:36 sftp left, sftp_ is now known as sftp
lizmat good *, #perl6! 10:37
I was looking where the behaviour of .hash is specced, but I can't seem to find it
only hash() (S29:421) 10:38
synopsebot Link: perlcabal.org/syn/S29.html#line_421
lizmat specifically, I'm interested in what:
m: { a => 1 }.hash.perl.say
camelia rakudo-moar cce7f9: OUTPUT«{"a" => 1}␤»
lizmat m: Hash.new( a => 1 ).perl.say 10:39
camelia rakudo-moar cce7f9: OUTPUT«().hash␤»
lizmat m: Hash.new( (a => 1) ).perl.say
camelia rakudo-moar cce7f9: OUTPUT«("a" => 1).hash␤»
jnthn m: [1,2,3].list.perl.say
camelia rakudo-moar cce7f9: OUTPUT«Array.new(1, 2, 3)␤»
jnthn .hash should do the analogous thing. 10:40
(strip the containerization)
lizmat right, that's what I would think as well
jnthn In EnumMap we currently have, for no reason I can understand:
method hash(\SELF:) is rw {
SELF
}
lizmat let me see how many spectests will break if I fix this :-)
jnthn Should that not just be
method hash() { self } 10:41
:)
lizmat but that would not decontainerize?
jnthn It would
Oh, wait...
returning preserves hat
*that
So yeah, needs an explicit decont I guess
huh, though...in List.pm it looks just like that 10:42
And .list seems to decont OK
m: [1,2,3].perl.say
camelia rakudo-moar cce7f9: OUTPUT«[1, 2, 3]␤»
lizmat so maybe something deeper is amiss?
jnthn m: [1,2,3].VAR.^name.say 10:43
camelia rakudo-moar cce7f9: OUTPUT«Array␤»
jnthn Hmm...that's surprising too
Should say Scalar, no?
lizmat feels like it, yes
but that could just be a problem in VAR
jnthn m: say nqp::iscont [1,2,3]
camelia rakudo-moar cce7f9: OUTPUT«1␤» 10:44
jnthn m: say nqp::iscont [1,2,3].list
camelia rakudo-moar cce7f9: OUTPUT«0␤»
lizmat m: nqp::iscont { a => 1 }
camelia ( no output )
jnthn m: augment class Hash { method hash() { self } }; say nqp::iscont { a => 1 }
camelia rakudo-moar cce7f9: OUTPUT«===SORRY!=== Error while compiling /tmp/N40RN0rp_u␤augment not allowed without 'use MONKEY_TYPING'␤at /tmp/N40RN0rp_u:1␤------> augment class Hash ⏏{ method hash() { self } }; say nqp::isc␤ expecting any of…»
lizmat m: say nqp::iscont { a => 1 }
camelia rakudo-moar cce7f9: OUTPUT«1␤»
lizmat m: say nqp::iscont { a => 1 }.hash
camelia rakudo-moar cce7f9: OUTPUT«1␤»
jnthn m: use MONKEY_TYPING; augment class Hash { method hash() { self } }; say nqp::iscont { a => 1 }
camelia rakudo-moar cce7f9: OUTPUT«1␤»
jnthn m: use MONKEY_TYPING; augment class Hash { method hash() { self } }; say nqp::iscont { a => 1 }.hash
camelia rakudo-moar cce7f9: OUTPUT«0␤» 10:45
jnthn Seems it'll do it :)
lizmat and drop the "is rw" as well ?
jnthn Right 10:47
And the \SELF
Oh, I know why it works
It's because self is *always* decontainerized 10:48
It's nothing to do with return handling. :)
duh :)
jnthn needs to slurp the coffee harder or something
lizmat :-)
running spectest now
10:51 chenryn left
lizmat lo and behold: no spectests failing, but 7 todo's passing :-) 10:54
jnthn much wow
10:54 chenryn joined
dalek kudo/nom: 44d5357 | (Elizabeth Mattijsen)++ | src/core/EnumMap.pm:
Make sure .hash decontainerizes

  {}.hash did not decontainerize. jnthn++ suggested to simplify EnumMap.hash
  (because returning self always decontainerizes if necessary)
10:56
11:01 atroxaper left, atroxaper joined 11:06 atroxaper left 11:07 kivutar left 11:11 kkielak joined
colomon_ I guess I forgot to say anything when I checked last night, but the (moar) smoke test ran fine overnight and automagically updated host07.perl6.com:8080/report 11:12
lizmat apparently my change also fixed #122223 11:14
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122223
FROGGS colomon_++ # that site is bookmarked now :o) 11:16
colomon_ FROGGS: don't forget moritz++ too! :) 11:17
FROGGS troo, moritz++ 11:18
dalek ast: 51e4682 | (Elizabeth Mattijsen)++ | S02-types/ (7 files):
Unfudge tests fixed by .hash decontainerizing
11:19
11:22 chenryn left
lizmat wonders what #77760 is about 11:23
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77760
lizmat I guess that should probably be marked as "wontfix" 11:24
11:24 sqirrel left 11:31 BenGoldberg joined
dalek ast: 71d92f5 | (Elizabeth Mattijsen)++ | S02-types/ (5 files):
Test fixes now that we now %h = {} won't work
11:32
lizmat *know
*sigh*
time to get to www.bst-hydepark.com/events/detail/black-sabbath
11:33 kkielak left
jnthn lizmat: Enjoy! 11:33
masak .oO( but, but... it's Friday, and daytime ) :P 11:36
11:44 anaeem1__ left 11:49 SamuraiJack_ joined 11:52 virtualsue left 12:08 virtualsue joined 12:09 atroxaper joined, sqirrel joined 12:14 SamuraiJack_ left, atroxaper left 12:15 mr-foobar left, mr-foobar joined 12:24 atroxaper joined 12:30 MilkmanDan left
FROGGS m: my Int $x = 42; my uint8 $y = $x 12:30
camelia ( no output )
12:32 MilkmanDan joined 12:35 sqirrel left, psch joined
psch hi #perl6 o/ 12:36
sergot psch: o/
12:36 kaare_ left
psch sergot: \o 12:37
12:41 Shozan joined, carlin joined 12:46 SamuraiJack_ joined
masak krunen: which time are we aiming for tonight? 12:51
13:04 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 13:05 donaldh joined
krunen masak: any time after 6 is good for me 13:05
timotimo: Re HDMI adapter - wasn't mine 13:06
13:15 cognominal left, cognominal joined 13:22 sqirrel joined 13:24 Shozan is now known as SHODAN 13:36 [Sno] left 13:41 molaf joined
[Coke] masak: have fun you crazy kids! 13:41
13:43 kaleem_ left 13:45 guru joined, guru is now known as Guest65546 13:46 Guest65546 is now known as ajr_, prevost joined, atroxaper left 13:47 atroxaper joined 13:49 PotatoGim left 13:52 atroxaper left 13:53 Kripton_ joined 13:54 Kripton_ left 13:55 kaare_ joined, atroxaper joined
masak krunen: are you able to start at 18:00 sharp? 13:59
nwc10 18:00 UGT, or some other timezone? :-) 14:01
masak oh, sorry. CEST. 14:03
jnthn figures 18:00 in the timezone they mutually inhabit :)
nwc10 I wasn't sure if they were sure about that
masak since we're in GMT+2 in summer, I guess that'd be 18:00 UTC.
nwc10 masak: you seem to be low on coffee 14:04
jnthn masak? coffee? :)
nwc10 18:00 CEST isn't 18:00 UTC
donaldh indeed not :) 14:05
jnthn haha
Timezones are hard.
you have to, like, subtract numbers :P
donaldh and know what your reference point is :D 14:06
14:08 spider-mario left 14:09 dayangkun joined 14:11 spider-mario joined
carlin try living in UTC+13. I've had some software break in strange ways because it think the time is set wrong 14:15
donaldh imagines some kind of temporal instability 14:16
masak heh. I was so sure I wrote 16:00 UTC. :) 14:17
nwc10: thanks for noticing. :)
14:20 orafu left 14:24 xenoterracide__ joined, sqirrel left 14:37 FROGGS left 14:38 xenoterracide__ left, btyler joined 14:43 xenoterracide__ joined, rurban1 joined 14:47 erkan joined 14:49 virtualsue left
masak how does this sound? github.com/masak/emmabot#stories 14:50
[Coke] masak: what's the module population that is being tested? 14:51
masak R*'s modules, I guess. 14:52
[Coke] also: nice if the bot can say "rakudo changed" "module changed" or "both changed"
masak hmmm
yes.
masak adds that 14:53
[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
also which backend you're testing.
masak *nod* 14:56
[Coke] we have many jvm specific failures atm, for example.
masak adds those things
[Coke] (also: "nqp changed" "vm changed")
I'm tracking all this stuff now, but not automating all the discovery.
you are free to use any bits of my repository to get started. 14:57
masak url?
[Coke] github.com/coke/rakudo-star-daily 14:58
right now I just dump things into the log files. I imagine you'd put them into a DB.
masak don't know, don't care at this point. :) 15:00
a file is a DB, sort of.
zengargoyle Test::skip() does what it's supposed to.
masak what concerns me right now is the core logic, which deals with neither files nor databases.
zengargoyle /^^/i'm not sure/
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.
it emits the skip, but still runs the skipped test
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:02
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.
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?
masak hoelzro: yes.
hoelzro masak: could you perhaps point out what I'm doing wrong in this example? gist.github.com/hoelzro/9d9d706015993745805c
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
*block
15:06 denis_boyun_ left
zengargoyle guess it's just S24 bundling todo and skip together made me think they both worked the same-ish. 15:08
The C<skip()> function is called I<instead> of the some tests (usually because
they would die), and emits C<$count> SKIP markers in the TAP output.
[Coke] FROGGS: you're working on archive::tar and ::zip, yes? (github.com/perl6/perl6-most-wanted...odules.md) ? 15:09
zengargoyle i read that as: skip('broken',2); fail; fail; # would skip running the failing tests.
since: todo('not yet',2); fail; fail; # does make the failing tests TODO tests. 15:10
15:10 teodozjan left 15:12 igorsutton left, FROGGS joined 15:13 virtualsue joined
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:13
dalek osystem: db19e02 | (Andrew Egeler)++ | META.list:
Move MessagePack back to original author
15:14
15:14 FROGGS left
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.
masak zengargoyle: maybe there is a way we can improve the wording of S24 to make this more clear?
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
zengargoyle also die_on_fail() is not exported. :P
15:16 FROGGS joined
zengargoyle right, so: skip; fail; # should not run the fail :) 15:17
oops flunk....
instead of having to do: if $test { skip } else { test_that_flunks } 15:18
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.
well, yes and no.
it might still be interesting to see that there were skipped tests.
[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:22 zakharyas left
hoelzro (if anyone's curious what I'm working on: github.com/hoelzro/wwid) 15:26
most of the work is under extlib these days
I intend to break those out out into separate repos after they're stable-ish
15:27 dmol left
zengargoyle i have some ::Test documentation started, but think i'll try and clean up Text::Fortune a bit today. 15:27
hoelzro zengargoyle: nice! 15:28
zengargoyle if anybody wants a laugh: github.com/zengargoyle/perl6-Text-Fortune
it's mosly in the hack away until it works stage ATM
vs nice enough for ecosystem :) 15:29
masak hoelzro: your example runs fine here too.
hoelzro zengargoyle: looks good so far 15:30
masak: it doesn't print '2' on your machine?
15:32 virtualsue left
retupmoca Heap corruption detected: pointer 0x7f744282d2f0 to past fromspace 15:34
^ moarvm really doesn't like Sum
also had a "Internal error: zeroed target thread ID in work pass" 15:35
masak hoelzro: it prints 2.
hoelzro should it, though? because the for loop should shift it off of @input, no? 15:36
masak hm. 15:37
ah, I see what expectation you have. 15:38
15:39 btyler left 15:41 btyler joined
masak hm, krunen hasn't replied... 15:42
I'm done cooking dinner here. will clean up a bit, and then I will get this hackathon going :)
15:44 rurban1 left 15:46 donaldh left
hoelzro masak: either way, I got it working in App-Subcommander 15:47
it's more of a curiosity
4th of July celebrations are starting, so I'm off 15:48
krunen masak: ready as soon as my coffee is brewed! 15:51
masak excellent. 15:52
masak boils some tea water 15:53
15:54 noganex left, noganex joined 15:55 dayangkun left, rurban1 joined
[Coke] should have kicked off this build before he went to sleep last night! 15:56
(jvm slow)
ChoHag [Coke]: I am kicking myself for using threads from day 1. 15:57
cognominal r: my $m = 'abc' ~~ /a(b)c/; my $b; ($b) = $m; say $b; ($b) = @$m; say $b 15:58
camelia rakudo-jvm 44d535: OUTPUT«(timeout)» 15:59
..rakudo-{parrot,moar} 44d535: OUTPUT«「abc」␤ 0 => 「b」␤␤「b」␤␤»
16:00 dragon_d joined
cognominal I thought in ($b) = $m , $m would be evaluated in list context. 16:00
n: my $m = 'abc' ~~ /a(b)c/; my $b; ($b) = $m; say $b; ($b) = @$m; say $b
camelia niecza v24-109-g48a8de3: OUTPUT«「abc」␤ 0 => 「b」␤␤「b」␤␤»
masak ok, hackathon is now *on*, and waiting for krunen++ to show up with his coffee ;) 16:02
16:03 rurban1 left
krunen slurps 16:05
masak ready?
krunen salutes. "Yes, sir!"
masak ok, here are the rules of engagement:
we try doing ping-pong pairing.
that is, I push a test. you implement it and write a test. I implement that and write a test. etc. 16:06
I just pushed my first test. go go go! :)
krunen hehe, ok
tadzik oh oh :)
masak also: no merge commits. consider setting merge.ff = only in your config. 16:07
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?
masak whoever causes a conflict for the other owes the other a beer :)
FROGGS: github.com/masak/emmabot
FROGGS oi, nice 16:09
masak :)
16:11 rurban1 joined
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:12
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 SamuraiJack_ left
krunen do_daily_report -> do-daily-report ? 16:16
masak I kinda prefer the underscores, if you don't mind. 16:17
works better with vim's color coding.
and other editors'. 16:18
fwiw, I paused and considered dashes.
krunen ok. I've started getting used to dashes...
masak we can do it with dashes, that's OK.
but please make such a change in a separate commit. 16:19
BenGoldberg Perl6ers do it with dashes? 16:21
masak not all of us. 16:22
anyhoo, I don't have a horse in the dashes-vs-underscores race. not today :) 16:23
we have bigger fish to catch :) 16:24
16:26 [Sno] joined, Rotwang joined
[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:28
"broken in ng1". 16:29
masak krunen: any progress? 16:30
krunen masak: pushed an implementation
masak ah, pulling.
looks good; I have a tiny refactor that I'm making now. 16:31
shouldn't conflict if you're currently working on our second test ;)
krunen since you have actually thought about this, do you have an idea for the next test
?
16:31 ren1us joined
masak krunen: see the README.md for ideas. 16:32
krunen: haven't thought as far as the second test, no. we can discuss it.
it should preferably be the "smallest possible thing" that extends what we have now in the direction we want to go.
that *may or may not be* the "does the module still fail" test case. 16:33
pushed my refactor; please pull --rebase whenever convenient. 16:34
krunen ok, that's better 16:35
masak :)
I like that shortcut. a lot. 16:36
krunen: did my rambling above get you unstuck on what test to write?
ren1us is there a way to get a timestamp that gives the time in ms? time() seems to use seconds 16:38
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()
camelia rakudo-moar 44d535: OUTPUT«===SORRY!=== Error while compiling /tmp/0CndavTiOi␤Undeclared routine:␤ now used at line 1␤␤»
masak m: say now
camelia rakudo-moar 44d535: OUTPUT«Instant:1404491989.088240␤»
ren1us that works
masak ren1us: there you go.
ren1us masak++
masak krunen: 's ok. it'll take a few iterations before we both get the hang of it :)
[Coke] returns to his home time zone! 16:41
16:46 virtualsue joined 16:47 dragon_d left 16:48 dragon_d joined
ren1us by the way, should i assume EVAL to be really slow? 16:52
masak yes.
ren1us mmk, just checking 16:53
16:56 smls joined 17:00 xenoterracide__ left
krunen pushed an extended test to emmabot 17:05
masak krunen: pulling.
17:06 smls left
masak krunen: I think I'll start by teasting that apart into two separate test blocks, if that's OK with you. 17:06
17:06 smls joined
masak krunen: oh, and your editor seems to be producing tab characters. might want to look into that ;) 17:06
17:07 rmt joined
krunen masak: :) noticed the tabs. .pm gave text mode for some reason 17:07
masak pushed whitespace fix. 17:08
17:08 Isp-sec joined
masak pushed split tests into two. 17:09
pushed implementation -- all tests pass again. 17:11
pondering next test to write :) 17:12
17:14 atroxaper left
masak krunen: I'm pondering whether I don't want to change the first test a bit. 17:14
krunen: it's doing both newly-failing modules as two separate reports.
krunen: might want it to be one report, two modules.
krunen masak: yes, agree 17:15
masak then one "report" will more closely correspond to one utterance on IRC>
and it's better if determining that is part of the bot logic, instead of part of $channel, which feels weird.
ok, going ahead and doing that.
I'll consider this to be a refactor, and then I'll write a test after this. 17:16
dalek p/nativecast: 7382574 | sergot++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
nativecast operator added

nativecast op has been added, it makes us able to cast things conditionally. FROGGS++
17:17
colomon_ has been missing all the action because of being roped into reading "Prisoner of Azkhaban" to the little guy. 17:18
17:19 dmol joined
masak pushed refactor. 17:19
17:20 rurban1 left
masak pushed new test. 17:23
krunen: your turn again :)
BenGoldberg The HP books, though good, are long... couldn't you have tricked the kid into hearing a shorter book? :)
krunen masak: on it 17:24
17:26 Akagi201 left
krunen masak: pushed 17:30
masak: hmm.. what to test... 17:31
masak pulling.
heh, you could have gotten away with always returning True ;) 17:32
17:32 dmol left
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.
masak oh, wait, slight misunderstanding about .summarized
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?
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?
masak but I'm toying with the notion of taking .type and .summarized and turning them into an enum instead -- currently with four values.
I'm fine with FailureReport stringifying to the right thing. 17:35
(and we can have tests for that in a separate .t file)
17:35 denis_boyun joined
masak anycase, I'm eagerly expecting another test ;) 17:38
17:41 denis_boyun left 17:46 guru joined, guru is now known as Guest17945 17:49 ajr_ left
masak krunen: how's it going? can I help? 17:49
17:49 Guest17945 left 17:50 rurban1 joined
krunen masak: just fixing a typo... 17:52
masak ok :)
krunen pushed 17:53
masak pulling. 17:54
oh, a log? interesting. 17:55
krunen i'm not sure we can test the number of entries, though. 17:56
there can be a lot in there
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
dalek volaj/nativecast: a8f3111 | (Tobias Leich)++ | / (3 files):
Reenable usage of nqp::nativecast, and its tests

This reverts commit c0f68bca0a3d34a7d59f872fce0e7f34892cdff2.
17:58
krunen eh, I did what?
17:59 btyler left
masak 24e0ca6 modifies the last test I added. 17:59
d3a0760 did the same.
ren1us in terms of speed, should i be expecting a whole lot out of moar?
masak krunen: I'd rather you copy/paste an old block and do your modifications there ;) 18:00
ren1us: define "a whole lot".
ren1us: also depends on what what type of code you're running.
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
masak yes. 18:01
pushed separated tests.
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.
ren1us: probably because it involves a lazy list. 18:03
ren1us brb googling
18:05 kivutar joined
masak pushed passing of the test. 18:05
all tests now pass.
now, design discussion. 18:06
krunen: what's the log?
18:07 cognominal left, cognominal joined
krunen masak: that's a very general question :) 18:07
18:07 kivutar left
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
or is it something else?
related to this, what are the $level and $fmt and @rest parameters in the .log method? 18:08
ooh -- they make up a small logging framework, don't they?
like "[warning] these are the things that just broke: flub1 blorb2 glaps3"
nwc10 masak: could you remind me where your repository is please
krunen masak: yeah, not really relevant in a test, though - this is more like sketching code 18:09
masak nwc10: github.com/masak/emmabot
nwc10 thanks
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
krunen If we use a log framework, testing it is not relevant here. No, I lean towards deleting the whole thing. 18:11
(test that is)
masak on it.
pushed ditch the log. test survived, still passes. 18:12
hold on, I'd like to simplify the .summarized implementation.
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:13
18:14 rurban1 left
masak agreed. 18:15
18:15 virtualsue left
masak I guess the effects of that are exacerbated by us not co-locating. 18:15
I've only ever done this kind of ping-pong in the same room as someone.
a new test pushed.
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.
which we didn't test before.
so it's OK as a regression test.
but you're right, it doesn't test any functionality that we hadn't already implemented. 18:17
the test I just pushed should be implementable by re-introducing the condition into the .summarized method.
krunen: I'm still pondering the enums idea. something like `enum MessageType <NEW_FAIL NEW_FAIL_SUMM ONG_FAIL ONG_FAIL_SUMM>;` 18:18
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
so the formatter should decide
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
not so different from what we already have. just upgrade a string type to an enum.
krunen it should also be configureable - so it must be stubbed in the test
masak ok, fair enough. but it should have a default. 18:21
I actually don't know what the limit should be -- and we've avoided pinpointing it so far.
I only know that 20 definitely wants summarizing :)
maybe the limit is something like... 5?
I guess it depends on how much info is printed with each new failure. 18:22
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.
so, let's say Acme::Meow just failed on Parrot, and we know only nqp changed since yesterday. 18:23
what do we want <emmabot> to say on #perl6?
<emmabot> Acme::Meow just started failing on Parrot. (nqp has changed.) 18:25
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?
(trying to tease out a pattern here in the messages)
18:27 Akagi201 joined
masak <emmabot> Druid and Math::Tau just started failing on <Parrot JVM Moar>. (<Rakudo Math::Tau> have changed.) 18:27
ok, I think we can work with this.
krunen yeah 18:28
masak the pattern seems to be "X just started failing on Y. (Z changed.)"
krunen dependencies may make it harder, though
masak yes, no doubt.
let's consider that information to be available through $modules, for now.
krunen but we can look at that later
masak oh, you mean deps between modules?
krunen yes 18:29
masak I somehow consider that Not Our Problem, actually.
if a module fails, it fails.
krunen but it will introduce failures
masak how do you mean?
oh, I think I see what you mean.
there are degrees of failure here.
like "fails the tests"
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...
masak well, the "what changed" information is not meant to be perfect, just a clue for where to start looking.
krunen so (<x y z> have changed) may be complicated
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
just fyi
well not fixed size array but whatever
18:32 dmol joined
krunen masak: but the line format is good enough to start with 18:32
masak ren1us: nice.
18:32 virtualsue joined
ren1us by the way, should i consider the culprit to be the my ($x, $y) =, or the $_.split(' '), or both? 18:33
just so i know what to avoid like the plague
18:33 itz_ joined
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
krunen: ...or something completely different. it's up to you.
18:34 Akagi201 left, virtualsue left
krunen masak: ok 18:34
18:36 rurban1 joined
ren1us on a generally unrelated note 18:36
Heap corruption detected: pointer 0x7fee3d952a90 to past fromspace <--- what should i be looking for from this 18:37
as in, what would cause... that
(i'm still learning the errors, don't judge me too harshly)
krunen masak: pushed passing code
masak pulling. 18:39
yeah, nice.
what I had in mind :)
18:40 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
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:42
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: www.infoq.com/presentations/termino...-collector
18:43 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg
ren1us it smells like a recursion error 18:43
FROGGS ren1us: and it smells like garbage (collector) 18:44
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
would be nice to have short piece of code that still triggers that error
18:45 rindolf left
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.
krunen: do you have outstanding changes on t/report.t? otherwise I'll just go ahead and push this change. 18:47
18:47 prevost left
krunen masak: go ahead 18:47
masak pushed.
ren1us sec, i'll try and get it back, i only ran it once before i went in and made a couple edits
masak krunen: ok, so what's up next?
what's the next this we want to test? 18:48
krunen masak: We need info on which backend things fail on 18:49
masak: Also, what repos have commits in them
masak oh, excellent! 18:50
yes.
yeah, both of those should come from $modules
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.
masak yes, makes sense.
for the moment at least, we can assume that $modules does all the "computation" for us.
that is, we receive the information in the most convenient form possible.
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.
so we make it maximally convenient for $bot to work with.
ren1us (identical code rerun didn't have the error... weird)
FROGGS hmmm 18:54
krunen masak: agree
masak krunen: I'll be back in ~10 minutes. 18:56
18:57 darutoko left
krunen masak: ok 18:58
masak back. 19:05
everything on track? when do I get my next test? :) 19:06
krunen committing
19:06 virtualsue joined
krunen pushed 19:08
forgot done - fixing 19:09
masak pulling.
krunen pushed fix 19:10
masak pulled it.
ok, gonna go ahead and implement this.
krunen feel free to refactor new_failures if you disagree 19:11
ren1us screencloud.net/v/gaLb should I be concerned about what moar is up to?
masak krunen: I dig the API so far. 19:13
looks sane.
I think fixing this will break our first test file, though.
s/fixing/implementing/
krunen i'll fix report.t
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
that's a more urgent thing to consider.
mind if I change your second test in report_stringify.t a little? 19:15
krunen yeah, there's a choice to make :)
masak krunen: my thinking here is that this is where we want to be not too spammy on the channel.
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
masak right.
masak makes it so
krunen: in the second test of that file, .changed_repos returns <X>, but X isn't part of the output. 19:18
krunen: did you intend for the former to be empty, or for the latter to include X? 19:19
krunen yes
masak haha 19:20
krunen eh. include X
masak oki
masak makes it so
krunen <X blop>
masak pushed. 19:21
now, for the implementation.
this will be a little non-trivial :)
krunen meanwhile, I'll fix report.t 19:22
masak krunen++ 19:23
I've gotten the first test block to pass now. 19:32
krunen \o/ 19:33
masak for the second one, I need to start classifying by backend.
19:36 dwarring joined 19:43 pdcawley joined
masak implementation pushed. 19:46
krunen: if you're fixing report.t, you'll want to pull --rebase before the next push.
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.
krunen do that
masak pushed simplification 19:50
now turning to a minor rename.
19:53 [particle] left 19:54 telex left, telex joined
masak pushed three renames and some more test descriptions. 19:55
krunen: how's that upgrade of report.t coming along?
writing a new test for you now. :) 19:56
krunen have to update it after .modules() disappeared
19:57 guru joined, guru is now known as Guest14956, Guest14956 is now known as ajr_
masak test pushed. your turn. 19:58
oh, right. .modules() -- that was my fault.
wasn't running that .t file at all, since I know it was going to be busted after my implementation changes anyway... 19:59
20:04 rurban1 left 20:07 itz_ left
masak how are things coming along? 20:08
krunen struggling a bit with the contents of @.failures. map() doesn't seem to like it 20:09
masak is this all part of the t/report.t upgrade? 20:12
masak tries it in parallel
20:13 ElderDryas joined
krunen i have fixed everything but checking .failures, I can push 20:13
masak excellent; please do. 20:14
we can look at the remaining bit together.
I started in on it, and I think I see the problem.
and yes, you'll want to project somehow. I think I can fix it quickly.
krunen maybe add something like this to Report.pm: method modules { @.failures.map({$_<package>}) } 20:15
masak aye. 20:16
at least as a stop-gap to get the tests running again ;)
.<package> is now known as .<module>, btw.
krunen yeah, but my perpetually-confused brain refuses to accept that 20:17
masak ;)
where's that push you promised me? 20:18
krunen pushed 20:19
masak pulling.
krunen modules() in Report.pm returns only spaces 20:20
er. empty strings
masak ooh, nice. you made the refactoring into the modules() function I had planned. :)
we're reaching resonance here. :) nice! 20:21
krunen because i wrote package :(
masak aye.
fixing.
pushed.
I still have empty strings, though.
and undefinedness warnings.
krunen yep 20:22
masak actually, only two tests fail, though: 2 and 5.
ah, ' ...with the right modules'.
so.
masak resorts to die and .perl 20:23
20:24 anaeem1 joined
masak ah. t/report.t still has them as :package 20:24
fixing.
krunen i just saw that as well
still spaces, but no undefs 20:25
Array.new({"module" => -> ($_? is parcel) { #`(Block|140520791501824) ... }, "backend" => "X"}, {"module" => -> ($_? is parcel) { #`(Block|140520791528760) ... }, "backend" => "X"}) 20:26
^ @reports[0].failures.perl
masak I think we just ran into lizmat's itemization bug.
fixing.
yes, got it. 20:28
there's definitely something rotten there in Rakudo right now.
hashes spontaneously disappearing and dropping their keys into the surrounding array. 20:29
pushed.
all tests now pass -- except krunen++'s next task :) 20:30
krunen :/ ugly hack, but works 20:31
masak aye. 20:32
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)␤»
masak now that I think about it, I'm not sure it's a bug :/ 20:35
the innermost block there is a Block, not a Hash -- because it has a $_
pushed a slightly less hacky version. 20:37
20:39 denis_boyun_ joined 20:40 rurban1 joined
krunen pushed, all tests passing 20:42
20:45 denis_boyun_ left, rurban1 left 20:46 rurban1 joined
sjn krunen, masak: url? 20:50
masak sjn: github.com/masak/emmabot
20:50 rurban1 left
masak krunen: pulling. 20:50
yes, looks good. 20:51
krunen: looking forward to another test :)
masak reviews the README.md in the meantime
20:51 kaiserpathos joined 20:52 rindolf joined
masak we actually do the first five things at this point. 20:52
not number six. sort of number seven.
this is a good evening's work.
20:53 anaeem1 left
krunen yes, it's been a lot of fun 20:53
colomon_ masak++ krunen++ 20:54
masak we should do this more often ;) 20:55
krunen so the next step is maybe the history?
masak generic universal promise: I will do my best to find time for hackathons with anyone on any projects, under similar conditions.
krunen: yes, maybe history. 20:56
krunen: I'm also thinking there is some logic in the $modules that merits testing.
krunen: how about we go all-out and write one test each? :P
then we don't have to block on each other.
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
masak ooh, no. I know a simpler thing we haven't tested. 20:59
21:00 rurban1 joined 21:01 kaiserpathos left 21:02 cooper left, cooper_ is now known as cooper, cooper left, cooper joined 21:03 rurban2 joined
masak pushed a new test. 21:03
should be fairly simple to pass, I think.
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
More or less.
21:04 ElderDryas left
ChoHag Can I have the $bar block which calls $foo automatically set $xxx so that it's automatically declared, like self? 21:04
So $foo = sub ($xxx) { $xxx.whatever } can lose the (sub and) signature?
21:05 rurban1 left
masak ChoHag: no, and this sounds a bit like an XY problem -- but go on. 21:05
ChoHag Oh it is. It's just an aside - can I save users of the module a massive 7 keystrokes. 21:06
I guess they can just use $^something
masak yes, that's a good use of $^something
21:08 kivutar joined
ChoHag How do you pronounce that? 21:08
dollar-caret-something is a bit of a mouthful.
masak dollar *hiccup!* something 21:09
:P
ChoHag Hmm. More of a mouthful, but would make quasi-agile standups more entertaining. 21:10
masak also works very well with the Ballmer peak. 21:12
krunen: anything I can help with?
21:14 smls left
krunen added t/history.t - requires some thought 21:14
pushed
21:14 denis_boyun_ joined
masak pulling. 21:15
21:17 virtualsue left
masak krunen: hee hee -- you just increased the total count of components from 3 to 4, again. :) 21:18
apart from that, I'm all on board.
to be precise, you seem to have spec'd .consecutive_failure_count as a computed output, like reports. 21:19
I had it more as a computed input, like the existing methods in modules.
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:20
does that make sense? 21:21
21:21 Isp-sec left
krunen hmm... 21:22
pushed, t/message.t passing
masak pushed, slightly message tweak. 21:24
krunen++ # looks good
krunen This must run as a daemon, right. Every run creates a new Emmabot object at the moment
to be able to send irc msg to get info, we must store it somewhere. 21:26
maybe the Emmabot class should be refactored to hold this?
21:27 molaf left
masak hmm. 21:27
yes, every run creates a new Emmabot object. 21:28
that's why some of the interesting logic is also held in the Modules object.
which must, for the simplest case, compare data from yesterday with data from today.
and, considering streaks of failures, data from further back.
I think for the stuff we've considered so far, we have the boundaries right. 21:30
though we haven't considered the "IRC user asks emmabot something" case yet.
pushed a slight refactor. 21:31
krunen so the modules class should do all this - that sounds fine
21:33 cooper_ joined
masak yes, I think so. 21:34
krunen it's getting a bit late, I need a break.
masak pushed one more refactor. 21:35
krunen: yes, we might call it a night, I think.
krunen: thank you for this hackathon. I greatly enjoyed it.
<3 21:36
21:39 kaare_ left
psch masak++ krunen++ 21:40
was fun watching this a bit on the side :) 21:41
and you seem to have gotten somewhere too and it looks great
krunen I want to keep helping with this bot. I'll be around, so more tests please! :)
masak yes. that makes me feel a bit better about hijacking the channel for five hours :P
krunen: got it ;)
krunen: same goes for you.
21:42 larryd joined
dalek p/nativecast: 0e777cf | (Tobias Leich)++ | src/vm/ (3 files):
rename nativecast to naticecallcast to align with the others
21:42
krunen thanks a lot, masak++. This is an intensive but great way to help people to start contributing!
21:43 dragon_d left
masak aye. 21:43
krunen g'night, #perl6 21:44
psch 'night krunen
masak 'night, krunen
dalek p/nativecast: 0351dbf | (Tobias Leich)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/NativeCallOps.java:
Implement nativecallcast for jvm backend

This passes all NativeCall tests about casting OpaquePointers to native ints, nums, strings, CStructs, CArray and CPointers.
21:45
21:46 rindolf left
masak rindolf: but why would she sign it as Chuck Norris??? whyyyyyyyyy 21:47
dalek volaj/nativecast: 4ed6c4e | (Tobias Leich)++ | lib/NativeCall.pm6:
bind result of nqp::nativecallcast so there is no extra container

Otherwise calling nqp::isint($result) will blow up.
21:49
volaj/nativecast: 798fcc5 | (Tobias Leich)++ | lib/NativeCall.pm6:
box native string returned by nativecallcast when we get one
masak and with that, I'm turning in, too. 21:51
'night, #perl6
FROGGS gnight masak
I pushed my stuff... I'll go to bed too
gnight all
psch night you two 21:52
sergot good night! 22:00
timotimo m: my &foo:(Int, Int); 22:01
camelia rakudo-moar 44d535: OUTPUT«===SORRY!===␤Cannot invoke this object (REPR: P6opaque, cs = 0)␤»
timotimo p: my &foo:(Int, Int);
camelia rakudo-parrot 44d535: OUTPUT«===SORRY!===␤invoke() not implemented in class 'QAST::WVal'␤»
timotimo .. oh well
22:04 ajr_ left
psch so apparently what breaks OUTER for Foo::Bar in my golfed bit is precompilation of the outer class... 22:05
ren1us /home/Phoenix/.rakudobrew/bin/perl6: line 2: 17436 Killed /home/Phoenix/.rakudobrew/moar-HEAD/install/bin/perl6 "$@" 22:06
^ what's that about?
given that it happened when nobody was anywhere near this computer so a kill command was *not* issued by a human being
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?
jnthn ren1us: Such things should *never* happen; if your code is single-threaded then such things are extremely rare these days
Yes
If you have the exact code that did it, and you know it was that code, file it.
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
jnthn That works very well.
22:09 jest left
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
well not big
it's a medium project
Is the moar issue tracker the same as the general perl6 one?
22:10 BenGoldberg left
timotimo nah, we use the github issues thinige 22:10
thingie*
jnthn ren1us: 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
well, more than a thousand times more often
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
jnthn You can't imagine how slow it'll run when it's GCing all the time :)
22:12 atroxaper joined
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
and lol
jnthn whoa
what on earth is it doing? :)
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
22:16 cooper_ left
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
22:17 atroxaper left
ren1us on the todo list is running it through a GA and then making it learn how to actually use that again 22:17
i do weird things.
timotimo ah yes, finding a solution in a problem space by doing random walk is far from optimal 22:18
jnthn Fair enough :)
ren1us i only started on it quite recently, there's a looooong way to go
potentially about 45 years
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
"just" 22:20
and to make it a little more interesting i'm doing it in an unfinished language that i don't technically know
22:21 rurban2 left
timotimo what does "scripts" and "frames" refer to? 22:21
ren1us frames as in web.media.mit.edu/~minsky/papers/F...rames.html 22:22
22:22 smls joined
ren1us and scripts as in a sequence of frames representing verbs which, when put together, define a higher level action 22:23
jnthn Hm, sounds interesting :) 22:24
ren1us and i'll file the issue in a bit, i've got a train to catch
jnthn Thanks!
Happy training :)
ren1us best of luck making it break
22:25 ren1us left 22:27 kivutar left
carlin is there a way to make javakudo dump out information about what it's turning things into 22:31
22:31 rurban1 joined
carlin for exaple I have a "__P6opaque__69@751f265a" and I want to know what that is in perl 6 terms 22:31
if that makes sense
22:32 rurban1 left
jnthn Not really... I've often thought we should attach a simple string identifier off every STable to make these things easier... 22:32
22:33 abetaha joined, Rotwang left
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
22:35 rurban1 joined 22:36 abetaha left
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:36
but then I don't really understand what I'm doing :) 22:37
22:43 rurban1 left 22:45 rurban1 joined, rurban1 left
smls Array/List/LoL are mutable and Parcel immutable, right? 22:45
22:48 dragon_d joined, insanity_ joined
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␤␤»
psch m: my $x = Array.new; $x.WHICH.say; $x.push: 2; $x.WHICH.say
camelia rakudo-moar 44d535: OUTPUT«Array|140605534412496␤Array|140605534412496␤»
psch smls: i think that's a "yes" - at least for Array. ISTR that LoL isn't implemented yet 22:49
but i might be misunderstanding binding there... 22:52
22:53 pdcawley left
ChoHag I would just like to say that perl 6 is fantastic. 22:54
22:54 pdcawley joined
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.
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:56
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.
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
ChoHag Hand patched some bug I ran into and recompiled but otherwise it's pretty old.
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
ChoHag Or C-p C-m, rather.
timotimo ah, that's a good point
ChoHag I'll check it out.
22:58 spider-mario left
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
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
the startup time of rakudo-moar is really really nice these days
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.
ChoHag I think. Gave up and just relied on good-old-up-enter.
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
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
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.
There's only one of me, and Perl 6 stuff isn't the only thing I have on my plate. 23:03
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.
ChoHag Lives resist refactoring. 23:06
timotimo having automated test suites for ones life would be nifty 23:07
sadly, many improvements to ones life require effort
23:07 denis_boyun_ left
ChoHag How can I change a sub (:$foo?, *%bar) (or add another multi) so that $foo can be @foo and take a list? 23:07
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: gist.github.com/Mouq/b636db38f62afc1ee711
ChoHag What to put in the signature.
So that I can do funnyfn(foo => x) and (something like) funnyfn(foo => <<x y z>>). 23:09
s/foo => x/foo => "x"/
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
jnthn Named parameters don't count towards candidate sorting, and act as tie-breakers.
timotimo depends entirely on what you intend to do with the variable directly
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«===SORRY!=== 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␤------> ; multi x(:$foo) { say 2 }; x(…»
jnthn uh, indeed :)
Mouq :@foo does work, and I believe you can destructure stuff with :foo(["x"]) if needs be
jnthn m: multi x(:@foo) { say 1 }; multi x(:$foo) { say 2 }; x(foo => [1,2,3]); x(foo => 42)
ChoHag Hmm. I was only writing the single scalar case so I didn't test actually passing a list in to the $ form.
camelia rakudo-moar 44d535: OUTPUT«1␤2␤»
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?
sorry for not talk about you are
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.
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
timotimo i don't know what that means?
Mouq jnthn: Updated, but I'll update my Rakudo and try again :) It has been a while since I did
ChoHag Naturally, it Just Works without even needing to special-case it. 23:14
timotimo hehe. that's how perl6 does it :P
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:15
ChoHag I remember reading that and not coming up with a test case to see it work. 23:16
I guess I just did.
timotimo that makes code that expects lists sometimes work fine with single things (strings, ints, stuff like that)
m: say "hello".elems; say ["hello"].elems; say ["hi", "bye"].elems
camelia rakudo-moar 44d535: OUTPUT«1␤1␤2␤»
timotimo that kind of thing
jnthn Mouq: OK; I did some fixes last weekend in the threading area. 23:17
Mouq: So things may be better.
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)
Now the jvm won't build...
timotimo oh no! :(
ChoHag Is make clean; make; enough?
23:17 dragon_d left
timotimo no 23:17
ChoHag Not the jvm, sorry, the jvm backend.
timotimo often you need to reconfigure
23:18 BenGoldberg joined
jnthn Re-configure, and typically needs to re-gen NQP too 23:18
Especially if it's been a while.
timotimo ah, yes, i assumed he was talking about NQP as well
ChoHag Git also kicks arse. 23:20
Clean out build environment: rm -rf *; git reset --hard HEAD
I think I'll keep that one out of .bash_history ... 23:21
timotimo good idea
Mouq jnthn: It works \o/
timotimo ChoHag: git clean -xd is a better idea, i think
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.
psch and then Configure.pl
timotimo i *think* it behaves less dangerous with regards to things you put in and don't want to lose
ChoHag Protip: Ensure there are no such things.
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
yes, that's what i do nowadays
23:23 pinocchio joined
ChoHag Hurry up god damn it I want to see if this'll run on moar... 23:23
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
23:24 pinocchio left
timotimo (perl6-bench kinda lets you do that, though) 23:24
jnthn Mouq: ooh, nice 23:25
timotimo very good 23:26
anotherone timotimo talks about a bsd philosophy to maintain the compatibility
between versions
jnthn Mouq: Does using start/await speed it up?
timotimo anotherone: sorry, i'm confused by your messages; were you refering to what i said about rakudobrew?
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 :)
Mouq jnthn: Unfortunate, with start/await it's actually 2-3 seconds slower
*ly
timotimo oh wow
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
Mouq It says 174% cpu
anotherone just that, nevermind
Mouq But I don't know what the CPU is like on this computer
timotimo Mouq: hm. so that's at least something. strange.
23:29 dragon_d joined
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"
anotherone np
I understood 23:30
timotimo OK
23:30 beastd joined 23:31 beastd left
jnthn Mouq: I was gonna say, what sort of hardware is this on :) 23:31
Anyway, glad it actually works.
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
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?
jnthn no, not that
But it hasn't learned restraint yet 23:36
timotimo the what now?
Mouq 2 core, "model name : Intel(R) Xeon(R) CPU 3075 @ 2.66GHz
"
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
jnthn Which for CPU-bound workloads is LTA
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
ChoHag inter::progs - Determine what C compiler and linker to use...Compilation failed with 'cc' 23:39
Hmmm ISTR I needed to specify the compiler somehow to get this to work on freebsd but I forgot what. 23:40
how
jnthn That looks like an error from the Parrot build process, which I'm not too familiar with... 23:41
23:41 smls left
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
Time for some rest here. 'night
timotimo gnite jnthn 23:42
Mouq o/ jnthn
23:43 xragnar is now known as Guest50197, xragnar_ joined, Guest50197 left, xragnar_ is now known as xragnar
psch 'nite jnthn 23:43
23:45 raiph joined 23:49 R0b0t1 joined
R0b0t1 mojolicio.us/ 23:49
I am impressed.
Are there any other projects of similar goal? 23:50
23:51 avuserow left 23:56 dmol left