»ö« 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:02 spine left 00:03 kmwallio left 00:06 tokuhirom joined
dalek ecza: 701e7eb | (Solomon Foster)++ | lib/CORE.setting:
Add sub pairs.
00:09
ecza: 6e964d2 | (Solomon Foster)++ | t/spectest.data:
Turn on S32-array/pairs.t.
00:13 molaf left 00:16 tokuhirom left, tokuhirom joined 00:22 tokuhirom left 00:28 tadzik left, [Coke] left, pmichaud left, masak left, Util left, molaf joined 00:29 Juerd left, PerlJam left 00:31 wolfman2000 joined 00:33 bacek_at_work joined 00:35 [Coke] joined, masak joined, pmichaud joined, PerlJam joined 00:36 Util joined
dalek ecza: 9bf5263 | (Solomon Foster)++ | lib/CORE.setting:
Add sub elems.
00:36
ecza: e6dfd53 | (Solomon Foster)++ | t/spectest.data:
Turn on S32-array/elems.t.
00:41 tadzik joined
dalek ast: 4984187 | (Solomon Foster)++ | S32-array/elems.t:
Fudge for niecza.
00:41
00:56 shinobicl___ left
dalek ast: b8ba7e6 | (Solomon Foster)++ | S32-hash/exists.t:
Fudge for niecza.
00:59
ast: b44e3ec | (Solomon Foster)++ | S32-hash/exists.t:
Tests for :exists added.
ecza: 6ad55ae | (Solomon Foster)++ | t/spectest.data:
Turn on S32-hash/exists.t.
01:00
sorear karma colomon
aloha colomon has karma of 204.
sorear karma Solomon Foster
aloha Solomon Foster has karma of 153.
sorear almost there!
colomon ;) 01:01
01:07 raiph joined
dalek ast: 8032449 | (Solomon Foster)++ | S04-blocks-and-statements/pointy.t:
Fudge for niecza.
01:07
ecza: fc198f2 | (Solomon Foster)++ | t/spectest.data:
Turn on S04-blocks-and-statements/pointy.t.
01:08
ast: 154dbe5 | (Solomon Foster)++ | S16-io/basic-open.t:
Fudge for niecza.
01:15
ecza: 0e2bf45 | (Solomon Foster)++ | t/spectest.data:
Turn on S16-io/basic-open.t.
01:16
01:17 SolarNRG joined 01:19 SolarNRG left 01:25 zjmarlow left, sftp joined 01:26 leprevost joined
dalek ecza: 4dcd1f7 | sorear++ | src/niecza:
Start towards a consistent handling of type_constraints and typenames
01:27
01:29 raiph left 01:30 leprevost left, leprevost joined, Juerd joined
dalek ast: 2b3a229 | (Solomon Foster)++ | S02-types/sigils-and-types.t:
Fudge for niecza
01:31
01:33 zjmarlow joined
dalek ecza: c9ab37e | (Solomon Foster)++ | t/spectest.data:
Turn on S02-types/sigils-and-types.t.
01:36
ast: 3511439 | (Solomon Foster)++ | S02-types/declare.t:
Additional fudging for niecza.
01:50
ast: ed292ed | (Solomon Foster)++ | S06-advanced/lexical-subs.t:
Change fail to ok 0. This seems more consistent. Probably still a better way to right it.
02:02
ecza: bbfe2b9 | (Solomon Foster)++ | t/spectest.data:
Turn on S06-advanced/lexical-subs.t.
sorear colomon: perhaps somebody mixed up fail with flunk 02:03
colomon seems like it should be lives_ok or something like that
but ok 0 seems like it should work for sane conditions, and makes niecza like the file.
ack! I said "right" instead of "write". 02:04
I will be so happy when I shake this head cold.
02:04 bluescreen10 left, bluescreen100 left
colomon at 11am this morning I was already so tired I was thinking it was 4pm. 02:04
02:21 lutok left
colomon sorear: do we have FIRST yet? 02:21
sorear No. 02:22
START will fill some of the same purposes in a pinch though.
TimToady moving the code out in front of the loop is usually simpler :) 02:23
colomon FIRST is one of those sugar things I lust after. 02:24
TimToady colomon: if you just put a gist of your pi, I can put in on RC, if you're shy. :)
colomon TimToady: yeah, I should get around to that, shouldn't I? 02:25
TimToady I just think it'd make a great 400th entry on RC 02:26
colomon awww
just give me a minute to try to get reduce working on niecza.
sorear What was the big feature that made the pi work on Rakudo again?
colomon bignums
bigints
sorear ISTR there was a reason it didn't work on niecza
TimToady niecza needs to support subsigs
sorear niecza: sub foo($x [$y,$z]) { say $z }; foo([2,3]) 02:27
p6eval niecza v13-185-gbbfe2b9: OUTPUT«Potential difficulties:␤ $x is declared but not used at /tmp/Woz5tkEcLq line 1:␤------> sub foo(⏏$x [$y,$z]) { say $z }; foo([2,3])␤ $y is declared but not used at /tmp/Woz5tkEcLq line 1:␤------> sub foo($x [⏏$y,$z]) { …
sorear niecza: sub foo($x [$y,$z]) { say $z }; foo([2,3]) #OK
colomon right, I've got an uglier version that works on niecza, but the subsig version is nice
p6eval niecza v13-185-gbbfe2b9: OUTPUT«3␤»
TimToady cool
didn't know that
sorear are you missing Mu.Capture?
colomon had no idea subsigs worked at all on niecza 02:29
sorear they were added two days ago 02:30
+only
colomon new!
doesn't work because my reduce broke the niecza build. 02:31
sorear sure I didn't break it first?
colomon yes
sorear how is your reduce connected to reduceop? 02:32
colomon I used True and False before they were defined
massively simpler
sorear worth killing reduceop, then?
colomon no, no, no, it's not a replacement
parallel version of the same basic concept 02:33
S32-Containers and search on reduce
Sub-signatures NYI at /Users/colomon/tools/pi/pi-timtoady.pl line 27: 02:35
------> stream(-> [$u, $v]⏏ { floor($u * $v * $n); },
sorear oh 02:39
-> $ [...
I missed the path for when there is no overall variable
dalek ast: 3bf852e | (Solomon Foster)++ | S32-list/reduce.t:
Fix broken test. Fudge for niecza.
sorear will fix that shortly
colomon sorear++
sorear niecza: say [] 02:41
p6eval niecza v13-185-gbbfe2b9: OUTPUT«␤»
sorear colomon: I wonder if I should close #102 02:43
colomon: 'git log S02-types/parcel.t' ... this isn't a regression
it does document a NYI
dalek ecza: 2daaa81 | sorear++ | / (2 files):
Support literal constants as types in multis (fixes #101)
02:44
colomon niecza: say <5 7 8>[] 02:46
p6eval niecza v13-185-gbbfe2b9: OUTPUT«Unhandled exception: No value for parameter \$index in postcircumfix:<[ ]>␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (postcircumfix:<[ ]> @ 1) ␤ at /tmp/_vrraHiSJe line 1 (mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 2968 (ANON @ …
colomon sorear: your call. I was mostly worried because I thought it was a regression
dalek ecza: 71a58df | sorear++ | src/niecza:
Fix sub-signatures with no preceding variable, colomon++
02:51
sorear 2daaa81 might allow a few unfudges, although it doesn't yet let you write multi foo(Increase) {} or multi foo(pi) {} 02:52
nom: multi foo(True) {}
p6eval nom 38165a: ( no output )
sorear nom: multi foo(pi) {}
p6eval nom 38165a: ( no output )
dalek ecza: 7704df1 | (Solomon Foster)++ | lib/CORE.setting:
Simple implementations of Any.reduce and sub reduce.
02:55
ecza: c5f959c | (Solomon Foster)++ | t/spectest.data:
Turn on S32-list/reduce.t.
colomon sorear++ # pi works on niecza now! 02:58
sorear so how far are we from Easter? :D 02:59
03:09 zjmarlow left
colomon pi gist: gist.github.com/1586644 03:12
TimToady sees it and seizes it :) 03:13
colomon If TimToady++ thinks this should be #400, then I'd appreciate a quick code review
TimToady looking
colomon TimToady: this code works on niecza and rakudo
the use Test can be deleted, clearly
comments, maybe? 03:14
TimToady don't need the Haskell
colomon www.mathpropress.com/stan/bibliogra...spigot.pdf is the Haskell program I translated to p6
TimToady biab 03:15
03:17 zjmarlow joined
TimToady RC has it's own examples of other languages :) 03:18
colomon oh, interesting... I just changed it to be properly infinite, and niecza stops dead at digit 100 or so.
03:18 athomason joined
colomon I've just updated the gist with a slightly better end section, no comments other than the above URL. 03:20
huh. rakudo goes that far and stops too 03:21
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865 03:22
it's correct that far
TimToady maybe it can't gc if you don't throw away the earlier digits 03:23
colomon seems odd that both implementations would gc in the same spot 03:24
I'll bet it's a real flaw in the implementation
TimToady could be 03:26
colomon hmm... looks like mono hits 100M and stops
but it's chewing up CPU
yeah, it's chewing up a full core's worth of CPU without any apparent additional memory allocation 03:28
TimToady nom leaks slowly after hitting 300m 03:30
Rat limits? 03:31
colomon might be
It's been so long I don't remember how the code works anymore. :) 03:32
TimToady if the rhs is greater than 64bits..
div works better
colomon Did they actually fix Rats to not be de facto FatRats in Rakudo?
ooooo.... interesting 03:33
I think you're basically right, but....
extr's result becomes NaN 03:34
TimToady and if you're div'ing Ints, the .floors are redundant
colomon yup, just give me a minute to study how it fails more carefully. :) 03:35
03:38 orafu left, orafu joined, Psyche^ joined
colomon okay, I *think* what is happening is the internal numbers are getting so big that when the / operation can't be a Rat, both sides are converted to Num and the numbers are too big to be Nums, so they become Inf, and then it's Inf / Inf 03:39
[Coke] niecza: gist.github.com/1586644
p6eval niecza v13-189-gc5f959c: OUTPUT«(timeout)3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865»
colomon bingo! 03:40
[Coke] colomon: should I hold off before doing the final run of the day?
colomon [Coke]: I'm not doing any more spectest cleaning today, for sure.
niecza: gist.github.com/1586644 03:41
p6eval niecza v13-189-gc5f959c: OUTPUT«(timeout)3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712…
03:41 Patterner left, Psyche^ is now known as Patterner
colomon looks correct 03:42
just generated ~2000 digits in 10 seconds here (niecza) 03:43
seems like Rakudo starts lagging around digit 1900 or so 03:45
TimToady wonders why you can iteratoe pi-stream() directly in niecza but not nom 03:46
if you do that, all you need is: state $ = print '.' 03:47
but it seems pi-stream returns something indexable but not iterable... 03:48
funny, since it says it's type List() 03:49
colomon TimToady: if you don't mind, I'm going to turn this over to you for rosetta coding... I don't really remember how to edit the site. And I should be getting to bed. 03:50
TimToady okay, will do
thanks!
colomon thank you!
03:51 saberman_2 joined 03:52 saberman_2 left 04:00 saberman_2 joined 04:01 saberman_2 left
TimToady 400 entries for Perl 6 on rosettacode thanks to colomon++! \o/ 04:04
(well, and everyone else :) 04:11
sorear++ and jnthn++ in particular
04:19 kaleem joined
sorear \o/ 04:20
moritz \o 04:33
phenny moritz: 09 Jan 22:30Z <jnthn> tell moritz oops, the setting compilation bustage was not anything to do with moving the temporal ops. It was to do with the sleep change that came in the previous commit.
moritz: 09 Jan 22:30Z <jnthn> tell moritz well, the rtype bit anyway 04:34
moritz: 09 Jan 22:57Z <jnthn> tell moritz fixed the other bug you ran into too. Note - please can we call what you're called CORE2 as CORE, and then call the more primitive one something like PRIMITIVES? :)
moritz oh doh
04:34 birdwindupbird joined
[Coke] # 01/09/2012 - niecza at 96.68% -- gist.github.com/1476841 04:36
moritz phenny: tell jnthn oh d'oh, thanks. I'm fine with any setting rename, it's just a proof of concept so far
[Coke] (still increasing, despite recent gains by rakudo!)
phenny moritz: I'll pass that on when jnthn is around.
moritz -> travel 04:38
04:46 thou left 05:12 skids left 06:00 cognominal left 06:01 cognominal joined 06:06 mkramer joined 06:27 kaleem left, donri joined 06:30 koban joined 06:37 alim_ joined 06:40 odoacre left 06:44 wtw joined 06:53 odoacre joined 06:56 replore joined 06:59 kaleem joined 07:09 Suor joined 07:17 Suor left 07:20 zby_home left 07:38 Suor joined 07:41 Suor left 07:53 alim_ left 07:56 snearch joined
masak niecza: constant @fiblist = 0, 1, 1, map &fib, 1..*; sub fib($n where * > 2) { @fiblist[$n - 1] + @fiblist[$n - 2] }; say fib 5 07:56
p6eval niecza v13-189-gc5f959c: OUTPUT«Unhandled exception: System.Exception: Unable to find lexical &fib in @fiblist init␤ at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, Boolean upf, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤ at Niecza.CLRBac…
masak aww :)
clearly that must be made to work at some point.
g'morning, #perl6 07:57
08:06 jeffreykegler joined
tadzik o/ 08:08
08:11 jeffreykegler left 08:17 carlin left 08:27 cognominal left 08:29 cognominal joined
masak *why* is .wrap already in-place? 08:32
hm, probably because it's diffy :) 08:33
niecza: sub foo(5) { say "OH HAI" }; foo 5 08:35
p6eval niecza v13-189-gc5f959c: OUTPUT«OH HAI␤»
masak \o/
sorear++
08:36 mj41 joined 08:37 LlamaRider joined 08:38 koban left
TimToady here's a challenge: make gist.github.com/1587894 work (or find the bugs) 08:40
zzz &
jnthn masak: How can that constant one work? The expression would be evaluated at BEGIN time, before you declared fib. 08:51
phenny jnthn: 04:36Z <moritz> tell jnthn oh d'oh, thanks. I'm fine with any setting rename, it's just a proof of concept so far
jnthn moritz: okies :) 08:53
masak jnthn: I'm allowed to refer to &-sigil variables before I declare them, am I not? 08:59
jnthn: and the sub isn't actually invoked until I request the first element, right?
jnthn oh, ick, missed the lazy map 09:00
masak TimToady: nice!
nom: constant @fiblist = 0, 1, 1, map &fib, 1..*; sub fib($n where * > 2) { @fiblist[$n - 1] + @fiblist[$n - 2] }; say fib 5 09:01
p6eval nom 38165a: OUTPUT«===SORRY!===␤Cannot handle constant @fiblist with non-literal value yet at line 1, near "= 0, 1, 1,"␤» 09:02
masak aww :)
LlamaRider TimToady: does using unicode symbols as operators really scale? I mean there are just that many keys you can map to uncommon UTF-8 chars
masak nom: &foo(); sub foo { say "OH HAI" }
p6eval nom 38165a: OUTPUT«OH HAI␤»
masak LlamaRider: I don't buy that argument. it's like saying "there are just that many keys you can map to sub and method names" 09:03
LlamaRider but I can _type_ sub and method names. I can't type \in 09:04
jnthn LlamaRider: Just buy one of those keyboards the Chinese use with 4000 keys on :)
masak LlamaRider: I can. I use LEIM in Emacs.
LlamaRider: I literally type '\in' in TeX mode, and I get the ∈ operator.
LlamaRider ah, but that's wonderful! 09:05
\in I can type :)
masak LlamaRider: there are reasons to avoid Unicode operators, but that isn't one of them :)
jnthn: have you seen someone use one of those? they're *awful*.
jnthn: en.wikipedia.org/wiki/File:Chinese_...writer.jpg 09:06
talk about hunt-and-peck! 09:07
jnthn omgz I was joking! :P
I....I didn't think somebody woulda made one :P
sorear o/ masak
masak sorear: \o 09:08
jnthn: I didn't know about it until about half a year ago.
sorear notice that there are gaps in the layout. 09:09
what this tells me is that they are using a two-coordinate indexing system
most likely some form of radical+phonetic scheme 09:10
09:10 ChanduBS joined
sorear LlamaRider: having a one-to-one correspondence between keys and characters is what's unscalable 09:11
I need a better (read: unified and more general) input method system
09:12 jupp joined
sorear I can enter most of the Latin script using XCompose 09:12
jupp hi
sorear I can enter Japanese (and Chinese, sort of) using IBus, TimToady++
LlamaRider sorear: sure it's scalable, you just put more characters next to each other ;)
sorear hello and welcome, jupp, how can we help you?
jupp any hint on how I can get the old perl -en behavior with parrot? 09:13
sorear I've memorized the hex codes for the Greek alphabet
anything else I have trouble with
09:13 ChanduBS left
LlamaRider sorear: I've memorized the letter names, and use \name in LaTeX, which works perfectly. But I agree it's more old-fashioned than memorizing hex codes ^^ 09:13
jupp ie I want to do some complex regex substitutions as part of a shell script 09:14
sorear LlamaRider: I haven't figured out how to make LaTeX work with all my X11 apps
jupp: Parrot isn't a scripting language interpreter. It doesn't even have -e
I am uncertain what you meant
Unless you meant Rakudo
jupp yes I did 09:15
sorry for the confusion
sorear will a Rakudo expert field this one? masak, you did nap, didn't you?
masak sorear: yes, I seem to recall it was some radical+phonetic scheme. see languagelog.ldc.upenn.edu/nll/?p=3092
09:15 zjmarlow left
sorear LlamaRider: in particular, I need a way to make LaTeX work with rxvt-unicode, or another terminal emulator that's reasonably lean and POLSy 09:16
09:16 alim joined
masak jupp: Rakudo has -n and -e 09:16
jupp: but you may not be able to write it as -ne at this point.
jupp: writing it as -en never worked, in my experience.
sorear -en means to call the function named "n" 09:17
always has, even in P5
masak right.
jupp I see, that fixes it
thanks for your hely 09:18
p
LlamaRider sorear: no clue about any of that, I didn't even know about LEIM in Emacs
sorear are you a person who can get everything they want to do done in emacs? 09:19
LlamaRider O
I'm trying to be, I guess. 09:20
jupp masak: any chance on why this won't yield 'bar': echo "foo" | perl6 -n -e 's/foo/bar/' 09:21
jnthn Isn't it -p that prints the output too? 09:22
masak aye.
try with -p instead of -n
(this also holds with perl5, by the way)
09:23 alim_ joined
jupp sweet 09:23
masak did it work?
I got a Null PMC access locally when trying it :)
jupp works for me :) 09:25
masak \o/
09:26 alim left, alim_ is now known as alim
LlamaRider t4 of the p6cc is quite the amount of fun to work on :) just started it 09:27
masak I can only concur. :) 09:28
jnthn masak: (NPMCA) maybe ticket it, so we can make sure it's not the case in latest master?
masak jnthn: just pulled and about to rebuild. 09:31
09:31 bacek joined
sorear ...oh right. Well I guess I can stop waffling over whether I want to enter p6cc now. 09:33
indecision-- 09:34
masak there's always next year.
sorear yes
sorear wonders how urgent it is to get constants (incl. enum values) working as types 09:35
masak also, the problems are public, so if you just want to solve them without winning great books, that's still an option.
sorear: in what sense are non-enum constants types?
or in what sense do they work as types? 09:36
sorear masak: multi JapaneseName(Tue) { "kayōbi" }
jnthn nom: enum Yesness <Yes No>; multi ru(Yes) { say "Da" }; multi ru(No) { say "Nyet" }; ru(Yes); ru(No); # curious if it works in nom... 09:38
p6eval nom 38165a: OUTPUT«Da␤Nyet␤»
sorear wait, that was an enum type
masak sorear: looks like the ordinary constant-in-signature sugar mechanism to me. 09:39
sorear nom: multi foo(pi) { "Pi" }; multi foo(Any) { "Not Pi" }; say foo(pi)
p6eval nom 38165a: OUTPUT«Pi␤»
sorear masak: exactly
masak so... they already work...?
sorear allowing types and constants to be used interchangably in niecza's signatures involves an amount of yak shaving I'd rather not take on just yet 09:40
sorear just remembers subsets need to be fixed up
s/s»/ed/
LlamaRider masak: do you know how many people registered for p6cc? And why I'm the only one in #perl6? I feel like the only newbe to Perl6 on board 09:41
masak nom: enum Yesness <Yes No>; multi ru(Yes) { say "Да" }; mtul ru(No) { say "Нет" }; ru($_) for Yes, No # jnthn: at least do it with real letters! :P
p6eval nom 38165a: OUTPUT«===SORRY!===␤Confused at line 1, near "mtul ru(No"␤»
09:41 baest left
masak nom: enum Yesness <Yes No>; multi ru(Yes) { say "Да" }; multi ru(No) { say "Нет" }; ru($_) for Yes, No 09:41
p6eval nom 38165a: OUTPUT«Да␤Нет␤»
masak LlamaRider: 35 people registered. 09:42
sorear is е iotated?
masak LlamaRider: you're not the only contestant on #perl6 :)
sorear: "iotated"?
sorear the y in nyet 09:43
masak sorear: yes.
LlamaRider Nice info, good to know ^^ I gues I'm the only one being too loud about it xD
masak sorear: if you want the non-y version, it's э
LlamaRider: it's nice that you're here -- and very strategic, I might add. increases the chances of winning. :) 09:44
LlamaRider I'm quite sure I won't win anything, but it's definitely 10 times more fun when I have people to chat with :)
09:45 dakkar joined
jnthn masak: Yeah, I really shoulda...especially given I'm meant to be improving my Russian atm... :) 09:45
LlamaRider to avoid old cyrillic letters such as "э", one can use a well-behaved language like Bulgarian, No = "Не" :) 09:46
jnthn Bulgarian is a terribly behaved Slavic language. It has articles! :P 09:47
sorear jnthn: Why are you meant to be improving your Russian? 09:48
jnthn sorear: Actually have regular contact with somebody to speak it with now.
sorear \o/ 09:49
jnthn Plus I want to. It's a nice language. :)
LlamaRider jnthn: touché
sorear
.oO( So it's not the same to practice Polish with tadzik, GlitchMr, and x3nU? )
09:50 snearch left
jnthn sorear: By "speak" I meant, actually speaking, not just typing. :) 09:51
sorear Ah. 09:52
masak should get a similar reason to improve his Mandarin 09:53
09:54 spine_ joined
masak ah. "iotation", from the Greek letter iota (ι). makes sense. 09:55
sorear I found someone once... only had a few minutes and I cannot for the life of me make a proper л or х 09:56
my Х and К come out sounding exactly the same
masak х is mostly just a regular "h" sound, no?
maybe slightly more throaty than in English. 09:57
sorear k/kh standardly
saKHarov, etc
masak uh, yes.
I don't think of that as something odd any more :)
sounds completely normal to me... even though Swedish has the less throaty "h" sound like English. 09:58
there are at least two sounds for л: hard and soft.
sorear s/Л/Р/ 09:59
masak oh! :)
sorear (does anyone else find this error remotely as funny as I do?)
masak I can see how it occurred :)
sorear my friend tells me Р is identical to a Spanish trilled r. Which I've never been able to say either
masak same as in Swedish, too. 10:00
tadzik about wrap again: gist.github.com/1585730
masak can anyone confirm that `perl6 -p -e ''` is busted in latest nom? I've now rebuilt, and it still gives a Null PMC access.
jnthn can't do the Spanish really trilled 'r'
sorear wonders if the folks in Sakhalin speak Lusskij 10:01
jnthn :P
masak: mebbe it didn't get updated properly in nom?
(can't verify, at $dayjob without a Rakudo build to hand) 10:02
masak tadzik: looks like a bug to me.
tadzik S11 uses the word "binding" when it comes to exportation, this looks more like copying 10:03
10:03 replore left
sorear I also have issues with Ь and Ы 10:04
masak that's completely normal :) 10:05
tadzik: haven't read what S11 says about it, but binding makes a lot of sense and copying doesn't. 10:06
tadzik: will you submit a rakudobug, or shall I?
sorear needs to learn more Swedish/Norwegian/(Maybe German would be good enough?) if ey's going to run off to the frozen north 10:07
tadzik masak: go on
masak submits rakudobug 10:09
sorear: I'd say German gives the most bang for the buck. plus it's good to know if you plan to tackle Swedish/Norwegian/Danish at some point anyway. 10:10
sorear finishing Russian and French would also be good someday 10:11
masak "finishing"? 10:12
arnsholt Scandinavian isn't too hard I think, the lack of inflection really helps
On the other hand we have some messed up pronounciation 10:13
sorear masak: well, hiking to a more favorable point along the effort/reward curve
10:13 wtw left
tadzik masak++ 10:13
dalek ecza: 4336983 | sorear++ | / (2 files):
Treat subsets in MMD as base type + where
10:14
masak sorear: I'm only fluent in three languages at present. my French, Russian, Yiddish, Latin, and Mandarin are all in various states of disrepair. 10:19
donri jbobau ko! 10:20
jnthn tadzik: huh, exporting is decidedly binding. 10:21
tadzik: But don't forget closure cloning. 10:22
sorear masak: what languages *are* you fluent in?
masak sorear: Swedish, English, Esperanto. in that order.
jnthn is only fluent in English :( 10:23
sorear for some reason I had you down as a German
English, and minimally fluent in Spanish 10:24
masak no, that's moritz :)
jnthn used to speak reasonable Spanish, back when he lived in Spain 10:25
10:26 awoodland joined
jnthn Taking vacation in Argentina later this year, so trying to remember it all. Though I think the Spanish down there is...interesting. :) 10:27
sorear well I only speak TJ spanish anyway :D 10:28
dalek ecza: 4b71f28 | sorear++ | src/ (5 files):
Mergeback
jnthn So long as I can order beef, beer and bus tickets, I'm sure I'll be fine. 10:29
ah, fun times at $dayjob. Our DAG is losing its A-ness... 10:30
10:30 daxim joined
sorear It was really fun that day I got Niecza's exception dispatcher to hang chasing an infinite loop of CALLER links 10:30
well I think I'd best sleep now. Immediate-term TODO: MMD/multi dispatch interaction, two level attribute stuff/trusts 10:32
jnthn Oh, I played fast and loose with Parrot CallContexts a few months back and achieved just the same... :)
sorear ..."MMD/multi dispatch interaction"??
I mean MMD/junctions 10:33
sorear out
masak jnthn: so... the DAG... it's a directed graph now? :)
10:33 baest joined 10:34 bacek left
masak well, as long as you don't traverse it expecting to bottom out, you're fine, I guess. 10:34
sorear wonders why tadzik and doy have the same shell prompt
jnthn masak: Yeah, and guess what we do with it... :) 10:35
masak jnthn: traverse it? :)
well, as long as you don't expect it to bottom out, you're fine, I suppose :)
jnthn Well, it may feel in some companies that there's an infinite number of levels of management, but I'm pretty sure most of them bottom out somewhere :P 10:38
masak .oO( it's bosses all the way down ) 10:45
10:46 bacek joined 11:00 bs338 joined 11:02 nornagest joined, bs338 is now known as integral 11:03 LlamaRider left 11:39 bacek left 11:42 bkolera joined 11:46 bkolera left 11:47 Trashlord joined 11:53 jupp left 11:54 jupp joined, jupp left 11:57 bacek joined
colomon TimToady: line 14, @elems should be @args (or maybe vice versa line 13) 12:01
12:01 bkolera joined 12:04 spine_ left 12:08 benabik left 12:12 cognominal_ joined 12:15 nornagest left, cognominal left 12:18 wtw joined 12:20 mkramer left 12:27 LlamaRider joined 12:33 benabik joined 12:36 nornagest joined 12:40 x3nU left 12:41 x3nU joined 12:44 awoodland left
jaldhar masak: Some days ago I asked you about entering the perl6 contest but I've just realized I forgot to email you as the instructions say. Is it too late? 12:54
masak jaldhar: yes :/ 12:57
jaldhar masak: oh well. I'll do the problems anyway just for my own edification. 12:59
masak nice.
seems you didn't ask me, but talked with moritz and kshannon.
jaldhar yeah that's right. Though I thout I did ask you as well but I guess not. 13:02
13:02 jupp joined
masak not according to the logs... 13:02
jaldhar: if you do find nice solutions to problems, and send them to me by email, I will give you proper recognition in the blog posts about the tasks, even if you aren't technically part of the contest. 13:04
see last year's p4 task and arnsholt++: strangelyconsistent.org/blog/p4-pic...-of-stones
13:05 LlamaRider left
jaldhar ok "nice" might be a bit beyond my grasp :) but I want to try this. 13:07
kshannon jnthn: gist.github.com/1584871 - I'm down to just 6 failing test files in qbootstrap. :)
jnthn kshannon: How'd you fix the subclass one? 13:08
kshannon++
49-regex-interpolation.t is likely just a case of NYI rather than a bug 13:09
13:15 nornagest left 13:21 cognominal_ left
kshannon Dammit, still some more corner cases with the bstack 13:22
masak today's autopun spotting: twitter.com/timminchin/status/156665165075582976
kshannon And my fix leaves more entries on the stack than probablt should be there.
13:23 cognominal joined
jnthn kshannon: Yes, keeping the bstack straight is quite the brainache. 13:23
kshannon masak: Love tim. Best song ever - Rock and roll nerd. 13:24
13:25 bluescreen10 joined
[Coke] kshannon++ #diving in to rakudo guts. 13:25
kshannon also his beat poem - Storm - www.youtube.com/watch?v=UB_htqDCP-s
[Coke]: nqp actually :)
I got lost in maze of twisty ListIter's when I was hacking Rakudo guts... 13:26
benabik kshannon: NQP kinda is the Rakudo guts. ;-)
kshannon jnthn: I think the bstack needs some docs... :( 13:28
jnthn kshannon: Yeah. pmichaud tends to be...pretty light...on docs... Then, I'm not much better. 13:29
masak kshannon: Storm is great. you'll want to see the animated movie, too: www.youtube.com/watch?v=HhGuXCuDb1U 13:30
jnthn is highly amused by "If I didn't have you"
masak "you fall within a bell curve" :P 13:32
kshannon: I kinda like "Not perfect". 13:37
kshannon "Peace anthem" had me rolling on the floor the first time I heard it. 13:39
masak :D 13:41
13:50 Trashlord left 14:00 alim left 14:01 alim joined 14:06 jupp left 14:08 kcwu joined 14:17 kaleem left 14:22 skids joined
masak has anyone written something noteworthy about the structural similarities of these activities: reporting a bug; writing a test case; requesting help on IRC? 14:23
kshannon jnthn: I'm almost sure we need this for any meaningful semantics of the bstack: github.com/KrisShannon/nqp/commit/...proto-hack 14:29
(and the le', '$I11', '$I18', $jumplabel is probably not needed...) 14:33
14:35 jupp joined, LlamaRider joined 14:39 cognominal left, wolv joined 14:40 dukeleto- joined, lestrrat left, wolverian left, dukeleto left, fhelmberger left, tadzik left, masak left, ashleydev left, Lorn left, lestrrat joined, bbkr left, spetrea left, dalek left, cognominal joined, _jaldhar joined, bbkr joined, ashleydev joined, tadzik joined, kfo left, dalek joined, ChanServ sets mode: +v dalek, fhelmberger joined, jaldhar left, dukeleto- is now known as dukeleto, masak joined 14:41 spetrea joined, kfo joined 14:42 Lorn joined 14:43 PacoAir joined
masak $net.split 14:43
14:45 LlamaRider left
colomon niecza: subset Even of Int where { $_ % 2 == 0 }; say 2 ~~ Even 14:47
p6eval niecza v13-191-g4b71f28: OUTPUT«Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Niecza.STable.FindMethod (System.String name) [0x00000] in <filename unknown>:0 ␤ at Niecza.P6any.InvokeMethod (Niecza.Frame caller, System.Stri…
colomon niecza: subset Even of Int where { $_ % 2 == 0 }; say "alive!"; say 2 ~~ Even
p6eval niecza v13-191-g4b71f28: OUTPUT«alive!␤Unhandled exception: System.NullReferenceException: Object reference not set to an instance of an object␤ at Niecza.STable.FindMethod (System.String name) [0x00000] in <filename unknown>:0 ␤ at Niecza.P6any.InvokeMethod (Niecza.Frame caller, Syst…
14:48 LlamaRider joined 14:52 zhangkaizhao joined, sayu joined 14:56 fsergot joined
jnthn kshannon: Sorry, was tied up with $dayjob for a bit :) 14:58
kshannon: Hmm...we're removing the whole cut functionality there...
jnthn wonders if we really need it, and what fails with it gone
kshannon: oh, I think I see what the patch is doing... 15:00
kshannon: Would be interested to know a Rakudo spectest run with that patch in NQP master looks compared to without it.
kshannon Well, I don't think the cut actually works.
jnthn kshannon: I think it's meant to unwind captures that we've backtracked over. 15:01
kshannon: But from what I saw when starting to look at things, it often throws away far too much.
kshannon OK, I'm just running the nqp tests at the moment doing a timing comparison between master and qbootstrap 15:02
jnthn kshannon: Also interesting.
kshannon: In theory QRegex should be faster. In practice, having the NFA runner in NQP may well be hideously slow.
(pmichaud didn't expect that part to stay in NQP)
A run with -Rsubprof should be revealing. 15:03
kshannon At a first approximation I'd say hideously slow is pretty accurate...
It's taking about double the time (double user, 50% more system, and double walltime) 15:07
jnthn kshannon: OK. Profiling time! :) 15:08
kshannon: I'll have chance to get the profiler on it this evening after $dayjob. 15:13
15:13 sayu left
[Coke] seen pmichaud? 15:16
aloha pmichaud was last seen in #parrot 14 hours 35 mins ago joining the channel.
15:23 Trashlord joined
LlamaRider Q: How do I do " while (<STDIN>) { ... } in P6 ? 15:23
I've seen STDIN is now $*IN, but <> no longer do the same thing
15:24 wtw left
TimToady for $*IN.lines { ... } 15:24
[Coke] (I just saw his irssi process spike while looking at something else, wondering if he was about. ;) 15:25
LlamaRider thanks. I just found it through .^methods, came to brag, and the help was there :)
TimToady LlamaRider++ for your gumption anyway 15:26
jnthn nom: say $*IN.^methods 15:27
p6eval nom 38165a: OUTPUT«open close eof get getc lines read seek tell write opened print say slurp d e f l r s t w x z copy chmod ins chomp path␤»
LlamaRider TimToady++ for teaching me SAT words ^^
masak since $*IN is the default, 'for lines() { ... }' works as well. but the parens in 'lines()' are mandatory due to the way listop parsing works.
jnthn Wow, .^methods output is, like, more useful now ;) 15:28
masak or you could go the same route and write 'for lines -> $line { ... }' or similar ;)
benabik nom: $*IN.e.say
p6eval nom 38165a: OUTPUT«Bool::False␤»
masak benabik: standard input does not exist. it is a social construct.
LlamaRider jnthn: Definitely useful! I can't wait for the day where it will spit out a table with "method name | synopsis " rows ;)
jnthn nom: say $*IN.^methods.perl 15:29
p6eval nom 38165a: OUTPUT«(method open(IO, Any, Mu *%_) { ... }, method close(IO, Mu *%_) { ... }, method eof(IO, Mu *%_) { ... }, method get(IO, Mu *%_) { ... }, method getc(IO, Mu *%_) { ... }, method lines(IO, Any $limit?, Mu *%_) { ... }, method read(IO:D, Cool:D $bytes, Mu *%_) { ... }, m…
masak ooh 15:31
jnthn++
LlamaRider more like $*IN.^methods.map({ $_ ~ " : " ~ $_.WHY }) or something 15:32
jnthn nom: say $*IN.^methods>>.perl>>.say
p6eval nom 38165a: OUTPUT«method eof(IO, Mu *%_) { ... }␤method getc(IO, Mu *%_) { ... }␤method chmod(IO, Any $mode, Mu *%_) { ... }␤method w(IO, Mu *%_) { ... }␤method l(IO, Mu *%_) { ... }␤method get(IO, Mu *%_) { ... }␤method tell(IO:D, Mu *%_) { ... }␤method e(IO, Mu *%_) { ... }␤method sl…
jnthn That's probably nicer output
masak naughty jnthn, using >>.say 15:33
nom: class C { multi method foo($x) {}; multi method foo($x, $y) {} }; say C.^methods.perl
p6eval nom 38165a: OUTPUT«(method foo(Any, Any, Mu *%_) { ... },)␤»
masak oh, it shows the proto?
15:33 cognominal left
jnthn masak: Correct 15:33
benabik Why do they all have Mu *%_ ?
masak benabik: "interface consistency"
benabik: see S12, and A12.
jnthn benabik: All methods get that by default to ease deferral 15:34
benabik masak++
jnthn As masak says, more retionale in la spec.
*rational
benabik jnthn++
jnthn oh, whatever :)
masak benabik: short answer: because some subclass may introduce more named params.
15:34 cognominal joined
jnthn Well, it works the other way around too 15:35
You can write subclasses that defer and they don't have to care about all the nameds that parents support.
So if the parent starts to support extra ones, the subclass that defers to it need not be updated.
15:38 LlamaRider_ joined
masak aye; that's probably more to the point, now that I think about it. 15:38
deriving classes shouldn't have to break if the base class adds a named param or two.
colomon anyone here have wisdom on converting Unicode to ASCII in C/C++? I know it sucks, but I need to make it happen for $work... 15:40
15:40 fsergot left
masak convert? you decode the Unicode, then you encode the ASCII... 15:41
15:41 LlamaRider left
masak or s:2nd/the/as/, rather. 15:41
ergh, s:2nd/the>>/as/ ;) 15:42
colomon decode to what?
colomon is pondering just going through wchar's and throwing out all the ones greater than 128.... 15:43
masak well, greater than 127 in that case... 15:45
colomon yeah
ugh, that's evil
masak it completely depends on what you want to achieve. 15:46
maybe it's completely kosher to just throw them out. probably not.
colomon Unicode filename ==> Representation of filename which can legally be stored in a pure ASCII file
jnthn colomon: Heh, if that's all you need then just treat the encoded unicode string as a bunch of bytes and base64 it ;) 15:47
dalek ast: b741ac7 | coke++ | / (4 files):
niecza (auto)unfudge
masak jnthn++ 15:48
jnthn And make sure you're consistent about the encoding :)
That way you won't lose any info.
masak indeed.
colomon intriguing notion
I don't actually ever have to read filename back from the file. 15:49
benabik Write-only storage?
15:50 alim left
colomon benabik: writing the file is the point of the program; and the internally encoded filename is a trivial human-readable detail. 15:50
benabik fsvo human-readable? 15:51
masak does a double-take at metacpan.org/source/SBURKE/Text-Un...de.pm#L400
colomon gist.github.com/1589727 # find the filename ;) 15:52
15:56 kaare_ joined
geekosaur ...Hollerith strings?! 15:57
15:57 fsergot joined
PerlJam Herman Hollerith's legacy continues. 15:57
16:01 thou_ joined
masak 36HHerman Hollerith's legacy continues. 16:08
16:08 panterax joined
PerlJam masak: obviously my geek-fu is not as great as yours today 16:09
16:10 fsergot left
colomon The attentive eye will also note that those are 80 column lines... 16:11
masak :) 16:12
geekosaur also the D (instead of E) in the DOUBLE PRECISION constants
colomon geekosaur: yup. 16:13
afk # morning walk
masak decommute &
16:14 thou joined, birdwindupbird left
LlamaRider_ any shorthand for " @a.grep({ defined $_; }); " ? Seems cumbersome 16:14
jnthn @a.grep(*.defined) 16:15
jnthn -> home, bbl 16:16
benabik ([and] @a>>.defined) ?
LlamaRider_ Nice! * is something I have seen several times, but am yet to read about it in detail. Thanks jnthn++
benabik Oh, d'oh, wasn't paying enough attention. WTF brain?
skids hrm. 16:24
rakudo: class A { multi method foo(::B $b) { say "Surprise! ::B is an en-passant type capture"; } }; class B { }; my B $b .= new(); my A $a .= new(); $a.foo($b); $a.foo(2);
p6eval rakudo 38165a: OUTPUT«Surprise! ::B is an en-passant type capture␤Surprise! ::B is an en-passant type capture␤»
PerlJam skids: why is that a surprise exactly? 16:27
skids It's a surprise to anyone who thought they were using ::B to use a class before it was declared. 16:28
(which is something they will probably learn well before learning what an en-passant type capture is) 16:29
16:49 thou_ left 16:50 daxim left
jnthn back 16:54
LlamaRider_: * has various meanings. But *.method_name is same as { $_.method_name } - that is, it makes a closure. 16:55
skids: The rule is that ::B only works for talking about as yet undeclared types in non-declarative scenarios. A signature is declarative. 16:56
16:57 kaleem joined 16:58 wolfman2000 left
skids That might bear noting in S10. Are the synopsis still in the old pugs repository? 17:02
17:03 sayu joined
PerlJam skids: no, github.com/perl6/specs 17:03
skids Well, maybe after lunch I will finally learn to do a pull request :-) 17:04
17:06 hanekomu joined 17:07 LlamaRider_ left 17:15 baest left 17:22 daxim joined
[Coke] rakudo: my $foo = Whatever.new(); say 1..$foo[^10]; 17:24
p6eval rakudo 38165a: OUTPUT«1..(*, Failure.new(exception => Exception.new()), Failure.new(exception => Exception.new()), Failure.new(exception => Exception.new()), Failure.new(exception => Exception.new()), Failure.new(exception => Exception.new()), Failure.new(exception => Exception.new()), …
kshannon rakudo: my $foo = Whatever.new(); say (1..$foo)[^10]; 17:34
p6eval rakudo 38165a: OUTPUT«1 2 3 4 5 6 7 8 9 10␤»
[Coke] ah, thank you.
rakudo: my $foo = Whatever.new(); my $bar = Whatever.new(); say $foo===$bar; 17:35
p6eval rakudo 38165a: OUTPUT«Bool::False␤»
[Coke] Should Whatever be a singleton?
17:40 cognominal left 17:41 cognominal joined 17:42 cognominal left 17:44 daxim left, cognominal joined
jnthn kshannon: Just done a profile of 59-nqpop.t. Over 50% of time is spent in NFA.run. 17:46
17:47 kaare_ left 17:48 daxim joined, kaare_ joined 17:54 baest joined 17:55 sayu left
kshannon Well then, if we can speed that up to take no time at all we'll be a little bit faster than the master branch :) 17:56
jnthn Aye, and I think there'll be other wins to be had too. 17:57
17:58 kaare_ left
jnthn kshannon: Did you get chance to try that bstack patch against the Rakudo spectest? 17:58
17:59 kaare_ joined 18:00 dakkar left, mj41 left
kshannon I've only run it against the nqp tests, on the master branch it does fail two of the t/qregex tests 18:02
jnthn ah 18:03
jnthn feared it may bust something
kshannon Yeah, but I've been looking at the pir generated (it's the same on both branches), and I still think it's the right thing to do (not so many corner cases) The QAST compiler just needs a bit of prodding. 18:06
Running a rakudo build on patched master nqp now.
jnthn kshannon: If it's a better approach overall then I'm all for it.
kshannon: Note that I introduced a patch a while back to quantifier handling that may be unrequired after this one. 18:07
tadzik o/
jnthn kshannon: I'm having a crack an an NFA running dynop 18:08
o/ tadzik
18:09 zhangkaizhao left
[Coke] stares at ack "plan +d" t/spec | sort -t: -k2.5 -n and wonders why it's not sorting the way he thinks it should. 18:09
kshannon I think it will also be pretty easy to do the 'let' binding stuff.
[Coke] s/2.5/3.5/ (no change in output) 18:10
ARGLEBARGLE. yes there is, nevermind.
18:11 leprevost left 18:12 alester joined, Chillance joined
cj Mr. Coleda 18:15
[Coke] Mr. Adams-Collier 18:18
Yes? 18:19
18:19 hanekomu left 18:23 mkramer joined 18:24 leprevost joined
[Coke] Sí? 18:24
18:24 spine joined
[Coke] Да? 18:25
daxim ~~((°Д°)) 18:26
18:27 LlamaRider joined 18:28 zjmarlow joined, cognominal_ joined 18:29 mkramer left 18:30 mkramer joined 18:31 fsergot joined
kshannon is getting a little bit confused with all these different branches... 18:31
fsergot o/
jnthn kshannon: Just need to get more of them into a mergable state ;)
18:32 cognominal left
kshannon I think I need to redo my setup so I've got completely separated environments for master, qboot, stuffing around... 18:32
skids Unless I'm missing yet another nuance, this isn't supposed to work, but the way it doesn't work seems fishy: 18:34
rakudo: class A { has ::B $.a is rw }; class B { }; my A $a .= new(); $a.a.WHAT.say;
p6eval rakudo 38165a: OUTPUT«Method 'say' not found for invocant of class 'B'␤ in block <anon> at /tmp/3ptlcKj_P0:1␤ in <anon> at /tmp/3ptlcKj_P0:1␤»
jnthn eek :)
skids I'm guessing "class 'B'" means it thinks it is a symbolic link. 18:35
18:36 JimmyZ joined
gfldex nom: subset A of Str; sub foo(A $a){}; say &sub.signature; 18:37
p6eval nom 38165a: OUTPUT«===SORRY!===␤Symbol '&sub' not predeclared in <anonymous> (/tmp/D1H0qcEVj0:1)␤»
gfldex nom: subset A of Str; sub foo(A $a){}; say &foo.signature;
p6eval nom 38165a: OUTPUT«:(Str $a)␤»
gfldex shoudn't that be '(A $a)' ?
jnthn H
Hm 18:38
gfldex: Can argue it both ways
gfldex: When you write a subset type in a signature, it has to be disassembled into a nominal part and a constraint part
gfldex: Str is the nominal part, and of course there's no constraint part here, so I guess it's dropped it.
gfldex lets see
jnthn Well, it didn't drop it, there just wasn't one. :)
gfldex nom: subset A of Str where { $^s ~~ /^\d+$/ }; sub foo(A $a){}; say &foo.signature; 18:39
p6eval nom 38165a: OUTPUT«:(Str $a)␤»
jnthn Ah
18:39 mkramer left
jnthn ...I get that's Signature.perl missing something. 18:39
*bet
18:40 rindolf joined
rindolf Hi all. 18:40
gfldex so what is signature supposed to do then? 18:41
jnthn gfldex: .signature returns a Signature object 18:42
o/ rindolf
cj [Coke]: oh, nothing. just a greeting. Imagine me saluting or tipping my hat or whatever.
18:42 mkramer joined
gfldex it does that quite nicely, yet the returned object seams not to be overly honest to me 18:43
[Coke] cj; well met.
So, what brings you perl6 land?
cj someone was talking about which /win their #perl was in. I said "5 of course! #perl6 used to be in 6" 18:45
so I fixed it.
18:45 mkramer left
cj Right after I joined, I found out that someone else cares about perl6 on .NET enough to commit some code, so I stayed. 18:45
18:45 nornagest joined
cj maybe if I get some tuits I'll contribute something other than snark. 18:45
I wrote something about it a few years ago. wp.colliertech.org/cj/?p=175 It seems that there are people who have actually implemented bits of it. 18:47
no perl5 on perl6 on .NET yet, though. Woe.
18:47 mkramer joined 18:49 kaare_ left
[Coke] sorear is running out of spec tests to fix, so he may get to that soon. ;) 18:49
18:49 kaare_ joined, lichtkind joined
lichtkind jnthn: o/ 18:50
18:50 mkramer left 18:51 icwiener joined
jnthn o/ lichtkind 18:52
18:53 mkramer joined
rindolf jnthn: what's up? 18:54
18:55 daxim left
dalek p/qbootstrap: add1a9d | jnthn++ | src/ (2 files):
Quick and dirty port of NFA.run to a dynop. For nqpop.t, takes time spent in NFA.run from 51% of runtime down to 3.3%.
18:55
jnthn rindolf: Not much...just working and hacking. :) 18:56
18:56 mkramer left, daxim joined
rindolf jnthn: nice. 18:57
18:57 birdwindupbird joined
jnthn kshannon: With that patch, we spend longer building the NFA than running it! 18:57
18:57 mkramer joined 19:00 mkramer left 19:02 mkramer joined, LlamaRider left, mkramer left 19:03 cognominal_ left 19:04 mkramer joined 19:05 cognominal joined, JimmyZ left
moritz \o 19:06
masak o/ 19:07
tadzik o/
nornagest \o/
colomon o| 19:08
[Coke] colomon: yes?
19:08 LlamaRider joined
LlamaRider masak, moritz: who was the evil mind that invented the 3 naming schemes for t4? They're amazingly annoying :) 19:09
19:09 mkramer left
colomon may I be excused to go to the biergarten, Mr. [Coke]? 19:09
moritz LlamaRider: not me :-)
LlamaRider: and yes, I find them annoying too, but I guess I'd find any numbering scheme annoying if it was imposed on me
LlamaRider I wouldn't if it was a little bit more consistent 19:10
I can't reuse any computation :(
moritz you don't have to do any computations in that notation 19:12
masak LlamaRider: I'll be very interested to see a less annoying notation.
you have my full license to invent one ;) 19:13
LlamaRider always label starting left-most element on the top row. there :-)
[Coke] colomon: ja!
LlamaRider namely labels a1, i1 and p1 are there
19:14 arlinius left
LlamaRider *end of rant* :p 19:14
masak fine, if that makes you happy. :) 19:15
19:15 mkramer joined
masak to me it seems like just another distribution of (in)consistency from the current rule: numbers increase from left to right. 19:15
19:15 wolfman2000 joined, arlinius joined
moritz it's just waterbed of complexity: if you don't have names for the groves, you make it more verbose to name pieces 19:16
colomon niecza: multi foo(Inf) { say "Long time" }
masak aye.
p6eval niecza v13-191-g4b71f28: OUTPUT«Potential difficulties:␤ &foo is declared but not used at /tmp/5VMCEpYq4U line 1:␤------> multi foo⏏(Inf) { say "Long time" }␤␤»
colomon niecza: multi foo(Inf) { say "Long time" }; foo(Inf) 19:17
p6eval niecza v13-191-g4b71f28: OUTPUT«Long time␤»
19:17 mkramer left 19:18 mtk joined
LlamaRider masak: considering you don't really have left and right for diagonals (rather up and down) I can't agree it's the most sensible choice. Right you index left-slanted diagonals bottom-up and right-slanted ones top-down. Maybe I made the mistake of seeing them as diagonals ;) 19:20
Right now*
masak yeah.
unfortunately, I had to impose *some* notation, otherwise I couldn't write tests for it. 19:21
[Coke] colomon;there was an error on that when I removed the emit direcdtive in the spectest.
masak I chose the one I disliked the least ;)
colomon [Coke]: yeah, I got it too. I was trying to golf it.
masak LlamaRider: there's absolutely nothing that prevents you from translating my crappy notation to your excellent one internally in your program.
colomon niecza: multi foo(1) { say "Not many"; }; multi foo(2) { say "Lots!"; }; foo(2) 19:22
p6eval niecza v13-191-g4b71f28: OUTPUT«Lots!␤»
LlamaRider masak: translating it to anything is the same amount of work ;)
but it's ok, I can deal with it
reminds of a real-world problem this way ;)
masak LlamaRider: if your notation isn't significantly better in any way, why do you prefer it to the present one? :P
LlamaRider I have a significantly better notation, and I prefer it to the current one, I just regret that translating the current one needs 3 distinct translation blocks 19:23
[Coke] is reminded that he solved task 1 and then forgot to move on to task 2.
masak :D 19:24
[Coke]: also, remember that submitting solutions greatly increases your chances of winning.
benabik niecza: multi foo(True) {say "Yes"}; multi foo(False) {say "No"}; foo(False)
p6eval niecza v13-191-g4b71f28: OUTPUT«===SORRY!===␤␤Lexical True is not a package at /tmp/JIB8bFDiMw line 1:␤------> multi foo(True⏏) {say "Yes"}; multi foo(False) {say "No␤␤A type must be provided at /tmp/JIB8bFDiMw line 1:␤------> multi foo(True[33…
benabik Ah, well, worth a shot. 19:25
masak o.O
LlamaRider Let me know if anyone wants to compare runtimes for t3
I feel very sad about my performance
masak benabik: that's a bug.
benabik nom: multi foo(True) {say "Yes"}; multi foo(False) {say "No"}; foo(False)
p6eval nom 38165a: OUTPUT«Yes␤»
benabik masak: Probably enum constant as multi arg is NYI or similar. 19:26
masak supposably.
[Coke] masak: but you said there's a limit on how many times I can submit! I want to wait until the last minute so I can submit ... more... wait. 19:32
I can compare runtimes for t1... ;) 19:33
aw, I can't use niecza, bother. perhaps I should handroll main. 19:34
er, MAIN
moritz you can often just add MAIN(|@*ARGS); at the end
dalek ecza: 1c4a771 | sorear++ | lib/ObjModel.cs:
Add missing Revalidate to fix NRE with subset ACCEPTS, colomon++
19:37
[Coke] moritz: if I'm less finicky about MAIN's args, that kind of works.
masak [Coke]: last year, no individual contestant exceeded 2 submissions per task. the upper limit is 10 :) 19:39
19:40 cognominal left
sorear good * #perl6 19:40
masak sorear! \o/
19:41 cognominal joined
[Coke] masak: you just want to read code, don't you. :P 19:42
LlamaRider [Coke]: t1 isn't that interesting for runtimes, I guess it's more fun to read good Perl6 there :) 19:43
19:43 zby_home_ joined
skids rakudo: class A { }; class A {...}; 19:43
p6eval rakudo 38165a: OUTPUT«===SORRY!===␤Illegal redeclaration of symbol A at line 1, near "{...};"␤»
skids
.oO(wherefor idempotence)
19:44
masak [Coke]: should Whatever be a singleton? no, if anything it should be uninstantiable. 19:46
jnthn masak: I think we need to distinguish Whatever (the type) and * (instance of Whatever) 19:47
19:49 kaleem left
[Coke] jnthn: in a way that is different from distinguishing between an Int (the type) and 3 ? 19:50
masak jnthn: oh, ok. example?
jnthn: or rather, what does * gain from being an instance of Whatever, rather than just Whatever itself? 19:51
jnthn masak: ~~ Whatever vs ~~ * comes to mind
masak hm.
are all occurrences of * in a program distinct instances? 19:52
jnthn Not sure.
I hope not!
:)
But it's possible. 19:53
(and if so, only because nobody optimized it yet)
masak perl6: my ($a, $b) = *, *; say $a === $b
p6eval pugs b927740: OUTPUT«1␤»
..rakudo 38165a, niecza v13-191-g4b71f28: OUTPUT«Bool::False␤»
masak Pugs++
pugs: Whatever 19:54
p6eval pugs b927740: OUTPUT«*** No such subroutine: "&Whatever"␤ at /tmp/j3xe4pLwuG line 1, column 1 - line 2, column 1␤»
masak :P
skids Hrm, neither is "class A {...}" explicitly specced to allow idempotent predeclarations in S12. 19:57
19:59 rindolf left
masak skids: I see where you're coming from here. maybe that should be allowed, yes. 20:02
dalek p/qbootstrap: 6357dde | jnthn++ | src/QRegex/Cursor.nqp:
Optimize match object construction a little.
20:03
p/qbootstrap: f2f8e54 | jnthn++ | src/NQPQ/Actions.pm:
Handle integer literals a bit less stupidly, which gives a ~15% improvement on !cursor_start, which is currently a hot path.
p/qbootstrap: 83b1889 | jnthn++ | src/QRegex/Cursor.nqp:
Cache the protoregex table, to save re-computing it every time. Can save quite a bit of time.
moritz does qbootstrap pass its tests for you, jnthn? 20:04
20:05 zjmarlow left 20:06 zjmarlow joined
tadzik you know when jnthn does party when you see '\d+%' in commit log 20:06
masak profiling party! \o/ 20:08
20:08 alvis joined
colomon \o/ 20:08
20:08 mj41 joined 20:09 GlitchMr joined 20:11 zjmarlow_ joined, zjmarlow left
masak .oO( In Soviet Russia, the Party profiles YOU! ) 20:12
20:12 fsergot left
benabik ow... 20:13
20:14 wolfman2000 left, zjmarlow joined 20:16 lichtkind left
jnthn moritz: No, qbootstrap didn't reach all passing yet 20:16
kshannon++ is getting there though ;)
20:17 zjmarlow_ left
[Coke] So, what's the general process here for update the bootstrap? 20:17
dalek kudo/staged-settings: 390b435 | moritz++ | / (3 files):
move Date ops to core2

