»ö« 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 _jaldhar joined, _jaldhar left
cotto_work How much of spectest_regression should be expected to pass on master? 00:10
00:13 thou left 00:15 daemon left 00:18 colomon left 00:27 mkramer joined 00:30 spq1 joined, spq left, mkramer1 left 00:31 _jaldhar joined, _jaldhar left, huf left, bbkr_ left, bbkr_ joined 00:32 huf joined 00:35 ruoso joined, _jaldhar joined, _jaldhar left
dalek ecza: 7655770 | sorear++ | lib/ (5 files):
Call frames track the sub used to enter them
00:36
ecza: 87a0e66 | sorear++ | src/niecza:
Implement &?BLOCK, &?ROUTINE, $?LINE, $?POSITION
00:43 colomon joined
colomon sorear: just realized you added Numeric and Real since the last time I looked at the source. :) 00:44
dalek ecza: 73294a2 | sorear++ | / (2 files):
Allow direct use of $?FILE
00:55
00:58 _jaldhar joined, _jaldhar left 01:01 noganex_ joined 01:03 _jaldhar joined, _jaldhar left 01:04 daemon joined, noganex left 01:08 _jaldhar joined, _jaldhar left 01:09 yinyin joined
colomon sorear++ # FatRat constructor 01:17
01:18 _jaldhar joined, _jaldhar left 01:21 daemon left 01:24 Chillance left, _jaldhar joined 01:25 _jaldhar left, _jaldhar joined 01:26 _jaldhar left 01:33 _jaldhar joined, _jaldhar left
colomon hmmm.... how to get around the absence of lazy lists? 01:35
sorear what.
colomon are they actually there? 01:36
sorear they used to be. broken?
colomon nah, I probably tested for them in a stupid fashion. let me see if I can whip up something quickly. 01:37
sorear did it involve map or grep?
colomon might have
01:37 _jaldhar joined, _jaldhar left
colomon ah, yup, a simple gather / take test works fine 01:38
01:39 silent_h_ joined
sorear niecza: .say for (map * ^ 2, 0..*)[^10] 01:39
p6eval niecza v6-29-g73294a2: OUTPUT«Unhandled exception: Junctions NYI␤ at /home/p6eval/niecza/lib/CORE.setting line 507 (CORE die @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1374 (CORE infix:<^> @ 2) ␤ at /tmp/tZFUuzy9lf line 1 (MAIN C1_ANON @ 1) ␤ at line 0 (KERNEL map @ 2) ␤ at
../home/p6eval/niecza/li…
sorear niecza: .say for (map * ** 2, 0..*)[^10]
p6eval niecza v6-29-g73294a2: OUTPUT«0␤1␤4␤9␤16␤25␤36␤49␤64␤81␤»
sorear but. 01:40
colomon beauty, eh?
sorear niecza: (map &say, 0..*)[^10]
hmm
p6eval niecza v6-29-g73294a2: OUTPUT«(timeout)»
sorear odd
colomon maybe that was what I saw, something involving infinite ranges. 01:41
sorear actually that was a bad test 01:44
&say has infinite .count because it's slurpy
niecza: (map *.&say, 0..*)[^10]
p6eval niecza v6-29-g73294a2: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
sorear niecza: (map *.&say, 0..30)[^10]
p6eval niecza v6-29-g73294a2: OUTPUT«0␤1␤2␤3␤4␤5␤6␤7␤8␤9␤»
sorear niecza: my @arr = 0..30; (map *.&say, @arr)[^10] 01:45
p6eval niecza v6-29-g73294a2: OUTPUT«0␤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␤»
sorear niecza's map-like functions will process a list eagerly if it contains no iterators
colomon ah, drat, no sub-signatures? 01:46
01:48 ymasory left, ymasory joined 01:50 woosley joined 01:51 ymasory left
sorear colomon: what are sub-signatures good for and how do they work? 01:51
sorear doesn't understand them
colomon I don't understand them fully, but at TimToady's suggestion I was using them for Haskellian pattern-matching. 01:52
give me a moment...
sorear: end of this blog post: justrakudoit.wordpress.com/2011/04/26/more-pi/ 01:53
it's not a show-stopper, I've just reverted to the earlier version 01:54
01:54 envi_laptop joined, ymasory joined, ymasory left
colomon (The endless pi project halted because I needed FatRat to make it work. Now I'm seeing if I can get it going again.) 01:54
02:02 silug left, silug joined
colomon hmmm... need floor 02:03
I think I can probably figure out how to do that...
02:04 daemon joined
colomon oh, can just write it as a normal sub, I think. 02:04
02:04 LordBrain joined 02:05 silent_h_ left, _jaldhar joined, _jaldhar left
colomon niecza: say 10 div 2 02:07
p6eval niecza v6-29-g73294a2: OUTPUT«5␤»
LordBrain hmm my xchat font doesnt know that character 02:08
colomon after the 5? that's a unicode newline symbol 02:09
LordBrain 2424
yeah
colomon sorear: bless doesn't work?
LordBrain well, say i want to actually code in perl6 right now, which implementation should i use? 02:10
02:10 _jaldhar joined, _jaldhar left
colomon LordBrain: Rakudo is by far the most complete. 02:10
LordBrain ok, that's the one i downloaded
colomon LordBrain: Niecza is coming along nicely (I'm experimenting with it at the moment) and for what it can do, is typically faster. sometimes a lot faster. 02:11
niecza: class A { has $.a; }; say A.new(a => 10).perl 02:12
p6eval niecza v6-29-g73294a2: OUTPUT«A.new(...)␤»
colomon niecza: class A { has $.a; }; say A.new(a => 10).a 02:13
p6eval niecza v6-29-g73294a2: OUTPUT«10␤»
colomon niecza: class A { has $.a; method new($a) { self.bless(*, :$a); }; }; say A.new(10).a 02:14
p6eval niecza v6-29-g73294a2: OUTPUT«Unhandled exception: Unable to resolve method bless in class A␤ at /tmp/ZpbY4lOsGO line 1 (MAIN A.new @ 3) ␤ at /tmp/ZpbY4lOsGO line 1 (MAIN mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1513 (CORE C683_ANON @ 2) ␤ at
../home/p6eval/niecza/lib/CORE.setting line 151…
LordBrain since perl6 has a compatibility mode, i guess any implementation basically has to include perl5 as part of it...
colomon LordBrain: as far as know, no current perl6 actually has the perl5 compatibility mode 02:20
LordBrain ah
that's an interesting fact
colomon I missed an "I" in there, but you figured it out, I'm sure.
LordBrain one could implement it using the actual perl5 implementation i suppose... make it a dependency heh.. 02:22
colomon I don't think anyone's figured out a way to do it other than include an entire perl5 executable in with perl 6... yeah, that.
LordBrain perhaps in practice it wont ever really be implemented 02:24
strictly speaking... probably backward compatibility doesn't necessarily mean being able to run any perl5 program without modification... 02:25
perhaps a good approach is to build a translator to translate perl5 to perl6, and then use it on the fly 02:26
in practice, probably people will prefer to keep perl5 around ... i dont know.. 02:27
02:27 Eevee left
colomon I think it's quite likely perl5 has at least another decade in it, regardless of what perl6 does. 02:29
LordBrain perl6 sounds awesome tho. I love haskell, and whenever i hear of new languages being hyped, I always look for good lazy list support from the ground up... 02:31
and almost none have it
that seems like a feature to have in mind while building a language implementation, so that it can be really efficiently optimized and such. Most languages seem to have it as an after thought and then not well optimized. 02:33
02:33 Eevee joined
LordBrain not that i am super knowledgeable on this, but that is my impression. 02:33
colomon sorear: endless pi program seems to be functional in niecza! 02:36
sorear: I'll try to blog about it tomorrow.
02:36 silug left 02:40 DarthGandalf left 02:44 DarthGandalf joined 02:49 [particle] left 02:50 [particle] joined
colomon LordBrain: I think we're still trying to figure out the best ways to optimize lazy lists in p6. But they're definitely an important part of the overall scheme of things. 02:55
Actually, the program I've been working on tonight is a port of a Haskell script that relies on them. :)
sorear "LordBrain" sounds familiar 02:57
LordBrain so does "sorear" 02:59
but that could be power of suggestion at work
sorear 2007, #haskell
LordBrain yes likely
i didn't realize i made such an impression 03:00
colomon sorear: can generate 100 digits of pi in 5.821 seconds using regular mono and a not terribly efficient pi-generating script. :)
afk # bed
sorear LordBrain: my memory is _weird_
I got the dates and places from log grepping 03:01
LordBrain probably all memories are unique
TimToady my memories are lazy...
LordBrain oh that's cheating then
lol
i love haskell, but i havent done much noteworthy with it.. I contributed to yi.. that's about it. 03:02
and that was years ago 03:03
sorear I contributed to yi years ago too 03:06
03:07 DarthGandalf left
sorear TimToady: hi 03:08
TimToady: do you have any comment on the Sts() thing? I wonder if I should start filing bugs against "specs" for things I want clarified
TimToady well, you can, or you can just fix the specs, forgiveness and all that... :) 03:09
sorear heh.
TimToady I'll continue to be rather busy, currently help tchrist with a redo of the Camel... 03:10
sorear that tends to work best if the problem is obvious
TimToady *helping
sorear wasn't there some handwave about Sxx being the new Camel?
TimToady this is for 5.14 03:11
and whatever TheDamian and I do for p6 is likely not to have a Camel on it
maybe a Sopwith Camel... 03:12
which is kinda like a butterfly...
03:15 _jaldhar joined, _jaldhar left 03:16 alester joined
pmichaud sorear: I've been thinking that we could either file issues against specs in github, or use rt, or send messages to p6c, or .... 03:17
03:18 nymacro joined 03:19 DarthGandalf joined 03:21 tokuhirom left, tokuhirom joined
pmichaud (same for any issues with roast -- we could file github issues, messages to p6c, rt tickets, etc. Whatever works best.) 03:23
03:24 Su-Shee_ joined, _jaldhar joined, _jaldhar left, Su-Shee left
sorear pmichaud: ok 03:25
pmichaud and $forgiveness > $permission always holds here, as well. :)
03:25 tokuhirom left, _jaldhar joined, _jaldhar left
pmichaud anyway, anywhere you choose to discuss/file tickets, I'll hang out and contribute my thoughts as appropriate 03:26
03:26 tokuhirom joined
LordBrain what are the spectests? are those provided as part of the specification? 03:28
pmichaud TimToady: if you get a chance to comment on irclog.perlgeek.de/perl6/2011-05-29#i_3820864 that would be very welcome.
LordBrain: they're the official encoding of the specification 03:29
See the second paragraph of "Project Plan" in Synopsis 1. 03:30
"This document does not attempt to summarize all these subprojects--see perl6.org for such information. What we can say here is that, unlike how it was with Perl 5, none of these projects is designed to be the Official Perl. Perl 6 is anything that passes the official test suite. ...
03:31 tokuhirom left
LordBrain cool 03:31
i'm actually running the test suite... it's forever
03:31 tokuhirom joined
pmichaud yes, it can take a long time depending on your machine's capabilities. 03:32
on the machine I had a couple of months ago, it would regularly take around 30 mins.
(my new machine does it in less than 4.5 minutes)
TimToady I don't think we can use a Whatever value as a sentinal/marker; the * is recognized at compile time and is translated into some attribute 03:37
so 1,2,3,* doesn't have a literal Whatever at the end 03:38
as for the 'last if' case inside ...*, I think that's just bogusly marked as infinite 03:39
03:40 mtk left
TimToady pmichaud: ^^^ 03:40
pmichaud TimToady: loking 03:45
*looking
S02 has: 1,* # means 1,* :) 03:46
would that get recognized at compile time to mean something else? 03:47
TimToady that'd really be 1 xx * I think
sorear wait, wait, what?
pmichaud S02 has:
'a' xx * # means 'a' xx Inf
1,* # means 1,* :)
which seems to imply they're different. 03:48
03:49 mtk joined
TimToady but there's also S03:4310 03:49
sorear rakudo: say 1 === 1e0
pmichaud right
p6eval rakudo 048573: OUTPUT«Bool::False␤» 03:50
pmichaud that's true for dwimmy hyperoperators -- is it true for all cases of ,* ?
TimToady which I take to mean that if an infinite list runs out of values, it replciates
sorear this seems to contradict S03:3298
pmichaud finite list.
infinite lists presumably don't run out of values :-)
sorear: S03:3298? 03:51
(in my S03, S03:3298 is talking about eq and ==
TimToady I think the S02 thing was intended to indicate the , doesn't treat * as a curry-the-other-args
pmichaud but is it no longer a parcel with two items? 03:52
TimToady you can always pass ,Whatever to get that
pmichaud we're saying that ,* is a flag meaning "this parcel is conceptually infinite" 03:53
TimToady so we could say that any syntactic list ending with ,* is intended to replicate the final arg
pmichaud but not actually an element in the parcel
TimToady that's how I'm leaning
pmichaud I'm not sure I like the "any syntactic list" part
@abc[1,2,3,5,*]
I don't think we really mean "repeat the last subscript" here.
TimToady what does it mean? 03:54
pmichaud I'd prefer it to mean "autotrim at the first non-existent element"
e.g., if I have @a[foo(),*]
then I can slice @a and autotrim at the first element of foo() that goes beyond the end of the array
that seems more consistent and useful than "repeat the last element infinitely", at least in this case
I agree that repeat the last element makes more sense in the hyperoperator case 03:55
similarly, if I'm creating an infinite sequence, the ",*" is meaning "make the sequence look infinite" and not "repeat the last element forever"
TimToady well, maybe ,* is only a "mark infinite" flag, and we need something else to replicate the final element
pmichaud that's my preference at this point.
TimToady not sure ** is available though 03:56
pmichaud it certainly feels like we want some sort of orthogonal capability there.
maybe some variation of xx ?
TimToady some variant of ... more likely
03:57 hudnix left
TimToady 1,2,3,4,5, {$_} ... * 03:57
pmichaud yeah, that works
as does @foo(), {$_} ... *
sorry, @foo
or foo()
TimToady given how of this isn't wanted, that might be huffmanly short enough 03:58
the default hyperdwim of repeating the whole thing is more likely what people want
pmichaud so, to recap: ,* marks a parcel as having "infinite" or "whateverish" ness
TimToady or they want an explicit 42 xx *
in addition to xx*, ...* 03:59
pmichaud for the hyperdwim it might be possible that an infinite parcel on the right means repeat the last element
so then @array, * still has the repeat-the-last-element meaning in that case
TimToady seems a bit special-casey 04:00
pmichaud agreed
and not really consistent with "whatever" anyway.
TimToady having just read through all the perldeltas of recent years, I'm rather oversensitive to special cases at the moment... 04:01
pmichaud perhaps could be a method on lists, though
@array.repeatlast
(huffmanize as appropriate)
TimToady sure
pmichaud okay, this works for me, I think. 04:02
04:02 _jaldhar joined
TimToady possibly a final () could force finite 04:02
04:02 _jaldhar left
TimToady foo() ... *, (); 04:02
pmichaud we should have autotrim behavior in rakudo subscripts shortly.
TimToady \ö/ 04:03
pmichaud I had pretty much everything else working except for those final *'s appearing
another question, how smart should ... be? 04:04
i.e., given
1,3,5 ... $a
... *could* be smart enough to figure out that since this is an arithmetic sequence, that it will terminate if $a is odd and therefore be treated as finite 04:05
TimToady I think it should be treated as finite in any case, since that's not a *
(syntactically)
pmichaud okay 04:06
wfm
I have three levels of "finitness" defined atm -- "known infinite", "known finite", and "Mu"
04:06 _jaldhar joined, _jaldhar left
TimToady we're not going to get all the corner cases anyway, so something simple but overridable is the ticket, I think 04:07
pmichaud works for me
TimToady I will, of course, change my mind again later... :P
pmichaud in the above case... it's treated as "not known infinite" (which isn't necessarily the same as "known finite")
now that ,* is resolved we'll be able to try out some examples in code and see what happens. 04:08
TimToady maybe we can just say a not-known list is free to calculate the first <mumble> elements and then go all lazy 04:09
pmichaud (well, ,* is provisionally resolved until I find something else that doesn't work with it :-)
I think we say something like that already.
TimToady I also note that ,* means something else in an lvalue
pmichaud yes, it does 04:10
that's no problem either -- it actually fits more consistently with the meaning of ,* in the rvalue sense
i.e., it means "ignore leftover elements" iirc
sorear pmichaud: once you finish figuring out what this ,* stuff is all about I'd like the condensed version :)
ITYM lvalue
TimToady and, in fact, any lazy lists is free to batch up values, at least until it runs into some kind of recursive dependency
pmichaud sorear: sure thing, no problem. it'll actually be pretty obvious from the code 04:11
04:11 satyavvd joined, _jaldhar joined, _jaldhar left
pmichaud as a temporary cheat I may go ahead and have rakudo parcels store the final * to indicate "infinite". 04:13
In the nom branch we're re-working Parcels anyway, so it won't be necessary.
(When a Parcel stores the final *, it won't produce it in a Capture/List, which is the cheat part of this)
but, ultimately it will be syntactic 04:14
TimToady++ # thanks for fast reponses on this one
04:16 kst left 04:17 kst joined 04:19 tokuhirom left, tokuhirom joined 04:22 envi_laptop left 04:35 alester left
sorear huh. I never noticed the bit about Einstein index sum notation in S09 before 04:45
rakudo: Junction.^methods(:local).Str.say 04:49
p6eval rakudo 048573: OUTPUT«new item perl Bool ACCEPTS eigenstates Str postcircumfix:<( )>␤»
sorear rakudo: Junction.^parents.Str.say 04:50
p6eval rakudo 048573: OUTPUT«Mu()␤»
04:50 ymasory joined 04:54 silug joined 04:55 ymasory left 04:57 birdwindupbird joined
szabgab hi 05:12
anyone might know why moritz did not upload the new .exe of Rakudo?
the one I built earlier was missing a file 05:14
05:16 wamba joined 05:18 LordBrain left
sorear szabgab: moritz tried, but github wasn't working that day and didn't take the upload 05:19
szabgab: all part of my evil scheme to take over the world, of coutse 05:20
05:23 kaare__ joined 05:24 silug left 05:32 LordBrain joined
szabgab sorear: then maybe you could do it? 05:37
right now if someone downloads the .exe and does not have Strawberry installed will get a missing .dll error
sorear I haven't built Rakudo in almost a year 05:38
dalek ecza: 63d2925 | sorear++ | src/ (2 files):
inlined blocks should handle leave
05:42
ecza: fede716 | sorear++ | / (3 files):
Add Junction type, constructors, .perl
sorear tries sleep
05:43 mberends joined
mberends \o/ I haz a round tuit for making tests for zavolaj 05:45
06:07 kst left, kst joined 06:09 koban` joined
mberends oops, two of the 16 new zavolaj tests pass on i386 and fail on amd64 (linux) 06:13
tadzik mberends: good morning!
mberends hi tadzik! I hope you are preparing for your exams! 06:14
heh, the 2 test failures were the 'bomblets' that unenexpectedly 06:16
tadzik yeah, the little exams so far. Once every day, except for friday, when I get two :)
mberends unexpectedly passed on i386 06:17
tadzik and a Java project little deadline
mberends ah, Java. Hmm, time for a cuppa coffee :)
06:17 kaare__ left
tadzik yeah, my BattleShip game is almost ready :) 06:18
mberends :)
sorear hello mberends 06:21
mberends hi sorear. I managed to write a bigint +, - and *, but / is still eluding me :) 06:22
I looked at the subquadratic algorithms and decided noooooo... 06:23
ok, zavolaj test passes raised from 1 to 17 on Linux i386 and amd64 :) 06:26
but Zavolaj (or Parrot) also fails 9 other tests mainly due to not properly handling certain data types as parameters or return values. C double is ok, C float is not. :( 06:29
tadzik is Num double or float or what? 06:31
mberends double, but there does not seem to be any coercion to/from double in Parrot. 06:32
06:34 daniel-s joined
mberends ah, I have just thought of a test for that theory: the C ilogbf(float) function 06:34
06:36 daniel-s left
tadzik travels to the Uni 06:36
mberends Parrot++, another Zavolaj test passes. C float parameters go in ok, only the return values are scrambled (eg got: '-0' expected: 42) 06:41
nah, float fail after all: is ilogbf(7.9),2; got: '-76', expected: '2' :( 06:47
06:53 jfried joined 06:57 amkrankruleuen left 07:02 amkrankruleuen joined 07:03 pamera joined 07:08 amkrankruleuen left 07:12 bpalmer joined 07:13 woosley left 07:14 amkrankruleuen joined 07:27 mj41 joined 07:30 envi_laptop joined 07:37 silug joined 07:38 wamba left 07:39 Tedd1 joined, tadam joined 07:48 molaf joined 07:50 tadam left 07:51 tadam joined 08:06 tewk left, tewk joined 08:09 BaggioKwok joined 08:10 BaggioKwok left 08:12 hanekomu joined 08:18 Su-Shee_ is now known as Su-Shee 08:20 Axius joined 08:21 dakkar joined 08:22 Axius left 08:26 jfried left
dalek ecza: 69b8427 | sorear++ | / (3 files):
Implement autothreading of +
08:28
08:29 Mowah joined 08:33 yegor joined
dalek ecza: ba7c5c3 | sorear++ | / (2 files):
Fix .perl of nested junctions
08:34
08:35 donri joined
sorear wow, (0|1)+1 is only 12 times slower than 1+1 08:36
mathw what about (0|1|2)+1? 08:38
sorear I'll get back to you on that
I just deleted all my compiled libraries to test a change to recursive compilation ;) 08:39
dalek ecza: bcadf31 | sorear++ | src/NieczaCompiler.pm6:
Dis-count recursive compilation time towards parse time
08:42
08:43 yegor left
sorear this time, 1+1 is .419 us, (0|1)+1 is 4.50us, (0|1|2)+1 is 5.18us 08:45
mathw:
mberends sorear: may we assume you are running all those threads sequentially in 1 CPU core? 08:47
sorear mberends: very funny 08:48
mathw nice 08:49
08:50 LordBrain left 09:09 envi_laptop left, agentzh joined 09:21 woosley joined 09:24 Trashlord joined, bpalmer left
dalek ecza: 26af360 | sorear++ | / (2 files):
Make the rest of the inlined math ops autothread
09:32
ecza: a1db38b | sorear++ | lib/Builtins.cs:
All inline-call builtins now junction-aware
sorear I am starting to think I should be generating code for the binder subs on these
09:38 amkrankruleuen left 09:39 amkrankruleuen joined 09:43 tadam left 09:45 wamba joined 09:46 yinyin left 09:49 Mowah_ joined 09:51 woosley left 09:53 yinyin joined 10:02 wamba left
jnthn o/ 10:04
10:04 silug left
moritz \o 10:04
10:05 silug joined 10:06 wamba joined
szabgab moritz: hi 10:07
I see the exe has not been uploaded to github 10:08
10:08 _jaldhar joined, _jaldhar left
moritz hugme: add szabgab to star 10:10
hugme hugs szabgab. Welcome to star!
moritz szabgab: sorry, interenet connection was unreliable last night 10:11
10:22 MayDaniel joined
szabgab moritz: no problem and thanks for the hug 10:35
I'll try to push it now
10:36 bacek joined
szabgab oh it is not in the repository so I don't use 'git' to push it 10:38
dalek kudo/nom: e99be78 | jnthn++ | src/ops/perl6.ops:
Add a missing #include...not sure how we got away with that.
szabgab is there a command line tool to upload files to the 'download' directory or only the browser based?
flussence github has a "hub" wrapper around git, that might do it 10:39
mberends I thought the git: prefix meant using ssh at a lower level, so scp might work 10:42
or sftp
flussence I'm pretty sure github uses a locked down ssh that runs git-shell on the other end, but you could try... 10:43
szabgab moritz: file uploaded with new name 10:45
shall I delete the old one ?
10:45 silug left
szabgab the one that is missing a file 10:45
10:46 silug joined 10:48 MayDaniel left
moritz yes 10:56
10:59 masak joined
masak greetings, zebras. 10:59
mberends o/ masak 11:02
jnthn masak! \o/ 11:04
11:04 silug left 11:06 silug joined 11:07 amkrankruleuen left
masak mberends! jnthn! \o/ 11:07
11:08 amkrankruleuen joined
masak I really like the lazy attributes of Moose. do we have something similar in Perl 6? 11:08
more specifically, if I want to say "don't initialize this attribute until it's acceessed for the first time; and when it is, initialize it by calling this submethod and sticking the result in the attribute", which can still be readonly and it still works. \o/ 11:10
11:10 f00li5h left
flussence you mean something like (hypothetical) "has $.dbh is lazy({ ... })"? :) 11:13
mberends masak: sounds like a write-once cache. It may look syntactically different, but how about implementing it as a method with a state variable inside?
masak mberends: that's not a bad idea; thanks! 11:15
as far as I can see, that'd be equivalent.
method my_lazy_attr { state $ = self._init_my_lazy_attr() } 11:16
std: sub foo {}; state $ = foo(); 11:17
p6eval std 4b1b100: OUTPUT«ok 00:01 115m␤»
mberends perhaps //= instead of = for once-only assignment
masak ah; troo. 11:18
method my_lazy_attr { state $ //= self._init_my_lazy_attr() }
flussence
.oO(that looks much nicer than when I tried doing it in php a long time ago...)
11:19
masak mberends: waitwait, doesn't the initialization of 'state' vars happen at START time, that is "at first ever execution", so that it doesn't really matter whether we do = or //= ? 11:20
flussence rakudo: sub x { state $ = warn 'hi!'; }; x; x; 11:21
p6eval rakudo 048573: OUTPUT«===SORRY!===␤"state" not yet implemented at line 22, near "= warn 'hi"␤»
flussence :/
niecza: sub x { state $ = warn 'hi!'; }; x; x; # c'mon...
p6eval niecza v6-36-ga1db38b: OUTPUT«===SORRY!===␤␤Non-simple variables NYI at /tmp/PLokQUXtVs line 1:␤------> sub x { state $⏏ = warn 'hi!'; }; x; x; # c'mon...␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2)
..␤ at /home/p…
szabgab moritz: I have a readme file and a configuration file for the Windows exe builiding of R* should I just create a directory called win32 in the root directory of star? and put the files there?
flussence :(
niecza: sub x { state $bloop = warn 'hi!'; }; x; x; # c'mon...
p6eval niecza v6-36-ga1db38b: OUTPUT«hi!␤»
flussence there's your answer 11:22
11:22 amkrankruleuen left
flussence niecza++ 11:22
masak indeed. 11:23
11:23 amkrankruleuen joined
flussence
.oO(or should that be ±, for not knowing "$"?)
11:23
11:28 silug left, mtk left
mberends masak: afaiu, state is like C static, and can normally be re-assigned during every method execution. 11:32
11:33 amkrankruleuen left 11:34 amkrankruleuen joined
masak mberends: S03:4828 11:35
11:36 mtk joined
mberends ah, I was in S04 11:36
masak: would START make the proposed method non-lazy? 11:39
11:41 agentzh left
mberends masak: then a lazy way would be a private attribute and still //= in a method 11:42
11:42 satyavvd left
jnthn std: class Foo { has $!x = START blah() }; sub blah() { } 11:43
p6eval std 4b1b100: OUTPUT«ok 00:01 118m␤»
jnthn I wonder if that works.
I think the START phaser remembers the value.
masak jnthn: that'd be even nicer. with 'has $.x', it'd be like having an accessor method. 11:45
jnthn masak: Oh, I fear it'd still be too early though
masak: e.g. it'd only run once ever but not be delayed. d'oh.
masak oh, ok.
well, the method is fine. 11:46
11:50 pernatiy joined 11:52 jaldhar joined, jaldhar left 11:54 jaldhar joined, jaldhar left 11:56 Chillance joined 11:58 jaldhar joined 11:59 jaldhar left
pmichaud good morning, #perl6 11:59
masak morning, pmichaud 12:00
mberends hello pmichaud
frettled Good a.m.! 12:01
masak std: quote qX
p6eval std 4b1b100: OUTPUT«===SORRY!===␤Undeclared routines:␤ 'qX' used at line 1␤ 'quote' used at line 1␤Check failed␤FAILED 00:01 112m␤»
masak TimToady: S03:4940 says 'quote' is a declarator. is it? 12:02
jnthn o/ pmichaud
mberends pmichaud: for your copious free time, there are some failing test cases pushed (together with your patch) in zavolaj.
more tests are en route 12:03
12:04 jaldhar joined 12:05 jaldhar left 12:06 kaare__ joined
dalek kudo/nom: 7316a1e | jnthn++ | .gitignore:
Update .gitignore.
12:06
kudo/nom: 245c622 | jnthn++ | src/Perl6/SymbolTable.pm:
Creation of container descriptors, plus enable us to associate a parameter with one also.
kudo/nom: 6ab6b89 | jnthn++ | src/ (2 files):
Add container_descriptor slot to Parameter.
kudo/nom: 75fd418 | jnthn++ | src/ (7 files):
Start switching us over to the new container model. This gets the binder starting to use it, and updates a couple of places that used the old descalarref/deobjectref ops. Not quite right everywhere yet, but seems to work. Also toss the ops related to the old model.
masak New Container Model! 12:12
ncm! 12:13
pmichaud the new one is going to be pretty nice :-)
(jnthn and I worked out a lot of details yesterday)
jnthn pmichaud: You'll like the next push :) 12:14
pmichaud yes, the last push leaves me wanting more :)
jnthn pmichaud: There's bits in the binder that'll need twiddling once we have array and hash. 12:15
pmichaud jnthn: yes, of course 12:16
jnthn I've XXX'd 'em. :) 12:17
dalek kudo/nom: 6d959f5 | jnthn++ | src/ (2 files):
Remove leftover mentions of the old container types from ops and binder.
kudo/nom: 0354aaf | jnthn++ | / (5 files):
Toss 3 PMCs and a build tool related to the old container model.
jnthn pmichaud: I'm slightly bothered by the fact that I wrote the new container stuff, switched the binder over to it, and it worked first time...feels like I musta done something wrong somewhere. :) 12:18
Maybe the coffee was just strong enough today :)
12:19 woosley joined
takadonet morning all 12:19
jnthn We're now down to just 2 dynpmcs in nom. :)
o/ takadonet
takadonet looks like the nom branch is getting lots of love lately :)
12:20 Garda joined
tadzik hello #perl6 12:20
jnthn takadonet: Yes. My tuit supply is doing very well. :)
And pmichaud++ is digging in to it also :)
takadonet is the nom branch buildable for non developer yet? 12:21
jnthn pmichaud: My plan from here: go and twiddle with the NQP ops to make them container aware. Then put scalar variables back and look at binding and assignment stuff.
takadonet: Buildable, probably. Interesting? Not yet.
pmichaud jnthn: that's the plan to follow :-)
takadonet jnthn: well I might just build it on and off again on my desktop 12:22
pmichaud my tuit supply for the day is uncertain
masak hi tadzik
12:23 bluescreen10 joined
tadzik after a "horrifying" exam 12:24
masak why the quotes?
tadzik everyone is so horrified that I'm afraid I may have done something wrong. I had no problems at all, finished in half time. Everyone is angry about the lack of time and depressed about what have they done 12:25
That makes me feel that I don't know that I was wrong :)
now only a Java project, 2 exams tomorrow and then weekend: I'll have time to write the intel assembly project :) 12:26
12:29 JimmyZ joined 12:30 kaare__ left
JimmyZ couldn't build nom, Cannot fetch object from non-existant serialization context 12:32
12:33 wknight8111 joined
jnthn JimmyZ: Means you have outdated PBCs around. 12:33
pmichaud I think I'll use whatever tuits I have for today on (a) nom build system and (b) zavolaj
jnthn JimmyZ: If you have a Perl6 directory, nuke it.
(note: not src/Perl6; you need that one ;)) 12:34
pmichaud: +1
pmichaud also, what's the prevailing opinion on "perl6" -> "rakudo" in nom?
masak rakudo: sub foo { next; say "OH NOES!" }; for 1..10 { .say; foo; say "OH NOES II!" }
p6eval rakudo 048573: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤»
JimmyZ jnthn: thanks, works now 12:35
jnthn pmichaud: I don't really see the point. People are used to typing "perl6"
pmichaud: We could do it as both.
masak buubot_backup: eval: sub foo { next; say "OH NOES!" } for (1..10) { say; foo; say "OH NOES II!" }
buubot_backup masak: ERROR: syntax error at (eval 28) line 1, near "say "OH NOES!"" syntax error at (eval 28) line 1, near "say "OH NOES II!""
masak buubot_backup: eval: sub foo { next; print "OH NOES!\n" } for (1..10) { print $_, "\n"; foo; print "OH NOES II!\n" }
buubot_backup masak: 1 2 3 4 5 6 7 8 9 10
mberends +1 on perl6 to rakudo rename, and can we aim for a 'perlbrew switch' type facility at the end of the road please? 12:36
pmichaud ENOSAYCANYOUSEE?
masak :P
jnthn pmichaud: I think it'll mostly annoy people if they have to change the way they invoke it.
masak buubot_backup: eval: use warnings; sub foo { next; print "OH NOES!\n" } for (1..10) { print $_, "\n"; foo; print "OH NOES II!\n" }
buubot_backup masak: Exiting subroutine via next at (eval 28) line 1. Exiting subroutine via next at (eval 28) line 1. Exiting subroutine via next at (eval 28) line 1. Exiting subroutine via next at (eval 28) line 1. Exiting subroutine via next at (eval 28) line 1. Exiting subroutine via next at (eval 28) line 1. Exiting subroutine via next at (eval 28) line 1. Exiting subroutine via next at (eval 28) line 1. Exiting subroutine via
jnthn pmichaud: I agree eventually there should be a selection thingy or an option.
mberends jnthn, pmichaud: have you used 'perlbrew switch'? it rocks! 12:37
masak I tentatively agree that it's more "social" of rakudo to call its binary "rakudo".
JimmyZ jnthn: by the way, we are expecting your talk subject. 12:38
jnthn Maybe more "social", but I"m more interesting in doing what meets the typical user's expectaions, and that's that they install a Perl 6 compiler and have a perl6
mberends we have to make (name)space for niecza etc
masak we talked about this at the Vught hackathon, and I was firmly on the side of having it be 'perl6'. probably for the reason jnthn just stated.
jnthn I'd be fine with niecza also being able to install itself as perl6 too, and we put the extra burden on people who have reason/need for multiple Perl 6 compilers installed locally. 12:39
mberends I currently do that manually with symlinks 12:40
jnthn JimmyZ: Oh, yes, I should get to that :)
JimmyZ jnthn: thanks again, hehe
mv perl6 rakudo; ln -s perl6 rakudo :) 12:41
Garda is there any documentation that anyone here knows of for perl6 and using IO::Socket::INET ? 12:42
tadzik notmuch, but you can peek at the existing code
moritz Garda: there's the spec, and ther's LWP::Simple and an IRC bot by TiMBuS 12:43
Garda moritz, LWP::Simple, is that a library for connecting to web servers? 12:44
12:45 jaldhar joined
moritz Garda: yes 12:45
Garda: see modules.perl6.org/
mberends
.oO( Thursday afternoon is market time, and fresh hot stroopwafel time :)
12:49
masak ooh
tadzik ooh
mberends wish you were all here :)
moritz oooh
moritz will have asparagus today. Ha.
mberends Ha. 12:50
12:56 nymacro left 12:58 Holy_Cow joined, Holy_Cow left 13:02 nymacro joined
Garda so, I just copied what was in the /lib folder of the module I downloaded, into where rakudo looks for modules 13:07
is that all I need to do
what are the .t files?
masak test files. 13:08
Garda perl6 seems not to complain when I "use LWP::Simple"
masak and no, copying lib/ folder contents here and there doesn't sound like a long-term solution to me.
tadzik use a module installer, or at least ufo 13:10
masak here it's probably more a matter of setting PERL6LIB
but yes, a module installer would put things in the right place for you.
I'm not sure how ufo would help here. 13:11
tadzik it's smaller and faster, and still does the job
masak it does the job of creating a Makefile, not of making sure .pm files are in a path where Perl 6 will find them. 13:13
tadzik I think neither does module installer 13:17
dalek p: 67c0a4c | jonathan++ | src/ops/nqp.ops:
Teach many NQP ops about the existence of containers (just relies on the standard 6model container API).
13:22
p: f054311 | jonathan++ | src/ops/nqp.ops:
Make sure we don't treat container type objects as if they're actual living containers.
kudo/nom: 577f4b8 | jnthn++ | src/ (2 files):
Toss perl6_get_[how|what|who] now that the standard ops are container-aware.
13:24
13:35 koban` left
dalek kudo/nom: 2454910 | jnthn++ | src/CORE.setting/IO.pm:
Toss now-undeed decontainerize op now that repr_unbox_str is container aware.
13:35
kudo/nom: a74c87b | jnthn++ | src/Perl6/Metamodel/MultipleInheritance.pm:
Toss another couple of workarounds that we don't need any more.
13:37 envi joined 13:39 silug joined 13:48 drbean left 14:01 chitragupt joined 14:02 bluescreen10 left 14:08 hudnix joined
Garda is moritz around? 14:11
moritz he is
Garda hey
I'm looking at this:
github.com/cosimo/perl6-lwp-simple.../Simple.pm
in the get method, there's a comment about too many redirects
is it possible to just create an "our $redirects" 14:12
then every time get is called from within get to increment it just before it calls itself?
moritz it is, but that would be shared between multiple instances of that class
which is not the desired behavior
rather somethiing like 14:13
has $.redirects_left = 5;
and then for each redirect, $!redirects_left is decremented by one
and if it's zero, the redirect isn't followed
14:14 xinming joined 14:17 xinming_ left 14:19 hercynium joined
Garda pastebin.ca/2073719 14:33
lines 1, 6 and 50
or should there be a parameter or something where the person using the library says how many redirects they want? 14:34
moritz Garda: the user can initialize redirects_left on object construction 14:35
LWP::Simple.new(redirects_left => 3, ...)
PerlJam good morning 14:36
redirects_left makes me wonder about redirects_right :)
moritz Garda: but the code shoudl only abort if redirects_left is 0 AND there's a redirect
Garda: if no redirects are left, and the response is not a redirect, everything is fine
tadzik also, shouldn't they be reset at the end of the method 14:37
moritz probably
tadzik I have an impression that nom startup cost has increased 14:40
hello world is now around 0.4 secs
14:40 Eevee left
jnthn tadzik: Oh? Hm. 14:41
tadzik: How long was it before?
tadzik: I don't expect us to win on start time until I properly implement the serialization stuff, though.
moritz fwiw nom startup time is around 0.27s here 14:43
(and segfault gone, \o/) 14:44
14:45 JimmyZ left, JimmyZ joined
tadzik jnthn: 0.25 iirc 14:46
I was happy about it like yesterday ;)
14:47 alester joined
Garda lines 1, 5-10, 53, 60-61 14:48
pastebin.ca/2073721
I think I should also reset at lines 44 and 65 14:49
jnthn tadzik: oddness.
tadzik maybe entropy ;)
PerlJam Garda: FWIW, I'd use an attribute called $.max_redirects to initialize a $redirects_remaining parameter to .get
Garda: or ... in your implementation, what happens when you make 2 different calls to $obj.get (with different URLs) and each redirects 5 times? 14:52
moritz or a dynamic variable
moritz afk
14:52 thou joined 14:58 kst left 14:59 kst joined, Garda left 15:00 mkramer left 15:03 Eevee joined 15:13 barika left 15:15 barika joined 15:19 ymasory joined, snearch joined 15:20 pyrimidine joined 15:27 yinyin left 15:31 kst left 15:32 kst joined 15:41 kst left, kst joined 15:42 nymacro left 15:43 mj41 left 15:44 s1n left 15:45 jpr5 left, s1n joined 15:49 [hercynium] joined, [hercynium] left, [hercynium] joined 15:51 hercynium left, hercynium joined, hercynium left, hercynium joined 15:52 kst left 15:53 kst joined, am0c joined, [hercynium] left 15:54 x3nU joined, icwiener joined
am0c hugs hugme 15:54
am0c (nothing happened) 15:55
x3nU hello
TimToady howdee doo 15:56
jnthn o/ TimToady 15:57
15:59 drbean joined, JimmyZ left
am0c o/ 16:00
tadzik o/
16:03 pernatiy left
am0c heh 16:04
16:12 woosley left 16:18 woosley joined 16:19 awoodland joined 16:23 jlaire left
dalek p: 165e737 | jonathan++ | src/ (8 files):
Add clone to REPR API.
16:25
kudo/nom: a41d7e2 | jnthn++ | src/binder/sixmodelobject.h:
Follow clone REPR addition.
16:27
kudo/nom: e3daad7 | jnthn++ | src/ (3 files):
Some additions to lexpad support to help us more efficiently handler scalar containers.
kudo/nom: 80f907c | jnthn++ | src/Perl6/ (2 files):
First cut at getting very basic lexical variable declaration support back in place.
kudo/nom: 4a8e16a | jnthn++ | src/Perl6/SymbolTable.pm:
Support \$a (for is parcel) again.
kudo/nom: 9a10c1d | jnthn++ | src/ops/perl6.ops:
Add ops for doing checked/unchecked storage.
kudo/nom: e28a3d2 | jnthn++ | / (2 files):
First cut of assignment operator. Currently fails due to missing container descriptor link (so can't check rw flag).
16:29 mj41 joined
TimToady can see it now, every time I start rakudo: "I see that rakudo is not your default perl6; would you like to make it so?" 16:29
tadzik :P 16:30
we need this paperclip
jnthn :P 16:32
TimToady I think when you invoke "perl6" it should just invoke a different one each time, then pick the best one :) 16:35
colomon it should run both and compare the answers. ;) 16:36
right?
jnthn In our fearless multi-core world, it could just invoke all of them together...and give you ther esults from the one that finishes first. ;)
colomon perl6: say "Right!"
TimToady if you have three, they can vote
p6eval pugs, rakudo 048573, niecza v6-36-ga1db38b: OUTPUT«Right!␤»
TimToady we have to use up those multiple cores somehow... 16:37
or those multiple independent processors, if we're flying an airplane... 16:38
with a big red light in the cockpit that indicates "All Perl 6 implementations agree that you should die now." 16:39
16:46 woosley left
mberends lol 16:46
dalek kudo/nom: 39d527d | jnthn++ | src/Perl6/SymbolTable.pm:
Stash container descriptor in the container; scalar assignment now works.
16:48
jnthn pmichaud: progress ^ 16:51
:)
tadzik whoa, whoa 16:52
TimToady we are all spellbound...er...spellassigned... 16:53
jnthn :)
colomon spellchecked
jnthn Will do binding soon :)
Yes, binding will be cheaper than in master. :)
And corrector. :)
tadzik speaking of spells, I'll prefer casting ;)
jnthn: nqp doesn't build for me 16:54
jnthn tadzik: oh noes!
tadzik wklej.org/id/539921/
colomon cheaper and corrector! \o/
tadzik make realclean, git clean -fdx, no changes
colomon: it sounds like a pair of gangsters from a film from the sixties
like Bonnie and Clyde
moritz KnowHOWREPR.c:92: error: conflicting types for ‘clone’ 16:55
/usr/include/bits/sched.h:80: note: previous declaration of ‘clone’ was here
ah, tadzik++ was faster
jnthn huh, a static declaration of something in a .c file doesn't take precedence over an imported one from elsewhere? 16:56
16:56 apejens left
jnthn lousy language! 16:56
moritz indeed. Just one global namespace 16:57
16:57 apejens joined
tadzik nqp-rx: class A { method b { say("ok"); } }; my $foo := A.new(); my $b := "b"; $foo.$b() 16:57
jnthn should learn C some day... :)
16:58 birdwindupbird left
dalek p: f338bd8 | jonathan++ | src/6model/reprs/ (6 files):
Avoid name clash on UNIX-y platforms; should fix build breakage reported by tadzik++ and moritz++.
17:00
tadzik jnthn: works, thonks 17:01
moritz jnthn: he, I would have suggested the same name :-)
jnthn :)
It's static anyway, I coulda called it monkey_with_memory.
:)
tadzik please do :P
17:01 dakkar left
PerlJam where do you get monkeys without memory? 17:02
and what good are they if they immediately forget everything?
17:02 cdarroch joined, cdarroch left, cdarroch joined
tadzik use MONKEY_FORGETTING; 17:04
okay, that's funny
zsh: segmentation fault ./perl6 -e 'my $a = 4' 17:05
jnthn: wklej.org/id/539936/
17:05 mkramer1 joined
moritz guesses nom must follow the rename too 17:05
jnthn No, should be invisible 17:06
tadzik: Does a clean help?
I wonder if I have a missing makefile dep...
Two! 17:07
jnthn e mycket dålight makefilehacker
17:07 buubot_backup left
tadzik clean not, trying realclean 17:08
clean seems to be fakeclean these days
17:08 awoodland left
jnthn tadzik: clean may need, er, cleaning up. :) 17:08
tadzik jnthn: still segfaulting
after realclean 17:09
jnthn tadzik: :(
dalek kudo/nom: b0d8d2a | jnthn++ | build/Makefile.in:
A couple of missing dependencies.
jnthn tadzik: gdb?
tadzik jnthn: as pasted 17:10
valgrind says similar things
jnthn oh, sorry, I missed the link... 17:11
oh crap
jnthn--
sjohnson jnthn++ # don't be hard on yourself :) 17:12
tadzik just what I wanted to do
tadzik pats jnthn with a couple of ++'s
17:14 snearch_ joined
tadzik oh my, it's boiling in here, and it's not even a calendar summer 17:15
17:15 snearch_ left
jnthn Yeah, I'm not so impressed with the weather here... 17:16
Hot.
17:16 awoodland joined
sjohnson tadzik: where are ya from? 17:17
tadzik sjohnson: Poland
sjohnson oh cool
tadzik no, it's hot
sjohnson heh
tadzik turns the problem is my room having windows for the west. The sleeping room is quite cool
I must figure out some sheets to cover the windows during the day
ah, nothing like placing feet in cold water 17:18
dalek kudo/nom: d60952c | jnthn++ | src/pmc/perl6lexinfo.pmc:
Fix mark bug that could cause segfaults; reported by tadzik++.
17:20
jnthn Time for a break/walk. Back in a bit. 17:22
tadzik hello world is 0.24 again. Entropy, must be 17:24
also, my $a = 4; say $a now works in nom
colomon wait, assignment in nom?!?!! 17:25
tadzik aye
for like 5 minutes already :)
./perl6 -e 'my $a = "Hello world!"; say $a' 0,24s user 0,06s system 97% cpu 0,308 total
$a.say is fine too. Nice :) 17:26
PerlJam How does one build nom?
tadzik git checkout nom in rakudo 17:27
then as usual. You need the new nqp installed
PerlJam or, if I have an up-to-date parrot and an up-to-date nqp installed, should "perl Configure.pl" work?
(i'm assuming yes)
tadzik yes 17:28
17:29 buubot_backup joined
PerlJam weird. 17:29
tadzik is it?
PerlJam somehow my nqp was borked.
17:29 kst left
PerlJam ie. I removed it (even though I just built it a few minutes ago) and re-installed and now all seems to be well 17:30
17:30 jfried joined 17:32 Eevee_ joined, kst joined 17:35 Eevee left, Eevee_ is now known as Eevee 17:41 kaare__ joined 17:44 mkramer1 left 17:52 impious joined 17:53 impious left 17:57 MayDaniel joined
colomon now has a hotel room reserved for YAPC::NA 17:58
jnthn PerlJam: Configure.pl will happily take a --parrot-config=... but nqp shoulda been installed also. :) 18:07
felher p6eval: sub foo(--> Int) { return "not a integer"; } ; say foo(); 18:10
tadzik use "perl6:"
colomon jnthn: nom's not building for me at the moment?
Cannot fetch object from non-existant serialization context 1306794126.34028
current instr.: '' pc -1 ((unknown file):-1)
felher tadzik: thnx :)
colomon that's after realclean
tadzik colomon: toss Perl6 directory 18:11
jnthn What tadzik said
Normally works
felher perl6: sub foo(--> Int) { return "not a integer"; } ; say foo();
p6eval rakudo 048573: OUTPUT«not a integer␤»
..pugs: OUTPUT«*** ␤ Unexpected "-->"␤ expecting formal parameter or ")"␤ at /tmp/AyDhNvP75o line 1, column 9␤»
..niecza v6-36-ga1db38b: OUTPUT«===SORRY!===␤␤Return type constraints NYI at /tmp/5lx2xCKnBs line 1:␤------> sub foo(--> Int⏏) { return "not a integer"; } ; say foo(␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 469
..(CORE die @ 2) ␤ a…
tadzik tee hee ;)
tescotrip *
&
18:13 silent_h_ joined, am0c left
colomon tadzik++ # tossing Perl6 worked -- doesn't that imply realclean needs to do more? 18:15
jnthn colomon: No, that directory ain't created any more.
18:25 silug left 18:26 Tedd1^ joined 18:27 Tedd1 left, am0c joined
sorear good * #perl6 18:39
masak o/ sorear
tadzik hello sorear and masak
18:40 molaf left 18:45 envi left 18:55 snearch left, wamba left 18:59 MayDaniel left 19:06 pamera left 19:09 _jaldhar joined, _jaldhar left 19:10 _jaldhar joined, _jaldhar left 19:12 jaldhar left 19:14 _jaldhar joined 19:15 mj41 left 19:19 birdwindupbird joined 19:21 silent_h_ left 19:22 _jaldhar left 19:25 dual left 19:34 infiniteloop joined, dual joined
infiniteloop hi all 19:35
masak hi infiniteloop
infiniteloop perl6: my $a;
p6eval pugs, rakudo 048573, niecza v6-36-ga1db38b: ( no output ) 19:36
infiniteloop sorry just found out about the bots :)
couldn't resist
hi masak
sorear hi infiniteloop 19:37
moritz no problem, the bots are there to be used :-)
infiniteloop thanks
just getting into perl6 and parrot
masak perl6: say rand
p6eval pugs: OUTPUT«0.3661245903619855␤»
..niecza v6-36-ga1db38b: OUTPUT«0.42614545367013␤»
..rakudo 048573: OUTPUT«0.899015809948654␤»
masak perl6: say rand.chars 19:38
p6eval rakudo 048573: OUTPUT«17␤»
..pugs: OUTPUT«0.11607607957349997␤»
..niecza v6-36-ga1db38b: OUTPUT«16␤»
masak pugs-- :P
flussence pugs: say rand.Str; # just wondering... :) 19:39
p6eval pugs: OUTPUT«*** No such method in class Scalar: "&Str"␤ at /tmp/a_gfDXbryq line 1, column 5-13␤»
jnthn perl6: loop { } # ;-) 19:41
flussence oh wow, vanilla rakudo runs the spectest in about 10-15% less time now than last time I counted a few weeks ago. Did I miss something big?
p6eval pugs, rakudo 048573, niecza v6-36-ga1db38b: OUTPUT«(timeout)»
jnthn flussence: pmichaud++ has done some performance improvements :) 19:42
sorear perl6: my $x = -10_000_000; 1 while $x++; say "alive"
p6eval pugs, rakudo 048573, niecza v6-36-ga1db38b: OUTPUT«(timeout)»
tadzik flussence: yeah, the comeback of pmichaud :) 19:43
sorear perl6: my $x = -1_000_000; 1 while $x++; say "alive"
p6eval pugs, rakudo 048573: OUTPUT«(timeout)»
..niecza v6-36-ga1db38b: OUTPUT«alive␤»
sorear perl6: say 5.^methods(:local).Str 19:44
p6eval pugs: OUTPUT«*** No such subroutine: "&Str"␤ at /tmp/jiAz5rSTDk line 1, column 5 - line 2, column 1␤»
..rakudo 048573: OUTPUT«perl pred succ WHICH Str Bridge Int Rat Num sign gcd base ACCEPTS Real Bool Complex reals isNaN abs exp ln sqrt roots floor ceiling truncate round cis unpolar rand sin asin cos acos tan atan sec asec cosec acosec cotan acotan sinh asinh cosh acosh tanh atanh sech asech
..cosech acose…
..niecza v6-36-ga1db38b: OUTPUT«Unhandled exception: Unable to resolve method methods in class ClassHOW␤ at /tmp/WUpEM27yhL line 1 (MAIN mainline @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1555 (CORE C709_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1556 (CORE module-CORE @
..53) ␤ at /home…
sorear perl6: say 2; ENTER { say 1 }
p6eval niecza v6-36-ga1db38b: OUTPUT«===SORRY!===␤␤Action method statement_prefix:ENTER not yet implemented at /tmp/_IrVhb7vz8 line 1 (EOF):␤------> say 2; ENTER { say 1 }⏏<EOL>␤␤Unhandled exception: Unable to resolve method statement_level in class Str␤ at
../home/p6eval/niecza/src…
..pugs: OUTPUT«1␤2␤»
..rakudo 048573: OUTPUT«===SORRY!===␤ENTER phaser not yet implemented at line 22, near ""␤»
sorear there, three tiny bits of code to show off three implementations 19:45
19:45 am0c left
infiniteloop pointme: mubot 19:49
sorear wonders if infiniteloop will talk about anything. 19:50
infiniteloop sorry, just read the blog about bots here
moritz pointme is gone, I think 19:51
masak oh! that explains why you tried pointme (who's no longer among us).
infiniteloop ah
flussence
.oO( #perl6 is now point-less )
19:52
infiniteloop man these have to be the coolest irc bots ...
sorear and @pointless is *long* since gone
moritz phenny: tell infiniteloop that many of them are quite useful 19:53
phenny moritz: I'll pass that on when infiniteloop is around.
sorear the bots are designed to be useful for channel regulars.
masak rakudo: .say for 7, { $_ %% 2 ?? $_ / 2 !! 3 * $_ + 1 } ... 1
p6eval rakudo 048573: OUTPUT«7␤22␤11␤34␤17␤52␤26␤13␤40␤20␤10␤5␤16␤8␤4␤2␤1␤» 19:54
flussence feels slightly nerdier for recognising that sequence
19:54 wamba joined
infiniteloop masak: what is this sequence ? pardon my ignorance 19:55
phenny infiniteloop: 19:53Z <moritz> tell infiniteloop that many of them are quite useful
masak infiniteloop: it has many names. I think "Collatz sequence" is the more common one.
there's an XKCD episode about it: xkcd.com/710/ 19:56
infiniteloop thanks, learnt something new
sorear masak: hey
masak: yapsi. 2011.06. 19:57
masak sorear: this weekend, hopefully.
sorear masak: should it target niecza HEAD or v6?
masak sorear: hm. either is fine by me, offhand.
v6 sounds like it could be easier for people. 19:58
sorear has anything happened since 2011.05?
masak nope.
if I have time, I might make some tweaks for Tardis.
sorear how is Tardis doing?
masak I'll let you know my plans if that happens.
sorear muahahaha 19:59
masak moritz had this idea about event-sourcing Tardis.
I think it's a great idea and would like to try it.
19:59 MayDaniel joined 20:01 mj41 joined, wamba left 20:04 kaare__ left
Tene masak: I like that idea. 20:09
colomon "event-sourcing"? 20:10
moritz colomon: storing all changes to a variable instead of the actual value 20:11
dalek ecza: 19150c0 | sorear++ | lib/Kernel.cs:
Implement junctional collapse in Bool contexts
ecza: e7765e2 | sorear++ | test2.pl:
Start testing junctions
moritz colomon: or more general, using events instead of state as the authorotative source of information
colomon ah 20:12
masak it's not just a matter of storing deltas. 20:14
you also store the *type* of change that happened.
20:15 jevin left
masak current state is just a left fold of the history of events. :) and it seems a particularly good fit with a time-traveling debugger, where we want to navigate back and forth in that history. 20:16
frettled masak: how's today's blog post coming along? 20:18
masak frettled: huh. I had completely forgotten about it! :) 20:23
frettled: will do it right away. 20:24
frettled \o/ 20:29
20:30 wknight8111 left 20:31 tadam joined
dalek ecza: 006d0a2 | sorear++ | lib/ (2 files):
INVOKE is now spelled postcircumfix:<( )>
20:33
20:42 mberends left 20:49 saaki left 20:50 ymasory left 20:53 silug joined
masak blog post! strangelyconsistent.org/blog/june-2-variables 20:55
sbp rakudo: my $name = "Syromercunius"; say "Nice to meet you, ", $name, "."; 20:56
p6eval rakudo 048573: OUTPUT«Nice to meet you, Syromercunius.␤»
tadzik "saunas" sound tempting 20:57
sbp if you want to say you took a sauna, you have to say you saunaed. always looked like the strangest of words to me
subtlety is kind of bad too
masak I'd like to see a DVD menu that said "Subtleties" instead of "Subtitles". people who noticed would do a double take. :) 21:00
sbp yeah, especially because directors' commentaries are never subtle!
"Famous actress looked great in this scene, which was amazing because she spent most of the night horking her guts out and was pretty hungover before her lift-me-up just before we started shooting." 21:01
21:01 Mowah left, tadam left
masak that's... not a director I would work for again. 21:02
21:02 Trashlord left
sbp at least he's understanding 21:02
dalek kudo/nom: 55acc95 | jnthn++ | src/Perl6/Grammar.pm:
Fix type checking of scalars.
21:04
kudo/nom: 8de34b1 | jnthn++ | src/Perl6/ (2 files):
Default scalars to Any or, if declared, the type object.
kudo/nom: cf0abf0 | jnthn++ | src/ (4 files):
First, basic cut at binding. So far, just supports binding to lexical variables. Cheap and gets the type checking right, though very incomplete. Also stub in ::=, though it's not really dealt with at all yet.
tadzik wow 21:05
jnthn Actually it uses the same mechanism as binds in NQP, pretty much. 21:06
21:06 pochi left
sorear jnthn: I'd like to make the argument that 'my $x = 1; my $y ::= $x; $x = 2; say $y' should b1 1 21:06
be 1
tadzik ooc, couldn't we just make '=' binding in nqp and dismiss :=? 21:07
PerlJam tadzik: then it wouldn't be Perl 6, would it?
masak tadzik: yes, but why?
tadzik PerlJam: it's not Perl6 anyway
PerlJam NQP is still a subset of Perl 6
masak tadzik: that'd confuse people more than the way things are now, I think.
tadzik masak: for the ease of use, I'd say
oh, well, right
jnthn sorear: And were it := it'd be 2? 21:08
sorear jnthn: yes
tadzik it would be quite weird for '=' to be assignment in Perl 6, and binding in Nqp
jnthn sorear: Yeah, that's what i'd expect
sorear: That is, 1 for ::=, 2 for :=
sorear: I didn't make it that way yet but it's what I'll implement.
sorear ...
I was expecting a fight.
PerlJam punches sorear
happy now? :)
jnthn :P
masak hugs PerlJam
sorear yes.
21:09 pochi joined
jnthn sorear: Well, ::= is basically same semantics as signature binding. 21:09
masak 'night, #perl6.
21:09 masak left
sorear perl6: my $y = 1; sub foo($x) { $y = 2; say $x }; foo($y) 21:09
p6eval pugs, rakudo 048573: OUTPUT«2␤»
..niecza v6-38-ge7765e2: OUTPUT«1␤»
21:09 birdwindupbird left
jnthn hmm 21:10
sorear rakudo's current behavior is that ::= bindings can change out from under you. I don't like that.
jnthn sorear: oh, you'll be happy
sorear: Here's nom:
> my $y = 1; sub foo(Mu $x) { $y = 2; say $x }; foo($y)
1
:)
tadzik nom has subs?
jnthn tadzik: Sure, it had them before it had Str and Int literals. 21:11
tadzik oh yes it has. Cool
still, nom does not have ^D in REPL :P
jnthn I've...no idea how you implement that. :P 21:12
21:12 infiniteloop left
jnthn Patches welcome from anybody who does. :) 21:12
tadzik Rakudo has it.
jnthn Oh, OK
tadzik: Any reason it's not in HLL::Compiler's repl handling?
sorear ^D makes $*IN.get return undef
jnthn oh, I see 21:13
sorear so just use while $*IN.get -> $line { ... }
tadzik jnthn: I have no eye deer 21:16
jnthn :P 21:17
tadzik jnthn: does HLL::Compiler live in nqp or Parrot?
jnthn tadzik: nqp nowadays 21:19
tadzik hmm 21:22
oh, tomorrow
jnthn yes, soon it will be ;)
dalek ecza: 954a701 | sorear++ | / (3 files):
Unhandled methods autothread junctions
21:23
sorear now for the hard(?) part
tadzik g'night o/
sorear autothreading of subs 21:24
21:25 orphu joined 21:30 cdarroch left 21:38 MayDaniel left, y3llow_ joined 21:39 pothos_ joined 21:40 y3llow left, pothos left, y3llow_ is now known as y3llow, pothos_ is now known as pothos 21:49 Patterner left 21:51 Psyche^ joined, Psyche^ is now known as Patterner 21:52 silug left 21:59 alester left 22:00 spq1 left
dalek kudo/nom: d185019 | jnthn++ | src/ops/perl6.ops:
Remove a now-unused op; clean up some old code that caused a load of warnings.
22:06
kudo/nom: e953941 | jnthn++ | src/binder/bind.c:
Optimize the case of |$ in a signature - don't need to build and bind anything.
kudo/nom: c3eac78 | jnthn++ | src/Perl6/SymbolTable.pm:
Make | quant set its flag.
kudo/nom: b67fa73 | jnthn++ | src/Perl6/Actions.pm:
Fix anonymous parameters.
sorear |$ doesn't need to bind? 22:14
oh, just foo(|$) ?
discarding the capture?
sorear pings jnthn 22:15
jnthn sorear: Yes, that case.
22:15 gfldex left
sorear jnthn: when do you use that? 22:16
jnthn sorear: It's useful in a proto where you really don't care about what args you have
sorear mm. 22:17
benabik Accept anything, but ignore it?
sorear well it's not *really* ignored
jnthn benabik: Yeah. If you're multi-dispatching then something else is going to pay attention.
sorear it's still in callframe.args
jnthn Sure, the args are still around.
dalek kudo/nom: 308072e | jnthn++ | src/CORE.setting/operators.pm:
Get a few very basic ops in place, mostly to check we can.
kudo/nom: 07cc4ac | jnthn++ | NOMMAP.markdown:
Update/flesh out nommap for next few days a bit more.
benabik sorear: But it's not getting bound to any variables.
22:17 gfldex joined, PZt left
jnthn I expect to inline the dispatcher entry in most cases anyway, but until I implement that this is a simple and cheap way to write the protos. 22:18
sorear clever choice of syntax, though
jnthn And it's useful in other cases.
Like, when you want to do something before/after you enter the multi-dispatch but it's unrelated to the args.
sorear niecza has a trait "is rawcall" which causes the binder to bail out before scanning arguments
it never occurred to me that I could write that |$
22:19 PZt joined
sorear also needs a way to write "give me all the positional arguments, WITHOUT flattening, preferably as a Parcel" 22:20
right now that's written \|$x, which is not *quite* right
jnthn |$x and then in the body look at .list?
er, $x.list I mean
Or does .list flatten? 22:21
Hm
sorear doesn't .list return a List, anyway?
jnthn This problem sounds familiar.
Yeah
.list won'd do what you want.
*won't
+$c and a C-style loop over the things in the capture would though :) 22:22
sorear the archetypical case is &infix:<~>("[", 1..5, "]")
22:22 gfldex left
sorear we expect 1..5 to be stringified as a unit, not turned into a list 22:22
STD treats ~ as being :assoc<list> 22:23
jnthn Guess if you have immutable strings that can be cheaper.
sorear I think what I want is related to **@foo
but Slicels are still poorly understood at best
22:24 gfldex joined
jnthn That may work, yes...if only somebody worked Slicels out. :) 22:24
sorear or are those called LoL now
jnthn I can't keep up wiht the naming
There's a .tree method also, IIRC, that is in this area... 22:25
Or maybe I just dreamed that...
22:25 ymasory joined
sorear glad I'm not the only confused one. 22:25
I dreamed .tree too
jnthn oh, no, it's in S02
sorear checks out nom 22:26
jnthn sorear: Actually S02 is quite helpful in that section
sorear I can use Rakudo/{master,nom} without instaling it into /usr/local, right?
jnthn It talks about **@foo, .tree and LoL in the same paragraph just about :) 22:27
Yeah, they don't need installing.
sorear thinks that maybe just maybe it'll build in 96 Mwords this time
Parrot version 3.4.0 required (currently 2.8.0) 22:28
has it really been that long?
jnthn wow :) 22:29
OK, time for some rest for me...I should do $dayjob tomorrow.
sorear sleep well 22:30
jnthn I've managed to pretty much ignore it for the last two days, though one of them being a national holiday helped ;-)
night o/
sorear Why do you have a national holiday?
jnthn sorear: Sweden calls today Accension Day and says it's a day off. :-)
22:39 ymasory left 22:43 donri left 22:54 mj41 left, hercynium left 22:56 icwiener left 22:59 Trashlord joined 23:02 mtk left 23:03 stepnem left 23:07 stepnem joined 23:12 mtk joined 23:14 impiou1 joined, impiou1 left
dalek ecza: ca8129d | sorear++ | lib/ (4 files):
Refactor Binder to include MakeChild functions
23:14
23:22 hanekomu left
sorear who do I blame for the fact that Rakudo is currently only using 40 Mwords to build? 23:22
spoke too soon... almost at 70 now 23:25
80. 23:26
\o/ core.pm finished using only 80 23:28
23:37 whiteknight joined
sorear o/ whiteknight 23:41
whiteknight hello sorear
sorear um 23:42
Linked: perl6
/home/stefan/dl/rakudo-ng/parrot_install/bin/parrot perl6.pbc --target=pir --output=Test.pir Test.pm
make: *** [Test.pir] Segmentation fault (core dumped)
sorear blows away /usr/local/*/parrot 23:43
23:56 jfried left