»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:00 skids joined 00:02 molaf_ joined 00:03 molaf left 00:06 whiteknight joined 00:11 hundskatt left 00:23 ksi left 00:26 dbr_ left
colomon bacek_at_work: IO is not well-specced at the moment, for sure. 00:28
bacek_at_work colomon, yeah. I just helped my mate at work with his first attempt to use Perl6. It's not obvious where to find proper documentation. 00:29
00:29 sboyette joined 00:30 unixms joined 00:32 unixms left 00:39 am0c left 00:40 replore_ joined
colomon bacek_at_work: no, no, with IO the problem is more fundamental. the spec is dodgy, and so are the implementations. I think everyone acknowledges we need something better, it just hasn't happened yet. 00:51
bacek_at_work++ 00:57
00:59 molaf__ joined 01:00 molaf_ left 01:05 thou left 01:15 cognominal_ left 01:17 cognominal joined 01:23 cognominal_ joined 01:24 cognominal left 01:27 cognominal_ left 01:28 cognominal joined
[Coke] yawn. 01:40
s.
niecza: my @a=<a b c d e>; say @a[*-4..3] 01:43
p6eval niecza v13-302-g0f93f81: OUTPUT«␤»
[Coke] niecza: my @a=<a b c d e>; say @a[1..2]
p6eval niecza v13-302-g0f93f81: OUTPUT«b c␤»
[Coke] niecza: my @a=<a b c d e>; say @a[1..*-1]
p6eval niecza v13-302-g0f93f81: OUTPUT«Unhandled exception: Cannot use value like WhateverCode as a number␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.setting line 216 (Any.Numeric @ 5) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.s…
[Coke] rakudo: my @a=<a b c d e>; say @a[1..*-1]
p6eval rakudo ed943e: OUTPUT«b c d e␤»
[Coke] niecza: say "abcdef" > 4 01:46
p6eval niecza v13-302-g0f93f81: OUTPUT«Unhandled exception: Cannot parse number: abcdef␤ at /home/p6eval/niecza/lib/CORE.setting line 1118 (die @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2800 (ANON @ 10) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2802 (NumSyntax.str2num @ 4) ␤ …
01:46 zjmarlow left, zjmarlow joined
[Coke] sorear: do you want tickets for things like "Exception NYI" ? 01:52
sorear no 01:55
01:57 zjmarlow_ joined, zjmarlow left
[Coke] ok. 02:00
02:00 lestrrat left 02:02 lestrrat joined, zjmarlow_ left
dalek ast: 2e53c69 | coke++ | S02-types/ (3 files):
update todo notes.
02:02
02:08 replore_ left
sorear perl6: class A { method foo($x) { say $x } }; class B is A { method foo($x) { nextwith($x+1) } }; B.foo(3) 02:09
p6eval rakudo ed943e: OUTPUT«4␤» 02:10
..pugs b927740: OUTPUT«*** No such subroutine: "&nextwith"␤ at /tmp/WEQoLep0U9 line 1, column 72-87␤»
..niecza v13-302-g0f93f81: OUTPUT«Unhandled exception: Nominal type check failed in binding self in A.foo; got Int, needed A␤ at /tmp/hvieVDBJSY line 0 (A.foo @ 1) ␤ at /tmp/hvieVDBJSY line 1 (mainline @ 4) ␤ at /home/p6eval/niecza/lib/CORE.setting line 3108 (ANON @ 3) ␤ at /home/p6ev…
sorear perl6: class A { method foo($x) { say $x } }; class B is A { method foo($x) { nextwith(self, $x+1) } }; B.foo(3)
02:10 pyrimidine left
p6eval niecza v13-302-g0f93f81: OUTPUT«4␤» 02:10
..pugs b927740: OUTPUT«*** No such subroutine: "&nextwith"␤ at /tmp/dvJsepFLl3 line 1, column 72-93␤»
..rakudo ed943e: OUTPUT«Too many positional parameters passed; got 3 but expected 2␤ in method foo at /tmp/evE3bnYoMp:1␤ in <anon> at src/gen/Metamodel.pm:2522␤ in call_with_args at src/gen/Metamodel.pm:2519␤ in method foo at /tmp/evE3bnYoMp:1␤ in block <anon> at /tmp/evE3bnYoMp:1␤ …
02:10 pyrimidine joined
sorear S12 says that nextwith replaces the "argument list" 02:11
02:11 Chillance left
sorear my interpretation of consistency is that self is part of the argument list... 02:12
but POLA and Rakudo seem to have taken the opposite approach
I'm requsting public feedback before I change niecza to match Rakudo
TimToady if you want a different object, it would just be an ordinary method call 02:13
so I think I'd leave the invocant out of it
bbl & 02:25
02:41 raiph joined, abercrombie left 02:42 abercrombie joined 02:45 whiteknight left 02:55 jakky left 03:02 arlinius left, arlinius joined 03:06 lutok left 03:31 orafu left, orafu joined 03:36 jaldhar joined 03:38 Psyche^ joined 03:42 Patterner left, Psyche^ is now known as Patterner 04:01 leprevost left 04:04 kmwallio joined 04:06 bonsaikitten left 04:07 bonsaikitten joined 04:19 dayangkun joined 04:25 kmwallio left 04:30 arlinius left 04:32 arlinius joined 05:00 xinming joined, birdwindupbird joined 05:02 replore_ joined 05:06 replore_ left, replore_ joined
moritz bacek_at_work: pong 05:15
05:35 [Coke] left 05:36 pmichaud left 05:37 Util left, Util joined 05:38 pmichaud joined 05:39 [Coke] joined 05:49 kaleem joined 05:51 rhr joined 05:57 drbean_ joined 06:02 koban joined 06:04 skids left 06:07 xinming left 06:10 dayangkun left 06:14 xinming joined 06:17 etkrwl joined, lutok joined 06:37 etkrwl left 06:53 wtw joined 07:07 hundskatt joined 07:16 drbean_ left 07:17 baest_ is now known as baest 07:19 Trashlord left 07:21 woosley joined
jnthn morning...it cometh already 07:35
tadzik I hate it too 07:36
I mean, waking up isn't so attractive these days
when the exam session comes
that's almost a haiku 07:37
jnthn Apart from the incorrect number of syllables and lack of mention of the season :P 07:40
Well, exam season counts I guess ;) 07:41
so....what'm I teaching folks today...
tadzik oh, that was lost in translation
jnthn ;)
masak mornin'.
jnthn lolitsmasak
tadzik hey masak
masak hey!
we're all awake, and we all hate it? great. 07:42
on the count of three, back to bed.
TimToady is all for it
jnthn Wow, it's like a "programming Europeans who got out of bed early for some reason" club!
tadzik yeah. Remeber when you woke up and couldn't wait to get up and start getting stuff done?
Me neither
TimToady fine by me if you guys want to live on PST :)
masak tadzik: I actually have such phases. 07:43
tadzik me too, but not in this time of year
masak TimToady: Post-Sraumatic Tress? :)
TimToady masak: keep trying...or better yet, don't...
tadzik you know, the word "sesja", an Exam Session, is an acronym for "The System of Student Elimination is Active"? :)
ah, enough of the complaining 07:44
sorear GOOD MORNING MASAK AND JNTHN AND TADZIK 07:45
*BANGS PANS*
tadzik HELLO SOREAR!
jnthn OMFG QUIET!!!! 07:46
masak SOREAR WE'RE ALREADY AWAKE STOP BANGING PANS
tadzik GOOD DAY TO YOU TOO AND PLEASE STOP BANGING I'M AWAKE ANYWAY
masak phenny: en pl "System of Student Elimination is Active"?
phenny masak: "System Eliminacji Studentów Jest Aktywny" (en to pl, translate.google.com)
tadzik you see?
masak yup.
tadzik :P 07:47
masak must be true, then.
jnthn wow, Polish is easy!
tadzik true enough
jnthn :P
.oO( until you have to pronounce it )
sorear mmm, declensions
masak we has them. :)
tadzik phenny: en pl "declensions"? 07:48
phenny tadzik: "deklinacji" (en to pl, translate.google.com)
tadzik ah
masak tadzik: it's there if you squint :P
tadzik schoolifies, unifies or whatever &
;)
sorear suprised I spelled that right-enough
masak declines to comment 07:49
moritz \o 07:52
07:52 GlitchMr joined 07:55 wollmers joined
wollmers moin 07:56
masak o/ 07:57
jnthn yay, my studenty all came back for day 2. Time to go teach 'em stuff :)
07:59 raiph left
wollmers If I port Net::Dict (TCP protocol RFC 2229) to Perl 6, will this be straight forward? Is something like IO::Sockets available in niecza also? 08:01
moritz rakudo has IO::Socket::INET built in; I don't think niecza has though 08:02
08:03 sivoais left, sivoais joined
sorear no IO::Socket::INET in niecza *yet* 08:07
probably won't make v14
wollmers moritz: thx. I will give it a try. RFC 2229 isn't very complex.
moritz wollmers: let me know if there's anything missing in rakudo that you need 08:08
wollmers What's about DBI?
moritz that's not "in rakudo" :-)
though serious, people are working on getting MiniDBI running again on latest rakudo 08:09
the new NCI should allow many more drivers
afk &
sorear er, all I mean by my last comment is that it's on my less-nebulous TODO 08:10
wollmers moritz: I rewrite a parser for text with approximate matching, a kind of machine learning (learning syntax, lexems, relations/semantics). This needs large dictionaries for lookup. 08:12
sorear and o/ wollmers 08:13
wollmers The biggest problem will be the performance. In Perl5 parsing a page of a book needs at the moment between 0.89 and 15 seconds. 08:15
08:18 replore_ left
masak don't expect it to be within 10x of that in Rakudo. 08:18
08:35 woosley left
arnsholt Yeah, I don't think Perl 6 is ready for large-scale NLP just yet 08:39
Although nothing would make me happier than being proved wrong =D
dalek ecza: 5f1d66d | sorear++ | src/ (2 files):
mergeback
08:42
ecza: 54d251d | sorear++ | / (4 files):
Use real evaluation for colonpair name extensions

