»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:02 ggoebel left
raiph #perl6: i've been using the new irclog summary feature to keep the klog (short backlog) for today fresh 00:04
00:04 cart left, cart joined
raiph to see the klog for today, click the "summary" link at irclog.perlgeek.de/perl6/today 00:06
00:07 ggoebel joined
raiph i have now read thru and klogged days 03, 04, 14, 15, 16, 17 of this month. 00:07
i plan to keep updating today's klog during each day. 00:09
so consider reading it as an alternative to reading the full backlog.
someone else klogged some of yesterday's log. :) i'd love to know who. 00:11
00:11 ggoebel left, Circlepuller__ joined
raiph beyond helping to keep the latest klog fresh, i have two options for spending klog related time this week. 00:14
1. create klogs for 05 thru 013. 00:15
00:15 Circlepuller_ left
raiph 2. create an annotated klog summary, like my pretty 2012-09-02 summary (either daily or weekly) 00:17
If anyone is actually reading these klogs and this line, please note on channel which of these two you prefer 00:18
00:19 ggoebel joined
raiph (pretty 2012-09-02 summary: blogs.perl.org/users/perl_6_reports...9-02.html) 00:20
(today's klog: irclog.perlgeek.de/out.pl?channel=p...summary=1)
. 00:22
[Coke]: "mentioning [mystery feature] someplace other than backscroll is a good idea." 00:23
[Coke]: heh. I've been mentioning it in the primary places to which I have access: 00:24
primary source: blogs.perl.org/users/perl_6_reports/; links at reddit; hn; perlmonks; here 00:26
00:28 MayDaniel left
timotimo r: say rand(); # i don't get why this is discouraged 00:32
p6eval rakudo 690dad: OUTPUT«===SORRY!===␤Unsupported use of rand(); in Perl 6 please use rand␤at /tmp/ZWYcu7tAwP:1␤»
00:34 ggoebel left 00:36 raiph left
rurban Still Changelog entries needed? 00:37
oops...
00:39 ggoebel joined 00:40 araujo left 00:46 atrodo left 00:56 araujo joined 01:00 anuby joined 01:01 hypolin joined 01:02 _daniel-s__ joined 01:05 ggoebel left, daniel-s__ left, integral joined, integral left, integral joined 01:06 Targen joined 01:09 drbean left 01:11 ggoebel joined 01:14 drbean joined 01:15 ggoebel left 01:17 raiph joined 01:21 ggoebel joined 01:27 araujo left 01:29 araujo joined, araujo left, araujo joined
MikeFair_ masak++ / lue++ : For the Inform 7 reference -- omg -- it's pretty amazing. I know it can currently only really be seen as a text based adventure game writing environment. It has got the basic framework of a really powerful generic large system coding environment. 01:30
In the same way that stacks and cards are metaphors for main GUI windows and the application screens that go on those cards in the xTalk world, rooms, objects, containers and the various verband state transitions in inform 7 do a great at allowing you to easily describe a giant state machine with many actors inside it 01:32
01:33 dayangkun left, dayangkun joined
MikeFair_ Each room is like a state for your end user experience, it can interact with certain objects in the current frame of reference, it can transition from this state to certain other states, the objects themselves have attributes and states, etc ;) 01:33
It clearly needs some attention to expanding it, but it's very inspiring work indeed. :) Thanks for the reference 01:34
What's clearly most interesting to me is that it is focused on developing"Interactive Fiction" in which the "player" experiences a "story". Well, in the context that everything inside a computer is pure fiction (we made up the meaning out of all those 1's and 0's and pictures and sounds emenating from the screen) -- all applications can be viewed as a form of Interactive Fiction. :) 01:36
geekosaur is trapped somewhere beteen a comment on game theory and one about leisure suit larry 01:41
timotimo i think i'm getting an infinite recursion or something on say, because my Point refers to $other-point. what method do i have to change? i simply {say @list-of-points;} 01:50
i have implemented both gist and Str.
ah, it terminated with a stack explosion. seems i need to implement perl
raiph timotimo: ooc are you using rakudo or niecza? 01:51
sorear raiph: rakudo, niecza doesn't say objects :D 01:52
raiph sorear: thanks
timotimo: are you using jnthn's debugger?
timotimo there's a debugger? sweet! 01:54
sorear jnthn was giving an unremarkable talk on exceptions at yapc::eu, then derailed it to introduce a DEBUGGER 01:55
you had to be there, the shock was palpable
colomon :) 01:56
timotimo :D 01:57
is there a video recording up already?
sorear not sure if I'll live to see the recordings 01:58
raiph 6guts.wordpress.com/2012/08/28/a-ra...-debugger/
timotimo :D 01:59
raiph timotimo: what version of rakudo are you using?
timotimo This is perl6 version 2012.08-82-g0ead9e4 built on parrot 4.7.0 revision RELEASE_4_7_0-165-g29796c6 02:00
there's probably an idiom for this: i want to go through a list and do some computation on the values which will give me one result and i want to assign that result to a local variable. 02:02
02:03 orafu left
sorear what kind of computation are you doing? 02:03
02:03 orafu joined
timotimo hm, in this case it'll be a simple comparison 02:04
sorear .max ?
colomon timotimo: maybe I'm misunderstanding something, but isn't that just .map?
timotimo something like select the $foo where $foo.other eqv $my-other-thing
sorear @list.first(*.other eqv $my-other-thing)
timotimo ah, cool and obvious. thanks!
02:04 dammark joined 02:05 _jaldhar joined
geekosaur huh. first description sounded like a fold to me 02:06
sorear me too
but that's probably because of our shared past
02:07 thou left
raiph timotimo: i'm guessing you installed rakudo, not rakudo star, right? 02:08
dammark me too
timotimo yes, i built it from git.
geekosaur (actually I thought reduce, but that's because my first exposure to it was not in fact haskell, it was apl :)
timotimo r: say (any(*.a, *.b).nearest).WHAT 02:09
p6eval rakudo 690dad: OUTPUT«No such method 'nearest' for invocant of type 'WhateverCode'␤ in sub AUTOTHREAD_METHOD at src/gen/CORE.setting:1892␤ in at src/gen/Metamodel.pm:2310␤ in block at /tmp/gj4gkICC41:1␤␤»
timotimo oh, silly me.
raiph then i think here's how you get the debugger: github.com/jnthn/rakudo-debugger
timotimo r: my $nearest = 10; say (any(*.a, *.b) eqv $nearest).WHAT
p6eval rakudo 690dad: OUTPUT«Junction()␤»
timotimo does that do what i think it does?
02:10 _jaldhar is now known as jaldhar
sorear probably not 02:10
02:10 dammark left
timotimo got it to work better with { any{$^a.a, $^a.b) eqv $nearest } 02:13
sorear "wow, it must really have been broken if mismatching the braces made it better" 02:17
geekosaur *snrk* 02:18
timotimo :3 02:21
just tells me i need to go home, get some rest. 02:22
decommute &
02:27 raiph left 02:38 timophone_ joined 02:44 mucker joined 02:53 timophone_ left 03:11 gootle joined
timotimo i overuse infix operators immensely in my program. i wonder why this is. 03:12
"to" for the distance between two points, "mid" for the mid-point, - for a vector from one to the other, % for the perpendicular bisector (quite proud of this one!), "on" for point-on-line test, "intersect" for intersecting two lines 03:13
03:31 mucker left 03:56 araujo left 04:15 satyavvd joined
moritz \o 04:17
04:22 _daniel-s__ is now known as daniel-s 04:49 wamba joined 05:13 mdupont joined
dalek osystem: 77c1056 | duff++ | META.list:
Add Locale::US
05:52
05:54 kaleem joined 05:58 daxim joined 06:00 awwaiid joined, snarkyboojum joined 06:01 wamba left 06:02 quietfanatic joined 06:12 Yappocall joined 06:17 cognominal left 06:24 cognominal joined 06:32 MayDaniel joined 06:34 cognominal left, cognominal joined 06:41 cognominal left 06:43 MayDaniel left 06:49 cognominal joined 06:50 araujo joined, araujo left, araujo joined 07:03 flightrecorder joined
dalek nda: d519ac8 | (Tobias Leich)++ | bin/panda:
absolute paths on windows never start with a slash

  `$home` already is `C:\Documents and ...`, you can't put cwd before that.
07:04
nda: a918d53 | tadzik++ | bin/panda:
Merge pull request #20 from FROGGS/master

fixing destdir, windows absolute paths dont start with slash
07:04 gootle left 07:07 fgomez left 07:12 gootle joined, brrt joined 07:23 wamba joined 07:27 FROGGS joined
FROGGS hi there 07:27
moritz \o 07:29
moritz is happy to see the panda running
07:30 kresike joined
kresike good morning all you happy perl6 people 07:30
FROGGS we need a good smoke system... this way somebody would have known that panda wasnt working on windows 07:31
kresike FROGGS, just blame windows for that :) 07:32
moritz FROGGS: yes, and we need to people to run that smoke testing system 07:33
07:35 wamba left
FROGGS moritz: I can do that (at least the second part) 07:35
but I need help doing the first one
but maybe tadzik wants to do that too ;o) 07:37
moritz I'd start with a cron job and a shell script, but I realize it doesn't work that way on windows :-) 07:38
jnthn morning o/
FROGGS morning
moritz: I like the "new" way cpan can do that
you just run: cpan smoke 07:39
moritz \o jnthn
FROGGS doing "panda smoke" would be awesome, fetching a list of modules, and test them
jnthn The "test all the things" bit is already done
I guess it's the submission that ain't yet 07:40
FROGGS but it might be also important to rebuild rakudo on at least a daily basis
jnthn chuckles at the backlog
"nobody expects the debugger inquisition!"
tadzik FROGGS: we have a smoke system. We don't have tests for windows, and we don't have smokers on windows
moritz and the smoker tester only works once panda is installed, no? 07:41
FROGGS moritz: I guess thats fine
tadzik FROGGS: 'panda smoke' will be just 'smoker <projects.json>' if you install emmentaler
FROGGS I have windows, I have panda installed ;o)
tadzik it's already there
jnthn oh, nice
FROGGS ahh, emmentaler, right
tadzik see tjs.azalayah.net/new.html and the dots at feather.perl6.nl/~sergot/modules/ 07:42
moritz tadzik: fwiw I've stolen that name :-)
tadzik moritz: what name?
moritz tadzik: for $work I've written a small website full of security holes, in order to teach looking for them
FROGGS and I have Mac OSX, FreeBSD, NetBSD, OpenBSD, GNU k/FreeBSD, GNU Hurd, Solaris
I'm sure I forgot something 07:43
moritz tadzik: I've named it emmentaler, because of the holes :-)
tadzik haha :
)
nice one
07:43 fhelmberger joined
tadzik FROGGS: sometimes I think that we should have a service that collects those reports from different users. Then I think we should maybe just use what cpantesters already built 07:44
FROGGS so we should port the cpantesters framework to perl6? Or do you mean we should clone it, and just generate these reports and using perl5 to do the dirty stuff? 07:46
07:47 kurahaupo joined
FROGGS are these feather servers powerfull enough to run the cpantesters code? 07:48
+database
moritz if the size of smoker community doesn't explode, it shouldn't be a problem 07:49
I mean, I expect at most about 100 reports a day from 20 reporters each by the end of the year
tadzik FROGGS: maybe we could just use the existing infrastructure and just send reports we generate which are compatibile
moritz they should be able to handle that easily 07:50
and if not, I could ask my employer if they are willing to donate some server power
07:55 drbean_ joined 07:57 drbean left, drbean_ is now known as drbean 08:08 cognominal left 08:11 kurahaupo left
felher How do i specify a hash that can only store closures with one parameter of type Int as values? "my &:(Int) %hash;" was my first attempt but this doesn't seem to be valid perl6. 08:18
moritz probably my Callable[:(Int)] %hash; or something along these lines 08:19
but type constraints on containers don't work well enough in rakudo for it be useful
felher moritz: okay, then i'll leave it for know. Thanks :) 08:20
08:20 Psyche^ joined
jnthn You can do it most reliably today with a subset type. 08:20
felher jnthn: subset + where + signature-introspection? 08:21
jnthn subset IntArgy of Block where { .params == 1 && .[0].type ~~ Int given $^b.signature }; # or so
felher jnthn: yeah, nice, thnx :) 08:22
08:23 Patterner left, Psyche^ is now known as Patterner
moritz .params[0].type ~~ Int 08:24
though I wonder if we should make at_pos work in Signature :-)
jnthn oh, yes... 08:25
though
subset IntArgy of Block where { .elems == 1 && .[0].type ~~ Int given $^b.signature.params }; # :-) 08:26
moritz :-)
jnthn Today's $dayjob involves writing a Perl 6 script called zombify... :)
felher at_pos is rakudo-specific, isn't it?
moritz felher: it is, but we should really spec it at AT_POS 08:27
felher moritz: i see :)
jnthn: zombify? :D
moritz thought jnthn's dayjob of consisted of unzombifying code (either killing it outright, or resurrecting it) 08:29
jnthn Sometimes the killed code needs to live on long enough to know it really is OK being dead :) 08:30
08:30 jia_ joined
moritz .o( burial with staging and checkpoints :-) 08:31
tadzik hey, I did that already
felher: Typed::Subroutines
github.com/tadzik/Typed-Subroutines 08:32
felher tadzik: sweet :) 08:33
thnx :)
tadzik you're welcome :)
cdn.memegenerator.net/instances/400...111566.jpg
moritz 10:33 <@cbstream> [davido] I was playing with C++11 yesterday. With a list-based 'for', anonymous subs that can capture their environment, r-value move semantics, and native regexes, it almost feels like 1995 has finally arrived.
felher :D 08:34
tadzik hehe
jnthn heh 08:35
jnthn had some fun pointing out that the lambdas we started enjoying in C# in 2005 were in Perl over a decade before while speaking on our company's .Net event last week :) 08:36
mathw :) 08:37
moritz Perl 5 got them in 5.0, right?
08:37 jia_ left
mathw That said, it's still a big deal that they're in a language so mainstream as C# 08:37
jnthn mathw: Yes, very much so. 08:38
moritz aye
mathw it's like the rest of the worl dis finally catching up
...with Lisp
jnthn mathw: Had chance to play with the new async/await stuff yet?
mathw No we don't have VS2012
jnthn I don't at any $client, but have been having a look at it. 08:39
moritz I think that Lisp will eventually win by its features trickling into mainstream languages, not by lisp becoming mainstream :-)
jnthn Mostly because I had to give a talk about 'em :)
mathw It looks interesting, although I have become accustomed to using Reactive Extensions for my asynchronous programming in C#. However, I think the async/await syntax looks nicer, particular for combining asynchronous operations 08:40
Su-Shee moritz: I think so too. Unless they finally manage to create a great "environment"
08:46 dakkar joined 08:47 cognominal joined 08:53 cognominal left 09:07 wamba joined
mathw my main beef with Lisp is the dynamic typing. Much of the rest of it is very cool (especially in Lisps with lexical scope) 09:11
09:11 cognominal joined
moritz still wonders if it's possible to make a type system that's static but not annoying 09:13
arnsholt The Common Lisp type system is pretty neat 09:14
It's not really static, as such though, I think
(My main beef with Lisp is the syntax. Cool language, terrible syntax) 09:15
Su-Shee to quote rick hickey's talk about simple versus easy: what have all your bugs in common? they passed your test suite. they passed the type check. ;) 09:16
mathw meh, that's just because most languages have a deeply inadequate type system 09:17
jnthn My word are grammars awesome... :)
arnsholt I dunno. After some dabbling in Haskell I find the static typing to be unfamiliar, but in the end the solution is to program in a way that's compatible with Haskell 09:18
mathw That's the only way to get by in Haskell
arnsholt When doing exploratory programming, most of the time where the compiler says something about "got TypeA, expected TypeB" is where I've done some ridiculous braino that would result in a run-time error in Perl for example 09:19
Yeah, once you start basing your work on the types rather than working around them, it flows quite smoothly
sorear nwc10++
mathw This is one reason I like Perl 6 so much - if you add type annotations you get many of the really dumb brainfails caught at compile time 09:20
09:21 kurahaupo joined
jnthn mathw: Yeah, though Rakudo does a fairly restricted subset of what can be done in that area. 09:21
09:22 sftp joined, sftp_ left 09:27 wk_ left
mathw yes but it can always improve in the future :) 09:29
my supposed doctoral research was about dependent types, which take this whole thing into crazy-land 09:30
jnthn Aye, and I'm sure it will :)
mathw kind of fun though
jnthn yes, it's fun stuff to work on :) 09:32
mathw woohoo! My friends' baby has arrived! Cue cute pictures!
moritz \o/ 09:33
I was holding a 10 day old baby the other day
mathw I was at this one's brother's first birthday party two weeks ago 09:34
he's quite a handful now he's mobile 09:35
moritz oh yes, that, erm, increases the administrative overhead :-) 09:37
mathw not quite sure how they're going to cope with a newborn and a one-year-old, but they seem confident 09:39
maybe they've just given up on sleep and stockpiled coffee
09:40 marmay joined
moritz the impression I got is that once you have > 1 child, you simply cannot supply the same level of (over)parenting to each that you previously did on each single one 09:40
so, both of them now need to wait a few minutes longer (on average) until nurishment or solace is supplied 09:42
dalek ecza: 254ba49 | sorear++ | lib/Kernel.cs:
Subs know their setting, avoid Top in binder
ecza: 7d7ce2e | sorear++ | lib/Kernel.cs:
CreateBasicTypes should know its target setting
ecza: 3d9f4b4 | sorear++ | lib/ (3 files):
ContextHandlers know their setting and do not need to use Top
09:44 dayangkun left
Ulti can someone point me in the right direction for parsing STDIN with a grammar without first slurping up all characters 09:47
sorear Ulti: in current implementations of perl 6 the grammar engine only runs on strings 09:48
Ulti can you just give .parse a file handle and it deals with buffered IO but not split on lines?
sorear you could run it a line at a time
Ulti sorear: ok
apart from my parser looks at new lines
and I dont know how many lines there are per record, hence the grammar
moritz then you must .slurp for now
Ulti okedoke
thanks 09:49
09:49 sisar joined
Ulti are strings immutable in perl6? 09:56
so doing something hacky like join on a lazy list that draws characters from STDIN, would that be utterly terrible memory wise? 09:57
moritz strings are immutable, yes
Ulti ok
moritz but if you do a join on a lazy list, the list stops being empty 09:58
erm
stops being lazy
so it's all evaluated, and then joined
Ulti yeah so I'll end up pulling in everything anyway but worse all the substrings will be hanging around
09:58 cognominal left
felher moritz: isn't there substr-rw or something like that? 09:58
(regarding immutable strings) 10:00
jnthn felher: That doesn't change the string itself, though. It expects you to pass it a scalar and it assigns a new string into it.
er, wait
it returns a scalar
Or wait, a Proxy I guess...
10:01 hypolin left
felher jnthn: ah, okay :) 10:01
Ulti yeah I didnt mean can you play with strings, I meant more is the underlying implementation immutable strings so you can do smart things like string pools
jnthn Ulti: Yes, and if you write the same string literal multiple times in a Perl 6 script then at least Rakudo will only actually make one Str 10:02
Ulti yeah that's fine, it just means my hacky idea is a bad one ;)
Timbus how many lines could you be allocating? and why wont they be garbage collected? 10:03
Ulti if I write this parser in a more traditional way without grammars I can do it efficiently, the point was just to play with perl6 features
10:04 cognominal joined
Timbus a parser. that probably explains it all 10:04
Ulti Timbus: they might be garbage collected but the peak memory used might be a lot since you will have the string for each line, then the string for each append of the first line to another 10:05
10:05 Ambrose joined, anuby left, kurahaupo left
Ulti I'm assuming perl6 is like perl5 in that it keeps hold of its memory allocation even if something isn't using it 10:05
10:05 wk_ joined
jnthn lunch & 10:05
Timbus ehh thats really up to parrot 10:06
Ulti well yeah
but the problem is its up-to-something its out of my own control, better to write an algorithm that will always be right
10:06 not_gerd joined
not_gerd hello, #perl6 10:06
Ulti hey hey
Timbus well you can only try it and find out in the end 10:07
Ulti well I know for a fact if I try and slurp a 300GB file its a no go without trying ;)
not_gerd is this analysis of Perl6 container semantics correct: gist.github.com/3742384 10:08
Timbus thats a lot of monkeys writing a lot of shakespeare
Ulti thats how evolution of protein sequence is :) 10:09
10:10 kurahaupo joined
Ulti anyway I can write this library out in nice perl6 for the sake of learning and I'm sure eventually this kind of IO thing wont be an issue, most people dont have 300GB files they have like 300KB files 10:10
Ulti wanders off 10:12
10:20 gootle left, gootle1 joined 10:31 wamba left
sisar r: say Int().WHICH 10:37
p6eval rakudo 690dad: OUTPUT«Int|0␤»
sisar r: say Bool().WHICH
p6eval rakudo 690dad: OUTPUT«Bool|-1696510452␤»
sisar r: say Bool().WHICH
p6eval rakudo 690dad: OUTPUT«Bool|1056050998␤»
sisar hmm
can anyone explain the weird numbers ? 10:38
moritz memory addresses
.WHICH isn't meant to be explained, just used :-)
sisar moritz: ok. 10:41
where is .WHICH useful ? I'm looking for a simple usecase
FROGGS moritz: so you give me access to a feather so I can setup our pandatesters environment? :o)
moritz FROGGS: yes. Please email me your desired username, real name and purpose (I know it, just administrative procedure) 10:42
to [email@hidden.address]
Timbus sisar, i assume they're unique addresses, so, for variable identification, or hashing? 10:43
10:46 cognominal left
Timbus .. okay so they arent memory addresses 10:46
10:47 pmurias joined
moritz yes, hashing 10:47
and object identity comparison
pmurias jnthn: I added a failing test to my nqp fork on github (and made a pull request)
jnthn: .attributes seems to be broken
sisar can I somehow search for the word 'WHICH' for Perl6 example on rosettacode.org ? Rosettacode's search did not help. 10:48
10:48 Ambrose left
moritz sisar: I don't think you'll ever need it; it's just needed internally for non-string hash keys, and for the === operator 10:49
and I doubt that any rosettacode example uses it
sisar moritz: ah, ok. Its just that I don't understand what it exactly does.
pmurias jnthn: are pull request the right way of submitting changes to nqp? 10:52
moritz sisar: it returns something that identifies the object you call it on
pmurias: usually we give you commit access, and you push your changes right away. But then we usually don't add failing tests either 10:53
10:53 cognominal joined
Ulti moritz so a lot like Object.hashCode() in Java 10:55
10:55 flightre1 joined, FROGGS left, FROGGS joined, flightrecorder left
moritz Ulti: aye 10:57
11:04 dayangkun joined 11:06 Su-Shee_ joined 11:09 Su-Shee left
jnthn pmurias: Broken how? 11:11
Also yes, file an issue rather than adding a broken test.
11:11 gootle1 left
jnthn Or fix it ;) 11:11
I'm pretty sure it must at least somewhat work :)
given various things rely on being able to call it 11:12
win! my $dayjob grammar parsed all 600 things :) 11:13
That was easier than expected. perl6++
colomon \o/ 11:15
I think grammars are a huge win for p6. I found github.com/colomon/perl6-ISO_10303-21 incredibly easy to write, for instance. 11:18
colomon regrets being so busy he hasn't had time to blog on the subject.
tadzik colomon, Y U NO add it to the ecosystem? :P 11:19
colomon see "busy" above
daxim do you run kstep on your desktop? 11:20
jnthn heh, you'd not want to one I just wrote in ecosystem
colomon also a real possibility I might change the name before adding, as I'm now thinking I also need ISO_10303-11 in p6, too...
jnthn TFS, Y U take 5 minutes to delete a branch? :'( 11:21
11:23 telex left, Su-Shee_ is now known as Su-Shee, JimmyZ joined 11:24 telex joined
pmurias moritz: failing tests are frowned upon? ;) 11:26
moritz pmurias: yes ;-) 11:27
pmurias moritz: so the prefered way would be to put the test in a bugtracker issue? 11:28
moritz pmurias: yes 11:29
pmurias jnthn: fails with pastie.org/4746716 11:33
I'll try to fix that
11:33 daxim left
jnthn ah 11:34
yeah, the meta-objects need some nqp::isnull checks adding. I thought I caught most of those. 11:35
11:35 kurahaupo left
jnthn Trouble is we can't use NQPMu as it doesn't exist yet :) 11:35
pmurias it's a required named parameter
jnthn Oh
so...how on earth does it even get into the call
nqp: sub foo(:$x!) { }; foo() 11:36
p6eval nqp: OUTPUT«too few named arguments: no argument for required parameter 'x'␤current instr.: 'foo' pc 105 ((file unknown):63) (/tmp/xCpDE4r6rd:1)␤»
moritz nqp: class A { method x(:$y!) { } }; A.x 11:37
p6eval nqp: OUTPUT«too few named arguments: no argument for required parameter 'y'␤current instr.: 'x' pc 126 ((file unknown):155472605) (/tmp/Tq93xmtpsh:1)␤»
pmurias jnthn: it's *implicitly* required ;) 11:38
if $local {...} fails with a null
jnthn oh 11:39
then it's not required at all :)
and yes, defaults get null in the NQP MOP classes 11:40
well, knowhows :)
Classes not invented yet at that point ;)
11:41 satyavvd left, mucker joined
jnthn tssk...VS hangs again 11:43
not_gerd jnthn: any comments on gist.github.com/3742384 ?
jnthn Based on today's evidence, Rakudo is more stable than Visual Studio :P
pmurias jnthn: should I make it a required attr? or make it assume null is false? 11:44
jnthn: as a default which causes a strange exception doesn't make much sense
jnthn pmurias: Well, the Real Answer is to implement the non-local case ;) 11:45
not_gerd: typically for scalars, lexical environment points to Scalar points to value.
not_gerd: Exception: native types, where they are inlined straight into the lexical environment.
pmurias: I think methods already does that, fwiw 11:46
not_gerd jnthn: binding makes lexical environment point to existing Scalar?
jnthn not_gerd: Depends what you bind 11:47
my $x = 42; my $y := $x; # lexical environment's $x and $y slots now both point to the same Scalar
moritz nr: my $x := 3; $x = 5
p6eval niecza v21-14-g3d9f4b4: OUTPUT«Unhandled exception: Writing to readonly scalar␤ at /tmp/o69qMGvNqD line 1 (mainline @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4138 (ANON @ 3) ␤ at /home/p6eval/niecza/lib/CORE.setting line 4139 (module-CORE @ 571) ␤ at /home/p6eval/niecza/li…
..rakudo 690dad: OUTPUT«Cannot assign to a non-container␤ in block at /tmp/HCNJ7rv4Ei:1␤␤»
jnthn my $x := 42; # lexical environment points directly at the value
But as moritz showed, bind a value and you can't assign any more :)
not_gerd r: my $x := 42; $x := Scalar; $x = 42 11:53
p6eval rakudo 690dad: OUTPUT«Cannot assign to a readonly variable or a value␤ in block at /tmp/MFdYsNum4w:1␤␤»
jnthn you bound the type object
r: my $x := 42; $x := Scalar.new; $x = 42 11:54
p6eval rakudo 690dad: OUTPUT«(signal SEGV)»
jnthn wow!
not_gerd segfaults with type object as well on Rakudo 2012.08-61-gd776f08
jnthn
.oO( guess what we don't have a test for... :) )
Time for this week's commute up to Stockholm & 11:56
12:00 revoltz joined
pmurias jnthn: the bignum test fails 12:01
12:09 not_gerd left 12:10 not_gerd joined 12:15 gongyiliao joined 12:17 M_o_C joined 12:21 docdoctor joined
docdoctor anyone here experienced with proofing pod files on github? 12:23
moritz welcome docdoctor 12:27
docdoctor thanks
moritz I usually check out the repository and read/edit the files in my preferred editor
docdoctor if I proof a document that requires no changes, is there any way to mark it as read? 12:28
moritz not really 12:29
you could add a note to them that pod renderers ignore
12:29 wk_ left
moritz =comment reviewed by dodoctor on 2012-09-18 12:29
docdoctor is there a comment tag for that?
OK got it. 12:30
Is the =comment entry at the bottom of the file OK, or is there a more appropriate location? 12:31
moritz top or bottom is both OK, as long as you always stick to the same 12:32
docdoctor thank you very much, that will make life a lot easier! 12:33
12:33 Targen left
moritz you're welcome 12:34
12:36 revoltz left 12:39 not_gerd left 12:41 atrodo joined
[Coke] phenny: ask raiph if I should add blogs.perl.org/users/perl_6_reports/ to planetsi 12:42
phenny [Coke]: I'll pass that on when raiph is around.
12:47 cognominal left 12:49 PacoAir joined
[Coke] wishes he had time to try out jnthn's suggestions yet. 12:50
12:55 cognominal joined, Celelibi left
moritz I just found out why my work computer is so slow running the rakudo test suite 13:03
it's not the memory (has 4GB)
but it has just one core
13:04 bluescreen10 joined 13:09 wamba joined
[Coke] that's outrageous! ;) 13:14
moritz aye. I was pretty surprised to get a recycled workstation 13:15
colomon just one core?!? 13:21
moritz yes. In a desktop. 13:22
13:23 M_o_C left
PerlJam moritz: we recycle desktops here all the time, but usually the computer-geekier you are, the more likely you are to get a newer (if not brand new) computer. 13:23
moritz and it takes nearly 5 minutes to parse rakudo's setting
r: grammar A { token TOP { <tree> }; token tree { 'a' } }; say so A.parse('a'); 13:26
p6eval rakudo 690dad: OUTPUT«Cannot call 'tree'; none of these signatures match:␤:(Any:U : Mu *%_)␤:(Any:D : Mu *%_)␤:(Any:D : &c, Mu *%_)␤:(Any:D : Cool $count, Mu *%_)␤␤ in method tree at src/gen/CORE.setting:1224␤ in any !reduce at src/stage2/QRegex.nqp:582␤ in any !cursor_pass at src/st…
13:26 jerome joined
dalek kudo/nom: 0973612 | moritz++ | src/core/Grammar.pm:
Default to Mu for action methods

that way fewer method names are prone to name conflicts, because Mu simply does not have as many methods as Any. But it is not a real fix
13:27
13:30 dayangkun left
pmichaud good morning, #perl6 13:33
moritz good am, pm
pmichaud I wonder if we could resolve the Mu/Any actions issue by requiring a defined object to be passed. 13:34
moritz one thing I tried was adding two multis
13:34 GlitchMr joined
moritz one with :actions!, the other excluding it 13:35
but somehow it hug during compilation
(the idea was to not declare $*ACTIONS)
pmichaud well, you have to have $*ACTIONS somewhere, or else you get a dynvar lookup problem.
GlitchMr jnthn: I just have noticed irclog.perlgeek.de/perl6/2012-09-17#i_5995854 - I will fix it now, ok 13:36
dalek href="https://glitchmr.github.com:">glitchmr.github.com: e5b87e2 | GlitchMr++ | _posts/2012-09-16-perl-6-changes-2012W37.md:
TCLish -a => "b" was for STD_P5, not STD. jnthn++
13:37
moritz pmichaud: there aren't too many of those lookups, and if they aren't in hot paths, we might guard them against that
pmichaud looking up $*ACTIONS is very hot path 13:38
it happens on every successful match.
moritz it's not cached anywhere?
13:38 flightre1 left 13:39 flightrecorder joined
pmichaud I haven't come up with anywhere that caching would be faster than the lookup. 13:39
moritz
.oO( we could create a special class that doesn't support any methods (by not inheriting from Mu) and make that the default $*ACTIONS )
pmichaud oh, we can solve this entirely in NQP land 13:40
trying to fix it in Perl 6 space is problematic.
moritz how would you solve it in NQP land? 13:42
pmichaud the simplest fix would be to remove :actions from the (Perl 6) signature altogether.
oh, wait.
hrm.
Rakudo's Grammar.parse isn't using NQP's .parse
ideally, have $*ACTIONS set to NQPMu 13:43
moritz and then? 13:45
pmichaud I wonder what happens if we eliminate Grammar.parse altogether, and just use the one that gets inherited from NQPCursor.
moritz that doesn't set the caller's $/
pmichaud well, if $*ACTIONS is set to NQPMu, we're not likely to have any method name conflicts.
oh, well then call NQPCursor's .parse 13:46
although I guess that's painful also.
moritz NQPMu also has 13 method names 13:47
pmichaud also, if $*ACTIONS is set to NQPMu, we can explicitly check for that.
i.e., if $*ACTIONS.type =:= NQPMu then don't fire.
PerlJam couldn't you make an empty actions class and make that the default? 13:48
(sorry, just reading scroll back and probably don't quite have a handle on the problem)
pmichaud PerlJam: example? 13:49
moritz PerlJam: all classes in Perl 6 inherit from Mu
(and yes, I've suggested that already :-)
PerlJam moritz: got it. :)
pmichaud perhaps the answer is for me to eliminate $*ACTIONS as a dynvar and put it into the cursor target object I've been considering.
(cursor target would be a custom type that would contain shared information about an ongoing match) 13:50
13:50 stopbit joined
moritz and aren't regenerated for every subrule call? 13:50
pmichaud right
basically it combines $!orig and $!target into a single object, saving a pointer in the cursor
but it also provides a place to cache things, such as line numbers 13:51
moritz sounds nice
pmichaud it could potentially cache $*ACTIONS as well
I think I'll give that a try today. 13:52
moritz ++pmichaud
pmichaud I doubt I'll want to try to squeeze it into the sep release, though. 13:53
we'll see how it goes.
I'm still trying to figure out how to deal with the utf8 encoding issue.
felher Any know problems with importing parametric roles? I have one know, namely >>>Method 'parameterize' not found for invocant of class 'Perl6::Metamodel::ParametricRoleHOW'<<<. I'm just pulling newest Rakudo and check if the problem ist still there. Of course, chances are that i'm just doing something wrong and there is no problem with Rakudo whatsoever :) 13:56
*one now
pmichaud I'm afk for a bit.
PerlJam felher: It's easier to tell if you show the code that causes it :)
moritz felher: I've seen that error before, but not from importing 13:57
felher PerlJam: yep. i'm currently on making a gist :)
moritz r: module A { role B[$x] { } }; import A; say B 13:58
p6eval rakudo 690dad: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&B' called (line 1)␤»
moritz r: module A { role B[$x] is export { } }; import A; say B
p6eval rakudo 690dad: OUTPUT«Could not instantiate role 'B':␤Not enough positional parameters passed; got 1 but expected 2␤ in any specialize at src/gen/Metamodel.pm:1778␤ in at src/gen/Metamodel.pm:2182␤ in at src/gen/Metamodel.pm:2176␤ in any compose at src/gen/Metamodel.pm:2175␤ in a…
moritz r: module A { role B[$x] is export { } }; import A; say B[1]
p6eval rakudo 690dad: OUTPUT«===SORRY!===␤Method 'parameterize' not found for invocant of class 'Perl6::Metamodel::ParametricRoleHOW'␤»
13:58 kaleem left
moritz felher: this one? :-) 13:58
r: role B[$x] { }; say B[1]
p6eval rakudo 690dad: OUTPUT«B()␤»
felher moritz: yeah, i think so :)
felher closes gist :) 13:59
13:59 flightrecorder left
moritz felher: fehl free to submit :-) 13:59
felher fehls free to do so and submits a bug. 14:00
moritz: any idea how to work around it for now? :)
*felhs free to do so... :)
14:01 FROGGS left
moritz felher: no idea, except avoiding parametric roles :( 14:01
hm, maybe
14:02 docdoctor left
moritz r: module A { our role B[$x] { } }; import A; say A::B 14:02
p6eval rakudo 690dad: OUTPUT«None of the parametric role variants for 'B' matched the arguments supplied.␤Cannot call ''; none of these signatures match:␤:(Mu , Mu $x)␤␤ in any specialize at src/gen/Metamodel.pm:1905␤ in at src/gen/Metamodel.pm:2182␤ in at src/gen/Metamodel.pm:2176␤ in a…
14:02 flightrecorder joined
moritz r: module A { our role B[$x] { } }; import A; say A::B[1] 14:02
p6eval rakudo 690dad: OUTPUT«B()␤»
moritz felher: using 'our' instead of importing seems to be a workaround
14:02 docdoctor joined 14:03 Tanktalus joined
felher moritz: cool, thnx :) 14:03
14:04 benabik left 14:05 benabik joined
Pleiades` sd 14:10
14:10 kaare_ joined
dalek ast: 765896d | moritz++ | S (2 files):
rakudo unfudges
14:11
14:11 kaare__ joined
felher r: role R[::T] { }; class A { }; class B is A { }; say R[B] ~~ R[A]; 14:14
p6eval rakudo 097361: OUTPUT«True␤»
14:14 FROGGS joined
felher \o/ exactly what i need :) 14:14
14:15 kaare_ left 14:20 benabik left
pmichaud r: say 'bit' ~& 'wise' 14:20
p6eval rakudo 097361: OUTPUT«bip␤»
pmichaud r: say 'bitŹ' ~& 'wise' 14:21
p6eval rakudo 097361: OUTPUT«string bitwise_and (utf8/utf8) unsupported␤ in sub infix:<~&> at src/gen/CORE.setting:4550␤ in block at /tmp/BmTVCruyJa:1␤␤»
pmichaud anyone know what the Perl 6 spec would want there? 14:23
(I'm afk for a while.)
fwiw, that's the current blocker as to why utf8 chars in source cause parsing to slow down. 14:24
moritz what do you expect it to do? integer AND on the codepoint? 14:25
pmichaud I don't know what I expect. I just know that parrot currently allows "bitwise string and" only on ascii and iso-8859-1 string encodings, and thus I can't switch things to another fixed-width encoding. 14:26
so, if we can decide what _should_ happen, then I can add it to parrot and be unblocked on that point. :-) 14:27
my best guess at this point would be integer AND the codepoints, yes.
afk 14:28
FROGGS tadzik: there? 14:31
or moritz: you should know that too 14:32
what do we actually have right now about test reports?
tadzik yes, here 14:33
FROGGS am I able to produce a report by running a script?
tadzik a script gives you something like tjs.azalayah.net/results.json 14:34
14:34 docdoctor left
FROGGS so thats the result of the whole rakudo star suite, right? 14:34
"Algorithm::Diff" : { "prereq" : true, "build" : false, "description" : "Failed building lib/Algorithm/Diff.pm" } 14:35
so we have to put more information into these structures
and make each report available somehow
[Coke] FROGGS: have you seen smolder? 14:36
FROGGS btw, I dont want to use the cpantesters framework anymore, its huge and I dont even know if all parts of it are available
tadzik FROGGS: it's a result of the entire module ecosystem
FROGGS [Coke]: seen no, but heard of it
[Coke] basically a temporary repository for TAP runs by project; right now parrot and rakudo have projects setup in it.
tadzik FROGGS: github.com/tadzik/emmentaler/blob/master/smoker is to blame 14:37
[Coke] I had started working an on a replacement called muddle which would hopefully have a nicer front end, but still allow the smolder-style uploads of tap. 14:38
14:38 JimmyZ left
[Coke] (github.com/coke/muddle) I stalled some time ago, happy to dig back into it if this woudl be useful to someone. 14:39
FROGGS [Coke]: I will have a look at it
PerlJam pmichaud: the "obvious" answer is at S03:5262 14:40
oops, sorry, that's S03:853 ('me can't read) 14:41
pmichaud PerlJam: wfm 14:42
GlitchMr That JSON file is interesting 14:43
It has spaces between tokens
FROGGS that emmentaler/smoker looks good, I mean, it's working and it's easy to use
GlitchMr I wonder why - they aren't needed
"Acme::Addslashes" : { "prereq" : false, "description" : "Failed cloning the repo" } 14:44
wait what?
Let me guess, it cannot clone URLs that begin with git:// 14:45
tadzik guess again
GlitchMr I will change it to http://
tadzik no, everyone uses git:// 14:46
GlitchMr raw.github.com/GlitchMr/perl6-Acme.../META.info
huh?
tadzik maybe I lost connection during smoketesting
:)
I see at least few modules on the list with this error
GlitchMr Text::Abbrev also has this error 14:47
Interesting 14:48
But it's probably loss of connection
FROGGS tadzik: so a next step would be to make it possible to submit these results.json file?
GlitchMr Both of my modules which I know that work fail because of connection error
tadzik FROGGS: probably, yes 14:52
and include some platform info\
GlitchMr: I probably hibernated the laptop during smoke run, and wifi didn't like that :P
14:56 sqirrel joined 14:59 FROGGS left, FROGGS_ joined, FROGGS_ is now known as FROGGS 15:00 flightrecorder left
jnthn o/ from the train :) 15:00
15:00 flightrecorder joined
FROGGS I'm starting to hate eclipse 15:00
jnthn FROGGS: If I want to try out the SDL game you made, what do I need? 15:01
FROGGS hmmm, panda Games::BubbleBreaker ? 15:02
I beleive that should be it
jnthn FROGGS: Do I need to install anything for SDL itself?
FROGGS ohh ya, libSDL-dev and its friends, libSDL_image-dev for example 15:03
wait, not even the -dev, the regular lib should be fine
but maybe I'm still doing "is symbol" instead of "is named" 15:04
jnthn OK. May give it a go. :)
FROGGS cool
jnthn I'm doing a "interesting Perl 6 modules" talk in YAPC::Asia, and an SDL binding is pretty cool ;)
PerlJam someone did bindings for SDL on rakudo? The last time I looked it was only like 3 functions.
jnthn PerlJam: If there's a playable game then those 3 functions must be pretty powerful :) 15:05
PerlJam jnthn: Load; Init; Run; # :-) 15:06
FROGGS *g*
flussence you can get a long way with just a create_drawable() and a draw_pixel() :)
FROGGS and event handling 15:07
flussence well if you don't mind vi keys, you can get away with getc() there too 15:08
dalek p: 4b84f41 | jonathan++ | docs/QASTMAP:
Delete QAST migration roadmap.
FROGGS flussence: I meant mouse clicks for example 15:09
flussence yeah, that's a bit more involved...
PerlJam FROGGS++ (fleshing out SDL)
FROGGS it is actually pretty cool doing it in a OO way, the code is so much nicer and cleaner, especially with perl6 15:10
kresike bye folks 15:11
15:11 kresike left
FROGGS jnthn: Games::BubbleBreaker still has perl5 tests -.- 15:11
PerlJam FROGGS: I see you used my "is symbol" nee "is named" thingy. Libs like SDL are exactly what I was thinking of when I added it. :)
15:12 cognominal left
dalek href="https://glitchmr.github.com:">glitchmr.github.com: 66493f6 | GlitchMr++ | / (2 files):
Add notice about pasting code in Disqus
15:12
FROGGS jnthn: I'm afraid its not that easy to install right now, to be safe I should rebuild rakudo, and use my File::Spec and Inline::C that I made for my SDL hack0ry 15:15
I'll drop you a note when it is possible to just panda it 15:16
one porblem right now is that panda doesnt install a C file to you HOME/.perl6/lib/SDL
jnthn FROGGS: OK, there's no hurry :) 15:17
A week and a half until my talk. Just pondering what to show. :)
TimToady you should switch unexpectedly to the debugger in the middle :) 15:20
FROGGS jnthn: so it is still "is symbol"? I thought it will be or already has been renamed
ya, like: Ohh, that example isnt working but I can debug it right away... 15:21
PerlJam r: my $h where { $_ == 3 } = 7;
p6eval rakudo 097361: ( no output )
PerlJam r: sub foo ($h where { $_ == 3 }) { } ; foo(7);
p6eval rakudo 097361: OUTPUT«Constraint type check failed for parameter '$h'␤ in sub foo at /tmp/6FW5SK8oF6:1␤ in block at /tmp/6FW5SK8oF6:1␤␤»
GlitchMr ==> Games::BubbleBreaker depends on SDL
==> SDL depends on NativeCall
I like how panda is recursive :-)
15:22 cognominal joined
GlitchMr t/core.t ............ Cannot locate native library 'libSDL.so' 15:22
... uhmmm
PerlJam r: sub foo ($h where { $_ == 3 } = 7) { }
p6eval rakudo 097361: ( no output )
PerlJam Hrm. This seems so familiar.
15:22 fhelmberger left
FROGGS GlitchMr: do you have libSDL.so somewhere in /usr/lib/ ? 15:22
GlitchMr I guess I have to install libsdl1.2-dev
FROGGS no, you dont need the -dev, since I can't use headers 15:23
jnthn TimToady: I think it only has shock value once. :-) But yes, I think I will show it. :)
FROGGS but maybe the -dev ships a symlink... I'm not quite sure
GlitchMr I'm sure I've SDL because I've games like Frozen Bubble installed 15:24
FROGGS hmm, NOT MY FAULT
NativeCall's job is to find libs ;o)
15:25 wooden joined, wooden left, wooden joined 15:29 wamba left
timotimo wow, when i let the perl6-debugger from latest rakudo-star loose on my (probably pretty horrible) code, it explodes 15:30
use of uninitialized value of type Any in string context in sub unhandled at /home/timo/build/rakudo/install/lib/parrot/4.6.0/languages/perl6/lib/Debugger/UI/CommandLine.pm:486 - this line twice and then: Unhandled exception: Variable $ref is not declared @ : 15:31
15:35 cognominal left 15:36 thou joined
jnthn timotimo: Seems that it's rather noisy if you feed it code with syntax errors 15:38
It really shouldn't warn.
The message about $ref is the one for you, I expect. :) 15:39
15:39 sisar left
jnthn Will have to look at that. 15:39
15:39 wamba joined
jnthn It's just a couple of warnings and then the real error so far as I can tell. 15:39
timotimo may be. thanks 15:42
yeah, that was indeed the error. i was *certain* the current version would work ;) 15:43
GlitchMr t/mixer-channels.t .. Cannot locate native library 'libSDL_mixer.so'
ok
It's progress!
15:44 wamba left, Targen joined
GlitchMr By the way, I still think that "Rakudo" has hard to understand syntax errors. This should be fixed someday. 15:45
gist.github.com/3743840
That doesn't sound correct
"Variable $MIX_INIT_MOD is not declared" 15:46
What?
Also, shouldn't it be "Game::BubbleBreaker"?
FROGGS GlitchMr: the tests are stupid right now, skip them
GlitchMr "added constants test, not working yet" 15:47
ok...
How can I skip tests in panda?
FROGGS GlitchMr: there is a Games:: namespace in perl5, I just used it
but I can switch to Game:: af course
GlitchMr --notests?
FROGGS pande --notests install ...
GlitchMr s/pande/panda/
FROGGS ya
GlitchMr Why put test which doesn't work. That causes tests to be failed. 15:48
FROGGS you are right, I simply forgot these tests 15:49
GlitchMr gist.github.com/3743858 - uhmmm... 'use strict' is so strict that it forbids me from installing the module
That... makes sense 15:50
oh... it's test written in Perl 5...
Why?
I mean, why? 15:51
FROGGS its a test file from the perl5 SDL module, committed by accident I suppose
GlitchMr --notests again, I guess? 15:52
#!perl6 15:53
Wait... WHAT?
Executable without proper shebangs...
#!/usr/bin/env perl6 15:54
^ should be better
gist.github.com/3743883
Uhmmm... ok
15:55 benabik joined 15:56 docdoctor joined
GlitchMr What is memcopy.so? 15:56
FROGGS GlitchMr: the one about memcopy.c is there because that file doesnt get installed
GlitchMr Uhmmm... where can I get memcopy.c? 15:57
Uhmmm... where can I get memcopy.so*?
I have heard of memcpy, but not memcopy
FROGGS wget this to ~/.perl6/lib/SDL: raw.github.com/PerlGameDev/SDL6/ma.../memcopy.c
GlitchMr Doesn't work 15:58
It still complains about lack of memcopy.c
FROGGS I made Inline::C to work around that issue, I'll drop you a msg when it is online, k? 15:59
GlitchMr glitchmr@strawberry ~> cat ~/.perl6/lib/SDL/memcopy.c 16:00
#include <string.h>
...
16:00 wamba joined
FROGGS the problem that it cant find memcopy.c is actually that the dirname get messed up when you compile a module to pir 16:00
what about string.h? 16:01
GlitchMr It's first line of code, I just was making sure that file exists
FROGGS k
16:03 brrt left
dalek p: bba277c | jonathan++ | docs/qast.markdown:
Start documenting the QAST nodes.
16:03
[Coke] jnthn++
jnthn: thank you, kind sir. 16:05
16:13 marmay_ joined 16:16 MayDaniel joined 16:20 FROGGS left, flightrecorder left 16:25 pmurias left 16:28 kaare__ is now known as kaare_
PerlJam anybody with zavolaj-fu still around? Say I've got some C code like gist.github.com/3744087 ... How do I perform the allocation of FooType using NativeCall? 16:28
16:28 benabik_ joined
moritz FooType.new 16:29
PerlJam yeah, but does that array of 12 chars work right? 16:30
dalek p: c0bb465 | jonathan++ | docs/qast.markdown:
Document some more node types.
16:31
16:31 benabik left, benabik_ is now known as benabik
moritz PerlJam: probably not, because int8 isn't supported yet 16:31
jnthn detrain &
moritz PerlJam: you can use CArray[Int] with just one Int, and on a 64bit platform that would be 8 bytes 16:32
then you have to unpack those with bit ops or unpack
bit ops, I think
(or two Ints if you are on 32bit) 16:33
arnsholt is working on sized ints, iirc
PerlJam github.com/jnthn/zavolaj/blob/mast...E.markdown says it can do int8 16:34
(and I'm fairly sure I've used them before, just not with an array inside of a struct)
TimToady is looking forward to buf1 support :) 16:35
16:36 benabik_ joined
moritz star: use NativeCall; say Carray[int8].new 16:36
p6eval star 2012.07: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&Carray' called (line 1)␤»
moritz star: use NativeCall; say CArray[int8].new
p6eval star 2012.07: OUTPUT«CArray+{IntTypedCArray}.new()␤»
moritz star: use NativeCall; my @a := CArray[int8].new; for ^8 { @a[$_] = $_ }; say @a[3]
p6eval star 2012.07: OUTPUT«3␤» 16:37
moritz seems to work
16:37 cognominal joined 16:39 benabik left, benabik_ is now known as benabik
PerlJam it's the interaction between the struct and the array that I don't quite get. 16:40
(If shaped arrays already existed, I wouldn't have to worry about it) 16:41
arnsholt moritz: That work has stalled a bit. jnthn has kindly informed me that how that's going to work internally is going to change, so I'm holding off until that's sorted
16:45 alester left 16:47 cognominal left 16:53 Targen left 16:54 Chillance joined 16:55 dakkar left 16:59 FROGGS joined, flightrecorder joined
masak greetings, #perl6 17:03
17:04 cognominal joined, cognominal left, cognominal joined
diakopter masak: howdy 17:04
masak been teaching for two days. now on train back home. 17:07
<sorear> not sure if I'll live to see the recordings 17:09
wow, someone sure transitioned from hope to cynicism quickly! :P 17:10
17:10 cognominal left
dalek osystem: e0635cd | (Tobias Leich)++ | META.list:
added Inline::C
17:12
17:15 xinming_ left, mdupont left 17:16 fgomez joined, cognominal joined 17:19 xinming joined
tadzik so, we can now rewrite loops in C? 17:22
:) 17:23
17:26 Celelibi joined
tadzik nice module FROGGS++ 17:26
colomon wait, what!?
[Coke] wow. FROGGS++ #evil 17:27
colomon FROGGS++ indeed! 17:28
17:33 perigrin left, huf_ is now known as huf
FROGGS thanks ^^ 17:35
masak FROGGS++
17:35 fgomez left
FROGGS but it is basically copy&paste from Zavolaj 17:35
17:37 fgomez joined
colomon which does not change the fact it is a clever copy&paste. 17:38
17:44 perigrin joined 17:45 wamba left 17:50 mdupont_ joined
timotimo aaw, rot90° isn't a valid method name :( 17:55
or can i quote it somehow?
moritz rot-π-half 17:59
17:59 benabik left 18:00 atrodo left 18:01 fgomez left 18:02 spider-mario joined
timotimo is there a method for hypothenuse calculation in prel6 or is it unnecessary, because numbers won't overflow to Inf when squared? 18:04
colomon you're thinking of something that does sqrt($a ** 2 + $b ** 2)? 18:05
timotimo yes 18:06
because recently i read an article about why math libraries supply such a function and why it makes sense to have that
colomon the numbers certainly can overflow if they get that big.
moritz so, library it is then :-)
18:06 wamba joined
timotimo www.johndcook.com/blog/2010/06/02/w...ypotenuse/ - this one 18:06
colomon I want to say I meant to add that function to p6 and forgot to actually do it.
rn: say hypot(10, 20) 18:08
p6eval rakudo 097361: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&hypot' called (line 1)␤»
..niecza v21-14-g3d9f4b4: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'hypot' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1435 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /ho…
18:08 fgomez joined
colomon there were several "extra" math functions Cook talked about at one point or another that I meant to add. but I don't recall ever actually adding them. 18:08
moritz star: use NativeCall; sub hypot(num, num) returns(num) is native(); say hypot(1e2, 1e2) 18:09
p6eval star 2012.07: OUTPUT«===SORRY!===␤Missing block␤at /tmp/QcpPgi6Um4:1␤»
colomon timotimo: any reason you'd like a name other than hypot?
moritz star: use NativeCall; sub hypot(num, num) returns(num) is native() {*}; say hypot(1e2, 1e2)
p6eval star 2012.07: OUTPUT«===SORRY!===␤Missing block␤at /tmp/BBn6iMGkni:1␤»
timotimo nope, hypot is good.
moritz star: use NativeCall; sub hypot(num, num) returns(num) is native {*}; say hypot(1e2, 1e2)
p6eval star 2012.07: OUTPUT«===SORRY!===␤Missing block␤at /tmp/tQ6j_NKF6Y:1␤»
moritz star: use NativeCall; sub hypot(num, num) returns(num) is native { }; say hypot(1e2, 1e2)
p6eval star 2012.07: OUTPUT«===SORRY!===␤Missing block␤at /tmp/ECYgBVn4LF:1␤»
18:10 benabik joined
moritz what am I doing wrong? 18:10
18:10 kaare_ left
timotimo isn't 2012.08 out already? 18:10
18:10 kaare_ joined
colomon timotimo: give me a minute or two to finish what I was doing with $work. or, you know, add it yourself. ;) 18:10
18:16 kurahaupo joined
PerlJam moritz: 18:20
star: use NativeCall; sub hypot(num,num) returns Num is native {*}; say hypot(1e2,1e2);
p6eval star 2012.07: OUTPUT«141.42135623731␤»
PerlJam returns(num) was what was wrong.
star: use NativeCall; sub hypot(num,num) returns num is native {*}; say hypot(1e2,1e2); 18:22
p6eval star 2012.07: OUTPUT«141.42135623731␤»
PerlJam (I had typed Num out of habit the first time :) 18:23
GlitchMr back 18:24
2012.07? Seriously?
It was 19 days from 2012.08 release 18:25
Also, for fun I've compiled 2010.07. It could be used to test scripts in perl6/bench-scripts and stuff like that 18:26
18:27 leont joined
GlitchMr For example, anagram.pl takes 100 seconds on 2010.07, but only 18.5 seconds on 2012.08 18:30
moritz I just showed my wife "The Day #perl6 Did Sarcasm", and her main complaint was about irclog.perlgeek.de/perl6/2012-05-10#i_5570350 Q:sarcasm not being imaginative enough :-) 18:36
and we need something for ironyy 18:37
.oO( and masak++ isn't supposed to answer "yeah, right" )
colomon timotimo: actually, tests for hypot would be really useful... ;) 18:41
PerlJam keeps reading "hypot" as "hypnot" and goes into a trance 18:42
timotimo i can do that later. now i have to attend the window and watch out for that little window of dryness in which i can drive my bike to the grocery store and get some foods 18:43
how does the summary mode work? does it encode something in the url so that i can copypaste it? 18:44
or is summary mode something that's "global", rather than per-user+sharable?
colomon timotimo: no rush, I'm still working on $work in another window. just now got around to updating niecza, and there actually were changes this time around (\o/) so I'm going to do a spectest as well. probably won't get to hypot for a bit yet. 18:45
moritz timotimo: it's global
timotimo: there's a boolean flag in_summary in each row of the irclog table
timotimo well, oops then :)
PerlJam someone should to do some NLP on the IRC logs and pick out conversations. 18:48
(someone who is bent in the shape of a linguist)
18:50 wk_ joined
GlitchMr perl6: printf '%g', Duration.new(1); 18:50
p6eval niecza v21-14-g3d9f4b4: OUTPUT«===SORRY!===␤␤Undeclared name:␤ 'Duration' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1435 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /ho…
..rakudo 097361: OUTPUT«This type cannot unbox to a native number␤ in any at src/gen/BOOTSTRAP.pm:95␤ in sub sprintf at src/gen/CORE.setting:2131␤ in sub printf at src/gen/CORE.setting:2136␤ in block at /tmp/hK6D0hbQfy:1␤␤»
GlitchMr "This type cannot unbox to native number"? 18:51
Why?
moritz because it's not set up as a box target for num 18:52
and printf doesn't know how to do Perl 6 level coercions
in the long run we need a printf that's aware of all of Perl 6's specialities 18:53
like, big Int
PerlJam GlitchMr: you can always coerce the value yourself.
18:53 kurahaupo left
colomon ye gads, lots of test failures in the niecza spectest run! 18:55
GlitchMr gist.github.com/3745076 18:58
Benchmarking!
[Coke] colomon: raw.github.com/coke/perl6-roast-da...ummary.out shows 75 failures.
colomon [Coke]: I don't have a count, but that sounds about right. 18:59
investigating while $work compiles...
[Coke] probably just one or two new tests mid-file.
ugh. I just fudged those on Friday evening. 19:00
hopefully I didn't do it wrong.
colomon huh. they seem to be working when I run them standalone (at least for the first couple I've tried) 19:01
and the they're not fudged, either, so that's not it.
yeah, looks like it may actually be a test system bug rather than a niecza-proper bug. 19:02
[Coke] not fudged? hurm. 19:09
git show 5c64ac0 ? 19:10
colomon [Coke]: not fudged but they work. maybe not the same failures you were seeing.
GlitchMr glitchmr@feather ~/bench-scripts> nice perl6 RUN.p6 19:11
perl6-2012.08 perl6-2010.07 niecza
anagram 16.844806 98.083399 5.827595
:-)
Just testing
[Coke] ugh. I am working in a language where I /should/ declare variables (else my scope is evilly global and invasive), but I cannot declare them unless I also initialize them. and there is no way in the language I can see to start them with an undefined value. 19:12
GlitchMr [Coke]: then use some meaningless value, such as 0 or ""
leont Can't you assign an undefined variable to them?
GlitchMr Or "[if you see this, something went wrong]"
19:13 sisar joined
GlitchMr What language it is, anyways? 19:13
leont tcl? 19:14
[Coke] leont: I'm trying to create an undefined variable. if I could do that, I'd have one to pass around to the next var declaration. ;)
cfscript
leont The profanity in this channel *shakes his head* :-p 19:15
jnthn evening o/
colomon \o
GlitchMr set variable {If you see this then you did something that I haven't expected!}
jnthn We're doing profanity? Hm, well I just ate at "Hung Fook" :P
FROGGS++ # Inline::C 19:17
19:18 benabik left
[Coke] GlitchMr: right. I'm reduced to things like "var foo = '';" when I really want just "var foo;" 19:19
jnthn I'm a little surprised how much of NativeCall has ended up in it...I wonder what needs to happen for better re-use. 19:20
colomon refactor!
;)
GlitchMr I think I've even done things like 'my $string = ""' in Perl 5 too :-) 19:21
I'm not sure why I'm doing that, but probably to avoid undefined value warnings with .= or something
19:22 benabik joined 19:25 docdoctor left 19:28 mdupont_ left 19:29 stopbit left
GlitchMr gist.github.com/3745274 19:30
wow, niecza is fast!
'######.######' are tests which failed to run on niecza
(but, you shouldn't trust benchmarks - I mean - doing nothing two times slower than "Hello, world!"?) 19:31
masak no-ops have gone up in cost recently. 19:32
FROGGS jnthn: I ended up just copying all from NativeCall just to get it to work; I dont know exactly how it should be like in the end
tadzik buahahaa. I now have a device that controls my music player on my laptop through my HiFi's remote control
arduino++
Now I need to sneak Perl 6 here somewhere
FROGGS jnthn: maybe I should better use NativeCall and call its subs, instead of carrying its code around 19:33
19:35 sqirrel left
arnsholt FROGGS: The less duplication the better is a good rule, in general 19:36
FROGGS ya, I know
GlitchMr I like that part: 19:37
non-str-comb 0.628682 89.944591 1.376188
But... why it took 90 seconds for simple test?
jnthn moritz: On that gist, are these times in seconds?
er, sorry
GlitchMr jnthn: yes
jnthn GlitchMr: ^
GlitchMr Converting between integers and numbers was slow in old Rakudo versions or what? 19:38
jnthn GlitchMr: OK, so looking at the left column (current Rakudo) vs the right column (Niecza), excluding those that don't run on both implementations, Rakudo is faster on 6 and Niecza is faster on 7 of them.
GlitchMr say [+] (100..200).comb>>.Int; 19:39
jnthn GlitchMr: And yes, 2010.07 was really slow.
GlitchMr I wonder why it took 90 seconds on 2010.07
It's just 100 numbers, converted into digits and summed together
jnthn You know all that pain we went through when we rebuilt loads of bits of Rakudo in nom?
This is why. :)
GlitchMr No, I wasn't there then 19:40
I wanted to check www.youtube.com/watch?v=tCel6lpDTZI myself 19:41
jnthn GlitchMr: Ah. You missed that fun then :)
jnthn is curious why evne current Rakudo does terrible at pick-words 19:43
tadzik non-str-comb 0.628682 89.944591 1.376188
wooot :)
jnthn GlitchMr: Where do I find the pick-words source? 19:44
GlitchMr jnthn: github.com/perl6/bench-scripts
It's from that repository
jnthn tack
GlitchMr It's all from that repository
jnthn ah, but do I have kcachegrind on this laptop since I rebuilt all the things... 19:45
tadzik ...linux laptop?
jnthn Windows :)
tadzik or just kcachegrind on windows? :)
jnthn Well, the big problem is, I can never remember where I found the darn thing... :)
GlitchMr tadzik: KDE is on Windows
tadzik blasphemy! :P 19:46
GlitchMr I actually have used Kate as my text editor on Windows
It sort of worked 19:47
rurban KDE via cygwin-ports or native?
GlitchMr Native
windows.kde.org
Kate is awesome - it's almost like vim 19:48
19:48 kaare_ left
GlitchMr CTRL+WINDOWS+V - and Kate magically turns into vi 19:48
19:49 cognominal_ joined
GlitchMr But you have mouse, as useless addition 19:50
jnthn downloads the Windows port of kcachegrind, and hopes it works
19:50 cognominal left
GlitchMr jnthn: it worked for me 19:50
When I was using Windows 19:51
diakopter jnthn: does kcachegrind have to have had the same compiler as the target?
jnthn shit, sourceforge is an add-filled crap heap these days
diakopter: no
*ad
(the had an ad with a download button that looks just like the real one... :/)
benabik jnthn: dice.com just bought it, which made me wonder "why?"
jnthn
.oO( hopefully so they can make it go away? )
19:52
GlitchMr KCacheGrind was crashing when making graphs, but other than that it worked.
jnthn It used to suck a lot less. :/
GlitchMr: I had a version that did that, but I think the most recent one I've been using works.
GlitchMr Actually, I find it surprising that I don't see any sort of ads on GitHub 19:53
jnthn GlitchMr: Maybe 'cus github has a better business model? ;-)
GlitchMr Well, I haven't paid them anything 19:54
benabik GlitchMr: github sells training, private repositories, and enterprise code hosting hardware
GlitchMr But because they still somehow survive, I guess they get enough money from GitHub Enterprise and private projects
s/projects/repositories/
jnthn pays for a few privates, and his $dayjob uses it too
I run into quite a few people who pay a little for some private repos 19:55
So I assume they do fairly well
[Coke] knows at least one big name customer of github enterprise. (hopefully they'll actually seal the deal soon so it can get installed so I can start using it!)
leont Github's prices are reasonable enough that I imagine plenty of people do
jnthn leont: Yes, it's priced at "huh, that's a beer!" levels.
Well, if you live in Sweden anyway :P
masak Github is one of the few companies that I like to give money to monthly partly because I *like* them.
19:56 cognominal_ left
GlitchMr Actually, I like GitHub business model 19:56
Perhaps they expect that even if somebody won't pay for private repositories, it will recommend GitHub somebody else and he will pay for those.
benabik I imagine that private repositories are not their primary source of income. 19:57
GlitchMr I actually wonder why somebody would use Github Enterprise when private repositories just work 19:58
benabik Because Enterprise keeps it inside your network.
[Coke] GlitchMr: control.
I wouldn't want my work software hosted outside of $DAYJOB's very large network. 19:59
rurban I'd like a nice backtrace and cachegrind of a typically slow pir function call.
Maybe it's optimizable easily. (as not going through various va_args sprintf, call and sig parsing steps) 20:00
GlitchMr Hmmm... but if you have 125 or more private repositories, github enterprise really seems cheaper 20:01
I meant, 51 or more
And team size of max 20 20:02
But when team size is larger, GitHub seems better... unless you want more than 600 private repositories (GitHub doesn't have plans for that many)
rurban gitororius is also easy to easy for companies. we use it. 20:03
gitorious
tadzik DJ Moment?
ww, sorry
20:04 GlitchMr left 20:05 cognominal joined 20:07 pmurias joined, marmay_ left
pmurias jnthn: t/nqp/60-bigint.t fails on my machine 20:08
tests 28,29 and 34 20:09
[Coke] looks like rakudo is backsliding a bit: 20:12
github.com/coke/perl6-roast-data/b....out#L2086
pmurias jnthn: it seems the calculations are a bit less accurate
[Coke] OH. 20:14
FROGGS jnthn: I cant use Inline and NativeCall in one script, I get: Cannot import symbol '&trait_mod:<is>' from package 'Inline', since it already exists in the lexpad 20:15
[Coke] wonders if he should automatically PUSH those updates, since he's looking at 4 day old roast data.
FROGGS I thought that this would be fine if I use multi
20:17 MayDaniel left
[Coke] gist.github.com/4c035e78f97668290146 - latest rakudo failures 20:18
colomon: niecza only has one failure on latest data.
colomon [Coke]: I've gotten intermittent niecza spectest fails for a while now...
[Coke] colomon: looks like they cleaned up on 9/17 20:20
(daily run)
colomon I mean literally intermittent, like one run works and the next run doesn't.
colomon is running spectest again to see what happens. 20:21
20:23 gongyiliao left 20:24 sisar left 20:28 stopbit joined
colomon [Coke]: all tests successful this time around, no changes to niecza or roast. 20:31
[Coke] r: my @a = <thing thinger bar barfer>; @a.sort($^b.chars <=> $^a.chars).say 20:33
p6eval rakudo 097361: OUTPUT«===SORRY!===␤Cannot use placeholder parameter $^b in the mainline␤at /tmp/G1ABTxPq_N:1␤»
[Coke] r: my @a = <thing thinger bar barfer>; @a.sort({$^b.chars <=> $^a.chars}).say
p6eval rakudo 097361: OUTPUT«thinger barfer thing bar␤»
[Coke] *sigh*. 20:34
I won't tell you how many lines of cfscript that is.
diakopter it is in the quadrillions?
masak he won't tell. 20:35
[Coke] biggest issue is that you can't pass in a function to the sorter.
so, again, really looking forward to coding my apps in mojoSix. 20:36
20:38 atrodo joined, cognominal left
TimToady I am currently running a Perl 6 program that is supposed to produce a value of five hundred seventy one sexdecillion or so... 20:39
sirrobert I did that the other day (I think I took a uuid as a hex number to the 1000th power
it worked! pretty quickly, too =) (~4 seconds)
TimToady that's the largest left truncatable prime in base 18
diakopter 0_0 20:40
TimToady which takes considerably longer than 4 seconds to calculate
I hope it will finish later today...
sirrobert whatever it was, it worked fast =)
diakopter TimToady: do you have a progress indicator?
TimToady yes 20:41
every pass through it calculates the next set of primes with one more digit, and prints the number of candidates
well, the next set of probably primes 20:42
20:42 wk_ left
TimToady ooh, just finished a pass, almost up to a million candidates now 20:44
7 49 314 1416 5187 15453 39296 86710 169131 297010 474064 688371 922770
so it's got 13 digits (base 18) now
it should peak at about 1.5 million candidates and then go back down
diakopter tries to fathom the significance of base 18 20:45
20:46 atrodo_ joined
TimToady the odd numbered bases tend to converge much faster 20:46
20:47 atrodo_ left, atrodo left 20:48 cognominal joined
colomon niecza> hypot(3,4) 20:51
20:51 cognominal_ joined
colomon 5 20:51
timotimo: ^^
colomon is pondering whether 3.hypot(4) should also work 20:52
TimToady not to mention "3 hypot 4" :)
diakopter TimToady: is it possible to create a P6 slang that does RPN 20:53
colomon TimToady: oooo. what do you think? 3 hypot 4 might outweigh both other versions.... 20:54
TimToady depends on what you mean by "possible"
20:54 cognominal left
TimToady colomon: then [hypot] would calculate a spiral 20:54
jnthn [Coke]: Are you sure you're really building latest Rakudo? All the fails relate to things fixed in Rakudo in recent days that then had tests added or unfudged. 20:55
20:56 cognominal_ left
[Coke] jnthn: huh. no, I'm running a rakudo from Aug 24th. 20:57
it's supposed to be updated daily.
TimToady niecza: say 3 Z[&hypot] 4
p6eval niecza v21-14-g3d9f4b4: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'hypot' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1435 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /ho…
[Coke] guesses he will have to start added a git hash to the spec runs for diagnostic purposes.
TimToady oh, that's your niecza
colomon TimToady: indeed 20:58
but I can check it in quickly. just wanted to figure out what the correct form was first.
TimToady well, once can cross generator forms with [&hypot], so it's probably not important to make it an infix 20:59
[Coke] jnthn++ #sanity check
TimToady how often are you going to want to do hyper hypot anyway?
colomon TimToady: okay. sub for sure. method or not?
TimToady .&hypot is there too
colomon TimToady: me? never so far. but it's a handy function, and timotimo++ requested it.
okay, sub only for now, then.
TimToady he want's a hyper hypot?
*wants 21:00
jnthn [Coke]: Yeah, I just looked at the list of tests and was like..."hang on..." :)
dalek ecza: f226bf6 | (Solomon Foster)++ | lib/CORE.setting:
Add sub hypot.
colomon TimToady: so you're thinking the spiral of theodorus would be something like [\&hypot] (1 xx 17) ? 21:01
sorear good * #perl6
colomon niecza> [\[&hypot]] 1 xx 17 21:02
1 1.4142135623730951 1.7320508075688772 2 2.23606797749979 2.4494897427831779 2.6457513110645907 2.8284271247461903 3 3.1622776601683795 3.3166247903554003 3.4641016151377548 3.6055512754639896 3.7416573867739418 3.8729833462074175 4 4.1231056256176606
nr: say sqrt(17)
p6eval rakudo 097361: OUTPUT«4.12310562561766␤»
..niecza v21-14-g3d9f4b4: OUTPUT«4.1231056256176606␤»
colomon o/, sorear 21:05
21:05 cognominal_ joined
timotimo i didn't ask for a hyper hypot, but hypotenuse in more dimensions seems sensible. 21:08
colomon niecza: say hypot(3,4)
p6eval niecza v21-14-g3d9f4b4: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'hypot' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1435 (die @ 5) ␤ at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37) ␤ at /ho…
sorear o/ colomon 21:10
21:10 cognominal_ left 21:11 benabik left
masak sorear! \o/ 21:12
sorear masak! 21:14
masak 'night 21:18
jnthn 'night, masak 21:19
21:19 cognominal_ joined
tadzik good knight 21:21
21:27 cognominal_ left 21:31 docdoctor joined
jnthn Conclusion on pick words: implementing it in terms of comb which is in turn implemented in terms of match is an elegant way to do it, but not an especially optimal one. :) 21:33
(where "it" is "Str.words")
21:34 cognominal_ joined 21:36 kurahaupo joined, flightrecorder left
jnthn alas, I should sleep now rather than hacking up a faster version :) 21:37
21:38 FROGGS left 21:42 FROGGS joined 21:45 kurahaupo left 21:46 flightrecorder joined 21:47 kurahaupo joined 21:49 cognominal_ left 21:56 cognominal_ joined 21:58 FROGGS left, FROGGS joined 22:01 docdoctor left 22:04 cognominal_ left 22:09 docdoctor joined 22:10 stopbit left 22:12 PacoAir left 22:14 cognominal joined
gfldex a jolly good talk like a pirate day me mateys! 22:17
22:24 bluescreen10 left 22:25 stopbit joined, cognominal left 22:28 stopbit left 22:31 whiteknight joined 22:32 cognominal joined 22:36 spider-mario left 22:41 pmurias left 22:57 wamba left 23:01 flightrecorder left 23:02 FROGGS left 23:11 flightrecorder joined 23:12 FROGGS joined 23:15 flightrecorder left 23:19 FROGGS left 23:32 FROGGS joined 23:36 flightrecorder joined 23:54 leont left 23:58 whiteknight left