»ö« 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:01 jevin left, molaf left 00:03 [Coke] left 00:04 [Coke] joined 00:06 jevin joined 00:09 [Coke] left 00:11 [Coke] joined 00:13 soh_cah_toa_ joined, soh_cah_toa left 00:15 [Coke] left 00:16 eiro left, rhr left, Woodi left, domm left, literal left, soh_cah_toa_ is now known as soh_cah_toa 00:20 eiro joined, domm joined, rhr joined, Woodi joined 00:22 [Coke] joined 00:26 [Coke] left 00:28 [Coke] joined 00:32 [Coke] left 00:34 [Coke] joined 00:35 ccc joined 00:38 [Coke] left 00:40 [Coke] joined 00:42 donri left 00:45 [Coke] left 00:46 [Coke] joined 00:51 [Coke] left 00:53 [Coke] joined 00:56 thou joined 00:59 [Coke] left 01:00 [Coke] joined 01:01 woosley joined 01:05 [Coke] left 01:07 [Coke] joined 01:11 [Coke] left 01:13 [Coke] joined 01:14 araujo left 01:17 [Coke] left 01:19 [Coke] joined 01:22 mkramer1 joined 01:24 [Coke] left 01:25 mkramer2 joined 01:26 [Coke] joined, tomaw is now known as 13WAAIF5K 01:28 mkramer1 left 01:30 [Coke] left 01:32 [Coke] joined 01:37 [Coke] left 01:38 [Coke] joined 01:40 wolfman2000 joined 01:41 whiteknight left 01:43 [Coke] left 01:45 [Coke] joined 01:47 literal joined 01:49 [Coke] left 01:51 [Coke] joined 01:57 [Coke] left 01:58 [Coke] joined 02:00 [particle] left 02:01 [particle] joined 02:02 abercrombie left 02:03 [Coke] left 02:05 [Coke] joined 02:10 [Coke] left, abercrombie joined 02:11 [Coke] joined, agentzh joined 02:16 [Coke] left
lue hm, nom silently fails when I try to use for 1..2**30 . I have a feeling it's cos the range is too big. [I know it's an issue with nom, because there's debugging text it should print every iteration of the loop] 02:17
02:18 [Coke] joined 02:23 [Coke] left
colomon nom: say 2**30 02:23
p6eval nom 53b1d8: OUTPUT«1073741824␤»
colomon nom: (1..2**30).map({ .say }) 02:24
p6eval nom 53b1d8: ( no output )
colomon nom: (1..2**3).map({ .say })
p6eval nom 53b1d8: ( no output )
colomon nom: for 1..2**3 { .say }
p6eval nom 53b1d8: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤»
colomon nom: for 1..2**30 { .say } 02:25
02:25 [Coke] joined
p6eval nom 53b1d8: OUTPUT«(timeout)» 02:25
lue although 2**15 (halving the exponent) works just fine [unfortunately, project euler wants 2**30]
colomon you do realize that doing anything 2**30 times in rakudo will take at least days, right? 02:26
02:27 ccc left
lue yes :/ [I did the math while testing the code with more sane values] 02:27
I got it down to 1024 loops every 3-4 seconds, but that doesn't help much :) 02:28
02:30 [Coke] left
colomon nom: say 2**20 02:30
p6eval nom 53b1d8: OUTPUT«1048576␤»
colomon nom: say 2**20 / 3600
p6eval nom 53b1d8: OUTPUT«291.271111111111␤»
colomon nom: say 2**20 / 3600 / 24
p6eval nom 53b1d8: OUTPUT«12.1362962962963␤»
colomon so that's like 40 days to finish at 1024 every 3-4 seconds... 02:31
02:31 [Coke] joined
lue I'd question PE's sanity on picking 2**30, but then I remember they don't use P6 :) 02:32
[ah well, off to try another problem...] 02:33
colomon what problem is it?
lue number 301 02:35
lue fears the theoretical nim game with the smallest stack containing 2**30 stones 02:36
02:36 [Coke] left
colomon lue: I'd be really surprised if they picked 2**30 AND a brute-force solution is the only way to tackle the problem... 02:40
lue
.oO(is just me, or do euler problems (at least the more recent ones) rely a bit too much on really large numbers?)
02:51
nom: say "bolton".reverse; say reverse("bolton"); 03:12
p6eval nom 53b1d8: OUTPUT«bolton␤bolton␤»
abercrombie nom: say "bolton".flip; say flip("bolton") 03:14
p6eval nom 53b1d8: OUTPUT«notlob␤notlob␤»
abercrombie Why there is a 'reverse' method for Str? 03:19
plobsing better question, why doesn't it return ipswitch? 03:20
lue nom: say "bolton".reverse.perl
p6eval nom 53b1d8: OUTPUT«("bolton",).list␤»
plobsing it is the *parrot* vm after all
lue reverse converts the Str to a one element array, apparently. [that's not very dwimmy] 03:21
03:21 Trashlord left 03:24 Su-Shee_ joined
Tene abercrombie: it's part of the general philosophy of making scalars behave like one-item lists. 03:25
jlaire lue: many project euler problems have a obvious but slow algorithm, and a less obvious but fast algorithm 03:26
including 301
Tene perl6: 1.map: *.say
p6eval niecza v9-5-gec4c616: OUTPUT«1␤»
..rakudo a55346: ( no output )
..pugs: OUTPUT«Inf␤*** Cannot cast from VList [VBool True] to Pugs.AST.Types.VCode (VCode)␤ at /tmp/aJKPeqTRmS line 1, column 1 - line 2, column 1␤»
03:26 Su-Shee left
Tene perl6: "foo".map: *.say 03:26
p6eval pugs: OUTPUT«Inf␤*** Cannot cast from VList [VBool True] to Pugs.AST.Types.VCode (VCode)␤ at /tmp/7Z7XyDZ1hA line 1, column 1 - line 2, column 1␤» 03:27
..niecza v9-5-gec4c616: OUTPUT«foo␤»
..rakudo a55346: ( no output )
Tene Huh; I wonder why rakudo fails there
nom: "foo".map: *.say
p6eval nom 53b1d8: OUTPUT«*␤»
Tene nom: "foo".map: { say $^i }
p6eval nom 53b1d8: ( no output )
abercrombie The memory leak problem finally got fixed? 03:32
03:34 araujo joined 03:41 wolfman2000 left 04:01 birdwindupbird joined
sorear good * #perl6 04:02
oopsie, forgot to report #phasers 04:06
04:07 cognominal___ joined
sorear colomon: template<typename S> class MyRole<S> : public S { ... }; class MyClass : public MyRole<SuperClass> { ... } 04:09
colomon: not strictly roles, but described in the roles paper as one of the most similar prior systems 04:10
04:10 cognominal_ left
sorear pmichaud: plobsing: IIUC (and currently implemented in Niecza), CATCH { die $! } has the effect of creating a second exception (from the die) while simultaneously rethrowing the original unhandled exception, and is an easy way to get a 2-simultaneous-exceptions scenario 04:14
plobsing: pmichaud: I'm not thrilled with this, or with the spec behavior of LEAVE { die } for that matter. 04:15
plobsing
.oO( leave and let die )
04:24
so what happens to the second pending exception if the first bubbles all the way to the top? does it get dropped? 04:26
04:44 jedai left
sorear plobsing: the set of pending exceptions stays together as it bubbles up, and they are all printed before exit 05:08
TimToady: Consider my int $x,$y,$z; ...; $x = ($y + $z) div 2; 05:09
TimToady: the user probably intends for the sum to be calculated as a fixnum. Is it possible to get these semantics in Perl 6?
TimToady int is just a storage type; temporary calculations are done in Int semantics, by current spec, methinks 05:14
course, you have an undeclared $y and $z there... :P
sorear yeah, current spec requires Int semantics iiuc too.
just thinking it may be sub-optimal for DWIM 05:15
I want to make it easy to transcribe C algorithms into Perl 6
also, we need to make +> :rotate work somehowe 05:16
TimToady :rotate(32) or some such maybe 05:17
05:18 jevin left 05:19 jevin joined 05:28 soh_cah_toa left, SHODAN joined
sorear flussence: I still want a code mockup for warning tests. 05:48
05:49 xinming_ joined
mberends sorear: good morning, what should be fixed/added next in compiler.pod? 05:50
05:52 xinming left 05:53 cexsum left
sorear mberends: good morning. I haven't read your version yet, I'll do that now 05:56
05:59 donri joined, donri left, donri joined
sorear mberends: all good up to the last paragraph 06:02
mberends: rawscall is raw static (method) call; it allows calls into C# libraries from Perl 6, like earlier versions of Niecza (before I started taking backend portability more seriously) defined say using (rawscall System.Console.WriteLine (obj_getstr {@args.join('')})) 06:03
mberends: the downcall mechanism is very hairy 06:04
mberends sorear: interesting. I thought last night about writing something about the bootstrapping implications of downcall 06:05
sorear mberends: run/Niecza.exe is linked against run/Kernel.dll (from the bootstrap zipball), but code you compile with Niecza.exe should link against obj/Kernel.exe (compiled from lib/*.cs)
obj/Kernel.dll
the CLR allows you to load two incompatible assemblies with the same name, as long as you load them in different "application domains" 06:06
mberends sorear: thanks! I'll also delete the old content and continue writing up CLRBackend.cs 06:07
sorear the C# DownCall method performs the necessary voodoo to create a second appdomain for running code, then invoke the back back end :) in CLRBackend.cs in the child appdomain
mberends back back end :-) 06:08
06:09 koban` joined, koban` left
mberends anyone interested in Niecza could learn and help a lot by checking and editing the documentation - this is vital to engage more contributors 06:12
I'd like to "dumb it down" further, to lower the barriers to entry 06:13
06:24 Su-Shee_ is now known as Su-Shee 06:26 wtw joined 06:33 birdwindupbird left, birdwindupbird joined 06:35 wamba joined
sorear mberends: well I'm going to sleep now. I'd like to point out that the internal representation is a bit more nuanced than a "tree of Op", but that might be a needed pedagogical simplification, I dunno. 06:44
mberends sorear: I agree, it's grossly oversimplified. I think for some things, the detailed explanation is positioned better out of sequence. 06:46
sorear: I'll try to figure out a friendly way to say more about AST's. I think there may be a need for a separate parser doc. 06:48
With some more work, this content could become a nice conference talk :) 06:50
06:56 ernanitecc joined
moritz o/ 07:00
07:00 ernanii joined
mberends good moritz morning 07:00
moritz :-) 07:01
moritz wishes martin a good moritz too
mberends mor<Tab> runs so naturally through the fingers :) 07:02
07:02 ernanitecc left
moritz I wonder if that should tab-complete to "methods of rationality" 07:04
mberends :-) 07:05
07:08 uasi joined 07:09 ernanitecc joined 07:10 ernanitecc left 07:11 masak joined
masak good moritz everyone. 07:11
07:12 ernanii left
moritz good mberends, masak 07:12
masak++ # backlogging before speaking up
masak phenny: tell ashleydev that yes, macros can be both AST-based and unhygienic. just defer all variable checks until macro-apply-time, and then have $x in the macro be the same as $x outside the macro. it's probably easier to implement than hygiene. 07:14
phenny masak: I'll pass that on when ashleydev is around.
masak might even be a stepping-stone to real, hygienic macros. 07:15
mberends good moritz masak 07:16
07:19 agentzh left
mberends masak: would you consider implementing your macro work on Niecza as well as Rakudo? Their AST's should be broadly similar. It would be a big win for portability. 07:20
masak mberends: I would, if it seemed easy. it doesn't seem easy.
mberends: Niecza still cheats with BEGIN time. 07:21
today's autopun sighting: twitter.com/robinannsmith/status/1...1020806144 07:24
mberends lol 07:25
moritz and the link I clicked after the autopun was creatingev.com/post/9610965432/i-ju...eta-copied 07:27
07:27 daxim joined
moritz and in the corresponding HN thread: "In a country with a billion people, even if you're one in a million, there's still 1000 people just like you." 07:28
07:29 dark_x joined, mj41 joined
masak that's not just literally true, but probably a good explanation for a lot of phenomena in China. 07:29
schools, careers, family planning... 07:30
moritz while working on my blog thingy, I noticed that I didn't like the traditional error messages 07:32
daxim 6 million is a small city, and nothing ever interesting happens
moritz "Cannot open file 'foo/bar.json' for writing: No such file or directory"
it doesn't tell me *why* the program is trying to open that file for writing
07:32 agentzh joined
masak good point. 07:33
to find out why, you generally go to the file and line.
daxim ' " quotes in error messages suck, if you want to grep in logs, they usually need shell quoting
mberends Given our genetic diversity, we are all probably one in a million when you fuzz the iris scans and fingerprints. Our uniqueness comes from our software and memory. 07:34
moritz daxim: what would you use?
daxim: also when I grep error messages, I usually search for either the message or the file name, not both 07:35
is that a real concern?
daxim typographic correct quotes. that was actually an improvement when gnu tools' english po started using that 07:36
moritz daxim: typographic correct quotes are very language dependent, and usually not in ASCII 07:37
daxim it's a concern, yes, not a big one, but one of the 1000 papercuts
screw ascii
moritz I'd rather not screw my error messages
I'm fine with non-ASCII for basically everything else
but error messages are sufficiently fundamental that I want them to work even in UTF-8-insane environments 07:38
YMMV of course 07:39
daxim that argument isn't convincing. look who is inconvenienced and who is not, you'd choose the wrong tradeoff
moritz "that argument isn't convincing" isn't a convincing argument.
07:39 im2ee joined
daxim fine, I'll draw a matrix. 07:40
masak moritz: good luck convincing someone of that!
moritz masak: :-)
07:42 ccc_ joined
masak moritz: but back to good error messages with the "why" in them. what would one look like? 07:43
moritz "Cannot open '$filename' for storing a blog post in it: $!" (maybe) 07:44
masak "Wanted to open '$filename' to store a blog post, but got this: $!", maybe? 07:45
moritz maybe
daxim style who is inconvenienced
moritz 'foo.json' people grepping using the phrase, cannot just paste, need shell quoting
daxim ‛foo.json’ people with insane unicode setup, will see âfoo.jsonâ or �foo.json�
second group is in the minority, why pander to them? that's not good design. 07:46
moritz daxim: you forgot the people who want to copy&paste the file name (which might contain whitespace) along with the quotes for using them in the shell
moritz -> afk 07:47
daxim surrounding something at the outer borders with quotes is easier than positioning the cursor accurately and backwhacking
mberends sneaks the babby meme into a circularity discussion in the forthcoming niecza/docs/compiler.pod 07:53
daxim hardware.slashdot.org/comments.pl?s...d=37260704 # language war, this one arguing for smaller languages because they're easy to implement 07:57
mberends applies the troll filter to that. Slashdot used to be fun, but is difficult to enjoy nowadays. 08:01
masak daxim: Perl 6 is a small language with a big setting. 08:03
flussence sorear: I did those, see irclog.perlgeek.de/perl6/2011-08-29#i_4343345 08:05
mberends thinks Perl 6 is a big language with an even bigger setting </troll> ;) 08:28
masak indeed, it doesn't have 7 primitives and almost no syntax, as does Lisp. 08:35
08:38 wk joined
jnthn morning, #perl6 08:39
mberends good moritz jnthn # tabs again :) 08:40
masak good mberends jnthn 08:42
jnthn oh heh, it's not just me that sometimes tries to tab complete morning... :)
Though I always managed to catch it in time before hitting enter ;)
mberends we need smarter irc clients
jnthn Yeah, it should just know what I want to submarine. 08:43
wait, what...
:)
masak haha, you pushed tab and it just gully completely wrench! 08:44
mberends perhaps jnthn's computer became full of eels during his break 08:45
08:47 drbean joined
mls morning perl6! 08:48
jnthn: nqp's 6model/multi_dispatch.c:nqp_multi_dispatch() leaks mem 08:49
because the sort_candidates result is not cached 08:50
masak good mls, morning!
mls masak, mberends, morning, good!
mberends eh :) 08:51
jnthn mls: Yeah, I still didn't get around to adding the caching there. It'll almost certainly perform awfully without it. In reality, I don't think anything is really using multi-dispatch in nqp yet, or barely. But it certainly needs sorting out. 08:52
mls compiling the setting calls it a couple of hundred times 08:53
nothing really worrysome, though
jnthn Yeah, that's what I mean. It's not on a hot path where we call it tens of thousands of time, like other things we do.
Anyway, if you want to add the caching there, that'd be very welcome. It's just an un-todone todo :) 08:54
mls by coping the code from nom? 08:55
jnthn It's not quite that easy, I fear.
Since we store/handle multis a bit differently in NQP due to lack of code objects (we use raw Parrot subs for stuff at the moment)
mls aaw.
jnthn But should be do-able. 08:56
Also, the thing nom does isn't a true "multi-dispatch cache" (more)
It just caches the sorted candidate list. It's possible to build something smarter.
github.com/jnthn/6model/blob/maste...chCache.cs # a C# sketch (working) of something smarter that I'd like to port at some point
08:57 dakkar joined
mls speaking of speed improvmends: I ran callgrind on the setting compilation, and about 20% of the time is spent in Parrot_SixModelObject_find_method 08:59
jnthn Whoa. 09:00
That's good to know.
mls (the includes the ->ext_call->runops->... subcalls)
jnthn is a bit surprised...but then, that's the point of profiling instead of guessing :)
Yeah, it should only do that when we call on something that's not yet been composed.
09:00 Mowah_ joined
jnthn hadn't expected so many calls of that nature 09:01
mls it seems like many method caches are not published 09:02
flussence (if anyone else wants to poke fun at what I wrote up there, go ahead :)
mls (btw, should it also cache negative hits? i.e., is the cache authoritative? 09:03
jnthn Well, we publish at composition time, so yeah, anything uncomposed will have no method cache and fall back into find_method 09:04
mls if yes, you might want to add if (VTABLE_exists_keyed_str(interp, st->method_cache, name)) return PMCNULL;
09:04 SHODAN left
cognominal___ hi. what is the meaning of the second parameter in an action? 09:04
mls cause, the VTABLE_get_pmc_keyed_str doesn't distinguish between entry not found and entry is PMCNULL 09:05
jnthn I didn't yet treat it as authoritative, though that's the goal. Well, kinda. Even if it's "authoritative" in Perl 6, it's not always going to mean we don't need to look harder. Many classes have fallbacks, for example.
masak cognominal___: it's the key.
mls ok, so forget about the VTABLE_exists_keyed_str test... ;) 09:06
cognominal___ yea, I see its value is often 'open'. I forgot what it means.
jnthn mls: Yeah. It's going to need to be a little smarter than that.
masak it could be anything we pass in from the grammar.
cognominal___ thx, now I see. that's the {*} hack. 09:07
masak right. 09:08
did that ever get spec'd?
jnthn I...seem to recall it being destined to go away. 09:09
09:09 pernatiy joined
cognominal___ masak: in glossary.pod 09:09
09:10 orafu left, orafu joined, thou left
cognominal___ As a follower to the discussion about implementing grammars for languages like javascript or coffeescript. I think that rules <ws-eopr> and <ws-eterm> to be used (when definid) in place of <ws> by EXPR would be nice. <ws-eopr> would be called when expecting an operator and <ws-eterm> would be called when expecting a term. 09:14
09:20 wamba left 09:25 daniel-s left, daniel-s joined 09:30 dark_x left 09:42 envi left 10:13 MayDaniel joined
dalek ecza: 0b103d1 | (Martin Berends)++ | docs/compiler.pod:
[docs/compiler.pod] save work in progress
10:17
10:18 im2ee left, wamba joined 10:22 im2ee joined 10:38 Trashlord joined 10:48 MayDaniel left 10:55 woosley left
tadzik good moritz #perl6 11:01
11:02 Mowah_ left
colomon \o 11:03
mberends o/ 11:10
tadzik I tend to treat irc client as vim sometimes, and expect it to autocomplete everything based on the last occurence of a certain word. I probably need a vim-based irc client :) 11:11
moritz tadzik: or a plugin
tadzik moritz: for vim, or for weechat? 11:12
moritz tadzik: irssi is scriptable in perl 5, for example
tadzik yeah, I know. weechat is a bit acmeist in this case :)
pmichaud good morning, #perl6 11:13
tadzik good morning pmichaud
jnthn o/ pmichaud 11:14
moritz \o
tadzik so the release hits this weekend at any cost? 11:22
pmichaud I don't know.... while out walking and thinking about it last night I'm not sure I'm comfortable with an august release with what we have. 11:25
I mean, what .pm group do we "punish" by naming this release after them? ;-) 11:26
masak pmichaud! \o/
pmichaud anyway, I'm working on the branch renames now in a practice repo.
masak Moon.pm
pmichaud I thought about Atlantis.pm
masak "This release s(t)inks!"
pmichaud if we're in agreement that the release really isn't up to our standards, perhaps we shouldn't release (more) 11:27
we can also put out a 2011.08 release in early september. I think there's precedent for this -- iirc, one of ubuntu's releases was delayed for a couple of months but still kept the same release number (more) 11:28
I'm not saying we'll delay by a couple of months, just that it doesn't _have_ to occur today.
masak if we delay, I think we should announce that just as we announce releases.
might give people something to look forward to. 11:29
pmichaud yes, there would be an announcement
"give people something to look forward to" isn't a good idea, imo
historically, Perl 6 has done too much of that already.
we can talk about what we have and where we stand, but shouldn't promise too much about what will show up 11:30
afk for a bit-- kid wakeups
masak oh, true. 11:31
I really meant "not allow people to walk away because nothing happens"
masak throws a mug
the reason for the delay is, at bottom, a good thing. I think that should be explained. 11:33
people have expended lots of energy, and will expend lots more, to build a better Rakudo.
the announcement-instead-of-a-release-announcement should reflect that, even if it doesn't promise things. 11:34
pmichaud anyway, yes, my intention was to make an announcement for whatever we decide to do, not just to let the situation fall into a black hole 11:36
11:36 Su-Shee left, Su-Shee joined
masak splendid. 11:38
12:10 mtk left, mtk joined 12:13 13WAAIF5K is now known as tomaw 12:14 isBEKaml joined, wk left 12:16 wk joined
felher masak: is there a way to look over your shoulder while your work on macros evolves? i.e. is there a nom-branch or something like that? 12:17
isBEKaml masak: macros! is that like aspects in Java? or macro defs in C ? :)
arnsholt No, like macros in Lisp 12:18
Which are super-mega-awesome =D
isBEKaml hmm, I don't know have any lispiness on me. :(
all I know (from what I read), they sound a lot like pointcuts and concerns in AOP. 12:19
masak felher: I have a local branch. 12:20
felher: at some point, I'll push it, and from then on I'll try to push often.
I'll also try and blog regularly.
isBEKaml or with a strange consistency. =)
masak isBEKaml: there are operational similarities between pointcuts and macros, yes.
isBEKaml: macros don't have the action-at-a-distance of aspects. 12:21
pmichaud oh, I didn't get a chance to review masak++'s proposal last night :(. Will do that momentarily. (masak: apologies)
felher masak: thnx. sounds good to me :)
masak pmichaud: no worries.
pmichaud I don't want to be a blocker there :)
tadzik proposal? 12:22
isBEKaml masak: Well, I have seen the same excitement that arnsholt++ exhibited about macros, but never got around to seeing them firsthand.
masak: Guess I'll get to see that in p6 and feel the excitement. :) 12:23
arnsholt In somewhat technical terms, macros let you create your own syntactical abstractions 12:24
In other words, you can extend the language in directions you ordinarily can't
isBEKaml arnsholt: a concrete example?
tadzik macro statement_prefix:<###> {}
to implement Smart Comments 12:25
pmichaud yeah, I still doubt that one (based on the current grammar)
masak me too.
pmichaud it'd have to be comment:<###> something, at best.
isBEKaml tadzik: now, what are smart comments? Sorry, I'm just confused.
pmichaud even then it might not be sufficient without some more grammar tweaks
masak isBEKaml: !cpan Smart::Comments
ooh, first time I use DuckDuckGo syntax on the channel :P 12:26
tadzik has that as 'cpan smart-comments' in the browser itself
isBEKaml masak: there's a module for that? Damn, cpan's got everything (only fault, it doesn't have a thesaurus!)
pmichaud "Smart comments" are a module created by TheDamian -- it allows debugging and other useful features to be placed in code; sometimes they're normal comments, sometimes they do useful things (depending on the 'use' statement)
sbp duck ♡
isBEKaml dukgo? you too? :D 12:27
masak isBEKaml: yes. in fact, the '!' syntax was what settled it for me. so nice.
isBEKaml: you should try the new metacpan :)
isBEKaml masak: yeah, the bang syntax is pretty useful. I use to search Stackoverflow! 12:28
masak I do !w a lot.
and !dictionary
tadzik I do !g a lot, to be honest ;)
huf i like that google disregards it so i can do !things no matter which search engine i'm using atm :) 12:29
isBEKaml Oh, smart comments. Like masak++ said, they do sound a lot similar to AOP in java.
masak I didn't say that :P
isBEKaml tadzik: that would just defeat dukgo now, won't it? ;)
masak: well, not a lot! :P
tadzik isBEKaml: not really. It's just that when ddg doesn't produce good enough results, I can just add !g to the query to switch to google 12:30
12:30 JimmyZ joined
masak macros look like subs or operators, but are "called" at parse-time. 12:30
isBEKaml tadzik: or allow it to recommend google. ;)
masak in terms of the DLX code I'm writing, I could write the algorithm using ordinary hashes, but have them look like objects with methods using macros. 12:31
which would give me pretty code *and* no overhead from objects.
pmichaud I've just cleaned up (removed) some of the outdated branches in the rakudo repo on github; here's a list of the ones that remain: pmichaud.com/sandbox/branches.txt 12:32
masak put differently, macros can be a convenient carpet under which to sweep some of a language's syntactical deficiencies. 12:33
pmichaud if anyone feels strongly about keeping or removing anything I've listed there, let me know soon. Or just remove the branch yourself if you're the one nominally in charge of the branch.
isBEKaml hmm, one thing that worked quite well with macros is that they were implemented only in dynamic programming languages. (Lisp, for eg). I'm not quite sure if macros can be fit in at compile time (while it's at runtime in the case of java)
masak isBEKaml: er. 12:34
isBEKaml: macros *do* execute at compile time.
isBEKaml masak: I was referring to dynamic languages that have macros (executed at compile time, ofcourse) 12:35
masak isBEKaml: anyway, if you count C macros, then macros definitely mesh with static languages. 12:36
flussence
.oO( I can imagine implementing PHP with maybe a few dozen macros... )
isBEKaml flussence: tell that to a Mr.Lerdorf! :P 12:37
tadzik podparser can be buried, I'll do that
gsoc-podparser as well, it's merge
d
I don't really remember what str-indent is about, probably some hard to track nombug, will take a look in a while 12:38
flussence I think that's master Str.indent...
isBEKaml masak: Either I'm confused or I haven't seen the full power of macros in C. From whatever little I got out of reading them, C macros don't extend the language in ways that "sweep" their deficiencies under the carpet.
masak: Granted, this won't be the first time I'm confused.. 12:39
tadzik flussence: it's created by me, so I'm not so sure :)
flussence oh
tadzik otoh, it's from april :/
12:40 bluescreen10 joined
masak isBEKaml: granted, they do it quite clumsily in C, but they still do just that. 12:40
flussence (I wonder if enough of nom works to port that function to it now...)
isBEKaml masak: Okay, I'll wait and watch how this evolves in p6. :) 12:41
tadzik flussence: nah, that branch is definitely master-based 12:42
jnthn pmichaud: nom-install can go now that nom is installable :)] 12:44
tadzik and seems that it has been merged already
removing
meh, I should start doing my physics :/ 12:47
12:47 JimmyZ_ joined
tadzik waking up on 1 PM doesn't help motivation at all 12:48
12:48 JimmyZ left, JimmyZ_ is now known as JimmyZ
pmichaud jnthn: deleted nom-install branch 12:52
moritz fwiw, nom-exceptions is still important for me 12:53
(I'll rename it myself if necessary)
12:53 Holy_Cow joined
pmichaud updated branches.txt to KEEP nom-exceptions 12:54
isBEKaml moritz,pmichaud: Aren't you guys running on master? It's nom based now?
pmichaud isBEKaml: not yet. I'm about to make the switch (like, in the next hour or so) 12:55
tadzik pmichaud: str-indent has been removed, as is podparser and gsoc-podparser
pmichaud I've already done a test switch at github.com/pmichaud/rakudo (a fork of rakudo/rakudo) and it seems to work just fine.
tadzik++ tadzik++ tadzik++ # one karma per branch delete
tadzik :)
taking a look at nom-buf now 12:56
isBEKaml pmichaud: Ohh, so this will be the first time there will be a nom release? :)
moritz it seems that github doesn't easily allow renaming of master branch
pmichaud no, it's quite easy.
moritz one has to change the default branch on the web interface fist
pmichaud you just have to set the .... right
moritz *first
isBEKaml s:2nd/will be/is/
12:56 Chillance joined
pmichaud isBEKaml: the next release, whenever it ends up being, will be nom-based. 12:56
there's not a lot of point to making another ng-based release, other than perhaps to keep things on schedule. 12:57
isBEKaml pmichaud: ISTR there should be a release now (couple weeks after parrot release)? 12:58
pmichaud isBEKaml: we had to postpone it... the nom branch really isn't release-quality yet
isBEKaml are we skipping it for a nom promise next time? (sorry for the pun)
JimmyZ Will operators be marco-ish?
isBEKaml JimmyZ: you can see operators all over the place! (I feel too punny) 12:59
Marco polo.
pmichaud we can make a release now if we want... and as of yesterday I was thinking we should do that... but after working on it a bit yesterday I decided that an incomplete and regression-full release may be harder to explain and deal with (for our users) than a simple postponement.
JimmyZ s/marco/macro/
pmichaud JimmyZ: many operators will be inlinable, which makes them have some of the characteristics of macros. 13:00
masak JimmyZ: TimToady says he considers short-circuiting operators such as infix:<&&> to be macros. 13:01
JimmyZ: that would explain why they short-circuit, i.e. don't always evaluate their rhs.
isBEKaml pmichaud: I see. Thanks for the clarification. Even as I have been away from the channel, I was following p6 and parrot news. Thanks again. 13:02
pmichaud oh! github already has a version of my list available! github.com/rakudo/rakudo/branches
JimmyZ something like sub *fix:<XXXX>() is inlinable { } ?
jnthn JimmyZ: No
pmichaud JimmyZ: yes, but you don't need the "is inlinable" part -- the optimizer can figure it out on its own. 13:03
jnthn JimmyZ: It's up to the optimizer.
Also, it isn't just operators, any suitable sub could be inlined.
isBEKaml masak: I don't know if p6 subs/methods have fixity like operators.
jnthn (Since operators are just subs anyway.)
pmichaud github++
tadzik I find this list more helpful: github.com/rakudo/rakudo/branches/nom 13:04
isBEKaml they always bind to the left, don't they? $some.<some_method> or $some <some_method>
pmichaud 1800 commits since the branch from ng
JimmyZ is curious how optimizer figure it out ;)
pmichaud jnthn: can the jnthn-opts branch go away? 13:05
tadzik . o O ( jnthn opts in ) 13:06
masak isBEKaml: p6 ops *are* subs/methods.
jnthn pmichaud: yeah
pmichaud: It's master-based
pmichaud jnthn: deleting
13:07 mtk left
pmichaud jnthn: deleted jnthn-opts 13:07
isBEKaml masak: ah, 'kay.
jnthn pmichaud: iirc, the thing I was looking at in it is actually done in nom :)
pmichaud isBEKaml: fixity on operator subs is done using traits.
sub infix:<xyz>($a, $b) is assoc<right> { ... } 13:09
isBEKaml pmichaud: Ah, that's pretty cool. Unfortunately, the only reference I could find in spec is in S06, with protos. 13:10
pmichaud look for "is assoc" in S06.
S06#2160
JimmyZ just realized Perl 6 doesn't use inheritance 13:11
jnthn JimmyZ: er, what? :)
pmichaud okay, I'm about ready to do the branch renames. Any last-minute concerns or objections?
masak JimmyZ: class A is B {} 13:12
tadzik for science!
jnthn JimmyZ: We have inheritance. :)
pmichaud Once I do the rename, people will likely need to delete existing repos and re-clone from rakudo/rakudo.
13:12 mtk joined
tadzik bah, and I almost compiled nom-buf ;) 13:12
pmichaud tadzik: I can wait a short bit (in fact, I'm still a few minutes out)
Su-Shee on the subject of nom... ;) is.gd/jo2Vow
JimmyZ maybe I'm confused between traits and inheritance 13:13
tadzik pmichaud: let me just check the state of that
JimmyZ: 'is' doesn't always mean inheritance
pmichaud tadzik: okay, no rush.
isBEKaml jnthn: yeah, don't know what JimmyZ was referring to. maybe he got sifted in between mixins and inheritance.
pmichaud yes, here we still have some ambiguity as to what the meaning of "is" is. :-)
tadzik grr, it now needs over 70% of my memory
JimmyZ PHP 5.4 introduced trait
just like scala 13:14
tadzik that shows me why I wasn't working on anything settings related recently
isBEKaml JimmyZ: weird, I was trying not to think of Scala when I saw pmichaud++ tell me about traits. :D
pmichaud moritz: a lot of the branches in the rakudo repo seem to have you as the last committer; can I summarily remove any of those branches that haven't had a commit in 2011? 13:15
JimmyZ isBEKaml: I agree with pmichaud++
pmichaud moritz: see github.com/rakudo/rakudo/branches -- especially the branches starting with "num-conversion" and below
JimmyZ isBEKaml: well, and also PHP 5.4 too 13:16
tadzik pmichaud: okay, nom-buf is still broken, no need to worry about it now 13:17
Could not find sub &postfix:<++>
pmichaud I'm afk for about 15 mins. Will do the branch rename when I return. 13:18
(barring objections)
isBEKaml JimmyZ: Well, I haven't done anything with PHP. But yeah, there's a lot of overlap here that it's so easy to get lost. :) 13:19
13:19 Holy_Cow left
JimmyZ isBEKaml: PHP are more like java && scala now :( 13:20
13:22 im2ee left
isBEKaml JimmyZ: Heh. No! .oO(It's now up to programmers to compartmentalise their brains) 13:22
JimmyZ isBEKaml: I'm say syntactic sugar, hehe 13:23
saying
13:23 envi_laptop joined
moritz pmichaud: I'll go through the branches and delete mine myself 13:24
13:25 im2ee joined, xenagi joined
xenagi perl6: say 3 13:25
p6eval pugs, rakudo a55346, niecza v9-6-g0b103d1: OUTPUT«3␤»
isBEKaml JimmyZ: yeah, I understood that. So, next time you're dealing with another language, google that syntax first! ;)
masak \o/
13:25 woosley joined, bluescreen10 left 13:28 wk left
mberends pmichaud: after the #phasers discussion where everyone but you were against 'ng', and then we could not unanimously bikeshed another name, are we also heading for ng: on the evalbot? 13:30
mberends still actively dislikes 'ng' 13:31
isBEKaml niecza: my int $x = 42; say $x; 13:32
p6eval niecza v9-6-g0b103d1: OUTPUT«===SORRY!===␤␤Malformed my at /tmp/dNeWlQd8tE line 1:␤------> my ⏏int $x = 42; say $x;␤␤Parse failed␤␤»
isBEKaml niecza: my Int $x = 42; say $x;
p6eval niecza v9-6-g0b103d1: OUTPUT«42␤»
bbkr_ niecza: my Int $x = 2147483647 + 1; say $x; 13:34
p6eval niecza v9-6-g0b103d1: OUTPUT«2147483648␤»
isBEKaml bbkr_: is that int max? 13:35
bbkr_ max of int32
masak mberends: I wouldn't mind either '2011.07: ' or 'beijing: ' 13:36
moritz patches to evalbot welcome and trivial.
mberends masak: same here
moritz: my thought is rather that it saves us so much time spent on explanations if the names match 13:37
flussence I like the 'beta' name 13:38
pmichaud I veto 'beta'.
isBEKaml niecza: my Int $x = 2147483647; say $x + 42;
p6eval niecza v9-6-g0b103d1: OUTPUT«2147483689␤»
pmichaud I absolutely do not want the existing 'master' to be somehow known as the "beta version of Rakudo"
it was never intended as such.
flussence point taken :)
pmichaud I'm fine for just about any name as a replacement for 'ng' 13:39
(except 'beta')
isBEKaml niecza: my Int $x = 2147483647; say $x ** $x;
13:39 buubot_backup left
isBEKaml :) 13:39
p6eval niecza v9-6-g0b103d1: OUTPUT«(timeout)»
pmichaud also, I'm going to hold off on the branch rename until I have the corresponding announcement ready to go (which I'm drafting now) 13:40
that way I can release the announcement as soon as the repo is convertged
mberends prefers 'beijing' after the foregoing opinions
dalek albot: 154c42c | moritz++ | evalbot.pl:
target rename: nom => rakudo, rakudo => b (b is common to "bejing" and "b<vetoed>"
13:40 bluescreen10 joined
isBEKaml b: say 42 # am I too fast? :D 13:41
moritz isBEKaml: yes
evalbot control restart
13:41 p6eval left, p6eval joined, ChanServ sets mode: +v p6eval
moritz b: say 1 13:42
p6eval b a55346: OUTPUT«1␤»
pmichaud I'm going to remove the validate-test-pm and leave_exceptions branches on github. They're both from 2009.
flussence if anyone new asks, I'll say "b" is for "bread". It's been in a cupboard for a few weeks and it's slightly mouldy now.
masak moritz: under the common prefix rule, you could've gone with 'be' :P
moritz masak: I could have.
tadzik bee 13:43
pmichaud "to 'be', or not to 'be'"
That is the question.
I prefer 'b' to 'be', fwiw.
isBEKaml but the bee is going to sting camelia.
tadzik is it a question?
mberends flussence++ # :D
jnthn b**2|<-[b]>**2
moritz anyway, further evalbot bikeshedding may happen in the form of patches.
moritz feels his part is done
mberends morning++ 13:44
tadzik ;)
mberends er, moritz++
tadzik silly github, never shows all branches
pmichaud github.com/rakudo/rakudo/branches looks *much* nicer now. Thanks all.
tadzik it used to be "showing 19 of 21", now it's Showing 8 of 11 branches
13:44 sftp_ joined
tadzik and now 6 of 9. Gah 13:45
daxim what's alpha?
moritz daxim: an auld branch
13:45 sftp left
isBEKaml daxim: before beta, from the time before time. 13:45
pmichaud before ng
tadzik bng
pmichaud 'alpha' was the development line before we had protoregexes and nqp-rx 13:46
isBEKaml .oO (I'm new to perl6, wtf is happening here? )
moritz back in the days when we had backslash escapes in char classes, <?after> and :P5
... and lots of Null PMC accesses 13:47
pmichaud and << quoted $words >>
moritz I'd even say Null PMC excesses
isBEKaml and .perl needed parens
moritz it did?
JimmyZ didn't thint so 13:48
isBEKaml yeah, I even remember asking a qn about it. (or I misremember)
JimmyZ think
pmichaud can we eliminate the 'require' branch? last updated 2010-09-24 by moritz++ 13:49
same for 'match_g' branch?
isBEKaml moritz: match_g? that's from 2010. 13:50
moritz please keep both for now
13:50 drbean left
pmichaud okay, np. 13:50
13:50 drbean joined
pmichaud I'm happy to be under 10 branches now :) 13:50
isBEKaml scumbag github, why do you not show all branches in the branch list page? :) 13:51
pmichaud isBEKaml: if you switch branches, it switches the list of branches in the branch list page. I'm not sure the relationship yet.
isBEKaml pmichaud: Switch branches(8). Showing branches 6 of 9? :| 13:52
pmichaud yeah, I think it has an off-by-one error somewhere.
flussence try the "network" tab, that supposedly gives you a gui of every single branch.
(maybe it only shows which others existed at the time of the selected one?) 13:53
13:56 sayu joined 13:57 risou_awy is now known as risou 14:01 buubot_backup joined, wk joined 14:03 wamba left, sayu left
isBEKaml b: say 42.perl 14:09
p6eval b a55346: OUTPUT«42␤»
isBEKaml b: 42.say.perl 14:10
p6eval b a55346: OUTPUT«42␤»
tadzik eh?
isBEKaml b: 42.say.say.say.perl
p6eval b a55346: OUTPUT«42␤Bool::True␤Bool::True␤»
isBEKaml is that right? 14:11
tadzik doesn't seem so
isBEKaml 42.say.perl
tadzik b: say (say 42).WHAT
p6eval b a55346: OUTPUT«42␤Bool()␤»
tadzik oh, ok
side effect of say()
masak yes, it's correct.
tadzik so 42.say.perl is (42.say).perl, .perl() not being printed
isBEKaml I was expecting, 42 and Bool.True when I chained perl to say.
tadzik you didn't print the latter 14:12
b: say 42.say.perl
p6eval b a55346: OUTPUT«42␤Bool::True␤»
tadzik so in your case, .perl was in void context 14:13
isBEKaml ah, okay. We usually do $sth.perl.say, so when I did $sth.say.perl, I thought I was chaining .perl to .say. Glad 'b' did the right thing. 14:14
14:14 [particle] left 14:15 [particle] joined 14:17 wk left
isBEKaml I'll be out in a while. 'night, folks! 14:17
14:18 mkramer2 left, isBEKaml left
pmichaud draft announcement for branch rename: pmichaud.com/sandbox/nom.txt 14:18
comments/patches welcome
flussence rakudo: say 'b' ~ ( [X~] 'a'..'z'.pick(5, :replace) );
p6eval rakudo 53b1d8: OUTPUT«babcdefghijklmnopqrstuvwxyz␤» 14:19
moritz so
that the "nom" branch is now the "master" branch.
flussence rakudo: say 'b' ~ ( [X~] ('a'..'z').pick(5, :replace) );
p6eval rakudo 53b1d8: OUTPUT«bkhorz␤»
moritz please make that 'the old "nom" branch'
or 'the branch known as "nom" so far'
on second thought, "old" isn't good :-) 14:20
pmichaud right.
flussence
.oO( hm, 'bkhorz' is a bit less pronouncable than 'bread' )
tadzik I can take care of RT too
flussence "the branch formerly known as nom"
14:21 jaldhar left, wtw left
arnsholt flussence: Then it can be renamed just "the branch" in a little while 14:21
14:22 wk joined
arnsholt And finally some weird astral Unicode character ^_^ 14:22
mberends pmichaud: nom's runtime speed is slower than master. I have figures for that. 14:23
pmichaud mberends: which parts? 14:24
our experience thus far is that compile speed is faster
moritz huh?
pmichaud sorry, runtime speed is faster
mberends the startup times are quicker but the per-statement execution times are slower
14:25 mattp_ joined
pmichaud is there some way we can get access to those times, or get the methodology used so we can evaluate elsewhere? 14:27
flussence
.oO( /usr/bin/script -t + use Devel::Trace; ? )
14:29
moritz rakudo: use Devel::Trace; say 1
p6eval rakudo 53b1d8: OUTPUT«use Devel::Trace␤say 1␤1␤»
mberends pmichaud: so far I've been using the new --timing option added to tools/test_summary.pl 14:30
14:30 im2ee left
pmichaud that option exists in both nom and ng? 14:31
14:31 im2ee joined
pmichaud I've updated the draft announcement to simply say "some performance regressions" 14:31
reload pmichaud.com/sandbox/nom.txt to see the latest. 14:33
PerlJam pmichaud: btw, have you considered just getting rid of the "master" branch and forego all the branch renaming? 14:34
pmichaud PerlJam: briefly, yes. 14:35
TimToady I'd just leave it "master" myself
and leave it in the past, like "modern" :)
pmichaud I think leaving it as 'master' is likely to confuse git folks.
TimToady yeah, there's that
14:36 masak left
PerlJam I like the way the perl5 repo gives blead instead of master. We could do the same with nom. 14:36
TimToady rename master to clotted then :) 14:37
pmichaud I'd be okay with eliminating 'master' as a branch name, and simply setting the default branch to 'nom'
I know that jnthn++ was a little sad to see the 'nom' label go.
TimToady I think renaming things like this is a bit insane
PerlJam TimToady: me too :)
pmichaud well, if we have a 'master' branch I think it has to actually be the master, or else we shouldn't have one at all. 14:38
TimToady no reason nom can't stay nom that I can see
it's only the master thing that is confusing folks
pmichaud so, I'd still rename 'master' to 'ng', but leave 'nom' as 'nom' and switch it to be the default.
PerlJam pmichaud: aye. get rid of master :)
TimToady it's a reserved word, alas
PerlJam "reserved word"? 14:39
pmichaud I'd like to hear +1/-1/other from jnthn+masak+moritz+mberends on that notion, though, since they've commented on the topic in the past.
TimToady reserved by git, anyhoo
PerlJam TimToady: are you sure? It's just a default name as far as I can tell.
flussence it's just convention AFAIK... 14:40
moritz pmichaud: 0
TimToady it's about as reserved as anything gets in git :)
pmichaud PerlJam: I think TimToady++ means "reserved by convention"
PerlJam oh, I see.
TimToady and Star Trek NG is in the past now too :)
pmichaud lol
PerlJam moritz: 0 == neutral?
moritz PerlJam: yes 14:41
PerlJam just checking
pmichaud TimToady and PerlJam are +1 on leaving nom as "nom" (just confirming)
I'm 0.
PerlJam pmichaud: yep
pmichaud I'm actually about 0.5, since it means no funny "you need to reclone the repo" stuff. 14:42
mberends I think any branch can be set to what you get when you do 'git clone', and I think the 'nom' name is rather cute, so I support this new suggestion.
'master' is probably the default branch name only when you create a new repo. 14:43
PerlJam pmichaud: it does mean that you need to communicate to everyone that "nom" is where all of the development takes place though ;-)
pmichaud PerlJam: we've communicated that already, though, many times :)
JimmyZ I'm -1 on leaving nom as "nom" :)
flussence you don't need to reclone the entire repo for a branch rename... but it does make things easier. 14:44
TimToady the basic problem is that we are mixing up two different levels of naming 14:45
PerlJam flussence: indeed, that's the thought that led me to suggest not renaming, because that makes things even easier :)
mberends JimmyZ: what's your reason?
TimToady we'd like to have names for versions that stick forever, and 'nom' is currently serving as that name, as well as the name of a branch 14:46
pmichaud pmichaud.com/sandbox/nom-2.txt has a version of the announcement that doesn't involve a nom->master rename. 14:47
rephrased the second paragraph a bit (reload) 14:48
mberends pmichaud: s/many problems/problems/ # it's not that bad 14:49
PerlJam TimToady: humans just aren't very good with "forever" though.
pmichaud PerlJam: and it's been that way for as long as I can remember. :-P
moritz pmichaud: "New incoming tickets will be evaluated against
the new 'master' branch"
pmichaud: that seems fossiled
14:50 kaare_ joined
pmichaud moritz: now fixed, thanks for catching that 14:50
TimToady PerlJam: Gutsy Gibbon is still Gutsy Gibbon
PerlJam pmichaud: you should use gist.github.com for these so we can just patch it :) 14:51
pmichaud: s/to file to/to file/
pmichaud: In the same paragraph moritz just mentioned
pmichaud PerlJam: fixed. 14:52
TimToady so I guess I'm okay with the notion that old master's real name is 'ng', since that's what it always was
pmichaud right. we've essentially used 'master' as a branch meaning "default development branch". But we can use the "default branch" capabilities more directly for that, I suspect. 14:53
14:54 uasi left
pmichaud at any rate, we can certainly do master->ng without nom->master at this stage, and if for some reason it doesn't work out we can then still do nom->master later. 14:55
14:55 thou joined
pmichaud but I'm betting it won't be necessary or desirable. 14:55
jnthn eep, I was mentioned, but I've gotta go for the train 14:57
back later ^
er, &
pmichaud the biggest difference to end-users for this announcement is that if you clone the repository, you default to the 'nom' version of Rakudo instead of the one that was used to build 2011.07 14:58
JimmyZ mberends: It's not terminal point :) 15:00
cognominal___ will github point by default to nom? 15:01
flussence there's an option there to set the default branch to display
mberends JimmyZ: ah, ok. Would you like to call the branch 'Ultimate' ? :)
TimToady
.oO(Ultimate Untruth) :)
15:02
moritz cognominal___: yes
JimmyZ mberends: it's a on going branch, I think
pmichaud all branches are ongoing, though.
cognominal___ that's a git setting or a github setting?
moritz cognominal___: git
JimmyZ alpha is a terminal branch, I think? 15:03
moritz right, the not-onging branches are called "tags"
JimmyZ: mberends recently updated alpha
pmichaud JimmyZ: it's only terminal in the sense of "we don't do much there"
JimmyZ pmichaud: yeah
pmichaud okay, I have to run some errands. Additional comments on branch renames and draft announcement greatly welcomed. 15:04
bbi30, I hope. 15:05
JimmyZ or if it's worth, I'm +1 too 15:06
im2ee Does exist something like LWP::Simple (or UserAgent), WWW::Mechanize or IO::Socket::INET for v6? 15:07
moritz im2ee: there's a LWP::Simple. See modules.perl6.org
im2ee moritz, great! I didn't see it when i was looking there yesterday. Thanks :) 15:08
And others?
IO::Socket? :)
And how to install modules for p6? :) 15:09
moritz IO::Socket::INET is core
im2ee: read the top of that page
im2ee What does it mean?
moritz it links to Panda, our module installer (at least I hope it still does :-)
rakudo: say IO::Socket::INET.new
p6eval rakudo 53b1d8: OUTPUT«Nothing given for new socket to connect or bind to␤ in method new at src/gen/CORE.setting:4947␤ in <anon> at /tmp/YIkXDpotXd:1␤ in <anon> at /tmp/YIkXDpotXd:1␤␤»
im2ee So it is build-in? :) Great! 15:10
15:10 uasi joined
im2ee moritz, thank You very much again. :) 15:10
moritz im2ee: you're welcome. Have fun hacking! 15:11
sorear good * #perl6 15:14
mberends o/ sorear
moritz \o sorear 15:15
sorear flussence: thanks 15:19
15:34 envi_laptop left 15:36 xenagi left
sorear How do you set default branches? 15:37
15:37 agentzh left 15:39 cosimo left 15:41 cosimo joined
colomon lolifinallyblogged: justrakudoit.wordpress.com/2011/08/...ex-issues/ 15:44
15:45 alester joined
sbp colomon: use the first quadrant associate or its conjugate? 15:47
colomon Is there a reason for that other than convenience?
*that choice
moritz sbp: feeding.cloud.geek.nz/2008/12/setti...-bare.html
sorry, meant sorear 15:48
moritz tabfails
sbp no, just convenience, but I use that in finding complex factors for example. you could do it so that the unit you get over is 1 instead of one of the other complex units, but I think it turned out to be better to normalise to first quadrant or conjugate for some reason... [tries to remember why...]
moritz sorear: iiuc, that sets the default branch when cloning that repo. Inside an existing repo, a "default branch" doesn't make much sense
sbp it might have just been that examples in mathematical textbooks tend to normalise in that way, so then it makes things easier when looking them up, you don't have to do quadrant transformations in your head 15:49
in some cases you can normalise to the first *octant*, gaussian primes for example 15:50
15:50 uasi left
sbp (when studying the composition of the primes only) 15:51
15:56 MayDaniel joined, alester left, alester joined 15:59 alester_ joined, alester left, alester_ is now known as alester
colomon Kahan, W. Branch cuts for complex elementary functions; or, Much ado about nothing's sign bit. In Iserles, A., and Powell, M. (eds.), The State of the Art in Numerical Analysis. Clarendon Press (1987), 165-211. 16:01
Hmmm... anyone have access to that? Util?
im2ee I have problem with installing panda. tadzik wrote in README that i have to have TAP::Harness - it's perl5's module? 16:08
16:09 JimmyZ left
im2ee Ok, nothing. :D 16:09
Sorry
16:11 pyrimidine left
pmichaud back again 16:12
16:17 birdwindupbird left 16:23 mtk left 16:24 mtk joined, wamba joined 16:30 mj41 left, wamba left 16:34 woosley left 16:39 uasi joined 16:43 mtk left 16:44 cognominal___ left, cognominal___ joined, mtk joined, uasi left 16:45 wamba joined 16:49 MayDaniel left 16:50 wk left 16:53 mj41 joined, wamba left, wamba joined 16:56 im2ee left 16:57 im2ee joined 16:58 wamba left, wamba joined 16:59 wamba left, wamba joined, dakkar left
tadzik im2ee: yes it is, but I'm quite sure you have it installed :) 17:07
I should probably use parrot_prove inside panda
17:14 wamba left
abercrombie nom evalbot doesn't work now? 17:16
tadzik rakudo: say $=POD.elems 17:17
p6eval rakudo 53b1d8: OUTPUT«0␤»
tadzik it's nom
pmichaud I think that nom: ought to work also
as well as rakudo:
"rakudo:
oops
"rakudo:" should be "whatever branch rakudo considers as default, while "nom:", "b:", and "alpha:" should refer to specific branches 17:18
tadzik +1
abercrombie oh,so what should I type if I want to use the Rakudo July? 17:19
Since there are some differences between the old Rakudo and the new one
17:20 wamba joined
pmichaud currently that's "b: " 17:20
b: say 'hello';
p6eval b a55346: OUTPUT«hello␤»
abercrombie Thanks. And what's the alpha one?
pmichaud alpha is the version that we had until early 2010 17:21
abercrombie I see. Thank you.
pmichaud alpha is basically what was available in the 2010-01 release
17:32 kfo_ joined 17:35 kfo left 17:43 masak joined
masak pmichaud: -1 17:43
pmichaud: I think it's a bad idea not to have a 'master' branch.
pmichaud ...because?
masak because it deviates from a very established practice. 17:44
pmichaud established for rakudo, or for a wider community?
masak for everyone that uses git.
and it will become a FAQ. and I don't really see the benefit.
granted, there are much more important issues than branch naming, but this seems just an unnecessary complication. 17:45
pmichaud okay, vote noted (and I can agree with your reasoning) 17:49
all of the git tutorials refer to 'master', if nothing else.
otoh, at some point a project likely gets large enough that defaulting to 'master' doesn't make sense
what does the linux kernel repo use, ooc?
masak good question. 17:50
flussence linux uses pretty much every branch/tag feature in git. There is a master, but people generally do stuff in other branches and it all gets rebased+merged later
pmichaud rebased+merged into what, though? 17:51
flussence into master, which I assume gets tagged as a release/RC once all the merging's complete that cycle 17:52
it's more of a temporary working area than something users are expected to follow
(at least, as I understand from observing it and reading a bit)
pmichaud if users aren't expected to follow 'master', then perhaps it makes sense for us to not use 'master' for primary development in the rakudo repo either. 17:53
mberends masak: currently all Rakudo contributors are fine with working in the 'nom' branch even without the convenience of it being the default. The FAQ's have not been so F.
pmichaud mberends: I think I found the reason for the slowdown in your test timings 17:55
mberends yay!
.oO( I hope it's not 'say' )
pmichaud it's most certainly 'say'
because 'say' on nom does a lot more than 'say' does in master 17:56
say in nom has to .gist all of its elements
say in master just prints them all out
mberends hmm, that possibility had crossed my mind
pmichaud I have some timings for it... just a sec
mberends I've make a fork of github.com/perlpilot/benchmark to investigate speed more deeply, that might also yield some useful data points 17:59
pmichaud gist.github.com/1184208 # timing differences in ng vs. nom
17:59 molaf_ left
pmichaud ng takes 2.17ms to perform the loop, master takes 2.20ms. That's noise-level-ish. 17:59
but to do the "is", ng takes 2.87ms, while nom takes 8.82ms 18:00
it's the test harness that is slower in nom
and it's worse when timings are enabled, because there are two 'says' 18:01
gist.github.com/1184224 # when timings are enabled, greater difference 18:02
mberends then to me it is justifiable to replace 'say' with 'pir::say' in Test.pm, suitably documented
pmichaud even just replacing it with print() ought to be a lot faster.
it avoids the .gists
at any rate, it's really not nom that is slower at runtime, it's the cost of using 'say' in Test.pm that seems to be the bulk of the slowdown 18:03
mberends ok, that gives me options to try out and implement the best one, fsvo best. :)
pmichaud++ 18:04
sorear wonders how to test Test.pm6
I guess redirecting $*OUT would do well
pmichaud when timings are enabled, the difference is 3.64ms (ng) versus 11.55ms (nom) on my system.
(that's the different in 'is')
*difference 18:05
abercrombie Hi, what's the counterpart in perl6 of the perl5's "while(<STDIN>){ using $_ }"? I read an article mentioned "for =$*IN {using $_}" but I couldn't verify it
mberends I'll do more benchmarking when the 'say' delays are eliminated, looking for other differences.
flussence any article using that = syntax is ancient 18:06
pmichaud another way of looking at it: adding the test timings increases the per-test cost by 9.3ms on my system
flussence use $*IN.lines
pmichaud and that overwhelms the cost of the test itself, by two orders of magnitude
abercrombie I tried this also, but the output gave me some language I don't recognize
rakudo: for $*IN.lines {say $_}
p6eval rakudo 53b1d8: OUTPUT«Land der Berge, Land am Strome,␤Land der Äcker, Land der Dome,␤Land der Hämmer, zukunftsreich!␤Heimat bist du großer Söhne,␤Volk, begnadet für das Schöne,␤vielgerühmtes Österreich,␤vielgerühmtes Österreich!␤␤Heiß umfehdet, wild umstritten␤liegst dem Erdteil du inmi…
pmichaud er, maybe just one order of magnitude 18:07
anyway, timings become dominated by the cost of producing the timings, not the tests themselves 18:08
djanatyn Hmm.
HTML::Template is kinda...weird.
I mean...>_>
<TMPL_VAR_NAME> # why?
mberends pmichaud: I'll experiment with accumulating the timings in an array, and outputting them all at the end. 18:09
pmichaud that might speed up the time needed for testing, yes. 18:10
as far as getting accurate times on the tests, we need to record the timestamp *before* the result is output
although I guess that doesn't quite work either
the way timings are set up, I guess we have to make the cost of outputting a result as small as possible 18:11
right now 'say' is kind of expensive for that.
mberends push is much faster
pmichaud not necessarily in nom
arrays aren't cheap either :)
but yes, the use of "# t=..." in the test output kind of assumes that the time needed for say/print are negligable relative to the tests. 18:12
18:12 wallberg joined
mberends ok, I can assign two scalars, before and after, and push between test times 18:12
tadzik err, why does say() use .gist, but print() does not?
pmichaud print stringifies
iirc, it's the "machine-oriented" form of output. 18:13
say is more dwimmy now.
tadzik odd, methinks
pmichaud take it up with the language designer :)
flussence (why would .gist be significantly slower than .Str in the first place?)
pmichaud flussence: it might not be all .gist, either. 18:14
there could be other things in 'say' that are slowing it down.
mberends ok, assigning times before and after a test will not require an array either
pmichaud and it might not be all 'say', either, it could be something in 'is'
18:14 masak left
pmichaud mberends: I don't quite understand how one can properly box a test in the current approach 18:15
mberends the time emitter is located in 'proclaim'
pmichaud right, it just gives the time of the proclaim
and we infer the time of the test by calculating the difference since the previous proclaim
which necessarily involves the time needed to output the 'ok' result.
plus the time needed to output the previous proclaim. 18:16
mberends yeah, much too simplistic it turns out
so I can use two scalars to eliminate the 'say' time
pmichaud I don't understand where the additional scalar will go, though.
but, I don't have to understand at this point. :) 18:17
tadzik so the bottleneck is actually Test.pm itself?
pmichaud tadzik: Test.pm slows things down, yes.
mberends I have an idea in mind, let me try to implement it after some afk stuff
pmichaud tadzik: but that's kind of to be expected -- certainly it takes longer to do a comparison and output results than it does to compute the result of a simple arithmetic operation, for example.
18:17 im2ee left
pmichaud mberends++ 18:17
tadzik: which takes longer... $i++ for 1,2,3; or is $i, 3, 'for 1,2,3 does three iterations' 18:18
18:18 im2ee joined
pmichaud I can argue that the second takes longer, if only because it has to do a lot more work than the simple for loop and increment :) 18:18
tadzik true
but having all those optimizations and stuff we are still pulled down by the smartness of say() :) 18:19
pmichaud so yes, when we're testing very simple primitives, the test harness tends to make things a lot slower than they would be if they weren't there
oh, proclaim already uses 'print' 18:20
those nested blocks will certainly slow things down for now, also. 18:21
flussence
.oO( idea for a benchmark - glxgears.pl6 :)
pmichaud although I guess only on failing/todo tests
tadzik it's not a benchmark! :P
pmichaud it's not a benchmark, but it got used as one :)
(and it is a benchmark, because we always talk about the time needed to run spectests :) 18:22
flussence tadzik: it's not a *GL* benchmark, sure :) 18:23
18:23 risou is now known as risou_awy
pmichaud anyway, I'm glad to know that nom underneath is still faster, except perhaps for output 18:23
and we can perhaps improve output speed -- that's not been something we've optimized for 18:24
s/faster/as fast/
flussence (didn't nom have all that work to reduce the number of parrot objects things used? or was that in both?) 18:25
pmichaud nom reduces the number of objects being created, yes. 18:26
at least, it theoretically does so. I don't know that we've measured it to make certain that's the case.
I could probably improve --stagestats to also report on the number of objects created. At least I can do that in nqp and nom; not so easy to do in ng 18:27
18:29 MayDaniel joined 18:39 daxim left 18:41 birdwindupbird joined 18:45 REPLeffect left
pmichaud masak: ping (wishful ping) 18:50
18:52 colomon left
PerlJam pmichaud: Did you come to a decision on renaming nom to master or not? 18:56
pmichaud PerlJam: masak had a -1 vote. (my ping is because I want to explore that vote a bit with him)
PerlJam oh. 18:57
pmichaud and I'm still wanting to hear from jnthn
mberends about to edit Test.pm and tools/test_summary.pl, assuming 'nom' branch
pmichaud branches are still not moved yet
so yes, 'nom' branch is current development branch
at the moment I'm still leaning towards "no master branch"
PerlJam Was masak's -1 because "master is a git convention we shouldn't break"? 18:58
18:58 REPLeffect joined
pmichaud PerlJam: irclog.perlgeek.de/perl6/2011-08-31#i_4353071 18:59
I think we're all agreed that the current master branch moves somewhere else 19:00
so the real question is whether we do nom->master or leave nom where it is.
19:00 gabiruh left
pmichaud and I'm wondering if masak++ modifies his vote slightly under the knowledge that if we leave 'nom' alone today, that doesn't prevent us from later doing nom->master if we discover that it is indeed a FAQ/issue for git folks 19:00
mberends is this another solution: master is what non-developers pull from, developers always commit to non-master branches, release managers update master from development branches?
pmichaud that substantially increases the work of the release manager, I think. 19:01
and I don't want non-developers pulling from git in general anyway. tarballs and distributions are what non-developers pull from. 19:02
PerlJam I don't see how it will become a FAQ
pmichaud someone who is a non-developer should be doing 'git checkout <release>' anyway.
(if they're wanting to pull from github)
PerlJam perl5 doesn't have a master branch and I don't think it's ever been a problem for them. 19:03
pmichaud yes, I'm a bit dubious on whether it will become a FAQ. And if it does become a FAQ, it's no more work to do nom->master then than it would be to do it now. 19:04
mberends PerlJam: I've forked Benchmark, how do you feel about me changing the time functions to fraction second resolution?
PerlJam mberends: feel free.
pmichaud ...which time functions, ooc?
tadzik time() I believe 19:05
mberends yes
pmichaud time() is spec'ed to return Int
(in p6)
mberends that's why I'd like to change Benchmark, not Rakudo
pmichaud wfm
PerlJam mberends: I assume you'd use some PIR to do this?
pmichaud I don't know what Benchmark is
19:05 commitlurker joined
tadzik github.com/perlpilot/benchmark/ 19:06
pmichaud actually time() isn't specced in p6
term:<time> is
tadzik what's the rationale for that
?
pmichaud PerlJam: sub-second time values are pir::time__N() in rakudo/nqp :) 19:07
mberends PerlJam: there is a pir:: option and a now.to-posix[0] option which is a bit slower
pmichaud s/a bit/a lot/
mberends that's why Test.pm doesn't use it either 19:08
pmichaud exactly :)
PerlJam I've never viewed Benchmark.pm (Perl 5 or Perl 6) as much good at dealing with fine-grained timing, but if you think it could be useful thus, go for it :) 19:09
mberends it has potential...
commitlurker pmichaud: github.com/pmichaud/rakudo/commit/...ab3#diff-4 > looks like the file regressed on some stuff like .pir instead of .nqp etc...
tadzik maybe we have a need for Time::HiRes which wouldn't be Parrot only
pmichaud tadzik: well, Time::HiRes would presumably abstract away the underlying machine details 19:10
tadzik yep 19:11
pmichaud commitlurker: +1 -- when I do the switchover for real I'll be sure to not regress that file.
commitlurker: thanks for catching that
commitlurker np, good work on perl6 btw guys :)
got to run now
pmichaud commitlurker: thanks!
19:11 commitlurker left
mberends hmm, didn't lurk much 19:12
not very committed to lurking
pmichaud lurking on the commits, not the channel :)
19:20 mkramer joined 19:27 mkramer left 19:29 birdwindupbird left 19:38 ab5tract joined 19:40 MayDaniel left 19:47 REPLeffect left 19:48 colomon joined 19:51 cognominal_ joined 19:54 cognominal___ left 19:58 sftp_ left 19:59 sftp joined, mkramer joined, mkramer left
mberends \o/ some tests are clocking in at < 1ms, pmichaud++ for fingering 'say' 20:00
20:01 REPLeffect joined 20:02 jevin left 20:05 jevin joined 20:35 mkramer joined
cotto_work are some nqp tests ( t/qregex/01-qregex.t) expected to fail? 20:35
20:39 bluescreen10 left 20:40 mkramer left 20:43 kaare_ left 20:58 bluescreen10 joined
lue good moritz #perl6 o/ 20:59
mberends o/
lue I just found mu/docs/p6types \o/ . Too bad it's 3 years out of date and I insist on doing it all from scratch anyway :) 21:01
[speaking of which, now would be a good time to get back to reading S02...] 21:02
dalek kudo/nom: 2bac6a9 | (Martin Berends)++ | / (2 files):
[lib/Test.pm] improve accuracy of test timing, pmichaud++ for diagnosing

This change affects the results in docs/test_summary.times that are created by 'perl tools/test_summary.pl --timing'. Prior to this commit the time calculated for each test included the time taken by print or say to produce the TAP output. A recent apparent slowdown in test performace was traced to 'say' taking longer due to added functionality. With this commit the time spent producing TAP output is excluded from test times, making them shorter and more accurate.
21:03
lue ooh, mberends++ 21:04
mberends it's a big improvement. Tomorrow I'll backport the fix to master and alpha as well. 21:07
pmichaud back from lunch 21:09
21:10 dorlamm joined
pmichaud cotto_work: I typically get 4 failures in 01-qregex.t 21:10
mberends++ # much better approach 21:12
cotto_work pmichaud: thanks 21:13
mberends on an OS X server, the time between two successive pir::time__N calls is 2 microseconds :)
21:13 donri left
pmichaud with or without boxing? 21:24
mberends with boxing 21:25
$time_before = nqp::p6box_n(pir::time__N); # and same into $time_after 21:26
21:27 y3llow_ joined, pothos_ joined 21:28 dorlamm left, wallberg left 21:29 MayDaniel joined, pothos left, y3llow left, y3llow_ is now known as y3llow 21:30 pothos_ is now known as pothos
pmichaud so, not too bad at all when boxing is included 21:32
still a bit more than we'd like... but we can live with it for now
does my num $time_before = pir::time__N(); work, ooc? 21:33
21:33 im2ee left
pmichaud nom: my num $time_before = pir::time__N(); # checking 21:33
rakudo: my num $time_before = pir::time__N(); # checking
p6eval rakudo 53b1d8: ( no output )
pmichaud rakudo: my num $time_before = pir::time__N(); say nqp::p6box_n($time_before);
p6eval rakudo 53b1d8: OUTPUT«1314826419.60683␤»
pmichaud looks like it does.
21:34 alester left
pmichaud rakudo: my num $a = pir::time__N(); my num $b = pir::time__N(); say nqp::p6box_n(nqp::sub_n($b, $a)); 21:34
p6eval rakudo 53b1d8: OUTPUT«1.9073486328125e-06␤»
pmichaud afk for a bit 21:35
mberends the new timings all have a hard floor of a few milliseconds removed from them, so the differences between times will be more apparent
flussence ooh, kernel.org got broken into 21:36
lue wonders how many are aware of the lost A20, S27, and S28 drafts... 21:38
flussence oh, that reminds me... can I poke someone to go update S26.html? There's been a lot of FormattingCode fixes since the current version there 21:42
21:44 wamba left
tadzik moritz once told me how to do that, but I don't really remember :) something in /var/somewhere I believe, let me see 21:45
okay, I know where to put it. Do you have a fresh html lying around?
flussence yep: raw.github.com/gist/1140332/795a15...6/s26.html 21:46
lue flussence: I like how kernel.org took the opportunity to promote git :) [also, Version 3 is stable‽ wow!] 21:49
flussence been stable for a few weeks now (it's only 2.6.40 renumbered)
sorear good * #perl6 21:50
21:50 mj41 left
mberends \o sorear 21:50
lue good moritz sorear o/ 21:51
21:51 Sarten-X left
tadzik Sorry, user tjs is not allowed to execute '/bin/cp s26.html /var/www/syn/S26.html' as root on feather. 21:52
so much for updating
sorear tadzik: Juerd has made it very clear that even though I have unrestricted root sudo, I am not allowed to create accounds or modify sudoers 21:53
tadzik: what command(s) do you need me to run? 21:54
flussence sorear: we're trying to get S26 slightly more up to date, that link I gave a few lines up is the newer version 21:55
flussence afk for a while 21:57
tadzik sorear: cp /home/tjs/s26.html /var/www/syn/S26.html
sorear done 22:01
22:02 Sarten-X joined
tadzik thank you 22:04
flussence: I see you've decided to keep formatting codes in their hand-written forms 22:05
oh, some of them
lue feels he should spend his computer's mass-upgrade time figuring out how to redo the SUPERNOVA parser, and does so. 22:07
22:08 MayDaniel left 22:10 molaf joined
tadzik I'm looking forward to your thoughts on this 22:10
lue my main goal in the redo is a nice clean way to handle blocks-in-blocks (which I'd have to figure out still if I decided instead to tackle formatting codes) 22:13
just looking at S26.html gives me the tuits to work on SUPERNOVA [ so I can generate an S26.html of my own, of course :) ] 22:17
tadzik :) 22:20
dalek ecza: 252c6a5 | sorear++ | lib/Test.pm6:
Implement {,eval_}{succeed,fail}s_ok per flussence++
22:21
lue btw, any update on block formatting?
22:22 dual left
tadzik nothing spec 22:23
well, there is something
=begin foo :formatted<I> and so
22:26 envi_laptop joined, dual joined
lue Some of the codes would be interesting if allowed for block formatting, e.g. L<> 22:27
tadzik hmmm 22:28
maybe there needs to be away to express the very same semantics with a more sensemaking syntax 22:29
like =begin formatting :there :we :go or so
22:32 phenny left, nsh- left
lue =begin foo :linkto<foo.org> perhaps? 22:32
I happen to like =begin foo : format<I> and such, it just becomes funny for some of the codes [perhaps those funny cases get their own config options] 22:33
tadzik I mean something universal, which could easily resemble all formatting codes capabilities. :formatted<B> is nice, but how do you make it :formatted<L[whatever]> or something?
22:34 pjcj left, phenny joined
lue
.oO(:formatted<L«linkmania»>) I'd outright disallow L<> for block formatting, if I didn't think there was a single edge case for needing it I'm not aware of
22:34
22:35 nsh_ joined
tadzik why, perhaps making a whole block of text linking to something. Making something impossible because I don't see a use of it doesn't make sense tome 22:36
lue exactly, I want to avoid doing that. 22:37
22:39 buubot_backup left
lue Just brainstorming [I'm not sure how I feel about this idea], how about each formatting code being its own config? e.g. =begin foo :B :L<linkmania> 22:41
tadzik like 22:42
22:42 pjcj joined
tadzik :formatting<foo> was probably to keep things like this under one namespace 22:42
22:43 cexsum joined, ponbiki joined
lue indeed, just a thought. 22:44
22:45 Holy_Cow joined
lue Ooh! How about, if the text of the block is a link [perhaps a large one], then :format<L> . If you want to turn the text in the block into a link :format<L«|link.org»> (display text implied to be block contents) 22:46
22:46 Holy_Cow left
sorear pokes flussense 22:47
22:49 bluescreen10 left
lue nom: my @a = "hai", 3, "we"; say @a; say @a.perl; # never thought I'd see this again 22:58
22:59 buubot_backup joined
lue um... 22:59
tadzik rakudo:
rakudo:my @a = "hai", 3, "we"; say @a; say @a.perl; 23:00
rakudo: my @a = "hai", 3, "we"; say @a; say @a.perl;
p6eval rakudo 2bac6a: OUTPUT«hai 3 we␤Array.new("hai", 3, "we")␤»
lue oh, so now nom is master? [or does rakudo: now go for the more common nom]
tadzik the latter
lue [perhaps my error was caused by the use of the REPL. Trying w/o it.]
Oh, i see. I type @.perl instead of @a.perl [and got a Null PMC error as a result] 23:01
s/type/typed/
23:01 Chillance left 23:09 literal is now known as l, l is now known as Guest99833 23:10 Guest99833 is now known as literal
flussence unafk (didn't expect to be so long, whoops) 23:10
sorear++ # things in backlog 23:14
lue
.oO(wow. mu/misc/pX looks veeery interesting...)
23:18
23:27 envi_laptop left
dalek : 524730d | lue++ | AUTHORS:
Added my name to AUTHORS, for real this time.
23:31
23:34 uasi joined, Psyche^ joined 23:38 wolfman2000 joined, Patterner left, Psyche^ is now known as Patterner 23:49 uasi left 23:58 molaf left