This is the first step towards eliminating the various fake evaluators currently used in Niecza.
It required making Parcel.Str a predefined C# method, because infix:<+> is literally the first sub in the setting...
08:45 wollmers left 08:51 mj41 joined
masak why are outsiders so eager to say "no no, you're doin' it all wrong; you need to do X", when we're already doing X? 09:03
bonsaikitten masak: because you're doing it wrong ;) 09:04
masak (X \in [ "building a feature set with acceptable performance", "making 'stable' compiler releases", "proceeding stepwise" })
moritz masak: I fear that's human nature
bonsaikitten look, I have no idea what you are talking about, but still I must be right ;)
masak I was reading perlmonks.org/?node_id=948477 09:07
mostly, I think there's a lag in community in-groups/out-groups, so people will keep saying "look, you're doing it all wrong" until they see something they consider to be a product.
even if we're actually heading in the right direction. 09:08
sorear -> sleep
masak 'night, sorear. dream the elimination of fake evaluators. 09:10
jnthn masak: Their failing is they simply don't have the domain understanding to know that asking us to make Rakudo have acceptable performance and doing something less radical than, say, switching to 6model are mutually exclusive. 09:14
masak right. and chances are they're not interested either. they just want the end result. 09:15
jnthn When I want to understand a field I dont' know much about, I tend to listen to the people who are working in it and do understand it. Some folks seem to operate on the assumption that clearly, though they aren't working on the problems, they understand them better. 09:17
I don't get it, it's irritating, but I'm not sure much can be done about it.
masak well, that's just the ordinary Dunning-Kruger effect at work.
also, of course, it *has* been 11.5 years, and that's a long time in dog^W internet years. 09:18
moritz and of course everybody has just been waiting for Perl 6 and hasn't touched any other programming language in the mean time, so it really has hurt everybody that it's more than a year 09:19
masak through the filter caused by outsiders' domain ignorance, the news that seep out of the echo chamber probably look no better than "hey, look at Pugs!"
moritz: sarcasm aside, point taken.
moritz: the Internet is an amplifier for random discontent. 09:20
09:20 p4 joined
bonsaikitten I haven't followed development in detail, but I'm seeing a rather good product that even has a test suite 09:22
so even if it takes time until it is "feature complete" - the tests alone make it a lot easier to trust than rapid chaotic code that gets written in 1/3rd the time
masak if Mona Lisa were premiered in 2012 on Reddit, reactions would range from "that colour scheme sucks!" to "I don't like her hair". 09:23
jnthn Anyway, in general I agree people want "a product" at the end of the day, so mostly I just get on with making that happen the best way I know how.
masak jnthn: yeah, but you're not doing it right! you need stable compiler releases, and milestones. otherwise you're just treading water! :P 09:24
you *think* you're making progress, but you're really not. I, the sagely Anonymous Monk, haven't checked, but I know!
jnthn Why do I need stable *compiler* releases?! This is precisely why we have distribution releases as well. :/ 09:25
Really need to find a way to communicate that better.
masak let's just say I require improvement *and* stability at the same time.
things should get better and be 100% static.
jnthn ...can I quit software and go work as a shepherd in the alps? : 09:26
:)
masak by the way, you guys should totally do monthly releases or something. I hear it works really well.
p4 and increment your version numbers
moritz jnthn: nope, shepherds don't get beer
p4: by at least 0.8 per year
jnthn they...what...why? :) 09:27
moritz :-)
masak ah, to herd sheps. 09:28
moritz
.oO( yak herding )
bonsaikitten I wonder how yak tastes 09:29
jnthn Quite good.
Its milk tastes really odd though :)
bonsaikitten I wonder if there's any way to get grilled yak in Shanghai
jnthn Yak tea takes qutie some getting used to
bonsaikitten: Find a Tibetan restaurant. 09:30
bonsaikitten jnthn: you mean ethical minority restaurant ;)
jnthn ;)
masak *rimshot*
09:39 koban left 09:50 dakkar joined 09:52 LlamaRider joined 09:59 Trashlord joined 10:18 LlamaRider left 10:21 daxim joined 10:30 donri joined
arnsholt masak: Could I pick your brains regarding some Chinese? 10:31
moritz perl6: class P1 { method a() { 'P1' } }; class P2 { method a() { 'P2' } }; class A is P1 is P2 { }; say A.a; say A.*a; 10:33
p6eval pugs b927740: OUTPUT«P2␤P2␤»
..niecza v13-306-g54d251d: OUTPUT«===SORRY!===␤␤NYI dottyop form .* at /tmp/kuQOv28Bi9 line 1:␤------> ass A is P1 is P2 { }; say A.a; say A.*a⏏;␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 919 (die @ 2) ␤ a…
..rakudo ed943e: OUTPUT«P1␤P1 P2␤»
moritz rakudo++ 10:34
masak arnsholt: 当然可以。
arnsholt I have no idea what that means, so I'll assume it means yes (or something like that =)
masak means "Certainly" :)
I'm about to go for lunch though, so I may break off in the middle if it's a long answer. 10:35
arnsholt The top example on specgram.com/CLII.3/09.phlogiston.cartoon.3.html has two words made up of two characters. Are those sensibly decomposable, or just two characters that together mean that word?
moritz phenny: "当然可以"? 10:36
phenny moritz: "Of course" (zh-CN to en, translate.google.com)
arnsholt Oh, right. phenny translates
masak arnsholt: nice page. 10:37
arnsholt: interestingly, the first word doesn't decompose sensibly, but the second one does.
10:37 carlin left
arnsholt Oooh, even better! 10:37
masak nouns tend to decompose sensibly more often.
lunch &
10:57 koban joined, koban left 10:59 cognominal_ joined 11:02 cognominal left, mtk left 11:09 SHODAN left
moritz I don't understand where all the new rakudo spectest failures are coming from 11:10
11:11 SHODAN joined
jnthn moritz: me either...I didn't commit yesteday even :) 11:12
moritz jnthn: did you spectest after the <prior> patch?
jnthn moritz: no, I ran off to the train station :/ 11:13
I...couldn't imagine it causing trouble.
I mean, all it does is stringify match objects always 11:14
Which you'd really expect to work always :/
moritz but what else could it be?
jnthn I think it is the prior patch 11:15
I'm just saying that the fact it caused problems, means we probably have underlying issues.
moritz some of the newly failing test files haven't been touched for weeks, or only in irrelevant ways
jnthn :S
Does reverting the prior patch help?
moritz jnthn: I'm trying a spectest over lunch with the patch reverted 11:16
jnthn ok
moritz jnthn: if it helps, I'd like to move it to branch
(the <prior> patch, not the reversal patch :-)
jnthn Sure
Probably I should stash the match object and only stringify it when <prior> is used anyway
moritz doesn't like the <prior> business at all. It introduces hidden, global-ish state 11:17
jnthn The spec doesn't say a whole lot on it. I've just been reviewing S95 and tests we don't run recently, and figured it was an easy one to pick off 11:18
moritz aye 11:19
11:26 stepnem left 11:27 muixirt joined
muixirt S95? I knew, there are hidden synopsis :-) 11:28
jnthn That's why it's taking so long! We're having to implement all those too!
11:29 stepnem joined
muixirt What would speak against handing over all perl6/nqp dynops to the parrot team? 11:44
11:45 nornagest joined
colomon niecza: say 0..-9 11:46
p6eval niecza v13-306-g54d251d: OUTPUT«0..-9␤»
colomon niecza: say ~(0..-9)
p6eval niecza v13-306-g54d251d: OUTPUT«Unhandled exception: System.ArgumentOutOfRangeException: Argument is out of range.␤ at System.Text.StringBuilder.set_Length (Int32 value) [0x00000] in <filename unknown>:0 ␤ at Niecza.CtxParcelListStr.Get (Niecza.Variable obj) [0x00000] in <filename unk…
11:47 cognominal joined
colomon nom: say ~(0..-9) 11:48
p6eval nom ed943e: OUTPUT«␤»
colomon TimToady: ping
muixirt Or more broadly all C code residing in the perl6/nqp repos...
11:50 cognominal_ left 11:51 benabik joined 12:02 fridim_ joined 12:04 bluescreen10 joined 12:27 cognominal_ joined 12:29 cognominal left, benabik left
[Coke] wakes up, grumpily, and sees in backlog it's the day for it. 12:32
bbkr What is the state of NativeCall module on NOM? It's not listed under any section in ecosystem/wiki
muixirt bbkr: at least it's on modules.perl6.org/ 12:34
afaik it's said to be usable 12:36
12:36 Trashlord left
bbkr thanks. attempt to install it gives error "Unrecognized nqp:: opcode 'nqp::r_atpos'" on Rakudo 2011.12, time for digging.. 12:36
[Coke] zavolaj was just fixed up to work with nom.
12:39 wolfram joined 12:41 wolfram left
moritz bbkr: probably needs a newer nom 12:43
bbkr i'm building HEAD now... if Zavolaj works i'll try to write GeoIP library frontend :) 12:45
jnthn bbkr: Should be reasonbly capable. Also I fixed up the docs ;) 12:55
bbkr awesome 12:56
jnthn muixirt: Well, the Parrot folks have expressed an interest in adopting 6model. That'd cover a bunch of the coe in there.
*code
Generally though, unless there's some serious effort to integrate it more deeply into Parrot, there's no point moving it into the Parrot repo. 12:57
muixirt jnthn: might be better than parrot invent their version of 6model 12:58
jnthn I struggle to see that happening. 12:59
I mean, why would they?
12:59 mj41 left
muixirt jnthn: what? the re-invention of 6model? 13:00
or integrating perl6/nqp ops into parrot
jnthn muixirt: I got the impression from Parrot folks that they want to integrate what I've done, not re-invent it. 13:01
muixirt: I'm fine with the nqp/ops and other 6model bits moving in to Parrot repo *if* it's going to mean more than just moving the code there and then leaving it be.
moritz jnthn: btw reverting the <prior> thing didn't help getting the tests back
jnthn: but going back to 77e31aee311e701ae7a47658531b9929fc075c0b (before the changes to $/ and make) does fix most of them 13:02
jnthn That is, I only want to have to negotiate changes I can freely do today if I'm getting something back in return - like better performance because 6model gets deeper Parrot integration.
moritz: Huh, I didn't think that $/ change had broken anything :S
moritz (well, except the new tests that were unfudged and added since then)
jnthn I certainly spectested that
13:03 mj41 joined
jnthn apart from...no ICU here 13:03
So I'd have missed any regressions in tests that use that.
13:05 drbean left
moritz my plan is to spectest every commit since then, and see which one is to blame 13:05
13:07 drbean joined
ruoso moritz: git bisect 13:08
jnthn moritz: OK :) 13:09
moritz ruoso: I know of bisect, but in the end I'm never sure if the result is correct
masak arnsholt: Ubykh looks really funky. :)
moritz and it's not many commits
13:11 kaleem left
colomon niecza: say ~4 13:11
p6eval niecza v13-306-g54d251d: OUTPUT«4␤»
masak arnsholt: now I have time to elaborate a little: if you search for 所 at www.yellowbridge.com/chinese/charac...ionary.php , you'll see that its definition isn't very clear, and the compounds it forms don't really have anything in common.
colomon niecza: my $match = "abcde" ~~ /c/; say $match; say ~$match
p6eval niecza v13-306-g54d251d: OUTPUT«#<match from(2) to(3) text(c) pos([].list) named({}.hash)>␤c␤» 13:12
masak arnsholt: 有 in isolation means "to have" or "to exist".
p4 you
masak correct.
jnthn
.oO( me? :) )
13:13
masak arnsholt: whereas both 朋 and 友 mean "friend".
arnsholt: in classical Chinese, one would've used either of those in isolation. modern Mandarin tends towards two-syllable compounds.
colomon niecza: say 4.Str 13:14
p6eval niecza v13-306-g54d251d: OUTPUT«4␤»
masak p4: 你是中国人吗?
p4 not a lot
oh
nope
masak :)
p4 just studied the language a bit in my spare time
13:23 benabik joined
colomon niecza: say ~() 13:23
p6eval niecza v13-306-g54d251d: OUTPUT«Unhandled exception: System.ArgumentOutOfRangeException: Argument is out of range.␤ at System.Text.StringBuilder.set_Length (Int32 value) [0x00000] in <filename unknown>:0 ␤ at Niecza.CtxParcelListStr.Get (Niecza.Variable obj) [0x00000] in <filename unk…
colomon golfing win! 13:24
masak colomon++ 13:26
moritz niecza: ~() 13:27
p6eval niecza v13-306-g54d251d: OUTPUT«Unhandled exception: System.ArgumentOutOfRangeException: Argument is out of range.␤ at System.Text.StringBuilder.set_Length (Int32 value) [0x00000] in <filename unknown>:0 ␤ at Niecza.CtxParcelListStr.Get (Niecza.Variable obj) [0x00000] in <filename unk…
moritz now that was kinda obvious :-) 13:28
masak moritz++
colomon moritz++ # fair enough
masak maybe in sink context it might be optimized away, though :)
moritz seems niecza isn't smart enough for that yet 13:29
and it requires quite some analysis about method purity
p4 am i an idiot for not understanding what the bot is even doing? 13:30
moritz you're not 13:31
it runs Perl 6 code on various compilers
and right now it errors out
masak nom: say "OH HAI"
p6eval nom ed943e: OUTPUT«OH HAI␤»
moritz nom: my $x = 'p3'; $x++; say "Hello $x"
p6eval nom ed943e: OUTPUT«Hello p4␤»
masak nom: .say for 1..12
p6eval nom ed943e: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤»
p4 i admit that when i first joined the channel i had a strong urge to have it fork while fork 13:32
but that wouldn't be a very nice thing to do
moritz p4: do try
p4 haha
colomon niecza: ().Str
p6eval niecza v13-306-g54d251d: OUTPUT«Unhandled exception: System.ArgumentOutOfRangeException: Argument is out of range.␤ at System.Text.StringBuilder.set_Length (Int32 value) [0x00000] in <filename unknown>:0 ␤ at Niecza.CtxParcelListStr.Get (Niecza.Variable obj) [0x00000] in <filename unk…
masak moritz: easy on the encouraging vandalism ;)
moritz it's not perfectly sandboxed, but fork bombs and infinite loops are easy to guard against 13:33
as well as excessive memory usage
nom: eager 1 ... *
p6eval nom ed943e: ( no output )
moritz nom: .say for 1 ... * 13:34
p6eval nom ed943e: OUTPUT«(timeout)1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤50␤51␤52␤53␤54␤55␤56␤57␤58␤59␤60␤61␤62␤63␤64␤65␤66␤67␤68␤69␤70␤71␤72␤73␤74␤75␤76␤77␤78␤79␤80␤81␤82􏿽xE2
masak p4: so, you're a Perl 4 user? :) 13:38
or just a fan of last year's fourth p6cc task?
moritz or perforce user? :-)
benabik Or perhaps related to P-1?
masak so many possibilities 13:39
p4 neither, i don't remember why i even joined this channel
found the discussions interesting so i stayed
colomon nom: (1..4).Str
p6eval nom ed943e: ( no output )
colomon nom: say (1..4).Str
p6eval nom ed943e: OUTPUT«1 2 3 4␤»
13:42 Alias joined
masak p4: the discussions here are so interesting they've probably delayed the release of Perl 6.0.0 by at least a month. :P 13:44
p4 i think that's a problem with most open source projects, to be honest 13:45
masak I wasn't being very serious. 13:46
there's plenty of interesting people here, so interesting discussions are bound to happen.
p4 i know :p
masak I always have slight trouble coping with the S/N ratio on other channels. 13:48
moritz well, the noise in other channels isn't as interesting as here :-) 13:49
benabik I sometimes have a problem with the signal to p6eval ratio here. ;-) 13:50
masak "#perl6: obscuerly abstract on-topic discussions, interesting noise"
benabik: I don't, I just think of p6eval as a first-class citizen nowadays.
p4 at least nobody's posted a picture of a cat or some other cute animal
masak benabik: she speaks when spoken to, and babble when people use 'perl6: '
benabik: more predictable than most human citizens :P 13:51
benabik masak: Point.
masak: Definitely more predictable than dalek. ;-)
masak p4: clearly you missed our butterfly, zebra, and panda period :P
moritz occasionally finds masak++ pretty predictable 13:52
p4 well, you do have a cute butterfly on your project's homepage
blah
benabik And the channel topic.
p4 so that's what that is
bbkr any idea what "-bundle not allowed with -dynamiclib ... Symbol not found: _dlLoadLibrary" error means? happened while running test suite for Zavolaj
masak »ö« !
benabik bbkr: It means that Zavolaj is using the wrong build flags for OS X. 13:53
masak moritz: well, it's easy to make me happy, at least. just trigger a bug somewhere :)
moritz didn't arnsholt report the same problem earlier?
benabik ... Wasn't someone work- right, arnsholt
bbkr benabik: thanks 13:54
benabik bbkr: Discusson on that yesterday starts here: irclog.perlgeek.de/perl6/2012-01-18#i_5011544 13:56
13:57 mattp_ joined 14:08 mtk joined 14:11 benabik left 14:13 tokuhirom joined 14:28 cognominal_ left 14:30 cognominal joined 14:31 PacoAir joined 14:46 Woodi joined
masak one cool use of Tardis (or a debugger with similar detailed access) would be to run a test with two or more threads in "all possible ways", assuring that no data conflicts arise no matter which order threads run things in. 14:49
moritz then it's not enough to be time traveling, it needs to be time altering 14:52
masak right.
it's all a matter of having an API with "step forward" buttons on each interpreter thread.
PerlJam I think a couple of people here have been hanging around Damian too much :) 14:53
masak wouldn't mind hanging around Damian a lot more
moritz I've used a formal verification tool that did similar things, but only in a language that was specifically designed for it
flussence
.oO( sounds vaguely similar to the replace-malloc-with-fork trick used to test OOM handling... )
14:54
masak I find whiley.org/2012/01/18/connecting-th...languages/ thought-provoking.
I don't expect Perl 6 to get core support for "pure functions", but maybe a module could do something like that.
moritz masak: I kinda expect that rakudo will get an 'is pure' or so trait (and having many functions/methods in the setting using it), and that the optimizer will use it 14:57
masak oh, ok. very well. I look forward to that. 14:59
15:03 mattp_ left 15:04 mattp_ joined
[Coke] what if you lie? 15:06
masak [Coke]: then you might get results you wouldn't've gotten otherwise.
alternatively, the compiler might catch some of the lies and throw errors. 15:07
I doubt it will can catch all of them, but it can probably get quite close.
PerlJam Well ... that's why the guy at that end of that article you posted suggested that purity must be determined by the compiler and not the human.
moritz it falls into the same category as MOP stuff: you'd better know what you're doing if you do that
PerlJam humans are necessary but insufficient
moritz aye 15:08
masak it will probably have to be a fruitful interplay between compiler and programmer.
PerlJam masak: I think so too.
moritz I think in the long run it must be less ridgid for the programmer than haskell's type system
PerlJam Programmer: I declare that this routine is pure! Compiler: Um ... it was pure until ... right *here*. Are you *sure* about this ? 15:09
moritz [no, make it impure] [yes, shut up] [error out please]
PerlJam (with varying ways for the programmer to tell the compiler "I know what I'm doing, now shut up!" 15:10
)
moritz use MONKEY_PURITY;
flussence (don't we get pure functions for free just by using immutable types?) 15:11
moritz flussence: no
flussence: because variables are still mutable, even if individual objects are not
Int is immutable, but you can still reassign a variable types as 'my Int $x' 15:12
because it's a *variable*, not a constant :-)
PerlJam flussence: the lesson is that purity is easier to achieve with immutability so we, as programmers, should strive to use values rather than variables.
flussence: but it's by no means "free" 15:13
flussence I'm not making much sense today :)
moritz sub uniq(*@a) { my %h; @a.grep({ !%h{$_}++}) } 15:14
that one is interesting because it's pure from the outside, but uses mutable state internally 15:15
does haskell allow such functions with "pure" types?
flussence what I was trying to get at is - if there's already "is ro", and the function only takes simple scalars with no mutator methods (which is a bit harder to figure out), there's no need to write "is pure" in the code 15:16
masak flussence: this is where it helps remembering the three levels variable->container->value. you can change an Int variable because of the existence of the middle layer, even though Int is an immutable type.
flussence: no, purity has to do with side effects too.
flussence: a 'say' anywhere would make it impure.
flussence: the requirement is actually something much more like idempotence. 15:17
though that's also too wide :)
moritz well, there lots of ways in which a code block can make itself impure
state variables, flipflops, assigning/binding outer variables, calling impure code 15:18
15:18 cognominal_ joined
moritz potentially throwing exceptions 15:18
masak right.
moritz and note that each dispatch can potentially fail, unless you can prove at compile time that it must succeed 15:19
nom: say Mu + Mu
p6eval nom ed943e: OUTPUT«No applicable candidates found to dispatch to for 'infix:<+>'. Available candidates are:␤:(Any $x = { ... })␤:(int $a, int $b)␤:(num $a, num $b)␤:(Int:D \$a, Int:D \$b)␤:(Num:D \$a, Num:D \$b)␤:(Rat \$a, Rat \$b)␤:(Rat \$a, Int \$b)␤:(Int \$a, Rat \$b)␤:(Complex:D \$a…
15:19 cognominal left
flussence postgresql does something interesting: you *have* to specify whether a function is side-effecty/pure/constant. It can figure out when you're lying to it, too. 15:20
moritz but why do you have to say it if it can figure out anyway? 15:21
flussence they prefer "do what I say" instead of DWIM, I guess :) 15:22
moritz it's a bit like "tell me a number" -- "5" -- "wrong, 3 would have benn correct"
masak moritz: I agree it'd be more annoying than useful, but it *is* useful, for above-stated reasons.
(you get an error when a change makes a sub impure, for example) 15:23
15:23 sayu joined 15:26 sirhc joined
flussence pg's internals would make a pretty nice static-typed programming language, if it weren't for the syntax it uses :) 15:26
15:27 Trashlord joined
moritz flussence: so come up with a nice syntax for it, and rule the world :-) 15:29
flussence I dunno if that's necessary... perl6 is close enough that it might cover all of pl/pgsql already. :) 15:32
15:42 cognominal___ joined, cognominal_ left 15:43 Alias left 15:44 Alias joined 15:45 thou joined
colomon phenny: tell sorear Your commit last night broke ~() -- in turn that broke at least a dozen spectests. 15:48
phenny colomon: I'll pass that on when sorear is around.
masak hm, doesn't sorear run the spectests before committing? :) 15:49
[Coke] he has an army of testers. and he definitely runs it before cutting a release. 15:53
moritz speaking of testing... 15:55
15:56 kaleem joined, benabik joined
moritz jnthn: it seems that the <prior> commit was the bad one, but that my feeble attempts at reverting it didn't work. I get nearly no test failures when checking out the revision before it. Doing one last spectest run to confirm that 15:57
[Coke] waits to hear back from sorear before kicking off another comparative run.
jnthn moritz: ok. feel free to move it off into a branch 15:59
jnthn decommutes 16:00
16:02 [particle] joined 16:08 birdwindupbird left, mucker joined 16:09 [particle] left 16:12 am0c joined 16:14 PacoAir left 16:15 PacoAir joined 16:22 sayu left 16:33 tokuhirom left 16:34 kaleem left 16:44 PacoLinux joined 16:46 kaleem joined 16:54 PacoLinux left
masak decommutes 17:00
17:08 mj41 left 17:29 kaare__ joined
colomon masak: Are you kidding? sorear++ doesn't have time to spectest between patches! ;) 17:32
17:34 am0c left
TimToady masak: 所 basically means "place", and most of the compounds look to be derived from that to me, if you allow "place" to have metaphorical and pragmatic meanings, e.g. 所以 is "place from-here", and you can see that the English gloss "therefore" also uses the place metaphor to point to a linguistic spot in the current discourse 17:36
17:42 cognominal joined
TimToady and, of course, to have a place is to exist 17:45
17:45 cognominal___ left
TimToady and something like 有所 "exists place" == "somewhat" is extending the place metaphor in the "one place is not another" direction, in the way we'd say "there's a time and place for that" 17:47
PerlJam mise en place
17:48 pat_js joined
geekosaur and then there's the idiomatic meaning of המקם 17:49
17:53 mucker left
rsimoes hey so if everything in perl 6 is typed now 17:58
what's the point of sigils?
moritz they are micro-namespaces 17:59
17:59 araujo left
moritz you know immediately that foo is a routine, $foo a scalar, @foo an array and %foo a hash 17:59
TimToady readability wrt singular/plural; discouragement of use of nouns when cascaded functions/methods are better; creating a small namespace for twigils
PerlJam rsimoes: they give hints as to how to access the thing too
moritz and you can use all 4 in the same scope without conficlits if you want to 18:00
[Coke] also, you don't have to worry about collisions like: my time = time;
rsimoes syntax highlighter can handle that now that it's able to deduce types, yeah?
TimToady they also mark the head of a noun phrase so you can spot it easily
[Coke] whoops, I thought moritz said &foo, not foo; nevermind, listen to him. ;)
moritz thinks there should be an FAQ entry about sigils
18:01 birdwindupbird joined
rsimoes I always end up asking the FAQs in here =[ 18:01
TimToady and because many natural languages use mandatory noun markers, so our brains are built to handle it
moritz rsimoes: syntax hilighters don't help you with patches, for example
rsimoes oh yeah that's true
moritz also sigils control when lists flatten 18:02
@a.push: @b; # flattens the elements of @b
PerlJam TimToady: that sounds like a little chicken and egg argument :)
moritz @a.push: $b; # does not flatten, even if $b holds an Array
TimToady I like both chickens and eggs, but I can only eat chickens
we've also specced a way to program largely without sigils, but it's not implemented yet 18:04
[Coke] O_o
TimToady my \x = 42; say x
S06:1176 18:06
18:07 dakkar left 18:10 Chillance joined
TimToady and obviously, the first chicken egg came before the first chicken, since somatic mutations are not heritable 18:14
18:38 ksi joined, araujo joined, araujo left, araujo joined 18:39 thou left 18:40 daxim left
masak home 18:40
18:45 benabik left, pat_js left 18:46 dnewkirk joined
masak TimToady: ah. 所 meaning "place" feels like something I've once known. 18:48
[Coke]: I find it's not very different from writing 'constant x = 42; say x'. just shorter. 19:00
[Coke] niecza is failing 1122 tests. 19:01
moritz wow.
[Coke] so, down to 95%. If we pass all those tests again, we're up to 101% 19:02
19:02 RobiX joined
[Coke] gist updated; I'll do another run today if I see anything from either camp. 19:03
19:07 RobiX left
moritz ok, I've given up on the rakudo test failures 19:09
I'm now reverting to the last known revision 19:10
dalek kudo/nom: 04b34ec | moritz++ | src/core/ (5 files):
revert the last few commits to deal with test failures

