»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:00 logie left
xenoterracide privatepaste.com/6952e0c99d looking at starting to implement a DI framework for p6, any thoughts on my syntactic sugar? 00:01
00:05
00:08 kaare_ joined 00:10 fribeiro joined
fribeiro just opened the ticket about the java interface types, let me know if I can help in any way. rt.perl.org/Ticket/Display.html?id=120879 00:28
00:36 vinian joined 00:40 hoverboard joined 00:50 PZt joined 00:54 fribeiro left 00:57 jnap left 01:00 kivutar left 01:04 hoverboard left, hoverboard joined 01:05 hoverboard left, hoverboard joined 01:11 kurahaupo_mobile joined 01:14 BenGoldberg left 01:16 BenGoldberg joined, raiph left 01:17 johnmilton left, rurban1 joined 01:21 rurban1 left 01:45 hoverboard left 01:49 Ben_Goldberg joined 01:50 BenGoldberg left 01:51 jnap joined 01:56 hoverboard joined 02:00 xenoterracide left 02:10 xenoterracide joined 02:13 kaare_ left 02:18 rurban1 joined 02:22 rurban1 left 02:23 kurahaupo_mobile left 02:26 thou joined 02:28 kaare_ joined 02:31 kaare_ left, kaare__ joined, kaare__ is now known as kaare_ 02:35 kaare_ left, kaare_ joined
xenoterracide method delete_key($a --> Int) # what is the behavior of $a --> Int here? 02:41
TimToady --> Int is just the return declaration 02:45
xenoterracide ah, as opposed to writing returns Int 02:47
TimToady --> looks cooler :) 02:48
and it's better to associate the return declaration with the signature, I think 02:49
especially if we get return declarations that can declare a variable
an "out" parameter as it were
these are specced but NYI
02:55 thou left, cognominal__ left 02:58 gfldex left 02:59 gfldex joined 03:01 kurahaupo_mobile joined
xenoterracide hmm 03:08
03:18 kaare_ left 03:19 kaare_ joined, rurban1 joined
xenoterracide little less readable if you aren't yet familiar with it. otherwise it's 6 of 1 half dozen of another. 03:20
03:23 rurban1 left 03:31 kaare_ left 03:38 gfldex left 03:40 gfldex joined 03:54 jnap left
lue Hey, I found an error in one of the backlinks :) 03:54
03:57 jeffreykegler_ joined
dalek ast: 053243e | lue++ | S02-names/is_default.t:
[S02-names] Add missing > to backlink.
03:58
04:00 jeffreykegler left 04:01 araujo left
lue wonders if he can use Perl 6's formatting code rules to avoid reinventing the mess of angle counting and the like. 04:13
nope :( 04:20
04:20 rurban1 joined 04:24 jnap joined 04:27 brother| joined 04:29 rurban1 left, japhb_ left, colomon left, jeffreykegler_ left, hoelzro left, jnap left, jeffreykegler_ joined 04:30 rurban joined, hoelzro joined
xenoterracide lue: angle counting? 04:35
lue xenoterracide: Not quitting early on L<The C<say> thing> 04:37
.oO(Come to think of it, I'm not sure that example's even allowed in normal Pod6 code...)
04:39
04:41 Ben_Goldberg left
TimToady as long as you do one-pass parsing correctly, you don't have to count angles, the grammar counts them for you 04:47
04:50 preflex left 04:51 preflex joined, ChanServ sets mode: +v preflex, jeffreykegler_ left
lue TimToady: you might want to tell that to Rakudo's pod_formatting_code :P 04:57
05:04 rurban1 joined
xenoterracide is a Set @ or %? (also been poking for Set docs and can't find 'em) 05:05
dalek gs.hs: cbf5153 | (Yoshikuni Jujo)++ | pugs- (5 files):
new exception system
05:09
gs.hs: 9d8b59d | 唐鳳++ | pugs- (5 files):
Merge pull request #28 from YoshikuniJujo/master

new exception system
05:25 jnap joined 05:30 xinming joined, jnap left 05:39 SamuraiJack_ joined
xenoterracide pokes about trying to figure out how to have an attribute that's a set of type 05:48
what's := ? I believe it's some sort of assignment operator, but it's not documented in operators 05:56
05:59 rurban1 left 06:01 kurahaupo_mobile left 06:02 Rotwang joined 06:03 sftp left, sftp joined 06:04 cotto left 06:05 cotto joined 06:17 takesako_ left
lue xenoterracide: S03:2296 06:21
synopsebot Link: perlcabal.org/syn/S03.html#line_2296
06:26 jnap joined 06:31 jnap left
japhb Timbus: Pull request for Net--IRC waiting for you. :-) 06:33
06:41 fridim_ left 06:46 frettled_ is now known as frettled
moritz p: say Set.^roles 06:47
camelia rakudo-parrot 53c60c: OUTPUT«(Setty)␤»
moritz p: say Setty.^roles
camelia rakudo-parrot 53c60c: OUTPUT«(Setty)␤»
moritz r: say Set ~~ Positional
camelia rakudo-parrot 53c60c, rakudo-jvm 53c60c: OUTPUT«False␤»
moritz r: say Set ~~ Associative
camelia rakudo-parrot 53c60c, rakudo-jvm 53c60c: OUTPUT«True␤»
xenoterracide is there anything like Moose's handles? for method delegation, rather than hand writing each method? 06:58
06:58 darutoko joined 06:59 rurban1 joined 07:04 rurban1 left 07:08 dayangkun_ left
moritz yes, there is handles 07:09
r: class A { has $.x handles <sqrt chr> }; say A.new(x => 4).sqrt
camelia rakudo-parrot 53c60c, rakudo-jvm 53c60c: OUTPUT«2␤» 07:10
07:13 erkan left, erkan joined 07:16 sjn left, telex left, sjn joined 07:17 telex joined
Timbus a command handler :o oh my, japhb 07:18
preflex Timbus: you have 1 new message. '/msg preflex messages' to read it.
07:21 dayangkun_ joined, araujo joined 07:22 xenoterracide left, xenoterracide_ joined
Timbus japhb, just went over the whole change list; love it. and no I would not mind at all if you tried adding concurrency to the bot 07:25
i was planning to make something where you would enqueue events into the main loop. but since perl6 has an exposed 'scheduler' now I'm sure something even better could be done 07:27
07:30 Rotwang left 07:33 [Sno]_ joined 07:35 itz_ joined 07:36 cognominal joined, __rnddim__ joined 07:37 kaleem joined
japhb Timbus: Oh, excellent, thanks! 07:38
Timbus japhb, np. :) 07:42
07:42 sftp left, xinming left, Celelibi left, itz left, lue left, [Sno] left, genehack left, Celelaptop left, zamolxes left, [Sno]_ is now known as [Sno]
Timbus my only requirement is 'make it as simple and cool as possible' 07:42
and make a twitter feed fetcher to prove it works 07:43
:3
07:44 xinming joined
japhb *chuckle* 07:47
I'll get right on that. ;-)
*yawn* 07:49
& # Time to trundle off to the land of slumber 07:50
07:56 xenoterracide_ is now known as xenoterracide 08:05 Celelaptop joined, sftp joined, Celelibi joined, genehack joined, zamolxes joined
xenoterracide r: class A { has $.x handles get_sqrt => sqrt }; say A.new(x => 4).get_sqrt 08:09
camelia rakudo-parrot 53c60c: OUTPUT«===SORRY!=== Error while compiling /tmp/P97eOJ0uzl␤Not enough positional parameters passed; got 0 but expected 1␤at /tmp/P97eOJ0uzl:1␤------> ␤» 08:10
..rakudo-jvm 53c60c: OUTPUT«===SORRY!=== Error while compiling /tmp/JN83YXtM4f␤Not enough positional parameters passed; got 0 but expected 1␤at /tmp/JN83YXtM4f:1␤------> ␤»
08:10 Celelaptop left
xenoterracide r: class A { has $.x handles get_sqrt => 'sqrt' }; say A.new(x => 4).get_sqrt 08:10
camelia rakudo-parrot 53c60c, rakudo-jvm 53c60c: OUTPUT«2␤»
xenoterracide r: class A { has $.x handles get_sqrt => 'sqrt' = 4 }; say A.new.get_sqrt 08:11
camelia rakudo-jvm 53c60c: OUTPUT«===SORRY!=== Error while compiling /tmp/aA_0DTKWW1␤Cannot modify an immutable value␤at /tmp/aA_0DTKWW1:1␤------> ␤»
..rakudo-parrot 53c60c: OUTPUT«===SORRY!=== Error while compiling /tmp/7oDV0aHiO1␤Cannot modify an immutable value␤at /tmp/7oDV0aHiO1:1␤------> ␤»
xenoterracide r: class A { has $.x handles ( get_sqrt => 'sqrt' ) = 4 }; say A.new.get_sqrt 08:12
camelia rakudo-parrot 53c60c, rakudo-jvm 53c60c: OUTPUT«2␤»
08:15 zaydon joined, zaydon left 08:16 mtk left 08:18 Celelaptop joined 08:20 rurban1 joined 08:25 rurban1 left 08:29 rindolf joined, mtk joined 08:31 zakharyas joined 08:57 zaydon joined 09:05 dayangkun_ left 09:18 zakharyas left 09:22 dayangkun_ joined, dayangkun_ left 09:23 xinming_ joined 09:26 xinming left
tadzik xenoterracide: you may want to look at the IoC module 09:32
09:49 dayangkun joined 09:53 immortal joined 09:54 erkan left 10:03 kaare_ joined 10:06 SamuraiJack_ left 10:22 rurban1 joined 10:23 vinian left 10:28 rurban1 left 10:31 atroxaper joined
FROGGS my @lines = "TODO_core_modules.md".IO.slurp.lines.grep(/^'[ ] ' <!before 'todo'>/).map({ /^'[ ] ' (\S+)/; ~$0 }); # I love it :o) 10:37
that will find all module names I am going to stub now, using this file: github.com/rakudo-p5/v5/blob/maste...modules.md 10:38
10:42 denis_boyun joined
dagurval FROGGS: Is the plan to port most of those modules to v6? 10:50
FROGGS dagurval: I need to make them available by either porting them, or make them compile 10:55
dagurval: the pragma "if" for example will compile as it is, which is nice :o) 10:56
but I don't know what will work out of the box and what now, since there are too many modules and pragmas
10:58 kaleem left
dagurval Neat. Is it preferrable to port them or compile them as is? 10:59
FROGGS I would prefer just to compile them... 11:05
dagurval Makes sense... I was thinking that that's a nice list of porting TODOs if one knew which modules *need* to be ported :). 11:09
FROGGS true :/ 11:10
11:11 [Sno] left, [Sno] joined 11:21 ssutch left
dagurval And by that, easy to help. I have no idea how to compile a v5 module ;). 11:24
11:24 rurban1 joined 11:29 rurban1 left
FROGGS it is about trying to run it, and when it explodes you fix the issue :P 11:30
dagurval Ah :P 11:33
11:34 denis_boyun left
dagurval rp: grammar A { rule TOP { <b > }; token b { c } }; 11:34
camelia rakudo-parrot 53c60c: OUTPUT«===SORRY!===␤No such method 'rxtype' for invocant of type 'NQPMu'␤»
dagurval LTA error, or something worse? 11:35
FROGGS dunno if it is supposed to work...
dagurval I'll go for LTA. I'm playing with the examples in the advent calendar. Took me a while to find my mistake of an extra space :). 11:38
11:51 spider-mario joined 11:59 denisboyun joined 12:04 kaare_ left 12:15 FROGGS[mobile] left, REPLeffect joined 12:35 denisboyun left, SamuraiJack_ joined 12:41 REPLeffect left, REPLeffect joined 12:44 hoverboard left 12:57 zaydon left 12:58 zaydon joined 12:59 vinian joined 13:12 kaare_ joined 13:13 kurahaupo_mobile joined 13:20 kaleem joined 13:21 REPLeffect left 13:22 REPLeffect joined 13:27 FROGGS[mobile] joined 13:43 AAALHNI joined, kaare_ left 13:44 kaare_ joined, REPLeffect left 13:55 REPLeffect joined 13:58 ajr joined 13:59 ajr is now known as Guest69626 14:00 Guest69626 is now known as ajr_ 14:05 daxim left 14:08 SamuraiJack_ left 14:19 gfldex left 14:21 gfldex joined 14:34 johnmilton joined, PacoAir joined 14:51 kaare_ left 14:54 thou joined 15:01 fridim_ joined 15:03 jnap joined 15:06 logie joined 15:09 thou left 15:15 Celelibi left 15:16 Celelibi joined 15:27 gfldex left 15:28 gfldex joined 15:36 Celelibi left 15:45 jnap1 joined 15:46 jnap left 15:53 treehug88 joined 15:59 Psyche^ joined, ajr_ left, ajr joined 16:00 ajr is now known as Guest62192, Guest62192 is now known as ajr_ 16:02 Psyche^_ left 16:14 rurban1 joined 16:17 rurban2 joined, fridim_ left 16:19 rurban1 left 16:21 kaleem left 16:24 colomon joined 16:32 atroxaper left 16:33 atroxaper joined 16:36 atroxape_ joined, atroxaper left 16:51 atroxape_ left 16:52 atroxaper joined
dalek kudo-star-daily: 38a7414 | coke++ | log/ (5 files):
today (automated commit)
16:59
rl6-roast-data: 507ffd5 | coke++ | / (5 files):
today (automated commit)
17:16 atroxaper left
xenoterracide tadzik: oh yeah, I was looking for that... it really is a direct port of Bread::Board... which has been causing me frustration, I suspect due to design. So I'm trying to redesign a bit, and maybe I'll backport to p5 if it pans out 17:24
curious as to why this used exported subroutines when the reason that Moose, and Bread::Board do that is because they want it to /look/ like syntax 17:27
TimToady std: /<b >/ 17:28
camelia std 4731beb: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/FSRj79KNbH line 1:␤------> /<b ⏏>/␤Parse failed␤FAILED 00:01 122m␤» 17:29
TimToady std has a better error message there
p: /<b >/
camelia rakudo-parrot 53c60c: OUTPUT«===SORRY!===␤No such method 'rxtype' for invocant of type 'NQPMu'␤»
xenoterracide tadzik: it'll make a nice code reference, even if it's not what I want functionality wise
TimToady so rakudo is still not detecting null regex as well as it could 17:30
dalek ecs: e8781d0 | util++ | S32-setting-library/Str.pod:
[S32/Str] Fixed copy/paste error: s/codes/graphs/;
17:38
arnsholt nqp: /<b >/ 17:40
camelia nqp-moarvm: OUTPUT«Null regex not allowed at line 2, near ">/"␤panic␤»
..nqp-parrot: OUTPUT«Null regex not allowed at line 2, near ">/"␤current instr.: 'panic' pc 15975 (gen/parrot/stage2/NQPHLL.pir:5955) (gen/parrot/stage2/NQPHLL.nqp:426)␤»
..nqp-jvm: OUTPUT«Null regex not allowed at line 2, near ">/"␤ in panic (gen/jvm/stage2/NQPHLL.nqp:379)␤ in throw_null_pattern (gen/jvm/stage2/NQPP6QRegex.nqp:59)␤ in termseq (gen/jvm/stage2/NQPP6QRegex.nqp)␤ in nibbler (gen/jvm/stage2/NQPP6QRegex.nqp:98)␤ in assertion:…»
arnsholt Well, that's weird... 17:41
TimToady I guess we should tell everyone to program in nqp instead of Perl 6... 17:42
arnsholt I just figured it'd be a bug in NQP that propagated to Rakudo 17:43
But apparently not
TimToady heh, moar simply says "Cannot find method 'rxtype'" 17:44
17:45 [particle] joined
TimToady std: /b|/ 17:48
camelia std 4731beb: OUTPUT«===SORRY!===␤Null pattern not allowed at /tmp/pwAk7Cc1wz line 1:␤------> /b|⏏/␤ expecting any of:␤ quantifier␤ regex_infix␤ sigmaybe␤Parse failed␤FAILED 00:01 122m␤»
TimToady nqp: /b|/
camelia nqp-moarvm: OUTPUT«Unrecognized regex metacharacter | (must be quoted to match literally) at line 2, near "b|/"␤panic␤»
..nqp-parrot: OUTPUT«Unrecognized regex metacharacter | (must be quoted to match literally) at line 2, near "b|/"␤current instr.: 'panic' pc 15975 (gen/parrot/stage2/NQPHLL.pir:5955) (gen/parrot/stage2/NQPHLL.nqp:426)␤»
..nqp-jvm: OUTPUT«Unrecognized regex metacharacter | (must be quoted to match literally) at line 2, near "b|/"␤ in panic (gen/jvm/stage2/NQPHLL.nqp:379)␤ in throw_unrecognized_metachar (gen/jvm/stage2/NQPP6QRegex.nqp:55)␤ in (gen/jvm/stage2/NQPP6QRegex.nqp:108)␤ in nibble…»
TimToady p: /b|/
camelia rakudo-parrot 53c60c: OUTPUT«===SORRY!=== Error while compiling /tmp/Ofi9YzzaRl␤Unrecognized regex metacharacter | (must be quoted to match literally)␤at /tmp/Ofi9YzzaRl:1␤------> /b|⏏/␤ expecting any of:␤ statement list␤ …»
TimToady wonders if we need a new category, WLTA 17:49
17:51 SamuraiJack_ joined 17:55 denisboyun joined
timotimo "way less than awesome"? 17:58
TimToady yeah :) 18:00
18:00 ajr_ left
TimToady as in, positively misleading 18:00
18:00 ajr joined, ajr is now known as Guest66978
TimToady or lying through its teeth, in this case 18:00
"whaddya mean, | isn't a regex metachar?!?" 18:01
18:01 Guest66978 is now known as ajr_ 18:25 ssutch joined 18:26 ajr_ left 18:27 vinian left 18:43 gfldex left 18:44 denisboyun left 18:45 gfldex joined 18:56 SamuraiJack_ left 18:57 ajr_ joined
timotimo i just alerted the people who run the GSM network to the fact that the GSM network is currently not doing any calls apparently 18:57
after that i'll be reachable under the PRL6 vanity :P 18:58
18:58 Rotwang joined 19:04 darutoko left 19:10 jnap1 left 19:18 rurban2 left 19:19 rindolf left 19:24 __rnddim__ is now known as lue 19:29 japhb_ joined 19:32 xenoterracide left 19:37 denisboyun joined
timotimo hm. christmas is practically over, yet nobody is pushing loads of cool rakudo or moarvm commits? :( 19:39
tadzik I suppose everybody's christmasing :) 19:41
timotimo it would appear so
japhb timotimo: Visiting relatives mark it hard to get code written. OTOH, I did manage to get some Net::IRC commits in, so that's something I suppose. :-) 19:44
TimToady has been writing pomes instead 19:47
japhb Odes to a pomegranate? 19:49
timotimo cool :) 19:50
i got tiny spec changes in during my train rides
19:52 Celelibi joined, hoverboard joined
segomos_ everyone is christmas'd out 19:53
fat dumb happy
TimToady Christmas is going, the goose is getting flat; please take a penny from the old man's hat... 19:55
lue japhb: about your Net::IRC commits, do they fix the issue where /msg bot causes the bot to send the response to itself by default?
japhb I didn't explicitly work on that, but lemme check. 19:57
tadzik I was trying to port my C asteroids to Perl 6:) 19:58
our SDL modules is not in a best shape though :/
19:59 telex left
TimToady I'll pay you a ha'penny to fix 'em. 19:59
japhb lue: Yeah, looks still broken. I'll add that to my list.
TimToady someone already took the penny from my hat...
20:00 telex joined
lue japhb: here's how I fixed it: github.com/lue/Net--IRC/commit/76c...cbe35fb0aa 20:00
(don't know how different your changes have made fixing this though) 20:01
japhb lue: That toplace logic can be simplified.
20:02 Pleiades` left
lue japhb: I know the code's kinda terrible (I just realized now, for example, that I could've put the ?? !! inside the function too), I just wanted something that worked at the time :P 20:02
japhb Just: method foo($text, $to = $!default_to) ought to work (untested, though) 20:03
timotimo yeah, the right hand side of default values is thunked
japhb I'll clean it up and commit this afternoon. (Must seek lunch soon. :-) 20:04
timotimo hm, do we automatically dethunk that? i think the optimizer should do that
20:06 Pleiades` joined 20:07 cognominal left, cognominal joined
dalek ecs: 4db95fb | finanalyst++ | c (2 files):
revised intros and added content.pod
20:10
ecs: d1322e9 | larry++ | c (2 files):
Merge pull request #62 from finanalyst/master

revised intros and added content.pod
20:10 hoverboard left
moritz we automatically dethunk literals, or expressions with known compile-time values
20:15 Celelaptop left 20:16 lizmat joined 20:19 rurban1 joined 20:21 SamuraiJack_ joined, rurban2 joined
TimToady suspects we should remove <prior> from the language 20:22
20:24 rurban1 left 20:25 rurban2 left 20:27 SamuraiJack_ left
timotimo i just delivered a capsule manually 20:28
TimToady especially since it's implemented wrong anyway, from the standpoint of implementing the Perl 5 feature of //
in P5 that reuses the regex, not the literal string that was matched 20:29
but it's a really low-wattage feature, and adds an attribute to every P6 cursor 20:30
so I think it's doomed
20:31 xenoterracide joined
TimToady the only place R* uses it is in roast 20:32
the "low-wattage" metaphor is problematic, insofar as new, efficient LED lighting is low-wattage 20:33
I need to find a better metaphor for features that aren't worth the overhead
timotimo "low signal"? 20:34
TimToady wimpy features
overspecialized 20:35
too hard to remember for what you get
lue TimToady: I'll support <prior> only if <following> exists as well :P 20:36
TimToady blunderbusses 20:37
"Why do we even have that lever?" 20:39
trinket features 20:40
lue The closest to "low-wattage" would be "low-luminosity", though it's not as catchy. 20:42
TimToady nightlights :) 20:43
lue :D "I have to say I don't care for your proposed new features. Feels like a bunch of nightlights for core Perl 6."
TimToady Christmas tree lights :) 20:44
trinket features seems about the right level of disparagement :)
and kinda fits with the cargoculting meme :) 20:45
lue "trinket features" is way too literal though, not at all like "cargoculting" :)
FROGGS wth, rakudo's module loader preferred .pir files over .pbc files O.o
which makes loading modules like 100 times slower 20:46
lue FROGGS: uhh... reverse alphabetical order?
TimToady low-flying aircraft--very, very, low
FROGGS lue: no
lue: I'll commit in a minute (or two)
lue TimToady: going off the LHF metaphor, I can think of "squashed fruit", "inedible fruit", and "fruitless tree". 20:48
TimToady It's a dessert wax AND a floor topping! 20:50
20:51 kivutar joined
TimToady buggy whips 20:51
lue (I still kinda like nightlight, fwiw. It's somewhat of a process to get in place, offers little reward, and most people get on fine without it in the first place.) 20:53
timotimo FROGGS: we're getting a huge speed boost for loading modules? cool 20:54
TimToady dimglow features
FROGGS timotimo: only if .pir files are present too
lue
.oO(Hopefully we can figure out a new metaphor soon; we need to make that remove <prior> commit! "[S05] <prior> removed\n\nRemoved because it's quite the {metaphor}")
20:57
low-lux has a nice ring to it methinks. 20:58
timotimo mhm
20:58 kivutar left
japhb
.oO( Not enough soap )
21:04
21:05 shinobicl left 21:07 Pleiades` left 21:12 xenoterracide left, hoverboard joined, Pleiades` joined 21:22 rurban1 joined 21:24 tgt joined 21:26 rurban1 left
japhb Timbus: Cleaned up version of lue's Net--IRC patch sent to you in PR. 21:34
lue japhb++ for Net::IRC improvements :)
21:35 treehug88 left
japhb Timbus: Also, in thinking about concurrency, I'm thinking $.conn.get is essentially unchanged, but the main loop {} just start{}s a task immediately upon receiving a new line. Output gets fed through a channel, so as to safely serialize writes to the socket. The sticking point is updates to state -- I'm thinking it's time to follow your conjecture comment and turn %.state into a simple class that serializes updates to the global bot state. 21:37
21:37 tomaw- joined
japhb lue: After we get Net::IRC rocking, then we just need some good email code, and we'll be rocking the 90's. ;-) 21:38
lue :)
japhb lue: FWIW, I like 'low-lux feature' 21:40
21:40 go|dfish left, tgt left
lue 2/3 of each word alliterates with the other, I think that's why it sounds nice :) 21:40
japhb And concision FTW 21:41
21:48 tomaw- left
FROGGS damn, my patch does break something... :/ 21:49
japhb Timbus: Thinking more about concurrency, farther down the line it might also be useful to support multiple connections; turn each into a channel and select between them. The tricky part will be clearing out the various places in the code that assume there is only one connection (and thus one active nick, and so on).
21:50 tomaw- joined
moritz or you could just instantiate Net::IRC::Bot twice 21:50
21:50 xenoterracide joined, tgt joined
japhb moritz: As long as you have some way to communicate between them. You want a factbot to learn facts from both networks, for example. 21:50
moritz give them the same "db" handle *shrug* 21:52
21:52 tgt left
japhb moritz: Sure, that may handle the easy cases. 21:53
japhb wonders if DBIish is thread-safe (not thread-aware, mind you, just not thread-dangerous)
21:53 zaydon left
moritz has no idea 21:58
22:04 denis_boyun_ joined 22:05 denisboyun left
lue japhb: so far the general answer seems to be "pray it doesn't break" :) 22:06
[Coke] ~~ 22:11
22:23 rurban1 joined 22:27 rurban1 left
[Coke] preflex: seen au? 22:33
preflex au was last seen on #perl6 307 days, 3 hours, 35 minutes and 19 seconds ago, saying: pity that Unicode terminals doesn't support strike-through very well :)
xenoterracide wonders if the language could attempt auto importing... e.g. class Foo does Bar { # would attempt a use Bar; under the hood if it wasn't already loaded 22:47
FROGGS xenoterracide: that was discussed before...
it ended with a "hmmm, maybe" or so :o) 22:48
xenoterracide seems like one of the most useful ends to boilerplate, esp with imports being lexically scoped... (shuts up since I'm unlikely to put up) 22:49
22:52 johnmilton left
xenoterracide is a - illegal in perl5 sub names? (just noticed a - in a sub name in p5 and realizing that I'm not sure I've ever seen a - in a sub name) 22:53
22:53 Rotwang left
geekosaur it's illegal in sub names, yes 22:54
FROGGS ./p5 'sub foo-bar { };'
Perl5: Illegal declaration of subroutine main::foo at -e line 1.
23:03 BenGoldberg joined
xenoterracide huh, I wonder if having it allowed in p6 is an improvement over _ 23:04
but core p6 still uses the _ if memory serves, which means that the _ as convention shall probably remain 23:05
23:07 colomon left, colomon joined, cooper joined, cooper left, cooper joined
lue xenoterracide: not sure there's much of a convention, except if you feel like holding shift to press that key on your keyboard :) 23:08
23:09 kaare_ joined
timotimo xenoterracide: don't forget to teach panda and ufo to recognize those auto-imports for ordering the build files by dependency? :P 23:09
actually 23:21
can we just get a mode for rakudo, like a compiler flag, that inspects the code for imports?
just something a bit more robust than grepping each line for "begins with whitespace, then use or require"
would be best if it could "not run BEGIN code from the given file", but that's possibly kind of hard 23:22
23:24 colomon left 23:25 colomon joined
lue I personally think we need more reasons before implementing implicit loading. 23:32
feels like a nightlight/dimglow/low-lux feature to me :) 23:40
xenoterracide reduction of boilerplate is a good thing, IMO, why type a module name twice if you really don't need to 23:42
note: I tend to do a lot of things in p5 that are centered around me not typing class names twice 23:43
such as load_class('Foo::Bar')->new (or now use_module because Class::Load will no longer be free Moose dep) 23:44
23:46 denis_boyun_ left, go|dfish joined
lue xenoterracide: I just don't see how enabling magic implicit loading for a subset of possible modules is all that helpful, esp. given the mess of loading issues I'm seeing in my head, such as: 23:48
1) If someone has explicitly use'd a module, don't load it again.
xenoterracide is that what NC or whatever p6 has is for? 23:49
wtf
% INC
lol
lue 2) If module Foo::Bar defines a class Baz, how to prevent loading Baz.pm6
xenoterracide it should check if it's already loaded, which is what % INC (or the p6 equiv ) is for 23:50
I assume there's some way of keeping track
FROGGS I dont think 1) counts, because you never load a module twice (as long as you dont request another name/auth/ver)
lue 3) Local class Bar defined in same compilation unit, but after use (class Foo is Bar { ... }; class Bar { ... }). don't load Bar.pm6
FROGGS: with implicit loading, use Foo; class Bar is Foo { } *could* try to load the module twice 23:51
FROGGS lue: not according to our module loader :o)
xenoterracide what happens if I have 2 methods that try to require Foo?
different ones
because I don't know if it's yet loaded at that point 23:52
the behavior would be the same
FROGGS xenoterracide: it loads and compiles it only once
the filename of the module is the key in a hash 23:53
lue %INC is listed in S28, but with a "maybe" attached to it.
FROGGS so if you do: require "./foo.pm"; require "././foo.pm", you would load it twice
lue FROGGS: alright, so twice-loading isn't an issue. Thanks for letting me know :) 23:54
But there's still the issue of wayward module loading. I don't like the sound of examining the entire compilation unit and everything it has access to just to see if we can try to implicitly load a module.
FROGGS for 3), I think you need to stub Bar { } anyway
lue r: class Foo is Bar { }; class Bar { }; say "alive!"; 23:55
23:55 Ben_Goldberg joined
camelia rakudo-jvm 53c60c: OUTPUT«(timeout)» 23:55
..rakudo-parrot 53c60c: OUTPUT«===SORRY!=== Error while compiling /tmp/9eyt2vsFrs␤'Foo' cannot inherit from 'Bar' because it is unknown.␤Did you mean 'Bag'?␤␤at /tmp/9eyt2vsFrs:1␤------> ␤»
lue ah, OK :)
FROGGS unless if you had a "use Bar" before :o)
23:56 baest joined
FROGGS but yeah, we can supply name/auth/ver to a use statement, but not to a trait... so it would not be that powerful when this feature might become important in future 23:56
23:57 BenGoldberg left
lue My main point is that a very small number of modules will store a class Foo::Bar in Foo/Bar.pm6 , and that there's a high risk of some *other* module storing their stuff in Foo/Bar.pm6, and it's general bad practice to use stuff that doesn't exist and expect the compiler to fix it for you. 23:57
r: $a = 42; say $a;
camelia rakudo-jvm 53c60c: OUTPUT«(timeout)»
..rakudo-parrot 53c60c: OUTPUT«===SORRY!=== Error while compiling /tmp/ClYnGU625K␤Variable '$a' is not declared␤at /tmp/ClYnGU625K:1␤------> $a⏏ = 42; say $a;␤ expecting any of:␤ postfix␤»
lue i.e., a low-lux feature :) 23:58
FROGGS lue: I have a patch for your $a... gist.github.com/FROGGS/6f8989611659551dae1f
:o)
xenoterracide lue: I'm not convinced that's true, in p5 I believe it's generally agreed that multiple packages per file is generally a bad idea... also one could create a loaded modules hash... so if it's htere...
23:58 baest left