»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
donri Wait, isn't phenny Python? Such blasphemy! 00:01
masak flussence: module A; multi sub explode(Str $a) is export {};
flussence: this does not give an error locally for me.
jnthn masak: I think you need to import from A 00:02
masak jnthn: you mean beyond 'use A'?
flussence explode { 1 }; works for you? 00:03
masak donri: also, rakudo.org uses Drupal, a PHP framework.
flussence: trying.
donri Seen trac used too
aloha Sorry, I haven't seen trac used too.
donri lol
masak flussence: got it; thanks!
donri seen such wonders before 00:04
aloha Sorry, I haven't seen such wonders before.
jnthn seen you naked
aloha Sorry, I haven't seen you naked.
jnthn bots :D
masak seen such puerile behavior on this channel
aloha Sorry, I haven't seen such puerile behavior on this channel.
donri seen that because I'm seenile
aloha Sorry, I haven't seen that because I'm seenile.
jnthn masak: :P
masak seen sense 00:05
aloha Sorry, I haven't seen sense.
masak *lol*
donri seen you in a while, but maybe we could get together for a cup of coffee
aloha Sorry, I haven't seen you in a while, but maybe we could get together for a cup of coffee.
donri (Is it still funny?)
masak sorta :)
seen how the channel looks from the other side. Let me just go and check. Be right back. 00:06
aloha Sorry, I haven't seen how the channel looks from the other side. Let me just go and check. Be right back..
donri seen one that large before 00:07
aloha Sorry, I haven't seen one that large before.
masak seen it that way
aloha Sorry, I haven't seen it that way.
donri seen anything in my entire life because I lost my sight at birth when the doctor poked my eyes out 00:08
aloha Sorry, I haven't seen anything in my entire life because I lost my sight at birth when the doctor poked my eyes out.
masak awww :(
donri Poor aloha.
masak maybe not the best bot to keep track of people, then. 00:09
diakopter seen the light; I'm still only a bot
aloha Sorry, I haven't seen the light; I'm still only a bot.
00:09 donaldh left
masak seen you since last Christmas; been too busy licking envelopes and, you know, stuff 00:10
aloha Sorry, I haven't seen you since last Christmas; been too busy licking envelopes and, you know, stuff.
donri seen or will ever see Perl 6 completed
aloha Sorry, I haven't seen or will ever see Perl 6 completed.
donri :(
masak inventive.
flussence that just means we'll have to rewrite that bot before perl6.0 is announced :) 00:11
donri In Perl 6.
jnthn 6bot \o/ 00:12
masak jnthn: your next blog? :P
jnthn Well, I may as well keep naming things with a 6 at the start... :P
masak seen the parental advisory on jnthn's next blog
aloha Sorry, I haven't seen the parental advisory on jnthn's next blog.
jnthn One day it'll be WAY cooler than "i" ;) 00:13
masak an "i" is just a "6" seen from the side :)
jnthn ...of the complex plane? :)
00:14 vmspb left
masak seen the complex plane, and I've heard large parts of it aren't real anyway 00:14
aloha Sorry, I haven't seen the complex plane, and I've heard large parts of it aren't real anyway.
donri Six and sex is the same word in Swedish.
masak seen a lot, really
aloha Sorry, I haven't seen a lot, really.
donri So where is this sex blog I hear about?
masak donri: you from .se?
donri Yep
masak whereabouts? 00:15
donri Norrköping
00:15 cotto joined
masak ooh 00:15
jnthn In Swedish terms, that's not *that* far from me. :)
masak <-- Lund, now
donri Perspektivbredband? :D
Ah
masak used to be Uppsala.
00:15 slavik1 left
diakopter <-- SF peninsula 00:15
jnthn e i Lund också :) 00:16
donri Pööööööörl
00:16 cosimo joined
jnthn öööööööl :) 00:16
donri *burp*
jnthn passed through Norrköping on the train twice in the last few weeks. :) 00:17
donri STALKER
mfollett Anyone have an idea why IO::Socket::INET would be telling me, "Can't connect closed socket" when I'm trying to call open() on an IO::Socket::INET object?
donri Because it can't connect closed socket
Ignore my tired humour 00:18
mfollett hehehe
masak mfollett: sounds like a possible bug.
dukeleto mfollett: do you have example code?
mfollett: which OS?
jnthn mfollett: It may be worth seeing if any of the modules that use sockets work for you at all. 00:19
mfollett OS X, and I just opened created a new object and try to open call open with server/ports I know are open.
perl6-lwp-simple seems to be having the same problem.
00:20 mj41_ joined
jnthn mfollett: OK, then it sounds like a bug. Either regression of platform-specific one. 00:21
dukeleto mfollett: do all the socket-related tests in the Parrot test suite pass for you? 00:22
mfollett: t/pmc/socket*.t
masak 'night, #perl6
00:22 mj41 left, mj41_ is now known as mj41 00:23 masak left
mfollett I'll check 00:23
dukeleto mfollett: if you can give a short code sample of Rakudo, describe your bug, OS, etc and send it to parrot-dev, we will try to fix it
00:24 donri left
mfollett my $socket = IO::Socket::INET.new;$socket.open('localhost', 80 ); 00:24
or google.com
00:24 donri joined
mfollett OS X 10.6 10J567 built from scratch just about an hour ago 00:24
not all the socket*.t tests pass, though it isn't obviously related. 00:29
where should I send them to?
00:33 cschimm1 left, starcoder2 left 00:34 starcoder2 joined, leprevost left, cschimm1 joined 00:40 envi joined 00:43 cdarroch left
jnthn mfollett: Maybe best is to open a ticket at trac.parrot.org 00:44
mfollett: Then it won't get lost
sleep & 00:47
00:49 cosimo left 00:50 mtk left 00:59 mtk joined 01:00 saaki left 01:01 jferrero left
flussence lives_ok returns a fail if the closure emits a warning, is that meant to happen? 01:02
01:06 Su-Shee left 01:14 perlpilot joined 01:17 perlpilot left 01:35 cotto_work left 01:41 cotto_work joined 01:43 mfollett left 01:47 donri left 01:48 mfollett joined 01:51 mkramer left 01:53 qiyong joined
qiyong what's the per6 dpkg name? 01:53
in debian or ubuntu
01:59 mfollett left 02:00 noganex_ joined 02:04 noganex left
sorear good * #perl6 02:06
qiyong: my debian unstable has a package for Parrot but no package for any version of Perl 6 02:08
qiyong sorear, parrot is the vm? 02:09
sorear phenny: tell donri Sprixel is a parser generator. "Is YACC supposed to be fully C99 or not?"
phenny sorear: I'll pass that on when donri is around.
sorear phenny: tell donri I think the question you meant to ask is "is perlesque supposed to be Perl 6 or not?". And the answer is no; that's what -esque means. 02:10
phenny sorear: I'll pass that on when donri is around.
sorear Tene: does $obj.&local-method bother you that much? 02:12
qiyong: for Rakudo. 02:14
02:29 Bzek joined
sorear wanted: a channel (in the general sense) for complaining about dubious spectests 02:31
to get in touch with the people who wrote them and find out wth they were thinking 02:32
sorear switches from fudge-spectests state to fix-bugs state
colomon sorear: some of those tests have been in there for ages and ages, I think. 02:37
but please complain here. (I probably contributed a few them myself, alas.) 02:38
Util sorear: `git blame` is your friend. 02:39
02:39 whiteknight left
Tene sorear: That option is fine for many uses. 02:45
sorear: I'm not particularly a fan of the "monkey patch everything lol" style that's apparently popular in some circle, but I am interested in allowing that sort of development approach to be done better, without conflicting with other lexical scopes, etc. 02:46
sorear: as well, that approach relies on knowing the specific type ahead of time. Sometimes there's a type hierarchy involved, for example. 02:47
sorear: if I want to lexically augment a specific class, then for that approach, I need to check to determine that the given object is of the augmented type, and then invoke the specific method that way. 02:48
sorear: consider the case of: sub foo(BaseType $n) { $n.foo() }; 02:49
I guess I could have the method itself check if it's the type I care about and redispatch if it isn't... 02:50
That's also a lot easier to get wrong, and I expect that those people who want to shove special methods in core types are less likely to do that than to use MONKEY_PATCHING; and just globally fuck it up. 02:51
I agree that social methods are good to influence people away from that, but it's nice to be able to offer them a better solution. 02:52
afk a bit
03:14 stifynsemons joined 03:17 kaare__ joined, kaare_ left
Tene sorear: and then you have to deal with issues of walking the class hierarchy, etc. If you lexically augment a method in a class and then call that method on an instance of one of a set of derived classes, some of which override it, some of which augment or wrap it, and some of which inherit it, you need to have a deep understanding of that to implement with $foo.&local-method 03:18
sorear: I don't feel that I really understand the motivations and use cases of this style of programming, but it's used quite a bit in the ruby world, for example. 03:21
sorear: Given that, according to TimToady, we should have the capability to do this much better and give people tools to compose and deal with these augmentations to type hierarchies, I feel that it would be a shame to completely leave out. 03:22
sorear The tools TimToady proposes complicate other questions
If method dispatch depends on site, what does it mean to delegate? 03:23
Tene I suppose that, realistically, if nobody else has felt like this so far, I should just write up a damn spec patch myself. :)
I expect that the answer is some approximation of "If you ask for a method dispatcher that doesn't respect delegation information, then you'll get what you ask for". 03:25
03:44 patspam joined 03:47 stifynsemons left 03:56 Gothmog_ left 03:59 _twitch left 04:05 rdesfo_ left 04:17 stifynsemons joined 04:19 stifynsemons left 04:23 Su-Shee joined
sorear S12:1707: What if an enumeration starts with a caseless character, like 万 ? 04:23
04:25 stifynsemons joined 04:40 agentzh joined 04:53 _twitch joined 04:57 jevin left 05:04 patspam left 05:07 lateau joined
sorear Has anything been decided about the relationship between Bool($x) and $x.Bool ? 05:08
05:14 lue joined
sorear Does ++ mean .=succ in general? 05:26
--, .=pred?
05:28 woosley joined 05:32 starcoder left 05:35 arnsholt left, starcoder joined 05:36 mfollett joined
sorear looks like 'yes' 05:38
am I correct in thinking that my $x = my Any $x, and so my $x = Mu is meaningless?
05:39 arnsholt joined
sorear what about [Mu]? I conjecture that [] returns an Array = Array[Any], so it can't contain Mu values 05:39
actually I'm certain [Mu] is wrong 05:43
or am I...
sorear pokes TimToady 05:44
06:05 saaki joined
dalek ecza: ab075f1 | sorear++ | / (2 files):
Add a few more Bool bits
06:05
ecza: f44b825 | sorear++ | lib/SAFE.setting:
'join' defaults to ""
ecza: 5538226 | sorear++ | lib/SAFE.setting:
Add ucfirst and lcfirst
ast: f07a935 | sorear++ | S02-builtin_data_types/bool.t:
Unfudge Bool.key for niecza
06:11
ast: f928638 | sorear++ | S03-operators/boolean-bitwise.t:
It does not make sense to use Mu here, since ?^ should autothread
ast: 0d01856 | sorear++ | S0 (2 files):
A couple more unfudges
sorear Where can I get a complete list of named unary operators? 06:13
tadzik nqp: foo 06:15
p6eval nqp: ( no output )
sorear nqp interprets foo as being a fetch from a package variable 06:16
nqp;foo is not defined, so the fetch returns Undef 06:17
nqp: (foo)()
p6eval nqp: OUTPUT«Null PMC access in invoke()␤current instr.: '_block11' pc 29 (EVAL_1:18051232)␤»
sorear I mean Null
tadzik I see
moritz_ good morning zebras 06:24
sorear: if that list is not in STD, it doesn't exist
tadzik good morning 06:25
06:27 hugme joined, ChanServ sets mode: +v hugme
moritz_ hugme: add arnsholt to rakudo 06:28
sorear moritz_: STD's list is: temp, let, sleep, abs
hugme hugs arnsholt. Welcome to rakudo!
sorear which seems a bit... short
moritz_ arnsholt: you now have temporary commit access for the release
sorear interestingly, Rakudo treats defined as a prefix op
moritz_ arnsholt: have the appropriate amount of fun
sorear rakudo: say defined 1 && 0
p6eval rakudo 6f9116: OUTPUT«0␤»
sorear niecza: say defined 1 && 0 # using STD
p6eval niecza v2-67-g5538226: OUTPUT«(timeout)» 06:29
sorear niecza: say defined 1 && 0 # using STD
p6eval niecza v2-67-g5538226: OUTPUT«Bool::True␤»
sorear moritz_: what does your IRC log offer offer that IRSeekBot, clog, lambdabot, etc don't? 06:30
moritz_ sorear: I didn't even know that lambdabot publishes logs :-)
sorear: it has some p6 specific hacks, such as making S02:123 clickable links 06:31
sorear It did. I don't know if they're still done since the exodus.
er, the exodus from UNSW
moritz_ at the time I wrote the logging bot, we had no other working logging solution 06:32
sorear and whose fault was that? :p (I'm just bitter 'cause I already had a few thousand karma with lambdabot during 2006-2007) 06:33
06:35 arlinius left
moritz_ previously there were logs on collabti.de or so, which went down for a few weeks or months 06:36
and later repawned under a different domain name, "stealing" (with permission) part of the layout of our logs 06:37
sorear: I can reconstruct karam from the IRC logs, but of course only for those channels that I've logged (and only for the time I've logged it) 06:38
06:39 Bzek_ joined 06:42 Bzek left 06:48 ponbiki left 06:50 ponbiki joined 06:52 wtw joined 06:56 justatheory left 06:57 justatheory joined 06:59 kaare__ is now known as kaare_ 07:01 justatheory left 07:04 mfollett left
dalek ecza: a938d4c | sorear++ | / (4 files):
Make ++ more polymorphic, use .succ, support Bool
07:12
sorear rakudo: say 5 % 1.5
p6eval rakudo 6f9116: OUTPUT«0.5␤»
sorear rakudo: say 5e0 % 1.5e0
p6eval rakudo 6f9116: OUTPUT«0.5␤»
sorear rakudo: say 5e0 % -1.5e0
p6eval rakudo 6f9116: OUTPUT«-1␤» 07:13
sorear rakudo: say -5e0 % 1.5e0
p6eval rakudo 6f9116: OUTPUT«1␤»
sorear rakudo: say -5 % 2
p6eval rakudo 6f9116: OUTPUT«1␤»
sorear -> sleep 07:15
07:17 Mowah joined 07:25 noganex_ is now known as noganex 07:26 dual left 07:40 cjk101010 joined 07:42 arlinius joined 07:44 neroxx left 07:46 neroxx joined 07:47 jaldhar left 07:48 jaldhar joined 07:51 shi joined 08:03 Layla_91 joined 08:22 awoodland joined 08:27 qiyong left 08:30 am0c joined 08:37 betterworld left 08:38 neroxx left, mtk left 08:39 Trashlord left 08:41 Trashlord joined 08:47 mtk joined 08:52 betterworld joined 09:00 awoodland left 09:09 Su-Shee left 09:10 Su-Shee joined 09:21 qiyong joined, qiyong left 09:26 Bzek_ left 09:27 Bzek joined 09:28 neroxx joined 09:30 amkrankr1leuen left 09:32 amkrankruleuen joined, daxim joined
jnthn morning, #perl6 09:39
09:40 dakkar joined
Layla_91 jnthn: o/ =) 09:40
colomon \o 09:43
moritz_ o/ 09:44
jnthn morning, laylka :)
amd colomon, moritz_
colomon: early? or late? :)
colomon middlish
jnthn :)
colomon something has my stomach very upset, alas. 09:45
jnthn Ugh :(
Layla_91 jnthn: actually it is 11:45am.. time for a snak! ^_^
daxim stackoverflow.com/questions/5026451...rcumfixsym 09:46
jnthn Layla_91: Ah, you're an hour from the future. :)
Layla_91 jnthn: yes... I can see your future an hour from now :) 09:47
jnthn Layla_91: Will my throat be less sore an hour in the future? :)
Layla_91 jnthn: ow.. :( 09:48
jnthn: more hot drinks :)
colomon (answering on stackoverflow... what's the technical term for the @a; @b; @c construction?)
jnthn Layla_91: Good idea :)
colomon: lol
Layla_91 jnthn: Hot choclate ^_^
jnthn colomon: as in, list of list... :) 09:49
Layla_91: Aww, I have none of that. Just coffee and various types of tea.
daxim: Basically, Rakudo just doesn't implement that yet. I think it's valid Perl 6.
std: my (@a, @b, @c); for zip(@a;@b;@c) -> $nth_a, $nth_b, $nth_c { ... }; 09:50
p6eval std 625303c: OUTPUT«Potential difficulties:␤ $nth_c is declared but not used at /tmp/w1JZSDXoKT line 1:␤------> ); for zip(@a;@b;@c) -> $nth_a, $nth_b, ⏏$nth_c { ... };␤ $nth_a is declared but not used at /tmp/w1JZSDXoKT line 1:␤------> my (@a, @b, @c); for zip(@a;@b;@c)
..-> …
jnthn std: my (@a, @b, @c); for zip(@a;@b;@c) -> $, $, $ { ... };
p6eval std 625303c: OUTPUT«ok 00:01 123m␤»
Layla_91 jnthn: tea then.. with some lemon
colomon hey, today is release! 09:51
jnthn does what Layla_91 says :) 09:52
moritz_: how's the match-nom branch? 09:54
jnthn tries to build it to see what happens :)
colomon rakudo: my @a = 1..3; my @b = 7..10; my @c = 'a'..'d'; for (@a Z @b) Z @c -> $a, $b, $c { say $a ~ $b ~ $c }
p6eval rakudo 6f9116: OUTPUT«1a7␤b2c␤Not enough positional parameters passed; got 2 but expected 3␤ in <anon> at line 2:/tmp/XmuOJF0nvm␤ in main program body at line 1␤»
arnsholt colomon: Indeed. I should start figuring out how to do that =)
moritz_ jnthn: haven't done anything new; I'm kinda stuck right now
colomon arnsholt++
jnthn moritz_: OK, thanks. I'll see if I can unstick it. :)
colomon Is there an workaround for zip(@a;@b;@c)? 09:56
09:56 qiyong joined
qiyong does perl6 still use tie() mechanism? 09:56
moritz_ @a Z @b Z @c :/
qiyong: no
colomon moritz_: nope
moritz_: or at least, it doesn't work (see above)
jnthn colomon: That was because your lists were of uneven length. 09:57
colomon jnthn: no it wasn't. look at the two outputs that came first.
they should be 17a, 28b
qiyong perl6 and perl5, which is faster generally?
moritz_ problem is that infix Z is not associative in the mathematical sense
jnthn colomon: Oh
colomon: Yeah, I mis-read. 09:58
moritz_ qiyong: English or French, which is faster generally?
colomon I believe the problem is that @a Z @b is coming out flat.
qiyong moritz_, latin
moritz_ qiyong: so far Perl 6 compilers are slower than the one Perl 5 compiler we have. But it's a feature of the compilers, not of the language
qiyong so french a little bit faster sometime
moritz_ jnthn: in the branch, ./parrot_install/bin/parrot src/stage0/nqp.pbc -e '' results in "Can only use get_how on a RakudoObject 09:59
current instr.: 'parrot;NQPClassHOW;compute_c3_mro' pc 1488 (src/stage0/NQP-s0.pir:430)
09:59 varna left
moritz_ " 09:59
from Regex::Match's compose() 10:00
jnthn moritz_: That's true in master too, though...
moritz_: Need --library=src/stage0 or some such
TimToady good morning everyone
phenny TimToady: 16 Feb 08:21Z <diakopter> tell TimToady maybe Perl 6 can make it into Vol5 of TAoCP (Scanning/Parsing) ;) he says done by 2020
moritz_ oh
TimToady you're on screen at COSBI
jnthn moritz_: The Makefile adds it.
TimToady: Morning!
qiyong moritz_, does larry involved in perl6?
s/moritz// 10:01
s/moritz_//
flussence _, ?
colomon qiyong: larry wall?
moritz_ qiyong: yes
jnthn qiyong: Yes, he does stuff now and then. ;)
colomon )
10:01 varna joined
moritz_ TimToady: good morning, have a nice presentation :-) 10:01
qiyong he approved perl6? or he designed it?
TimToady this is in Italy, so it won't start on time
colomon qiyong: designed much of it.
qiyong i doubt it'll replace perl5, as plan9 doesn't replace unix 10:02
huf qiyong: he comes to this channel every now and then too
bacek ~~
moritz_ qiyong: that's not our goal. We want to build a cool, useful and fun-to-use language
TimToady qiyong: you shouldn't believe anything that Larry Wall says
colomon jnthn: do you know if there's a real reason we don't support lol yet?
bacek pull pop-corn to watch it 10:03
TimToady he's a pathological liar
qiyong TimToady, what did he say?
bacek TimToady, you can't prove it!
moritz_ colomon: I think it was both parsing and the not-yet-fleshed-out iterator model
bacek qiyong, "he is pathological liar" :)
colomon moritz_: hmmm.
TimToady the room is getting pretty full 10:04
10:04 phauly joined
Layla_91 I wish someone worked on something nice like "why's (poignant) guide to ruby" for perl6.. 10:04
phauly So let's start! ;)
moritz_ TimToady: then you should behave :-) 10:05
TimToady but do I have to behave well?
moritz_ TimToady: just optimize for fun :-)
TimToady okay, say goodbye now 10:07
moritz_ waves
phauly goodbye
colomon \o
bacek o/
jnthn o/
Layla_91 TimToady: come back soon! :)
moritz_ at least phauly behaves well :-)
flussence particles
moritz_ hilarious
flussence hey it's not 2pm yet, I shouldn't even be awake :( 10:08
colomon rakudo: my @a = 1..3; my @b = 7..10; my @c = 'a'..'d'; for zip(@a, @b) -> $a, $b { say $a ~ $b }
p6eval rakudo 6f9116: OUTPUT«Could not find sub &zip␤ in main program body at line 22:/tmp/kiuXI3KZzb␤»
jnthn moritz_: Oh hmm..."interesting" fail. It's trying to exists in an Undef now. 10:09
moritz_ jnthn: maybe I messed up the vtable override implementation
jnthn: I didn't quite understand the code, just copied and pasted and adapted 10:10
10:10 volpe joined
jnthn moritz_: It looks right 10:10
moritz_ i tried to test it, but since it didn't build... 10:11
hm, I could have cherry-picked that commit to master
jnthn oh, wait a minute...
volpe Hi phauly
jnthn moritz_: Yeah, there is one issue...fixing. 10:12
10:13 Layla_91 left
moritz_ jnthn: I'm curious, how did you get your diagnose? (exists on Undef) 10:13
jnthn moritz_: That's what the error message said 10:14
(top line of the backtrace)
moritz_ huh
10:14 awoodland joined
moritz_ I got 10:14
jnthn moritz_: I think that it happened because it was lying about something else though.
moritz_ Malformed package declaration at line 1, near ";\n\n tok"
jnthn Oh...
:/
moritz_: The issue - or at least part of it - is that the exists vtables return an int, not a pmc
moritz_ ah 10:15
phauly Larry is now laying about RMS in OZ ;)
moritz_ so it needs to box
jnthn moritz_: So returning a PMC instead => pointer gets considered an int => always exists :)
moritz_ wow.
type unsafe programming etc.
jnthn That's why it's bad, you C.
:)
phauly and explained the "optimize for fun" thing ;)
moritz_ that one is pretty important for us :-) 10:16
jnthn moritz_: Yes, that helped 10:17
moritz_: Next up: delete_keyed() not implemented in class 'RakudoObject'
:)
moritz_ sighs
well, in the long run we need all of those anyway, I guess
dalek p/match-nom: 44a0d5f | jonathan++ | src/ (2 files):
Some fixes to the exists v-table overrides. Gets us a bit further along the compile.
jnthn moritz_: Yes
moritz_ hm, I have another parrot + nqp in $PATH 10:22
maybe that's a less-than-awesome idea 10:23
jnthn ah
moritz_ ... and I still get the same, non-informative error message :( 10:24
jnthn moritz_: That's...really odd.
10:24 woosley left
jnthn moritz_: I'm not sure why we'd see different errors. 10:25
tadzik 1104 Layla_91 | I wish someone worked on something nice like "why's 10:27
| (poignant) guide to ruby" for perl6..
hmm
I believe masak is the one. And it should probably be Zebras' guide to Perl 6 10:28
oh, Layla's gone
10:28 woosley1 joined, y3llow left
dalek p: 8d32128 | jonathan++ | src/cheats/hll-grammar.pir:
Gut the hll-grammar cheats, since they got incorporated into HLL::Grammar as part of the 6model changes. Just left behind one little bit which needs migrating.
10:28
10:29 y3llow joined
bbkr what is the syntax for class static attribute in P6? 10:30
moritz_ class A { our $x } I think
S12 knows more
10:32 orafu joined
bbkr moritz++ works :) 10:32
rakudo: class Foo {our $.x is rw}; $Foo::x =1 #bug, something is wrong when static atribute is told to have class accessor 10:34
p6eval rakudo 6f9116: OUTPUT«Null PMC access in getprop()␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/DmeWbOM_uC␤»
bbkr std: class Foo {our $.x is rw}; $Foo::x =1 #bug, something is wrong when static atribute is told to have class accessor 10:35
p6eval std 625303c: OUTPUT«ok 00:01 121m␤»
bbkr reports
moritz_ rakudo: class Foo {our $x is rw}; $Foo::x = 1; say $Foo::x
p6eval rakudo 6f9116: OUTPUT«1␤»
bbkr without accessor works fine 10:36
moritz_ rakudo: class Foo { our $.x is rw }; Foo.x = 3; say Foo.x
p6eval rakudo 6f9116: OUTPUT«Method 'x' not found for invocant of class ''␤ in main program body at line 22:/tmp/YmVHK0aeiW␤»
10:38 coldhead left
bbkr "early bird gets the bug" - my modified saying :) 10:44
tadzik gets a cold :)
dalek p: 6f1b093 | moritz++ | src/cheats/hll-grammar.pir:
can rip out even more of cheats/hll-grammar.pir
10:45
10:51 agentzh left 10:54 timbunce joined, timbunce left
moritz_ sorear: (reading backlog) 'my $x' is the same as 'my Mu $x = Any' 10:57
so it can store junctions, but defaults to Any
11:19 masak joined
masak good noon, zebras. 11:19
jnthn o/ masak
tadzik o/
11:21 jedai_ joined 11:23 jedai left, dakkar left, dakkar joined 11:24 phauly left
dalek p/match-nom: f10b936 | moritz++ | src/ (2 files):
vtable delete overrides
11:27
p/match-nom: a22edc2 | moritz++ | t/nqp/52-vtable.t:
more vtable tests
moritz_ jnthn: the delete vtables are even tested (by cherry-picking to master), but my error remains unchanged :/ 11:28
lunch & 11:29
11:30 volpe left 11:35 benabik left 11:38 shi left 11:43 io joined, shi joined, io left 11:45 bluescreen joined 11:46 qiyong left
masak bbkr: merged your ticket from this morning into a very similar one by quietfanatic. 11:49
11:50 lateau left
bbkr masak: thanks 11:50
bacek ~~ 12:03
masak, how is spectest on gen_gc2?
masak bacek: it was fine. nothing stood out as collateral from the GC switch. 12:05
bacek masak, excellent. I'm going to merge it back to master on Sunday.
masak, any additional testing is welcome :) 12:06
masak nod.
I'll do the --optimize thing later today.
bacek masak, ok, thanks. 12:07
12:09 leprevost joined 12:12 cjk101011 joined 12:14 Gothmog_ joined 12:15 cjk101013 joined 12:17 bluescreen left, cjk101010 left, cjk101012 left 12:26 bluescreen joined 12:38 masak left
dalek p/ctmo: b40895c | jonathan++ | src/metamodel/reprs/P6opaque.c:
Fix freeing of memory associated with type objects that happen to get GC'd.
12:40
p/ctmo: e6663bb | jonathan++ | src/NQP/Grammar.pm:
Construct meta-object at compile time.
p/ctmo: 2da9123 | jonathan++ | / (3 files):
Stub in serialization context builder, with some explanation of what it's aimed at doing.
p/ctmo: 0a16798 | jonathan++ | src/HLL/SerializationContextBuilder.pm:
Stub in various initial methods that I expect to have in the serialization context builder.
12:52 molaf joined 12:53 donri joined
takadonet morning all 12:56
tadzik morning
13:04 leprevost left, leprevost joined 13:05 molaf left, ab5tract joined
dalek kudo: 5f03ce1 | moritz++ | t/spectest.data:
regress on protoregex.t
13:13
13:16 shi left 13:19 benabik joined, thepler left 13:20 MayDaniel joined
donri @users».greet 13:20
phenny donri: 02:09Z <sorear> tell donri Sprixel is a parser generator. "Is YACC supposed to be fully C99 or not?"
donri: 02:10Z <sorear> tell donri I think the question you meant to ask is "is perlesque supposed to be Perl 6 or not?". And the answer is no; that's what -esque means.
13:26 thepler joined 13:28 MayDaniel left 13:29 masak joined 13:33 mtk left 13:34 am0c left
donri Is there anything like coroutines in Perl 6, or can gather/take be used for that? 13:36
moritz_ gather/take
take is a bit like yield, except that it's dynamically scoped 13:37
donri yield, does perl have that or are you comparing to Python?
moritz_ the latter
sorry for being not so clear 13:38
donri You can send values to a generator in Python, does gather/take allow that?
moritz_ sorry, my python fu isn't that good, I don't know what that means
donri Given generator G, G.next() gets the next yielded value. G.send(V) is the same but makes the next yield return V 13:39
moritz_ gather/take just returns a lazy list 13:40
which you can index or iterate just like an array
tadzik is there 'self' in nqp? 13:41
moritz_ yes
donri www.python.org/dev/peps/pep-0342/
tadzik but in class, not in a module?
moritz_ nqp: class A { method Str() :parrot_vtable('get_string') { 'foo' }; method f() { say(self) } }; A.new.f
13:41 jadar6 joined
p6eval nqp: OUTPUT«Routine declaration requires a signature at line 1, near "() :parrot"␤current instr.: 'parrot;HLL;Grammar;panic' pc 17541 (gen/hllgrammar-grammar.pir:4828)␤» 13:42
tadzik oh, nvm, I think I got it. I'm trying to bring Close back to life, and it has some strange practices here and there
13:42 jadar6 left
moritz_ donri: ah, now I understand. Nope, Perl 6 doesn't have that. 13:43
tadzik nopaste.snit.ch/32960 -- do you mind taking a look moritz_? 13:44
looks like _ONLOAD tries to make this module a Class, and then it uses self, but the compiler says self is not predeclared
moritz_ compiles nqp 13:45
tadzik: uhm, nqp or nqp-rx? 13:46
tadzik moritz_: nqp-rx I think. It's compiled with parrot-nqp
donri moritz_: because it doesn't make sense in perl6 or because no one thought of it? :) 13:47
coroutines are a nice way to do async I/O anyway, however it's done 13:48
moritz_ tadzik: I get an Null PMC Access in invok() - which probably means that some thing you try to call doesn't exist 13:49
masak tadzik++ # bringing Close back to life!
tadzik moritz_: oh well, I'm compiling this whole source, not just this one file. It's like 12k lines of nqp code
moritz_: I can push it somewhere if you want to try it 13:51
moritz_ tadzik: currently I'm busy with other stuff (soon handing out self-made cake :-)
tadzik though I should probably rape it with git-svn before
oh, carry on then, never mind :)
moritz_ :-)
donri: the .send doesn't fit well into our coroutine/lazy list model. Not sure if we could make it work in some other way though
donri moritz_: I'd just like to see proper coroutines *or* some valid alternative, don't care *how* really 13:53
moritz_ donri: well, gather/take are just like coroutines, really 13:54
donri (Whatever makes sense in Perl 6 for the problem domain.)
moritz_: yea but they're not duplex
moritz_ a lazy .map is "duplex"
tadzik masak: well, I'd love to :) Writing my arkanoid I was always missing some "C with classes", I thought "is there even anything like this? Oh wait, where have I seen this..."
masak builds gen_gc2 optimized for bacek 13:55
tadzik My mind eventually found Vala, but it made me think about resurrecting Close
donri moritz_: no, can't affect how the list acts
masak tadzik: I share whiteknight's vision about Close being an appropriate part of Parrot's tooling, a sort of supplement for PIR. 13:56
tadzik masak: the vision makes me happy, shame there's no one working on it :/ 13:57
masak tadzik: there's a personel deficiency everywhere, and we're the personel. 13:58
tadzik yeah
13:59 thepler left 14:01 thepler joined
jnthn moritz_: is parrot_vtable, not :parrot_vtable 14:03
14:05 plainhao joined 14:08 fhelmberger joined 14:11 molaf joined
masak nqp: class A { method Str() is parrot_vtable('get_string') { 'foo' }; method f() { say(self) } }; A.new.f 14:11
p6eval nqp: OUTPUT«foo␤»
masak \o/
donri moritz_: async example github.com/saucelabs/monocle/blob/..._server.py 14:16
moritz_: don't see how you could do the "their_message" with gather/take 14:17
Maybe there's another way to do blocking-like async in Perl 6 14:20
masak donri: there's been talk of an 'event handler' in Perl 6.
donri How'd that work?
masak it's still very sludgy/unspec'd, but it's in the works.
donri I mean what's the basic idea 14:21
masak donri: by my understanding, it'd be a default implementation of one of the event frameworks on CPAN.
it might tie into the async thing as well. that's why I mention it.
donri A lib or a syntax, I wonder?
masak a core-ish lib. 14:22
I doubt syntax will be needed.
donri Or well, not syntax necessarily, but some kind of built in support like Python's .send() for generators
Which without it couldn't be done as nicely
masak basically, what we need at this point are people who care enough to pen a proposal for how it could work. 14:23
donri But Perl 6 is much more expressive so I wouldn't be surprised if it could do it nicely anyway, somehow
14:24 stifynsemons left
donri The point sorta is to not need to pass around callbacks and you stay in scope 14:25
but without blocking
masak sounds like coroutines to me. 14:26
any Perl 6 implementation that does gather/take fully will have to have support in some way for a thing I've named a 'co'. 14:27
a 'co' is something like a greenthread.
PerlJam good * #perl6!
masak PerlJam: \o
donri masak: but gather/take don't seem to allow you to pass back values to the 'coroutine' 14:28
PerlJam donri: think of take like yield and it does :)
masak when you use a gather/take, you get another co inside the gather/take. control flow alternates between the co outside the gather/take and the one inside.
donri: in the very worst case, you can "pass values" through lexical variables.
donri PerlJam: how? 14:29
PerlJam donri: don't mind me just now I'm insufficiently caffienated.
donri PerlJam: I do see take as similar to yield but to my knowledge you can't have a take return something
masak eh?
that's what 'take' does!
donri masak: to the outside yes 14:30
masak getting things *out* of the gather is no problem!
that's what it's designed for :)
donri exactly
masak for the other direction, what I said about lexicals.
donri hows that work?
masak whips up an example
donri sounds like frame hacking in python
PerlJam masak: What's needed is someone with sufficient experience *and* interest to pen a proposal that has a chance in hell of working rather than something that kinda-sorta works. We've got tons of kinda-sorta solutions and that's part of the problem. 14:31
IMHO of course
masak rakudo: my $g = "OH"; sub foo { gather { my $i = 0; loop { say $g; take $i++ } } }; my @f := foo; say @f[0]; $g = "HAI"; say @f[1] 14:32
p6eval rakudo 6f9116: OUTPUT«OH␤0␤HAI␤1␤»
masak donri: there you go. value passed into the gather.
PerlJam: I agree.
PerlJam: but experience isn't everything. I'm not an expert at DateTime, but I got things moving in the right direction a year or so ago. other people chipped in and did large parts of the work. 14:33
starting with something sane and simple is the important part if you ask me. 14:34
donri masak: looks like rw arguments, we have returns for a reason ;)
PerlJam masak: perhaps I'm letting history bias me too much, but that's never worked with the threads/async IO/coroutines/etc. problem space
14:34 woosley1 left
masak donri: it's not an argument, it's just an outer lexical. 14:34
donri yes, but it's similar in effect
[Coke] masak: I came here for an argument. 14:35
masak donri: well, you asked for a way to do that.
PerlJam [Coke]: woot!
masak [Coke]: no, you didn't. :)
donri it's often cleaner to return values than mutate outer variables (passed or not)
masak: sure
thanks for that
masak donri: I agree that it's not a "nice" solution.
14:37 neroxx left
donri does 'gather' do anything or is it just there for clarity? 14:38
and does 'take' without gather do anything?
masak 'take' without 'gather' is disallowed.
rakudo: say "before"; gather { say "LOL I'M NOT RUN" }; say "after"
p6eval rakudo 6f9116: OUTPUT«before␤after␤» 14:39
donri rakudo: say "before"; { say "LOL I'M NOT RUN" }; say "after"
p6eval rakudo 6f9116: OUTPUT«before␤LOL I'M NOT RUN␤after␤»
masak a 'gather' without anything to pull values out from it doesn't run at all.
donri rakudo: say "before"; &{ say "LOL I'M NOT RUN" }; say "after"
p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 22, near "&{ say \"LO"␤»
masak thus, 'gather' is basically our laziness construct. :)
arnsholt But remember that the take has to be in the -dynamic- scope of a gather, not the lexical scope =)
donri masak: but is it needed for technical reasons or for humans? 14:40
arnsholt (So you can have what is a take without gather textually, but gets a gather when it's called
)
masak donri: I thought the above example answered that.
donri Python treats any function that uses 'yield' as a generator
which never seemed very "Pythonic" to me, it's "implicit"
masak donri: what arnsholt said. 14:41
donri: in a sense, gather and take are possible to unplug from each other.
that's useful in tree traversals, for example.
donri so it's sorta like iter() in python
arnsholt I think the closest relative of gather/take in Python is yield 14:42
donri 'take' is like 'yield', 'gather' seems to be like iter() or the calling of a generator function
arnsholt I suppose. But you can't really talk about the two entirely in isolation 14:44
I think one important think to note is that take is not like yield in that it can be deeper in the call stack than as an immediate callee of the gather block 14:45
donri rakudo: my $list = { take 2 }; say gather $list 14:46
p6eval rakudo 6f9116: OUTPUT«␤»
donri how to do that rightly
masak bacek, bacek_at_work: --optimize works fine, surprisingly enough.
arnsholt rakudo: sub doit($x) { take $x if rand > 0.5 }; my @x := gather { doit($_) for ^10 }; @x.map: { .say } # *crosses fingers* 14:47
p6eval rakudo 6f9116: ( no output )
arnsholt rakudo: sub doit($x) { take $x if rand > 0.5 }; my @x = gather { doit($_) for ^10 }; @x.perl.say; 14:48
p6eval rakudo 6f9116: OUTPUT«[1, 2, 4, 6, 8, 9]␤»
arnsholt There
rakudo: sub doit($x) { take $x if rand > 0.5 }; my @x = gather { doit($_) for ^10 }; @x.perl.say;
p6eval rakudo 6f9116: OUTPUT«[1, 2, 3, 9]␤»
arnsholt The take is in the dynamic (call-stack), not lexical, scope of the gather
donri: Not entirely sure what your snippet is supposed to do 14:49
PerlJam python's yield is just like a return isn't it? And it's tied to the sub in which is lexically appears, right?
masak right.
donri It's not much like return at all because it can be sent values 14:50
PerlJam with gather/take you set the "return context" with gather and can take from anywhere in the dynamic scope below that.
gather is what decouples "yield" from subroutines
if you get my meaning
masak in terms of exceptions, the gather block is an exception filter that catches 'take' exceptions. 14:51
arnsholt donri: Is the distinction between dynamic and lexical scope clear to you? If it isn't I imagine this can be a bit abstract =)
masak will write a series of blog posts at some point, just about different scopes :) 14:52
donri rakudo: my &list = { take 1; take 2 }; say (gather list) Z (gather list) 14:53
p6eval rakudo 6f9116: OUTPUT«1122␤»
donri There we go.
PerlJam looks at python.org for the first time in ages
donri arnsholt: I think it is yes, but that wasn't what I was wondering about most recently
masak rakudo: sub l { take 1, 2 }; say (gather l) Z (gather l) 14:54
p6eval rakudo 6f9116: OUTPUT«1122␤»
donri 'gather' turns a block into a lazy list?
masak donri: no, 'gather' collects values from 'take' and returns them lazily. 14:55
slight difference.
donri but kinda what i meant ;)
masak ok :)
donri my confusion is why gather is needed (not that i mind it, clearer intent in code)
PerlJam donri: if we didn't have gather, where would the takes send their data? 14:56
arnsholt The gather is needed because the take doesn't have to be in the immediate textual vicinity of the gather
donri PerlJam: seems that a block that has takes is pointless without gather, so it could simply imply a gather
arnsholt Heck, it can be in a different module that I downloaded from CPAN
PerlJam donri: the question becomes then "which block?" 14:57
donri but how is that different from calling the block?
arnsholt This is exactly where take is different from yield
wolverian huh, take is dynamically scoped to gather?
arnsholt yield in Python returns the value from the function the yield is in
jnthn gather indicates a "data collection point". The think that gather returns is a lazy list. Each take finds its nearest dynamic gather and associates the data with it, adding an item to that lazy list.
arnsholt Take returns from the first gather block up the call chain
jnthn s/think/thing
wolverian ah, thanks, it is dynamic then. interesting. 14:58
arnsholt Think of it as try { /* gather block */ } catch(TakeException e) { return e.value(); }
And take as throw GatherException(value)
(modulo fudge factor and resuming the gather block and such)
jnthn rakudo: sub foo() { 1 }; sub bar() { 2 }; my @a = gather { for 1..5 { take foo; take bar; } }; say @a[2..5]
p6eval rakudo 6f9116: OUTPUT«1212␤» 14:59
jnthn rakudo: sub foo() { 1 }; sub bar() { 2 }; my @a = gather { for 1..5 { say "taking"; take foo; take bar; } }; say @a[2..5]
p6eval rakudo 6f9116: OUTPUT«taking␤taking␤taking␤taking␤taking␤1212␤»
arnsholt wolverian: Yeah. It's part of what makes gather/take awesome
wolverian indeed.
masak I was on the channel when the decision was made :) 15:00
donri arnsholt: but why not imply gather where a taking-block is called? (not saying it's a good idea but trying to understand if gather is there for technical reasons or not)
masak au was asking TimToady whether gather was dynamic. TimToady said he thought it might well be.
moritz_ strangelyconsistent.org/p6cc2010/p1-moritz/ has a real-world usage of dynamic gather
search for sub find-path
PerlJam donri: because the take might not be for its immediately enclosing block 15:01
rakudo: sub foo { take 5 }; say gather { foo; }
p6eval rakudo 6f9116: OUTPUT«5␤»
donri I think I maybe get it
PerlJam rakudo: sub foo { take 5 }; say gather { foo; take 7; foo } # maybe a little more illustrative 15:02
masak rakudo: sub foo { take 5 }; say gather foo
p6eval rakudo 6f9116: OUTPUT«575␤»
rakudo 6f9116: OUTPUT«5␤»
jnthn Aye. Notice here that foo is outside the static scope of the gather, but inside the dynamic scope. 15:03
donri Because takes propagate to the nearest gather, and you want that to work lazily and with nested takes
15:03 alester joined
arnsholt donri: You can't infer where the gather should be placed, because it could be anywhere upstream in the call-stack from the take 15:03
donri Yea, PerlJam's example
rakudo: sub foo { take 5 }; say gather { take gather foo; take 7; take gather foo } 15:04
p6eval rakudo 6f9116: OUTPUT«575␤»
donri would be like that without gather, and that's not completely lazy I imagine? 15:05
masak I think it's still as lazy. 15:06
15:06 daxim left
donri Python has that problem and that might be what they're trying to solve with 'yield from', not sure 15:06
PerlJam donri: if you didn't have gather, you'd need takes all the way up the dynamic call chain to the block where you actually wanted the data.
donri: this would suck. :) 15:07
donri so it's not required to "make it work" but, while adding an extra needed keyword, is actually less boiler in certain situations
PerlJam required to "make it work well" ;) 15:09
otherwise, you'd have to manually diddle around the dynamic scopes yourself. That's a recipe for disaster if ever I heard one.
arnsholt Required to make it more than yield in Python
donri 'well' technically or 'well' as in sanely for programmers?
masak both :) 15:10
PerlJam reads PEP 380 15:11
donri: aye, it does look like "yield from" is their answer to gather/take 15:12
although it looks broken 15:13
As I read it, they're going with "takes all the way up the call chain" approach
only it's called "yield" at the bottom and "yield from" along the path 15:14
masak :(
wolverian that makes no sense 15:15
15:16 wtw left
PerlJam Well, that's only for laziness. If you didn't need it to be completely lazy, then I guess you wouldn't need to do that. 15:17
arnsholt Also, yield from makes you specify the container of the coro in the wrong place IMO
15:17 molaf left
arnsholt Marking which is the coro on the inside is kinda strange (and a bit action at a distance-y) 15:17
15:18 qiyong joined 15:19 am0c joined, stifynsemons joined
arnsholt remembers that he agreed to make the Rakudo release thingy 15:19
The release guide has no suggested PM groups. Any suggestions from the audience? 15:20
PerlJam arnsholt: no, but someone should start an auction at YAPC for naming the next Rakudo release, just so we can get a pool of names :) 15:21
arnsholt I believe the reply is well-volunteered? ;) 15:22
PerlJam I won't be at YAPC this year :(
I think we've come close to exhausting all of the PM groups that have done something relating to Perl 6. 15:23
sorear good * #perl6 15:24
arnsholt 'lo
moritz_ arnsholt: just take the name of any .pm group that you like (or where you like the name :-)
15:24 mtk joined
moritz_ it's actually the hardest part of the release process, if you ask me 15:25
PerlJam indeed
arnsholt So I've heard
moritz_ arnsholt: I've just pushed a release announcement... it just needs reviewing and a release name :-) 15:26
feel free to add more stuff
masak arnsholt: so... how's the release name coming along? any ideas? :P
15:26 plobsing left
PerlJam arnsholt: go with ZA.pm or Kampala.pm They've got to be lonely being the only 2 PM groups in such a huge continent. 15:26
dalek kudo: 71a3b30 | moritz++ | docs/announce/2011.02:
draft for 2011.02 release announcement
arnsholt PerlJam: I'll let you keep those for your next releases =) 15:27
15:27 bluescreen left
PerlJam I'm seriously considering checking in a program that randomly chooses the name 15:27
moritz_ we haven't had London.pm yet, and they are supposedly the biggest PM groups in Europe, maybe even world wide 15:28
masak maybe some of out Japanese friends, the ones that hang out mostly on Twitter, belong to a PM group.
jnthn moritz: I think there's a bigger one in Japan. 15:29
PerlJam wonders if there are any fanatic-for-perl-5 Perl Mongers that would take offense to us using their name.
15:29 stifyn joined
moritz_ maybe later this year after the QA hackathon :-) 15:29
masak PerlJam: we should pick a PM group that hates Perl 6, and write something really nice about them ;)
jnthn lol
PerlJam masak: hugs all around!
masak PerlJam: "you guys are great! stop by for a beer anytime!" 15:30
15:30 stifynsemons left
donri 'for' is syntax and not a sub right 15:31
pondering why no comma is needed before the closure
PerlJam suddenly realizes that no Texas PM groups have yet been chosen
moritz_ right
masak donri: correct. and that's why.
moritz_ donri: map() is the equivalent sub
masak donri: 'for' could be implemented as a macro wrapping around 'map'. 15:32
15:32 ab5tract left
moritz_ in fact, it is implemented that way 15:32
arnsholt Oh, great. Time::y2038 won't build
donri how does that work with 'return'
15:32 ab5tract joined
moritz_ just as a hard-coded macro 15:32
donri: return is always bound to routines
donri closures can't return?
masak correct. 15:33
donri what's the meaning of map then
moritz_ closures can leave()
masak closures don't have thick enough cell walls :)
15:33 mfollett joined
moritz_ donri: I don't see how the meaning of map is tied to return in any way 15:33
masak rakudo: sub foo { say "1"; { say "I'm a closure"; return }; say "2" }; foo
p6eval rakudo 6f9116: OUTPUT«1␤I'm a closure␤»
flussence
.oO( oh, so that's where break; comes from... )
moritz_ in fact subs can be closures too 15:34
masak right.
PerlJam I'd says "subs are closures"
tadzik arnsholt: I had problems with that too
PerlJam s/says/say/
tadzik I asked the author, who said “oh well, there are no missing seconds, go aheah” or something like that 15:35
donri rakudo: (1,2,3).map: { $^a + 2; return 3; }
p6eval rakudo 6f9116: ( no output )
tadzik oh, I haven't contributed this month :(
donri rakudo: say (1,2,3).map: { $^a + 2; return 3; }
argh
p6eval rakudo 6f9116: ( no output )
moritz_ rakudo: say (1,2,3).map: { $^a + 2 } 15:36
p6eval rakudo 6f9116: OUTPUT«345␤»
moritz_ the last statement in a block is automatically returned
masak donri: 'return' doesn't act on &map
moritz_ right, on on routines.
masak moritz_: automatically .leave'd
donri moritz_: but what if you need it to not be last? break/succeed, or this leave() thing? 15:37
moritz_ donri: leave, yes. Or you can also pass a sub to map
rakudo: <a b c>.map: sub ($x) { return $x.uc }
p6eval rakudo 6f9116: ( no output ) 15:38
moritz_ rakudo: say <a b c>.map: sub ($x) { return $x.uc }
p6eval rakudo 6f9116: OUTPUT«ABC␤»
PerlJam donri: were you the one who had no interest in Perl 5? Maybe if you'd done more perl 5, your mind would be ready for the warping that Perl 6 does :)
donri if you need to know perl 5 to get perl 6 that's a failure ;)
arnsholt tadzik: I did it manually instead
PerlJam donri: you don't *need* it, but it sure helps when Perl 5 is the only other language with all of these concepts in one place. 15:39
15:39 bluescreen joined, cognominal left
donri i don't have any problems understanding though 15:39
arnsholt ftp://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat says that there will be no leap second at the end of juny -11, and it was released on the second, so it's safe to proceed without running the update script =)
moritz_ PerlJam: perl 5 misses a lot of concepts that Perl 6 has
donri rakudo: say <a b c>.map: { $^a.uc.leave; 5 } 15:40
p6eval rakudo 6f9116: ( no output )
donri rakudo: say <a b c>.map: { leave $^a.uc; 5 }
masak donri: keep investigating. the discussions so far today have been enjoyable.
p6eval rakudo 6f9116: ( no output )
donri hows leave work
PerlJam moritz_: it does. But familiarity with Perl 5 prepares your brain for Perl 6 I think (especially given that we don't have enough clear explanations of everything)
masak donri: I think it should work like that. 15:41
moritz_ donri: like your second example
masak donri: not sure it's implemented yet.
donri aha
moritz_ arnsholt: I just ran the update script here, it didn't change anything
PerlJam anyhow, I guess someone should tell me "well volunteered!" again on making more clear explanations for Perl 6. :) 15:42
arnsholt Excellent. Cheers!
donri I did perl 5 years ago when I sucked relatively at programming anyway
I gain more from my current Python knowledge than my earlier Perl 5 experience
15:42 MayDaniel joined
tadzik oh, HPatMoR 15:43
moritz_ tadzik: are you reading it?
tadzik moritz_: not yet, but the word 'relativity' somehow reminded me of what I planned to do during winter holidays :) 15:44
but I think I'll go for a dogwalk first
donri ...perl 5, years ago... 15:45
PerlJam donri: except that, IMHO, python tries to put everything into nice neat little boxes even when the universe isn't nice or neat. Perl recognizes the universe is messy and lets it be that way while also allowing you to impose some order where you can. I think this is the main philosophical difference between perl and python.
15:45 plobsing joined
donri PerlJam: that is not really relevant though 15:45
Programming is programming
15:46 slavik1 joined
sorear the most relevant difference between Python and Perl is probably the age gap 15:46
PerlJam sorear: age gap?
python is only like 5 years younger than perl.
sorear 5 years is long enough to consitute a generation with software 15:47
moritz_ there's not only the language, but also the programmers
arnsholt donri: Except the underlying design philosophy of the language dictates in part what kind of solutions are available to you as a programmer
masak donri: in a very vague sense it's "not relevant", because you can always work around things. but I'm not programming in a vague sense, I'm programming with the tools my language provides me with. :) 15:48
sorear some features are more relevant than others
donri Python and Perl are sufficiently similar that the differences are not that difficult to grasp for an experienced programmer
sorear I think built-in GC has a bigger effect on my programming style than ... pretty much every other difference between Perl and x86 asm put together 15:49
PerlJam donri: for 95% of the language, sure. It's that other 5% that's interesting though :)
moritz_ donri: the same could be said for most scripting languages
donri moritz_: Yes, which is my point
PerlJam donri: though, in the past I've said that Python, Perl, PHP, and Ruby all occupy the same "idea space" for the most part. 15:50
donri Niche, yea
arnsholt But it's those last 5% that make the difference between "PHP? I don't wannaaaaaa!" and "Yay, Perl!" =)
donri :D 15:51
PerlJam Yet it's been slow going getting closures in 3 of those 4 languages.
15:51 risou joined
donri Python has closures, aren't Ruby blocks closures? 15:51
PerlJam donri: I didn't say they don't have them *now* ... just that it's taken a while. 15:52
donri Really?
sorear bye. 15:53
takadonet sorear: cya
15:53 mfollett left, mfollett joined
PerlJam actually ... if you count the how old the language was when it got closures, I think ruby wins 15:56
pmichaud_ good morning, #perl6
colomon \o
masak morning, pm.
moritz_ good morning pmichaud_
15:56 pmichaud_ is now known as pmichaud
PerlJam pm: greetings 15:56
arnsholt I wonder it make -j 8 spectest will work as I want it to ^^
moritz_ arnsholt: TEST_JOBS=8
pmichaud if you want it to make your spectests run eight times sloewr, then yes. :-)
phenny pmichaud: 12 Feb 15:29Z <jnthn> tell pmichaud when you get chance, please take a look over github.com/rakudo/rakudo/blob/nom/...P.markdown - it's my work plan for the nom branch. kplzthx
pmichaud: 13 Feb 00:57Z <jnthn> tell pmichaud in theory nom has just one test file regression over nqp-rx now. Need to discuss packages a bit with you before I know that one will be fixed. :)
pmichaud: 13 Feb 00:57Z <jnthn> tell pmichaud oops, s/nom/nqp/ :)
flussence PHP's closures are pretty awful too. There's no lexical scope, so you have to declare in the signature which variables from outside they pull in
arnsholt moritz_: Durr. Of course 15:57
15:57 dual joined
moritz_ git rm README; git commit -a 'nobody read it anyway :-)' 15:57
arnsholt =D 15:58
jnthn pmichaud: hi! :)
flussence (wow, all this time I could've made make test 3-4x faster by not doing it wrong? ouch)
jnthn pmichaud: Hope you had a nice break :)
pmichaud it was an excellent break, yes. 15:59
parks were quite empty
jnthn nice :)
colomon It's much nicer when you don't have to stand in line. :)\ 16:00
mux just like sex 16:01
masak er.
jnthn I...don't stand in line for that... 16:02
PerlJam sit?
mux it was a joke, get over it :-)
masak mux: did you just walk in here from #perl or something? :P
PerlJam or perhaps lay? ;)
mux masak: nah, just couldn't resist when I saw those words
it reminded me of the old quote from linus "software is like sex, ..."
masak "...it's great when you don't have to stand in line for it" ? :P 16:03
PerlJam mux: sure sure ... you weren't speaking from experience or anything ... we believe you
pmichaud well, the downside is that tuesday morning we arrived at the park nice and early, but all of the major rides were down for 3+ hours due to a park compressor failure :-|
jnthn Aww. :/
mux PerlJam: I, er, I...
pmichaud so we hit lots of minor ones intead
*instead
mux masak: what can I say? I have a dirty mind.
16:03 zostay joined
masak mux: well, I can relate to that... :) 16:04
colomon park compressor failure? there's just one for all the major rides? ....
pmichaud colomon: apparently
flussence I was thinking the same. Who designs these things?
pmichaud colomon: that wouldn't surprise me, at any rate. Probably far more economical that way. 16:05
I guess it surprised me a little at the time, but after thinking about it I could see why WDW would have just one 16:06
flussence reminds me of the buses here... they tried to make more money by packing more into the timetable, the result was that most of the buses broke down on any given day and they had to buy several new ones
16:06 pigdude joined
PerlJam one compressor with 100% duty cycle and lots of tubes from the compressor to the rides. Sounds reasonable 16:06
pmichaud oh, I'm sure that any amount that WDW "lost" that day is more than made up by the equipment+maintenance savings 16:07
gfldex compressors are fairly noisy
pmichaud if the rides had been down all day, that would've been really bad. As it was, they simply kept the park open an hour later
16:08 colomon left
pmichaud and since it was a fairly slow day crowd-wise, not that many people affected. (Crowd level estimates were 1.7 out of 10, where 10 is OMGTHERESTOOMANYPEOPLEHERE) 16:08
16:15 cjk101011 left 16:18 justatheory joined
jnthn pmichaud: Need to talk to you about package stuff, install stuff and setting stuff when you have time. :) 16:21
Doesn't have to be now, or even today. 16:22
pmichaud needs to be after tomorrow 16:23
jnthn OK
pmichaud weekend looks good, as does early next week
jnthn OK. Saturday - or at least, the bit of it by when you're awake - is not so good for me, other than that sounds like we can find a time. 16:24
pmichaud it will give me a couple of days to catch up with latest events, too
and review some code :)
jnthn oh noes ;) 16:27
pmichaud: I didn't get a huge amount done while you were away anyway.
pmichaud np 16:28
jnthn Well, did quite a bit of thinking. :) 16:29
tadzik mux: thanks for taking the "inappropriate joke" bagde from me :) 16:32
mux tadzik: at your service! :) 16:33
masak just like sex.
:P
mux passes the badge on to masak 16:34
masak dang. :P
tadzik (:
16:36 stifyn left
PerlJam you guys are trying to give new meaning to "hot potato" it seems ;) 16:37
mux alright guys, it's time for me to escape from work and stop bothering you with my dirty jokes >:) have fun 16:38
masak mux: \o
tadzik good job :)
jnthn have a wonderful evening o/
16:39 stifynsemons joined
masak an evening entirely without standing in line... 16:39
16:39 TiMBuS left 16:40 TiMBuS joined 16:41 qiyong left
donri Programming jobs are much like prostitution. The client has only perverted desires and you have nothing to say about it. 16:41
16:43 getgrnam joined
masak I'm sure there's one or two differences, though. 16:43
tadzik is the whole .pir in Rakudo going to be eventually replaced by .nqp? 16:44
jnthn tadzik: Or Perl 6.
Most of what's in builtins now will be in core
masak tadzik: the .pir parts would at least have to be contained in the Parrot-specific section.
jnthn The meta-model bits will all be in NQP. 16:45
tadzik mhm.
16:46 envi left, envi joined 16:47 perimosocordiae joined
arnsholt Would anyone mind terribly if I made tools/contributors.pl run 5.8 compatible? 16:48
16:49 jasonmay left, Trashlord left
masak arnsholt: as opposed to...? 16:51
16:51 Trashlord joined
masak ...requiring a version higher than 5.8? 16:51
I'm sure nobody would mind that, at least if the change involved isn't major, which I doubt it would be. 16:53
arnsholt It currently requires perl 5.10, but the computer I'm on only has Perl 5.8
This is inconvenient =)#
Mostly a few added lines because 5.8 doesn't have // 16:54
PerlJam arnsholt: clearly you should upgrade the computer to have something better than 5.8
isn't 5.8 about to drop off the radar of supported releases soon anyway?
arnsholt PerlJam: Tell that to the university of Oslo IT department, who run the computer I'm on =)
masak send the IT department a list of added features and bug fixes since 5.8 :P 16:55
PerlJam arnsholt: CentOS?
arnsholt RHEL. 5 IIRC 16:56
16:56 ab5tract left
arnsholt Anyways, the question is mostly if I should commit the changes I've made, or not = 16:57
=)
donri You perlians have this issue too eh
PerlJam arnsholt: go for it.
donri I hate it when a system only has Python 2.5
PerlJam donri: it's mostly only with distributions that have a glacial release cycle :) 16:58
arnsholt Yeah. The problem is also a lot smaller than with Python, from what I gather
16:58 colomon joined
PerlJam donri: so ... do you use python 2.7 or 3 ? 16:59
donri 2.6 but usually test on 2.5-3.1
PerlJam how many release candidates do the python people go through before they cut a release? 17:00
never mind, I found it 17:01
looks like 3.2 will be here in a couple of days
17:01 fith left
donri python.org/dev/peps/pep-0392/ 17:02
colomon ... or with people whose machines are well behind the time. I've been waiting for the right time to install 10.6 on my MacBook Pro for over a year now.
17:03 MayDaniel left, Psyche^ joined, Psyche^ is now known as Patterner
[Coke] yes, feel free to update internal tools to be 5.8 compatible. 17:07
17:08 Rotwang joined 17:10 kaydsoft left, Vlavv left 17:12 awoodland left, mtk left 17:16 Lorn joined 17:17 mtk joined
arnsholt I think there's an intermittent failure in t/spec/S02-builtin_data_types/instants-and-durations.t 17:18
donri What does .so stand for
colomon arnsholt: I believe someone else concluded that a few days ago, yes.
arnsholt donri: Cast to Bool 17:19
donri I know what it does but what does it mean
arnsholt Or, if you prefer, it's the opposite of not =)
PerlJam donri: "you are *so* busted"
donri Yea, noticed
PerlJam donri: for example
donri so it's just the word 'so'?
arnsholt Noone's really happy with the name, but noone managed to find a better one either 17:20
donri as in 'as such'
PerlJam yea, verily
moritz_ colomon, arnsholt yes, intermittent failure in the last test confirmed
donri Well, .Bool does the same no?
masak donri: .so is the opposite of .not
donri: it used to be called .true, which is a crappy name. 17:21
donri .affirmative ;)
arnsholt moritz_: Excellent. Then the stresstest is going fine so far
donri .positive and .negative could work 17:22
17:22 Vlavv joined
donri but i'm fine with .so and .not 17:23
"Is it so? No it's not!"
colomon You can also use prefix:<?>
donri cool
why not postfix
colomon (for .so, prefix:<!> for .not)
donri and prefix:<!!> for .so ;) 17:24
donri cheating
colomon Good question. If I had to guess, ? is prefix by analogy with !
where prefix:<!> is a long-standing tradition
donri One that makes little sense, a result of representing ≠ in ASCII as != 17:25
Haskell's /= is better, even
masak note also the nice "strange consistency" with ?? !!
donri hehe 17:26
masak and it rhymes well with prefix:<+> and prefix:<->
prefix:<?> is just a way to boolify things, just as prefix:<+> is a way to numify and prefix:<~> stringifies.
17:26 TimToady_it joined
masak that said, I think that people over-use it a bit. 17:26
donri "!" feels OK though because it looks scary and important and negation flips logic upside down 17:27
masak there are a number of examples in the p6cc solutions.
I don't think prefix:<?> should be used in contexts that are well-known to be boolean already, such as 'if' or '?? !!'
donri only anywhere you'd otherwise use "!!" 17:28
TimToady_it hi, I'm stuck behind a proxy again; can diakopter or sorear tell me the domain name of appflux so I can tell the SA here to allow ssh?
masak that is, I tend to write 'if @array' rather than 'if ?@array'
TimToady it! is "TimToady" a verb too now? :P
moritz_ TimToady_it: IP is 67.217.170.47 17:29
colomon masak: you keep saying that, but I'm just not feeling it yet.
masak: IMO a single extra character to clearly specify what you are trying to do is a win.
jnthn figured writing "if" was a good clue :)
TimToady_it I need the reverse lookup of 209.9.237.164
donri don't they always do the same in that context?
masak colomon: to me it's a case of "Perl has implicit casting -- use it to your advantage"
moritz_ I think it was host03.appflux.net
17:30 perimosocordiae left
jnthn In cases where the boolean context is less obvious, I can kinda see why one would do it though. 17:30
masak colomon: but I can see how different people take different views on it.
jnthn: yes, sure.
moritz_ TimToady_it: yes, host03.appflux.net is it
TimToady_it grazi!
TimToady_it is still madly backlogging... 17:31
masak TimToady_it: you can skip past the part yesterday where we did 'seen' with aloha... :P
donri I bet "if @array" can more easily be optimized than ?@array
17:32 jasonmay joined, fith joined
colomon I suppose part of it might be lingering notions from C++, where an empty array object is still probably true. 17:32
PerlJam donri: er, what?
Rotwang hi pplz 17:33
jnthn Well, the ? could be optimized away maybe :)
masak Rotwang: hi there!
donri PerlJam: well unless an optimizer specifically looks for the .so cases
I mean that it's an extra trip to the boolean value
arnsholt Y'know, pushing to the Rakudo repo is kinda scary =) 17:34
colomon if has to be implicitly calling .Bool / .so / prefix:<?> anyway...
PerlJam donri: it's in boolean context either way
jnthn arnsholt: I did it hundreds of times and I'm still alive! \o/
colomon arnsholt++
masak "I'm doing git and I'm still alive"
colomon I did it hundreds of times, and now I'm a wreck of a man! \o/
tadzik Rotwang: ahoy
moritz_ colomon: :-)
masak next lession: correlation/causation. 17:35
s/ion/on/
17:35 bluescreen left
colomon I don't need another lesion, thank you. 17:35
PerlJam heh
donri PerlJam: Casting to boolean can be done at a lower level, "?" and .so would probably need to run at a higher level?
17:35 jasonmay left, fith left
Rotwang no more segfaults after updating parrot to 3.1.0 \:D/ 17:35
dalek kudo: 18af942 | arnsholt++ | tools/contributors.pl:
[tools] Make contributors.pl compatible with Perl 5.8.
kudo: c25afe6 | arnsholt++ | / (3 files):
[release] Add announcement, updated release guide. Added own name and
kudo: f7015bd | arnsholt++ | VERSION:
[release] bump VERSION
TimToady_it goes to dinner and will finish reading (downloaded) backlog tonight offline; should have better connectivity tomorrow; next week will be dicey from Kenya though...
colomon TimToady_it: safe travels!
masak TimToady_it: we'll try to keep the backlog to a bare minimum... :P
jnthn TimToady_it: Bad connectivity? Ken ya believe it!
TimToady_it don't say anything interesting :P
jnthn ...I think I just pased that test. ;) 17:37
colomon TimToady_it: we'll do our best!
tadzik absolutely!
masak TimToady_it: when you get back, I'd like to have a long talk about PRE/POST :)
TimToady_it noms &
17:37 Axius joined, TimToady_it left 17:46 Axius left, donri left 17:47 Axius joined
moritz_ fwiw I have now built a script that imports the IRC logs into a KinoSearch full text index 17:48
Axius hello 17:50
moritz_ good localtime Axius
Axius How do I install a module from cpan?
moritz_ Axius: do you want to install a Perl 5 module?
17:50 cdarroch joined, cdarroch left, cdarroch joined
tadzik . o O ( there's a module for that! ) 17:50
moritz_ for perl 6, see modules.perl6.org 17:51
for perl 5, you're in the wrong channel
Axius moritz_: yes, for perl 5.
moritz_ Axius: try #perl or #perl-help or so (but hint: cpan ModuleName should work)
Axius moritz_: thanks for you hint. 17:54
PerlJam Axius: I'm curious ... did you join every channel with "perl" in its name ?
17:55 stifynsemons left 17:57 stifynsemons joined 18:02 noganex_ joined 18:05 noganex left 18:06 dakkar left, rhizo joined 18:12 ab5tract joined 18:22 MayDaniel joined
arnsholt There. I maded u a release 18:24
benabik but I eated it. 18:26
18:27 risou left
arnsholt When updating the Wikipedia entry, what should I do with the references to R* announcements? 18:29
benabik Eat them?
benabik needs lunch, will be quiet now.
18:34 MayDaniel left 18:36 perigrin joined 18:42 nymacro joined 18:46 Sargun left 18:47 Axius left 19:04 stifynsemons left 19:05 MayDaniel joined 19:12 Trashlord left 19:25 stifynsemons joined 19:30 kaydsoft joined 19:31 cognominal joined 19:39 estrabd is now known as estrabd_omnom 19:40 rhizo left
tadzik is there more chapters of HPatMoR? I see only one 19:43
oh, I got it 19:45
19:47 envi left 19:48 mberends joined
jnthn o/ mberends 19:50
19:51 Layla_91 joined
jnthn o/ Layla_91 :) 19:52
masak \o mberends
tadzik oh, hi Layla_91 19:53
Layla_91 jnthn, tadzik: hi :) today is my birthday B-) Where are my gifts? :P
tadzik oh, mberends: what talk did you submit to NLPW?
hugme: hug Layla_91
hugme hugs Layla_91 and blushes
jnthn Layla_91: Happy Birthday!
masak Layla_91: happy birthday!
jnthn hugs Layla_91
tadzik hugs Layla_91 too
masak oh well.
masak hugs Layla_91 too
Layla_91 yay! :D 19:54
tadzik back in my days, we called this "a sandwich!" and the hugged person cried for help :)
masak Layla_91: I bring you the Gift of Community. look, hundreds of people in the channel, all of them nice and friendly :)
tadzik: a couple of months back, a few friends of mine named it "hugging according to Dr Volkov" :P 19:55
tadzik Layla_91: Just after you left today, I thought about Zebras' guide to Perl 6, under masak's command :)
masak: who's Dr Volkow?
Layla_91 tadzik: nice idea :D the problem is that it is raining all day... can't go out.. and my car is broken and I do not know how to fix these things :S
masak tadzik: apparently the guy who invented the hugpile :P
jnthn Layla_91: Awww...that's cruel. 19:56
tadzik masak: oh, nice :)
jnthn gives Layla_91 an extra hug...she clearly needs it
Layla_91 tadzik, masak.. Zebras guide? gimme links =) I can read it tonight :D 19:57
tadzik Layla_91: we would have to write it tonight :)
masak Layla_91: I don't know exactly what tadzik is talking about, but it sounds kinda cool :P
tadzik masak: what do you think, a not-quite-sane Perl 6 book?
like Why's Guide to Ruby
19:57 fhelmberger left
tadzik (brb, I hope my KDE's alright 19:57
masak tadzik: I'm all for pushing the already wxisting book in that direction :P
Layla_91 masak, tadzik: put me in credits it is my idea :P
masak Layla_91: you drive a hard bargain, but ok :P 19:58
Layla_91 masak: it is my birthday you know :P
masak: getting older B-) 19:59
masak Layla_91: so, you're... 20 now?
Layla_91 jnthn: my car should be one of least cars to have problems (honda civic 2010) but it keeps having problems :(
tadzik (bah, it's not)
jnthn Layla_91: The only Honda thing my family ever owned was a lawnmower...I seem to remember it blew up. :/ 20:00
Layla_91 masak: my mom told me girls are never more than 25 so once I become 25 I will be 25 forever! :-|
moritz_ after 25 comes 25+ 20:01
tadzik or 25++?
jnthn rakudo: 25++
p6eval rakudo 6f9116: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 7461:CORE.setting␤»
jnthn \o/
Rotwang Layla_91: after 25 they turn into witches
Layla_91 tadzik: 25 is read only! you see! she was right! :P
jnthn :D
masak Rotwang: misogyny: not eradicated yet... :P
tadzik :P 20:02
colomon my dad has been having anniversaries for his 39th birthday for quite a few years now. last year he hit the 39th anniversary of it...
Layla_91 colomon: that can happen.. :P
Tene hahaha :)
colomon Layla_91: also, make sure you don't say 25 is the last birthday you'll ever have. that sounds bad. ;)
jnthn Yes, please have a 25++th one. :) 20:04
Layla_91 colomon: mmm.. my mom decided she is 35 last year.. so maybe at someday I will move from 25 to 35.. 35 year seems a lot of time.. maybe perl6 will be in every server by that day..
tadzik (:
jnthn used to think that might happen by the time *he* was 25... :)
masak rakudo: sub cadeau { "[a present for $^person]" }; &cadeau.wrap: { "{callsame} <-- it is wrapped and everything!" }; say cadeau "Layla_91"
p6eval rakudo 6f9116: OUTPUT«[a present for Layla_91] <-- it is wrapped and everything!␤»
Layla_91 masak: hihihi tnx =) 20:05
tadzik jnthn: aren't you? 20:06
PerlJam Layla_91: through judicious choosing of which base you use to represent your numbers, you can have whatever birthday number you want. :)
jnthn Layla_91: You could always find some chocolate. :)
tadzik: No, I ceased being 25 approximately 25 days ago. I'm now 25++. :)
masak rakudo: my $twenty-five = 25; $twenty-five++; say $twenty-five 20:07
p6eval rakudo 6f9116: OUTPUT«26␤»
20:07 ggoebel left
jnthn Cheat, you used variables. :P 20:07
masak age *is* variable... :P 20:08
sbp rakudo: my $twenty-five = 25; say $twenty-five++ 20:09
p6eval rakudo 6f9116: OUTPUT«25␤»
sbp rakudo: my $twenty-five = 25; say ++$twenty-five
p6eval rakudo 6f9116: OUTPUT«26␤»
sbp rakudo: my $twenty-five = 25; say ++$twenty-five++; say $twenty-five 20:10
p6eval rakudo 6f9116: OUTPUT«26␤27␤»
sbp rakudo: my $twenty-five = 25; say ++(++$twenty-five++)++; say $twenty-five
p6eval rakudo 6f9116: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/ZlmO2w_hBp␤»
sbp NO YUO
Layla_91 we need a choclate variable.. with some cream++
sbp clotted cream
rakudo: my $twenty-five = 25++; say $twenty-five 20:11
p6eval rakudo 6f9116: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 7461:CORE.setting␤»
tadzik jnthn: ah, I remember now :)
bacek masak, thanks for testing
tadzik maybe age should be an iterator
Layla_91 by the way.. I am not 25 yet so you can use my real age :P
tadzik rakudo: my $nineteen = 19; say ++$nineteen 20:12
p6eval rakudo 6f9116: OUTPUT«20␤»
20:12 ggoebel joined
tadzik heh, WFM :) 20:12
Layla_91 A little off topic question.. why did Randal L. Schwartz say PHP is "training wheels without the bike" Is it really that bad? 20:13
tadzik Juerd has a nice article about what's bad about PHP 20:14
Layla_91 I do not have a lot of experience of it but it has a lot like perl syntax..
sbp .g Juerd, PHP Sucks
phenny sbp: www.tnx.nl/php
tadzik yeah, looks like this
Tene Layla_91: Yes, it's really that bad.
Rotwang Layla_91: php was at first set of perl scripts 20:15
sbp this one actually made me laugh: Sure, PHP 6 may have a shorter release cycle than Perl 6 has, but at the end of it all, we'll have Perl 6, and you'll still have PHP. Just sayin'. -- Andy Lester
tadzik :D
flussence PHP is half Perl 5(.0), half COBOL.
Layla_91 hihi.. they made a photo of his saying too.. cute ^_^ .. training wheels without the bike =D
alester Where's that from, sbp?
Perlbuzz?
tadzik I'd say it's four times Perl 5.0. How many array sorting functions does it have again? 5? 20:16
masak alester++ # quote :)
flussence about a dozen IIRC
Tene Layla_91: see also www.tnx.nl/php5.html
Layla_91 so again, why is it so popular? :S
alester I should mention that I'm currently writing some PHP code. :-(
masak Layla_91: PHP is very easy to deploy and get running.
jnthn Layla_91: Because it's easy to learn, I suspect.
Tene Layla_91: "Worse is Better" is the relevant phrase for discussions on that topic.
flussence because it outputs straight to stdout by default until you tell it there's code
tadzik few camelCased, few_underscored, fewcstyled... 20:17
PerlJam Layla_91: php also rode the wave of apache deployments.
flussence makes it easy to just rename .html -> .php and dump stuff in it
Layla_91 alester: is it true that they included namespaces in recent versions only?
flussence yes
recent *version*
alester Yes, it's a recent thing.
Layla_91 flussence: wow..
flussence also the namespace delimiter is "\"
jnthn Unicode next version, iirc?
alester And the namespace separator is '\'
Tene Layla_91: My suspicion is that when people are sufficiently opinionated to not want to use PHP, they're also sufficiently opinionated and have sufficiently different needs that they end up in all sorts of different languages.
flussence because everything else was taken supposedly
jnthn OH I just LOVE the MS DOS chic! 20:18
masak namespace delimiter is... backslash. undecided whether to laugh or cry.
alester So you can have $foo\next\trip\really
masak cries
Layla_91 masak: perl is easy to deploy too.. I think..
flussence PHP is a great example of why a language shouldn't be optimised for minimum indentation in the parser code.
alester which I read as $foo line-feed ext tab rip return eally
tadzik I decided to roll in my bed making this Obelix laugh sound
sbp alester: from the bottom of the tnx.nl/php result, via searching for Juerd's PHP-Sucks article 20:19
Tene Layla_91: There are a lot of other factors though... it's trivial to get *something* small workign quickly, so it makes you feel good early on. It very much encourages steady organic growth of trivial projects into large projects, and there's no clear point where it's easier to rewrite in something more-suitable for a large project...
alester sbp: The original context is here: perlbuzz.com/2008/02/tell-us-how-to...-andi.html
20:20 plobsing left
PerlJam Tene: PHP is perfectly fine for a large project. It's just the discipline level required increases exponentially. 20:20
sbp alester: ooh, thanks
Layla_91 Tene: I agree.. I also read that there are too many php programmers.. but also very few people can write proper secure code with it..
Tene PerlJam: "Requires exponentially-increasing discipline" isn't "perfectly fine" to me, personally. I prefer that my language offer good tools to manage complexity.
PerlJam Maybe I should have put a :-) on my text 20:21
:-)
have another
Layla_91 Tene: I liked the way they borrowed split and join from perl.. new names.. explode! :D
tadzik explode(), die() wasn't enough? :P 20:22
Tene PerlJam: Ah, sorry... 1) I've been having a lot of trouble noticing sarcasm both in text and in speech lately, and 2) I've seen that position legitimately claimed before.
Layla_91 tadzik: Loool :D
tadzik or it blows the whole server? :)
PerlJam Tene: yes, deadpan humor often misses on IRC because it's hard to tell that's what it is sometimes 20:23
Layla_91 :D
PerlJam Tene: rest assured that I am not a fan of PHP :)
Tene PerlJam: fwiw, my company's website is all written in PHP... a MASSIVE PHP codebase. The engineers seem to be able to handle it pretty well.
All of the operations code is in Perl, though, so it works well for me. 20:24
flussence it's fine when it's written by someone with a clue and the patience to do it right
those are few and far between though
PerlJam flussence: except for all that stuff that Juerd mentions.
masak the extra ironic thing is that PHP 6 still isn't out...
Layla_91 a boy I knew in school used to bring the school website down every week.. while the school IT team kept improving the secuirity.. after all they handed the website to him :)
PerlJam flussence: inconsistent naming conventions and argument order bother me quite a bit
flussence that's why you write 15000 lines of wrapper code :D 20:25
[Coke] (concerns about php in a large project) sounds like cold fusion. ;)
flussence and you *have* to write it, because there's no central repository for it
(PEAR is anemic)
sbp and Wikipedia just opines "No date set" 20:26
jnthn Develop anything in any langauge without anyone bothering to architect it beyond the next ten minutes and ten years later it'll be a mess.
Layla_91 tadzik, masak, jnthn, masak: ATTENTION: I am eating cake :P
jnthn Layla_91: Yaay! :D
PerlJam jnthn: I don't think it needs architecting so much as consistent vision or philosophy. Some sort of general guiding principles. 20:27
jnthn would be envious apart from he's still way too full of curry
20:27 coldhead joined
PerlJam jnthn: if PHP had had an inkling of that, it could have been a much better language. 20:27
sbp Perl 6 will be done when Rakudo Star implements a X b X c. — sbp's readiness condition
unfortunately this condition entails the idea that I ought to implement this myself
so I won't stress it too hard
masak sbp: I think that even used to work in Rakudo... 20:28
sbp oh, it broke? hmm
Layla_91 I heard of php6 by the way.. is it something like perl6?
PerlJam Layla_91: no.
tadzik nooooooooooooooo
unless you mean "it's not there yet"
flussence rakudo: sub brain-damage-o-meter(Str $i) { $i.chars / 'criminally-braindead'.chars }; say brain-damage-o-meter('htmlspecialchars');
p6eval rakudo 6f9116: OUTPUT«0.8␤»
20:28 estrabd_omnom is now known as estrabd
Layla_91 I meant a project in progress :P 20:29
sbp rakudo: my $LaylaAge = 19; say 'n' ~ 'o' x ++LaylaAge
p6eval rakudo 6f9116: OUTPUT«Could not find sub &LaylaAge␤ in main program body at line 22:/tmp/CgHDJFY5Af␤»
sbp rakudo: my $LaylaAge = 19; say 'n' ~ 'o' x ++$LaylaAge
p6eval rakudo 6f9116: OUTPUT«noooooooooooooooooooo␤»
masak rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter 'htmlspecialchars' 20:30
p6eval rakudo 6f9116: OUTPUT«0.8␤»
masak \o/
flussence Mojolicious got that one right - if you're writing a webpage language, it should be one keypress to output escaped cdata, not 21.
Layla_91 everybody geting brain damage :P
flussence oh
s/21/23/ # mandatory brackets
masak rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter 'htmlspecialchars()' 20:31
tadzik just like Gtk
p6eval rakudo 6f9116: OUTPUT«0.9␤»
tadzik gtk_tree_model_filter_convert_iter_to_child_iter() <3
flussence ARGH.
jnthn rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter 'masak'
p6eval rakudo 6f9116: OUTPUT«0.25␤» 20:32
masak sounds about right.
jnthn Oh, pretty good. ;)
masak rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter 'jnthn'
p6eval rakudo 6f9116: OUTPUT«0.25␤»
masak just checking :P
tadzik try Jonathan :P
flussence
.oO( my name's misleadingly short... )
jnthn try mäsak :P
masak jnthn: it's *chars* :P 20:33
jnthn Darn!
Was going for high codepoints :P
20:33 Trashlord joined
jnthn masak is sat next to me laughing at me now :P 20:33
masak yep :)
tadzik rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter 'Tadeusz'
p6eval rakudo 6f9116: OUTPUT«0.35␤»
tadzik not bad
Layla_91 programming is fun.. here we see a group of geeks fighting using perl6 :P 20:34
tadzik that's what this mmorp is about :)
20:35 plobsing joined, plainhao left
masak occasionally, we write real code as well. 20:35
20:35 Su-Shee_ joined, ab5tract left
Layla_91 Su-Shee: heloooo! 20:35
tadzik, masak: i should go in moments.. erm.. I wish that thing about zebras guide becomes reality.. sound so fun =) 20:36
masak Layla_91: the book is the first priority, but still it good to know that zebras are in high demand :) 20:37
20:38 Su-Shee left
Layla_91 masak: Also I want all the drawings to be by you and tadzik :P but much cooler than rubys guide :-|!!! 20:39
chunky bacon! :D
masak why_ is hard to match in terms of drawings... :) 20:40
flussence (wow, I'm not sure anyone can top that thing)
tadzik there was only one successful drawing of mine I remember, that was whn I drew Usagi Yojimbo on my English Classes essay
Layla_91 have to go thank you all you are the best community on earth! :******
jnthn Layla_91: enjoy the rest of your birthday :)
sbp .wik Usagi Yojimbo 20:41
phenny "Usagi Yojimbo (兎用心棒, Usagi Yōjinbō|?|, lit. 'rabbit bodyguard') is a comic book series created by Stan Sakai in 1987." - en.wikipedia.org/wiki/Usagi_Yojimbo
sbp rakudo: sub brain-damage-o-meter(Str $i) { [/] ($i, 'criminally-braindead')».chars }; say brain-damage-o-meter '兎用心棒' 20:42
p6eval rakudo 6f9116: OUTPUT«0.2␤»
tadzik see? Perfectly sane
20:42 Layla_91 left
masak tadzik: somehow that seems an unfair comparison... :P 20:43
flussence English only looks sane in an ASCII-derived world
sbp rakudo: say a / b 20:45
p6eval rakudo 6f9116: OUTPUT«Could not find sub &a␤ in main program body at line 22:/tmp/QnJZYVpLGx␤»
sbp rakudo: say 'a' / 'b'
p6eval rakudo 6f9116: OUTPUT«Divide by zero␤ in 'infix:</>' at line 3734:CORE.setting␤ in 'infix:</>' at line 515:CORE.setting␤ in main program body at line 22:/tmp/skzcvQCUcz␤»
masak rakudo: say [/] <a b>».ord
p6eval rakudo 6f9116: OUTPUT«0.989795918367347␤»
masak 'a' is 98.98% 'b'. 20:46
sbp give or take a cosmic ray
20:46 icwiener joined
masak rakudo: say 'a' +& 'b' 20:47
p6eval rakudo 6f9116: OUTPUT«0␤»
masak rakudo: say 'a' +| 'b'
p6eval rakudo 6f9116: OUTPUT«0␤»
masak rakudo: say 'a' ~| 'b'
p6eval rakudo 6f9116: OUTPUT«c␤»
masak \o/
rakudo: say 'foo' ~^ 'bar' ~^ 'baz' 20:50
p6eval rakudo 6f9116: OUTPUT«fog␤»
20:50 shi joined
masak *lol* 20:51
sbp ahahaha
jnthn I didn't see that coming...
moritz_ is highly amused
masak No-one sees the fog coming!
20:51 jaldhar left
tadzik :D 20:51
masak you have to ~^ an odd number of words, otherwise it loses its alphabetness. 20:52
rakudo: say [~^] <foo bar baz>
p6eval rakudo 6f9116: OUTPUT«fog␤»
masak rakudo: say [~^] <sight smell touch> 20:53
sbp what happens when you mess the lengths up?
p6eval rakudo 6f9116: OUTPUT«tkwgp␤»
sbp rakudo: say [~^] <foo bar baza>
jnthn rakudo: say [~^] <beer noms perl>
masak aw :)
p6eval rakudo 6f9116: OUTPUT«foga␤»
rakudo 6f9116: OUTPUT«|ozm␤»
masak rakudo: say ord '|' 20:54
p6eval rakudo 6f9116: OUTPUT«124␤»
20:54 Su-Shee_ is now known as Su-Shee
masak rakudo: [~^] <foo fog baz> 20:55
p6eval rakudo 6f9116: ( no output )
masak rakudo: say [~^] <foo fog baz>
p6eval rakudo 6f9116: OUTPUT«bar␤»
jnthn \o/ \o/
masak drunken gymnast! :)
jnthn "I man walks into a bar." "Ouch."
masak guess there was too much fog in the bar.
look, people. we promised TimToady not to leave too much senseless backlog... :P 20:56
guess we blew it, huh?
tadzik ouch
jnthn I thought he told us not to say anything interesting? :P
masak oh!
carry on, then.
sbp blame me, and I promised no such thing
tadzik sounds like a day
20:58 pigdude left 21:14 spq left 21:16 gdey joined, Bzek left 21:17 Bzek joined, mtk left 21:20 spq joined 21:23 gdey left, spq left 21:24 gdey joined 21:25 masak left 21:26 mtk joined 21:30 mberends left 21:31 mberends joined 21:38 kjeldahl joined 21:39 Trashlord left 21:43 donri joined 21:44 Trashlord joined 21:47 shi left, sunnavy left, sunnavy joined, Raynes left 21:48 shi joined 21:49 Raynes joined, AzaToth joined 21:51 sji joined 21:52 mberends left
AzaToth What I feel is the major problem with perl6 is the general bluriness what it is, and the relation between perl6, parrot, rakudo, pugs etc.. 21:52
21:52 shi left 21:53 pmurias joined
pmurias hi 21:53
tadzik hi
AzaToth: are you confused?
AzaToth tadzik: I have been
jdhore AzaToth, I'm somewhat new to this, but it's quite simple. Perl 6 is a language spec. Like C.
AzaToth, Rakudo is a Perl 6 implementation (on top of Parrot) and PUGS is a Perl 6 implementation (on top of Haskell) 21:54
AzaToth tadzik: one think I felt was really difficult, was installing rakudo
21:54 mberends joined 21:55 mberends left
jdhore Oh, and Rakudo Star is Rakudo plus some "expected" Perl modules. 21:55
AzaToth, Does that help?
AzaToth jdhore: hehe ツ
tadzik AzaToth: what's difficult about that?
AzaToth I meant in a general way
tadzik AzaToth: how do you feel it can be improved?
donri `"foo".isa: Str` now I get that : is completely unrelated to blocks 21:56
All uses of : i've seen was with blocks
AzaToth tadzik: first I think there should be an (semi)-official recommended "compiler"
jdhore AzaToth, There is, Rakudo.
21:56 Mowah left
jdhore Rakduo is the closest thing you'll find to a "blessed" "compiler". 21:57
But there really isn't a blessed one in the same way there is no reference/blessed C compiler.
AzaToth jdhore: it's difficult for someone new to really get that rakudo is the recommmended
jdhore Well that's because it isn't really. 21:58
AzaToth jdhore: reading www.perl6.org/compilers/ it seems more that STD would be the "blessed" one
pmurias AzaToth: there shouldn't be a "blessed" one
there could be a recommended one
AzaToth pmurias: meant recommended :-P 21:59
tadzik AzaToth: pathes welcome :
pmurias STD is just a grammar
tadzik :)
AzaToth "#
# STD is Larry Wall's reference implementation of the Perl 6 grammar,"
BinGOs 'viable' is a better word, no.
AzaToth oops
tadzik yeah, that's a bit misleading
arnsholt Well, TimToady is the main developer on STD 22:00
pmurias STD is the recommended thing for checking if something parses as Perl 6 22:01
tadzik AzaToth: www.perlfoundation.org/perl6/index....mentations -- just stubled upon this, looks nice to me
22:02 Mowah joined
tadzik (where is niecza on that list) 22:02
AzaToth regading rakudo, am I right that "rakudo" is only the compiler? i.e. no modules at all? 22:03
tadzik yeah
Rakudo Star is the Compiler, Modules, Book, Zebras, etc
AzaToth zebras?
tadzik Zebras? What zebras?
22:03 MayDaniel left
AzaToth <tadzik> Rakudo Star is the Compiler, Modules, Book, Zebras, etc 22:03
tadzik I said zebras? No way I did. I didn't :) 22:04
22:04 Mowah left
AzaToth tadzik: you DID 22:04
tadzik oh noes!
AzaToth well
tadzik (:
don't mind me and my silly humour 22:05
AzaToth github.com/rakudo/star - See <wiki.github.com/rakudo/rakudo/whats...rakudo> for a list 22:06
of modules we want included in the distribution.
no modules then :-P
22:06 sji left
tadzik :) 22:06
let me find this
22:07 shi joined
AzaToth I hope raduko* aint yet another application level package managing system 22:07
tadzik github.com/rakudo/star/blob/master...ile.in#L55
AzaToth svg?
that module seems a bit way high level 22:08
svn and svg-plot
svg*
tadzik what do you mean? 22:09
AzaToth svg doesn't seems for me to be an "core" module
tadzik it's note Core Modules of any sort
AzaToth ok 22:10
I tohugh raduko* was compiler + core modules
tadzik they are just a bunch of modules alredy available which we thought will be useful
AzaToth ok
tadzik let me find something
.g moritz how core is core
phenny tadzik: tools.ietf.org/html/draft-moritz-c...er-coap-00
jnthn AzaToth: There's no "core" modules. We expect people to make distributions tailored to certain situations. At the moment the ecosystem of modules is pretty small so Rakudo * is currently the compiler + a bunch of the interesting stuff that exists.
AzaToth: A module being with Rakudo * doesn't indicate any judgement on its "coreness" though. 22:11
AzaToth jnthn: in the future, I would expect be able to do "apt-get install perl6 perl6-modules" sort of
tadzik AzaToth: perlgeek.de/blog-en/perl-6/how-core-is-core.html
AzaToth reading...
22:13 kaare_ left
AzaToth tadzik: so, is raduko* cat B or C? ツ 22:13
tadzik Rakudo* is not a module :) 22:14
AzaToth tadzik: collection of modules*
tadzik AzaToth: C
AzaToth ok
tadzik Rakudo * is a distibution, of Rakudo, Modules and Zebra... documentation 22:15
AzaToth please explain for me what Zebras is
tadzik it's a local meme
if you grep the logs for "hello zebras", the results may look funny to a foreigner :) 22:16
AzaToth aha
I assume there are no gpc yet 22:17
22:18 masak joined
masak \o/ 22:19
AzaToth other thing I think is a problem for introduction to outsiders, is the lack of timeline
jdhore ...
AzaToth i.e. should I start now to learn perl6, or should I way 10 years? 22:20
wait*
tadzik masak: hello zebra :)
masak tadzik: I really like how the Zebras seem to be spreading... :)
tadzik :D
AzaToth: see? :)
AzaToth tadzik: hehe 22:21
masak AzaToth: there's a very good reason for the lack of timeline.
a really, *really* good reason.
AzaToth masak: it will never be ready?
masak I'm not sure I'm getting through to you :P
AzaToth hehe
22:21 takadonet left
masak in some sense, Perl 6 is ready. 22:22
AzaToth: did you know my blog is fuelled by Perl 6?
has been since September last year.
there are areas that Rakudo doesn't cover well yet, but work is being done as we speak to make it go broader and better.
AzaToth masak: I can understand that modules and such are not finish/made, but I would assume the core design and specification is rather complete now 22:23
masak AzaToth: no, the really good reason for the lack of timeline is that no-one's ever implemented Perl 6 before.
AzaToth: and the first time is the hardest :)
AzaToth masak: true
masak AzaToth: as for Rakudo, there is a roadmap if you're interested.
Tene AzaToth: The language has been pretty stable. There have been very few changes to anything already-implemented. 22:24
22:24 pmurias left
masak the Perl 6 specification sees more changes than anything of the corresponding size and stability that I know of. but I think it's a good thing, because the changes are steady improvements as we learn stuff. 22:24
AzaToth uh? 22:25
tadzik masak: I think at YAPC::EU we should have a big label with a Camelia and "Zebras' place" written on it
AzaToth so the spec isn't stable?
masak tadzik: :D
Tene AzaToth: While the spec is being implemented, the implementors sometimes run into issues with the parts that they're working on.
masak AzaToth: have you heard about whirlpool development?
Tene So the process of implementing feeds back into the design.
AzaToth masak: heard of it, never encountered it 22:26
masak AzaToth: now you have.
and as far as I can see, it is a good thing for what we want to do with Perl 6.
we know in very general terms what we want, but we're still evolving the specifics by building them and finding weak points. 22:27
we'd be finished earlier if we chose a spec and stuck to it. but then the product would be crap.
AzaToth masak: true, but will it ever be done?
jdhore Yes. 22:28
Tene AzaToth: The spec has been *sufficiently* stable for most purposes at this point in Perl 6's development. It hasn't been frozen, because so far, it's been a very good thing that we haven't frozen it. We've encountered issues and concerns with the design as we've been implementing it, and that's really the best time to make those changes.
masak AzaToth: there will come a last commit to the spec, if that's what you're asking.
AzaToth in an whirlpool you neve r get to the center, if you get too close, you'll been thrown out to the edge again
masak :) 22:29
Tene AzaToth: Once there is an implementation that implements the majority of the spec, and feedback to the spec has largely quieted down, we're going to declare that the spec has solidified, and stamp a "1.0" number on it.
masak AzaToth: I've been here since 2005. every year, we're converging.
AzaToth masak: at least I would hope there was a plan like "lets froze it in under x years"
masak AzaToth: why?
AzaToth: if this were a company, I'd understand that. 22:30
Tene AzaToth: That would be feasible if we had committed resources. This is a volunteer effort, so we can only make estimates about how much work is left, not the rate that it'll be accomplished at.
22:30 mfollett_ joined
masak AzaToth: but we're a bunch of interested volunteers, most doing Perl 6 for fun without expecting anything except to make a great language. 22:30
AzaToth masak: you don't want it to go the HURD way :-P
masak AzaToth: I see what you mean, but I think such fears are unfounded. 22:31
Tene AzaToth: The other metaphor that comes up is that the spec is in a "slush" state; large parts of it are effectively frozen already.
masak AzaToth: I'm using Perl 6 already, more and more each day.
Tene AzaToth: If you're concerned about the changes, I recommend that you look at the commit log to the specs.
AzaToth Tene: I understand it's an volunteer effort, but what I'm trying to imply, that perhaps some more non-volunteer helpers an be acquired as soon a stable specification is in sight
masak github.com/perl6/specs/commits/master 22:32
Tene AzaToth: That's fair enough. Our process so far has been to treat most of the unimplemented parts of the spec as experimental/hypothetical, until someone has attempted an implementation.
The *process* of freezing it is to implement it, write tests for it, etc. 22:33
AzaToth I see
masak AzaToth: at this point, I don't know how many volunteers are connected with Hurd at this point, but I wouldn't be surprised at all if the Perl 6 community turned out to be bigger and faster-moving in terms of commits.
s:2nd/ at this point//
Tene Until we've actually tried it, we don't find value in precommitting to a design that we haven't actually tried. 22:34
AzaToth masak: If I want to see if I can theoretically help, where should I start? is it much to learn?
22:34 mfollett left, mfollett_ is now known as mfollett
masak AzaToth: Perl 6 is a big language, but fortunately one can learn it step by step. :) 22:34
AzaToth Tene: couldn't those parts be part of spec 1.x?
Tene AzaToth: If you're particularly concerned about the development of the spec, you could certainly explore ways of annotating the spec, reporting on pieces of the implementation, etc. 22:35
masak AzaToth: I'd suggest setting a goal in terms of a small script to write, and then learn the things you need to write that script. then, once you're done, set a slightly more ambitious goal, etc.
Tene AzaToth: What use is spec that hasn't been implemented yet?
AzaToth: If you look at the published specs, we have annotation in the test suite for which parts of the spec the given test covers: perlcabal.org/syn/S02.html 22:36
AzaToth Tene: if it's not implemented yet, then perhaps it doesn't need to be part of the 1.0 spec
Tene Look at the S*/*.t links
masak AzaToth: people usually find a "favorite corner", such as RT, the spectests, the parser, the ecosystem, etc. it's perfectly ok to spend the first few months talking to people and trying various things. 22:37
Tene I can certainly imagine value in further reports on what parts of the spec have passing tests on an implementation, on the change rate of different parts of the spec, etc.
AzaToth ok
masak rakudo: say "Rakudo says hello, AzaToth! :)" 22:38
p6eval rakudo 6f9116: OUTPUT«Rakudo says hello, AzaToth! :)␤»
Tene AzaToth: I certainly think that now might be a good time to start having this covnersation, about spec solidification, etc. We'll need to do it someday.
sbp <masak> has been since September last year.
you should call the code September! 22:39
AzaToth Tene: I remember back in 2004 around hpoing that perl6 would materialize ツ
masak sbp: :D
sbp: right now it's called psyde, but I might consider a name change.
Tene AzaToth: I can install perl 6 on my linux distro from the package manager; it's certainly "materialized" for many purpsoes for me. :)
masak Perl 6 will need a Perl 6.0.0 specification when it has a big enough downstream customer clamoring for such a freeze.
Tene AzaToth: Large parts of the specs are interrelated; it's not always obvious what things are related to each other. We had some fairly minor changes back when we were implementing lazy lists and iterators that touched some large parts of the spec in small ways. 22:40
sbp .g Mäsak's psyde
phenny sbp: github.com/masak
masak sbp: hold on, I'll get you the link.
github.com/masak/psyde 22:41
Tene So, there's nobody currently involved with and communicating with the perl 6 community that has expressed significant value in "this part of the spec will be eternal and unchanging". It's entirely possible that there are people who would have value in spec guarantees, but just don't talk to us at all right now.
sbp enthankulations
masak dontmentionitifics 22:42
Tene AzaToth: If you understand what those concerns might be, it would certainly help to find ways to communicate the current state of things better than they currently are. I'd love to see what a markup of the spec looks like with indications of test coverage, test passes, commit rate, etc.
AzaToth: Once we have a good udnerstanding of how stable which parts of the spec are, that might help us make decisions about it. 22:43
masak the only people who I hear arguing for a spec freeze right now are people who are not using Perl 6 on a daily basis. :)
AzaToth Tene: hehe
slavik1 masak: like me :P
Tene masak: That's very true; but I don't feel like I have a good udnerstanding of the selection effects in play there.
slavik1 actually, no, I don't care for a freeze, I care for a .deb package :D
and a book of sorts ^^
Tene masak: if an eternal, unchanging spec was valueable to me, I'd certainly stay away from Perl 6.
masak Tene: oh, same here.
sbp is there a small test file that p6eval has available to it? so that, say, I could do rakudo: given open "example.txt" -> $f { say $f.get }?
arnsholt sbp: There's a file attached to STDIN 22:44
Tene rakudo: say lines()[0]
p6eval rakudo 6f9116: OUTPUT«Land der Berge, Land am Strome,␤»
masak \o/
Tene rakudo: say lines().elems
p6eval rakudo 6f9116: OUTPUT«23␤»
masak sbp: it has the Austrian national anthem in STDIN :)
sbp like all good IRC bots
22:45 Rotwang left
sbp rakudo: given open "/dev/stdin" -> $f { say $f.get } 22:45
Tene masak: I also think that people who are very close to the project are going to have a different view of the spec changes, as we've seen them gradually. I'd love to have a visualization of how much of the spec has been changed in the past month, six months, year, etc.
p6eval rakudo 6f9116: OUTPUT«Operation not permitted in safe mode␤ in 'Safe::forbidden' at line 2:/tmp/jG11LXAEF1␤ in main program body at line 22:/tmp/jG11LXAEF1␤»
22:45 Rotwang joined
masak Tene: clearly Perl 6 as of 2011 isn't very much like Perl 6 as of 2003. 22:45
Tene sbp: stdin is already open :)
sbp ôrite 22:46
masak rakudo: say get() for ^3
Tene sbp: also, I don't think you want 'given' there
p6eval rakudo 6f9116: OUTPUT«Land der Berge, Land am Strome,␤Land der Äcker, Land der Dome,␤Land der Hämmer, zukunftsreich!␤»
masak zukunftsreich!
masak salutes
Tene Or maybe you do...
arnsholt Gesundheit
sbp hey, I'm just calquing out of Septemberpsyde
Tene rakudo: say $*IN.get
p6eval rakudo 6f9116: OUTPUT«Land der Berge, Land am Strome,␤»
masak yeah, I kinda fell in love with the 'given' pattern for opening files... 22:47
especially since you need to remember to close them, too.
a lexical block makes a lot of sense, then. 22:48
sbp it's like the with open('example.txt') as f: etc. context in python
Tene Does that handle error conditions?
masak Ruby has something similar as well.
Tene: right now in Rakudo, &open dies if it fails. 22:49
Tene masak: I was asking about the python
sbp this is kind of beautiful: 22:50
sub nonexistent-or-older($target, :than(@sources)!) {
return $target.IO !~~ :e
|| $target.IO.changed before any(@sources).IO.changed;
}
how does the "before" work, there?
masak sbp: I've blogged about that function. 22:51
Tene sbp: it's a type-agnostic ordering comparison
masak sbp: before is just a generalized '<'
sbp why would < not work there? < takes only certain argument types I suppose?
masak sbp: strangelyconsistent.org/blog/novemb...or-the-eye
sbp: '<' would work. read the post :P
22:52 vmspb joined
Tene masak: would 'or' have even worked there? Wouldn't that have parsed as (return ...) or ( ... before ... ); ? 22:52
sbp ah, yes
masak Tene: probably, yes. 22:53
Tene: my impulse is not to use 'or' for such things.
sbp it's not entirely clear to me why you used before and ||
masak Tene: partly for that reason.
sbp but it's still beautiful
Tene masak: Yeah, it would have. I'm confused by the meaning of your post, then...
22:53 plobsing left
Tene that part, at least 22:53
sbp I suppose, actually, it does provide some implicit grouping
you kind of read the || operator first
and divide into the two groups
masak Tene: maybe 'or' would have required parens. 22:54
22:54 snearch joined, donaldh joined
Tene sbp: 'or' is very loosely binding, || is tighter binding 22:54
sbp aha
Tene sbp: so with 'or', it would (return ...) or (... before ...)
sbp: so, it would have worked fine with an implicit return
drop the 'return', and s/||/or/ 22:55
sbp somebody needs to add a mode to STD that makes it add parens around operator arguments to show precedences
masak generally, I only use 'or' for error handling.
Tene sbp: like -MO=Deparse,-p in Perl 5.
sbp: I always use rakudo's --target=parse for those questions, but that output might be a bti intimidating. 22:56
I bet I could write something in Rakudo to do it pretty quick, though.
sbp do you use that for other questions which aren't, however, to do with precedence?
Tene or do fancy html colorization, etc.
sbp: I use it whenever I have any question about parsing
22:58 ab5tract joined
sbp subscribes to Strangely Consistent 22:58
22:59 shi left
Tene masak: also might be nice as ~~ :!e in place of !~~ 22:59
AzaToth moritz_: any updates to www.perlmonks.org/?node_id=690945 ? ツ 23:01
Tene sub nonexistent-or-older($target as IO, :than(@sources)!) { return $target ~~ any (:!e), *.changed before any(@sources).IO.changed; } 23:04
the parens around :!e are unfortunate 23:05
I'm a little bit unhappy about the overloading of prefix:<:>
I didn't want to look up the syntax for coercing to an array of IO for @sources 23:06
AzaToth rakudo: q{..}.chars
p6eval rakudo 6f9116: ( no output )
Tene rakudo: say q{..}.chars
jnthn @sources>>.IO
AzaToth rakudo: say q{..}.chars
p6eval rakudo 6f9116: OUTPUT«2␤»
Tene jnthn: in a signature? 23:07
jnthn Tene: Oh, sorry, missed that bit of contest. 23:08
*toc
23:08 MayDaniel joined
jnthn gaaaah! 23:08
AzaToth rakudo: say q{ä}.chars
jnthn *context
p6eval rakudo 6f9116: OUTPUT«1␤»
AzaToth rakudo: say Q{ä}.chars
p6eval rakudo 6f9116: OUTPUT«1␤»
23:08 shi joined
Tene masak: I expect you'll like using 'as IO' in signatures; it'll handle a Str or an IO just fine. 23:09
AzaToth I asusme strings in perl6 doesn't inlcude \0
Tene and then you don't have to scatter .IO throughout the function
masak Tene: I don't think there's a syntax for converting to an Array of IO. 23:14
Tene: yes, 'as IO' sounds like a very fine techinque. haven't thought of that so far. Tene++
AzaToth: you assume correctly. :) 23:15
AzaToth: unless, of course, you put a \0 there.
rakudo: say "OH\0 HAI"
p6eval rakudo 6f9116: OUTPUT«OH␀ HAI␤»
masak ␀!
Tene masak: well, in a declaration, you use: my IO @files; 23:16
jnthn masak: Is it more intresting than a little square bos for you? :)
*box
masak jnthn: yes, it says "NUL" diagonally here.
huf it says "nul" here
yeah
masak jnthn: a bit like the "NL" character. 23:17
jnthn My font is too boring. :P
huf btw, will perl6's open pass \0 along silently and then let the underlying OS do the wrong thing like perl5 does?
at least, istr perl5 does that
masak Tene: yes, I know. but I find converting already existing arrays cumbersome in Rakudo today.
huf: haven't seen anything on that topic; not sure what you mean. 23:18
Tene rakudo: my IO @a = ('/etc/passwd'.IO); # yay crash
p6eval rakudo 6f9116: ( no output )
Tene Huh. Crashes locally with max recursion depth exceeded. 23:19
huf masak: if ($untrusted_filename =~ /... good extensions.../) { open my $fh, '>', $untrusted_filename }
AzaToth rakudo: say <a b> X~ 1,2 X+ 3,4
23:19 plobsing joined
p6eval rakudo 6f9116: OUTPUT«No applicable candidates found to dispatch to for 'crosswith'. Available candidates are:␤:(&op, Any $lhs, Any $rhs)␤␤ in main program body at line 1␤» 23:19
huf something like that behaves rather unexpectedly
23:19 snearch left
Tene can anyone else verify pls? 23:20
huf since regex knows where the string really ends, but the open() syscall doesnt
AzaToth rakudo: say <a b> X~ (1,2 X+ 3,4)
p6eval rakudo 6f9116: OUTPUT«a4a5a5a6b4b5b5b6␤»
masak rakudo: say (<a b> X~ 1,2) X+ 3,4
p6eval rakudo 6f9116: OUTPUT«34343434␤»
Tene rakudo: my @a as IO;
AzaToth masak: the spec said the former was _currently_ illegal :-P
p6eval rakudo 6f9116: OUTPUT«Could not find sub &trait_mod:<as>␤ in main program body at line 22:/tmp/sCST41xCwc␤»
AzaToth rakudo: say <a b> X, 1,2 X, <x y> 23:21
p6eval rakudo 6f9116: OUTPUT«No applicable candidates found to dispatch to for 'crosswith'. Available candidates are:␤:(&op, Any $lhs, Any $rhs)␤␤ in main program body at line 1␤»
AzaToth hmm
23:21 woosley joined
masak Tene: no crash here. 23:21
AzaToth: Rakudo doesn't handle chained X and Z just yet.
AzaToth masak: I see
Tene masak: sub foo(@a as IO) works fine 23:22
masak Tene: ooh? :)
Tene pass in an array of strings, IOs, or whatever
masak completely missed that one.
Tene: and it doesn't convert the @a to an IO? :P
AzaToth rakudo: say so flat X
p6eval rakudo 6f9116: OUTPUT«Could not find sub &X␤ in main program body at line 22:/tmp/FPykHpdH6C␤»
sbp "In Configuration Space, the configurations that we appreciate run like a thread through a sea of chaos, error conditions, and wrongness."
Tene masak: no, it doesn't.
masak rakudo: sub foo(@a as Int) { say .WHAT for @a }; foo [<1 2 3>] 23:23
p6eval rakudo 6f9116: OUTPUT«Int()␤»
Tene oh, um, yes it does
I lied :P
masak yes, you did :P
AzaToth rakudo: so say
p6eval rakudo 6f9116: OUTPUT«␤»
AzaToth rakudo: so say .WHAT
p6eval rakudo 6f9116: OUTPUT«Any()␤»
masak good night, #perl6.
AzaToth
nite
masak you are the best community on the planet. :)
23:24 masak left, dolmen joined
Tene rakudo: sub foo(@a as Int) { say @a.WHAT }; foo [<1 2 3 4 5>]; 23:24
p6eval rakudo 6f9116: OUTPUT«Int()␤»
Tene Int isn't positional, but it's bound to @a
rakudobug?
jnthn Tene: er. :/ 23:25
Tene: I think coercions are spec'd to happen after the type check.
Tene: Otherwise you can't dispatch based on one type and then coerce to another
Maybe it should re-check.
Though...hm 23:26
colomon wasn't aware coercions were in there yet...
Tene jnthn: seems like there should still be a check for the sigil, or check that the type coerced to can be bound to that sigil, or something?
@a as Array of IO crashes 23:27
23:29 stkowski joined
Tene rakudo: sub foo(@a as Array of IO) { ... }; foo [<1 2 3>]; 23:30
p6eval rakudo 6f9116: OUTPUT«Method '!select' not found for invocant of class ''␤ in 'foo' at line 22:/tmp/kAe6b61k_I␤ in 'foo' at line 1:/tmp/kAe6b61k_I␤ in main program body at line 22:/tmp/kAe6b61k_I␤»
jnthn Tene: Doesn't surprise me. 23:31
Tene rakudo: sub foo(@a of IO) { say @a.perl }; foo [<1 2 3>];
p6eval rakudo 6f9116: OUTPUT«["1", "2", "3"]␤»
Tene that one doesn't do any coercion at all.
jnthn Well, that should type check, not coerce
Tene rakudo: my $a as IO = '/etc/passwd'.IO;
p6eval rakudo 6f9116: OUTPUT«Could not find sub &trait_mod:<as>␤ in main program body at line 22:/tmp/sywuR9YT2j␤»
Tene I'm done. :) 23:32
23:34 estrabd is now known as estrabd_afk, donaldh left
colomon rakudo: sub foo(@a as Int) { say @a.perl }; foo([3, Bool::True, "43", 34/3]); 23:35
p6eval rakudo 6f9116: OUTPUT«4␤»
colomon rakudo: sub foo(@a as Int) { say @a.perl }; foo(3, Bool::True, "43", 34/3);
p6eval rakudo 6f9116: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional but got Int instead␤ in 'foo' at line 1:/tmp/GPuF5xNhSe␤ in main program body at line 22:/tmp/GPuF5xNhSe␤»
colomon rakudo: sub foo(@a as Int) { say @a.perl }; foo (3, Bool::True, "43", 34/3);
p6eval rakudo 6f9116: OUTPUT«4␤»
colomon :\
jnthn colomon: I guess we maybe *could* decide to spec that as coercing each thing in the list. Would need some care with laziness. 23:36
Tene jnthn: that was my intuition, as an analogue to my IO @a;
colomon eh, probably not worth it. 23:37
though it wouldn't need much care with laziness....
jnthn Tene: It feels intuitive, given how types otherwise work with @foo thingies.
23:42 whiteknight joined 23:43 woosley left
colomon @a := @source.map(*.Int) 23:44
jnthn colomon: Yeah, that'd work I guess :) 23:45
Tene colomon: or just ».Int
jnthn >>. isn't lazy
colomon You know, it's funny. I was all about hyper when I started working with Rakudo. But now I'm just lazy... ;) 23:47
23:48 leprevost left 23:49 envi joined
donri rakudo: say 5 × 2 23:49
p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤Confused at line 22, near "say 5 \x{d7} 2"␤»
donri Lets use more unicode, "* * *" can be rather confusing/ugly
And *** doesn't even DWIM while *+* etc do 23:50
23:50 vmspb left
donri I suppose × is easily mistaken for x, though 23:50
jnthn rakudo: my $x = * * *; say $x(2,3) 23:53
23:53 pjcj left
p6eval rakudo 6f9116: OUTPUT«6␤» 23:53
jnthn rakudo: my $x = ***; say $x(2,3) 23:54
p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented at line 22, near "*; say $x("␤»
jnthn Ouch.
std: my $x = ***; say $x(2,3)
p6eval std 625303c: OUTPUT«===SORRY!===␤Bogus term at /tmp/qLLvsHIgUb line 1:␤------> my $x = ***⏏; say $x(2,3)␤Parse failed␤FAILED 00:01 121m␤»
jnthn std: my $x = *+*; say $x(2,3)
p6eval std 625303c: OUTPUT«ok 00:01 122m␤»
jnthn Hmm. :)
donri rakudo: say (* **)(2,3) 23:55
p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
plobsing rakudo: my &*** = * * *; ***(2, 3)
p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented at line 22, near "*(2, 3)"␤»
donri rakudo: say (1,2).map: * ** 23:56
p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented at line 22, near ""␤»
donri rakudo: say (1,2).map: ** *
p6eval rakudo 6f9116: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented at line 22, near " *"␤»
donri rakudo: say (* *2)(3) 23:57
p6eval rakudo 6f9116: OUTPUT«6␤»