»ö« 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_uaugment 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/0CndavTiOiUndeclared 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|140605534412496Array|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/ecd0QvVT77Calling '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«12» | ||
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«112» | ||
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
|