The following commits are reverted here: 0ac25d036db5630d9794135915174dd1ca0d1d08 First cut implementation of <prior> aa1d8b645107becb8fa6c7b3d87968a9ff1da296 optimize Range.roll and Range.pick 0deac24dfe5fda0ce8d46cdae66eba2d928f0c2d try to fix sleep() with non-Num argument 2fd18f4b66a69f2b9c925f1fbe720bfcf277faad fix Range.{roll,pick} 42068aafbf3abf0b581f81ad8871b20823ee53ca remove debugging statement ed943e669a8ea11e28f1e32771f8c0ca2f7ad361 stringify stuff before passing it to the regex engine
the previous state of the art is in the branch nom-with-failing-tests
moritz and will try to apply te patches in logical (instead of chronological) order
and spectest after each one
colomon [Coke], moritz: I think the niecza test failures are a relatively simple issue. BUT my attempt to fix it went no where, and I have no idea what the heck went wrong with it. I predict sorear++ will have it fixed within five minutes of checking in here... 19:11
moritz colomon: yes, that seems likely
masak moritz++ 19:13
19:14 pyrimidine left, pyrimidine joined
masak .oO( gotta pull this revision, since it's known-good ) 19:15
sorear good * #perl6 19:19
phenny sorear: 15:48Z <colomon> tell sorear Your commit last night broke ~() -- in turn that broke at least a dozen spectests.
dalek ecza: 318efc1 | sorear++ | lib/Kernel.cs:
Fix ~(), colomon++
19:20
sorear masak: running all the spectests takes about an hour on this machine. I won't commit anything unless it passes the 'can still compile CORE' test (~1m), and for more dubious stuff I'll run 'make test' as well (3-4m) 19:23
I used to start a spectest run daily before going to bed, but [Coke]++ and colomon++ have been beating me to that lately. ;)
19:28 benabik joined
masak sorear: :) 19:29
[Coke]++ colomon++
19:31 benabik left, benabik joined 19:33 araujo left 19:37 molaf__ left 19:38 bluescreen10 left 19:41 kaare__ left, kaare_ joined
moritz wow. It seems that there are actually two sources for the test failures 19:46
the first is jnthn's <prior> commit
and the second is my combined Range.roll and Range.pick optimizations
which broke tests that are totally unrelated to roll and pick
19:48 carlin joined
masak that explains a lot. 19:48
I've said it before, but -- man, I like Perl 6! it's a really fine language to express programming thoughts in!
19:49 birdwindupbird left
moritz it seems that hyper operator tests fails 19:49
*fail 19:50
19:50 thou joined 19:51 bluescreen10 joined
moritz ah, hyper uses Range.pick 19:51
19:51 araujo joined, araujo left, araujo joined
moritz how curious 19:51
benabik To ensure random ordering.
masak I know why.
right.
just to not give people ideas. 19:52
moritz ah, because .pick(*) is broken 19:55
masak uses an all-junction of Callables in his code
moritz because I'm stupid 19:56
I've re-dispatch Range.pick(*) to self.list.pick()
19:56 kaleem left
jnthn evenin' 19:58
moritz \o jnthn 19:59
masak jnthn! \o/
[Coke] will hold off on a rerun of rakudo's tests until moritz selfcorrects.
moritz jnthn: I'm on track to fixing some of the spectest failures... turns out that hyper ops fail, because they used Range.pick, and I've botched that one case
jnthn moritz: aha :) 20:00
moritz++ # fixing stuff
moritz jnthn: the prior patch also caused some fallout, but it'll be easier to understand once the other noise is gone 20:01
jnthn moritz: I think I did something silly in it anyway.
20:03 not_gerd joined
not_gerd hello, #perl6 20:03
how to fix the Rakudo Cygwin build: gist.github.com/1635180
masak hi, not_gerd 20:04
jnthn o/ not_gerd 20:05
thanks for that
not_gerd: Am currently tied up with $dayjob stuff, but will try and sort out the nqp and Rakudo bits at the weekend, if nobody beats me to it. 20:14
muixirt moritz: more reverts coming? 20:19
still some spectest failures and one hannging test
jnthn muixirt: Which one?
muixirt jnthn: erm, dunno, my box was unusable because i was afk for some time 20:20
had to kill it 20:21
20:24 Chillance left 20:25 pyrimidi1e joined, Chillance joined, cooper left, pyrimidi1e left
dalek kudo/nom: f56c3ec | moritz++ | src/core/Range.pm:
optimize Range.roll, and Range.pick if the number of range elems is much larger than the number of elements to pick