fails during compilation of CORE with "rtype not set"
kudo/staged-settings: 664f46b | jnthn++ | src/core/control.pm:
Work around pir::... limitation.
kudo/staged-settings: ab92aff | jnthn++ | src/Perl6/ (2 files):
Fix for the 'Sub doesn't have an SC' issue - CORE and CORE2 both compile now.
kudo/staged-settings: 8e09ea9 | moritz++ | tools/build/Makefile.in:
move all temporal stuff to the second setting
moritz jnthn: oh, you found a mini^Whelper :-)
benabik … Is the NQPClassHOW cache on a per-class or per-object basis? 20:18
20:18 zjmarlow left, zjmarlow joined
moritz dearly hopes it's per class 20:18
jnthn Per class
(Since the cache is stored as an attribute in the meta-object) 20:19
Note that it's not shared by subclasses
moritz .OO( caching with class )
benabik Ah, the protoregex table is based on the methods of the class. Now I see how it hangs together. 20:20
(Thought it was odd to do class-level caching of the result of a method.)
20:20 donri left 20:21 bluescreen10 left
moritz in the staged-settings branch, compilation of the first setting now takes "only" about 1.45GB of virtual memory, as upposed to about 1.7GB in nom 20:21
20:22 carlin joined
[Coke] rakudo: my @multidim[0..3; 0..1] 20:22
p6eval rakudo 38165a: OUTPUT«===SORRY!===␤Shaped variable declarations are not yet implemented at line 1, near ""␤»
jnthn shop &
[Coke] rakudo: use Test; eval_lives_ok('my @multidim[0..3; 0..1]', "multidimension array"); 20:24
p6eval rakudo 38165a: OUTPUT«not ok 1 - multidimension array␤# Error: Shaped variable declarations are not yet implemented at line 1, near ""␤»
[Coke] rakudo: use Test; eval_lives_ok('my @multidim[0..3; 0..1]', "multidimension array"); ok(eval('@array11[2,0] = 12'), "push the value to a multidimension array");
p6eval rakudo 38165a: OUTPUT«not ok 1 - multidimension array␤# Error: Shaped variable declarations are not yet implemented at line 1, near ""␤===SORRY!===␤Variable @array11 is not predeclared at line 1, near "[2,0] = 12"␤» 20:25
sorear [Coke]: Can we help with anything?
[Coke] rakudo: use Test; my @array11 is shape(2,4); ok(eval('@array11[2,0] = 12'), "push the value to a multidimension array");
p6eval rakudo 38165a: OUTPUT«ok 1 - push the value to a multidimension array␤»
20:25 zjmarlow left 20:26 zjmarlow joined
[Coke] that pass seems dubious. 20:26
moritz rakudo: my @a is foo(3, 4);
p6eval rakudo 38165a: ( no output )
moritz indeed
20:26 LlamaRider left
moritz [Coke]: note that eval doesn't catch exceptions anymore; many tests still assume that 20:26
[Coke] shouldn't that test be for @array11[2;0], anyway? 20:28
masak yeah. 20:30
dalek ast: a5d2261 | coke++ | S02-types/ (4 files):
rakudo (auto)unfudge

