»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by moritz on 25 December 2014.
00:08 adu joined
flussence m: gist.github.com/flussence/4c53a9cf9a37083b4d1f 00:18
camelia rakudo-moar 3607d7: OUTPUT«gist not found»
flussence argh
for some reason, that grammar there *only* works if I have a «use Grammar::Tracer;» at the top... 00:19
masak flussence: github.com/jnthn/grammar-debugger/issues/13 00:20
flussence hm... guess I'll just have to resort to mid-regex debug print statements for now 00:22
oh for f-... that did the same thing! 00:25
00:25 Sysaxed left
timotimo you know you can --optimize=off if you suspect the optimizer is doing something wrong? 00:26
flussence I do now!
hm, same thing there
it works if I stick an empty {} in the middle of that ipv4 regex... 00:27
danstoner I want to exit my program cleanly from inside an "if" statement. 00:28
die spits out "ugly" info to the user if I use it.
00:28 laouji joined
danstoner Better way to "exit" a perl6 program from inside of a block? 00:29
jnthn exit; 00:30
Or exit 1; if you want to flag an error
(or whatever exit code you prefer)
danstoner ah yes. I tried:
exit "friendly message"; 00:31
plain exit works great, thanks!
jnthn If you want friendly message on stderr, then use note
note "friendly message";
danstoner Should I be able to find that info here: doc.perl6.org/language/
jnthn exit 1;
doc.perl6.org/routine/note is documented there 00:32
00:32 chemich joined
jnthn And apparently exit is missing. 00:32
dalek c: 70ed8e8 | jnthn++ | WANTED:
Add exit to list of things needing documenting.
00:33
flussence aha, the regex works if I remove the «| <ipv6>» above it... maybe it gets confused trying to LTM against two double-nested quantifiers like that.
jnthn Now it's on the todo list :)
danstoner jnthn: neat! thanks 00:34
jnthn Time for some sleep... & 00:36
00:39 laouji left 00:45 chemich left
dalek albot: e683ad0 | thundergnat++ | lib/EvalbotExecuter.pm:
Unbusticate evalbot execution of gists

