»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moritz_ on 30 July 2009. |
|||
wayland76 | sjohnson: The author of the Zompist Phrasebook has also written stuff on how to do conlang :) | 00:00 | |
00:01
reqamst is now known as reqamst[zZzZz],
jan_ is now known as jan
00:02
jan is now known as Guest28989
00:16
dalek left,
ascent left,
broquaint left,
omega_ left,
obra_ left,
unitxt left,
ingy left,
araujo left,
arthur-_ left,
japhb left,
[particle] left,
eldragon2 left,
jnthn left,
christine left,
lucs left,
leedo left,
mee left,
spinclad left,
nicomen left,
cognominal left,
andreasg_ left,
drbean left
00:17
jnthn joined,
japhb joined,
[particle] joined,
eldragon2 joined,
cognominal joined,
mee joined,
leedo joined,
drbean joined,
lucs joined,
spinclad joined,
nicomen joined,
andreasg_ joined,
christine joined,
irc.freenode.net sets mode: +o jnthn
00:20
xomas_ left
00:21
tak11 joined
00:34
xomas_ joined
00:35
carlin joined,
ihrd joined
00:42
jaldhar joined
00:49
japhb left
00:58
xomas_ left
01:01
ruz joined
|
|||
ruz | perl6: class X {}; my $o = X.new; say $o.WHO | 01:03 | |
p6eval | rakudo 0d4fe0: OUTPUT«Method 'WHO' not found for invocant of class 'X'» | ||
..elf 28042: OUTPUT«Can't locate object method "WHO" via package "X" at (eval 124) line 9. at ./elf_h line 5881» | |||
..pugs: OUTPUT«*** No such method in class X: "&WHO" at /tmp/nij4Zjabqr line 1, column 32 - line 2, column 1» | |||
jnthn | ruz: Seems .WHO ain't implemetned yet...by any implementation. | 01:05 | |
ruz: It is spec though. | |||
ruz | jnthn: should return name of the class, right? | 01:06 | |
jnthn | No | ||
ruz | introspection spec is empty | ||
I was guessing | |||
jnthn | let me check the spec | 01:07 | |
It's 3am here so I'll nly remember wrong... | |||
WHO the package supporting the object, stringifies to long name | |||
.WHAT returns the type object, stringifies to the short name (that one is implemented); .WHO strinfigies to the long name. | 01:08 | ||
ruz | ah, ok | ||
jnthn | spec'd in S12: svn.pugscode.org/pugs/docs/Perl6/Sp...bjects.pod | ||
Actually Rakudo doesn't do too badly on the Introspection part of the spec | |||
ruz | I thought that it's S20 | ||
01:08
taur1an joined
|
|||
wayland76 | ruz: Well, things don't always go quite according to plan, and that includes S12/S20 :) | 01:09 | |
jnthn | ruz: Ah, now I see what you meant by "introspection spec is empty". | 01:10 | |
ruz | probably simple S20 with link to chapter in S12 help people find existing docs | ||
jnthn | Things don't always quite map to the Camel chapters, though it is a reasonable guideline. | 01:11 | |
Yeah, could do that. | |||
01:14
missingthepoint left
01:17
japhb joined
|
|||
ruz | see thing that may require more coding in some code | 01:20 | |
.WHAT returns X() | |||
jnthn | ruz: Yes | ||
ruz | spec suggest to use .perl | ||
look at lastofthecarelessmen.blogspot.com/2...l#comments | 01:21 | ||
sjohnson | rakudo: say given.WHAT | ||
p6eval | rakudo 0d4fe0: OUTPUT«say requires an argument at line 2, near "given.WHAT"in Main (src/gen_setting.pm:2510)» | ||
sjohnson | rakudo: say when.WHAT | ||
p6eval | rakudo 0d4fe0: OUTPUT«say requires an argument at line 2, near "when.WHAT"in Main (src/gen_setting.pm:2510)» | ||
sjohnson | rakudo: say given(){}.WHAT | ||
jnthn | sjohnson: given and when are not functions/objects etc. | ||
p6eval | rakudo 0d4fe0: OUTPUT«Could not find non-existent sub given» | ||
ruz | class redefines .perl | ||
sjohnson | jnthn: o i c | 01:22 | |
ruz | perl6: class X {}; my $o = X.new; say $o.WHAT | ||
p6eval | elf 28042, pugs: OUTPUT«X» | ||
..rakudo 0d4fe0: OUTPUT«X()» | |||
jnthn | ruz: A class is free to redefine .perl as it wishes. | 01:23 | |
ruz: It's just a way of giving a Perl-ish representation of itself. | |||
ruz | yep, and that blog post it's used | 01:24 | |
jnthn | Aye. | ||
I think the default .perl could be a bit smarter in the future, though. | |||
ruz | that code doesn't respect inheritance | 01:25 | |
jnthn | How so? | ||
Oh, hang on | |||
ruz | it always print Vector.new | ||
jnthn | Yeah, I see that now | ||
ruz | s/print/returns/ | ||
jnthn | self.perl ~ '.new()' maybe is better. | ||
ruz | oh | 01:26 | |
jnthn | oh no | ||
gah | |||
01:26
jjpx joined
|
|||
jnthn | sorry, I really should not be concious right now :-) | 01:26 | |
self.WHAT.perl | |||
rakudo: say 42.WHAT; say 42.WHAT.perl | |||
p6eval | rakudo 0d4fe0: OUTPUT«Int()Int» | ||
ruz | cool | 01:27 | |
counterintuitive, but cool | |||
thanks | 01:28 | ||
jnthn | .WHAT gives you back the type object for the class. | ||
So you're calling .perl on the type object. | |||
It's easy to forget that .WHAT doesn't just hand back a string, so most of the time people just print it out to help debug and similar. | 01:29 | ||
But you can do things like: | |||
rakudo: class A { }; my $x = A.new; my $y = $x.WHAT.new; | |||
p6eval | rakudo 0d4fe0: ( no output ) | ||
jnthn | rakudo: class A { }; my $x = A.new; my $y = $x.WHAT.new; say $y.WHAT | ||
p6eval | rakudo 0d4fe0: OUTPUT«A()» | ||
jnthn | That is, get the type object of some variable and then call .new on it to create another one of the same type. | ||
ruz | sounds good, looks like S12 behind implementation :) | 01:30 | |
01:32
cdarroch left
|
|||
jnthn | S12 has a _lot_ of stuff in it. But we're getting there. :-) | 01:32 | |
01:34
jjpx left
|
|||
cognominal | wayland76, what was your discussion about French something? | 01:38 | |
jnthn | cognominal: Où est le bordel? | 01:39 | |
cognominal | where did he got that from? | ||
wayland76 | cognominal: Leaving the funny stuff aside, alester wanted help with doing perl101 multilingual, and sjohnson was thinking about it | 01:40 | |
jnthn | cognominal: Well, I know the most useful phrases in all languages. ;-) | ||
wayland76 | If you want the funny stuff, find that link for the zompist phrasebook | ||
jnthn | www.zompist.com/phrases.html | ||
wayland76 | www.zompist.com/phrases.html | ||
...and look for the phrase that mentions cathedrals, and you'll see what I was talking about :) | 01:41 | ||
sjohnson | or opinions on films | ||
jnthn | The films one is grat. | ||
*great | |||
Especially the German! | |||
wayland76 | sjohnson: That won't help him see what *I* was talking about. But they're funny :) | ||
Well, it's a pity, then, that Ich sprechen deutsch wie italienisch Fußballtrainer. | 01:42 | ||
cognominal | jnthn, except there is supposedly no bordel in France since after WW2 : see en.wikipedia.org/wiki/Marthe_Richard | 01:43 | |
jnthn | :-D | ||
sjohnson | cognominal++ reference material | ||
cognominal | bordel is used as a interjecction like "shit" | ||
jnthn | cognominal: Yeah! And there's been no grèves in France since...oh wait... | 01:44 | |
cognominal | or you say "c'est le bordel", meaning "that's a mess | ||
jnthn, grèves are a national sport | 01:45 | ||
sjohnson | cognominal: vous parlez francais aussi? | ||
cognominal | I am French | ||
sjohnson | de France ou Canada? | ||
ou Belgique | |||
... ou l'Afrique | |||
cognominal | with BooK, we initiated jnthn to French strong alcool :) | 01:46 | |
born in Paris, France (not Paris Texas, catch the cinephilic reference if you can) | |||
01:47
sjohnson sets mode: +oo cognominal wayland76
|
|||
wayland76 | Ooh, I must be cool now :) | 01:48 | |
sjohnson | ca ne te derange pas si on parle en francais parfois, oui? | ||
cognominal | you are all welcome to join #perlfr on irc.perl.org | ||
sjohnson | .. I'll keep it in English here then | ||
jnthn | oui oui! Je voudrais le chatreaux! | 01:49 | |
wayland76 | I think people here are language geeks enough that they don't mind some non-english, as long as it doesn't overwhelm the channel | ||
cognominal | I suppose that jnthn does speak of "chateaux d'eau" but of some wine :) | ||
s/does/does not/ | 01:50 | ||
wayland76 | And you can tell the monolingual English speakers "We're making lots of progress here", and they'll never know the difference :) | ||
sjohnson | heh | 01:51 | |
wayland76 | I thought he was saying he'd like some houses. Wouldn't mind them myself :) | ||
jnthn | That'd be chateaux, no? | 01:52 | |
Houses are overrated. 55% alcohol is far better. | |||
On that note, it's almost 4am so I'm going to sleep. | |||
wayland76 | jnthn: Yes, but cognominal said "chateaux" | ||
ooh, goodnight :) | |||
jnthn | night! | ||
don't expect me early tomorrow ;-) | |||
01:52
sri_kraih_ left
|
|||
cognominal | night | 01:52 | |
01:53
justatheory left
|
|||
wayland76 | I'll expect you tommorrow my time :) | 01:53 | |
01:53
frew__ left
|
|||
ruz | is self.new() still valid concept in perl6? is it proper way to honor inheritance? | 01:54 | |
01:54
sri_kraih joined
|
|||
sjohnson | »ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: | irclog: irc.pugscode.org/ | UTF-8 is our friend! | ||
sjohnson | .. always wanted to change that | 01:54 | |
01:55
Whiteknight left
01:57
mikehh_ is now known as mikehh
|
|||
wayland76 | ruz: Just a note that the next 6 hours or so are probably the worst time of day for asking questions | 01:58 | |
cognominal | french translations are quite creative in zompist | 02:01 | |
02:03
KyleHa joined
|
|||
ruz | wayland76: I used to silence, it's fine when you just play with things and don't expect much :) | 02:03 | |
cognominal | I must compliment you on your understanding of our language. | ||
Tu n'entends donc rien, espèce de con ? | |||
that would be "you don't dig anything, you cunt" | |||
KyleHa | Ouch. | 02:04 | |
wayland76 | ruz: He's not talking to you, he's commenting on a funny document we found | ||
sjohnson | isn't that closer to "you don't undestand shit, you idiot" | ||
cognominal | soory, KyleHa :) | ||
yes, sjohnson | 02:05 | ||
wayland76 | sjohnson: it's probably be more idiomatic for the subculture in question to s/understand/know/ | ||
KyleHa | cognominal: No sweat. It's just been a while since I've been around anyone who talks like my mom. | ||
sjohnson | yeah, know | ||
i agree wayland76 | |||
02:06
_jaldhar joined
|
|||
ruz | wayland76: :) | 02:06 | |
02:09
jaldhar left
|
|||
jauaor | hello? | 02:12 | |
02:13
Anaphora joined
|
|||
KyleHa | jauaor: Hello! | 02:13 | |
sjohnson | hello jauaor | ||
02:13
yoblz joined
02:14
araujo joined
|
|||
cognominal | rakudo: given True { when True, False { say "test if list of value is ok in a when" }} | 02:14 | |
p6eval | rakudo 0d4fe0: ( no output ) | ||
cognominal | rakudo: given True { when True { say "test if list of value is ok in a when" }} | 02:15 | |
p6eval | rakudo 0d4fe0: OUTPUT«test if list of value is ok in a when» | ||
KyleHa | rakudo: given True { when True|False { say "Junction?" } } | ||
p6eval | rakudo 0d4fe0: OUTPUT«Junction?» | ||
cognominal | KyleHa++ | ||
KyleHa | rakudo: given True { when any(True, False) { say "Junction from list?" } } | 02:16 | |
p6eval | rakudo 0d4fe0: OUTPUT«Junction from list?» | ||
cognominal | my tentative was stupid, but as we say in French "prêcher le faux pour savoir le vrai" preach falsehood to learn about the truth | 02:17 | |
KyleHa | Nah, not stupid. I half expected it to work before I saw the (non) output. | ||
cognominal | well, True does not match (True, False) | 02:18 | |
jauaor | hi KyleHa sjohnson ! | 02:19 | |
:) | |||
cognominal | the doc about smarmatching is intimidating DWIDKIM it Does What I Did Not Know I Meant | 02:21 | |
02:22
justatheory joined,
Cataztrohpy joined,
yoblz left
02:26
araujo left
02:29
taur1an left
|
|||
sjohnson | going to play pool, fun chats today :) | 02:31 | |
see ya guys | |||
cognominal | rakudo: given $*IN { when :r { say "*" }} | 02:36 | |
p6eval | rakudo 0d4fe0: OUTPUT«Method ':r' not found for invocant of class 'IO'» | ||
02:36
qp_pq joined
|
|||
cognominal | I don't remember the new way "( | 02:36 | |
wayland76 | rakudo: given $*IN { when .r { say "*" }} | 02:38 | |
p6eval | rakudo 0d4fe0: OUTPUT«Method 'r' not found for invocant of class 'IO'» | ||
wayland76 | May be NYI on handles | ||
I don't know that, I'm just randomly guessing | 02:39 | ||
cognominal | rakudo: say "/etc" ~~ :r | ||
p6eval | rakudo 0d4fe0: OUTPUT«Method ':r' not found for invocant of class 'Str'» | ||
KyleHa | rakudo: say "/etc".IO ~~ :d | 02:41 | |
p6eval | rakudo 0d4fe0: OUTPUT«Method 'IO' not found for invocant of class 'Str'» | ||
KyleHa | I think that's the one that's in the spec, but it's not implemented. | ||
02:41
meppl left
|
|||
KyleHa | The spec changed recently. | 02:41 | |
cognominal | I got that from S03:2231 | 02:42 | |
KyleHa | Let me see if I'm hallucinating... | 02:43 | |
Here it is: dev.pugscode.org/changeset/27503 | 02:44 | ||
02:44
araujo joined
|
|||
wayland76 | rakudo: say $*IN^methods | 02:45 | |
p6eval | rakudo 0d4fe0: OUTPUT«Could not find non-existent sub methods» | 02:46 | |
wayland76 | rakudo: say $*IN.^methods | ||
p6eval | rakudo 0d4fe0: | ||
..OUTPUT«inseoflinessayprintgetprintfslurpcloseScalarreverseisapolarucfirstcombfmtfirsttranschoprindexvaluessubstelemschompindexkeyschrpairskvcapitalizepickevalfilep5choplcjoincharscanlcfirstrootsreduceComplextrim:dmap:ecis:flogminrandtruncatemaxbytessortsqrtIntgrepabsenducceilingp5chompunp… | |||
wayland76 | rakudo: say join ", ", $*IN.^methods | ||
p6eval | rakudo 0d4fe0: OUTPUT«ins, eof, lines, say, print, get, printf, slurp, close, Scalar, roots, uc, reverse, keys, isa, ucfirst, 1, fmt, bytes, 2, 1, join, trim, chr, floor, rand, 1, round, 1, 1, 1, split, 1, grep, words, values, can, lcfirst, 1, srand, 1, map, cis, kv, samecase, 1, min, capitalize, | ||
..max, t… | |||
wayland76 | rakudo: say join ", ", grep { !/^\d+$/ } $*IN.^methods | ||
p6eval | rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near "$*IN.^meth"in Main (src/gen_setting.pm:3390)» | ||
wayland76 | rakudo: say join ", ", grep { !/^\d+$/ }, $*IN.^methods | 02:47 | |
cognominal | rakudo: say $*IN.^methods.perl | ||
p6eval | rakudo 0d4fe0: OUTPUT«slurp, close, Scalar, ins, eof, lines, say, print, get, printf, end, ceiling, trim, p5chomp, pairs, unpolar, ord, rand, grep, values, roots, reverse, isa, ucfirst, kv, samecase, capitalize, fmt, bytes, flip, does, p5chop, lc, reduce, chr, comb, floor, round, chop, split, | ||
..words, can… | |||
rakudo 0d4fe0: OUTPUT«[{ ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... }, { ... | |||
..}, { … | |||
cognominal | :) | ||
wayland76 | rakudo: say join ", ", grep { !/^\d+$/ and /^.$/ }, $*IN.^methods | ||
p6eval | rakudo 0d4fe0: OUTPUT«Can't set self from this typein regex PGE::Grammar::_block62 (/tmp/FLsipYjmz9:2)called from method Any::grep (src/gen_setting.pm:172)called from sub grep (src/gen_setting.pm:295)called from Main (/tmp/FLsipYjmz9:2)» | ||
02:47
xomas_ joined,
arthur-_ joined,
obra_ joined,
omega_ joined,
broquaint joined,
ascent joined,
ingy joined,
dalek joined
|
|||
wayland76 | rakudo: say join ", ", grep { /^.$/ }, $*IN.^methods | 02:48 | |
p6eval | rakudo 0d4fe0: OUTPUT«Can't set self from this typein regex PGE::Grammar::_block57 (/tmp/rP2PspiV0d:2)called from method Any::grep (src/gen_setting.pm:172)called from sub grep (src/gen_setting.pm:295)called from Main (/tmp/rP2PspiV0d:2)» | ||
wayland76 | No idea | ||
02:49
carlin left
02:52
protorom joined
02:54
protorom left,
protorom joined
02:58
Anaphora left
03:02
nixfu joined
03:05
nixfu left
|
|||
ihrd | hi | 03:07 | |
rakudo: 1.^methods.^methods.join(', ').say | |||
p6eval | rakudo 0d4fe0: OUTPUT«values, delete, Scalar, , shift, Array, splice, exists, push, unshift, item, pop» | ||
ihrd | why I have no 'name' in this list? | 03:08 | |
1.^methods>>.name.join(', ').say | 03:09 | ||
03:09
dukeleto joined
03:10
japhb left
|
|||
ihrd | ah, I missed | 03:10 | |
03:10
molaf joined
|
|||
ihrd | rakudo: 1.^methods.[0].^methods.join(', ').say | 03:11 | |
p6eval | rakudo 0d4fe0: OUTPUT«Scalar, multi» | ||
ihrd | rakudo:1.^methods.[0].name | 03:13 | |
rakudo: 1.^methods.[0].WHAT.say | |||
p6eval | rakudo 0d4fe0: OUTPUT«Code()» | ||
ihrd | rakudo:1.^methods.[0].name.say | ||
03:15
ihrd left
03:16
ihrd joined
03:17
ihrd left
03:19
justatheory left
03:27
japhb joined,
tak11 left
03:30
tak11 joined,
molaf left
03:33
Limbic_Region left
03:34
jaldhar_ joined
03:38
justatheory joined
03:40
alester joined
03:43
molaf joined
03:44
molaf left
03:47
nihiliad left,
_jaldhar left
03:49
khisanth_ joined
03:51
Khisanth left,
khisanth_ is now known as Khisanth
03:59
KyleHa left
04:03
japhb left
04:11
fridim_ joined
|
|||
cognominal | rakudo: say Any.defined( Pattern ) | 04:12 | |
p6eval | rakudo 0d4fe0: OUTPUT«Could not find non-existent sub Pattern» | ||
cognominal | rakudo: say Any.defined( ::Pattern ) | ||
p6eval | rakudo 0d4fe0: OUTPUT«too many arguments passed (2) - 1 param expectedin Main (src/gen_setting.pm:3390)» | ||
04:13
rjh left,
rjh joined
04:19
jauaor left
04:23
jrockway left,
jrockway joined
|
|||
mikehh | rakudo (ae56d02) builds on parrot r40685 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64 | 04:30 | |
04:32
xomas_ left
04:39
zloyrusskiy joined
04:41
zloyrusskiy left
|
|||
cognominal | what is this method with an empty name? | 04:48 | |
my %a ; say join ', ', sort map { "'$_'" }, %a.^methods | |||
rakudo: my %a ; say join ', ', sort map { "'$_'" }, %a.^methods | |||
p6eval | rakudo 0d4fe0: OUTPUT«'', 'ACCEPTS', 'Hash', 'Scalar', 'contains', 'delete', 'exists', 'hash', 'invert', 'push'» | ||
04:49
zloyrusskiy joined
04:50
japhb joined
05:05
fridim__ joined
|
|||
spinclad | KatrinaTheLamia: re JPerl6: possibly of interest: pugs had a working javascript-emitting backend (likely badly bitrotten now). i seem to recall people at the time saying javascript was a fair piece friendlier environment for dynamic langs than JVM. nothing a few layers of abstraction wouldn't cure, i expect. | 05:06 | |
05:07
protorom left
05:14
frew__ joined
05:17
finanalyst joined
05:19
szabgab left,
drbean left
05:21
fridim_ left
05:28
alester left
05:32
bpetering joined
05:35
frew__ left
05:37
bpetering is now known as missingthepoint
05:41
orafu joined,
szabgab joined
|
|||
missingthepoint wonders what an "impedance mismatch" is... | 05:49 | ||
missingthepoint guesses though that an "impetdance mismatch" is when petdance is required, but not present. :) | 05:50 | ||
Tene | it's not usually used as a specific technical term, just a general idea that two conflicting worldviews are colliding. | ||
missingthepoint | oh hai Tene | ||
Tene | technology A does things one way, B does things a very different way, so they can't fit together. | ||
horizontal tab inserted into vertical slot. | 05:51 | ||
etc. | |||
that help? | |||
OH HAI MTP | |||
missingthepoint | does... Tene++ # meme education | 05:52 | |
missingthepoint-- # #perl6 -> meme school | |||
Tene | eh, nothing else important was going on ATM | ||
wayland76 | Well, impedance mismatch does have a specific sense in electronic engineering, and audio stuff, and things like that | 05:53 | |
Tene | Right. | 05:54 | |
I just meant that its use elsewhere isn't a specific concept. | |||
wayland76 | But my Dad's the EE, not me, so I can't remember what at the moment :) | ||
05:54
justatheory left
|
|||
Tene | en.wikipedia.org/wiki/Impedance_matching | 05:55 | |
en.wikipedia.org/wiki/Object-relati...e_mismatch is an example of a specific programming-related failure described by that term. | |||
wikipedia++ | |||
missingthepoint: any other memes for me? I'm (hopefully) going to sleep soon. | 05:56 | ||
missingthepoint | no, sleep well :) | 05:57 | |
Tene | Just recently found out I'm going on a surprise trip to Seattle next week, for work. Taking the gf with me this time. | 05:58 | |
missingthepoint | ooh, have fun... | ||
(if that's possible on a work trip) | 05:59 | ||
05:59
Chillance joined
|
|||
wayland76 | Actually, now that I think about it, the impedance mismatch meme means that they can be made to sort of fit if you push hard enough | 05:59 | |
Tene | missingthepoint: sure is. | ||
06:02
reqamst[zZzZz] is now known as reqamst
|
|||
missingthepoint | night Tene, afk for a bit | 06:06 | |
06:07
cotto left
06:08
mikehh_ joined,
cotto joined
|
|||
moritz_ | good localtime() Perl 6 folks | 06:08 | |
Tene | hi moritz | 06:09 | |
missingthepoint | hi moritz_ :) | 06:10 | |
06:15
rfordinal joined
06:16
tak11 left
06:23
rfordinal left
06:24
mikehh left
|
|||
moritz_ just found a weird bug in array attribute initialization, and wonders if he can reduce it to a usable size | 06:30 | ||
rakudo: class A { has @.b; method d { say @.b.perl } }; A.new(b => ([3, 4], [5, 6])) | 06:31 | ||
p6eval | rakudo 0d4fe0: ( no output ) | ||
moritz_ | rakudo: class A { has @.b; method d { say @.b.perl } }; A.new(b => ([3, 4], [5, 6])).d | ||
p6eval | rakudo 0d4fe0: OUTPUT«[[3, 4], [5, 6]]» | ||
moritz_ | ok, not so easy :/ | 06:32 | |
06:33
frederico left
|
|||
wayland76 | ping ruz: if you're still around, good question time starts now :) | 06:47 | |
06:50
Su-Shee joined
|
|||
Su-Shee | good morning. :) | 06:50 | |
moritz_ | good morning Su-Shee | ||
Su-Shee | the ircserver should serve coffee... | 06:51 | |
wayland76 | But then if the Internet was down, you'd have no coffee :) | 06:53 | |
Su-Shee fell into the office a little early... | 06:54 | ||
finanalyst | good localtime everyone | ||
06:55
rfordinal joined
|
|||
Su-Shee looks at 10 years old perl. | 06:58 | ||
06:58
dukeleto left
|
|||
missingthepoint | Su-Shee: my condolences. (at least it's perl.) | 06:59 | |
Su-Shee | actually, it's rather ok. I've expected much much worse. | 07:00 | |
07:00
qp_pq left
|
|||
Su-Shee | and *hihi* from an archeological point of view it's interesting seeing a perl project which runs constantly for a decade now. | 07:01 | |
moritz_ | Rakudo's spectest graph, recreated in Perl 6: moritz.faui2k3.org/tmp/progress-graph.svg | 07:02 | |
Su-Shee | *plopp* nice :) | ||
wayland76 remembers seeing some perl4 once, and giving up quickly :) | 07:03 | ||
moritz_ | there seem to be some small rounding errors | ||
which lead to sub-pixel whitespaces between the bars | 07:04 | ||
and when you zoom out, you see waves in the luminosity | |||
07:11
drbean joined
|
|||
finanalyst | moritz_: how was graph created? can i see program? | 07:29 | |
szbalint | ooo moritz_++ | ||
moritz_ | finanalyst: with my SVG::Plot module... | ||
finanalyst: github.com/moritz/svg-plot/ in the examples/ directory | 07:30 | ||
finanalyst | moritz_:++ | ||
Su-Shee | some day, there will be a Cairo binding... | ||
moritz_ | rakudo: say 1/7 | 07:32 | |
p6eval | rakudo 0d4fe0: OUTPUT«0.142857142857143» | ||
finanalyst | moritz_: typo line 69 s/Dez/Dec/ | 07:33 | |
moritz_ | rakudo: printf "%.30f", 1/7 | ||
p6eval | rakudo 0d4fe0: OUTPUT«0.142857142857142849212692681249» | ||
moritz_ | finanalyst: thanks. Actually language confusion ;-) | 07:34 | |
07:34
rfordinal left
|
|||
finanalyst | moritz_: where is SVG.pm? | 07:41 | |
moritz_ | finanalyst: in masak's github repo | ||
07:41
mikehh_ is now known as mikehh
|
|||
wayland76 | He has a plot to keep it for himself. That's why it's called SVG::Plot :) | 07:41 | |
szbalint | and SVG stands for Superbly Veiled Grand | 07:46 | |
:) | |||
cotto | Does Rakudo take advantage of Parrot's fact opcode yet? | 07:51 | |
moritz_ | cotto: a quick grep says "no" | 07:53 | |
what does fact do? | |||
cotto | It wasn't a very serious question. | ||
factorial | 07:54 | ||
moritz_ | oh. | ||
cotto | I'm surprised it hasn't been removed. | ||
moritz_ | sounds like a thing one would write to win in a specific benchmark ;-) | 07:55 | |
cotto | I'm pretty sure that's why it was put there. | ||
finanalyst | in SVG.pm I found '$svg = :svg[...]' I havent come across :xx[]. Is this the same as 'xx'=>[] ? | 07:56 | |
moritz_ | yes (and currently broken) | 07:57 | |
07:58
charsbar left
07:59
charsbar joined
|
|||
reqamst | I'm looking for perl6 bundle for textmate, anyone knows? | 08:05 | |
08:05
payload joined
|
|||
moritz_ only know of Perl 6 support for vim, emacs and padre | 08:06 | ||
missingthepoint is thinking of trying to add it to komodo... that may or may not involve solving the problem for other editors.... <o | 08:09 | ||
08:09
ejs joined
08:10
rfordinal joined,
rfordinal left
08:18
ejs1 joined
|
|||
sri_kraih would like a perl6 bundle for textmate too | 08:20 | ||
missingthepoint | well, buy me a mac and i'll work on textmate :P | 08:22 | |
reqamst | I am using textmate bundles in e editor for windows | 08:23 | |
many editors use textmate bundles and themes | |||
08:23
payload left
08:24
cj_ joined
08:26
dukeleto joined
08:27
ejs left
08:30
payload joined
08:37
Chillance_ joined
08:45
zamolxes left
08:51
szabgab left
08:54
Chillance left,
flip915 joined
|
|||
flip915 | Does someone know if there's something like a PASM to C converter or anything like that? | 08:55 | |
I'd like to compile perl6 into native code. | |||
moritz_ | flip915: perlgeek.de/blog-en/perl-6/my-first...table.html | 08:56 | |
I don't know if that works at the moment | |||
cotto | There was one built into Parrot quite a while ago, but it bitrotted from lack of love. | ||
flip915 | Yes, but that only puts the bytecode after some loader, doesn't it? | ||
moritz_ | yes, but it's an executable ;-) | ||
flip915 | I'm asking about letting a compiler run over it - with all available optimizations, like inlining and so on | 08:57 | |
cotto | It's a "fakecutable". | ||
moritz_ | cotto: what about that parrot runcore that creates executables? | ||
cotto | flip915, we're also hoping to use LLVM as a backend, but that's a long-term project. | ||
flip915 | Because I believe that the accessor functions for classes would get a major performance boost if they'd get reduced to "load int from base+X" | ||
instead of having to call a bytecode function | 08:58 | ||
and yes, I know about JIT ... but I think that a compiler could/should do that *one* time, and not at each run | |||
08:59
guest_007 left
|
|||
flip915 | LLVM sounds interesting | 08:59 | |
llvm.org/ | |||
cotto | We need to do a lot of groundwork first. | ||
but yes, it is | |||
moritz_, I think that's the one that got bitrotted and removed. | 09:00 | ||
moritz_ | actually we has a Summer of Code project planned for that - but real life got in the student's way | 09:01 | |
(for an llvm JIT backend, that is) | |||
cotto | flip915, if you're interested in helping, head on over to #parrot on irc.perl.org and help us figure out what needs to go into Lorito. | 09:02 | |
dalek | kudo: c06ba3a | moritz++ | docs/release_guide.pod: [docs] small udapte to release_guide.pod, mentioning tools/test_summary.pl |
||
cotto | trac.parrot.org/parrot/wiki/L1Recap (Lorito is the currently favored name for L1). Also, I'll stop with the non-perl 6 stuff now. | 09:04 | |
flip915 | cotto: Yes, I'm interested, but I won't find any free time for that ... I'm already overbooked 4 times in RL ;-[ | 09:12 | |
moritz_ | well, you found time for IRC ;-) | 09:13 | |
mikehh | rakudo (ae56d02) builds on parrot r40688 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64 | ||
flip915 | that's just while switching through the desktops | 09:14 | |
09:15
M_o_C joined
09:24
zamolxes joined
09:29
masak joined
09:31
szabgab joined
|
|||
masak | std: class A { method .new() {} } | 09:40 | |
p6eval | std 28042: OUTPUT«===SORRY!===Malformed block at /tmp/MrPXoPfOoE line 1:------> class A { method ⏏.new() {} } expecting any of: block subscript signature terminatorFAILED 00:02 37m» | ||
masak | std: class A { method !new() {} } | ||
p6eval | std 28042: OUTPUT«ok 00:02 38m» | 09:41 | |
masak | a case could be made for the '.new' form (as a synonym for 'new') being a logical extension of the '!new' syntax. | ||
moritz_ | a case could be made indeed. | 09:42 | |
however I don't know if there's much benefit from increased punctuation | |||
masak | me neither. | 09:49 | |
but I saw Kevan's method declaration syntax on p6l, and I had this thought. | 09:50 | ||
09:51
sjohnson sets mode: +o masak
09:59
rfordinal joined
|
|||
reqamst | paste.lisp.org/display/85787 | 10:01 | |
Is it bug? I am getting spaces beetween numbers. | 10:02 | ||
sjohnson | how's it going masak | ||
moritz_ | reqamst: not a bug, that's how arrays stringify | ||
masak | sjohnson: fine. a bit hectic today, but not too bad. | ||
moritz_ | 0,0,0 creates an array (a list, actually), not a string | ||
masak | sjohnson: how're you doing? | 10:03 | |
sjohnson | pretty good :) | ||
10:04
missingthepoint left
|
|||
masak | food & | 10:07 | |
jnthn | oh hai | 10:15 | |
moritz_ | OLOLITSJNTHN | 10:16 | |
10:19
szabgab left,
colomon left
10:21
szabgab joined
10:26
abra joined
10:28
guest_007 joined
|
|||
mikehh | rakudo (c06ba3a) builds on parrot r40691 - make test/make spectest (up to 28042) PASS - Ubuntu 9.04 amd64 (g++) | 10:36 | |
10:37
ihrd joined
|
|||
jnthn looks at xkcd today and groans | 10:44 | ||
wayland76 thinks xkcd website is slow due to OS upgrades using his internet connection :) | 10:47 | ||
pugs_svn | r28043 | moritz++ | [S02] small clarifications on Whatever comprehensions | 10:49 | |
wayland76 | I experience a strange feeling when reading moritz_'s commit message :) | 10:50 | |
(out of context) | 10:51 | ||
10:52
colomon joined
|
|||
wayland76 | I mean, how often do you tell people that you've been clarifying the whatever comprehensions? :) | 10:52 | |
reqamst | We need nice module for bouild XML structure for Tufte. Scruffy uses builder.rubyforge.org | 10:56 | |
moritz_ | reqamst: masak's SVG.pm (which is actually an XML writer) might do for a start | ||
10:57
xomas_ joined
10:58
zloyrusskiy left
|
|||
reqamst | moritz_: Oh, I see. | 10:58 | |
10:58
Chillance_ left
10:59
mtve joined
|
|||
moritz_ | std: ** | 11:03 | |
p6eval | std 28043: OUTPUT«ok 00:02 37m» | ||
11:12
payload left
|
|||
pugs_svn | r28044 | moritz++ | [t/spec] tests for whatever codes with multiple stars | 11:17 | |
jnthn | moritz_: Do you know what is ** parsing as? | 11:18 | |
rakudo: ** | |||
p6eval | rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near "*"in Main (src/gen_setting.pm:3390)» | ||
moritz_ | jnthn: probably as * * <missing term> | 11:19 | |
rakudo: say (** 3).(5) | |||
p6eval | rakudo 0d4fe0: OUTPUT«15» | ||
moritz_ | yes | ||
jnthn | moritz_: Wouldn't the missing term be a parse error though? | ||
moritz_ | ah wait, you meant STD.pm | ||
jnthn | moritz_: Right | ||
moritz_ | there's a term ** that's HyperWhatever | ||
jnthn | oh my... | 11:20 | |
OK. | |||
moritz_ | I wanted to add that to the grammar, but I couldn't find out how the * term is parsed | ||
11:21
flip915 left
|
|||
jnthn | moritz_: Line 664 | 11:21 | |
Inside token term | |||
moritz_ | jnthn: thanks | 11:22 | |
11:30
pmurias joined
11:34
fridim_ joined
11:40
fridim__ left
|
|||
jnthn | ooh, shiny | 11:40 | |
> multi trait_mod:<is>(AttributeDeclarand $a, :$mentioned!) { say "declared " ~ $a.name } | |||
lambdabot | <no location info>: parse error on input `)' | ||
jnthn | > class Test { has $.x is mentioned } | ||
lambdabot | <no location info>: parse error on input `class' | ||
jnthn | > Test.new | ||
lambdabot | Not in scope: `Test.new' | ||
jnthn | declared $!x | ||
/kick lambdabot | |||
(And yes, if you do Test.new again, it doesn't re-apply the trait. We get the applied-once semantics right-ish. :-)) | 11:41 | ||
oh, akshually we kinda won't...but we're close. ;-) | 11:42 | ||
ihrd | hi there | 11:43 | |
jnthn | oh hai | ||
ihrd | I just try make for test in lat rakudo and got | ||
A method named 'clone' already exists in class 'Perl6Object'. It may have been supplied by a role. | |||
moritz_ | ihrd: it seems you don't have a pugs commit bit yet - do you want one? (to apply the test patch) | 11:44 | |
jnthn | ihrd: In latest Rakudo from git? | ||
11:44
Zloyrusskiy joined
|
|||
ihrd | I checked it this morning, will check now again | 11:45 | |
moritz_ | ihrd: did you do a 'make clean'? | ||
ihrd | yes, only pod updated | ||
I done make realclean | 11:46 | ||
for rakudo and parrot, both | |||
moritz_ | and try to delete the installed parrot (rm -rf parrot_install if you built with Configure --gen-parrot) | ||
ihrd | okay, I will do | ||
and yes, I like to have pusg commit bit | 11:47 | ||
moritz_ | ihrd: them tell (or /msg) me your email address | ||
and desired nickname, if different from 'ihrd' | 11:48 | ||
oh, I thin I found it on the november maling list | |||
ihrd | ok | 11:49 | |
moritz_ | ihrd: you have mail. It's a custom to add yourself to the AUTHORS file as first commit (and to check your commit bit) | ||
11:49
carlin joined
|
|||
carlin | rakudo: say Temporal.WHAT; | 11:50 | |
p6eval | rakudo 0d4fe0: OUTPUT«Null PMC access in getprop()in Main (src/gen_setting.pm:3390)» | ||
moritz_ | that's less than awesome. | 11:51 | |
jnthn | moritz_: Yeah, it's the general "if I declare class A::B then A.WHAT is has an explode". | ||
Already ticketed (I saw the ticket a couple of days ago) | |||
11:52
kidd_ joined
|
|||
moritz_ | rakudo: say *(42) | 11:52 | |
p6eval | rakudo 0d4fe0: OUTPUT«invoke() not implemented in class 'Undef'in Main (/tmp/b42gX0yOwO:2)» | ||
carlin | rakudo: Temporal | ||
p6eval | rakudo 0d4fe0: OUTPUT«Null PMC access in getprop()in Main (src/gen_setting.pm:3390)» | ||
eiro | hello there | 11:53 | |
moritz_ | helleiro ;-) | ||
eiro | long time ago, i complain here about the fact that there is no .parsehandle method for grammar classes. Afaik, jnthn said that it could be a good addition | 11:54 | |
did someone worked on it? how to know ? | 11:55 | ||
carlin | Ah, so it's already known? | ||
moritz_ | eiro: in perfect Perl 6 one can simply write that as Grammar.parse(cat $handle) | ||
or $handle.cat or whatever it's called | |||
but rakudo doesn't do Cat objects yet | |||
jnthn | moritz_: cat? | 11:56 | |
moritz_ | jnthn: I forgot what the syntax for creating Cat objects is | 11:57 | |
wayland76 | Yes, you didn't think all those examples in the specs that say Cat.meow() were just window dressing, did you? :) | ||
moritz_ | perlcabal.org/syn/S05.html#Matching...on-strings | ||
jnthn | Ah, found it in S03. | ||
So Perl 6 can haz cheezburger? | 11:58 | ||
wayland76 | And various S32 docs | ||
jnthn | Anyway, it looks like cat would indeed deal with the issue. | 11:59 | |
dalek | kudo: f39e739 | moritz++ | src/parser/ (2 files): parse ** (HyperWhatever) |
||
jnthn | moritz_: Going to implement HyperWhatever somewhat too? :-) | ||
moritz_ | jnthn: I don't think it makes sense until we have multi-dimensional arrays ;-) | 12:00 | |
jnthn: but I don't like it when NYI features cause mis-parses | |||
jnthn | moritz_: Fair enough. | ||
I see that you dind't just make it parse, but also put in an NYI message. | |||
So that's fine. :-) | |||
Well, I actually prefer that over silently failing. | 12:01 | ||
But yes, parsing and saying NYI is even better. | |||
moritz_ | parsing **** as * ** * is plain wrong (although that would make an obfu much nicer) | ||
jnthn: but I could have made the commit message clearer, for sure | 12:02 | ||
eiro | re (chat with boss) | 12:03 | |
moritz_, thanks | |||
jnthn rips out a bunch of special case code, replaces it with a call to a trait_mod, and sees what the spectests make of it | 12:04 | ||
eiro | so now: what's the best strategy to build a filter that uses a grammar? i can grab all the content of stdin | ||
moritz_ | development by experiment ;-) | ||
eiro | but it can be huge | ||
moritz_ | eiro: right now that's your only option (unless you can do something line by line) | ||
eiro | moritz_, i can't as my parser will use more than one line | 12:05 | |
moritz_ | eiro: then you have to live with that restriction for now, and wait for lazy lists and streams to be implemented | 12:06 | |
12:06
takadonet joined
|
|||
takadonet | morning all | 12:06 | |
eiro | moritz_, no pb: it's just for test :) | ||
ihrd | moritz_: I reinstall rakudo | 12:11 | |
pugs_svn | r28045 | wayland++ | [S02,S03,S09,S11] Changed any example that had the animal "Cat" to have "Squirrel" | ||
r28045 | wayland++ | instead (both have kittens), because we already have a type called Cat and a | |||
r28045 | wayland++ | method called "cat", and I could see some potential for confusion. | |||
ihrd | still the same error there | ||
12:12
meppl joined,
carlin left
|
|||
jnthn | hm | 12:12 | |
has $.inst is rw; | |||
has $!priv is rw; | |||
jnthn wonders what the "is rw" means on the private. | 12:13 | ||
masak | it's a no-op, no? | ||
jnthn | masak: Well, it's a "omg trait dispatch fail" right now... :-/ | ||
masak | oh. | ||
jnthn | Well, in my branch that actually applies traits. | ||
Not in master which doesn't try to do anything other than the compiler handled ones. | 12:14 | ||
I guess I can just write a no-op trait multi to handle that though. | |||
moritz_ | sounds sensible | ||
jnthn | OK, good, thanks for the sanity check. :-) | ||
moritz_ | wayland76: + %cats\ .{'fluffy'} = Squirrel.new; | ||
jnthn | Squirrel is not a type of cat? | 12:15 | |
moritz_ | well, it would be sensible to name the variable %squirrels in that case ;-) | ||
jnthn | Please note that | 12:17 | |
moritz_ | anyway, I'lll fix that | ||
jnthn | + # to the type Fish and either the Squirrel or Dog type... | ||
+ my Squirrel|Dog Fish $mitsy = new Fish but { Bool.pick ?? .does Squirrel | |||
+ !! .does Dog }; | |||
Is not valid Perl 6.0.0. | |||
moritz_ | neither was the previous example, right? | ||
jnthn | No | ||
You can't have multiple prefix constraints. | |||
wayland76 | Oops, I've fixed it too :) | 12:18 | |
pugs_svn | r28046 | moritz++ | [S03] store Squirrels in %squirrels, not in %cats | ||
moritz_ was faster ;-) | |||
wayland76 | Oh well :) | 12:19 | |
jnthn | I suspect for now we're best keeping the spectests just having 6.0.0 stuff in them. :-) | ||
moritz_ | somehow my commit messages sound a bit surrealistic today | ||
jnthn likes surrealism. | 12:20 | ||
masak fish surrealism | |||
is there a way to neutralize the caught exception in a CATCH {} block? | 12:25 | ||
(I know the current behaviour is a Rakudobug, I'm looking for workarounds.) | |||
12:25
payload joined
|
|||
jnthn | Wasn't there some $!.handled = 1 thingummy? | 12:26 | |
12:27
pmurias left
|
|||
masak | jnthn: heh, that put the CATCH block in an infinite loop. :P | 12:28 | |
dalek | kudo: 527cb8f | moritz++ | src/setting/NYI.pm: NYI-message for cat($) |
||
jnthn | *snort* | 12:29 | |
12:29
ihrd left
|
|||
jnthn | masak: Wait, do CATCH blocks re-throw exceptions? | 12:29 | |
masak | jnthn: in Rakudo, it seems they do currently, yes. | 12:30 | |
jnthn | wtf | ||
that makes them, erm, vaguely uesless, no? | |||
masak | rakudo: die "ouch!"; CATCH { say "Gotcha!" } | ||
p6eval | rakudo 0d4fe0: OUTPUT«Gotcha!ouch!in Main (/tmp/1J46ZU1NsE:1)» | ||
masak | jnthn: aye. | ||
jnthn | rakudo: sub foo { die "ouch!"; CATCH { say "Gotcha!" } }; foo | ||
p6eval | rakudo 0d4fe0: OUTPUT«Gotcha!ouch!in sub foo (/tmp/lY3kLWxGOw:2)called from Main (/tmp/lY3kLWxGOw:2)» | ||
jnthn | aww shiesse | 12:31 | |
Tene: See ^^ | |||
masak | rakudo: die "ouch!"; CATCH { say "Gotcha!"; $!.handled = 1 } | 12:32 | |
p6eval | rakudo 0d4fe0: | ||
..OUTPUT«Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Gotcha!Go… | |||
masak | well, at least it doesn't re-throw... :P | ||
12:34
Satish joined
12:35
Satish left
|
|||
frettled | moritz_: You know, the cats may disagree and think that squirrels _should_ be stored in cats. Just mentioning it. | 12:37 | |
jnthn | wantfud! | ||
wayland76 | well, those cats can go clarify their Whatever comprehensions for all I care :) | 12:38 | |
12:38
payload1 joined
|
|||
masak | one would think that cats have been evolved to store rodents. | 12:38 | |
12:38
payload left
12:39
kidd_ left
|
|||
wayland76 | I doubt the rodents think of it as "storage" :) | 12:39 | |
12:40
szabgab left,
unitxt joined
|
|||
masak | squirrels have kittens? this is news to me. | 12:54 | |
wayland76 | Or maybe kits -- I thought it was kittens, but I didn't check :) | 12:59 | |
13:03
NegativeParallax joined
|
|||
frettled | masak: they also have [citation needed], according to the Wikipedia article on kittens. | 13:10 | |
wayland76: 3: young of any of various fur-bearing animals; "a fox kit" | |||
seems right, according to Wordnet | |||
masak | I learn something new every day, it seems. thanks, frettled. | 13:12 | |
Matt-W++ # use.perl.org/comments.pl?sid=43556&cid=70195 | 13:16 | ||
jnthn | That's a very good response. | 13:19 | |
What it was in response to kinda pissed me off. | |||
masak | it was written in a style meant to piss people off. | 13:20 | |
I'm toying with the idea of creating a blog around that comment and its (so far) three responses. | |||
er, blog entry. :> | 13:21 | ||
(I'm ambitious, but not _that_ ambitious...) | |||
jnthn | "I'm writing this because I care about Perl, about the community, about Perl 6" => bluntly, those of us who are actually doing the work are showing a heck of a lot more care for all of those than somebody who writes a factually inaccurate comment on a blog post that mis-interprets some really quite clear statements | ||
masak | nod. | 13:22 | |
I've been thinking long about the dynamics of outsider misunderstanding of this kind. | |||
I think it's inevitable, because the bottle neck that we can communicate through to outsiders is extremely narrow. | 13:25 | ||
13:25
carlin joined
|
|||
jnthn | Misunderstanding is fine. Being an ass is less fine. | 13:26 | |
wayland76 | If my Web connections start working again, I'm very tempted to say "You obviously have no clue about what's going on with Rakudo. Based on the fact that a single article doesn't tickle your fancy, you write the whole project off :)" | ||
masak | I'm not saying we should tolerate it, I'm saying it'll happen. | ||
wayland76 | But I should probably restrain myself | ||
jnthn | Sure. | ||
masak | wayland76: yes, I think you should. | 13:27 | |
wayland76 | OTOH, he might respond well to people who write like him :) | ||
masak | wayland76: the three answers so far are impressing because they don't talk about the commenter. instead, they clarify the situation itself, and why it's a lot less dystopian than the commenter thinks. | 13:28 | |
jnthn | Aye. | ||
frettled | Yep. | ||
wayland76 | But I will refrain. Don't worry :) | ||
frettled | I think it's best to leave it at that. | ||
jnthn | I didn't bother commetning because so many @other had written far better comments than I could. | ||
frettled just thought "what a jerk". | |||
masak | note, also, that this is the type of account seemingly created just to troll. | 13:29 | |
13:29
payload1 left,
payload joined
|
|||
frettled | «furry_marmot (9372) is all alone in the world.» | 13:29 | |
hee-hee. | |||
masak | when I looked, the activity was limited to that comment. | ||
wayland76 | Bedtime for me. 'night all | 13:30 | |
frettled | I don't even have a use Perl account, I think, so it's very easy to refrain from answering. | ||
masak | wayland76: o/ | ||
frettled | wayland76: sleep well | ||
jnthn | masak: Yeah, I noted taht. | 13:31 | |
wayland76 | Will do my best, sah! | ||
masak | rakudo: "foo" ~~ /bar/; say $/.from; say $/.to | 13:33 | |
p6eval | rakudo 0d4fe0: OUTPUT«3-2» | ||
masak | I see that the 3 is the length of the target, but what's -2? | ||
13:34
ejs2 joined
|
|||
moritz_ | .from and .to of an unsuccessful match are meaningless | 13:34 | |
13:35
nihiliad joined
|
|||
masak | hokay. | 13:35 | |
moritz_ | masak: speaking of which, have you seen my match object visualizations? | ||
github.com/moritz/svg-matchdumper/tree/master | 13:36 | ||
I wanted to blog about it, but I first have to fix some technical issues with my blog | |||
masak | no, I haven't. but I will, immediately. | ||
moritz_: did you add the project to proto's projects.list yet? | 13:37 | ||
moritz_ | masak: don't think so - but I'll do | 13:38 | |
masak | moritz_: great. | ||
make sure to put svg in deps.proto in the project when you do. ;) | 13:39 | ||
13:39
frew__ joined
|
|||
jnthn | awww...so close and then Null PMC Access. :-/ | 13:39 | |
masak | ...so that the small benefit of using proto can work its insufficient magic. :) | ||
jnthn | rakudo: subset Even of Int where { $^n % 2 == 0 }; class Foo { has Even $.x }; Foo.new(x => 3) | 13:40 | |
p6eval | rakudo 0d4fe0: OUTPUT«Assignment type check failed; expected , but got Intin Main (/tmp/ehru9l0rls:2)» | ||
13:41
jaldhar_ is now known as jaldhar,
Su-Shee left
|
|||
masak | .oO( less than awesome error... probably ticketed already... ) |
13:43 | |
jnthn | masak: nod | ||
13:44
ejs1 left
|
|||
jnthn | heh | 13:47 | |
When you know you really screwed it up: a test fails with "Assignment type check failed; expected C, but got C" | |||
masak | o_O | 13:48 | |
I'd call that a meta-error. | |||
jnthn | it might be a punny bug | 13:50 | |
We've also been silently getting away with one or two things up until now... | 13:51 | ||
I won't be too surprised if when I push, somebody's code somewhere breaks... | 13:52 | ||
frettled | And you know who will report it, don't you? *grins at masak* | ||
masak | well... | 13:53 | |
jnthn | Temporal.pm in the setting was actually getting away with one of those "looked OK but actually was not working" things... | ||
:-/ | |||
13:53
ejs1 joined
|
|||
jnthn | In a nutshell, there were various cases where you could write has SomeType $.x | 13:54 | |
And if we failed in the lookup of that SomeType we'd silently ignore that. | |||
masak | ooh. | 13:55 | |
jnthn | Well, we stored a Null PMC, which was then taken to mean "untyped". | ||
masak | rakudo: class A { has SomeType $.x } | ||
p6eval | rakudo 0d4fe0: OUTPUT«Malformed declaration at line 2, near "SomeType $"in Main (src/gen_setting.pm:3390)» | ||
jnthn | Which was OK when we had a special code-path that took care of typed attributes. | ||
But now I've ripped that out and made it just work the standard way...it's broked. :-( | 13:56 | ||
masak: No, no, you need more subtle than that. | |||
13:56
payload left
|
|||
jnthn | masak: Declaring a lexical subtype was what Temporal.pm does. | 13:56 | |
my subset ... | |||
masak | subtle... ok, I can do subtle... :P | ||
jnthn | Then because of the lexicals over class boundaries issue, the lookup failed. | ||
13:56
payload joined
|
|||
masak | rakudo: subset Subtle of Int where { $^n % 7 == 0 }; class A { has Subtle $.error }; say A.new(:subtle(14)).error.WHAT | 13:58 | |
p6eval | rakudo 0d4fe0: OUTPUT«()» | ||
frettled | That was subtle. | 13:59 | |
jnthn | rakudo: subset Subtle of Int where { $^n % 7 == 0 }; class A { has Subtle $.error }; say A.new(:subtle(13)) # should fail | ||
p6eval | rakudo 0d4fe0: OUTPUT«A()<0xb5686b58>» | ||
jnthn | fails at failing. | ||
masak | that's ticketed, I'm sure. | ||
jnthn | It is. | 14:00 | |
Thing is, it's fatal now. | |||
Rather than a silent failure. | |||
14:01
ejs2 left
|
|||
jnthn | If that really bothers people, I may be able to put in a hack to make it not so. | 14:01 | |
masak | doesn't bother me. | ||
14:04
frew__ left,
sri_kraih_ joined
14:12
KyleHa joined
|
|||
jnthn crosses his fingers and spectests again | 14:12 | ||
takadonet | jnthn: what are you changing ? | 14:14 | |
14:15
finanalyst left
|
|||
moritz_ | big scary trait changes, as I know him ;-) | 14:15 | |
jnthn | Well, not that big and scary | 14:16 | |
Basically, traits on variables. | |||
Which in itself doesn't seem so bad in that we haven't really supported it before officially, but actually "my Int $x" is just sugar for "my $x of Int". | 14:17 | ||
Which means it's a dispatch to trait_mod:<of> | |||
But also I've been tidying up how trait_mod:<of> worked. | |||
Before we had to have some inline PIR. | 14:18 | ||
So it was a bit of "fun" making sure we could do that stuff from Perl 6. | 14:19 | ||
But deeper, we were really cheating on "has Int $.x" | |||
14:19
_jaldhar joined,
NegativeParallax left
|
|||
jnthn | We weren't even doing it in terms of the trait_mod | 14:19 | |
Nor were we supporting traits on attributes at all. | |||
So it was a bit of a shuffle around to make that all work. | |||
More special case code got deleted along the way though, so I think it's an overall win. :-) | 14:20 | ||
14:21
sri_kraih left,
ejs1 left
14:23
sri_kraih_ left
14:24
sri_kraih joined
|
|||
moritz_ | I'm sure pmichaud agrees ;-) | 14:25 | |
Tene | jnthn: thanks for the note about the exception bug. I'll look into it. | ||
jnthn | Tene: Awesome, thanks. :-) | ||
Tene++ | 14:26 | ||
Tene: While you're looking at these things... | |||
Tene: a return in CATCH I think goes infinite-ish too. | |||
Tene: Plus return should look for a handler in the lexical rather than the dynamic scope. | |||
Tene | I gave up on working on exceptions stuff a while back when I couldn't get any feedback from anyone on how they should work. | ||
jnthn | Ah, the control exception vs non-control exception stuff? | 14:27 | |
Tene | No. Just basic stuff like "In Perl 6, I want to catch an exception, and resume it. What's the API for that?" | 14:28 | |
"What's the API for marking an exception as handled or not? | |||
etc. | |||
14:29
omega_ left,
omega joined
14:30
Psyche^ joined
|
|||
Matt-W | masak: I get ++ for telling the truth? cool! | 14:31 | |
14:31
jaldhar left
|
|||
jnthn | Tene: I'd imagine they're both going to be method calls on the exception object. | 14:32 | |
Tene: Ah, see here | |||
svn.pugscode.org/pugs/docs/Perl6/Sp...eption.pod | |||
masak | Matt-W: no, you get ++ for putting the truth in a form that not everyone can. | ||
14:33
ruoso joined
|
|||
Matt-W | masak: Oh so it has to be recognisable truth. Damn. | 14:33 | |
That's just hard work that is :P | |||
jnthn | Tene: Admittedly it needs some fleshing out though. :-/ | 14:34 | |
Tene | A bit. :) | ||
OK, sounds great. | 14:35 | ||
AFK, class. | |||
jnthn | Tene: Don't feel you aren't allowed to do that fleshing out. :-) | ||
masak | Matt-W: no, I thought the tone and the maturity of the response were admirable. certainly way above what such a poster actually deserves. | 14:37 | |
jnthn | I think that we have people who can write responses like that, and that others who can't have the restraint not to, is a real strength of the Perl 6 community. | 14:39 | |
14:39
hercynium left
|
|||
masak works himself through that maze of negations | 14:40 | ||
oh, I misparsed. :) it wasn't as bad as I read it. | |||
jnthn | Sorry. :-) | ||
masak | not your fault. :) my parser had a glitch. | 14:41 | |
jnthn | It could have been slightly better put too. :-) | ||
masak | how to I force a {} block to be a hash block? | ||
jnthn | hash | 14:42 | |
rakudo: say (hash {}).WHAT | |||
p6eval | rakudo 0d4fe0: OUTPUT«Hash()» | ||
masak | rakudo: say (map { hash( 1, 2 ) }, 1, 2, 3).perl | ||
p6eval | rakudo 0d4fe0: OUTPUT«["1" => 2, "1" => 2, "1" => 2]» | ||
14:43
Patterner left,
Psyche^ is now known as Patterner
|
|||
masak | I want a list of hashes. | 14:43 | |
jnthn | Should that really flatten, I wonder... | ||
say (map { { 1 => 2 } }, 1, 2, 3).perl | 14:44 | ||
rakudo: say (map { { 1 => 2 } }, 1, 2, 3).perl | |||
p6eval | rakudo 0d4fe0: OUTPUT«[{"1" => 2}, {"1" => 2}, {"1" => 2}]» | ||
masak | that's all good and well, but I don't have literal pairs in my code. | ||
so I can't use that form of coercion. | |||
jnthn | "don't have literal pairs"? | 14:45 | |
Oh, you already have pair objects? | |||
masak | actually, I'm making them with an inner map. | 14:46 | |
Matt-W | jnthn: It was good when that comment first appeared that there were people saying no, I can't reply to that properly. The instinctive urge to start a flame war was averted with no apparent effort. | ||
masak | but essentially, yes. | ||
14:46
kidd_ joined
|
|||
masak | there will be more situations like that before Perl 6 proves itself to everyone. | 14:46 | |
Matt-W | Naturally | 14:47 | |
I'm continually correcting misconceptions and spreading the word | |||
This morning that nearly verged on translating #songsincode posts on Twitter... | 14:48 | ||
Probably taking things a bit far, but a lot of them look better in Perl 6 :) | |||
14:49
Zloyrusskiy left
|
|||
jnthn | OK, so I have my branch and I want to merge. | 14:52 | |
I've done git rebase master | |||
And all looks good. | |||
masak | great. | ||
rakudo: my %hash = a => "b"; say (map { {%hash} }, 1, 2, 3).perl | |||
p6eval | rakudo 0d4fe0: OUTPUT«["a" => "b", "a" => "b", "a" => "b"]» | ||
masak | it flattens! | 14:53 | |
what should I do? | |||
jnthn | Ouch, that doesn't look right. | ||
masak | "All I want for Christmas is an Array of Hashes..." :P | ||
jnthn | rakudo: my %hash = a => "b"; say (map { \%hash }, 1, 2, 3).perl | ||
p6eval | rakudo 0d4fe0: OUTPUT«[{"a" => "b"}, {"a" => "b"}, {"a" => "b"}]» | ||
masak | ah, there you go. jnthn++ | 14:54 | |
jnthn | Matt-W: OK, so I know I could do git-gui and just merge in there. | ||
I'm curious what the magical incantation is from the command line though. | |||
Matt-W thinks jnthn meant masak | |||
tab completion strikes again | |||
jnthn | yes, I wanted masak...sorry | ||
Matt-W: If you know the answer you can tell me though. ;-) | 14:55 | ||
masak | jnthn: oh, it's just (in master) 'git merge <branch>' | ||
14:55
Guest28989 left
|
|||
Matt-W | no I don't, sorry | 14:55 | |
not really done git merging yet | |||
jnthn | masak: Wow. | ||
masak: It appears to have Just Worked. | |||
masak | jnthn: I'm teeling you! | 14:56 | |
it's heavenly. | |||
jnthn | masak: Do I need to now do any kind of commit, or is it just a push? | ||
masak | just a push. | ||
jnthn | OK | ||
oh wait | |||
I broke the occasional workingness of //= | |||
With my | |||
pmichaud | good morning, #perl6 | ||
masak | pmichaud: o/ | 14:57 | |
14:57
adam-pwgsc joined
|
|||
jnthn | Morning, pm | 14:57 | |
KyleHa | The way git Just Works scares me sometimes. It Works but doesn't Say anything, and I think, "OMG! Is it OK?" | ||
mkelly32 | just add -v to everything, then | 14:58 | |
pmichaud | KyleHa: you would prefer "I just did what you asked me to. I encountered a few problems, but took care of them for you. Yes, really, it works! You can thank me later." | ||
? | |||
KyleHa | I think -v is what I want. | ||
svn and svk are so much more chatty. It's comforting. | 14:59 | ||
masak | git is like chocolate and ponies and a good shower. | ||
pmichaud | I wonder if we should put an error message in Rakudo that says "Unable to find suitable error exception at foo.pl line 275" | ||
masak | I want to hug git with oven mittens! | ||
jnthn has never taken chocolate or ponies in the shower with him | |||
adam-pwgsc | masak: But it comes with no instructions and you have to stay blindfolded for 24 hours :D | 15:00 | |
pmichaud | i.e. -- perhaps we should throw a warning if we're not able to find anything that needs a warning | ||
masak | adam-pwgsc: that might have been true two years ago. not so now, I find. | ||
KyleHa | pmichaud: I'll write that into the spec. | ||
pmichaud | KyleHa: thanks! | ||
adam-pwgsc | masak: Git-gui still doesn't have a "git pull" command | ||
masak | adam-pwgsc: I wouldn't know, I'm a console person. | 15:01 | |
adam-pwgsc | masak: That's what I mean. I want to code up a nice pretty GUI for Git. | ||
I use the console as well | 15:02 | ||
masak | adam-pwgsc: in Perl 6? please do. | ||
15:02
lionWrk joined
|
|||
adam-pwgsc | masak: Actually, that's a great idea | 15:02 | |
15:03
carlin left,
unitxt left,
dukeleto left,
pugs_svn left,
michaelr left,
skids left,
sjohnson left,
jeekobu left,
szbalint left,
frettled left,
rhr_ left,
allbery_b left,
larsen left,
phenny left,
Lorn left,
c1sung left,
avar left,
LionMadeOfLions left,
buubot left,
pnu left,
clkao left,
ilbot2 left,
ewilhelm_ left
|
|||
masak | adam-pwgsc: it's the right time, too. GUIs are just becoming possible with Rakudo. | 15:03 | |
15:03
frettled joined,
carlin joined,
unitxt joined,
dukeleto joined,
pugs_svn joined,
larsen joined,
LionMadeOfLions joined,
rhr_ joined,
ewilhelm_ joined,
Lorn joined,
ilbot2 joined,
c1sung joined,
clkao joined,
buubot joined,
pnu joined,
szbalint joined,
jeekobu joined,
sjohnson joined,
skids joined,
allbery_b joined,
avar joined,
michaelr joined,
phenny joined,
irc.freenode.net sets mode: +oo frettled sjohnson
15:04
justatheory joined
|
|||
adam-pwgsc | masak: What gui toolkits are supported? Where can I find this out? | 15:06 | |
15:07
rfordinal left
|
|||
masak | adam-pwgsc: I know Tene has something Enlightenment-y working. Su-Shee had something also, I think. | 15:07 | |
Matt-W & | 15:08 | ||
Tene | Yes, if you want to use a pretty but obscure and awkward to obtain toolkit, I have bindings for some of the enlightenment libraries. | ||
15:08
MoC` joined
15:09
M_o_C left
|
|||
adam-pwgsc | Cool. I'll have to look up what it's like compared to GTK+ (what I'm familiar with) | 15:10 | |
pmichaud | Tene: rdice has been wanting to learn more about NCI stuff in Parrot, could I get him in touch with you? (and perhaps japhb also?) | ||
15:10
gfldex is now known as Guest41865,
Guest41865 left
15:11
gfldex_ joined
|
|||
Tene | pmichaud: Yes, that would be fine. | 15:11 | |
pmichaud | okay, great. I'll send email. | ||
jnthn | meh, //= and friends dumped the LHS's PAST nodes into the PAST tree twice. | 15:13 | |
No wonder it was messed. | |||
jnthn spectets again and hopes this will be the last thing he needs to do before pushing. | 15:14 | ||
15:14
alester joined
15:15
nihiliad left
|
|||
jnthn | afk for 20-30 mins or so | 15:15 | |
15:16
alester left,
alester joined
|
|||
japhb | pmichaud, you are welcome to pass my nick on. | 15:18 | |
pmichaud | japhb: excellent! | ||
Tene | NO SHUT UP I GET TO HELP HIM | 15:20 | |
15:23
LionMadeOfLions left
|
|||
carlin | sub foo {}; say foo.WHAT; | 15:25 | |
oops | |||
rakudo: sub foo {}; say foo.WHAT | |||
p6eval | rakudo 0d4fe0: OUTPUT«List()» | ||
adam-pwgsc is confused how that is anything | 15:26 | ||
pmichaud | it's the same as | ||
rakudo: sub foo {}; say foo().WHAT; | |||
p6eval | rakudo 0d4fe0: OUTPUT«List()» | ||
moritz_ | shouldn't that be Nil? | 15:27 | |
pmichaud | I'm still waiting to find out if Nil is a type. As of YAPC::NA, it wasn't. :-) | ||
15:28
kidd_ left
|
|||
masak | Nil feels like a subtype to me. | 15:28 | |
adam-pwgsc | So it's nothing, and nothing can't be a scalar because a scalar is something, so it needs to be a list? Why is is a list? | 15:29 | |
adam-pwgsc should read more about perl6 | |||
pmichaud | adam-pwgsc: I wouldn't take Rakudo as being accurate on this point. | ||
There are still parts of the specification regarding lists and return values that are being fleshed out, so Rakudo is in a quasi-state of "do what seems to work even if it's not accurate by the spec" | 15:30 | ||
adam-pwgsc | Nifty. So Rakudo.state.WHAT eq "List()"? ;) | 15:31 | |
pmichaud | "Yes." :-) | 15:32 | |
jnthn | oh yay | 15:34 | |
Eliminating the special case code also eliminated a bug in it. | |||
We win 2 TODO spectests | |||
takadonet | good job jnthn! | ||
masak | jnthn++ | 15:35 | |
jnthn | That means I can close another masakticket. ;-) | 15:36 | |
KyleHa++ # writing spectests and noting which RT ticket they related to next to them | |||
KyleHa | In my documentation dream world, every bug refers to a spec/requirement that it violates and to the test that shows its presence or absence. Every requirement refers to the test that demonstrates it and vice versa. In the real world, I dream a lot. 8-) | 15:39 | |
adam-pwgsc | In the future, would it be possibly for me to, theoretically, use a python library but write perl code that interfaces with it? Or do I not understand Rakudo and Parrot? | 15:40 | |
masak | adam-pwgsc: you understand correctly. | ||
Tene | adam-pwgsc: that's exactly right. | ||
jnthn | adam-pwgsc: That is a goal of Parrot, yes. | ||
PerlJam | adam-pwgsc: if both python and perl are running on parrot. | ||
jnthn | adam-pwgsc: In fact, there's already (not for Python, but Ruby) been some early proof of concept demonstration. | 15:41 | |
Tene | Today, you can write Perl 6 code that interfaces with any of Ruby, Scheme, and TCL. | ||
I started adding support for Python, but lost momentum and didn't finish. | |||
jnthn | See blogs.gurulabs.com/stephen/2009/05/...ading.html | ||
adam-pwgsc | That's awesome. | 15:42 | |
PerlJam | yeah, Tene++ | ||
adam-pwgsc | Is it automatic, or will devs have to add specific interfaces for each language? | ||
jnthn | Happily, both TCL and Ruby on Parrot I know are seeing active development too. Scheme may well also be... | ||
Tene++ indeed. | |||
Tene | adam-pwgsc: the language just needs to support a single interface. | 15:43 | |
and all languages can use that same interface from any other. | |||
So you just need "inter-language library loading support", instead of support for each other individual language. | |||
pugs_svn | r28047 | jnthn++ | [t/spec] Unfudge a couple of tests for Rakudo. | 15:45 | |
jnthn | KyleHa: Dreams of making things even better aren't a bad thing to have. :-) | 15:46 | |
15:46
dalek left
|
|||
jnthn | oops | 15:46 | |
That dalek flood was me comitting too much in one go. | |||
;-) | |||
15:47
dalek joined
|
|||
jnthn | dalek: You need to speak more slowly when there's a lot of commits. :-) | 15:47 | |
Not self-exterminate. | |||
15:48
Infinoid joined
15:49
masak left
|
|||
carlin | rakudo: sub foo; # wrong ofc | 15:51 | |
p6eval | rakudo 0d4fe0: OUTPUT«Malformed routine definition at line 2, near "foo; # wro"in Main (src/gen_setting.pm:3390)» | ||
carlin | rakudo: say foo; | ||
p6eval | rakudo 0d4fe0: OUTPUT«Could not find non-existent sub foo» | ||
carlin | bah | 15:52 | |
on the command line, when executed after each other I get | |||
maximum recursion depth exceeded | |||
? | |||
jnthn | That's quite an achievement. | ||
jnthn tries it | |||
dalek | kudo: 59cb023 | jnthn++ | src/parser/actions.pm: Fix //=, ||= and &&= to only evaluate the LHS once. Fixes various quirks, including a failure exposed by recent refactors as a result of the double-evanluation. |
||
jnthn | carlin: bwaha | ||
Can reproduce it here too. | 15:53 | ||
PerlJam | carlin: that's what I get too. | ||
15:53
adhoc_ joined
|
|||
jnthn | carlin: File rakudobug. | 15:53 | |
15:53
cj_ left,
nihiliad joined
|
|||
carlin filed bug | 15:59 | ||
I finally found one that wasn't already known, heh | |||
jnthn | Congrats. :-) | 16:00 | |
16:02
rfordinal joined
|
|||
PerlJam | carlin: I bet you can find more in the same vein. Try it again with methods and submethods. | 16:02 | |
16:02
MoC` left,
nErVe joined
16:05
adhoc left
16:08
jauaor joined
16:09
nErVe left
16:10
jan_ joined
|
|||
pugs_svn | r28048 | jnthn++ | [t/spec] Revise tests for traits on variables, and add tests for traits on attributes. | 16:20 | |
16:20
zamolxes left
16:21
duke_leto joined
|
|||
duke_leto | Hi! I have a problem using rakudo, I’m afraid… I installed it from git yesterday and added the install directory to $PATH | 16:22 | |
but whenever I try to run perl6, I get the message “Null PMC access in isa()” | 16:23 | ||
dalek | kudo: 99f4e45 | jnthn++ | t/spectest.data: Add S14-traits/attributes.t and S14-traits/varialbes.t to spectest.data. |
||
duke_leto | I don’t think that one is new, but I haven’t found a solution :-( | ||
does anyone know how to fix this? | |||
jnthn | duke_leto: make install | 16:24 | |
And then use the installed version. | |||
duke_leto | okay, I'll try :-) thanks. | 16:25 | |
duke_leto is happy. | |||
jnthn | :-) | ||
duke_leto | is that a common problem? | 16:26 | |
jnthn | It's a change from how things used to be, so quite a few people have been asking about it. | ||
duke_leto | How to get Rakudo Perl 6 | Rakudo.org <rakudo.org/how-to-get-rakudo> says nothing about “make install” | ||
PerlJam | duke_leto: now that there's an install target, it's becoming common :) | ||
jnthn | It was noted in the release announcement and README. | ||
duke_leto | :-/ | ||
jnthn | Oh, that page wasn't updated yet? | ||
duke_leto | I thought I had read those | ||
jnthn | I've got an edit bit there... | ||
PerlJam | it does say "$make install" | 16:27 | |
duke_leto | oh, yes… | ||
seems it has been too late yesterday :-/ sorry … | |||
jnthn | no probs :-) | 16:28 | |
PerlJam: Yeah, it does already. | |||
:-) | |||
I figure people will just get used to it with time. Just one of those changes. :-) | |||
PerlJam | Hrm. when I try to login to rakudo.org it takes me to a blank page: rakudo.org/node?destination=node | 16:29 | |
duke_leto | I heard rakudo is quite usable for some time now. Gonna start a new project in p6 :-) So probably you'll see more of me for the time being ;-) | ||
jnthn | Cool | ||
PerlJam | duke_leto: what's the project? | 16:30 | |
carlin | how difficult would it be to make it say about "make install" rather than just giving a Null PMC message? | 16:32 | |
jnthn | Not sure | ||
pmichaud | very. | ||
jnthn | I guess we'd not handle it where it throws | ||
pmichaud | the underlying problem is that parrot doesn't throw an exception when a .load_library fails. | ||
jnthn | But instead figure out what it's fidning as null and just chck it at startup. | ||
duke_leto | PerlJam: ticgit is borked, so I put my tickets in a plain text file. I liked the style, so I'll put something together. Not a big thing | ||
pmichaud | We *could* do a test at the beginning to make sure the library got loaded. | 16:33 | |
jnthn | pmichaud: It'd not hurt to do taht. | ||
*that | |||
duke_leto | The plan is that the system can be used without the program, too… And *still* look good ;-) | ||
pmichaud | agreed. You want to do it or me? | ||
make it part of the :load :init in perl6.pir | |||
right before/after doing the load_bytecode of PCT | 16:34 | ||
jnthn | I can do it. | ||
Do you know what specifically it finds null, off hand? | |||
If not, I'll go hunt it down. | |||
16:34
Front_slash joined
|
|||
pmichaud | we don't need to check for null | 16:34 | |
we need to make sure that the Rakudo PMC types are available and that the opcodes are available. | |||
trapping the individual null exception is more of a symptom than the underlying problem. | 16:35 | ||
jnthn | No no | ||
I meant, try and get the Rakudo PMC type or something | 16:36 | ||
And if it gives us a null, that's how we know. | |||
pmichaud | any of the pmc types should be sufficient. | ||
jnthn | Aye. | ||
takadonet | Anyone else having trouble using a class with role when both are in different files in the same directory? The class cannot seem to find the Role. | 16:43 | |
jnthn | takadonet: What error are you seeing? | ||
takadonet | Unable to parse class definition at line 1, near "does role1" | 16:44 | |
in Main (src/gen_setting.pm:1548) | |||
jnthn | takadonet: You did write a use statement, yes? | ||
takadonet | ...... | 16:45 | |
jnthn | If it's not that, I'd be interested to see a nopaste (or cut down nopaste if you prefer) of the code. | ||
(or you can pass one over anyway if you like) | |||
If you are going to use some code from a different file, you need a "use" statement to load that module. | |||
So file MyRole.pm has like role MyRole { ... } | 16:46 | ||
Then in MyClass.pm you need | |||
use MyRole; | |||
class MyClass does MyRole { ... } | |||
takadonet | jnthn: I forgot my use statement..... hate doing stupid mistakes.... | ||
jnthn | :-) | ||
Phew, not a Rakudo bug this time. ;-) | |||
PerlJam | "unable to parse" probably needs to read "unable to find role X" | ||
(that might point to the problem a little better) | 16:47 | ||
jnthn | std: class MyClass does MyRole { } | 16:48 | |
p6eval | std 28048: OUTPUT«ok 00:02 37m» | ||
jnthn | erm, wtf? | ||
std: my MyRole $x | |||
p6eval | std 28048: OUTPUT«===SORRY!===In "my" declaration, typename MyRole must be predeclared (or marked as declarative with :: prefix) at /tmp/nsMAbYyAKZ line 1:------> my MyRole⏏ $xFAILED 00:02 37m» | ||
jnthn | ...that's more like it... | ||
16:49
synth^2 is now known as synth
|
|||
jnthn | TimToady: std surprised me a little by not barfing in class declaration above... | 16:49 | |
TimToady | currently std doesn't check anything resembling a trait | 16:50 | |
jnthn | TimToady: Ah, does trait_mod:<does> not look to parse a typename? | ||
TimToady | currently parses as module_name, fwiw | 16:51 | |
jnthn | ok | 16:52 | |
dalek | kudo: ef035f4 | jnthn++ | perl6.pir: Check for when we have missing dynexts at startup and emit a nice error message. |
16:53 | |
16:53
bionoid joined,
bionoid is now known as Guest4616
16:55
fridim__ joined
17:04
Front_slash left
17:05
pmurias joined
|
|||
reqamst | moritz_: I am trying to write simple SVG tree generator for tufte | 17:07 | |
moritz_: but it's no based on the svg-plot | |||
not | |||
17:07
_jaldhar left
17:08
fridim_ left
|
|||
adam-pwgsc | How soon should we be expecting Perl6 books, do you guys think? | 17:08 | |
reqamst | eee... I am pretty sure that I saw one | ||
moritz_ | reqamst: that's good. svg-plot is a quick shot and not very good architecture | ||
reqamst | oreilly.com/catalog/9780596004996/ | 17:09 | |
17:09
Front_slash joined
|
|||
TimToady | that's getting pretty outdated | 17:09 | |
reqamst | hmm... 2003... huh, yes | ||
adam-pwgsc | Hm | 17:10 | |
reqamst | google for Perl 6 Books and Media | ||
TimToady | adam-pwgsc: I think next year we will have at least one good book. :) | ||
reqamst | first match | ||
adam-pwgsc | TimToady: I'll be buying yours, that's for sure :) | ||
17:11
Su-Shee joined
|
|||
Su-Shee | back. | 17:11 | |
17:11
cdarroch joined
|
|||
moritz_ | wb Su-Shee | 17:12 | |
TimToady fails his social skills roll again... | 17:15 | ||
takadonet | what did you do TimToday? | 17:18 | |
TimToady | saw Su-Shee come back and fail to welcome her; fortunately, moritz_++ stepped up to do it | ||
at least I didn't roll a critical failure :) | 17:19 | ||
I always liked Teenagers From Outer Space, where you could also roll "Overdoing It" | |||
reqamst | first match | 17:20 | |
17:20
payload left
|
|||
TimToady | can't, you already first matched 10 minutes ago | 17:20 | |
reqamst | uhm | ||
Su-Shee is perfectly fine with trading "greetings" for "getting perl 6 done" :) | 17:21 | ||
17:21
fridim__ left
|
|||
TimToady is gratified to hear it, and hopes backlogging counts :) | 17:21 | ||
takadonet | Can you determine if an attribute has been set before like 'predicate' in Moose? | 17:23 | |
PerlJam | takadonet: you mean you want to distinguish between the default undef you get from "has $.foo" and an undef that was explicitly put there? | 17:24 | |
(because otherwise, you just do a definedness check) | |||
takadonet | PerlJams: Yes | ||
17:25
carlin left
|
|||
PerlJam | takadonet: I don't know of a way right off | 17:26 | |
TimToady | takadonet: unfortunately that will probably depend on the representation | ||
a C struct is unlikely to be able to tell you that, for instance | |||
takadonet | TimToday: The attribute is an int and assigning 0 | 17:27 | |
TimToady | a P6opaque can *probably* tell you, if it's based on a hash | 17:28 | |
17:28
molaf joined
|
|||
takadonet | P6opaque? | 17:28 | |
TimToady | it really comes down to whether the container supports "exists" or not | ||
the default P6 object representation | |||
not even the object is supposed to care what's inside a P6opaque | 17:29 | ||
unlike in P5, where you might know it's a hash | |||
jnthn | If you promise to always change it by the accessor, you could have an accessor that mixes in a "changed" attribute on assign or something like that. | 17:30 | |
TimToady | so basically, we could reserve some way to ask the question, but we cannot guarantee that the question has an answer | ||
jnthn | erm, s/attribute/property/ | ||
TimToady | yes, but a C struct probably won't support such mixins very easily | ||
in general it's better to rely on BUILDs firing off in the right order | 17:31 | ||
jnthn | True. | ||
TimToady | which is why we have BUILDALL as a builtin | ||
dalek | kudo: 0a5b07e | jnthn++ | src/ (2 files): Fix up add_method on the metaclass to be more inline with the HOW API proposed by smop. |
17:52 | |
18:15
Front_slash left
18:19
Front_slash joined
18:21
hercynium joined
|
|||
hercynium | perl6: @foo = <x y z>.pick(); say @foo | 18:22 | |
18:22
rindolf joined
|
|||
rindolf | Hi all. | 18:22 | |
p6eval | elf 28048: OUTPUT«Global symbol "$a_foo" requires explicit package name at (eval 123) line 3.Global symbol "$a_foo" requires explicit package name at (eval 123) line 4. at ./elf_h line 5881» | ||
..rakudo 0d4fe0: OUTPUT«Symbol '@foo' not predeclared in <anonymous> (/tmp/dRLQjoYfVr:2)in Main (src/gen_setting.pm:3390)» | |||
..pugs: OUTPUT«***  Unexpected " =" expecting "::" Variable "@foo" requires predeclaration or explicit package name at /tmp/DmpH3Uila6 line 1, column 5» | |||
jnthn | hi rindolf | ||
rindolf | jnthn: hi. | ||
18:22
PZt left
|
|||
hercynium | sorry... will try ahain in prv | 18:22 | |
rindolf | jnthn: there's a jonathan__ on #perl now. | ||
jnthn: but he seems to be a newbie. | |||
jnthn: what's cooking? | |||
jnthn | rindolf: Ah, not me... | 18:26 | |
rindolf | jnthn: you're not getting cooked? | 18:27 | |
jnthn | rindolf: Well thankfully not, actually that was more in regard to the jonathan__ on #perl. ;-) | ||
Well, been doing various Rakudo bits... | |||
Traits stuff. | |||
rindolf cooks and eats jnthn | |||
Q: What's cooking? A: You are! | 18:28 | ||
jnthn: ah. | |||
Been a while since I've played with Rakudo. | |||
jnthn wonders if he causes indigestion... | |||
rindolf | Maybe I'll convert the CPAN Math::GrahamFunction to Rakudo. | ||
jnthn | May be worth trying. :-) | 18:30 | |
Su-Shee | hi rindolf | ||
rindolf | Hi Su-Shee | ||
Su-Shee: what's up? | |||
Su-Shee: how was your first week at your new job? | 18:31 | ||
Today I finalised www.shlomifish.org/philosophy/compu...nces-wars/ | |||
jnthn | rindolf: Yeah, I just saw the post about that. | ||
(On the Israel PM list) | |||
rindolf | jnthn: ah. | 18:32 | |
jnthn | I'm somehow still subscribed. :-) | ||
rindolf | jnthn: didn't know you were subscribed. | ||
I'm subscribed to lots of PM groups. | |||
Su-Shee | rindolf: well I've been told today "well, you're new and have fresh eyes on our code, tell us what you don't like" (gladly :)) | ||
jnthn | Yeah, I subscribed around the time I was coming to the Perl Workshop there. | ||
rindolf | Melbourne , Chicago, LA, Sydney, Windycity, NY, San-Fran. | ||
Su-Shee: :-) | |||
Not on London.pm, though. | 18:33 | ||
Su-Shee | rindolf: besides that: friendly, relaxed collegues, not too bad perl for "it's a decade old". | ||
jnthn | New blog post: use.perl.org/~JonathanWorthington/journal/39504 | ||
rindolf | Su-Shee: ah. | ||
jnthn | rindolf: Are there any US cities you do like, 'cus you just named a lot of the ones I know. ;-) | 18:34 | |
rindolf | jnthn: I recall liking San-Fransisco. | ||
jnthn | Oh wait, did you mean those are the PM groups you subscribe to? | ||
rindolf | And Charlotte wasn't too bad. | ||
jnthn | :-) | ||
rindolf | jnthn: yes. | ||
jnthn | Ah | ||
I thought it was what you didn't like globally. ;-) | |||
rindolf | jnthn: oh, no. | 18:35 | |
jnthn: I'm also on Birmingham.pm | |||
jnthn isn't doing very well with the whole following conversations thing today. | |||
rindolf | But it's been awfully quiet lately. | ||
Su-Shee: ah. | 18:36 | ||
Su-Shee: is it using CGI.pm? | 18:37 | ||
Su-Shee: is it really 1MegaLOCs? | |||
duke_leto | uhm… I knew I’d bug you ;-) What’s wrong with this line: | ||
my @tickets[* ; *]; | |||
perl6 says: “Statement not terminated properly at line 7, near "[* ; *];\n\n"” | |||
Su-Shee | rindolf: it's short before CGI.pm - apache 1 with mod_perl 1 ;) | ||
rindolf: 700.000 LOC | 18:38 | ||
rindolf | Su-Shee: ah. | ||
Impressive. | |||
Su-Shee: lots of replacement for CPAN stuff? | |||
replacements even. | |||
jnthn | duke_leto: It's probably just fine Perl 6, we just don't support that syntax in Rakudo yet. | ||
Su-Shee | rindolf: but they got their basic idea right, so it's actually really just cleaning up the code style and modernize the "we're doing web differently today" | ||
duke_leto | :-( What else can I do to get multi-dim arrays | 18:39 | |
?? | |||
jnthn | duke_leto: For now, I think folks just nest arrays in arrays. | ||
duke_leto | oh, I see :-) | ||
jnthn | duke_leto: As far as I know though, @foo[1;2] and @foo[1][2] will probably give you the same thing. | 18:40 | |
When we do support the former. | |||
rindolf | How is @foo[1;2,1;3] defined? | ||
jnthn | See section Cascaded subscripting of multidimensional arrays | 18:41 | |
In S09. | |||
And sections around it. | |||
svn.pugscode.org/pugs/docs/Perl6/Sp...9-data.pod | |||
Yes, S09 agrees with what I just said. | |||
18:42
zamolxes joined
|
|||
adam-pwgsc | Hey Su-Shee, are you the su-shee on schreibsturm.org? | 18:43 | |
rindolf | Hmmm... | ||
Su-Shee | adam-pwgsc: yes. :) | 18:44 | |
18:45
_Pb joined
|
|||
adam-pwgsc | Sweet! After reading your latest blog post "Pretty Perl" I was wondering if there's any real-time graphic libraries, perhaps specifically for games, that you know of? | 18:45 | |
rindolf | Su-Shee: I had falafel this evening. | ||
adam-pwgsc: there's SDL.pm | 18:46 | ||
adam-pwgsc: which has recently resumed maintenance. | |||
Su-Shee | adam-pwgsc: SDL would also be my first tip. | ||
duke_leto | Uhm… and what does “No applicable candidates found to dispatch to for 'push'” want to tell me? :-( | ||
adam-pwgsc | Really! I thought it was dead. This is interesting news :) | ||
PerlJam | duke_leto: what does the code look like? | 18:47 | |
Su-Shee | adam-pwgsc: pay special attention to "clutter", they look like the next "graphical toolkit to use" candidate. | ||
duke_leto | my @tickets; | ||
⋮ | |||
push(@tickets[$currentTicket], $line); | |||
⋮ | |||
adam-pwgsc | Would it be reasonable to use cairo for real-time graphics? | ||
PerlJam | duke_leto: no candidates means you have a multi, but what you tried passing didn't match any signatures. | ||
(I think) | 18:48 | ||
Su-Shee | adam-pwgsc: cairo does 2d svg vector and only that. | ||
jnthn | duke_leto: What is @tickets[$currentTicket] initialized to? | ||
duke_leto: Oh, actually... | |||
Su-Shee | adam-pwgsc: and only generating it, not loading existing svg files. | ||
jnthn wonders if an array is meant to auto-vivify there anyway... | |||
duke_leto | jnthn: It isn’t… | ||
adam-pwgsc | Su-Shee: Oh, I see. So I would need some other library to merge the cairo stuff with bitmaps... hrm. | 18:49 | |
jnthn | duke_leto: I can't remember off-hand if that is meant to auto-vivify, maybe smebody else does... | ||
I see now why you wanted to declare a multi-dimensional array. :-) | |||
duke_leto | :-/ :-) | ||
well… | |||
jnthn | No doubt you can work around it with @tickets[$currentTicket] //= [] | 18:50 | |
Su-Shee | adam-pwgsc: hence me recommending clutter. take a look at it, it's kind of mix of cairo, gl and more | ||
jnthn | I'm sure others have been doing stuff with nested arrays of late... | ||
18:50
ruoso left
|
|||
duke_leto | what does //= [] do? | 18:51 | |
adam-pwgsc | Su-Shee: It does sound very nice! Thank you | ||
PerlJam | jnthn: I would *expect* it to autovivify there, dunno if that's what supposed to happen. | ||
18:51
rindolf left
|
|||
adam-pwgsc | Probably exactly what I'm looking for actually. | 18:51 | |
jnthn | // is "defined or" | ||
[] is empty array | |||
So it's just setting it - if it's undefined - to an empty array | |||
Then the push would work. | |||
Not ideal, I know. | |||
PerlJam: Can't remember where the synopses say... | 18:52 | ||
Su-Shee | adam-pwgsc: and if you bind it to parrot and rakudo, I'll test every single line and write documentation. | ||
jnthn | =head1 Autovivification | ||
In S09 | |||
duke_leto | thanks, jnthn :-) | 18:53 | |
adam-pwgsc | Su-Shee: I'll look into clutter a bit more, but I'll let you know if I do :) Thanks! | ||
jnthn | However, I need to eat something before I'm going to be able to understand that. :-) | 18:54 | |
jnthn fried his brain sorting out traits today | |||
18:55
[particle] left
|
|||
Su-Shee | and another round of perl 6 bashing.. gee, this is such a nice community and so very much helpful to bring perl forward as a whole.. | 18:58 | |
19:00
Front_slash left
|
|||
_Pb | hehe | 19:01 | |
my fault, i guess | |||
Su-Shee | _Pb: no. it's the same every time. | 19:02 | |
but who cares.. let the people decide.. ;) | 19:04 | ||
19:06
[particle] joined
19:13
tann joined
|
|||
tann | rakudo: (1..5).[*-1].say | 19:14 | |
p6eval | rakudo 0d4fe0: OUTPUT«5» | ||
tann | rakudo: (1..5).[3-*].perl.say | 19:16 | |
p6eval | rakudo 0d4fe0: OUTPUT«undef» | ||
duke_leto | yay! So far, it works quite well :-) I’ll return in a couple of hours… good night :-) | 19:19 | |
19:19
tann left,
duke_leto left
19:20
tann joined
19:22
explore joined
19:27
_Pb left
19:52
masak joined,
lucs left
|
|||
masak | TimToady: oh, I thought I was the only one who had seen "Teenagers from Outer Space". :) | 20:01 | |
sjohnson | i think i should start a Perl 6 faq | 20:03 | |
jnthn | yayitsmasak | ||
sjohnson | that answers the lesser known questions.. such as, "Will a Camel Book equivalent ever be available for Perl 6?" | ||
Su-Shee | sjohnson: wasn't there already one? | ||
sjohnson: dev.perl.org/perl6/faq.html | 20:04 | ||
20:04
lionWrk is now known as LionMadeOfLions
|
|||
sjohnson | this is a good faq | 20:07 | |
thanks Su-Shee | |||
i was worried most faq's would be like, "What is Perl 6?" | |||
as the only question | |||
masak | well... what is it? :) | ||
Su-Shee | maybe we can move it over to perl6-projects.org? | ||
sjohnson | masak: Perl 6 == a big deal | ||
20:09
jrtayloriv joined
|
|||
masak | I want it to be known that Tene and I are no longer the only Perl 6 game developers: twitter.com/quietfanatic/status/3456400629 | 20:09 | |
reqamst | I'm rather new with perl6 and I think information should be stored in one place | 20:10 | |
masak | reqamst: that's a laudable ideal; not so easy in practice. | ||
reqamst | it's difficult to search every other things on different places | ||
masak | reqamst: mostly beacuse this is a very distributed kind of effort. | ||
reqamst | masak: how about storing copies or links in one place? | 20:11 | |
masak | that said, it could indeed be more centralized than it is today. | ||
20:11
takadonet left
|
|||
jnthn | On dev.perl.org/perl6/ - does anyone actually have access to edit that? | 20:11 | |
masak | reqamst: well, that's what perl6-projects is for. | ||
jnthn | I see a decent bit links to the wiki now... | 20:12 | |
sjohnson | i would be happy to manage the faq, and ask some more questions | ||
reqamst | some are outdated and it's problematic for new ones | ||
sjohnson | ... noes | 20:13 | |
reqamst | but it's something cool in this all chaos :) | 20:15 | |
Su-Shee | no, it's not. It's really annoying if you're trying to start something and have to collect all the bits and pieces first. (I'd like to say "klauben" here, but I don't know it in english. ;) | 20:16 | |
20:19
adam-pwgsc left
|
|||
masak | Su-Shee: Google Translate says 'pick out'. maybe 'select' or 'weed out' is what you're looking for? | 20:19 | |
20:19
abra left
|
|||
reqamst | hmmm... right. I'm strenuous, but not everyone must be | 20:20 | |
Su-Shee | masak: all not really fitting, I just checked my 2 kilo paper dictionary ;) too slang-ish in this context I think. | ||
masak | shame. I was curious. :) | ||
reqamst | digg? | 20:21 | |
20:21
rindolf joined
|
|||
rindolf | Hi all. | 20:21 | |
Su-Shee: here? | |||
masak | phenny: tell missingthepoint (when he's around) that I've made great progress on my Text::CSV module today. all but one TODO ideas have been implemented. would love to have chat about the merge soon. | 20:22 | |
phenny | masak: I'll pass that on when missingthepoint is around. | ||
Su-Shee | ah, let's see what dict.leo.org says.. "to cull" hm. | ||
rindolf: yes. | |||
masak | Su-Shee: I think 'cull' might be it, yes. | ||
rindolf: oh hai. | |||
rindolf | masak: hai hai. | ||
Su-Shee: what's up? | |||
Su-Shee | rindolf: planning the weekend between p6 and chores. ;) | 20:23 | |
rindolf | Su-Shee: ah. | ||
Su-Shee: what kind of chores? | 20:24 | ||
Su-Shee | rindolf: weekly round-up of washing clothes due to work and getting some real vegetables to eat. | 20:25 | |
rindolf | Su-Shee: ah. | ||
Su-Shee: are the stores open? | |||
Su-Shee | rindolf: yes. :) | 20:26 | |
rindolf | Su-Shee: ah. | ||
Su-Shee | and I have to bake a bread, no good bread sucks. | ||
rindolf | Su-Shee: ah. | 20:27 | |
Su-Shee | and I have to read the "dev lessons" from the office. | ||
20:30
explore left
|
|||
masak | you can now get gamebase via github and proto. quietfanatic++ mikecanz++ | 20:31 | |
Su-Shee | it's starting to look like the need for cpan6. | ||
masak | oh, and a tip: please surprise the guy with lots of patches and pull requests. he's done a really awesome job so far, and this is one thing that deserves all the attention/help it can get from helpful volunteers. win-win. | 20:32 | |
but first and foremost, try his breakout game, written in Rakudo. I know I will. | 20:33 | ||
Tene | v. slow | 20:34 | |
but, impressive. | |||
masak | yah, someone should speed Rakudo/Parrot up a bit. guys, is this a known issue? :P | 20:35 | |
Tene | rakudo is something like 13% faster using latest parrot and rakudo than it is on the releases, iirc. | 20:36 | |
I hear the pcc branch should speed some things up. | |||
but still failing some tests. | |||
sjohnson | along with parrot being a VM, is it also its own programming language? | 20:37 | |
masak | hm, I'm getting "libSDL not found!" when trying to start the game. MacPorts tells me 'libsdl' is installed and active. what gives? | ||
sjohnson: no. it's a VM. | |||
Tene | masak: probably installed under a different name | ||
sjohnson | what is rakudo written in then? | ||
Tene | a great deal of it is written in Perl 6. :) | ||
masak | sjohnson: there's something called PIR. | 20:38 | |
sjohnson: it's a sort of assembly language for Parrot. | |||
sjohnson | ahh i c | ||
masak | Tene: any idea of where I might find what name it's installed under, and what to change in SDL_.pir? | ||
reqamst | sjohnson: It's nice overview perlgeek.de/blog-en/perl-6/rakudo-overview.html | ||
masak wants to play breakout :) | |||
Tene: oh, found the answer to the latter question, no worries. | 20:39 | ||
sjohnson | thanks reqamst | 20:43 | |
Su-Shee | good n8 all. | ||
20:43
Su-Shee left
|
|||
masak | Tene: gist.github.com/172418 -- what should I try to make SDL_.pir find libSDL? | 20:44 | |
Tene | libSDL.dylib | ||
masak | gotcha. | ||
libSDL not found! | 20:45 | ||
I'll just comment in passing that I have no idea how loadlib works under the hood. | |||
Tene | :) | 20:47 | |
I'll look at it tonight. | |||
masak | gracias. | ||
Tene | taking the gf to get pieces cut out. | ||
masak | I see. | ||
Tene | Some guy talked her into it. Called himself a "doctor" or something. | 20:48 | |
dunno. | |||
:P | |||
masak | best of luck. | ||
Tene | Thanks. | ||
masak | rakudo: [+] | 20:50 | |
p6eval | rakudo 0d4fe0: OUTPUT«Syntax error at line 2, near "[+]"in Main (src/gen_setting.pm:3390)» | ||
20:53
payload joined
20:54
alester left
|
|||
reqamst | it should be 'too few arguments', I think | 20:56 | |
masak | reqamst: no, actually, it shouldn't be a syntax error. | 20:57 | |
std: [+] | |||
p6eval | std 28048: OUTPUT«ok 00:02 37m» | ||
reqamst | is it not implemented yet? | 20:58 | |
masak | reqamst: in the voodoo parlance of this channel, reduce-metaops parse like listops. :) | ||
reqamst: well yes, but Rakudo seems to parse it slightly wrong. | |||
reqamst | i see | 21:02 | |
it's in builtins/op.pir to implement | 21:03 | ||
or not... I don't get rakudo source | 21:06 | ||
masak | reqamst: in time, you will. :) | ||
reqamst | masak: I hope :) | 21:10 | |
masak | reqamst: last summer, I sometimes dove into the Rakudo source to fix errors which bothered me. sometimes I succeeded, often I failed. I learned enough to find my way around, and it wasn't terribly difficult. so I think you will, too, if you're curious/motivated enough. | 21:12 | |
reqamst | There is only problem with one thing - time. | 21:14 | |
masak | you mean availability of same? | ||
reqamst | yes, only one week of vacation and school will begin | 21:16 | |
masak | I understand. | ||
still, you have to eat and sleep. :) | |||
and no-one can stop you from coding Perl 6 while you eat or sleep. :) | 21:17 | ||
reqamst | last year of high school, big exams etc. ;) | ||
masak | nice! | ||
hope you enjoy it. | |||
reqamst | thanks, I will | 21:18 | |
masak | ...and you can always toy with Perl 6 (or come visit us here on #perl6) when time permits. :) | 21:19 | |
21:23
hercynium left
21:24
KyleHa left
21:25
Jedai joined
21:31
masak` joined,
masak left
21:34
masak` is now known as masak
21:40
Whiteknight joined
21:50
arthur-_ left
22:08
REPLeffect joined,
rindolf left
|
|||
jnthn wonders just how many tests we're going to gain when we can bind named parameters to positionals. | 22:14 | ||
I know it's somewhere in the hundreds. :-) | 22:15 | ||
masak | sounds like good news. | 22:17 | |
jnthn | masak: Aye. | ||
masak: Should happen at latest in October. | |||
22:17
nihiliad left
|
|||
masak | what's blocking that ability? | 22:17 | |
jnthn | That's an intresting question now. :-) | ||
What has blocked it: Parrot doesn't provide any support for it. | 22:18 | ||
Where we're going is roughly... | |||
masak | yes, but what does it depend on? | ||
ah. | |||
jnthn | 1) Parrot is going to gain a way to just give us something capture-like containing all of the args. | ||
2) We'll do all of the unpacking and binding ourselves based off the Perl 6 signatures. | 22:19 | ||
1 fits well with the work allison++ is doing at the moment becuase Parrot really is going to be doing something more capture-like. | |||
I'm still working out how we're going to do 2. | |||
masak | nice. | 22:20 | |
jnthn | My current feeling is that I'll do a 2-step refactor (that is, two medium sized refactors compared to one huge one). | ||
Basically, Signature objects inside are going to become a bunch more low-level. | |||
They're going to get a lot cheaper to work with, and a lot cheaper to construct. | |||
So that'll involve re-working signature construction and the multi-dispatcher, but I'll do some compatibility interface so we can keep doing the normal binding as we do it now. | 22:21 | ||
Then deal with the fallout of all of that, get it all pushed, etc. | |||
In refacotr 2, we start using the signature objects for all binding. | |||
In that step, we'll gain the binding of named params to positionals. | 22:22 | ||
It may just naturally happen as I implement the binding algorithm anyway. | |||
But into all of the design for this, I need to figure out the design for unpacking too. | 22:23 | ||
masak | huh. | ||
jnthn | Which bit was "huh"? :-) | ||
masak | just taking it all in. :) | 22:24 | |
jnthn | Anyway, the goals are basically more speed and more features. :-) | ||
masak | what's 'the binding algorithm'? | 22:25 | |
jnthn | Signature binding. | 22:26 | |
e.g. I have a signature :(Int $x, Num $y) and the capture \(1, 4.5). | 22:27 | ||
masak | ah, and when you talk about implementing that, you mean the specific part that binds nameds to positionals? | ||
jnthn | The binding algorithm is what gets us from the capture to $x and $y containing 1 and 4.5 respectively. | ||
masak | yesyes. | ||
jnthn | No, I mean the whole process, that has a signature and a capture as its inputs and a bunch of bound variables as its outputs. | ||
Now, we basically | 22:28 | ||
masak | surely there must be something like that already? | ||
jnthn | 1) Have Parrot do some of the work. | ||
22:28
zetta joined
|
|||
jnthn | 2) Run through the signature object - which isn't all that efficient to introspect today - and do extra fixups. | 22:28 | |
Parrot isn't all that fast at doing its bit of the work, but (2) is what really kills us. | 22:29 | ||
Not least because we call another PIR routine to actually do it. | |||
So every invocation of any signatured block = 2 Parrot level sub invocations right now. | |||
And we've got Parrot doing a bunch of stuff to bind parameters, followed by Rakudo going and doing some extra bits. | |||
So it's not *so* surprising we're a tad slow on calling. ;-) | 22:30 | ||
22:30
Limbic_Region joined
|
|||
jnthn | "tad" :-) | 22:30 | |
masak | looking forward to the speedups this'll bring. | 22:31 | |
jnthn | I'd not like to speculate how big they'll be, but I'm hoping for a pretty decent win. | ||
Now we do a ridiculous amount of work. | |||
Also, I want to use something like MMD_Cache but for non-multis. | 22:32 | ||
masak | and MMD_Cache is...? | ||
jnthn | Oh, and re-write MMD_Cache to not construct a darn GC-able object for every single lookup we want to do it in. | ||
*in it. | |||
MMD_Cache is basically a type-based cache for multiple dispatch. | 22:33 | ||
masak | sounds like interesting code to look at. | ||
jnthn | I hacked it up in like less than an afternoon's worth of effort. | ||
So it's stupid. | 22:34 | ||
But it made a multi-dispatch benchmark I had at the time run 3-4 times faster anyway. | |||
Anyway, I want to make it less stupid. :-) | |||
I plan to try and cache the caches (well, share the caches) based upon an identical type tuple in a signature too... | 22:35 | ||
That is, :(Int $a, Int $b) and :(Int $c, Int $d) are clearly different signatures. | |||
masak | I remember that afternoon. :) it was fun to watch at the sidelines. | ||
jnthn | But they could share a - I'm coining the term - "type acceptance cache". | ||
masak | ok. | ||
22:36
molaf left
|
|||
sjohnson | rakudo: say (1, undef, 2, 3); | 22:36 | |
p6eval | rakudo 0d4fe0: OUTPUT«1Use of uninitialized value23» | ||
jnthn | Because they both care about having (Int,Int) | ||
sjohnson | rakudo: say (1, undef, 2, 3).WHAT; | ||
masak | oh right, under named binding those two signatures will not actually tie. | ||
p6eval | rakudo 0d4fe0: OUTPUT«List()» | ||
jnthn | Anyway, as you can see, I've had some productive brainstorming. | ||
sjohnson | rakudo: say (1, undef, 2, 3).perl; | ||
jnthn | masak: Yeah. | ||
p6eval | rakudo 0d4fe0: OUTPUT«[1, undef, 2, 3]» | ||
masak | that's good. | ||
sjohnson | rakudo: say (1, undef, 2, 3).collapse.perl; | ||
p6eval | rakudo 0d4fe0: OUTPUT«Method 'collapse' not found for invocant of class 'List'» | ||
masak | rakudo: sub foo($a,,$b) { say $a; say $b }; foo(1,2) | 22:37 | |
p6eval | rakudo 0d4fe0: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 2, near ",,$b) { sa"in Main (src/gen_setting.pm:3390)» | ||
masak | rakudo: sub foo($a,$,$b) { say $a; say $b }; foo(1,2,3) | ||
p6eval | rakudo 0d4fe0: OUTPUT«13» | ||
jnthn | rakudo: say (1, undef, 2, 3).grep(*.defined).perl | ||
p6eval | rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'in Main (/tmp/b1SPyP1atn:2)» | 22:38 | |
TimToady | std: sub foo($a,,$b) { say $a; say $b }; foo(1,2) | ||
p6eval | std 28048: OUTPUT«===SORRY!===Malformed parameter at /tmp/IwfJIGTaHH line 1:------> sub foo($a,⏏,$b) { say $a; say $b }; foo(1,2) expecting any of: name parameter signature whitespaceFAILED 00:03 41m» | ||
jnthn | std++ on the error :-) | ||
TimToady | until recently it was the same a rakudo | ||
*as | |||
jnthn | masak: I think above in that grep example is a Rakudo bug? | 22:39 | |
TimToady: I'll try and remember to steal it. :-) | |||
masak | jnthn: looks like. | ||
somebody should ticket that. | |||
masak submits rakudobug | |||
jnthn | How on earth did it managed to try and keyed index into a sub?! | 22:40 | |
rakudo: say (1, undef, 2, 3).map(*.defined).perl | |||
p6eval | rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'in Main (/tmp/NOjT5edFML:2)» | ||
jnthn | rakudo: say (1, 2, 3).grep(*.defined).perl | ||
p6eval | rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'in Main (/tmp/c1oQPcGXbf:2)» | ||
jnthn | rakudo: say (1, 2, 3).grep(*.defined) | 22:41 | |
p6eval | rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'in Main (/tmp/DdlMCyn6Co:2)» | ||
jnthn | rakudo: say (-1, -2, -3).map(*.abs) | ||
p6eval | rakudo 0d4fe0: OUTPUT«123» | ||
jnthn | rakudo: say (-1, -2, -3).map(*.defined) | ||
p6eval | rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'in Main (/tmp/J7VIjSRvCY:2)» | ||
jnthn | oh, very odd. | ||
masak | live minimizing going on. | ||
jnthn | rakudo: say (*.defined).WHAT | 22:42 | |
p6eval | rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'in Main (/tmp/xgOaXEzI3J:2)» | ||
jnthn | rakudo: *.defined | ||
p6eval | rakudo 0d4fe0: OUTPUT«set_integer_keyed() not implemented in class 'Sub'in Main (/tmp/l4Nl6OPSVL:2)» | ||
jnthn | ...epic wtf... | ||
Well, minimized. :-) | |||
masak | indeed. | ||
jnthn | rakudo: srsly why? | ||
p6eval | rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near "?"in Main (src/gen_setting.pm:3390)» | ||
jnthn | Aww. | ||
rakudo: sub srsly { }; sub why { }; sub postfix:<?>($) { }; srsly why? | 22:43 | ||
p6eval | rakudo 0d4fe0: ( no output ) | ||
jnthn | \o/ | ||
masak | rakudo: sub srsly { }; sub why { }; sub postfix:<?>($) { say "well, don't ask ME." }; srsly why? | 22:44 | |
p6eval | rakudo 0d4fe0: OUTPUT«well, don't ask ME.» | ||
sjohnson | TimToady: could we have a collapse method added in the List() method list? | 22:45 | |
mikehh | rakudo (0a5b07e) builds on parrot r40693 - make test/make spectest (up to 28048) PASS - Ubuntu 9.04 amd64 (gcc) | ||
masak | sjohnson: could you show a use case? | ||
sjohnson | i used it in ruby quite a lot | 22:46 | |
my case: | |||
an example would be if i am going thru @ARGV's, sometimes i undef them after using them, and after its all said and done, i like to keep track of what was left over, by doing @ARGV.collapse() hypothetically | 22:47 | ||
where it would just remove the undefs and reindex the array | |||
masak | rakudo: my @a = 1, 2, 3, undef, undef, 4, 5; @a .= map: { $_ }; say @a.perl | 22:48 | |
p6eval | rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near ": { $_ }; "in Main (src/gen_setting.pm:3390)» | ||
masak | rakudo: my @a = 1, 2, 3, undef, undef, 4, 5; @a = @a.map: { $_ }; say @a.perl | ||
p6eval | rakudo 0d4fe0: OUTPUT«[1, 2, 3, undef, undef, 4, 5]» | ||
jnthn | std: my @a = 1, 2, 3, undef, undef, 4, 5; @a .= map: { $_ }; | 22:49 | |
p6eval | std 28048: OUTPUT«ok 00:03 39m» | ||
masak | rakudo: my @a = 1, 2, 3, undef, undef, 4, 5; @a = @a.map: { .defined }; say @a.perl | ||
p6eval | rakudo 0d4fe0: OUTPUT«[Bool::True, Bool::True, Bool::True, Bool::False, Bool::False, Bool::True, Bool::True]» | ||
masak | rakudo: my @a = 1, 2, 3, undef, undef, 4, 5; @a = @a.grep: { .defined }; say @a.perl | ||
p6eval | rakudo 0d4fe0: OUTPUT«[1, 2, 3, 4, 5]» | ||
sjohnson | it'd be a nice List() addition imo | 22:50 | |
*puppy dog eyes* | |||
masak | sjohnson: there you go. | ||
the short form @a .= grep: { .defined } should work too | |||
in my humble opinion, grep { .defined } says it better than collapse. | |||
before you explained it, I thought it meant something completely different. | 22:51 | ||
sjohnson: what's all this eagerness for blowing up the standard libraries, by the way? :) | |||
sjohnson | just getting too excited that's all | ||
i thought it would be a nice addition after i saw that uniq() is in there | |||
as well as pick | |||
etc | |||
and because Ruby has it | |||
and i thought it was cute | |||
jnthn | uniq and pick take quite a bit more to write compared to just having those routines available. | 22:52 | |
masak | right. | ||
I was just going to say that. :) | |||
jnthn | .grep: { .defined } is fairly short. | ||
masak | and self-explanatory. | ||
jnthn | Yeah | ||
Well, if you know .grep of course. | |||
masak | if you don't, a big list of methods ain't gonna help you much. | 22:53 | |
jnthn half wishes we called it .filter so shed the unixism. | |||
masak | jnthn: make a module! | ||
jnthn | .grep is, I admit, very clear in meaning to those with the right background. | ||
But I came from the wrong one. ;-) | 22:54 | ||
sjohnson | grep == handy | ||
jnthn | (I used Perl before *nix.) | ||
sjohnson | what if i lied and said it was my birthday wish ;) | ||
masak | sjohnson: sorry, no bribes. :) | 22:55 | |
I just noticed that it's time to go to sleep over here. | |||
jnthn in theory has a bbq tomorrow | |||
22:55
dukeleto left
|
|||
jnthn | If it doesn't rain. | 22:55 | |
masak | I've had a lot of fun hacking on my Text::CSV tonight. I'll blog about it, but I want to dock with missingthepoint first. | ||
jnthn | In my experience of bbq's here in Slovakia, bbq = all day drinking nice beer with the occasional bit of cooking meat. :-) | ||
sjohnson pats masak on the back | 22:56 | ||
jnthn | Rain is forecast though, so... :-/ | ||
masak: Is it pushed? | |||
masak | jnthn: yup. | ||
reqamst | have perl6 something like ruby's method_missing? I was thinking about implement it... for example by catching and parsing exceptions | ||
masak | jnthn: the README is pretty comprehensive. | ||
reqamst | tfu, has | ||
jnthn | masak: BTW, I did wonder today about whether I should make that thing I wrote as an example in my blog post today into a module. | ||
masak | reqamst: see S12. | ||
jnthn | masak: As well as expanding out that class description stuff. | 22:57 | |
masak | jnthn: sure, why not? | ||
22:57
c9s__ joined
|
|||
jnthn | And making that into a module that gives everything a .describe method or whatever. | 22:57 | |
masak: OK, maybe I'll do that. | |||
masak | jnthn++ | ||
jnthn | has $.foo is aliased<bar baz> # could be quite useful | ||
And nice example of what people can do with traits. | 22:58 | ||
masak | oh, definitely. | ||
we need nice examples of that kind. | |||
jnthn | BTW, before you sleep... | ||
How is u4x going? | |||
masak | jnthn: well, I've been _thinking_ a lot about it lately. | ||
jnthn | OK. | ||
masak | jnthn: I think grok has very much promise. | ||
it's a good basis to stand on. | |||
jnthn | I'm happy to write for it, but I'd rather not having to think too much about structure stuff and so on. | 22:59 | |
masak | now I need to figure out a way to motivate me (and possibly others) to put in thousands of man-hours into writing entries. | ||
jnthn | I mean, write on some of the topics that can be trickier to write on that I tend to know decently. | ||
Stuff like traits and parametric roles and type stuff. | |||
masak | jnthn: ok, I'll see about making the entry layout obvious. | ||
that sounds like it could be a blog post as well. | |||
jnthn | masak: That'd help. | ||
masak | g'night. | 23:00 | |
jnthn | To be honest, if you can say to me, "here are 3 empty topics that you know about" | ||
And bully enough ;-) | |||
masak | :) | ||
jnthn | I probably will fill 'em out. :-) | ||
masak | excellent. | ||
jnthn | Anyway, I won't keep you from sleep any more. | ||
masak | I'll keep that in mind. | ||
see you around. | |||
23:01
masak left
|
|||
jnthn | see you | 23:01 | |
sjohnson | byes | ||
oops too late | |||
23:02
c9s___ joined,
payload left
23:11
c9s left
23:14
c9s__ left
23:15
M_o_C joined
23:25
frew__ joined
23:27
dukeleto joined
23:31
payload joined
|
|||
diakopter | oopsee dayzee | 23:38 | |
23:39
pmurias left
23:40
jrtayloriv left,
jrtayloriv joined
23:41
jferrero joined
23:43
xomas_ left
23:56
wayland76 left
23:57
wayland76 joined
|