»ö« 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.
dalek ecza: ba728f8 | sorear++ | / (2 files):
Combine ehspan and span into a single neater primitive
01:07
ecza: 40c432a | sorear++ | / (3 files):
&return and &take take multiple arguments
ecza: 1e98895 | sorear++ | src/ (2 files):
&return et al are inlinable primitives
[Coke] if you have something that segfaults with an optimized parrot and not without, please open a trac ticket so we can fixit. 01:56
colomon phenny: tell masak I apologize profusely for the inscrutability of my second p4 submission. Basically I spent all my time (definitely more than I could really afford to spend on the contest) trying to get it to work better, and no time at all trying to polish it. I do believe it will play "perfectly" for games up to 50 or 60 stones, after which point it will play pretty well against a normal human, but get toasted by a perfect versio 02:20
the algorithm.
phenny colomon: I'll pass that on when masak is around.
diakopter colomon: I saw "...but get toasted by a perfect versio" 03:29
arnsholt Yeah, me too 03:32
Looks like your client and the server have different opinions fo the maximum line length =)
dalek ecza: dc84a47 | sorear++ | / (2 files):
Optimize intrablock control ops to goto
03:50
sorear I need to come up with some more priority items for the feb 28 release :) 03:52
rdesfo has something changed in perl6 since "Perl 6 now" came out. the book says the output for print 037 should be 0c37 in perl6 and it is 37. 04:31
sorear I've never heard of "Perl 6 now" 04:49
the language is still in heavy development
std: say 037 04:50
p6eval std 625303c: OUTPUT«Potential difficulties:␤ Leading 0 does not indicate octal in Perl 6; please use 0o37 if you mean that at /tmp/N44qRzl3JL line 1:␤------> say 037⏏<EOL>␤ok 00:01 118m␤»
rdesfo thanks 04:52
The book also says it would print out 31 when "print 0c037" is executed 04:53
sorear rakudo: print 0c037
p6eval rakudo : OUTPUT«===SORRY!===␤Confused at line 22, near "print 0c03"␤»
sorear I imagine that's just a printing problem and it should say 0o037 04:54
... implausible but I can't think of a better explanation
anyone else know?
Sargun What's the status on Perl6/parrot 04:58
sorear Status? It's the most complete implementation! 05:10
oh, hmm, I guess you meant "Perl 6 and Parrot" 05:11
I thought "Perl 6 implemented on Parrot" at first...
Perl 6 is fine. Can't speak for Parrot personally.
rdesfo rakudo.org/announce/rakudo-star/2011.01 05:12
here is the lastes news. another update was just released for rakudo star
sorear wonders why there have been some many new comers the past 1-2 days 05:17
sorear Sargun: any specific questions? 05:56
Sargun sorear, why hasn't Perl6 succeeded perl5? 05:57
sorear, people making fun of Perl and Parrot on Reddit H-N
sorear you need a thick skin to be a p6er 05:58
it hasn't succeededed perl5 because perl5 was revived 05:59
perl6 was started at a point in time when perl5 looked dead
this was around 5.6
now, we have two active branches of Perl
you might think of them as forks, but they aren't, really, they're much closer than that 06:00
a lot of ideas have started in one and spread to the other
Sargun So, how do you kill a perl? stake to the heart, silver bullet? 06:01
sorear, Like Py 3x and 2x
kchevy hey ppls 07:19
sorear -> sleep 07:27
lolo_91 Howdy world! o/ 09:29
moritz_ \o 09:30
jnthn o/, moritz_ 09:30
moritz_ had a very tasty mango for breakfast 09:32
well, actually half of it. $wife got the other half :-)
jnthn moritz_: Healthy! I just eated a chokladbullar... :) 09:33
mberends :-) IRC at $work... 09:34
moritz_ looks tasty too :-) 09:34
good morning mberends
mberends hi moritz_, I hope you're getting a bit of regular sleep 09:35
jnthn mberen! ! \o/
moritz_ mberends: if by "regular" you mean "a few times a few hours in a row each night", then yes, I do :-)
jdhore moritz_, mind a quick, slightly off-topic PM?
jnthn er, where'd the ds go.... :) 09:36
moritz_ jdhore: go right ahead
mberends jnthn: huffman eated them 09:36
jnthn Guess he's gotta have breakfast too :) 09:37
Aww. 09:40
jnthn glances the backscroll and realizes he missed saying hi to lolo
moritz_ www.perlmonks.org/?node_id=887946 # curious question (not Perl 6 though) 09:48
dalek p-cl-parser: 09a6725 | moritz++ | / (2 files):
the code now lives in the perl6/nqp repo
10:05
: bb031ec | moritz++ | misc/dalek-conf.json:
stop tp track nqp-cl-parser, it is now incorporated in nqp
10:06
jnthn moritz_: If you're in that file, any chance you can add the nom branch of Rakudo to the tracking? 10:13
If you have a moment free to do it, anyway... :)
jnthn keeps forgetting to and is at $dayjob atm.
moritz_ jnthn: sure, cando
dalek : 169a365 | moritz++ | misc/dalek-conf.json:
nom nom. Track rakudo's nom branch.
10:14
jdhore took off his $dayjob today to spend V-day with the wife :D 10:15
dalek p: 5c5b494 | moritz++ | src/HLL/Compiler.pm:
rewrite parts of command_line in nqp
10:16
p: 2255560 | bacek++ | src/ops/nqp.ops:
Fix write barrier in updating method_cache
p: f6b7f76 | moritz++ | t/p6regex/01-regex.t:
make p6regex tests runnable again
: 10de494 | moritz++ | misc/dalek-conf.json:
[dalek] nqp is now pushed, so remove from the config
10:17
jnthn moritz_: Thanks!
moritz_ sorry for the dupe report, that was the "Test Hook" button on github
bubo part 10:25
moritz_ this part doesn't seem to have worked :-) 10:26
qiyong with perl6 do i have to use my vars ? like use strict implied? 10:41
moritz_ yes 10:43
except in -e oneliners, where it's off by default (but I don't think any compiler implements "no strict" mode yet)
rakudo: $x 10:44
p6eval rakudo : OUTPUT«===SORRY!===␤Symbol '$x' not predeclared in <anonymous> (/tmp/VjIrbH8XcQ:22)␤»
masak good almost-noon, #perl6 10:54
phenny masak: 02:20Z <colomon> tell masak I apologize profusely for the inscrutability of my second p4 submission. Basically I spent all my time (definitely more than I could really afford to spend on the contest) trying to get it to work better, and no time at all trying to polish it. I do believe it will play "perfectly" for games up to 50 or 60 stones, after which point it will play pretty well against a normal human, but get toasted by a perfect versio
masak no need to apologize, colomon :)
there's a nice spread to the solutions, and none of them are perfect. 10:55
the solution colomon-2 just happens to have a most interesting mix of perfections and imperfections :P
jnthn lawltismasak 10:56
moritz_ straw poll: assume a programming language that has two functions, Sum and Total. Would you know what they did, or at least how they differed? 11:00
background: they both appear in a popular computer algebra system
jnthn Well, to sum some things is to add them up. To total some things is to destroy them ("I totalled my car!"). ;) 11:01
moritz_ :-)
jnthn But no, if I saw both I'd have to go read the docs. :) 11:01
(That is, the difference wouldn't be obvious to me from the names.) 11:02
moritz_ thanks
masak moritz_: no, I don't think I can guess how they differ. 11:04
moritz_ turns out that in Mathematica, Total is like [+] in Perl 6 11:05
whereas Sum has a built-in iterator
moritz_ so Sum is more like [+] @array[0, 1 ... *] or so 11:06
confused the hell out of me at first
masak feels a bit silly to have both Sum and Total, no matter what the difference is... :) 11:11
moritz_ well, Sum can also calculate closed forms of algebraic sums 11:12
Sum[1/x^2, {x, 1, Infinity}]
-> pi^2/6
so there's a need for it... it's just the naming that's silly 11:13
masak *nod*
moritz_ rakudo: say ([+] (1..*).map(1 / * ** 2).[^10]) - pi * pi / 6 11:14
p6eval rakudo : OUTPUT«-0.0951663356816856␤»
moritz_ rakudo: say ([+] (1..*).map(1 / * ** 2).[^20]) - pi * pi / 6
p6eval rakudo : OUTPUT«-0.0487708229352031␤»
moritz_ rakudo: say ([+] (1..*).map(1 / * ** 2).[^50]) - pi * pi / 6
p6eval rakudo : OUTPUT«-0.0198013332266973␤»
moritz_ rakudo: say ([+] (1..*).map(1 / * ** 2).[^500]) - pi * pi / 6 11:15
p6eval rakudo : OUTPUT«-0.0019980013333325␤»
moritz_ identity experimentally verified :-)
rakudo: say ([+] (1..*).map(1 / * ** 2).[^5000]) - pi * pi / 6
p6eval rakudo : OUTPUT«(timeout)»
moritz_ rakudo: say ([+] (1..*).map(1 / * ** 2).[^1000]) - pi * pi / 6
p6eval rakudo : OUTPUT«-0.000999500166664946␤»
moritz_ rakudo: say ([+] (1..1000).map(1 / * ** 2)) - pi * pi / 6 11:16
p6eval rakudo : OUTPUT«-0.000999500166664946␤»
moritz_ niecza: say ([+] (1..1000).map(1 / * ** 2)) - pi * pi / 6 11:17
p6eval niecza v2-57-gdc84a47: OUTPUT«(timeout)»
moritz_ niecza: say ([+] (1..100).map(1 / * ** 2)) - pi * pi / 6 11:18
p6eval niecza v2-57-gdc84a47: OUTPUT«===SORRY!===␤␤Confused at /tmp/42itN1kEAc line 1:␤------> ([+] (1..100).map(1 / * ** 2)) - pi * ⏏pi / 6␤␤Undeclared routine:␤ 'pi' used at line Any()1␤␤Parse failed␤␤»
moritz_ niecza: say ([+] (1..100).map(1 / * ** 2)) - 3.1415926**2 / 6 11:18
p6eval niecza v2-57-gdc84a47: OUTPUT«===SORRY!===␤␤Action method dec_number not yet implemented at /tmp/zV9uyXOoI7 line 1:␤------> +] (1..100).map(1 / * ** 2)) - 3.1415926⏏**2 / 6␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/SAFE.setting line
..377 (SAFE die …
moritz_ niecza: say ([+] (1..100).map(1 / * ** 2)) - 3.1415926e0**2 / 6 11:19
p6eval niecza v2-57-gdc84a47: OUTPUT«===SORRY!===␤␤Action method escale not yet implemented at /tmp/9_qaTrkYId line 1:␤------> (1..100).map(1 / * ** 2)) - 3.1415926e0⏏**2 / 6␤␤Action method dec_number not yet implemented at /tmp/9_qaTrkYId line 1:␤------>
..(1..100).map(1 / * …
moritz_ eek.
no wonder there's no pi term :-)
masak found a bug in &slurp 11:31
it duplicates empty lines.
moritz_ huh.
masak no, wait.
it's .lines
good, then it's testable here. 11:32
rakudo: .say for "A\n\nB".lines
p6eval rakudo : OUTPUT«A␤␤␤B␤»
masak submits rakudobug
masak yes! colomon's second algorithm finally made a tiny mistake! :P 12:46
moritz_ :-) 12:51
masak: did you take a perfectly playing solution, and let the two play against each other? 12:52
masak no, that would have been an even better idea.
I just had colomon-2 play against itself until it did something unexpected.
takadonet morning all 12:53
masak takadonet: \o 12:54
takadonet masak: how are u sir? 12:54
masak takadonet: sir, I have a bit of a sore throat, but I'm otherwise of a good mood and fine temperament. 12:55
takadonet: what about u sir?
takadonet masak: busy as hell at work and got a good chuck of Text::Diff working 12:57
masak it's funny, I never hear people say "they give me too little to do at work, I find myself having too much free time". 12:58
moritz_ rakudo: say "a\nb\n\nc".lines.perl
p6eval rakudo : OUTPUT«("a", "b", "", "", "c")␤»
masak odd, no? 12:59
moritz_ masak: but that's just because people won't want talk about having too little work, fearing they might get too much
s/won/don/
takadonet I actually do hear that sometime just not in our group
moritz_ there were times where I had some side jobs where I had too little work, and was terribly bored 13:00
colomon masak: how far did you have to go before colomon-2 made a mistake? 14:10
colomon has no illusions colomon-2 is perfect -- far from it! -- but never systematically tested it to see where it loses its grip. 14:13
masak colomon: 56 stones. 14:17
colomon: colomon-2 against itself with 56 stones => player 1 wins, but it's a guaranteed win for player 2 => player 2 made a mistake somewhere. 14:18
I'm happy I found *something*, because my blog post takes the angle that everyone failed in some sense. :)
masak I'm not too bothered by having had to look hard for a crack, that only speaks to colomon-2's advantage. 14:18
colomon so my estimate that it played perfectly to somewhere between 50 and 60 was pretty accurate. :) 14:20
masak yeah :)
I plan to delve a bit more into the workings of colomon-2, and then I'll publish the p4 post.
probably sometime late tonight.
colomon masak: it just occurs to me that an interesting question about the 56 case is at what point my code knew it had a winning situation. 14:47
masak it's more about player 2 bottoming out in a win before player 1 does, I think. 14:51
er, sorry. other way around.
colomon masak: but at some point along the line my code should have had a good enough grasp of things to know whether it had a sure thing or not. 14:52
colomon It would be interesting to know at what point that happened. (for me, anyway.) 14:53
(interesting to me, I mean.)
moritz_ colomon: arnsholt posted his perfectly playing solution in the backlog at some point. You can let it play against yours (and swap the players for each length too), and see where the non-optimal behavior starts 14:55
masak colomon: what moritz_ said. also feel free to make use of my harness at www.flickr.com/photos/r-butler/4766152181/ 14:55
er, mispaste :)
gist.github.com/824207 14:56
colomon Actually, my code has a built-in mode for playing against itself. :)
daxim always you with your fruit pr0nz.
masak daxim: dang, found out again!
daxim: (I'm building a presentation for $work. this one is for the red-green-refactor slide) :)
arnsholt As an aside, I'm very jealous of masak's slide-building skills 14:57
masak 14:58
masak that's a refreshing contrast from constantly having to live with my perfectionist side. :) 14:59
arnsholt I was very impressed with the slides you had for your Copenhagen presentation (Prince of Parsea, IIRC). They complemented the talk very well 15:00
masak thanks. that's from the minimalist (Takahashi?) framework I built. it's called Failure: github.com/masak/failure 15:03
masak I also have another, newer framework which I've used once and got good feedback on. I call it "Infinite Canvas", and it can be seen in github.com/masak/osdc-fr-2010-hard.../downloads 15:04
jnthn <- just uses Powerpoint O.O 15:05
masak (my primary weakness is that I write my own frameworks) :)
moritz_ masak: your primary weakness is that existing frameworks just don't work good enough for you :-) 15:06
masak I *hope* that's the reason. :)
but yes. I have a bit of an aversion to the normal way of doing presentations, and I like the control that a home-grown framework gives me. 15:08
colomon has never made a slide presentation...
masak some of the best presenters I know do very simple slides, and have each of them up for a second or two. I like that.
moritz_ that style is nearly never found in the scientific community 15:10
daxim "I have no powerpoint."
moritz_ "I have power, but not point"
daxim presentationzen.blogs.com/photos/un.../ppt_4.jpg 15:12
jnthn did give up on bullet points a while ago and doesn't miss them at all :) 15:13
masak likes norvig.com/Gettysburg/
jnthn Only used the Takahashi style for lightning talks really though.
arnsholt daxim: What do the kana say? 15:14
daxim see above.
arnsholt Ah, right =)
daxim I first encountered takahashi method in bochum at german perl workshop 2006, presented by audreyt 15:15
that was quite an eye-opener 15:16
masak yes, I also discovered it via au++
also in 2006 :)
moritz_ perl6: say 1/2 15:19
p6eval pugs, rakudo , niecza v2-57-gdc84a47: OUTPUT«0.5␤» 15:19
moritz_ niecza: say 0.5
p6eval niecza v2-57-gdc84a47: OUTPUT«===SORRY!===␤␤Action method dec_number not yet implemented at /tmp/sZsqDdZgMO line 1 (EOF):␤------> say 0.5⏏<EOL>␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/SAFE.setting line 377 (SAFE die @ 2)␤ at
../home/p6eval/niecza…
masak pyrimidine: greetz. there has been general interest in bioperl6 lately. 15:23
daxim openbio hackathon in vienna thus july. 15:24
takadonet masak: u talking about ryan__ ? 15:26
pyrimidine masak: good to hear! If anyone wants to be added to the repo let me know. takadonet can also add (I think) 15:27
SkaRiko 9,9_0,0_4,4_1,1.0,12 Un saluto a tutti i presenti da SkaRiko 1,1..9􏿽x950􏿽x954􏿽x959C0I4A12O9􏿽x950􏿽x954􏿽x95 15:27
sera
takadonet pyrimidine: i do not think so
pyrimidine takadonet: looks like we would have to move it into an organization to add you as an admin 15:33
takadonet pyrimidine: no hurry
pyrimidine might be interesting to see how well rakudo deals with very large data like SNPs, next-gen data, etc. Speed is the major bottleneck there unfortunately 15:37
but one could possibly use zavolaj to interface to various tools (samtools) for those purposes 15:38
moritz_ I guess once 6model lands, packed arrays will help to reduce the memory footprint a lot
pyrimidine moritz_: timeline is supposed to be by next R*, correct? 15:39
moritz_ pyrimidine: April, yes. +- a month or so :-) 15:40
sorear good * #perl6 15:40
pyrimidine definitely worth looking into. Very likely can't go to BOSC this year at ISMB (Vienna would have been nice) 15:41
moritz_ oh hai sorear
pyrimidine sorear: o/
jnthn Note that packed arrays probably won't be in the initial chunk of nom work, but they can follow on very closely behind it. 15:50
jnthn will try and keep the branch scope as small as he sanely can
jnthn decommute & 15:59
moritz_ python3wos.appspot.com/ 16:24
dalek ast: 140dea8 | moritz++ | S32-str/lines.t:
first Str.lines tests
16:32
moritz_ rakudo: say "a\n\nb".comb(rx/ ^^ \N*)>>.Str.perl 16:34
p6eval rakudo : OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
moritz_ rakudo: say "a\n\nb".comb(rx/ ^^ \N*/)>>.Str.perl
p6eval rakudo : OUTPUT«("a", "", "", "b")␤»
moritz_ rakudo: say "a\n\nb".comb(rx/ ^^ \N*/)>>.from.perl 16:35
p6eval rakudo : OUTPUT«Method 'from' not found for invocant of class 'Str'␤ in main program body at line 22:/tmp/2Jse3RL_ZV␤»
moritz_ rakudo: say "a\n\nb".comb(rx/ ^^ \N*/, :match)>>.from.perl
p6eval rakudo : OUTPUT«(0, 2, 2, 3)␤»
moritz_ I guess that's that a bug, right? 16:36
if so, it's the bug behind the .lines() bug
moritz_ rakudo: say "a\n\nb".comb(rx/ ^^ \N*/, :match)>>.to.perl 16:37
p6eval rakudo : OUTPUT«(1, 2, 2, 4)␤»
moritz_ I think I have a fix. And I'm pretty sure I wrote the original, buggy code 16:42
spectesting now... 16:45
Tene journal.stuffwithstuff.com/2011/02/...-language/ looks interesting; haven't read it yet. 17:12
sorear niecza: .say for "a\n\nb".lines 17:26
p6eval niecza v2-57-gdc84a47: OUTPUT«a␤␤b␤»
TimToady Tene: he discovers the need for BEGIN semantics, then makes the mistake of automatically applying BEGIN semantics to every top-level statement, so he can't import into a block 17:36
masak another interesting advantage of the 'commit often' practice is that when the VM maxes out on memory, becomes unresponsive, and needs to be killed, no unnecessary pulling of the hairs over lost data needs to be performed. 17:39
dalek kudo/nom: cf9a50e | moritz++ | src/core/Cool-str.pm:
fix .comb for zero-width matches that do not coincide with the current position. Also fixes .lines and thus RT #84070
17:45
masak moritz_++ 17:46
moritz_ and of course I forgot something... 17:49
dalek kudo/nom: 433000e | moritz++ | t/spectest.data:
run lines.t
17:51
donri Hi there, I want to install rakudo to ~/.local, how? 17:51
moritz_ donri: configure parrot with --prefix=~/.local 17:52
donri: build parrot
donri: and then configure rakudo with --parrot-config=~/.local/bin/parrot_config
build and install rakudo
forgot, install parrot too of course
moritz_ there's also a --gen-parrot-prefix option in Configure.pl, but I think it has been reported not to work reliably 17:52
donri so I can't use --gen-parrot? 17:53
moritz_ you can try (together with --gen-parrot-prefix), but I'm not sure if it works. 17:54
dalek kudo/nom: b56186a | moritz++ | build/PARROT_REVISION:
parrot 3.1 release is immanent, bump PARROT_REVISIOIN for testing
17:56
moritz_ oops, I accidentally committed all my last changes to nom instead of master 17:57
I guess i need to cherry-pick then
sorear wait, does this mean you just got rakudo/nom ready to release? :) 17:59
moritz_ "parrot 3.1 release is immanent", not "rakudo release" :-) 18:00
anyway, I don't think it hurts nom to have those commits
moritz_ so I've just cherry-picked to master, and might even get double karma for my errors :-) 18:00
jdhore TimToady, Oh no, you used Flinstones characters too? 18:01
masak --gen-parrot-prefix "works", but you have to do a lot of the build process as root. 18:01
dalek kudo: 6fbb341 | moritz++ | src/core/Cool-str.pm:
fix .comb for zero-width matches that do not coincide with the current position. Also fixes .lines and thus RT #84070
kudo: 3de0187 | moritz++ | t/spectest.data:
run lines.t
kudo: 6f9116f | moritz++ | build/PARROT_REVISION:
parrot 3.1 release is immanent, bump PARROT_REVISIOIN for testing
TimToady jdhore: flintstones tends to be from merlyn++ 18:02
moritz_ masak: unless you install to a location where you have writing permissions
masak jdhore: "nom" is a Flintstones character?
moritz_: oh, true.
jdhore TimToady, Yeah, i know he used them in Learning Perl, but i was hoping for a different set of example characters in Programming Perl. :D
moritz_ tries that now
masak oh! it's release week! 18:04
[Coke] <random> at 24x80, the standard old school terminal is about 1/2 the golden ratio. 18:05
masak so if you put two next to each other, it's perfect? :) 18:06
TimToady which is great if you're characters are twice as tall as they are wide 18:07
*your
masak 真吗? 18:09
moritz_ donri: sorry, I was wrong. --gen-parrot-prefix= works fine here
donri yep, me too
> say 'Victory!' 18:10
Victory!
masak .u victory
phenny U+270C VICTORY HAND (✌)
TimToady masak: if you're characters are double wide, then it's a 24x40 screen :P
*your
!?@#$!!
sorear cute. I can't paste the second character there into my EUC-JP xterm running xjdic, it comes out as "?"
.u 吗 18:11
phenny U+5417 CJK UNIFIED IDEOGRAPH-5417 (吗)
TimToady it's simplified
masak yeah, sorry about that.
TimToady try 嗎instead
masak simplified is what LEIM produces by default.
sorear oh, I guess I need to get my hands on a copy of xcdic 18:12
masak I wonder what proportion of text-centering and other text-justification algorithms in the world assume fixed width and break for double-width characters.
TimToady use a terminal that does Unicode, is my recommendation
masak s/justification/justifying/
TimToady imagines programming Perl 6 in a proportional font someday 18:13
moritz_ masak: all those that work with proportional fonts shouldn't have problems with double-width
TimToady there's somewhere Python can't go...
otoh, internal tabs are a problem in any language 18:14
sorear TimToady: funny that; I actually had trouble finding a terminal that was willing to *not* do Unicode 18:15
sorear maybe someday I'll patch xjdic to add utf-8 to the supported encodings 18:15
masak TimToady: what's the allure of programming in a proportional font? I like the vertical aligning I can get from monospaced. 18:16
TimToady the question is whether the internal representation loses info; most Japanese editors still store in some non-Unicode form, iiuc 18:17
masak things like putting the hash values in the same column.
TimToady other than the tab problem, proportional text is prettier
sorear why can't Python do proportional fonts? 18:18
TimToady very difficult to detect mismatches when there's no redundancy 18:19
masak I once saw a proposal for a proportional-font editor with settable tab stops. if I were interested in proportional fonts for my source code, that's probably what I'd want.
I've also sometimes envied Fortress for its conversion to LaTeX.
moritz_ TimToady: prettier, but not better suited. In programming 'thin' characters like . and , usually carry much more meaning. Having them too thin makes code hard to read
sorear masak: check out lhs2TeX if you haven't already 18:20
moritz_ also constructs that match \w\.\w appear much more often in program code, and looks just Plain Wrong in proportional fonts 18:21
masak sorear: ooh 18:22
TimToady moritz_: your points are valid, but I often wish I had more choice than single or double width chars
moritz_ TimToady: maybe it's just that current proportional fonts weren't designed for programming 18:23
TimToady nod
sorear text files period are a pretty lousy interface to compilers 18:30
but every replacment I've seen sucks more, so
masak aye. 18:34
sorear ponders the implementation of &run on the CLR 18:42
the CLR System.Diagnostics.Process class, AFAICT, only supports running programs by $filename, $restofcommandline 18:43
TimToady yes, every program gets to build in its own "shell" quoting 18:45
sorear it's not clear how to map run($command) or run(@argv) onto that
kinda silly since on the other end, the CLR provides a perfectly ordinary string[] argv to Main methods 18:46
TimToady yeah, it's almost as bad as having a filesystem that is anti-gnostic to encodings 18:47
sorear anti-gnostic?
TimToady not only doesn't know, doesn't want to know 18:48
sorear thinks that a consistently UTF-16 filesystem is one of the things Windows does *much* better than Unix
TimToady yes, though I suspect that one of the centuries Unix will settle on a consistent UTF-8 system 18:49
coupling filename encodings to locale is insane 18:50
anyway, wrt run() you might be able to steal some ideas from P5 18:51
since it also has to deal with the Windows view of reality 18:52
sorear P5 only has to deal with the Windows view of reality on Windows
TimToady if it's feature decomposed correctly, it should depend on the "feature", not the OS
TimToady that was actually one of the earliest innovations in the early Configure scripts for rn and Perl 18:53
up till then, most #ifdefs were architecture based 18:54
rn and Perl switch to feature-based #ifdefs
*ed
an idea later picked up by the autoconf folks 18:55
PerlJam good * #perl6 18:55
TimToady */ 18:56
PerlJam TimToady: if you hadn't written patch, do you think someone else would have (at that time)? 18:57
TimToady eventually someone would have figgered it out, but there was a psychological barrier
which was that ed already provided a way to spit out a script
er, diff
could spit out an ed scripts
so people assumed that if they wanted to automate something, they should use that form of diff output 18:58
one of those places where the Unix philosophy was bogus
since ed didn't do one thing, nor did it do it well. :)
and same for diff
TimToady so there was a barrier to realizing that a context diff could be read by computers as well as humans 18:59
I just saw through that barrier first
or was crazy enough to do something about it, might be more accurate 19:00
PerlJam heh, I showed some diff output to some students the other day. I think they'd contest the idea that diff output can be read by humans ;)
TimToady patch was really written in self-defence before the 2nd version of rn came out, since no one would patch the first version consistently
TimToady kids these days can only read tiny proportional-font letters on a tiny touchscreen 19:01
*defense if you're not British
flussence I don't agree with always-UTF16 being a good idea on a filesystem. Not saying UTF-8 is perfect, but that at least is optimised for the common case 19:03
PerlJam my filesystem is ASCII and I like it that way!
;>
flussence specifying utf-byte-width per directory might've been a better approach IMO 19:04
sorear flussence: there are 3 billion people in East Asia who would object to your notion of "the common case"
TimToady flussence: it's the common case in western countries only..what sorear said
sorear hanzi are 50% larger in utf8 than utf16
sjohnson what's wrong with utf-8 filenames?
sorear not 100% sure about devanagari et al
flussence yeah, but there's still about 100k files on an OS disk that never need more than ASCII... 19:05
sorear .u KANNADA
phenny U+0C85 KANNADA LETTER A (ಅ)
sorear .u DEVANAGARI
TimToady UTF-8 also doesn't need to worry about byte order
phenny U+0950 DEVANAGARI OM (ॐ)
PerlJam I think it's just that that whole idea of a "file" is moving from being a "low level, OS-centric thing" to being a "high level, user-centric thing" 19:06
files used to be user-centric only by accident.
sorear the concept of files used to be pretty diverse 19:07
"a file is a string of bytes" is actually quite recent
TimToady Unix: do half a thing and do it half well...
flussence that just means theres 75% room for improvement :) 19:08
sorear pre-Unix files wore more like tables in a modern database (except without joins)
the memetic precursor of the modern file was the stack of punched cards 19:09
when files started appearing, they kept a lot of misfeatures like 80-byte blocks at first 19:10
PerlJam It's all Herman Hollerith's fault
sorear FORTRAN 66 makes a beautiful example of people retaining tabular-data mentality even when it's completely inappropriate to the problem domain... 19:12
PerlJam sorear: just like all of those people who insist on using terminals that are 80 characters wide or write code that wraps at approximately 80 characters to accomodate them. 19:13
sorear I try to keep my code under 66 characters ;) 19:14
masak I try not to go beyond 78 characters. 19:15
it's more of a challenge in Java than in Perl 5/6 ;)
PerlJam I try to keep my terminals more than 100 chars wide but less than 150 :) 19:16
And I do still use a fixed-width font
sorear wonders if PerlJam used to use a VTxx in 132-column mode 19:17
mberends I prefer 72 characters because the output of pod2text then still fits in 80 characters, and hardcopy on A4 has a reasonable margin.
PerlJam sorear: vt220 I think ... yep
sorear: but back then I still coded as if there was an invisible barrier at 80 characters because most terminals were 19:18
mberends: be not constrained by the limitations of dead trees!
mberends heh
donri So because you never get this question: a complete, stable and "production ready" perl6 implementation, are we talking a year or five? 19:33
tadzik two 19:34
*SCNR*
seriously, rather five than two, IMHO
dsp_ wasn't it due out by christmas?
tadzik but I'd Love to be wrong
takadonet dsp_: we never told you which christmas :) 19:35
dsp_ takadonet: ssshhhh :D
mberends donri: it depends who you ask. I think... I'd rather not say ;-)
masak donri: I would answer the question if I thought there was a single answer. 19:38
in reality, it's a sliding-scale thing.
donri In summary, what are the different answers? :)
I'll happily take a very loose estimation
masak "two years", "five years", "rather not say", "don't think there's one answer" :)
donri :D 19:39
masak donri: here's what happened for me: I started out using Perl 6. a lot. then I realized that I can already use it for a fair amount of things.
donri: and for other things it's unusable, but will be usable in the future.
and it's difficult to summarize the situation better than that. 19:40
I explicitly don't believe in a big-bang Production Ready 6.0.0 release thing.
the closest thing we had like that was Rakudo Star, this last summer. 19:41
it made a splash, but not a particularly big one, as splashes go. I doubt we'll have the chance to make a bigger one anytime soon.
so we should focus on showing Perl 6's current strengths, and pulling people in to help work on its weaknesses. :) 19:42
donri: does that answer your question?
donri There doesn't seem to be an answer to my question. ;) 19:43
masak someone with a crystal ball might do better. 19:44
flussence it'll be production ready when you start using it in production
masak I use it in production.
it's been faithfully rendering the HTML of my blog since September. 19:45
donri Last I checked, e.g. speed wasn't even a concern yet and rakudo was mad slow on random dead-simple things 19:46
Which is certianly understandable and surely acceptable, but not what I mean with "production ready"
jnthn By now, speed is very high on the list. :) 19:47
mberends Lately I figured out what I think most people mean by "production ready". It means "guaranteed as far as we can tell not to break your production source code any more". Which to us means, the specs freeze.
donri I'm not even sure what I mean, thus the scare-quotes. 19:48
flussence if you want "guaranteed not to break with updates", one option is to never update. Ever.
(my $dayjob does that...)
donri But there are rather well established practices of what to call a alpha release and what to call a final release.
Where would you say rakudo is on such a spectrum? 19:49
masak mberends: well, a couple of days ago S05 changed. that's generally the most stable synopsis, IMO. spec freeze, by whatever mechanism that's applied, doesn't seem to be on the horizon.
masak mberends: OTOH, I'm not sure it'd be beneficial to consider a spec freeze before we have a reasonably versatile/complete implementation. 19:50
[Coke] doesn't pmichaud have a blog entry somewhere about stable vs. alpha vs. 1.0 that tries to address the terminology?
flussence to use a javascript analogy, I'd say Rakudo's at where Firefox 2.0 was
the useful stuff is there, it's just not fast yet 19:51
masak donri: on such a spectrum, I would say Rakudo is somewhere between alpha and beta. but even there, it's not as one-dimensional as that.
mberends masak: +1. After a first "ready" I guess specs can still extend the language, but must do so within non-breaking constraints the way Perl 5 does.
masak donri: some features of Rakudo are very stable.
mberends: we could always do releases of the spec: 6.0.0, 6.1.0... 19:52
mberends: though I believe it's still much too early to do that.
mberends yes
masak mberends: similarly, I believe it's still much too early for any specific Perl 6 module in the ecosystem to do versioning.
it's just not worth the hassle.
yet.
TimToady if you declare you're using a particular version of Perl, then we have to emulate that version later, according to spec 19:53
we could start 6.0.0 today, but we'd end up with a lot of emulation later
mberends so let's not do that ;) 19:54
masak I think the most beneficial thing for Perl 6 would be if people keep on implementing the spec like we are now, making it ever more stable/reliable/frozen. meanwhile, we promote the language through blog posts, talks, and tutorials. 19:55
TimToady and rosettacode :) 19:55
masak \o/
jnthn And using it for stuff. :)
TimToady esp dogfoody stuff
masak aye. 19:56
[Coke] I need to get a "safe" rakudo install I can use for day to day that isn't constantly getting blown away by parrot & rakudo upgrades.
donri Wasn't that what Star was intended to be?
masak [Coke]: huh? blown away?
TimToady I've not had much of anything blown away, ever.
masak [Coke]: just don't upgrade! :)
TimToady my quiz editor has been working with HEAD for some time now 19:57
jnthn Not surprised, if you never moved from HEAD to master :P
TimToady 'course that's not stressing the new bits :)
well, whatever the front thing is called
mberends TimToady: I don't doubt your word at all, but why esp dogfoody stuff? 19:58
jnthn heh, it's kinda still called HEAD in git ;)
masak [Coke]: the only painful upgrade for me was from alpha to ng. took months to move the code over.
jnthn Yeah, alpha => ng was ouchy. 19:58
masak mberends: because dogfoody stuff simultaneously exercises the language and produces tools for the language?
mberends: like neutro, for example.
jnthn is going to do his best to make ng => nom far less painful
TimToady currently the dogfoody stuff puts the most stress on the system to be stable and fast 19:59
or more accurately, stabilizable and optimizable...
[Coke] I upgrade parrot several times a day, and when i install rakudo, I put it in the same place. I often wipe the install directory as part of testing parrot. 20:00
masak also, dogfoody stuff tends to put me in a mood of "let's just write it like this" without being too worried about whether Rakudo supports it. it's a great way to discover rakudobugs :)
mberends I thought it might have been about reducing dependence on other tools, or about a higher level of Turing Completeness that I'm not aware of.
TimToady it's more about forcing convergence where we can, and minimizing platform dependencies 20:01
while keeping the language optmizable for any specific VM
*i 20:02
and keeping the platform-agostical optimizations platform agnostic 20:03
mberends *n
TimToady that too
TimToady wonders what a "gostic interpolation" would be... 20:04
frettled Might be related to Gosling? 20:05
masak or ghosts? 20:13
cogno I have lost touch with perl6, so I may talk silly, but should not be a github group for stable Perl 6 software. 20:18
masak cogno: seen modules.perl6.org?
cogno A major Perl 6 release should not break these softs or they should be fixed before. 20:19
masak cogno: that's a nice goal, but hard to enforce without some kind of tooling/automation.
cogno Masak: do we commit to fix these if broken.
??
moritz_ cogno: who is "we"?
cogno: if you commit to it, "we" do :-) 20:20
cogno :)
moritz_ I personally also commit to fix my modules, as soon as I learn of breakage
masak cogno: things like that are fixed as soon as we become aware of them. 20:20
cogno Modules are hot dog food :) 20:22
masak cogno++ # "hot dog food"! 20:23
cogno Cogno is too much occupied learning category theory, chu spaces and HTML 5 to pay enough attention to Perl 6. But I am sure all these interests will converge someday 20:26
masak undoubtedly. 20:27
cogno Masak, i am considering writing subway shuffle as a HTML canvas 20:33
moritz_ don't consider, do 20:36
masak </yoda> 20:37
tadzik what's "dogfoody stuff"? 20:47
TimToady en.wikipedia.org/wiki/Eating_your_own_dog_food 20:49
[Coke] icecreaming, champagning... 20:53
TimToady marketroids don't understand humility 20:54
mathw finds the 6model Rakudo code very interesting 21:00
jnthn mathw: The few bits I put into the Rakudo repo in the nom branch so far? 21:01
mathw yeah 21:02
moritz_ jnthn: I advertised them in a blog post :-) 21:02
mathw src/metamodel, yeah?
I'm finding it pleasingly comprehensible
moritz_ yes
jnthn mathw: src/Perl6/Metamodel
Not src/metamodel - that's the older stuff ;)
mathw hah
mathw okay is the new stuff as comprheensible 21:03
does this mean I should've learned how rakudo works inside earlier?
(but when would I have had time for that)
jnthn mathw: Yes :)
jnthn moritz_: Any chance you could link to github.com/rakudo/rakudo/tree/nom/.../Metamodel instead? :) 21:04
mathw okay so ClassHOW is good...
just a big collection of roles
moritz_ jnthn: yes, doing that now...
jnthn mathw: It'll have some bits of its own.
mathw good
jnthn mathw: But yes, much of it comes from roles.
mathw it would be a bit too mind-bending if it could all come from roles
jnthn mathw: If you find the factoring interesting also see scg.unibe.ch/archive/papers/Duca05y...sTrait.pdf 21:05
mathw it certainly makes sense t ohave roles for AttributeContainer and MethodContainer 21:06
jnthn Right. Roles and classes both have methods.
And roles come in their parametric and concrete variants.
mathw heh I see RoleContainer is missing a certain something special :) 21:07
jnthn mathw: Right.
mathw: It'll come later. See github.com/rakudo/rakudo/blob/nom/...P.markdown for my nom roadmap.
mathw well of course it'll come later :) 21:08
it's awesome that you can write metaclasses in NQP like this
jnthn mathw: Scarier is that NQPs own metaclasses are written in NQP. :) 21:09
Bootstrapping FTW.
But yes, I'm enjoying writing them in a Perl 6 subset. :)
mathw so the only bits not written in NQP are the fundamental components you need to implement the metamodel?
jnthn Right.
mathw awesome
jnthn There's one core meta-object. 21:10
mathw I'd read that this was going to be good for porting to other platforms, but I hadn't realised it was *this* good
jnthn The bits are are VM-specific are chosen very carefully.
s:1st/are/that/
masak jnthn++
jnthn So we can write the meta-objets in this way, but still get good performance.
mathw nice
jnthn There's only so many code paths that need to be really fast. They're method dispatch, attribute access, object allocation and nominal type checks. 21:11
mathw well when you get right down to it, those are what an object-oriented system is built on 21:12
moritz_ jnthn: links updated 21:12
jnthn moritz_++
mathw :) 21:13
jnthn++
TimToady group ++ 21:14
tadzik looking at github.com/rakudo/rakudo/blob/nom/...sioning.pm I assume nqp has no '$.foo'? 21:15
jnthn tadzik: Correct
Not at the moment, anyway
mathw everybody++
masak chromatic++ # www.modernperlbooks.com/mt/2011/02/...marks.html
jnthn tadzik: We could easily do the non-rw case of those. 21:16
tadzik jnthn: github.com/rakudo/rakudo/blob/nom/...ner.pm#L15 -- why not push like in #23?
colomon chromatic++ indeed! sweet post.
jnthn tadzik: There's an attribute auto-viv, erm, curiosity in NQP at the moment. 21:17
I need to talk with pmichaud++ about how to best deal with it.
tadzik mhm
masak jnthn: attribute auto-viv?
jnthn It's not new. Curiously, I ended up with the exact same "bug" in nqpclr too :)
masak: At the moment, an attribute slot for has @!foo is empty and the first time it's accessed an array lazily springs to life in it. 21:18
masak: If it's used in a binding context, all ends very well.
If it's not...things end badly.
masak huh.
jnthn Right. :)
I think Pm probably has some views on how to fix this. 21:19
So I'd rather hear them before diving in and changing stuff.
tadzik I don't get it, why cuddled elses are bad. Everyone likes to be cuddled
jnthn masak: But it'll get changed/fixed in some way, for sure.
masak tadzik: you're allowed to cuddle your elses on Valentine's Day :) 21:20
tadzik my elses have Valentine's day everyday :)
masak tadzik: have you read "Perl Best Practices"? 21:21
tadzik masak: nah
masak there's an argument there about it.
mathw I don't think I've ever seen anybody arguing for cuddled elses in any language at all
masak it goes like this: the eye scans vertically along the leftmost edge of the code.
mathw -> bed 21:22
masak therefore, important things should be first on the line.
therefore, consider not cuddling your elses.
TimToady makes it easier to install an elsif too
PerlJam masak: except that "the left most edge" is larger than 1 charcter :)
er, character
TimToady and vertical screen real estate isn't all that important anymore 21:23
masak PerlJam: well, even then it's about probabilities, and you want to maximize those.
PerlJam Hrm. www.perlfoundation.org/perl6/index....umentation has many LTA links and I can't seem to login to fix them :( 21:54
jnthn moritz_: Somehow, it seens nqp doesn't have a non-zero when an unhandled exception occurs now. Instead, it prints the usage message. Any ideas? 22:03
jdhore Question: If i use static typing (my Str $foo) in Perl 6, are there (or is it planned to have) anything like casts or functions to do conversions? Or is it basically assumed that if you'd be using a cast, just don't statically type. 22:12
PerlJam jdhore: static typing and type conversions are not mutually exclusive you know 22:13
jdhore true 22:14
PerlJam jdhore: so ... "functions to do conversions" Sure, why not?
jnthn It's probably better to see those as type constraints that may or may not have static effects. 22:15
Tene rakudo: say 1.WHAT; say 1.Str.WHAT;
masak casts generally look like this in Perl 6: (2 + 2).Str
p6eval rakudo 6f9116: OUTPUT«Int()␤Str()␤»
Tene like that
masak what Tene said :)
Rotwang what is this ␤ character?
PerlJam Rotwang: a newline?
masak it's a representation of a newline.
Rotwang thx 22:16
masak 'say' prints stuff and then a newline.
either that, or we really like the Netherlands :P
jnthn Well, or both. ;) 22:17
jnthn likes newlines AND the Netherlands
masak jdhore: I think an Apocalypsis mentioned that if an assignment is going to fail because of type mismatch, Perl 6 can look for the needed type conversion method. it's not spec though, and I'm not 100% convinced it's a good idea. 22:18
jnthn It's not spec, and not likely to happen. 22:19
masak there you go, then.
jnthn We may introduce coercion types to explicitly say you want that.
moritz_ 23:03 < jnthn> moritz_: Somehow, it seens nqp doesn't have a non-zero when an [...]
PerlJam Implicit conversions are evil
moritz_ non-zero return status? or what?
jnthn moritz_: sorry, I was sure I'd typed exit code!
moritz_: But let me make realclean just to be sure I've got everything straight...
moritz_ ./nqp -e 'pir::die("foo")'; echo $? 22:20
foo
[backtrace]
1
seem just fine
moritz_ -> sleep
masak moritz_: 'night. you'll have the p4 post to look forward to tomorrow :) 22:21
donri rakudo: say [+] gather for 1..999 { take $_ unless $_ % (3 & 5); } 22:42
p6eval rakudo 6f9116: OUTPUT«233168␤»
donri What do I win?
masak rakudo: say [+] grep { $_ %% (3 | 5) }, ^1000 22:46
p6eval rakudo 6f9116: OUTPUT«(timeout)»
masak rakudo: say [+] grep { $_ %% 3 & 5 }, ^1000 22:47
p6eval rakudo 6f9116: OUTPUT«(timeout)»
masak rakudo: .say unless $_ % (3 & 5) for 3..15 22:49
p6eval rakudo 6f9116: OUTPUT«3␤5␤6␤9␤10␤12␤15␤»
Tene rakudo: say [+] ^1000.grep: * %% 3 & 5
p6eval rakudo 6f9116: OUTPUT«0␤»
Tene rakudo: say [+] ^1000.grep: * %% (3 & 5) 22:50
p6eval rakudo 6f9116: OUTPUT«0␤»
Tene rakudo: say [+] (^1000).grep: * %% (3 & 5)
masak ...timeout
p6eval rakudo 6f9116: OUTPUT«(timeout)»
masak :(
Tene rakudo: say [+] (^1000).grep: * %% 3 22:51
p6eval rakudo 6f9116: OUTPUT«166833␤»
donri and multiples of five 22:52
donri rakudo: say [+] (1..999).grep: { !($_%(3&5)) } 22:52
p6eval rakudo 6f9116: OUTPUT«233168␤» 22:53
PerlJam idly wonders if !%% works 22:54
jnthn std: 5 !%% 3 22:55
p6eval std 625303c: OUTPUT«ok 00:01 119m␤»
donri lack of readline in the interactive rakudo is such an annoyance :( 23:03
Tene donri: I have readline... 23:04
donri: do you maybe not have readline-dev or whatever installed?
donri quite possible. need to recompile rakudo after installing that?
Tene You'll want to make sure to do a clean of the parrot dir too, to make sure parrot properly detects it during configure 23:05
donri git clean -fdx
Tene it's a parrot issue; rakudo just uses whatever parrot provides.
ftw
dalek kudo/nom: 6c07d98 | jnthn++ | src/Perl6/Metamodel/ClassHOW.pm:
Fill out ClassHOW a little more.
23:18
kudo/nom: ed92a03 | jnthn++ | src/core-nom/ (3 files):
Start to sketch out the initial bits of the new core setting. Note that none of this will compile yet, much less run.
donri thanks Tene, works :) 23:20
sorear good * #perl6 23:21
tadzik hello sorear
donri good morningstar to you too good sir or otherwise
masak ok, people -- the wait is over: strangelyconsistent.org/blog/p4-pic...-of-stones 23:22
tadzik the wait is over? „Oh well, let's wait for the last task's results” :) 23:25
masak that's a new, separate wait :P 23:26
tadzik: did you just jump to the bottom of the post, eager for the result of the contest? :) 23:27
jnthn masak: "pit all the five non-trivial solutions against each other" is a link to the blog post itself. 23:29
Should it be?
tadzik masak: no :) 23:35
masak jnthn: no, that seems needlessly self-referent. :) fixing. 23:35
masak fixed. jnthn++ 23:39
dalek p: 1307625 | jonathan++ | src/pmc/dispatchersub.pmc:
Fix up dispatcher sub cloning.
23:41
p: 86697e2 | jonathan++ | src/metamodel/how/NQPMu.pm:
Mark the Str proto as also being the parrot_vtable handler for get_string. This means say(SomeTypeObj) works.
jnthn Turns out the new proto approach to multis makes some things a bunch easier. :) 23:43
Tene phenny: tell donri btw, if you *do* run into other non-readline programs, please use rlwrap. Friends don't let friends use non-readline interactive programs. ;) 23:45
phenny Tene: I'll pass that on when donri is around.
masak *lol* -- in railspikes.com/2008/7/14/why-progra...ld-play-go , this comment by "Internet TV", made my day: "Will have to check it out, haven’t heard of Go before. Looks a lot like pente."
only on the Internet...
(and possibly Usenet) 23:46
Tene .wik Pente
phenny "Pente is a strategy board game created in 1977 by Gary Gabrel." - en.wikipedia.org/wiki/Pente
masak it's Pente that looks a lot like Go, fwiw. 23:48
Tene Rather. :)
masak but the similarities stop at the board and the stones.
plobsing you mean there's more to it than that? ;)
masak anyway, it's as if someone would say "Will have to check it out, haven't heard of Chess before. Looks a lot like Crazyhouse." 23:51
Tene plobsing: Doesn't look like Pente has the knife fights. 23:53
bacek_at_work ~~ 23:54
masak, ping
plobsing thought chess looked a lot like checkers for a while
masak bacek_at_work: pong
bacek_at_work: about to go to bed. 23:55
bacek_at_work masak, can you test rakudo on parrot's gen_gc2 branch? I hope I fixed it.
masak Tene: have you heard of Hex being described as "a knife fight in a phone booth"? it's quite fitting, at least for small boards.
bacek_at_work: ok, testing now. 23:56
bacek_at_work masak, thanks!
Tene masak: I haven't.
masak hey, anything to help the Parrot people ;)