Chase the ever changing URL extraction scheme to access the raw gist.
00:47
flussence m: gist.github.com/flussence/ba4f546121d3fd278142 00:54
camelia rakudo-moar 3607d7: OUTPUT«gist not found»
flussence shakes fist angrily at the sky
00:54 laouji joined
flussence (I golfed the grammar down) 00:54
(and found a workaround! So I'm happy, I guess.) 00:55
fernando_ how can I know if a rw method is being used as a lvalue? 00:59
00:59 laouji left 01:01 kaare__ joined
Mouq would like to point out there's an API from which we could potentially get the raw value… developer.github.com/v3/gists/ 01:01
api.github.com/gists/ba4f546121d3fd278142 01:03
masak 'night, #perl6
Mouq (for flussence's gist above)
'night masak!
01:05 kaare_ left
Mouq Or, in fact, the API just has the "content" section… :P 01:05
dalek albot: 620d8ef | thundergnat++ | lib/EvalbotExecuter.pm:
Fix evalbot execution of gists.

Helps to use the correct domain name
Mouq Aaand! we could support multiple files, only executing the ones that have "Language": "Perl6" set… 01:08
01:13 thundergnat joined, colomon joined
timotimo it could even make other files available under their names 01:16
as local files
Mouq timotimo: Except safe mode means that that should be useless 01:17
*RESTRICTED.SETTING 01:18
timotimo oh 01:19
well, it could pipe something in through stdin or something
01:19 camelia left
Mouq true :) 01:19
01:19 camelia joined
Mouq But for now: 01:19
m: gist.github.com/flussence/ba4f546121d3fd278142
*ahem* 01:20
01:20 ChanServ sets mode: +v camelia
camelia rakudo-moar 3607d7: OUTPUT«gist not found» 01:20
thundergnat Hmmm. github must be doing some ...interesting url rewriting behind the scenes. 01:22
01:23 dg left
Mouq thundergnat++ for trying to manage this anyway :) 01:23
thundergnat: Err, in case you didn't see, irclog.perlgeek.de/perl6/2015-02-26#i_10181202 01:27
I'm not sure if thundergnat == flussence 01:28
I… don't think so 01:29
thundergnat No, I'm someone else. :-)
Mouq Haha, okay, sorry :)
thundergnat Actually, I hadn't seen that link. Thanks
fernando_ is it possible to know if a rw method is being used as a lvalue? 01:30
Mouq fernando_: You may want to look into Proxy 01:31
...it looks like something broke doc's search bar
Oh, nvm
Something with my browser
fernando_ the function want() should exists? 01:34
Mouq m: sub aproxy() { my $p; Proxy.new( FETCH => { $p //= rand }, STORE => { $p = $^a.rand } ) }; my $proxy = aproxy; say $proxy; $proxy = 15; say $proxy 01:35
camelia rakudo-moar 3607d7: OUTPUT«0.526778118027559␤15␤»
01:35 dg joined
Mouq fernando_: I've never heard of it? 01:36
(At least not in Perl6. There is design.perl6.org/S06.html#The_want_function however) 01:37
fernando_ gist.github.com/anonymous/f2051640b4e470f33232
perl6.org/archive/rfc/118.html
skids m: 1 +> -1; # This is not specced behavior, and in C undefined, and perl 5 undefined unless "use bigint". Should I spec it? 01:38
camelia ( no output )
skids erm
m: say 1 +> -1
camelia rakudo-moar 3607d7: OUTPUT«2␤»
fernando_ I wanted something like this: gist.github.com/anonymous/07ace64ffae13156cc05
Mouq fernando_: "Status: Retired" 01:39
on the RFC
fernando_ I dont know how to do that with Proxy
01:39 echowuhao left
fernando_ Mouq: touche 01:39
01:40 echowuhao joined, echowuhao left
Mouq Proxy.new(FETCH => { callsame }, STORE => -> \arg { $!chaged = True; callsame = arg }) perhaps? 01:41
I haven't done much with Proxy
01:41 telex left
fernando_ Mouq: ok, now I think I understood the proxy! 01:42
Mouq I also don't know if the blocks interfere with callsame…
01:42 telex joined 01:43 salv0 left
Mouq m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; do-something = 12 01:43
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lXh_OID0c2␤Preceding context expects a term, but found infix = instead␤at /tmp/lXh_OID0c2:1␤------> 3k = { callsame }; block}; do-something =7⏏5 12␤»
01:43 salv0 joined
Mouq m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; do-something() = 12 01:44
camelia ( no output )
Mouq m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; say do-something = 12
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VtzvdqVQfI␤Preceding context expects a term, but found infix = instead␤at /tmp/VtzvdqVQfI:1␤------> 3{ callsame }; block}; say do-something =7⏏5 12␤»
Mouq m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; say (do-something() = 12)
camelia rakudo-moar 3607d7: OUTPUT«12␤»
Mouq Cool :)
fernando_ I got a "Segmentation fault: 11" 01:49
with if: 01:50
gist.github.com/anonymous/f6aa5b03a68a5a89a746
01:53 salv0 left, salv0 joined
Mouq A Segfault is always a problem with Rakudo. But I don't think you want "STORE => method", just a block or anonymous sub 01:55
fernando_ if I dont use method I'll cannot change the attribute $!changed, or will I? 02:00
Mouq It should curry the variable… 02:01
"curry" is indubitably the wrong word
02:01 camelia left, camelia joined 02:02 chenryn joined
fernando_ i think now I got a infinite loop... 02:03
02:03 ChanServ sets mode: +v camelia
fernando_ gist.github.com/anonymous/19e247c86a65b34cfddb 02:03
thundergnat m: gist.github.com/thundergnat/4ef049...fefedd4820
camelia rakudo-moar 3607d7: OUTPUT«Yay! Camelia can execute gists again!␤»
Mouq m: my $c = my class { has $.bar = 15; method foo is rw { -> { $!bar } } }.new; my $foo := $c.foo.(); $foo = 3; say $c;
camelia rakudo-moar 3607d7: OUTPUT«<anon>.new(bar => 3)␤»
Mouq thundergnat++ 02:04
thundergnat Sigh. It helps if you actually pull the changes _before_ you restart the bot...
02:07 [Sno] left
fernando_ is it a infinite loop? gist.github.com/anonymous/6d3cb3ee4ddc0678db90 02:18
Mouq: but I am not doing that inside a method... 02:19
02:21 pochi_ joined, pochi left 02:23 adu left, grettir left 02:27 thundergnat left 02:30 coffee` left 02:33 afoote joined
afoote how do i uninstall a module with panda? 02:34
colomon afoote: I don’t think panda has an uninstall command yet 02:35
I think the files are installed to rakudo’s install/languages/perl6/site/lib/ 02:38
02:38 afoote left 02:39 afoote joined
fernando_ m: sub a () is rw {our $b}; &a.wrap(sub () is rw {Proxy.new: STORE => sub ($val) {callsame() = $val}, FETCH => sub {callsame}}); a() = 42 02:51
camelia rakudo-moar 3607d7: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in sub at /tmp/pMPmWCaxvh:1␤ in block <unit> at /tmp/pMPmWCaxvh:1␤␤»
02:53 afoote left 02:55 adu joined
fernando_ m:class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => method ($val) {callsame() = $val}, FETCH => my method {callsame}})}; A.new.a = 42 02:55
I think camelia is on a infinit loop... :( 02:56
sorry...
no, not a loop... 02:57
m: class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => method ($val) {callsame() = $val}, FETCH => my method {callsame}})}; A.new.a = 42
camelia rakudo-moar 3607d7: OUTPUT«Memory allocation failed; could not allocate 89360 bytes␤»
fernando_ or yes, a loop
should it run a infinite loop? 02:58
p: class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => method ($val) {callsame() = $val}, FETCH => my method {callsame}})}; A.new.a = 42 02:59
02:59 adu left 03:06 noganex_ joined 03:09 noganex left 03:13 kaare__ is now known as kaare_ 03:24 dolmen left 03:34 leont left 03:37 dolmen joined 03:47 adu joined 03:48 Guest33365 left 03:49 Ovid joined 03:50 Ovid is now known as Guest96799, adu left
broquaint Is "sink context" defined somewhere? 03:56
04:00 colomon left 04:11 colomon joined
Mouq fernando_: But you are in a method, the one you're wrapping with… 04:13
m: class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => -> $val, |c {callsame() = $val}, FETCH => {callsame}})}; A.new.a = 42 #hmm 04:15
camelia rakudo-moar 3607d7: OUTPUT«callsame is not in the dynamic scope of a dispatcher␤ in block at src/gen/m-CORE.setting:742␤ in block <unit> at /tmp/y535_6fbCo:1␤␤»
04:16 echowuhao joined, echowuhao left
Mouq m: sub foo { $ = 1 }; &foo.wrap:{ new Proxy: FETCH => { callsame } }; foo() 04:22
camelia rakudo-moar 3607d7: OUTPUT«Unhandled exception: callsame is not in the dynamic scope of a dispatcher␤ at <unknown>:1 (/home/camelia/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295)␤ from src/gen/m-CORE.setting:14885 (/home/camelia/rakudo-inst-2/lan…»
Mouq ^ Golf
04:32 laouji joined 04:37 laouji left 04:54 pierrot left, pierrot_ joined 05:04 afoote joined 05:08 laouji joined, pierrot_ is now known as pierrot 05:12 laouji_ joined, laouji left 05:18 afoote left 05:20 mephinet left 05:22 raiph left 05:27 diana_olhovik_ joined 05:55 Vlavv_ left 06:00 BenGoldberg left 06:01 [Sno] joined 06:03 laouji_ left, mephinet joined 06:05 diana_olhovik_ left 06:06 laouji joined 06:09 xinming left 06:10 laouji left 06:16 laouji joined 06:30 jack_rabbit joined 06:34 bjz joined 06:41 xfix joined 06:47 jack_rabbit left 06:49 [Sno] left
dalek c: 8be9545 | paultcochrane++ | README.md:
Correct typo and simple paragraph wrap
06:52
06:57 jack_rabbit joined 06:59 hypolin joined, hypolin left 07:00 bjz left 07:01 Rounin joined 07:08 diana_olhovik joined 07:22 jack_rabbit left 07:23 jack_rabbit joined, wicope joined 07:27 dolmen left 07:33 darutoko joined 07:36 abraxxa joined 07:38 anaeem1 joined 07:42 jack_rabbit left 07:46 jack_rabbit joined, gfldex left 07:49 abraxxa left, FROGGS joined 07:50 abraxxa joined
dalek c: bb20897 | paultcochrane++ | CONTRIBUTING.md:
Document how to build the documentation

This includes a dependency installation guide.
07:55
07:56 _mg_ joined, Vlavv joined 07:57 jack_rabbit left
raydiak grr kwin keeps crashing with compositing turned on, but I feel like I'm working blind without a transparent terminal to read docs/sources and code at the same time 08:01
08:02 zakharyas joined
geekosaur so turn off kwin compositing and install compton 08:05
08:05 jack_rabbit joined, prime- left
raydiak huh...good idea, thanks...guess it was kinda blind not to think of the other compositors :) 08:06
08:06 laouji_ joined
geekosaur well, there are disadvantages; it's actually kinda hard to do compositing right without access to window manager internals, it turns out 08:08
raydiak seems to be working a charm so far, albeit without the compiz glitz I don't really care about
geekosaur (X11's compositing interface is kinda messed up)
08:09 beastd joined, prime joined
raydiak ooh --backend glx even 08:09
08:10 espadrine joined, bjz joined, laouji_ left 08:13 Ven joined
raydiak I'm likely to replace my DE or maybe distro soon anyway, it's been flaky for a while now; and I gave kde a good shot for like 8 months, but it's just too heavy for my taste 08:14
08:14 larion left
raydiak but in the mean time, here's hoping compton will help me procrastinate some more :) 08:14
08:16 bayprogrammer left, _mg_ left
raydiak wonders if a kernel downgrade might help some of his issues...was sure this thing used to run cooler and more stably at some indeterminant point in the past 08:17
08:19 virtualsue joined
raydiak it idles at like 60 degrees, used to be more like 45, and it's not like there's a bunch of abberant cpu usage (except chrome as always :P) 08:19
Ven o/, #perl6 08:20
08:21 bjz left
raydiak hello Ven 08:21
08:23 sqirrel_ joined 08:25 jack_rabbit left
FROGGS raydiak: you may need to clean the cpu fan 08:28
you can easily increase your cpu temperature with a dirty fan and cooler
08:29 rindolf joined
raydiak FROGGS: yeah you're probably right, I just didn't want it to be that...it's like 40 screws and basically complete disassembly 08:29
have to take *all* the layers apart...keyboard, motherboard, everything just to get at it :P 08:30
FROGGS raydiak: well, you can be glad it is not a mac :o)
raydiak I have one, wish I could still use it, but the cord on the power supply went bad
FROGGS my dell laptop got up to 105°C with a dirty fan... after cleaning it got back to 65°C or so, when compiling rakudo on all three backends at once 08:31
well, ebay offers cheap power supplies, no?
nwc10 FROGGS: the apple magsafe connector is patented (or something) - no-one else makes them
raydiak and there isn't knock-off magsafe adapters, so it's like $80, which is about what I could sell the whole thing for once it works again 08:32
nwc10 and it seems to be a design fault
08:32 [Sno] joined
FROGGS ahh, I see 08:32
nwc10 my second one gave up, despite me being very careful with it
I now have one blagged from work
but the laptop is 7
so I'm waiting for something else to fail
(battery is held in with genuine Gaffer tape, keyboard space bar is starting to give up)
raydiak well there are some knockoffs, but all the reviews I check say they fry out the power port and stuff like that 08:33
nwc10 and, curiously, I think it's running hotter than it used to
so that comment about fans is curious
oh, and on second battery, which may give up in a year
FROGGS :o)
I do like my dell
nwc10 at which point I'm hoping that ARM v8 chromebooks look interesting
FROGGS I get cheap (used) replacement parts and it is very easy to disassemble... I like things that I can fix by myself 08:34
nwc10 because that gets me ARM v8 to play with, and a new portable device
raydiak I was thinking about seeing if I could solder the power cord straight on to the little power adapter board inside, but fear it's probably tiny contacts beyond my crude soldering skills
FROGGS nwc10: hmmm, nice option
nwc10 FROGGS: I haven't worked out yet if it's possible
I'm hoping it gets easier the longer I can delay 08:35
FROGGS that's often true
raydiak
.oO( omg I wonder if this started after that one time I fell asleep with the laptop on the carpet )
08:37
FROGGS coincidence! :P 08:39
raydiak maybe while I have the thing apart I can cut out an access panel to get to the only serious maintinence part without major surgery next time 08:42
08:46 espadrine left
raydiak wishes things like modern cars and laptops weren't designed in ways which actively discourage fixing them 08:47
08:47 jack_rabbit joined 08:51 rindolf left 08:53 bjz joined 08:56 jack_rabbit left
tadzik yes 08:58
you have to pick them very carefully to be able to do anything with them 08:59
09:01 abraxxa left, rurban joined 09:02 abraxxa joined
raydiak I'm actually pretty satisfied for $120 at a pawn shop, but it does have it's annoyances and limitations 09:04
what does "method sink () { self }" accomplish?
jnthn Not much... :) 09:07
"If this object is in sink (void) context...evaluate to itself"...except the value is of course thrown away
raydiak it's PythonObject from Inline::Python, which represents a function as far as I can tell 09:10
jnthn Ah...maybe it's to suppress the call getting delegated to Python? 09:11
masak good antenoon, #perl6
raydiak does it make a difference if it has a postcircumfix:<( )> ? could it be helping making the object callable?
\o masak
FROGGS .oO( gut pull - what a typo )
raydiak oh yeah I get it...so when rakudo calls .sink...yeah got it :) 09:12
lizmat
.oO( better than gut push )
09:12 MadcapJake left
FROGGS wow, URI::Encode::uri_encode is veeeery sloooow 09:13
(if you call it often enough)
jnthn
.oO( not sure a gut show is much better... )
09:14
raydiak jnthn: wait wouldn't you potentially have to do the same thing for lots of other methods? eg .list or .flat if it's used in a flattening context?
jnthn raydiak: I suspect those are inherited, but there's no default sink method 09:15
raydiak jnthn: ah, cool then...the only leak is in the sink 09:16
[ptc] FROGGS: got commit?
FROGGS [ptc]: no, I didnt gat a commit, I made one by myself :o) 09:17
[ptc] :-D
09:18 Alina-malina left
dalek c: 629a420 | moritz++ | / (2 files):
Document sub exit
09:19
c: 0aa46b0 | moritz++ | lib/Type/List.pod:
Sub form of eager
09:19 dakkar joined, Alina-malina joined
sjn #perl6 stuff happening in Oslo next week \o/ blogs.perl.org/users/damian_conway/...-oslo.html 09:20
nine_ the sink() is just for fixing Rakudo failing with an unknown method sink message 09:22
raydiak huh
nine_ raydiak: why are you asking? 09:23
raydiak nine_: I hope you don't mind, I'm blatantly ripping off some of your work for Inline::Lua but will credit you in the README :)
09:25 larion joined
jnthn moritz++ # tireless doc work 09:25
nine_ raydiak: not at all...I'm glad I created something useful :)
09:25 fhelmberger joined
moritz doesn't feel tireless at all *yawn* 09:26
FROGGS :o) 09:27
jnthn ;)
raydiak nine_: I even improved the native() technique to not have to write it at all for each sub in Lua::Raw, in EXPORT I just run over all the subs and match the name against /^luaL?_/ ...this lets people write "use Lua::Raw <JIT>", "use Lua::Raw <5.1>" and so forth too 09:28
dalek kudo/newio: 2eee799 | lizmat++ | src/core/IO.pm:
Fix case of broken symlink
09:29
09:30 kjs_ joined 09:31 bayprogrammer joined 09:32 virtualsue left, espadrine joined
nine_ raydiak: oh that sounds like a good idea 09:32
raydiak though I actually want to make the version a property of the Inline::Lua instance instead...different versions are not composable as-is
e.g. the first module that you load determines the version that everything subsequent gets...maybe need Lua::Raw['JIT'] or so to fix that, but I haven't tried yet 09:34
but first I'm working on tables which in lua provide objects and classes and hashes and arrays, so my crude suppor there kinda limits its iterop usefulness atm 09:37
*support 09:38
ab5tract unfortunately, i don't have time to backlog properly, but i wanted to make sure you folks saw this www.techworld.com/careers/perl-deve...y-3599357/
osfameron ab5tract: yeah, that was a pretty good article 09:41
raydiak nine_: what happens if someone wants to call e.g. a method named 'list' on a PythonObject? is that what .invoke is for? 09:49
nine_ raydiak: yes 09:51
raydiak: err...no!
That is handled by the add_fallback code further down 09:52
invoke() handles callable objects
raydiak I mean if you try to call a method which is named something that is already inherited from Any or Mu, you get the Perl method not the Python one, right? 09:53
TimToady home before 2am
nine_ Itvdepends on which invoke you mean. There's Inline::Python::invoke and Inline::Python::Object::invoke 09:54
raydiak TimToady: welcome home :)
nine_ raydiak: yes that's still a problem
jnthn TimToady: Sounds like long journey was long...
nine_ raydiak: see my FOSDEM talk for a workaround (HTML::Parser example) 09:55
typing on phones sucks....
raydiak nine_: cool thanks, I'll check it out 09:56
typing on laggy ssh connections isn't all that great either :)
the table implementation is going to be fun...basically one class which supports method calls, positional, *and* assosciative 09:59
moritz like Match 10:00
raydiak usually that ambiguity is a problem for translating from lua, b/c no way to know if lua empty table is a hash, array, object, class, etc...but it's p6 so I can just have one object do all the things and respond according to how it's accessed instead of what was returned from lua 10:01
yeah...or like Capture, but that turned out to be a different complicated story
nine_ It's really nice that Perl 6 seems to be a superset of other languages' features. 10:03
raydiak moritz: btw the docs say "class Capture does Positional does Associative { }", but it actually doesn't do either one in the code...but that description is functionally very useful as far as understanding the intent goes
nine_ No mstter how complicated the foreign API, we can map it to Perl6
raydiak so true 10:04
afk for a few
FROGGS nine_: I feel the same with C/C++ interop :o)
10:05 sqirrel_ left
moritz m: say Capture ~~ $_ for Positional, Associative 10:06
camelia rakudo-moar 3607d7: OUTPUT«True␤True␤»
moritz raydiak: ^^
it does both
nine_ in p5's Inline::Python it was a real problem that p5 has no real named arguments
FROGGS a proper type model also helps a lot 10:08
for the C++ name mangling you would have to pass strings around instead of types to make it work
nine_ oh yes Types++ 10:09
raydiak m: say Capture ~~ Positional 10:10
camelia rakudo-moar 3607d7: OUTPUT«False␤»
raydiak m: say Capture ~~ Associative
camelia rakudo-moar 3607d7: OUTPUT«False␤»
moritz huh. 10:11
m: say Catpure.^roles
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zWzPHM1vu5␤Undeclared name:␤ Catpure used at line 1. Did you mean 'Capture'?␤␤»
moritz m: say Capture.^roles
camelia rakudo-moar 3607d7: OUTPUT«␤»
moritz m: say Capture.^mro
camelia rakudo-moar 3607d7: OUTPUT«(Capture) (Any) (Mu)␤»
raydiak and not in the code that I could find, either by declaration or by metamodel 10:12
afk again
jnthn moritz: Beware ~~ with $_ :) 10:15
moritz also I wonder why Iterable is a class, not a role
jnthn: oh right :/
10:15 virtualsue joined 10:18 virtualsue left 10:19 sqirrel_ joined 10:20 noganex joined 10:23 spider-mario joined, noganex_ left, pecastro joined 10:32 telex left, telex joined 10:37 Ven left 10:44 chenryn left
raydiak back 10:45
10:50 rindolf joined 10:52 beastd left
dalek c: c2ded1a | (Matthias Krull)++ | CONTRIBUTING.md:
added some more introductory information to CONTRIBUTING
10:53
11:05 thilp joined
dalek c: 83ec926 | paultcochrane++ | htmlify.p6:
s/hilight/highlight/
11:10
c: ee49c3c | paultcochrane++ | htmlify.p6:
Expand single char variable names for clarity
c: 3b6d55b | paultcochrane++ | lib/Language/traps.pod:
Mention how to reference last element of an array
c: 114c308 | paultcochrane++ | lib/Language/traps.pod:
Mention how to capitalize strings
c: 49f6df8 | paultcochrane++ | CONTRIBUTING.md:
Merge branch 'master' of github.com:perl6/doc
c: 1160afc | paultcochrane++ | CONTRIBUTING.md:
Correct pygementize package name for Debian
c: 5b89eac | paultcochrane++ | htmlify.p6:
Append doc source reference link to Type and Language pages
sergot hi #perl6
11:11 sqirrel_ left
raydiak hello sergot 11:12
11:14 virtualsue joined 11:17 chenryn joined
moritz [ptc]++ 11:17
arewewebyet.com/ Perl 6 doesn't do too bad in comparison, I'd say :-) 11:20
11:20 Ven joined 11:22 sqirrel_ joined 11:25 laouji_ joined
masak wishes he had more tuits for his 'isperl6readyforproduction' idea :/ 11:30
11:30 laouji_ left
masak I like the color coding and categories. 11:31
nwc10 masak: is there a webserver in perl 6 on which to run it?
how is the mini-masak?
masak answers that in privmsg :) 11:34
nwc10: yes, there is a webserver. yes, we could totally dogfood it. 11:35
nwc10: but if I wanted to be practical in that case, I would statically generate it. no good reason not to.
Ven looks at the smalltalk videos from fosdem.. 11:36
moritz and the pages would load a lot faster :-)
raydiak goes to bed o/
11:44 chenryn left
masak nwc10: nothing to prevent us from dogfooding an excellent static generator, though. 11:44
11:44 coffee` joined 11:46 _mg_ joined 11:49 kjs_ left 12:00 wicope left 12:01 xfix left 12:02 chenryn joined 12:05 rurban left 12:06 _mg_ left 12:13 AndChat-458964 joined 12:14 sqirrel_ left, chenryn left 12:16 Sqirrel left 12:19 rurban joined 12:21 Akagi201 joined 12:26 chenryn joined 12:30 Akagi201 left
literal how do I require a minimum version of a module when loading it with Inline::Perl5? 12:31
12:43 anaeem1 left
moritz use Inline::Prel5:ver<0.1+> or something like that 12:44
but I doubt it actually works
12:45 chenryn left 12:48 kjs_ joined 12:51 Akagi201 joined
psch \o 12:51
doesn't the p5 side of Inline::Perl5 handle that? 12:52
oh, i suppose not with our «use»
moritz oh, I misunderstood literal 12:57
literal I would settle for checking $object.VERSION after instantiating the class, but that doesn't work either 12:58
13:06 leont joined 13:07 pmurias joined
pmurias does a php to Perl 6 translator sound like a sane idea? 13:08
Ven sane? no. amazing? Sure :D
literal sounds saner than a Perl 6 to PHP translator
13:09 sqirrel_ joined
psch literal: VERSION is usually a package sub, not a method i think? 13:09
although i'll readily admit i don't know much about p5 OO
literal yeah, but in Perl 5, methods are package subs
psch remembers something about bless 13:10
literal they just do something special with their first argument ($self)
psch checking the version in a perl5 program is with $Module::Name::VERSION, not with my $obj = Module::Name->new(); $obj->VERSION;, right? does that make a difference?
pmurias Ven: seems the best way of learning PHP as writing something in it doesn't seem like a good option ;) 13:11
13:12 laouji_ joined
literal psch: yeah, the former is the conventio, but both work 13:14
13:16 laouji_ left
psch literal: i see. if VERSION isn't reachable through Inline::Perl5 i suspect nine_++ would want to know 13:16
literal actually, you can ignore me, the issue was that the Perl 5 package I was loading was lacking a "our $VERSION = ..." 13:17
so $object.VERSION actually does give me the version now
"use Perl5Module:ver<0.1>" doesn't work though, and would be Nice To Have 13:19
forgot the :from<Perl5> there
pmurias literal: a Perl 6 to PHP translator doesn't seem possible, it would have to be a compiler as Perl 6 is much more powerful 13:22
literal exactly
moritz nqp-php, I hear you coming 13:26
13:32 kaleem joined 13:41 kaleem left 13:48 grondilu joined 13:51 sqirrel_ left 13:52 AndChat-458964 left 13:53 laouji left
Ven
.oO( nqphp )
13:56
tadzik that was phpish :) 13:57
nine_ literal: can you please open a github issue for Perl 5 module version requirement? Sounds somewhat simple to implement.
After my flight instructor's exam tomorrow I should have a lot more spare time :) 13:58
Ven tho, really, code generation backends would be interesting if not so difficult considering p6's ßemantics :).. 14:00
14:01 mjreed joined
nine_ Writing compilers in Perl 6 is a piece of cake. 14:01
mjreed Does %*ENV not work in rakudo-star? Or did the spec change?
moritz star-m: say %*ENV.perl 14:02
camelia star-m 2015.01: OUTPUT«("LANG" => "POSIX", "SHELL" => "/bin/bash", "MANPATH" => "/home/camelia/perl5/perlbrew/perls/perl-5.20.1/man:/usr/local/man:/usr/share/man", "LC_CTYPE" => "en_US.UTF-8", "PERLBREW_BASHRC_VERSION" => "0.71", "LOGNAME" => "camelia", "PERLBREW_MANPATH" => "/home/…»
mjreed ok. something weird with my local build then
should have just tried that, but not sure what’s supposed to be in the env of the bot, which might have been cleansed for security purposes etc. 14:03
Thanks.
14:12 laouji joined
Ven smalltalk's surprising. Why does reversing a symbol give a string? 14:16
.oO( we're not the only one with a "bad" reverse *g* )
14:16 laouji left
ab5tract m: my $x; $x *= 5; say $x 14:19
camelia rakudo-moar 3607d7: OUTPUT«5␤»
literal nine_: sure
ab5tract i was a bit surprised by that
not sure if i was only surprised because ++$x autovivs $x as 0, or what 14:21
especially in the context of 14:23
m: my $x; $x /= 5; say $x 14:24
camelia rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</>␤ in method Numeric at src/gen/m-CORE.setting:14974␤ in sub infix:</> at src/gen/m-CORE.setting:5144␤ in block <unit> at /tmp/s2djlLmYE8:1␤␤»
ab5tract (unless i am misreading what zero-arg means there, which i took to mean "can't have a 0 as an operand for infix:</>"
which, yes, i am misreading 14:25
colomon does seem a bit odd that *= works but /= doesn’t. 14:27
might have something to do with Rats? 14:28
btyler this was in the context of the sharp ends of perl 5's "sometimes autoviv without warning, sometimes warn" behavior with my $foo; $foo (op)= (value)
colomon has to admit he’s not really convinced that the *= example makes sense 14:29
btyler ie in perl5: my $foo; $foo += 1; does not warn, you get 1. my $foo; $foo *= 3; warns, you get 0.
ab5tract colomon: indeed, it seems to me that the case of autoviving to a number should have a consistent rule 14:30
colomon I’m pretty sure these ideas got added to the language for handling [+] and [*] 14:31
In both cases, using the additive / multiplicitive identity makes great sense
but I don’t know if I’d expect it to autoviv the same way 14:32
ab5tract hmmm. yes i can see it in that context.
btyler m: say [/] 1 .. 5; 14:33
camelia rakudo-moar 3607d7: OUTPUT«0.008333␤»
btyler seems to not use the zero-arg multi
at any point
but yeah, the identity makes sense there, also agree 14:34
colomon m: say [/] 14:36
camelia rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</>␤ in method gist at src/gen/m-CORE.setting:14976␤ in sub say at src/gen/m-CORE.setting:17740␤ in block <unit> at /tmp/jQZOLKWC09:1␤␤»
colomon m: say [*]
camelia rakudo-moar 3607d7: OUTPUT«1␤»
colomon that’s the difference there
it does seem to me that both should return q 14:37
errr, 1
:)
hmmm
m: say [-]
camelia rakudo-moar 3607d7: OUTPUT«0␤»
colomon yeah, definitely 1
moritz huh, what's the problem? 14:40
colomon moritz: looks like no one ever defined the zero-arg version of infix:</>
or possibly it’s getting muddled up in Rat handling somewhere 14:41
FROGGS does it make sense to have a "zero arg version"
?
ab5tract well, i don't get why '$x /= 5' could be considered zero arg in the first place 14:42
moritz m: say [/]
camelia rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</>␤ in method gist at src/gen/m-CORE.setting:14976␤ in sub say at src/gen/m-CORE.setting:17740␤ in block <unit> at /tmp/aALq4KDilL:1␤␤»
FROGGS I mean, for * it does not matter what is LHS or what is RHS..., but for / it matters
14:42 Ven left
ab5tract FROGGS: same can be said about - 14:42
14:43 fernando_ left
FROGGS probably... 14:43
14:43 fernando_ joined
ab5tract only difference is that pesky divide by zero ;) 14:43
14:43 fernando_ left 14:44 fernando_ joined
grondilu thinks binary operators should have a zero arg version only when there is a clearly identified neutral element. 14:44
colomon grondilu: which there is for both subtraction and division 14:45
FROGGS: I don’t see how LHS vs RHS enters in at all
?
grondilu not sure about division, 1 is a right-neutral element, but not a left-one.
(same for substraction) 14:46
colomon grondilu: good point
14:48 fernando_ left, larion left
FROGGS colomon: I understand it that way: zero-arg meaning for + is 0 because 0 + n = 0... and 1 * n = n... but there is no such thing for division or subtraction 14:49
colomon does think we should be considering this as two different issues: what happens with meta-op reduct and what happens with auto-viv
FROGGS err, 0 + n = n
colomon but (as grondilu points out), if you write it the other way it makes perfect sense: n - 0 = n and n / 1 = n 14:50
[Coke] wonders who the christoph is that replies to all the perl6 questions on StackO.
FROGGS m: my $x; $x *= 5; say $x # I'd think this should be 0 and that means $x has to autoviv to 0 first, and that it does not do that is a bug
camelia rakudo-moar 3607d7: OUTPUT«5␤»
moritz FROGGS: it's a design decision that it's not 0
14:51 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk
FROGGS ahh, hmmm 14:51
interesting :o)
colomon moritz: but I’m certainly willing to question that design decision
FROGGS [Coke]: probably usev6 / bartolin 14:52
moritz colomon: questioning that is best done by collecting use cases
[Coke] ah. the only matching name in my head was cotto, and I was pretty sure that was wrong. Danke.
FROGGS [Coke]: kein Thema
nine_ moritz: do you know the rationale for this design decision? Looks quite surprising to me. 14:53
14:55 Ven joined 14:57 fernando_ joined
grondilu degenerate cases are tricky anyway. I've suggested once that someone writes a synopsis about them. 14:57
moritz nine_: not sure, but maybe the idea was to view a non-existing element like a zero-element list 15:00
15:01 fernand__ joined
moritz my %weights; %weights{$name} *= 1.05; 15:01
15:02 fernando_ left 15:05 fernand__ left
ab5tract moritz: it's fair to say "we autoviv to 1 for * because we want [*] to be sane" 15:05
but then what's going on here?
colomon but reduction very explicitly does NOT work that way
(autoviv-like, I think) 15:06
15:06 fernando_ joined
ab5tract where here is $x /= 5 15:06
colomon actually, maybe I’m not understanding what ab5tract is trying to get at here 15:07
ab5tract colomon: well, i can vibe with the argument that for * we autoviv to 1 15:08
it's kind of surprising, but in the context of [*] it makes sense
colomon Ah, I see those as almost completely separate issues
ab5tract but isn't the idea so that [*] 5, 6, undef, 7 will DWIM 15:09
?
that seems exactly like autoviv to me
colomon m: say [*] 3, 4, Int, 5
camelia rakudo-moar 3607d7: OUTPUT«Invocant requires an instance, but a type object was passed␤ in method Bridge at src/gen/m-CORE.setting:5458␤ in sub infix:<*> at src/gen/m-CORE.setting:5369␤ in sub at src/gen/m-CORE.setting:21008␤ in block <unit> at /tmp/OHhUe5xM96:1␤␤»
PerlJam colomon: you'd have to use Nil instead
ab5tract m: [*] 1,2,$x,3
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SCT6Syfhko␤Variable '$x' is not declared␤at /tmp/SCT6Syfhko:1␤------> 3[*] 1,2,$x7⏏5,3␤ expecting any of:␤ postfix␤»
ab5tract m: my $x; [*] 1,2,$x,3 15:10
camelia rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context in block <unit> at /tmp/czu8iVYtsf:1␤␤»
FROGGS m: my $x; say [*] 1,2,$x,3
camelia rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context in block <unit> at /tmp/rk4QVI7CAg:1␤␤0␤»
colomon yeah, it’s not supposed to autoviv there
ab5tract okay, i stand corrected. they are very different issues
15:10 fernando_ left
ab5tract all that is very confusing in my opinion 15:10
colomon :)
PerlJam ab5tract: sometimes autoviv to 0 and other times autoviv to 1 would be *highly* surprising
ab5tract PerlJam: yet that is exactly the behavior we currently have 15:11
colomon issue one: what happens when you do a reduct on the empty list? That’s where the 0 and 1 thing makes sense for sure with [+] and [*]
PerlJam ab5tract: show me?
colomon issue two: what happens when you need to autoviv a number into a [math-op]= expression? 15:12
ab5tract m: my $x; $x *= 5; say "$x autovivs to 1 for *"; my $y; $y += 5; say "$y autovivs to 0 for +";
camelia rakudo-moar 3607d7: OUTPUT«5 autovivs to 1 for *␤5 autovivs to 0 for +␤»
PerlJam ab5tract: ah. 15:13
I'd call that at least one bug.
ab5tract m: my $x; $x /= 5; say "$x doesn't autoviv for /"; my $y; $y -= 5; say "$y autovivs to 0 for -";
camelia rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</>␤ in method Numeric at src/gen/m-CORE.setting:14974␤ in sub infix:</> at src/gen/m-CORE.setting:5144␤ in block <unit> at /tmp/Hp5Hs3Co__:1␤␤»
colomon BTW, that’s a very LTA error message 15:14
ab5tract so yeah, i would claim WAT/YAPAE, if not bug
i also don't get why reduct should ever be else than 0 for an empty list 15:16
colomon ab5tract: en.wikipedia.org/wiki/Product_%28ma..._sequences 15:17
PerlJam Does the behavior of my $x; $x *= 5; fall out of the reductio ad nihilo of [*]? What I mean is, was this an accidental by product?
colomon PerlJam: don’t think so 15:18
it was explicitly done
PerlJam Hmm.
[Coke] m: say [*] Nil 15:20
camelia rakudo-moar 3607d7: OUTPUT«1␤»
15:20 xinming joined
ab5tract colomon: damnit, math wins again ;( 15:22
15:23 rurban left, njmurphy joined
colomon ab5tract: where it gets tricky is with subtraction and division. As far as I know, niether one has a standard math eqivalent like [+] and [/] do 15:24
15:24 xfix joined
colomon like with subtraction, you’d always just say (using p6 instead of standard math notation) n - [+] rather than [-] 15:25
PerlJam Still seems to me like my $x; $x *= $blah; # just hides an error that would otherwise be caught.
colomon PerlJam: yes, as I said above I think autoviv is a separate issue from reduct on empty lists 15:26
or at least, it’s conceptually different
PerlJam aye. I'm just agreeing after engaging what little brain power I have this morning :)
PerlJam prepares the caffiene
colomon wonders 15:31
m: my $x; say $x * 4
camelia rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context in block <unit> at /tmp/Pi1MeECq1T:1␤␤0␤»
colomon thinks it is a very bad idea to have $x = $x * 4 and $x *= 4 return different answers 15:32
15:32 laouji joined
colomon m: my $x; $x = $x * 4; say $x 15:32
camelia rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context in block <unit> at /tmp/mHXag8h89M:1␤␤0␤»
colomon wants to rephrase that Very Bad Idea
15:33 kjs_ left 15:35 rurban joined 15:36 mjreed left 15:39 chenryn joined
tadzik d'oh, github-awards.com/users/search?login=tadzik lists me as #1 in the world in Perl 6 15:42
I guess it means "number of repos" :)
colomon tadzik++
15:42 njmurphy left
colomon though I’m pretty sure I have more than 7 perl 6 repos 15:43
Woo-hoo, I’m Midland Michigan’s #1 perl 6 programmer! 15:44
moritz github-awards.com/users?language=pe...type=world show that it's by stars
and panda simply has the most stars of all the perl6 github repos
15:45 kjs_ joined
colomon is pretty sure it is misidentifying my p6 repos as p5 repos 15:45
Ven now wonders if "Pair" has any kind of.. association with smalltalk's association class :)
Ven should probably ask TimToady about that... 15:46
15:46 njm joined, salv0 left 15:47 njm left 15:48 njmurphy joined 15:52 khisanth_ is now known as Khisanth 15:53 chenryn left 15:54 chenryn joined
FROGGS tadzik: it thinks that my repos are almost all about P5 :o( 15:54
tadzik yeah, same here 15:55
FROGGS ahh, yeah
PerlJam well ... Perl is Perl is Perl ;)
15:57 laouji left 15:58 fernando_ joined
Ulti so my bioinformatics code (unchanged) has gone from 35 seconds 61.8% JIT on 22nd August to 8 seconds 80.3% JIT just now mattoates.co.uk/files/perl6/ 15:59
those are some quite big differences in numbers
pyrimidine Ulti: \o/
colomon \o/ 16:00
PerlJam Ulti: nice.
Ulti in half a year of work
and I didnt have to do anything :)
ab5tract colomon: FWIW, perl 5 warns in the case of '$x = $x + 5' but not in the case of '$x += 5'
though it _does_ warn in the case of '$x *= 5'
16:05 fernando_ left 16:06 kjs_ left 16:07 sqirrel_ joined
hoelzro o/ #perl6 16:11
FROGGS o/
PerlJam hoelzro: o/
16:14 Ven left 16:17 diana_olhovik left 16:19 chenryn left 16:21 chenryn joined 16:22 Ven joined 16:24 _mg_ joined
Ulti mattoates.co.uk/files/perl6/rakudo_runtime.svg mattoates.co.uk/files/perl6/rakudo_...ations.svg 16:31
16:32 chenryn left, chenryn joined
Ulti I suspect the reasons for things not being faster are increasingly algorithmic implementation rather than VM apart from maybe all the list changes coming up 16:33
the last 10% extra JIT hasn't had much effect on runtime 16:34
Ulti goes back to his day job ;3 16:35
16:36 gjeih joined
sjn has been naughty and blogged about Perl 6 stuff: code.foo.no/2015/02/13/on-bandwagon...dwagoneers 16:36
gjeih will one-liners in the form of perl6 -ne 'stuff' still be allowed in Perl 6 ? 16:38
ab5tract moritz: can you elaborate on why $x *= 5 autovivs for 1 on puprpose? 16:39
japhb gjeih: Yes, with the exception of needing to separate out the options: perl6 -n -e 'stuff' 16:40
16:40 anaeem1_ joined
japhb gjeih: Do 'perl6 -?' for a quick summary of what's supported now. 16:40
gjeih japhb ah that sucks a bit but not really a stopper
ab5tract japhb: i haven't ever had to separate the options...
16:40 zakharyas left
japhb ab5tract: Really? I thought that was one of the limitations still; maybe someone "fixed" it 16:41
Helps for the equivalent of 'perl -nale' but can't do much to fix the equivalent of 'perl -pi.bak -e', because that already required breaking up the option group 16:42
16:43 cschwenz joined, cschwenz left, anaeem1_ left 16:44 cschwenz joined, anaeem1 joined
psch i might be misremembering, but i think my PR allows -pi=.bak 16:46
but it'd have to be cleaned up and there's some discourse required regarding the implementation
but yeah, multiple shortopts with value can't be grouped ever 16:47
also, we already allow -ne i think :l 16:48
Ulti japhb do you remember -nale as sounding like 'nail'? because I write -lane :)
16:49 anaeem1 left 16:52 echowuhao joined 16:53 _mg_ left, fhelmberger left
dalek rl6-roast-data: 6385541 | coke++ | / (9 files):
today (automated commit)
16:55
16:58 laouji joined 16:59 Ven left 17:01 fernando_ joined 17:03 laouji left, diana_olhovik joined
japhb Ulti: It depends on my mood. I switch back and forth. And yeah, -nale sounded like 'nail' to me. :-) 17:04
timotimo yes, -ne works already
japhb Very happy to hear that 17:05
The problem with being around here for years is that sometimes you remember the stuff that didn't work back then better than the stuff that does work now. :-)
ashleydev I was just watching this video about writing a type-safe printf function in Idris www.youtube.com/watch?v=fVBck2Zngjo and it mentioned at the end that being able to reference values in the type system allowed the language to not need a macro system -- is this kind of thing possible in perl6?
17:06 anaeem1 joined, fernando_ left
nine_ ashleydev: maybe subsets? blogs.perl.org/users/tyler_curtis/2...patch.html 17:06
ashleydev for those who don't know, Idris is like Haskell but with a stronger type system
nine_: will these be checkable at compile time? 17:08
mst Idris strikes me as "what happens if you put haskell and CoQ in a bag with some good acid and shake"
(I mean this as a compliment) 17:09
ashleydev I think the technical term is "dependant type system"
17:09 FROGGS left
ashleydev mst: yes being able to specify more succint function prototypes allows them to express more "theorems" 17:10
hoelzro sjn++ # blogging 17:11
pyrimidine Ulti: Re: performance, biggest bottleneck I've seen so far is IO.
ashleydev mst: if one is thinking in terms of the curry-howard correspondance --> see this: codewords.hackerschool.com/issues/...-and-logic
pyrimidine Ulti: I have a GFF3 grammar that parses FlyBase (w/o FASTA): github.com/cjfields/bioperl6/blob/...ar/GFF.pm6
Ulti: took ~20 minutes 17:12
timotimo ashleydev: we'd need something that runs "early" that processes the printf format string, so we'd need something macro-like in perl6 at least ...
pyrimidine so usable (better than 20 hours) but not fast
Ulti yeah 17:13
my examples ignore IO but I'm aware its the main problem :'( 17:14
pyrimidine one thing I was trying to do to get around it is have the grammar parse chunks of the IO stream in parallel to it being read
since Perl6 has lots of nice constructs for expressing that now 17:15
the issue is you need to kind of already split the format before you do the Grammar.parse so I ended up having classes which held action, grammar and some sort of record separator
pyrimidine Ulti: re: IO, I think this is something that can be fixed. 17:16
Ulti pyrimidine: have you tried the newio branch?
pyrimidine Ulti: not yet but I've planned on doing it
Ulti yeah I haven't either 17:17
17:17 Rounin left
timotimo Ulti: froggs has done some nice work on record separators (replacements for \n and such) during and shortly after the APW. i *think* it's been merged already 17:17
it'd allow you to get splitting (to be used with .lines and friends) at the lowest (fastest!) level with more complicated record separators 17:18
pyrimidine Ulti: re: 'chunking' the data, yep I do that too. But I think the proposal for Cat would allow a sort of 'lazy' grammar parsing. But that's post 6.0.0...
Ulti yeah
really you could have grammars be parallel too as they sort of go down the tree
17:18 anaeem1 left
pyrimidine timotimo: not merged as of yet. A two char record sep doesn't work with MoarVM (does with JVM though, last I checked) 17:19
Ulti so if the top level token is a record one thread is breaking stuff up into that and then another thread deals with the next level
17:19 anaeem1 joined, anaeem1 left 17:20 anaeem___ joined
Ulti timotimo: cool that has been a longtime feature request by nearly everyone :) FROGGS++ 17:20
I looked at it when I found it wasn't implemented but stopped at when it dived into nqp needing to be changed because I'm a scaredy cat
17:21 Kristien joined
psch Cats also need moreinput i think? 17:21
17:21 kjs_ joined
psch or is that just Perl6/Grammar.nqp to emulate what Cats do for the REPL? 17:21
ashleydev nine_: read more of your post, yes subset types seem pretty close, what happens when you call the multi with a value outside of any subset covered by the multis? 17:22
Ulti pyrimidine I should really take a look at what you've been upto because it sounds like you've been busy recently :)
psch eh, "just *for* Perl6/Grammar.nqp to emulate for the REPL what Cats do for the user"
timotimo damn. thanks, pyrimidine
nine_ ashleydev: then no candidate could be found and you get an error saying that.
pyrimidine Ulti: feel free to jump in. I do what I can, $job keeps me busy most of the time though :P 17:23
nine_ m: subset Foo of Int where * > 2; subset Bar of Int where * < -2; multi sub foo(Foo) { say "yes"; }; multi sub foo(Bar) { say "yes"; }; foo(3); 17:24
camelia rakudo-moar 3607d7: OUTPUT«yes␤»
17:24 chenryn left
nine_ m: subset Foo of Int where * > 2; subset Bar of Int where * < -2; multi sub foo(Foo) { say "yes"; }; multi sub foo(Bar) { say "yes"; }; foo(1); 17:24
camelia rakudo-moar 3607d7: OUTPUT«Cannot call 'foo'; none of these signatures match:␤:(Int $ where { ... })␤:(Int $ where { ... })␤ in sub foo at /tmp/_I7o6OmegR:1␤ in block <unit> at /tmp/_I7o6OmegR:1␤␤»
ashleydev nine_: subsets seem pretty specific to run-time checks
I wonder if how Idris eleveates values into the type system 17:25
nine_ ashleydev: I use them extensively in real world code here: github.com/niner/Apache-To-Nginx/b...r/Nginx.pm
17:26 mohij joined 17:28 sqirrel_ left 17:29 MadcapJake joined 17:33 mr-foobar joined 17:36 ninedragon joined 17:37 gfldex joined, cschwenz left
TimToady comes vaguely back to life 17:38
17:39 Kristien left 17:43 molaf joined 17:47 gjeih left
[Coke] ho, ZimZomby 17:48
17:48 pecastro left 17:49 espadrine left 17:50 anaeem___ left, pmurias left 17:54 virtualsue left
TimToady doesn't think .invert should coerce to hash 18:02
18:02 fernando_ joined 18:06 fernando_ left
mohij Hey! I'm in search of a way to set and track state during parsing that reverts when backtracked over. 18:07
PerlJam mohij: sounds like let to me 18:08
18:08 dakkar left
mohij I have a gist that rather convincingly fails doing that. 18:08
gist.github.com/patzim/5fd2380e8bbe140b22f3
18:09 Kristien joined
mohij PerlJam: doc.perl6.org/routine/let <- looks not that bad at all... 18:09
PerlJam mohij: or maybe temp (I'm not sure that "reverts" happens with let0
ah, apparently it does :)
pyrimidine timotimo, Ulti: regarding the record separator issues there is a ticket: RT #122971 18:10
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122971
PerlJam caveat lector: I've yet to actually use "let"
mohij assuming a grammar rule sets a value using let, matches, and later on a rule fails causing a backtrack including the first rule. Let wouldn't do anything about that, right? 18:12
18:14 _mg_ joined 18:15 telex left 18:16 telex joined
TimToady sees .invert as primarily an operation on lists of pairs to prepare for pushing into a hash 18:16
for one thing, coercing to hash throws away information, and we can't have that
moritz huh? 18:17
we have lots of coercions that throw away information
why is this coercion special?
TimToady invert is about preserving information
moritz lizmat++, I guess 18:18
TimToady what I'd like to see is something that nobody was arguing for
I think .invert on a list should require all the elements to be pairs 18:19
18:19 Kristien left
PerlJam TimToady: oh, I like that. 18:19
TimToady so @foo.pairs.invert explicitly maps @foo to 0, 1, 2
and we also don't waste time converting things to hashes just to tear them apart again, quite apart from the info loss 18:20
so it would be illegal to invert a kv list, basically 18:21
[Coke] is so done with $dayjob, and needs to carve out more p6 time.
TimToady not without running it through a pairup or whatever we call that operation
dalek c: 89f2ac4 | moritz++ | / (4 files):
Document Scheduler, ThreadPoolScheduler and CurrentThreadScheduler
18:23
TimToady m: say pair(1,2,:c(3))
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_tES6C3Rz4␤Undeclared routine:␤ pair used at line 1. Did you mean 'pairs'?␤␤»
TimToady no, I meant the specced pair function
PerlJam TimToady: when you say "require all the elements to be pairs", do you mean that .invert should explicitly check this? like my @a = a => 1, b => 2, "boo", c => 57; # would fail ?? or that it would be checked implicitly through the type system or something? 18:24
TimToady well, I see the definition of sub pair is a bit wrongish 18:25
moritz TimToady: the specced pair function is mis-named, if it should indeed return a list of pairs
moritz too slow
TimToady there's the internal op that hash assignment uses to decide whether the next thing is a pair or we should take the next 2 things as a kv 18:27
that operation needs a name, if it doesn't have one already
moritz it's currently just Hash.STORE
TimToady I think we called it .pairwise once
if people have mixed kv and pairs they want @list.pairwise.invert 18:28
without actually building a hash
because pairwise doesn't throw away key collisions
it just makes a list of pairs
that's where I'd like to see invert go, for efficiency as well as maximum flexibility 18:29
and @list.invert would blow up on a non-pair
or would pair with Nil or something
moritz are there actually many uses cases where people have mixed lists of kv and pairs? 18:30
PerlJam possibly not on purpose. But how are they to know? :-)
TimToady I dunno, but that's a primitive operation to my mind that we should expose and take advantage of
skids It's happened to me, don't rememeber why, but not by design. 18:31
TimToady I agree that pair() is a bad name for it
.pairup maybe 18:32
18:33 fernando_ joined, laouji joined
PerlJam TimToady: marry :) 18:33
nine_ PerlJam: that's too strong. After all the operation is easily reversible :) 18:34
TimToady well, mass marriages are something you usually only see in cults, but you often pairup for a dance
and existing pairs tend to stick together :)
PerlJam nine_: I don't see the problem ;)
TimToady: fwiw, I like pairup. 18:35
18:37 fernando_ left
skids pairup makes sense. "partner" maybe but I think pairup is probably better. 18:37
18:37 sqirrel_ joined 18:38 laouji left
TimToady let's just not use 'hookup' :) 18:38
18:38 rurban left
bartolin [Coke], FROGGS: it's not me who answers perl6 questions on SO 18:40
18:41 Kristien joined
TimToady the final message in .pairup would have to change to: Odd number of elements found where key/value pairs expected 18:42
since it's not a hash initializer 18:43
and if we use it for hash STORE, the message is probably adequate, if not completely awesome 18:44
or maybe we can keep them separate
anyway, I hope I'm being persuasive, and not just invoking Rule #1 here... :) 18:45
18:45 grettir joined
TimToady the same principle (don't waste hash builds) worked out in the other direction with .classify, where we used to return a list of pairs, but then we said, "Duh, we made a hash, just return it, or we'll force people to rebuild the hash." 18:47
m: say (1...100).classify(* % 7).WHAT 18:48
camelia rakudo-moar 3607d7: OUTPUT«(Hash[Any,Any])␤»
TimToady okay, nobody's broken that yet, good :)
Kristien can you make generic methods? 18:49
like sub f[T](Hash[A, T] $x, T $y) { … } 18:50
it's dangerous to do so
TimToady we try to restrict full generics to roles 18:51
we allow a bit of leeway in signatures with ::T though 18:52
ashleydev how does one read that `sub f[T](...` what are the square brackets signifying there?
18:52 bayprogrammer left
TimToady so if you had: sub f'proto(::T, Hash[A,T] $x, T $y) {...} you could then do my $f = $f'proto.assuming(MyType) or so 18:53
Kristien this is dangerous:
TimToady (mebbe)
18:53 fhelmberger joined
Kristien generic methods only work with static typing or lack of deduction 18:54
skids ashleydev: Not actual syntax, but Kristien was parameterizing the sub, e.g. defining a family of subs that vary with T.
TimToady ashleydev: that is not legal P6
18:55 diana_olhovik left
ashleydev ah 18:55
Kristien or without subtyping
ashleydev So there's no way to say .assuming(SomeType)...?
TimToady I just said you probably can, just not using [] 18:56
Kristien How about allowing later parameter types to refer to values of former parameters and using partial application?
ashleydev wasn't sure what the "(mebbe)" was referring to -- as in the possibility of...
18:57 diana_olhovik joined
Kristien deduction breaks in dynamically typed languages, though. you can't do it well 18:57
18:57 fhelmberger left
Kristien I don't know why anymore, but I thought about it and found a problem with it a few months back. 18:58
skids m: sub foo(::T $f, T $g) { "ok".say }; foo(1,2); foo("a","b"); foo(1,"b"); 18:59
camelia rakudo-moar 3607d7: OUTPUT«ok␤ok␤Type check failed in binding $g; expected 'Int' but got 'Str'␤ in sub foo at /tmp/nnevRaxfpJ:1␤ in block <unit> at /tmp/nnevRaxfpJ:1␤␤»
TimToady m: sub same'proto(::T, T $a, T $b) { say $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int 43 19:00
camelia rakudo-moar 3607d7: OUTPUT«True␤True␤»
TimToady m: sub same'proto(::T, T $a, T $b) { $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int 43 but True
camelia rakudo-moar 3607d7: OUTPUT«True␤»
TimToady m: sub same'proto(::T, T $a, T $b) { $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int (43 but True)
camelia rakudo-moar 3607d7: OUTPUT«False␤»
TimToady m: sub same'proto(::T, T $a, T $b) { $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int "42" 19:01
camelia rakudo-moar 3607d7: OUTPUT«Type check failed in binding $b; expected 'Int' but got 'Str'␤ in sub same'proto at /tmp/hHGw6Gs9QV:1␤ in sub CURRIED at src/gen/m-CORE.setting:4136␤ in block <unit> at /tmp/hHGw6Gs9QV:1␤␤»
TimToady kaboom \o/
so there's your generic method
well, function
ashleydev o/ high 5!
PerlJam Is someone writing this stuff down in a Perl 6 Cookbook yet? :)
Kristien m: class A { }; class B is A { }; sub foo(::T $f, T $g) { }; foo(A.new, B.new)
camelia ( no output )
Kristien m: class A { }; class B is A { }; sub foo(::T $f, T $g) { }; foo(B.new, A.new) 19:02
camelia rakudo-moar 3607d7: OUTPUT«Type check failed in binding $g; expected 'B' but got 'A'␤ in sub foo at /tmp/Fl5mN4ONgX:1␤ in block <unit> at /tmp/Fl5mN4ONgX:1␤␤»
Kristien m: sub foo(::T $f, T $g) { say T }; foo(1, 2)
camelia rakudo-moar 3607d7: OUTPUT«(Int)␤»
Kristien interesting
19:03 fernando_ joined, FROGGS joined
ashleydev is the error message correct to say "CURRIED" vs "partially applied"? 19:03
TimToady no
FROGGS o/ 19:04
ashleydev \o (high-5)
TimToady though many people misuse "curry" to mean partial application
ashleydev should it be changed?
mabye I can submit my first bug?? 19:05
19:05 pierrot left
TimToady the spec (cough) called it 'priming' because 'partial application' is such a mouthful 19:05
19:05 pierrot joined
ashleydev that's clever 19:05
TimToady ashleydev: yes, you may
ashleydev where's the interface to submit bugs?
FROGGS mailto:rakudobug@perl.org 19:06
psch i suppose changing the name of the sub created by assuming could fall out of fixing #77744
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77744
TimToady irclog.perlgeek.de/perl6/2015-02-25#i_10180697 19:07
psch seeing as the cause for that bug and the cause for "sub CURRIED" are somewhat related
19:07 fernando_ left 19:08 skids left
ashleydev \o/ Yay, I bugged: # 19:14
#123938
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123938
bartolin speaking of rakudobugs: I wonder what we should do with tickets which are specific for Parrot 19:15
19:15 rurban joined
bartolin maybe we could change the status to 'stalled'? 19:15
ashleydev m: sub foo(::T $f, T $g) { say T }; foo(1, 2)
camelia rakudo-moar 3607d7: OUTPUT«(Int)␤» 19:16
psch ashleydev: the type check fail is correct though, isn't it?
in your bug, that is
ashleydev TimToady: is the initial '::' required?
TimToady yes
ashleydev why not subsequent ones?
TimToady in a signature, that captures the type of the incoming argument 'en passant'
you don't want to capture the type later, but use it
bartolin would like to hear other opinions (about tickets specific for rakudo.parrot) 19:17
TimToady m: sub foo(::T $f, ::T $g) { say T }; foo(1,2)
camelia rakudo-moar 3607d7: OUTPUT«(Int)␤»
ashleydev psch: done
TimToady m: sub foo(::T $f, ::T $g) { say T }; foo(1,"foo")
camelia rakudo-moar 3607d7: OUTPUT«(Str)␤»
TimToady that should probably parsefail as a redeclaration of T 19:18
psch ashleydev++
ashleydev hey maybe I can submit another bug?
TimToady shoot first, ask questions after 19:19
colomon m: sub foo(::T $f, T $g) { say T }; foo(1,2)
camelia rakudo-moar 3607d7: OUTPUT«(Int)␤»
colomon m: sub foo(::T $f, T $g) { say T }; foo(1,”hello")
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3JDx4skrAB␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/3JDx4skrAB:1␤------> 3sub foo(::T $f, T $g) { say T }; foo(1,7⏏5”hello")␤ expecting any of:␤ …»
TimToady or apologize, if you're Han Solo
colomon m: sub foo(::T $f, T $g) { say T }; foo(1, { a=> 2})
camelia rakudo-moar 3607d7: OUTPUT«Type check failed in binding $g; expected 'Int' but got 'Hash'␤ in sub foo at /tmp/74OcctU_gw:1␤ in block <unit> at /tmp/74OcctU_gw:1␤␤»
colomon sweet
ashleydev m: sub foo(::T $f, ::T $g) { say T }; foo(1,”hello") 19:20
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ovPQFoIxPr␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/ovPQFoIxPr:1␤------> 3ub foo(::T $f, ::T $g) { say T }; foo(1,7⏏5”hello")␤ expecting any of:␤ …»
ashleydev m: sub foo(::T $f, ::T $g) { say T }; foo(1,"hello")
camelia rakudo-moar 3607d7: OUTPUT«(Str)␤»
ashleydev oh
is that useful?
or wrong... 19:21
TimToady it's wrong
ashleydev shoot!
TimToady m: class T {}; class T {} 19:22
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DEfyKO4a8P␤Redeclaration of symbol T␤at /tmp/DEfyKO4a8P:1␤------> 3class T {}; class T 7⏏5{}␤ expecting any of:␤ generic role␤»
TimToady and should produce something like that
m: sub foo($f, $f) { say $f }; foo(1,"foo") 19:23
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cmb3n16F9T␤Redeclaration of symbol $f␤at /tmp/cmb3n16F9T:1␤------> 3sub foo($f, $f7⏏5) { say $f }; foo(1,"foo")␤ expecting any of:␤ shape declaration␤»
TimToady so it catches that one anyway
TimToady wonders if there's a test for it
m: sub foo(\f, \f) { say f }; foo(1,"foo") 19:24
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jOb9K83ZHq␤Redeclaration of symbol f␤at /tmp/jOb9K83ZHq:1␤------> 3sub foo(\f, \f7⏏5) { say f }; foo(1,"foo")␤ expecting any of:␤ constraint␤»
19:24 kjs_ left
vendethiel shouldn't ::T, ::T error out anyways? 19:24
or should some kind of... "unification"(???) be applied here? 19:25
moritz noooo
[Coke] bartolin - tickets that are parrot specific already havea an attribute marking them as such (if not, add the parrot VM tag). no need to use stalled also.
timotimo you'd spell that ::T $foo, T $bar, wouldn't you? 19:26
moritz would close parrot-only tickets
vendethiel timotimo: yes
FROGGS +1 to close parrot only's
bartolin [Coke]: but I really would like to clean the queue a bit further. 19:27
ashleydev #123939
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123939
moritz especially if there are tests
bartolin [Coke]: for me it's tedious to adjust every search to exclude those "parrot only" tickets 19:28
moritz nobody is fixing them, and nobody can use them for reference to consulting if a behavior they observe is a known bug
so, what's the value in keeping them open? 19:29
19:29 sqirrel_ left
FROGGS and you can't even fix them while there is no parrot support 19:29
ab5tract i think the less ambigious the position of parrot is in relation to rakudo, the better 19:32
it sounds (and even feels) kind of harsh, but it's got to go
bartolin from me it's +1 to close "parrot only" tickets as well. in case we get parrot support back later on, it would be possible to re-open the tickets easily.
19:33 spider-mario left
psch \o/ 19:34
array marshalling work for interop MMD
that's for up to three dimensions!
(i didn't test more, but it's not hard coded :P)
moritz moritz@pat:~/p6/rakudo/t/spec>git grep '#\?rakudo\.parrot'|wc -l
FROGGS \o/
moritz 102
FROGGS psch++
moritz moar has 59, jvm 160 19:35
psch++
psch now i gotta backport that to NQP, because nqp has to know it too for cases where we have a p6 object that nqp::islist()
like utf8 iirc
which is grr, because that's 100+ lines of code duplication
FROGGS VMArray
19:36 kjs_ joined
psch i was thinking if some kind of ishlllist op could help, but i don't think it could 19:36
because i still need p6listitems in p6-land 19:37
FROGGS: yeah, p6listitems gives a VMArray, but i need to check istype(Array) or istype(List) or it borks
FROGGS I just meant to say that utf8 is of VMArray repr 19:38
psch oh, right
19:38 Rounin joined
dalek ast: 9c17759 | TimToady++ | S06-signature/positional.t:
add tests for dup parameter names including ::T
19:39
ashleydev nine_: are there multi functions that are final at compile time vs multi methods that dispatch at runtime such that subset types get some compile time typechecking if possible? 19:42
psch remembers people smarter than him saying "halting problem" around that question occassionally 19:43
ashleydev is multi allows on non methods? 19:44
Kristien I want a Br*infuck slang.
ashleydev not a Brainf*ck one?
Kristien no 19:45
ashleydev :)
[Coke] bartolin: for me, it's tedious to adjust every search to exclude stalled tickets. 19:46
no, it would not be possible to reopen the tickets easily. What is the distinguishing mark about these closed tickets as opposed to the ones closed previously? 19:47
moritz so close them
19:47 rindolf left
moritz put a list of the ticket numbers into a file in perl6/mu 19:47
so that if/when parrot comes back, they can be re-opened easily 19:48
bartolin moritz++
[Coke] someone is still going to have to review every ticket closed in this manner to insure that it really is parrot only, and not something that was opened for parrot and now silently impacts other backends.
bartolin [Coke]: I would do that work. 19:49
[Coke] Ok. Please include a message on tickets closed in this way that somehow references the sunset of parrot support. 19:51
[Coke] is having difficult winning any technical arguments today, and at this point assumes it's just him. :) 19:52
bartolin [Coke]: maybe my use of rt.perl.org is inefficient, but my feeling is that a single queue with 700+ tickets is hard to handle. I'd be fine to move the 'parrot only' tickets to another queue instead of closing them -- but we only have one queue. 19:55
timotimo ashleydev: multi works on methods as well as subs 19:57
moritz bartolin: with the exception of now-dead backends, I don't see how more queues would help us organize the tickets better
bartolin: though if you have some ideas, do let me know 19:58
[Coke] bartolin: yes, RT sucks.
I've been saying that for years. :)
FROGGS [Coke]: but you failed to convince masak :o)
nine_ So why not just crate a new queue for rakudo-parrot? 19:59
[Coke] I try to manage it by creating several prebuilt searches, things like "tickets for my os", or "tickets for jvm" or "tickets that haven't been touched in 2+ years".
a queue == a project. perl5 vs. perl6
20:00 pippo joined
nine_ [Coke]: that's only a convention. And one could consider the rakudo-parrot backend it's own inactive project 20:00
[Coke] 1) we all disagree about what tickets are important to see or work on. this pretty much makes a global better view impossible, because we'd all but one, hate it.
bartolin moritz: I'll speak up if I get a good idea :-)
[Coke] nine_: I'd rather close the tickets than create a new queue.
timotimo So why not just create a new ticketing system for rakudo?
[Coke] ... I don't have a 2 there, apparently.
20:01 pippo left
[Coke] timotimo: like from scratch!? 20:01
20:01 Sqirrel joined
moritz timotimo: second system syndrome done wrong? :-) 20:01
[Coke] or like "move to github" ?
dalek ecs: 86d7dd5 | TimToady++ | S32-setting-library/Containers.pod:
document .pairup and List.invert
FROGGS timotimo: we could call it PT (speak: pity) 20:02
:P
nine_ bartolin: if you close the tickets using Bulk Update, one can easily identify them by their common reject date 20:03
timotimo that sounds like a good name, FROGGS
TimToady X::Hash::STORE::OddNumber is perhaps a bit over-specific as an exception
timotimo we should write it in rubyish (speak: rubbish)
[Coke] if this were a $work project, where we had specific marked out tickets that we needed to get for the next release, and the release after that. but since the only release we have is the 2015 xmas release, having those tied to the ticket is "ok". 20:04
20:04 fernando_ joined
TimToady it could probably just hijack X::Pairup::OddNumber 20:04
[Coke] nine_: good luck identifying all the tickets in a way to make bulk update work. :)
[Coke] feels like he's just being negative at this point. sorry, folks. 20:05
TimToady as long as it's negative fun, that's okay :) 20:06
[Coke] s/where we had/we'd have/ 20:07
bartolin hugme: hug [Coke] 20:08
hugme hugs [Coke]
20:08 fernando_ left 20:09 [Sno] left
nine_ [Coke]: I thought they are already tagged? 20:13
20:19 kjs_ left
PerlJam nine_: There's a custom field for the VM, though I'm not sure it has been used consistently or how to search with it. 20:20
dalek ecs: ddcd709 | TimToady++ | S99-glossary.pod:
mention sink means void elsewhere
20:21
PerlJam when I search for "parrot", I only get back 17 results. Not sure how to do that better
(I'nmm not sure how to search using the custom fields at all actually) 20:22
20:22 _mg_ left
TimToady broquaint: did anyone ever point you toward S99:sink_context? 20:24
raydiak: you can often clean out a laptop fan by blowing an air duster into the intake 20:26
or sometimes into the output vent, if it's not running 20:27
Kristien can you alias types 20:28
TimToady m: constant Mouse = Rat; say Mouse.new(1/3).perl 20:29
camelia rakudo-moar 3607d7: OUTPUT«Type check failed in binding nu; expected 'Int' but got 'Rat'␤ in method new at src/gen/m-CORE.setting:12305␤ in block <unit> at /tmp/iavwjykkrH:1␤␤»
Kristien m: constant UNIVERSAL = Mu; my UNIVERSAL $x = 0; say $x;
camelia rakudo-moar 3607d7: OUTPUT«0␤»
moritz m: constant Mouse = Rat; say Mouse.new(1, 3).perl
camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
Kristien nice
TimToady m: constant Mouse = Rat; say Mouse.new(1,3).WHAT 20:30
camelia rakudo-moar 3607d7: OUTPUT«(Rat)␤»
TimToady we'll actually rely heavily on type aliasing when we get versioned type definitions 20:31
20:31 virtualsue joined
TimToady so Int might actually be Int:ver<6.0>:auth<jnthn> or so :) 20:32
except constant defaults to "our", and these might well default to "my" 20:33
m: my constant Mouse = Rat; say Mouse.new(1,3).perl
camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
TimToady m: { constant Mouse = Rat }; say Mouse.new(1,3).perl 20:34
camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
TimToady m: { my constant Mouse = Rat }; say Mouse.new(1,3).perl
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VKLmGAhjco␤Undeclared name:␤ Mouse used at line 1␤␤»
20:34 darutoko left, krunen left
TimToady or maybe 'our' is okay, if people wanna say things like 'constant MyMouse = ThatModule::Mouse;' 20:35
that won't work if ThatModule makes it 'my'
m: { constant Mouse = Rat }; constant Mouse = Rat; say Mouse.new(1,3).perl 20:36
camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
TimToady hmm, that should probably collide in the package
std: { constant Mouse = Rat }; constant Mouse = Rat; say Mouse.new(1,3).perl
camelia std 28329a7: OUTPUT«ok 00:01 140m␤»
dalek : c2bdf44 | usev6++ | misc/rt.perl.org/tickets_closed_parrot_only.txt:
Create stub for list of closed 'parrot only' tickets at rt.perl.org
TimToady I guess STD likes it
std: constant Mouse = Rat; constant Mouse = Rat; say Mouse.new(1,3).perl 20:37
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Illegal redeclaration of symbol 'Mouse' (see line 1) at /tmp/YiviE9tkhB line 1:␤------> 3constant Mouse = Rat; constant Mouse7⏏5 = Rat; say Mouse.new(1,3).perl␤Check failed␤FAILED 00:00 139m␤»
TimToady m: constant Mouse = Rat; constant Mouse = Rat; say Mouse.new(1,3).perl
camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
TimToady ooh, bug
m: our $x = 42; our $x = 43; say $x 20:38
camelia rakudo-moar 3607d7: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $x␤ at /tmp/Rqh2phmy0c:1␤ ------> 3our $x = 42; our $x 7⏏5= 43; say $x␤43␤»
TimToady masakbot: ^^^
moritz is that really a bug?
'our' creates a lexical alias, and binds it to the symbol table 20:39
TimToady which collides
moritz the lexical alias is a redeclaration
TimToady if they're at the same level
moritz m: my $x = 42; my $x = 43; say $x
camelia rakudo-moar 3607d7: OUTPUT«Potential difficulties:␤ Redeclaration of symbol $x␤ at /tmp/FE7R_0f8Al:1␤ ------> 3my $x = 42; my $x 7⏏5= 43; say $x␤43␤»
TimToady it's the Mouse redecl that's the bug 20:40
std catches it, rakudo doesn't
moritz oh, I see it now
TimToady and if we're using aliasing for multiple versions, we really want to know if we've tried to alias two different versions of Int into the lexical scope 20:41
moritz aye
TimToady m: my constant Mouse = Rat; my constant Mouse = Rat; say Mouse.new(1,3).perl
camelia rakudo-moar 3607d7: OUTPUT«<1/3>␤»
dalek ast: b92460c | moritz++ | S06-signature/positional.t:
todo-fudge new test
20:42
TimToady thanks, I shoulda done that 20:43
moritz np
TimToady: do you know where type captures are parsed?
20:43 pippo joined 20:44 pierrot left, pierrot joined, pippo_ joined, pippo_ left, pippo left 20:45 pippo joined
TimToady src/Perl6/Grammar.nqp line 3377 looks like 20:45
FROGGS rakudo/src/Perl6/Grammar.nqp:3377
found it too :o)
moritz on a totally unrelated matter, I'd like a shorter way to mark an invocant as :D 20:46
PerlJam shorter?
moritz method(Repeating::The::Class::Name:D:) kinda sucks
FROGGS ::?CLASS:D ?
moritz and method(::?CLASS:D:) is also not quite nice, IMHO
it's a lot of shouting and punctation for a pretty common thing 20:47
PerlJam moritz: you want method(*:D: ...) ?
TimToady Mu:D: probably works
moritz PerlJam: for example
TimToady: but that's misleading
TimToady: I want it not just for code, but also for documentation
TimToady: and if I document stuff to have a Mu:D invocant, people will invariably be confused
TimToady we could probably make :D: work
:D would beat : on LTM 20:48
alpha- the lol operator ?
moritz doesn't that collide with colonpairs as literals?
TimToady well, :D: would certainly be unique, if we needed to go that far 20:49
moritz well, if we allow :D:, we should allow :U: too 20:50
but ISWYM
alpha- :^) 20:52
TimToady :v) # contrarian 20:53
vendethiel ...
moritz anyway, I like both *:D and :D
TimToady we could probably force :D and :U to work in any argument position
moritz and mean Any:D or Mu:D? 20:54
TimToady probably Any, since that's longer :) 20:55
and the usual default
moritz right
jnthn evening, #perl6 20:57
dalek kudo/nom: a15a916 | PerlJam++ | src/Perl6/Actions.nqp:
Disallow redeclaring constants in the same scope
jnthn Note that Mu:D is a bad idea if you put it on a multi :) 20:58
TimToady well, more of a problem for autothreading junctions, but yeah
I mean, Mu:D is just (almost) a don't care argument 20:59
but you can't rely on it to distinguish anything except Mu:U
jnthn Sure, but if you put Mu:D on the invocant in a subclass but not on that in a parent class, you'll get a mis-sort or a tie :)
TimToady sure, why we're defaulting the invocant to current class, not Any or Mu 21:00
moritz++ already argued me out of that
timotimo jnthn: i'm about to run benchmarks of lastest nom/master/master and native-ref/native-ref/master
21:00 Akagi201_ joined 21:01 Akagi201 left
vendethiel would really, really like to have :D as the default, :_ for the current one, and keep :U as it is) 21:01
21:01 bjz left
moritz vendethiel: iirc :D as default was even specced once, but never implemented, because we didn't have a good solution for constructors and other :_ methods 21:01
vendethiel "good solution"? 21:02
moritz vendethiel: a way to specify non-definite invocants
vendethiel what's wrong with :U and :_ ?
moritz iirc that was before we had type smilies
vendethiel :_ is the current default, right?
oh, alright, noted
timotimo are we going to suggest giving "new" methods a "must be called on a type object" restriction?
TimToady isn't
PerlJam timotimo: only if they're declared that way :) 21:03
moritz vendethiel: also, :_ is pretty new (like, not even documented or implemented)
21:03 echowuhao left
vendethiel oh! 21:03
timotimo good
TimToady also kinda ugly
moritz before it was either ThatWholeType:_ or or ::?CLASS:_
vendethiel I kind-of expected everything I've came to know "since first day" to have been well-established but :P
21:03 echowuhao joined
TimToady :P for...parameter's preference? 21:04
timotimo hehehe
21:04 kjs_ joined
TimToady m: sub foo (::T:D $x) { say T }; foo 42 21:04
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8R6vnmGfJU␤Undeclared name:␤ T used at line 1␤␤»
TimToady aww :) 21:05
jnthn timotimo: Yay; results will be useful.
timotimo good :)
21:05 fernando_ joined, kjs_ left
TimToady m: sub foo (::T:D $x) { say T:D }; foo 42 21:05
camelia rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oJIgUNfvkR␤Variable '&T' is not declared␤at /tmp/oJIgUNfvkR:1␤------> 3sub foo (::T:D $x) { say 7⏏5T:D }; foo 42␤»
jnthn timotimo: I'm not even sure what that means... 21:06
uh, TimToady
TimToady either, but I was just hanging out with a two-year-old
timotimo i'd like to advocate giving rakudo's and nqp's --gen-moar a higher -j by default ...
dalek ast: 1cd6489 | usev6++ | S02-names/strict.t:
Add test for RT #123696
21:07
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123696
timotimo oh gosh 21:09
git log --oneline --all --graph looks pretty amazing due to newio
21:10 dolmen joined
moritz RT#111734 seems to have argued that re-declaring constants is fine 21:10
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=111734
moritz erm no, just the tests being over-eager :-) 21:11
jnthn timotimo: Heh, I thought the "oh gosh" was gonna be "you really hosed performance with native-ref" :P
TimToady moritz: different scope
dalek ast: 951c24e | moritz++ | S04-declarations/constant.t:
Test that re-declaring constants dies
TimToady CORE::True and UNIT::True can be different
21:11 fernando_ left
moritz TimToady: the test for the ticket had two different redefinitions for True in the same scope 21:12
see the first hunk of github.com/perl6/roast/commit/951c24ecf1
bartolin moritz++ # fixing faulty test written by me
TimToady well, the masakbot hasn't filed the actual bug yet
moritz bartolin++ # writing tests at all 21:13
TimToady but putting it near the other one in the tests seems reasonable
moritz bartolin: I guess a good percentage of the tests I wrote in my first one or two years later turned out to be bogus :-) 21:14
TimToady a correct but misnamed or misplaced test is better than no test at all 21:15
timotimo benchmarks starting now
TimToady stops typing and holds his breath
bartolin moritz: *g* 21:16
21:17 pecastro joined
jnthn timotimo: \o/ 21:17
timotimo except i forgot to run "make install"
jnthn Or maybe /o\
timotimo so it ended up not working :P
moritz I started to contribute in earnest to roast (back then part of the pugs repo) to be able to mentor a GSoC student 21:18
timotimo now actually running 21:19
[Coke] thanks timtoady for not making a language where "yes" eq "true" 21:21
m: say "yes" eq "true"
camelia rakudo-moar a15a91: OUTPUT«False␤»
[Coke] woohoo!
TimToady ,"sau 21:22
[Coke] (in coldfusion, that's True)
21:23 sqirrel_ joined
TimToady m: say "yes" !?^ "true" 21:24
camelia rakudo-moar a15a91: OUTPUT«True␤»
TimToady there you go
;)
21:25 virtualsue left, virtualsue_ joined
moritz TimToady: wow, you had to go quite obscure to get a True :-) 21:25
TimToady there's no ?= to go with ?^
course I'm sure the semantics different from CF 21:26
s/ent//
21:26 molaf left
ashleydev what is ?^ 21:27
masak ashleydev: convert both operants to Bool, then check if different 21:28
ashleydev is ^ like != then?
geekosaur != is xor on Bool, yes
[Coke] coldfusion goes out of it's way to coerce helpful string values to their respective booleans. 21:29
even if you didn't want that.
gah, its
I'm so mad I can't even grammar.
TimToady m: say [?^] Bool.roll(10) for ^10 21:32
camelia rakudo-moar a15a91: OUTPUT«False␤False␤False␤True␤True␤True␤True␤False␤True␤True␤»
21:32 espadrine joined, [Sno] joined
timotimo that can't be random 21:32
TimToady there's your parity operator
m: say [?^] Bool.roll(10) for ^10
camelia rakudo-moar a15a91: OUTPUT«True␤True␤True␤True␤True␤False␤False␤False␤False␤True␤»
timotimo look, it's three times False then three times True!
TimToady m: say [?^] Bool.roll(10) for ^10
camelia rakudo-moar a15a91: OUTPUT«True␤True␤False␤True␤False␤False␤False␤True␤False␤False␤»
TimToady I think it's probably random 21:33
geekosaur random can randomly look nonrandome for periods...
*nonrandom
timotimo i was being facetious :)
TimToady is the guy who flipped 10 heads in a row in biology class
fortunately didn't know about R&G are Dead 21:34
come to think of it, that's about when I figured out I was gonna do something special... 21:36
dalek p/native-ref: 4f2e74a | jnthn++ | src/vm/jvm/QAST/Compiler.nqp:
Basic mappings for native ref ops on JVM.