also, relocate a badly placed pugs directive.
20:30 RobiX joined
dalek ast: 92071c8 | coke++ | S02-types/array.t:
use multdim syntax as (prolly) intended.
20:32
20:32 zjmarlow left
[Coke] no passes out of that, just a few skip->todos. 20:33
20:33 zjmarlow joined 20:34 xinming_ joined, xinming joined 20:36 bluescreen10 joined, fsergot joined 20:37 xinming_ left, xinming left, zjmarlow_ joined, zjmarlow left, birdwindupbird left 20:43 zjmarlow__ joined, zjmarlow_ left 20:45 skids left 20:47 zjmarlow_ joined, zjmarlow__ left 20:49 RobiX left 20:51 zjmarlow_ left, zjmarlow_ joined 20:56 Trashlord left 20:57 RobiX joined 20:58 zjmarlow joined, zjmarlow_ left
colomon niecza: subset Even of Int where { $_ %% 2 }; my $a = Even.new; say $a.perl 20:58
p6eval niecza v13-192-g1c4a771: OUTPUT«0␤»
tadzik niecza: subset Odd of Int where { $_ !% 2 }; my $a = Odd.new; say $a.perl 20:59
p6eval niecza v13-192-g1c4a771: OUTPUT«===SORRY!===␤␤Cannot negate % because multiplicative operators are not iffy enough at /tmp/F9TuV5fjgt line 1:␤------> subset Odd of Int where { $_ !%⏏ 2 }; my $a = Odd.new; say $a.perl␤␤Parse failed␤␤»
tadzik niecza: subset Odd of Int where { $_ !%% 2 }; my $a = Odd.new; say $a.perl
p6eval niecza v13-192-g1c4a771: OUTPUT«0␤»
tadzik odd
benabik "are not iffy enough"? 21:00
21:01 daxim left
tadzik hmm 21:01
masak tadzik: it's %%
tadzik perl6: subset Odd of Int where { $_ !%% 2 }; my $a = Odd.new; say $a ~~ Odd
p6eval pugs b927740: OUTPUT«*** ␤ Unexpected "!%%"␤ expecting operator or "}"␤ at /tmp/kjW4e2UpLh line 1, column 30␤»
..rakudo 38165a: OUTPUT«You cannot create an instance of this type␤ in method bless at src/gen/CORE.setting:568␤ in method new at src/gen/CORE.setting:555␤ in block <anon> at /tmp/NN2FVihZTe:1␤ in <anon> at /tmp/NN2FVihZTe:1␤»
..niecza v13-192-g1c4a771: OUTPUT«Bool::False␤»
masak tadzik, benabik: "iffy" means something like "returning a result which is at least boolean in nature, but maybe also deeper (such as a Match object)" 21:02
tadzik: oh, and instantiating subtypes makes no sense :)
21:03 zjmarlow left
masak likely it amounts to solving the halting problem. 21:03
21:03 zjmarlow joined
colomon masak: I was trying it because niecza let's you do it. 21:03
masak maybe it could instantiate it, if the base type's default belongs to the subtype.
but it should definitely protest if it doesn't. 21:04
benabik I suppose it should call the base class's .new and die if the result doesn't match the subset…
masak for a long time Rakudo didn't protest.
jnthn I'd rather we just say no :)
masak saying no is the conservative, 6.0.0 thing to do :)
colomon subset Person of Hash where { .keys.sort ~~ <firstname lastname> } 21:05
lives_ok { my Person $p = { :firstname<Alpha>, :lastname<Bravo> } },
'can create subset of hash with where';
does that test make any sense?
jnthn Looks OK to me at first glance 21:06
colomon what does .keys.sort ~~ <firstname lastname> mean?
masak colomon: that the keys should be that, in that order. 21:07
jnthn That the hash should have those two keys
colomon ah
masak recognizes that code as his own!
21:07 zjmarlow_ joined
masak I am an indirect author of some tests in the spectest suite, it seems :) 21:07
jnthn recognizes it from a ticket :) 21:08
21:09 zjmarlow__ joined, zjmarlow_ left
colomon niecza: subset Person of Hash where { .keys.sort ~~ <firstname lastname> }; my Person $p = { :firstname<Alpha>, :lastname<Bravo> }; 21:09
p6eval niecza v13-192-g1c4a771: OUTPUT«Potential difficulties:␤ $p is declared but not used at /tmp/MKPbS1T633 line 1:␤------> rt ~~ <firstname lastname> }; my Person ⏏$p = { :firstname<Alpha>, :lastname<Brav␤␤Unhandled exception: Nominal type check failed for scalar store;…
colomon niecza: my %h = :firstname<Alpha>, :lastname<Bravo>; say %h.keys.sort ~~ <firstname lastname> 21:10
p6eval niecza v13-192-g1c4a771: OUTPUT«Bool::False␤»
21:10 zjmarlow left
colomon bug in Parcel.ACCEPTS, maybe? 21:10
21:12 Trashlord joined, localhost joined
masak niecza: my %h = :firstname<Alpha>, :lastname<Bravo>; say %h.keys.sort.perl 21:12
p6eval niecza v13-192-g1c4a771: OUTPUT«("firstname", "lastname").list␤»
masak seems that way.
sounds like an opportunity for another spectest :)
21:13 zjmarlow joined, zjmarlow__ left
sorear I don't beleive niecza has a Parcel.ACCEPTS at all 21:14
ergo, it cannot be buggy :)
(Parcels have ACCEPTS inherited from Any)
colomon ah, but its lack can be a bug, no? :)
sorear o/ masak, colomon 21:15
colomon \o
[Coke] wonders where the next set of passing niecza spectests will come from. 21:16
masak .oO( Outer Space )
sorear What are the blockers for stealing Rakudo's Temporal implementation?
colomon it's long
colomon thought about stealing it last week....
sorear ah 21:17
sorear thinks long stuff should go in modules 21:18
21:18 GlitchMr left
sorear needs to come up with some way to present the illusion of Temporal-in-the-setting while actually not 21:18
what is the limit to what should appear in the setting? 21:20
TimToady clearly wants a large setting, "do not force the user to predeclare the obvious"
and I'm sure there's some way to magically make half of CPAN appear in CORE::
but is that really desirable?
masak we want to be everyone's reinvented wheel. 21:21
sorear masak: I think Easter might come early this year. :) 21:22
[Coke] Easter?
21:23 zjmarlow left
[Coke] (as opposed to Christmas?) 21:23
21:23 zjmarlow joined
sorear waits to see if masak remembers 21:24
masak dang it... I saw some reference to Easter the other day as well... :) 21:25
[Coke] also.
masak it's probably something I *should* remember. 21:26
jnthn also and was confused then :)
masak wait, don't say anything.
jnthn anything
oh, sorry
masak I'll search the IRC logs and then appear very smart for remembering :P
sorear masak: Dec 23
21:27 bluescreen10 left
[Coke] had just found that reference. 21:27
ashleydev what reference? 21:28
masak :D
wonderful.
irclog.perlgeek.de/perl6/2011-12-23#i_4869598
[Coke] niecza: say 18580-17965
p6eval niecza v13-192-g1c4a771: OUTPUT«615␤»
21:28 benabik_ joined
ashleydev early Easter is good! 21:29
[Coke] colomon, sorear: here's the highest # of tests of remaining unrun files:
gist.github.com/1591315
masak overtaking Rakudo is great and all, but I find I want more...
colomon niecza: subset Naht of Str where { /^[isnt|arent|amnot|aint]$/ }; say "amnot" ~~ Naht
p6eval niecza v13-192-g1c4a771: OUTPUT«Use of uninitialized value in string context␤ at /home/p6eval/niecza/lib/CORE.setting line 960 (warn @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 186 (Mu.Str @ 10) ␤ at <unknown> line 0 (ExitRunloop @ 0) ␤ at /home/p6eval/niecza/lib/CORE.settin… 21:30
masak I want good concurrency primitives. I want object hashes. I want macros. I want mutable grammars.
colomon oh wise ones: does that subset I just used look right?
masak oh, and *I want S09*! :) 21:31
clearly I need to write a blog post about all the great things we don't have yet.
colomon is planning a pi summary blog post talking about the awesome stuff we have now
masak colomon: I see nothing obviously wrong.
21:31 jupp left
colomon masak: what does it mean to have a closure which is just a regex? 21:31
21:32 benabik left
colomon niecza: say { /^[isnt|arent|amnot|aint]$/ }() 21:32
p6eval niecza v13-192-g1c4a771: OUTPUT«{ ... }␤»
colomon niecza: say { /^[isnt|arent|amnot|aint]$/ }("amnot")
p6eval niecza v13-192-g1c4a771: OUTPUT«{ ... }␤»
colomon niecza: say { /^[isnt|arent|amnot|aint]$/ }("amnot").perl
p6eval niecza v13-192-g1c4a771: OUTPUT«{ ... }␤»
colomon niecza: say { /^[isnt|arent|amnot|aint]$/ }("amnot").WHAT 21:33
p6eval niecza v13-192-g1c4a771: OUTPUT«Regex()␤»
21:33 benabik_ left
[Coke] niecza: say { /^[isnt|arent|amnot|aint]$/.ACCEPTS($^a) }("amnot"); 21:33
p6eval niecza v13-192-g1c4a771: OUTPUT«#<match from(0) to(5) text(amnot) pos([].list) named({}.hash)>␤»
dalek ast: 85deb42 | (Solomon Foster)++ | S02-types/subset.t:
Fudge for niecza.
21:35
21:36 molaf left
sorear colomon: It doesn't look quite right to me 21:38
colomon where { /^[isnt|arent|amnot|aint]$/ } you mean? 21:39
sorear colomon: That closure returns the regex, which means that the subset type check itself calls Regex.Bool, but the subset type check is happening in ClassHOW.does, where $_ isn't bound to anything useful
It could be made to work, but it'd be easier to change it to where /.../ or where { m/.../ }
colomon: Yes. 21:40
21:40 zjmarlow_ joined
colomon the code is from roast, and it doesn't work in either niecza or rakudo 21:40
sorear +1 to changing it, then 21:41
21:41 zjmarlow_ left
[Coke] +1 21:41
21:42 zjmarlow left
masak +1 21:42
oh, of course it should be /.../
didn't see that.
isn't that example from the spec?
colomon I dunno. 21:43
just deleted that test from my local copy.
but I'll take a minute or two before pushing it, just in case...
colomon is making noms and spectesting.... 21:44
dalek ecza: 22d2c18 | (Solomon Foster)++ | lib/CORE.setting:
Fix Num.gist so it doesn't add unnecessary "e0"s.
21:46
ecza: f409a86 | (Solomon Foster)++ | t/spectest.data:
Turn on S02-types/subset.t.
21:46 snearch joined 21:51 spine left
dalek ast: 8d08f6f | (Solomon Foster)++ | S02-types/subset.t:
Remove where { /^[isnt|arent|amnot|aint]$/ } test because no one quite knows how it should work.
21:54
21:56 skids joined 21:58 benabik joined 21:59 JustMe04_ joined
masak good night, #perl6. dream of Easter coming early this year. 22:03
22:05 mj41 left
felher o/ masak 22:07
22:07 kaare_ left, kaare_ joined 22:08 donri joined 22:16 zjmarlow_ joined 22:20 kaare_ left, kaare_ joined 22:23 zjmarlow__ joined, zjmarlow_ left, Lothar joined 22:26 zjmarlow_ joined, zjmarlow__ left 22:28 snearch left 22:32 RobiX left
dalek ast: 7e50122 | (Solomon Foster)++ | S12-subset/subtypes.t:
Add a couple sensible tests. Fudge for niecza.
22:37
22:37 zjmarlow_ left 22:38 kaare_ left 22:43 RobiX joined, thou left 22:44 fsergot left, jupp joined 22:45 panterax_ joined 22:47 bkolera left, leprevost_ joined, hundskatt left 22:48 panterax left 22:49 leprevost left
skids ponders bottom of S13. 22:53
22:54 hundskatt joined 22:55 LlamaRider joined
skids If you have both Fish.(Terrier $t) and Terrier.Fish(), what about situations like as/of return type or coercive types like sub foo (Fish(Terrier) $t). Which gets called? Still TBD? 22:56
sorear no clue. 22:57
22:58 RobiX left 22:59 nornagest left
dalek ecza: 392be60 | (Solomon Foster)++ | t/spectest.data:
Turn on S12-subset/subtypes.t.
23:09
23:12 alester left
colomon !tim 23:18
23:18 PacoAir left
dalek ecza: 08f8069 | (Solomon Foster)++ | t/spectest.data:
Turn on S12-subset/multi-dispatch.t.
23:20
colomon So, Test::Util (in roast) calls 'shell'. Is shell even spec'd for p6? is there some reasonable way we can make this work on niecza? 23:27
afk # bedtime for H 23:28
23:29 jupp1 joined, jupp left 23:31 Chillance left 23:32 icwiener left 23:33 jupp joined, jupp1 left
[Coke] grok shell 23:33
23:34 jupp1 joined, jupp left
[Coke] looks like it's in S29 23:34
23:39 wolfman2000 joined
sorear shell is easy. 23:44
on Unix at least
as far as I can tell, there is literally no way to make &run work on Niecza without custom C code
23:49 tokuhirom joined 23:57 donri left 23:58 bluescreen10 joined