this is a squashed version of these three commits:
   aa1d8b645107becb8fa6c7b3d87968a9ff1da296
   2fd18f4b66a69f2b9c925f1fbe720bfcf277faad
   42068aafbf3abf0b581f81ad8871b20823ee53ca
plus a small fix to .pick(*)
20:29
moritz muixirt: that one should fix the hang
20:30 cooper joined
muixirt dammit t/spec/S32-list/roll.rakudo 20:30
i rerun it 20:31
moritz recommends a ulimit -v of 2GB for spectesting
PATH := $(PARROT_BIN_DIR):$(PATH) 20:35
will that work on windows?
I mean, non-cygwin?
jnthn No
colomon sorear: I'm pretty sure spectesting takes under 10 minutes on my MacBook Pro using all four cores. Eats battery like nobody's business, though!
moritz ISTR that the path separator is ; on windows, so I see a problem with adding that to the Makefile 20:36
jnthn moritz: Conditional add for cygwin maybe
moritz: But copying the file is maybe easier
I need to do the libparrot.dll copying fix for Windows outside of cygwin too
muixirt colomon: wow!
20:37 alabala joined
jnthn does Rakudo spectest on his quad core dev box at home within 4 mins :) 20:37
moritz does niecza's 'make spectest' parallelize if TEST_JOBS is set?
jnthn: and how long does it take to build the setting? 20:38
jnthn moritz: Too long. Minute or so. :S
colomon moritz: I believe so
jnthn moritz: Will be faster when we make half as many PAST nodes...
moritz jnthn: wow. It takes several minutes here
jnthn Ah, certainly not that long for me. 20:39
Well, I try and do serialization stuff within the next month.
moritz is that what will bring down the number of POST nodes?
jnthn Yeah 20:40
About half of the generated PIR today is stuff that will be replaced by the serialization.
masak looks forward to the day when Rakudo optimizes some conditions involving junctions into something involving boolean operators instead :) 20:41
moritz jnthn: did you have any clever thoughts on how to fix the real-trouble branch?
tadzik good evning 20:43
jnthn hllo tadzik
moritz: Not yet.
moritz: Though didn't think about it too deeply in last few days...been more preoccupied with teaching and the regex backtracking stuff. 20:44
moritz no hurry, just wanted to not forget it :-)
jnthn indeed...don't want the real-trouble to last too long... :)
not_gerd jnthn: what's the size of parrot.dll when compiling with MSVC? 20:45
colomon this is the Real to role thing?
jnthn not_gerd: My libparrot.dll (built 64-bit) is 1,905,664
20:46 estrabd left, arlinius left
jnthn colomon: yeah 20:46
colomon 8m40 for my niecza spectest run
moritz colomon: yes
not_gerd my cygparrot4_0_0.dll (unstripped) is ~64MB(!)
jnthn o.O
What happens if you strip?
colomon wouldn't the simplest solution just being getting rid of the multis?
20:46 arlinius joined
not_gerd jnthn: gets rid of half of it 20:47
colomon has a hard time believing nom is less capable in these matters than ng was....
jnthn Only half? Whoa.
colomon sorear: spectest clean now, btw
jnthn colomon: I'm guessing we arranged things differently in ng. I need to go back and look
colomon jnthn: I remember I had to be very careful with some role-related stuff
moritz colomon: thing is, we need some multis for proper :U/:D distinctin 20:51
colomon moritz: no you don't. just create one and test if self is defined
colomon hopes that's not become illegal... 20:52
jnthn s/defined/DEFINITE/
Could do but...
nom: role R { multi a() { } }; class C does R { multi a() { } }; C.a
p6eval nom 04b34e: OUTPUT«Method 'a' not found for invocant of class 'C'␤ in block <anon> at /tmp/WG4CYQwDOf:1␤ in <anon> at /tmp/WG4CYQwDOf:1␤»
moritz colomon: well, the theory is that if you add a multi method gist(::?CLASS:D:) { }, then the type object will continue to stringify correctly 20:53
jnthn Need to check the spec to see if it has anything on that, but it's possible that we should exclude the candidate from the role if it exactly matches the sig of the one in the class.
20:53 arlinius left 20:58 mj41 joined
dalek kudo/nom: 7006f70 | moritz++ | src/core/control.pm:
try to fix sleep() with non-Num argument
21:01
21:02 alabala left
[Coke] with sorear++'s fix, now: # 01/19/2012 - niecza at 100.77% 21:06
[Coke] will do another full run later tonight. 21:07
21:09 not_gerd left 21:10 jaldhar left 21:14 jaldhar joined 21:26 GlitchMr left 21:36 kaare_ left 22:01 lichtkind joined
lichtkind o/ 22:01
masak \o 22:02
lichtkind is there a way that someone could foreward one post to planet perl 6
the tableets made some goo progress
masak lichtkind: did you hear? Niecza surpassed Rakudo in number of spectests passed!
lichtkind lichtkind sees everything
its part of my job 22:03
masak omniscience. you has it.
lichtkind im going to blog on blogs.perl and would like to see in on planet perl 6 22:04
because you can not link to almost every perl 6 command directly to an url 22:05
which can be handy for some automated things
22:07 nornagest left
sorear masak: not just that, Niecza surpassed Rakudo THREE OR FOUR TIMES! 22:12
on spectests 22:13
masak :P 22:14
E-E-E-Easter
clearly this kind of competition is just what the Rakudo people have been needing. 22:15
I hear they're even bringing back pm to combat the looming niecza threat. 22:16
slavik niecza, what technology/language is it based on?
is it the mono one?
masak aye.
22:17 pat_js joined
sorear tbh I feel a tiny amount dirty about this, like the assiduous fudging was in some way gaming the system 22:21
22:23 mj41 left
masak sorear: I don't think the numbers exxagerate the fact that Niecza is now quite featureful and usable. 22:27
exaggerate*, even. 22:28
PerlJam sorear: all the implementations are "gaming the system" :)
lichtkind blogs.perl.org/users/lichtkind/2012...eport.html
22:29 pyrimidine left 22:33 benabik left 22:36 domidumont left 22:38 domidumont joined 23:01 cognominal left 23:02 cognominal joined 23:04 thou left
masak 'night, #perl6 23:06
23:08 ksi left 23:11 domidumont left, am0c joined 23:12 domidumont joined 23:25 donri left 23:39 Transformer joined 23:42 Transformer left 23:48 bluescreen10 left