None implemented yet; this just maps them.
21:37
TimToady well, maybe that took another year or two
flussence throws his feed reader out and goes looking for one that isn't broken... was starting to wonder where the p6weekly went :( 21:47
TimToady psch: moreinput was aimed more at a sane REPL 21:49
geekosaur are you reading the right feed? the old one went away 21:50
TimToady the Cat business was more meant to make something not a string look like a string transparently, and moreinput isn't transparent 21:51
flussence geekosaur: yep. pl6anet.org/atom.xml looks fine in my browser, showing last week's stuff in my reader no matter how much I try to refresh it
timotimo jnthn: at benchmark 50 of 70 for the second version
hoelzro flussence: what were you using? 21:52
psch TimToady: right, that makes sense. moreinput as i understood it happens explicitly as a reaction to a parse failure, doesn't it
flussence hoelzro: RSSyl plugin in claws-mail 3.11
TimToady mohij: to save state in a parse, you should attach the state to the cursor using 'make', and it will automatically be discarded if the cursor is thrown away 21:53
hoelzro ah, I ask because I was thinking about writing a web-based RSS aggregator in Perl 6
TimToady 'let' is not suitable for parse backtracking because it's scoped to the block, and blocks can get re-entered under backtracking
21:54 xfix left 21:55 vike left
dalek p/native-ref: 57c6dce | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (2 files):
Stub in NativeRef REPR.
21:55
p/native-ref: 59de265 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (3 files):
Extend container API to support natives.

