»ö« 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! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
takadonet sorear: we don't really have that functionality in p6? 00:03
diakopter takadonet: it's implementation dependent.. 00:04
of the implementation(s) with stable/robust GCs... I don't think there's that functionality. 00:05
takadonet diakopter: nuts ok well i will ignore it for now. I been porting over github.com/Takadonet/Tree--Simple/tree/ and it implements and has testing for weak references
diakopter I guess you're using rakudo
takadonet yes 00:06
plobsing even fully GCed languages have weak references (eg: java). they're just not necessary in as many uses. 00:09
diakopter takadonet: last I heard, there were still random segfaults in the rakudo testsuite due to (it was speculated) GC non-robustness. At the last Parrot Developer Summit I asked about it, but no one answered. 00:12
takadonet diakopter: ok
diakopter (anyone reading this [backlog], please feel free to correct!)
takadonet heh
diakopter: so... are you trying to communicate with the future? 00:13
diakopter always
.oO( like all communication? )
plobsing diakopter: if you are referring to the "random" segfaults that occur sometimes, that is highly unlikely to be due to the GC, which is more-or-less deterministic.
diakopter I thought something was either deterministic or not 00:14
plobsing it is only as non-deterministic as what you throw at it.
hashes get walked randomly because hashes are random 00:15
diakopter (but assuming it is deterministic, what are the likelier culprits?)
plobsing there are 2 sources of random in parrot (that I know of): the PRNG and hash seeding 00:16
my money would be on the later being the source of the randomness
diakopter plobsing: are you saying there is no possibility the segfaults are caused by a bug?
plobsing segfaults are a bug
diakopter I should have been more specific. 00:17
plobsing: are you saying there is no possibility the segfaults are caused by a bug in parrot's source code?
sorear no, plobsing is saying that the segfaults are in parrot/src/hash/* 00:18
not parrot/src/gc/*
plobsing I never said that. What I'm saying is the fact that the segfaults are "random" suggests a random source is at least partly to blame. The GC is not a source of random.
sorear The GC is, however, a source of walking over lots of memory and dereferencing lots of pointers 00:19
If *anything* in Parrot corrupts memory, the GC will probably segfault
plobsing and if some of those pointers are invalid due to other code... kaboom
most "GC bugs" are bugs in other code that causes GC to choke 00:20
diakopter I would've thought memory locations (for allocation) were selected by a randomness source.. leading me to blame more heavily the GC.
plobsing memory locations for allocation are sometimes randomized by the *OS*. this can be usually be disabled. 00:21
diakopter right, I wasn't blaming the source of randomness
plobsing and, IIUC, some of the reports of random segfault reported dissabling this to not solve the problem 00:22
00:27 horror21 joined 00:33 risou left
plobsing diakopter: if you are still running into these issues (moritz closed the ticket 2 weeks ago), I recommend you follow up by creating a test case that consistently fails (all sources of randomness in parrot *can* be controlled) and then file a ticket. 00:34
tickets with "random" failures tend to get closed with messages like "this seems to be working now, it must have been fixed" 00:35
00:35 [particle]1 joined
diakopter no, I wasn't aware moritz_ closed the ticket 00:37
takadonet how can you tell if a scalar is a reference and not the object itself? 00:38
plobsing I'm not entirely convinced the bug is gone. I've seen this dance 1 too many times now.
takadonet www.reddit.com/r/programming/commen...community/ 00:40
sorear takadonet: in perl 5 or perl 6?
takadonet sorear: perl 6 :) 00:41
sorear takadonet: that's easy. all scalars are references in Perl 6.
takadonet i know hehe
somewhat realized that the piece of code that i'm porting is more complex then it needs to be since 'everything' is an object 00:42
makes things easier when you can do ' $scalar_or_obj.can('clone') '
00:46 jhuni_ left 00:58 jhuni_ joined 01:16 am0c^ joined 01:26 orafu left 01:28 orafu joined 01:38 lichtkind left 01:41 sftp left 01:44 redicaps joined 01:57 mikehh joined 02:00 jaldhar joined, jaldhar left 02:02 ispeak_ joined 02:04 whiteknight joined 02:05 Chillance left 02:06 jaldhar joined, jaldhar left 02:10 jaldhar joined, jaldhar left 02:12 mikehh left 02:13 orafu left, orafu joined, kanishka left, ispeak_ left 02:20 xinming_ is now known as xinming 02:22 thelazydeveloper left 02:28 kanishka joined 02:45 takadonet left 02:53 ch3ck3r joined, molaf_ left 02:56 ch3ck left, kanishka left 02:57 adu joined 03:02 Raynes joined 03:03 ashleydev joined 03:04 sunnavy joined, frooh joined 03:05 molaf_ joined, felliott left 03:06 horror21 left 03:07 horror21 joined 03:11 whiteknight left, ch3ck3r left 03:12 Raynes left, ashleydev left, sunnavy left 03:19 Raynes joined, sunnavy joined, ashleydev joined 03:26 rbxbx left, rbxbx joined 03:39 baest joined 03:43 adu left 03:45 am0c left 03:51 orafu left 03:52 orafu joined, rbxbx left 04:07 uasi joined 04:11 Guest19368 left 04:22 charsbr_ joined 04:25 orafu left 04:26 orafu joined 04:29 [Coke] joined 04:35 am0c^ left 04:44 Trashlord joined 04:47 envi joined 05:01 jaldhar joined 05:04 felliott joined 05:11 Trashlord left 05:13 felliott left 05:18 orafu left, orafu joined 05:24 simcop2387 left 05:32 simcop2387 joined 05:45 orafu left 05:47 orafu joined 05:51 am0c joined 05:52 dju left 05:54 orafu left 05:56 rgrau left 06:03 satyavvd joined 06:07 dju joined 06:11 dju left, dju joined, kaare joined 06:12 kaare is now known as Guest19536, orafu joined 06:15 am0c left 06:21 simcop2387 left 06:35 araujo left 06:46 justatheory left
sorear good * #perl6 06:55
06:56 am0c joined 07:04 wtw joined 07:11 satyavvd left 07:16 MadMare joined 07:17 ponbiki joined
moritz_ good morning 07:22
07:22 MadMare left 07:23 Bonham joined
sorear good morning moritz_ 07:27
I wonder why there are no comments on any advent2010 for the last few days 07:28
moritz_ didn't disable comments
07:33 Trashlord joined 07:42 Bonham is now known as OxCart 07:45 Trashlord left 07:54 jhuni_ left 08:02 yfliu joined 08:04 yfliu left 08:29 Alias_ joined 08:34 tzhs joined 08:51 daxim joined 09:14 uasi_ joined 09:16 araujo joined, uasi_ left 09:25 yfliu joined
yfliu help: Could not load oplib `perl6_ops' 09:25
moritz_ yfliu: did you install rakudo? 09:27
moritz_ 's magic crystal ball shows that somebody hasn't read the README
yfliu I have installed 'setup-parrot-2.10.0-rakudo-35.exe' and 'setup-parrot-2.10.0.exe' on my win32 system 09:29
09:30 dakkar joined
moritz_ yfliu: then please send a bug report to whoever made those packages available 09:31
09:33 yfliu left 09:49 uasi left 10:11 thelazydeveloper joined 10:13 tzhs left 10:17 Trashlord joined 10:18 tzhs joined 10:26 am0c left 10:34 Weathz joined 10:48 satyavvd joined
sorear out 10:49
11:11 masak joined
masak oh hai, #perl6! 11:11
moritz_ lolitsmasak! 11:12
how are things?
masak splendid, thanks.
moritz_ the sun is shining, and yesterday night I had excellent Norwegian food 11:13
masak what kind of Norwegian food?
moritz_ all kinds, actually 11:14
masak julbord?
mathw tonfisk?
moritz_ it was a big buffet dinner in a Norwegian/Bavarian restaurant
julbord
masak nice.
mathw no wait that's not what I meant
masak seven people have now signed up for the contest! \o/ 11:15
mathw lutfisk, that's what I meant
moritz_ \o/
mathw but I know it's not that because you said it was excellent
masak mmm, lutfisk.
moritz_ has 4 problems solved, he believes
masak mathw: hey, when prepared right... it can be a real treat.
mathw masak: interesting, you're the first person I've met who's had it who doesn't feel sick at the very mention of it
masak mathw: also, best use of white pepper in existence. 11:16
mathw: I'm Swedish.
mathw I know
this includes Swedish and Norwegian people
my friend's husband is Norwegian and can't stand the stuff
masak I wasn't too hot on lutfisk as a child, but I acquired the taste for it.
moritz_ masak: do you like gammelost? 11:17
mathw I guess it's highly polarising
like Marmite
masak mmm, Marmite :P 11:18
the trick is to layer it really thin.
like, atom-width thin :)
moritz_ likes gammelost zero-width thin :-) 11:19
mathw oh yes it's very potent
I used to get upset at breakfast if someone left the lid off the Marmite jar, because it was so smelly
these days I find I don't mind the smell at all
but I still don't choose to eat it, and I am thus outside the marketing idea of love it or hate it
I have become... indifferent to it 11:20
11:21 f00li5h joined
flussence I tried eating a burger with marmite on it once, just out of curiosity. Never again. 11:21
masak mathw: "indifference! that's even worse than hate!" -- famous quote from a friend of mine :)
moritz_ disagrees, but doesn't really care 11:22
*SCNR*
mathw depends what it is, I guess
flussence: interesting way to boost the umami content, but I prefer adding worcestershire sauce myself 11:23
and I suppose I shouldn't say anything about lutfisk given that I know what worcestershire sauce is made from
huf that was an attempt by the english at trolling the world. it was mostly successful (i'm talking about the pronunciation) 11:24
masak lue's post attracts comments! www.reddit.com/r/programming/commen...community/ 11:26
unfortunately, they're a troll comment and its replies.
huf why are people so angry that it's taking a while from inception to widespread adoption? 11:27
it's as if they'd paid money and were promised a deadline
masak that's just cargo-culted bullying. no more, no less.
huf ah, got it
mathw and just people who don't like Perl 11:28
moritz_ huf: you mean like diaspora?
oh wait... :-)
mathw they probably don't even have reasons for it, they just don't like it because it's not $favourite-other-language
huf but... but... it's my favorite language! there are many like it, but this one is MINE! 11:30
mathw yes, like that
masak I think I understand the psychology of learning and getting under the skin of a language by now. it's very hard to reason objectively about other languages after doing that. 11:31
mathw yes
masak let's say I learn Python and become really good at it. after a while solutions start coming to my brain already half-written in Python.
and that begins to feel like Python is the language that brains in general actually use when coding. 11:32
mathw yes 11:33
except they don't
it's just that you've trained yourself to think in Python
masak right.
mathw whereas I, on the other hand, still spend about a quarter of my time thinking in Haskell
which is a language I barely write these days
and about half my time thinking in Perl
and the other quarter thinking in fairy-land C++
which is a variant my compiler doesn't support
masak but it's easy to start confusing things that "look natural" to someone who is familiar with the language, and things that look natural to a relative outsider.
mathw this was the thing about the 8pen input method for Android when it came out 11:34
people said 'oh no it's too weird'
but they're all talking from people who know about QWERTY
the point of the entire project was to re-examine how to do touchscreen text input 11:35
and the general reaction is "no it's not like other keyboards, not interested"
people like familiar
11:36 am0c joined
masak yes, that's it. 11:39
mathw the problem is when that turns from 'I like this familiar thing' to 'all things which aren't familiar are WRONG and BAD and NOBODY SHOULD USE THEM' 11:40
masak aye. 11:41
11:42 redicaps left 11:43 satyavvd left 11:44 uasi joined
uasi hi, #perl6 11:44
mathw hi
masak hi uasi
uasi I wrote a patch to fix RT ##77668 github.com/uasi/rakudo/commit/3022...defc195f11 11:46
masak here's someone who went through the 8pen tutorial, then went on to write a 6-word message, realized he was not proficient, and uninstalled the product: dauntingideas.com/content/8pen-keyb...r-hour-use
uasi could someone review this?
masak uasi++
uasi: it looks good to me, but I would pass this over to pmichaud for review before comitting it. 11:47
uasi: have you run a spectest on it?
11:47 thelazydeveloper left
mathw masak: yeah it takes a bit longer than that to get proficient. It's been my primary IM for a while now, but I still have lapses where I can't seem to write anything properly with it. 11:48
uasi masak: yes. passed that
mathw which means it's never going to catch on, people won't invest the time
TiMBuS is there a way to get my module listed on modules.perl6.org? 11:49
masak phenny: tell pmichaud I think github.com/uasi/rakudo/commit/3022...defc195f11 looks good (and it passes spectests), but I'd like you to review it before I commit it.
phenny masak: I'll pass that on when pmichaud is around.
masak TiMBuS: yes, get a commit bit to github.com/perl6/ecosystem and add it to projects.list
TiMBuS who can give me a commit bit? 11:52
masak I can't, it seems. 11:53
TiMBuS darn 11:54
can you add the line for me?
github.com/TiMBuS/Net--IRC 11:55
masak you bet.
masak adds it
TiMBuS woot 11:56
masak what would you like the project name to be?
TiMBuS Net::IRC seems fine
masak we have absolutely no naming conventions, but I'd recomment 'net-irc' over that.
TiMBuS or Net-IRC i- yeah that
masak or 'Net-IRC'.
dalek osystem: 69dd73f | masak++ | projects.list:
[projects.list] added TiMBuS++' Net-IRC
11:57
masak added. TiMBuS++
TiMBuS I was just going by how perl5 does it
thanks masak :]
masak hopefully we'll be using CPAN too one day. 11:58
lunch & 11:59
TiMBuS i guess i should prove my code works 12:01
12:01 Unicron joined, Unicron left
TiMBuS guess not! 12:01
freenode is different
12:07 IllvilJa joined
TiMBuS rakudo: say 'huh what'.comb(/<-space - [\+\%\@\&\~]>+/) 12:12
p6eval rakudo : OUTPUT«huhwhat»
TiMBuS why does that crash locally? maybe an outdated rakudo
12:23 bluescreen joined, ggoebel left, bluescreen is now known as Guest38046 12:24 glow_ is now known as glow 12:28 ggoebel joined
moritz_ tries uasi's patch 12:35
TiMBuS im not sure why, but locally this seems to be an issue: 12:38
> 'fff'.comb(/<-space - [\+\%\@\&\~]>+/)
===SORRY!===
Cannot take substr outside string
moritz_ TiMBuS: that sounds like a very old rakudo 12:39
TiMBuS it shouldnt be too old..
hmm i think my build is broken somewhere 12:41
12:44 felliott joined
TiMBuS ok it -seems- like an old rakudo because --version is old, but no its definitely the latest build 13:00
moritz_ when --version is old, something's terribly wrong 13:01
try to wipe out the install location
like rm -rf parrot_install/
TiMBuS parrot_install? nuked it
yep
moritz_ and then recompile
TiMBuS i did that, along with a make realclean 13:02
git br shows only 'master' which im on, and git pull says its up to date
colomon "which perl6" ? 13:03
(falls in the category of obvious suggestions, I fear....) 13:04
moritz_ yes, 'make sure you actually run the newly compiled rakudo, not another binary'
TiMBuS i made a symlink in /usr/bin/perl6 to the parrot_install folder 13:06
the very one i deleted :[
moritz_ huh 13:07
I get the same error as you did
13:07 mtk joined
moritz_ rakudo: 'fff.comb(/<-space - [\+\%\@\&\~]>+/) 13:07
p6eval rakudo : OUTPUT«===SORRY!===␤Confused at line 22, near "'fff.comb("␤»
moritz_ rakudo: 'fff'.comb(/<-space - [\+\%\@\&\~]>+/)
p6eval rakudo : ( no output )
TiMBuS errnosay
moritz_ > 'fff'.comb(/<-space - [\+\%\@\&\~]>+/) 13:08
===SORRY!===
Cannot take substr outside string
that's what I get locally
TiMBuS yeah its strange
i also dont get that error sometimes, locally
moritz_ maybe the rakudo on the p6eval server is outdated too
dammit 13:09
the rebuild script doesn't like the git revisions of parrot yet :(
moritz_ is at $work and can't fix it atm 13:10
13:11 cosimo joined
TiMBuS ok i reduced it to .comb( <-space - [\+]> ) 13:12
'string' ~~ /<-space - [\+]>/ works however 13:13
er, i mean .comb(/<-space - [\+]>/)
.split is the same
moritz_ TiMBuS: care to submit a bug report? 13:14
13:15 cjk101010 joined
TiMBuS moritz_, i guess i can, but ill have to do it tomorrow. its way late 13:17
13:18 MayDaniel joined
flussence moritz_: does p6eval's rakudo use --gen-parrot? I've got an already-working script in that case... 13:18
moritz_ flussence: it's a bit more complicated. It works with two separate install locations, so that one can be used while the other is being rebuilt 13:19
flussence oh, hm
colomon I can verify the "Cannot take substr outside string" thing locally as well, and mine is definitely the latest Rakudo (.ords works) 13:20
flussence +1 to that here (2010.11-16-gd1e6636) 13:21
masak TiMBuS++ 13:31
I had that error half a year ago when updating GGE to ng.
moritz_ it was fixed for \w 13:32
masak I had to rewrite a lot of .subst things into loops with string concatenation.
I remember getting a lot of retroactive appreciation for .subst
13:34 lola_89 joined
lola_89 hi 13:34
masak lola_89: hi! 13:35
13:35 MayDaniel left
lola_89 masak: is there a place where I can find comparison between perl6 features and Python3 or ruby? I used this when decided between ruby and Python few years ago ^_^ 13:36
masak lola_89: we don't have a page ready for that, but it's a really neat idea.
however, I could show you around, if you want a tour. 13:37
rakudo: say "hi, I'm the evalbot!"
p6eval rakudo : OUTPUT«hi, I'm the evalbot!␤»
lola_89 masak: yes please!
flussence rosettacode?
masak flussence: ooh, good idea.
lola_89: why don't you start here? rosettacode.org/wiki/Category:Perl_6 13:38
there you will have comparisons across several languages and several problem domains.
and if you have questions, don't hesitate to ask.
lola_89 masak: thank you! I will try also adding a wiki of comparison between python3 and perl6 later.. I will try not to be biased to my python :D 13:40
13:40 wamba joined
masak such a wiki page could conceivably belong here: www.perlfoundation.org/perl6/index.cgi 13:41
lola_89 splendid! ^_^ 13:43
masak rakudo: my $age = 21; my $username = "lola_" ~ (DateTime.new(now).year - $age) % 100; say "good luck, $username!" 13:46
p6eval rakudo : OUTPUT«good luck, lola_89!␤» 13:47
masak :)
lola_89 masak: 21 and half, actaully :D 13:48
13:49 lola_89 left
masak rakudo: my $age = 21.5; my $username = "lola_" ~ (DateTime.new(now).year - $age) % 100; say "good luck, $username!" 13:50
p6eval rakudo : OUTPUT«good luck, lola_88.5!␤»
flussence heh :)
moritz_ if you're at least twenty, fractional years account for less than 5% of the total age, and can happily be neglected
masak rakudo: my $age = 21.5.Int; my $username = "lola_" ~ (DateTime.new(now).year - $age) % 100; say "good luck, $username!" 13:51
p6eval rakudo : OUTPUT«good luck, lola_89!␤»
masak moritz_++
13:58 felliott left 13:59 fhelmberger left, kjeldahl_ joined 14:00 fhelmberger joined
moritz_ rakudo: "fff".comb(/<-space - [\+\%\@\&\~]>+/).[1] 14:00
p6eval rakudo : OUTPUT«Cannot take substr outside string␤ in <anon> at line 22:/tmp/IOBRPFFQI4␤ in 'Cool::match' at line 2509:CORE.setting␤ in <anon> at line 2239:CORE.setting␤ in 'List::at_pos' at line 1␤ in 'Any::postcircumfix:<[ ]>' at line 1742:CORE.setting␤ in main program body at line 1␤»
moritz_ since .comb returns a lazy list, you have to consume it to actually trigger the error 14:01
14:01 uniejo joined
colomon moritz_++ 14:02
14:06 lola_89 joined
lola_89 hi, were can I find latest version of perl6 book? 14:06
14:07 uniejo left 14:08 takadonet joined
takadonet morning all 14:08
masak lola_89: github.com/perl6/book/downloads 14:11
lola_89 masak: thanks! 14:12
14:13 jfried joined 14:16 lola_89 left
moritz_ masak: do you have some stats as to how many people read your contest? 14:19
masak yes. just a moment.
14:21 kensanata joined
masak my domain had 3k hits on Friday. that's an all-time high. 14:21
strangelyconsistent.org/blog/masaks...ng-contest has had 1.5k hits in total. the feed.atom has had 1.6k hits in total. I don't know if those numbers go back to the beginning of the site, or just beginning of December. 14:23
flussence Huh... I thought Unicode would have a superscript Pi symbol, but it only has i. 14:26
moritz_ Unicode: it's not TeX 14:27
masak reddit (564), perlfoundation (150), planetsix (59), perlgeek (52), twitter (49) are the top referers.
14:27 am0c left
flussence (I'm trying to write a module to let people write numbers using Stupid Unicode Tricks, looks like I'll have to add up-arrow notation eventually) 14:27
masak this is why we care about reddit :)
daxim 14:28
flussence .u ピ
phenny U+30D4 KATAKANA LETTER PI (ピ)
takadonet i linked your contest on reddit! 14:29
flussence :) nice try
moritz_ Unicode obfu!
masak takadonet++
daxim ㌮ ㌯ ㌰ these have superscript pi each
masak daxim: looks like someone waving. I was about to reply with 'Ч' :)
daxim cactus 14:30
moritz_ .u Ч
phenny U+0427 CYRILLIC CAPITAL LETTER CHE (Ч)
moritz_ looks like a turned h-bar
masak someone on Twitter has opinions about the Web and mod_perl and Perl 6, and makes an appeal of some kind to Larry Wall: twitter.com/sylx/status/14323215945957377 14:31
14:31 Guest19536 left
masak Google Translate didn't help me much with that one. 14:31
daxim I always confuse 七 匕 when writing 14:33
moritz_ we still need 7 volunteers for the advent calendar
anybody wants to contribute something? 14:34
dalek : 5843a4c | moritz++ | misc/perl6advent-2010/ (2 files):
[advent] retro-update schedule
14:35
14:36 simcop2387 joined
flussence
.oO( I'd volunteer, but I'm absolutely hopeless at sticking to deadlines... )
14:37
14:38 mux joined
masak flussence: if you know by how much you usually overshoot, you could pretend that the deadline is that much earlier than it actually is :P 14:39
flussence I could get an article done by christmas, but I won't say which christmas :)
masak sheesh, that old trick. 14:40
14:48 Axius joined 14:50 shortcir1uit is now known as shortcircuit
masak rakudo: BEGIN { push @*INC, 'lib' } 14:51
p6eval rakudo : OUTPUT«===SORRY!===␤Could not find sub &push␤»
masak damn annoying bug, that one.
moritz_ are BEGIN-time closures supposed to see outer lexicals?
masak I don't know. I hope so. 14:52
is there anything else I could use that executes before a subsequent 'use'?
moritz_ there's this heavy "when are closures not really closures" paragraph in S04 that I've never really grokked
or was it S06?
masak S04. 14:53
it's right at the bottom.
moritz_ so you know what I mean :-)
masak oh yes.
I didn't get it at all before Yapsi. now I understand it slightly.
at least the need for it, if not all of the proposed solutions.
shortcircuit masak: I can't give anything illumantive on P6 specifically, but I could do a written form of my standard explain-Rosetta-Code-in-front-of-a-language-user-group presentation. 14:54
Throw that in the last-resort pile, I suppose. :) 14:55
masak shortcircuit: that would be very nice. please put it up as a gist or something.
shortcircuit gist?
masak gist.github.com
moritz_ github's nopaste service :-)
masak or whatever pastebin or blog you prefer.
shortcircuit Ah. :)
For RC, I've lately been using text posts to rosettacode.reddit.com as a blog. :) 14:56
moritz_ that and a line like "there are a lot of nice perl 6 solutions on rosettacode" + link to perl 6 category would make a nice advent post
masak I must admit I'm very inspired by examples/library/ncurses_life.pir in the Parrot repo. I'd like a proof-of-concept use of ncurses in Rakudo, and then a module with an ncurses API in the ecosystem. (hint, hint)
shortcircuit moritz_: That's a core component of my presentation to a language-UG; show all the links I have that are language-specific, as tuned to that language. :) 14:57
14:57 kensanata left
moritz_ shortcircuit: write it, we'll publish it for you :-) 14:58
shortcircuit Heh. :)
Not going to be until this evening, at the earlier, though. At work right now.
moritz_ that's ok 14:59
we have a volunteer for tomorrow too, iirc
15:00 glow left 15:02 icwiener joined
uasi masak: that guy on Twitter says "But this language (PHP) have ruled the Web world. This tragedy could have been avoided if Larry had made Perl 6 practically. mod_perl? Absurd." 15:04
masak uasi: thanks. 15:06
shortcircuit I thought it was P5 that was built with practice, and P6 that was built with experience. ;) 15:07
15:07 alester joined
masak that's a funny, and not altogether frivolous, way to put it. :) 15:09
allbery_b there's also the little matter that perl isn't web specific. (how many people do you know who use the php cli?) 15:11
masak I actually know a few people who use the PHP CLI. 15:12
allbery_b (and are any of them insane enough to try to use it for sysadmin/devops tasks?)
masak I wouldn't though. I've seen too much of the rot that makes up the foundation of PHP.
shortcircuit I know someone who wrote a CD burner using the PHP CLI.
I haven't seen the code, so I don't know how much it delegates to what library, though. 15:13
flussence probably system() calls 15:14
masak rakudo: class A { has $!inner is rw; method outer { $!inner } }; my $a = A.new(:inner(1)); $a.outer = 2; say $a.outer 15:22
p6eval rakudo : OUTPUT«2␤»
15:23 ch3ck joined
moritz_ bug 15:23
(but known, afaict)
masak yeah.
would be OK if the method were rw too.
moritz_ right
and there's no reason to stick an 'rw' on a private attribute 15:24
masak rakudo: class A { has $!inner is rw; method outer is rw { $!inner } }; my $a = A.new(:inner(1)); $a.outer = 2; say $a.outer
p6eval rakudo : OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for 'trait_mod:<is>'. Available candidates are:␤:(Mu $child, Role $r)␤:(Routine $r, Any :default($default)!)␤:(Code $block, Any $arg?, Any :export($export)!)␤:(Mu $child, Mu $parent)␤:(Mu $type where ({ ... }), Any :rw($rw)…
moritz_ it's the old "doesn't decontainerize" issue
masak *nod*
I find it slightly inconsistent that you can initialize a non-rw private attribute, but you can't initialize a non-rw lexical variable. 15:25
moritz_ well, you can't anymore, according to spec
masak oh, good. 15:26
problem solved, then.
moritz_ afaict TimToady++ changed it to only work for attributes with accessors
takadonet what about doing an alias to a method? 15:27
moritz_ (I might be wrong though)
masak takadonet: could you be a bit more specific? 15:28
moritz_ Author: TimToady [email@hidden.address]
Date: Fri Nov 5 21:15:11 2010 -0700
[S12] default BUILD should not init private attrs
15:31 sftp joined
takadonet masak: sorry little busy here.... at work .... github.com/Takadonet/Tree--Simple/...le.pm#L192 15:34
masak moritz_: so... with the new spec, private readonly attributes are exactly as useless as readonly lexical variables? :)
takadonet masak: That how p5 creates an alias
masak takadonet: um. you linked me to a line with just a closing brace on it... 15:35
moritz_ masak: they can be initialized, just not by the default BUILD method
takadonet ...
stupid git 15:36
github.com/Takadonet/Tree--Simple/...le.pm#L195
should be: *insertChildren = \&_insertChildAt;
masak yes. now I see.
takadonet: just delegate?
it's a bit longer, but it amounts to the same thing.
15:37 toebu joined
takadonet masak: documentation or example? 15:37
masak rakudo: class A { method foo { say "foo!" }; method bar { self.foo } }; A.new.bar
p6eval rakudo : OUTPUT«foo!␤»
takadonet that what I thought... Thinking there was an easier way to do it ... all well 15:38
15:38 Patterner left
masak well, I guess you could do binding if they're 'our'-scoped methods. 15:38
but I wouldn't recommend it, for some unspecified reason. 15:39
maybe because it feels odd to 'our'-scope the methods just for that.
every scope-widening action has a corresponding cost/punishment :)
moritz_ rakudo: class A { our method foo { 'abc' }; A.^add_method('bar', &foo); }; say A.new().bar
p6eval rakudo : OUTPUT«abc␤»
masak moritz_++ 15:40
moritz_ rakudo: class A { method foo { 'abc' }; A.^add_method('bar', &foo); }; say A.new().bar
p6eval rakudo : OUTPUT«Could not find sub &foo␤ in main program body at line 22:/tmp/8NulKIUJuy␤»
moritz_ rakudo++
masak maybe something with .^can would work to find a non-'our' method?
takadonet so it hides foo then? wow
n/m
masak takadonet: yes, if by "hides" you mean "sticks it in the 'has' namespace"
moritz_ takadonet: there's no hiding. Methods just aren't in lexical scopes 15:41
takadonet i realized that after I said my comment
moritz_ rakudo: class A { method foo { 'abc' }; A.^add_method('bar', A.^can('foo')); }; say A.new().bar
p6eval rakudo : OUTPUT«abc␤»
moritz_ masak++
masak rakudo++
moritz_ once we have macros, that's trivial to encapsulate in a module
masak aye. 15:42
alias 'foo' => 'bar';
or maybe the other way around :P
takadonet ya
moritz_ alias foo => <bar baz quox>; 15:43
takadonet thanks guys!
15:44 felliott joined 15:46 Axius left 15:50 Psyche^ joined, Psyche^ is now known as Patterner 15:53 wtw left 16:00 glow joined
flussence yay, I've convinced the people at :p5($dayjob) that writing tests is actually important 16:02
16:02 MayDaniel joined
flussence (after spending 4 hours blindly trying to figure out why my shiny new charset code didn't work, turns out it did, and I'd spelled "pg_enable_utf8" wrong elsewhere...) 16:02
mux flussence: sounds good; I'm still trying to convince my coworkers that calling a function via &foo() is not a good idea. 16:04
flussence That sounds... painful.
masak mux: I don't see why it's not a good idea. I just don't see why it'd be necessary. 16:05
it still works in Perl 6, fwiw. :)
rakudo: sub foo { say "OH HAI" }; &foo()
p6eval rakudo : OUTPUT«OH HAI␤»
mux masak: if it's not necessary, it's not a good idea in my book since it adds extra syntactic cruft.
flussence the codebase I'm working on still has a few of those, but the guy who wrote them left years ago.
mux masak: also it curcumvents prototype checks if I'm not mistaken 16:06
flussence masak: I read a thing not too long ago explaining in detail why it's a really bad idea
if you forget the ()s, &foo gets passed the caller's @_ directly and can modify it. 16:07
daxim explanation for this is repeated on stack overflow about every two weeks
16:07 Alias_ left
flussence reminds me of more PHP insanity... there's a func_get_args() which is similar to @_, but you aren't allowed to write "foo(func_get_args())". 16:11
mux but I suppose I shouldn't even complain about the extra '&' characters when I can't get the said coworkers to even properly indent code
allbery_b inherited some terrifying perl4 code at his current job and is still trying to make it halfway sensible 16:12
16:13 glow left, fhelmberger left, Raynes left, dual_ left, Eevee left, Grrrr left, spinclad left, hugme left, literal left
flussence The guy who wrote a lot of this code was an old-school C programmer. It didn't really look like perl at all until I ripped it all up in frustration one day (week?) 16:15
There was one particularly horrible bit involving system() and bit-operators just to copy a file and check it worked. 16:16
16:17 risou joined, glow joined, fhelmberger joined, Raynes joined, dual_ joined, Eevee joined, Grrrr joined, spinclad joined, hugme joined, literal joined, zelazny.freenode.net sets mode: +v hugme, _kaare joined 16:18 hugme left 16:21 glow left, fhelmberger left
moritz_ rakudo: say 3.end 16:21
p6eval rakudo : OUTPUT«0␤»
masak rakudo: sub end { 0 }; say end.end.end.end.end.end.end.end 16:22
p6eval rakudo : OUTPUT«0␤»
moritz_ rakudo: say .end.end.end
p6eval rakudo : OUTPUT«0␤»
moritz_ are we quite finished? :-) 16:23
masak rakudo: given end.end.end.end { say .end.end.end.end.end.end.end.end }
moritz_ erm, ended
p6eval rakudo : OUTPUT«Not enough positional parameters passed; got 0 but expected 1␤ in 'end' at line 1802:CORE.setting␤ in main program body at line 22:/tmp/EUEINyMENS␤»
16:23 fhelmberger joined
moritz_ the first end() doesn't work that way 16:23
masak rakudo: given .end.end.end.end { say .end.end.end.end.end.end.end.end }
p6eval rakudo : OUTPUT«0␤»
16:24 IllvilJa left
masak rakudo: given end end end end end .end { say .end.end.end.end } 16:24
p6eval rakudo : OUTPUT«0␤»
masak \o/
16:29 Raynes left, Raynes joined 16:34 uasi left 16:35 thepler left 16:42 glow joined 16:46 thepler joined 16:53 orafu left, orafu joined 16:55 masak left 17:01 tzhs left 17:07 nadim__ left 17:08 nadim__ joined 17:20 MayDaniel left
ch3ck masak \o 17:20
17:30 rgrau joined 17:42 Chillance joined, glow left 17:54 justatheory joined 17:55 Chillance left 17:57 hudnix joined 18:02 cdarroch joined, cdarroch left, cdarroch joined, MayDaniel joined 18:03 dakkar left 18:05 MayDaniel left 18:17 Guest38046 left 18:32 Guest38046 joined
takadonet rakudo: class A { method foo { 'abc' }; A.^add_method('bar', A.^can('foo')); }; my $x= A.new(); say $x.bar(); say $x.bar() 18:36
p6eval rakudo : OUTPUT«abc␤No candidates found to invoke for method 'foo' on object of type 'A'␤ in main program body at line 22:/tmp/n5vqfdbfxD␤»
takadonet only works once :(
moritz_ hm 18:38
rakudo: class A { method foo { 'abc' }; A.^add_method('bar', A.^can('foo')[0]); }; my $x= A.new(); say $x.bar(); say $x.bar()
p6eval rakudo : OUTPUT«Null PMC access in invoke()␤ in main program body at line 1␤»
moritz_ anyway, looks like a bug 18:39
rakudo: class A { method foo { 'abc' }; BEGIN A.^add_method('bar', A.^can('foo')[0]); }; my $x= A.new(); say $x.bar(); say $x.bar()
p6eval rakudo : OUTPUT«===SORRY!===␤Null PMC access in invoke()␤»
moritz_ rakudo: class A { method foo { 'abc' }; BEGIN A.^add_method('bar', A.^can('foo')); }; my $x= A.new(); say $x.bar(); say $x.bar()
p6eval rakudo : OUTPUT«abc␤No candidates found to invoke for method 'foo' on object of type 'A'␤ in main program body at line 22:/tmp/d24OoLzlaj␤»
moritz_ currently that's a method with self destruction
which other programming language has that? :-) 18:40
perigrin I could introduce that bug to Moose ... but I don't think they'd appreciate it 18:42
18:43 hdanak joined
moritz_ would be a good candidate for an Acme module, no? 18:43
Acme::Method::SelfDestruct
perigrin moritz_: or you can implement it yourself using MooseX::Declare: class A { after foo { $self->meta->remove_method('foo'); } }
moritz_ perigrin: something like that, yes 18:44
hdanak is rakudo.org down?
18:46 daxim left
moritz_ if it's not responding, that's likely 18:47
hdanak hopefully it's just being maintained or something
vs something malicious 18:48
takadonet moritz_: so i take it that's a bug then? 18:50
moritz_ takadonet: yes
takadonet moritz_: nuts
moritz_: any possible workarounds? :) 18:51
moritz_ takadonet: re-dispatching 18:52
19:03 risou left 19:13 skangas left 19:19 mtk left 19:20 mtk joined 19:22 rindolf joined
rindolf Hi all. 19:22
Trashlord hi rindolf
rindolf Trashlord: hi. 19:23
19:24 envi left 19:27 saaki joined 19:40 jedai_ joined 19:41 jedai left 19:42 molaf_ left, masak joined
masak rakudo.org down -- anyone emailed alester? 19:52
masak does so
alester i'll bounce it 19:53
I wonder what makes it sad.
it's back, masak
masak thanks, alester++. 19:54
rakudo: class A { method foo { 'abc' }; A.^add_method('bar', A.^can('foo')); }; my $x= A.new(); say $x.bar(); say $x.bar() 19:58
p6eval rakudo : OUTPUT«abc␤No candidates found to invoke for method 'foo' on object of type 'A'␤ in main program body at line 22:/tmp/cMQTR25CMK␤»
masak <takadonet> only works once :(
masak submits rakudobug
takadonet masak++ 19:59
masak: thanks. Question... what does moritz_ mean by re-dispatching?
masak if jnthn were here, he'd say that this result isn't so strange; becuase .^can gives the dispatcher to the 'foo' method(s). 20:00
call it once, shame on... shame on you. call me tw... can't call me again.
*can't get called again
takadonet it's strange 20:05
masak as with string encodings, dispatchers are there whether you're aware of them or not, and whether you want/like them or not.
moritz_ takadonet: just calling the target method from the alias 20:13
takadonet moritz_: sounds good 20:14
20:17 skangas joined
masak skangas: hai! .se? 20:18
moritz_
.oO( isn't it "hej" in .se? )
skangas Yes, it is.
masak but I'm in the Lolcat province.
szabgab good evening 20:20
masak: are you coming to FOSDEM ?
rindolf szabgab: evening. 20:22
masak szabgab: hm, maybe. 20:23
I'll be moving to the south of Sweden in January, so at least I'll be closer to Brussels :) 20:24
szabgab then please send your talk proposal(s)
20:25 glow joined
szabgab moritz_: what about you and FOSDEM ? 20:25
rindolf error: pathspec 'RELEASE_2_10_1-679-g9bec614' did not match any file(s) known to git. 20:26
masak szabgab: I'll confer with jnthn too, and then maybe send something.
szabgab and what about pmichaud ?
moritz_ szabgab: most probably not
masak rindolf: that does indeed not look like a tag to me.
rindolf masak: hmmm.... 20:27
moritz_ rindolf: is your parrot/ dir a git repo?
rindolf moritz_: yes, it is.
szabgab moritz_: we can let you rest this time
rindolf Oh wait.
moritz_ rindolf: does it work after 'git pull'?
rindolf [email@hidden.address]
moritz_ hm
that might be it :-)
rindolf Makefile:200: compilers/pirc/Defines.mak: No such file or directory 20:30
when doing make realclean.
moritz_ rindolf: cd parrot; git clean -xdf
rindolf moritz_: thanks. 20:31
moritz_: I'm getting: 20:35
===SORRY!===
Parrot revision RELEASE_2_10_1-679-g9bec614 required (currently RELEASE_2_9_1-967-g9bec614)
Don't know why.
moritz_ rindolf: what are you doing? 20:36
and did you wipe out parrot_install inbetween? 20:37
rindolf moritz_: no, I did not wipe out parrot_install.
moritz_: I'm running perl Configure.pl --gen-parrot
20:38 hdanak left
flussence rindolf: you might find this useful (or not), it's what I'm using: gist.github.com/738980 20:38
[Coke] parrot caches that variable in a dot file. if you don't realclean, you're stuck with the old version even if you did a git pull in between. 20:39
moritz_ rindolf: ah, your installed parrot identifies itself as 2.9.1, not 2.10.1
[Coke] and --gen-parrot does not, IIRC, realclean.
(which it really should)
rindolf [Coke]: it said something about that. 20:40
moritz_: so what should I do? 20:43
moritz_ rindolf: fix your parrot 20:45
20:45 jaldhar left
rindolf moritz_: ah. 20:45
moritz_ rindolf: I just don't know what your setup is, and what you have done 20:46
[Coke] if you're using --gen-parrot, your installed parrot is in your rakudo build dir. You can always just remove the parrot* directories in your rakudo build dir and run perl Configure.pl --gen-parrot again. 20:48
if you are working with an installed parrot elsewhere, a fresh install of that should work (with the same caveat that if you're building it from source, be sure to do a realclean first.) 20:49
moritz_ (assuming you have internet connection, for 'git pull')
20:52 Guest38046 left
rindolf moritz_: OK, it was a git SNAFU - I didn't fetch the tags - had to use get fetch -t 20:54
I hate git. 20:55
Well, usually.
masak likes git
moritz_ rindolf: git hates you too :-)
rindolf moritz_: I don't care how git feels about me. 20:56
moritz_ it just reflects your feeling
rindolf moritz_: I hate it so I don't care about that.
moritz_ hate implies caring
at least to a certain degree
otherwise you'd be indifferent
rindolf Working now. 20:58
21:04 Guest38046 joined, fhelmberger left 21:06 mavrc joined 21:14 stkowski joined 21:22 Guest38046 left 21:50 kjeldahl_ left
rindolf [shlomif@lap rakudo]$ ./perl6 t/spec/S02-builtin_data_types/hash 21:52
Unable to open filehandle from path 't/spec/S02-builtin_data_types/hash' 21:53
Oh wait, missing the .t
In any case - not ok 52 - colonpair :one
moritz_ how old is your rakudo? how old is your copy of the spectets? (still .svn?) 21:54
masak rindolf: do you know if this is the first revision where that happens?
moritz_++
21:54 IllvilJa joined
moritz_ .sleep = True 21:55
rindolf moritz_: I pulled rakudo today. 21:56
masak: I don't know if this is the first revision.
github.com/shlomif/rakudo - I have a commit here for a Test::Run-based harness.
masak rindolf: I'll just finish up tomorrow's Advent post, then I'll try to reproduce your spectest failure.
rindolf masak: OK. 21:57
masak: I'm on Mandriva Linux 2010.1 on an x86-64.
22:02 sow joined 22:07 mtk left, sow left 22:10 kjeldahl left
masak ok, peeps; tomorrow's Advent post is up (on perl6advent.wordpress.com/wp-login.php ). feel free to review and comment. 22:11
masak turns to rindolf's test
rindolf p6eval: %hash8 = (:one, :key<value>, :three(3)); 22:13
22:13 nrycrun joined
masak rakudo: %hash8 = (:one, :key<value>, :three(3)); say %hash8.perl 22:14
p6eval rakudo : OUTPUT«===SORRY!===␤Symbol '%hash8' not predeclared in <anonymous> (/tmp/Ri0AlbsNb5:22)␤»
masak rakudo: my %hash8 = (:one, :key<value>, :three(3)); say %hash8.perl
p6eval rakudo : OUTPUT«{"one" => Bool::True, "key" => "value", "three" => 3}␤»
masak looks right to me.
22:15 nymacro joined
rindolf is(%hash8{'one'}, 1, 'colonpair :one'); 22:16
So this is wrong.
masak yes.
PerlJam rindolf++ 22:17
masak checks the latest spectests on github
dalek : f15aa2b | duff++ | misc/perl6advent-2010/topic-brainstorming:
Add a couple of ideas
masak rindolf: github.com/perl6/roast/blob/master...ash.t#L125 22:18
rindolf: it's already correct. your local version of roast must be too old.
rindolf masak: ah.
masak (just as moritz_ suggested)
rindolf masak: OK, that was indeed the case. 22:19
Now I'm getting another failure - not ok 66 - Hash.new($pair) lives 22:20
masak moritz_++
rindolf: you'll note that that test is marked with #TODO 22:22
that means the test is correct, the implementation is wrong, and we know about it. 22:23
we can parse the test and run it, but it produces the wrong result.
PerlJam masak: Post looks good. My only suggestion would be to give a little more prose to why it's called "nextsame". Like maybe one sentence where you first mention dispatchers that says something like "It's called nextsame because it executes the /next/ subroutine in the dispatch chain with the /same/ arguments as this invocation." 22:24
masak++ 22:25
masak oh, good idea. I'll add that. thanks.
rindolf masak: ah, I see. 22:28
masak: so it's a magical comment?
masak rindolf: from the perspective of the TAP framework, yes. 22:29
PerlJam rindolf: did you read the roast README?
rindolf PerlJam: no, I did not.
masak PerlJam: post updated. 22:33
22:33 puddingpimp left
PerlJam masak: muy bueno :) 22:34
masak \o/
22:44 [Coke] left
rindolf Now t/spec/S09-autovivification/autovivification.t fails. 22:44
Hmmm... it succeeds with t/harness.t 22:46
Test returned status 1 (wstat 256, 0x100)
22:46 puddingpimp joined
masak 'status 1' does not mean success. 22:48
rindolf The status 1 is returned in t/test-run-harness 22:49
masak right.
rindolf In t/harness it does not report it.
masak runs it locally.
22:50 nrycrun left, [Coke] joined
masak yeah, getting an error here. 22:51
Method '!fill' not found for invocant of class ''
on the other hand t/spec/S09-autovivification/autovivification.rakudo (note the different file extension) runs fine. 22:52
rindolf: would you like a small explanation of how the spectests work?
22:53 jhuni joined
rindolf masak: yes. 22:55
masak you've already found t/harness 22:56
its main contribution is to "fudge" the spectests before running them.
22:56 alester left
masak the process of fudging was invented when Pugs ceased to be the only big implementation of Perl 6, and different implementations needed to share the spectests. 22:57
fudging takes directives in the t/spec *.t files, and processes the individual files into something that can be run by an implementation.
the directives for Rakudo look like this:
#?rakudo skip 'autoviv with push/unshift' 22:58
this tells the fudger (1) that this directive concerns Rakudo, and (2) the test is to be commented out and skipped.
the resulting file is stored with the same filename but, in the case of Rakudo, with the extension .rakudo 22:59
*that's* the file that's run by the harness.
this is necessary, because tests that need to be TODO'd or SKIP'd by Rakudo wouldn't necessarily need to be for, say, Pugs.
any questions?
rindolf masak: no. 23:00
masak: I understand that.
masak rindolf: ok, back to your particular case, then.
when you run t/spec/S09-autovivification/autovivification.t, and it fails, that's because it contains '#?rakudo skip' directives.
it is, in other words, not an exceptional condition that this file fails. it's expected. 23:01
rindolf masak: so you mean the exit(1) is on purpose? 23:04
masak the exit(1) is a consequence of getting an error from running code that the harness would have skipped. 23:05
23:07 mavrc left 23:12 Guest19368 joined
rindolf masak: perl t/test-run-harness t/spec/S09-autovivification/autovivification.rakudo still fails. 23:20
23:22 _kaare left
masak rindolf: I haven't heard of t/test-run-harness, and I don't have any such file in my (up-to-date) checkout of Rakudo. 23:23
rindolf: here, perl t/harness t/spec/S09-autovivification/autovivification.rakudo runs fine, with a PASS.
rindolf masak: I've commited it here - github.com/shlomif/rakudo 23:24
masak: what happens when you do ./perl6 t/spec/S09-autovivification/autovivification.rakudo || echo "Bad status"
?
masak it runs the file, the last line is '# FUDGED!', and not "Bad status" 23:25
might be your platform, might be something else.
ch3ck hej masak \o 23:27
masak o/
23:33 cosimo left 23:35 rindolf left 23:41 Bzek_ joined 23:43 Bzek left 23:49 sftp left 23:52 rgrau left 23:53 whiteknight joined 23:57 nymacro left