»ö« 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«1a7b2cNot 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«OH0HAI1» | ||
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«beforeafter» | 14:39 | |
donri | rakudo: say "before"; { say "LOL I'M NOT RUN" }; say "after" | ||
p6eval | rakudo 6f9116: OUTPUT«beforeLOL I'M NOT RUNafter» | ||
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«takingtakingtakingtakingtaking1212» | ||
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«1I'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«2627» | ||
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 failedFAILED 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» |