Includes updating the code_pair container spec for the API change.
21:57 diana_olhovik left
timotimo jnthn: t.h8.lv/p6bench/2015-02-26-native_ref.html 21:57
looks kinda bad 21:58
jnthn timotimo++
while_int2str_native is the first real regression 21:59
timotimo i'd like UNDO phasers to fire when backtracking over blocks
postwhile_nil_native looks painful, too
TimToady no, that's not what UNDO is for 22:01
jnthn Yeah, I've got a list now of 5 I should look at
TimToady that's what make is for 22:02
jnthn (e.g. where it's factor of 2 difference or worse)
TimToady but if we ever get actually backtracking controls, maybe an UNMAKE phaser would be in order
s/ly// 22:03
jnthn timotimo: I suspect everything a factor of 2 or worse are because we're not eliding reference taking somewhere we should be.
timotimo OK
jnthn timotimo: I'd like to try and deal with those at code-gen time first, and look at a spesh solution only if that fails.
22:04 sqirrel_ left
jnthn The smaller differences are likely because I've still got lexical -> local lowering partly busted. 22:04
Anyway, 5 things really needing attention is quite tolerable. 22:05
So, there's those and JVM porting.
22:06 dolmen left
jnthn is hopeful of having it landed by the time the weekend is out 22:06
Then next week I can dig into native arrays. :)
moritz timotimo++ # benchmark
22:07 kaare_ left
jnthn Indeed; thanks timotimo++ 22:07
22:08 fernando_ joined 22:10 laouji joined
FROGGS I fear IO::Socket::INET is somewhat broken :S 22:11
Kristien I/O is always broken.
timotimo YW 22:12
FROGGS well, it appears to send a POST request, but it does not
jnthn FROGGS: As in, regression?
FROGGS and it also does not fail
jnthn: dunno yet
22:12 fernando_ left
pyrimidine TimToady: re: Cat I recall someone mentioning (I think on the perl6 mail list) this could be implemented using mmap or similar 22:13
TimToady: but talk here was that Cat was to be post-6.0.0
(which I agree with)
dalek kudo/native-ref: ba2beff | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoContainerSpec.java:
Update Rakudo scalar to handle native cont API.
22:14
TimToady www.latimes.com/business/la-fi-wome...tml#page=1
22:15 laouji left 22:19 rurban left 22:20 kaare_ joined
TimToady tl;dr basically we male geeks tend as a culture to put women into an untenable position: if they choose to compete by being as aggressive as men, we punish them for it, and if they choose to compete by being less aggressive than men, we punish them for that too. 22:22
geekosaur yep
there are places and groups trying to change that, but "brogrammer" attitudes are disgustingly widespread (not to mention just plain disgusting) 22:23
TimToady we can't fix all of male geek culture, but we can fix some of it here, but as the article says, it's gotta be the guys giving the gals a hand up too, not just the gals fighting their way up 22:24
'cuz we don't fight fair
pyrimidine geekosaur, TimToady: same thing in science unfortunately. And the general consensus on a solution is the same (guys need to help even the playing field) 22:25
22:25 Kristien left
FROGGS ohh! testers.p6c.org seems to work! /o/ 22:26
TimToady so ++ to all those who swear to keep from crying, and ++ to all those who cry to keep from swearing, regardless of gender
FROGGS a new report should appear here in four minutes: testers.p6c.org/dist/I/Inline/FROGGS.html 22:27
tomorrow I'll panda to send the reports properly to the new address
geekosaur not just giving a hand up, either. the environment is toxic in general. even to those who appear to thrive in it, really 22:28
pyrimidine FROGGS: that's very cool!
FROGGS pyrimidine: and fast this time :o)
static pages ftw!
geekosaur and a large part of the fix is to get the toxins out of the environment for everyone
22:28 dolmen joined
TimToady geekosaur: and the either/or approach is also damaging even to the feminist communities, when we should allow them a both/and on the aggression knob 22:29
geekosaur yep 22:30
TimToady always hates to see the women fighting over how to make up for what's really men's problems... :/
geekosaur although really I would prefer the aggression dialed down period
TimToady nodnod
geekosaur I know an increasing number of people --- regardless of gender --- who won't contribute to any open source project any more because the ones they tried require that "everyone have thick skins" aka "aggression is the only way to do anything" 22:31
jnthn FROGGS: Why are authors missing on some modules, ooc?
(Such as mine ;)) 22:32
TimToady yer our sekrit weapon!
FROGGS jnthn: because you don't know how to META.info? :o)
jnthn :P
FROGGS *g*
jnthn Probably :)
I'm better at guts than modules :) 22:33
FROGGS hehe
I try to do everything equally bad :P
jnthn After sleeping sub-optimially the last couple of nights I'm not feeling good at anything right now...
FROGGS :/ 22:34
hoelzro jnthn: btw, did you have any ideas on ways to get rid of that dummy parameter bit that I used for S26?
jnthn hoelzro: No, 'cus I still don't understand why it's needed ;)
FROGGS I am feeling okayish... just lacking slee^Wcoffee every now and then
hoelzro jnthn: are you sticking around for a bit, or are you leaving the channel soon?' 22:35
jnthn hoelzro: I'll be around a bit longer
hoelzro ok, then I'll explain now =)
22:35 pmurias joined
jnthn Plodding through the mechanism bits of the native-ref JVM port. :) 22:35
uh, mechanical 22:36
hoelzro so, basically, when we parse trailing docs, we need to know what the most recent declarand was, right?
jnthn *nod*
hoelzro but when we parse a parameter, we don't have all of the information we need to make the parameter
(that assumption may be false) 22:37
(I may not know any better)
jnthn Well, it's certainly the case that we gather info on the sig as a whole and then make them at the moment
We used to make the sig object after parsing the whole routine
hoelzro so I set up a dummy parameter that I can attach trailing docs to, and I transfer the attached docs at signature (and parameter) creation time
jnthn: that's the change you made for native-ref, right? 22:38
jnthn But that approach already popped up and was like "hey, I suck!", thus my refactor...
hoelzro ah ha
from what I understood of your change, the signature isn't always created earlier, right?
or perhaps I misread?
jnthn It should consistently be now when it can be
As in, when there actually *is* a signature
Placeholders still mean we do it later on. 22:39
hoelzro what's one example where it would still be done later?
jnthn But I guess trailing docs don't apply to those.
{ $^b <=> $^a }
hoelzro but it's always early for a sub/multi/submethod? 22:40
jnthn Yes.
hoelzro ok
jnthn Oh, I didn't fix it for regex_def yet
hoelzro then we may be able to kill the dummy >:)
jnthn But that's just "not gotten around to it"
hoelzro hmm
I don't know if parameters to regexen work with decl docs 22:41
jnthn :)
my regex foo(int $a) { <?> { $a = 42 } } # fails to fail, so yeah, I need to do that one.
22:42 hoelzro left, hoelzro joined
hoelzro irssi just had a panic attach =/ 22:42
attack, even
hoelzro adds another case to test
jnthn Looked mor elike a panic detach :P 22:44
hoelzro hehe 22:45
dalek p/native-ref: ea18ce6 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
Implement assign_[ins].
jnthn I think in the end we probably do want to make parameters "as we go" and then fix the real Parameter objects up at a higher level 22:46
A lot of the code dealing with this stuff dates back to when we didn't actually have nice things like bounded serialization.
hoelzro ah ha 22:47
now, I don't even remember why param_var couldn't set things up there
in the action method for param_var, you have everything you need, right? 22:48
pmurias hoelzro: should I try to readd make -j support to nqp-js or do you have something partially done?
hoelzro pmurias: you can go ahead
I haven't had a lot of nqp-js time lately =/
Coursera + playing with Elm
jnthn hoelzro: Well, probably we want to create a Parameter object in the paramter rule
hoelzro the latter is driving a lot of enthusiasm for helping with nqp-js, though =)
jnthn: oh, right 22:49
jnthn And kill of %*PARAM_INFO
hoelzro I think that may have been the rule I mean
jnthn *off
hoelzro *meant
oh, that sounds awesome
jnthn Now we can deal with the real meta-object as compile, there's little desire to keep another data structure to represent it around.
It's been possible to tweak this for a while, just never really got to the top of the todo list... 22:50
hoelzro sounds good to me
jnthn: so instead of PARAM_INFO, we could just create the parameter as-is? 22:53
sounds like a fairly simple change; is it? =)
jnthn hoelzro: In theory ;) 22:54
hoelzro hehe
22:54 skids joined
jnthn Though probably it'd be good to base the work off the refactors so far in native-ref, if you're interseted in working on it. 22:54
hoelzro I would say "I'll take a stab at that", but I've been overcommitting myself to too many things =)
jnthn: if I do, I'll keep that in mind! 22:55
jnthn otoh, if you're interested but not until next week or so, then native-ref will already be merged :)
hoelzro I would love to remove that crazy from the S26 code
jnthn Removing crazy ftw :) 22:56
psch feels like he's piling on some crazy currently
otoh, i also did remove a bit, so maybe that balances out 22:57
jnthn
.oO( Principle of conservation of crazy )
TimToady geekosaur: and even my "give a hand up" summary sounds quite patronizing; it's more like just valuing everyone for the strengths they bring 22:58
geekosaur yes, that was part of why I reacted the way I did 22:59
psch downside of the current jvm-interop-array-stuff state is mostly 1) it's reflecting quite a bit and 2) it's implemented in a weird spread between BootJavaInterop and RakudoJavaInterop
geekosaur not sure a hand up in how to asshole is a good thing for anyone
:/
psch which is mostly because islist doesn't know about p6-listy-types
TimToady I hope I didn't scare Kristien++ away with that summary of what the article was saying 23:00
psch which i'm still slightly dissatisifed with, albeit less than a few hours back
TimToady and I also know that some people get PTSD merely when the discussion comes up, so it's hard to balance everything 23:01
hoelzro FROGGS: when did that test site pop up?
23:05 pippo_ joined, pippo_ left 23:06 pippo left 23:08 Sqirrel left 23:09 Cyrus left, fernando_ joined, Cyrus1 joined, FROGGS left
jnthn Time to try and get some rest, methinks... & 23:10
psch 'night jnthn 23:11
23:14 fernando_ left
psch same here o/ 23:15
23:16 pmurias left, BenGoldberg joined 23:22 mohij left 23:23 dolmen left 23:24 skids left 23:28 skids joined 23:33 agentzh joined, agentzh left, agentzh joined 23:39 virtualsue_ left
timotimo testers.p6c.org/reports/9803.html my module NPE's :( 23:44
23:45 grondilu left 23:48 fernando_ joined 23:58 skids left, gfldex left