»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moritz_ on 25 June 2010. |
|||
Kodi | Defining &infix:<eqv> or &infix<cmp> on new classes simply doesn't work. Is that a reported bug? It is what causes most of the tests in series-nonnumeric.t to fail. | 00:02 | |
00:06
justatheory left
|
|||
pugssvn | r31469 | Kodi++ | [t/spec] Fixed another of my ", ..." typos. | 00:09 | |
sorear | Kodi: Where is Alternating.v defined? | 00:14 | |
Kodi | sorear: Whoops, you're right! That should be '.val'. | 00:15 | |
sorear | Does that fix it? | ||
Oh, wait | 00:16 | ||
Kodi | I'll fix that, but I've tested overloading eqv and cmp in simpler cases. | ||
Let me make sure I'm not crazy. | |||
sorear | Overloads in Perl 6 are scoped, iirc | ||
infix:<eqv>:(Alternating,Alternating) is defined only in that one block | |||
it's not defined anywhere infix:<...> could see it | 00:17 | ||
possibly changing to our multi would help | |||
Kodi | rakudo: class Foo {has $.v;}; multi infix:<cmp>(Foo $x, Foo $y) {$x.v cmp $y.v}; my $a = Foo.new(v => 1); my $b = Foo.new(v => 2); say $a cmp $b; say $b cmp $a; | 00:18 | |
p6eval | rakudo 7102d7: OUTPUT«No applicable candidates found to dispatch to for 'infix:<cmp>'. Available candidates are::(Foo $x, Foo $y) in 'infix:<cmp>' at line 11:/tmp/0X5QgjV6Wx in main program body at line 11:/tmp/0X5QgjV6Wx» | ||
Kodi | Huh? | 00:19 | |
sorear | Kodi: in that test, you're calling cmp directly | ||
Kodi: if you call infix:<...>, the cmp overload needs to be somewhere ... can find it | 00:20 | ||
ah | |||
Kodi | sorear: Bear with me, now. Why won't the dispatcher use that candidate. | ||
? | |||
sorear | rakudo: class Foo {has $.v;}; multi infix:<cmp>(Foo $x, Foo $y) {$x.v cmp $y.v}; my $a = Foo.new(v => 1); my $b = Foo.new(v => 2); say $a cmp $b; say $b cmp $a; | 00:21 | |
p6eval | rakudo 7102d7: OUTPUT«No applicable candidates found to dispatch to for 'infix:<cmp>'. Available candidates are::(Foo $x, Foo $y) in 'infix:<cmp>' at line 11:/tmp/SzObXPvJKb in main program body at line 11:/tmp/SzObXPvJKb» | ||
sorear | rakudo: class Foo {has $.v;}; our multi infix:<cmp>(Foo $x, Foo $y) {$x.v cmp $y.v}; my $a = Foo.new(v => 1); my $b = Foo.new(v => 2); say $a cmp $b; say $b cmp $a; | ||
p6eval | rakudo 7102d7: OUTPUT«-11» | ||
sorear | ok good I'm not just making this up | ||
Kodi | Huh. | 00:22 | |
sorear | because infix:<cmp> is defined as a package-scope function, and you can't augment a package multi with a lexically scoped overload | ||
Kodi | So what's the scope of the cmp without "our"? | ||
sorear | my | ||
private, lexical | |||
Kodi | I see. | ||
Thanks a lot. | |||
Is it intended that you can't have lexical instances of a package multi, or is that an implementation limitation? | 00:23 | ||
sorear | I don't know | 00:24 | |
probably intended | |||
00:26
ashleydev left
00:27
orafu joined
00:32
Kodi left
|
|||
pugssvn | r31470 | Kodi++ | [t/spec] Fixed overloading of cmp and eqv in series tests. | 00:39 | |
00:41
masonkramer_ joined,
masonkramer_ is now known as masonkramer
00:57
emadum joined
01:46
ash_ joined
01:48
sftp left
01:49
PacoLinux joined
01:50
Trashlord joined
01:57
cuppe joined
02:05
macdaddy joined
02:06
macdaddy is now known as Guest80565
|
|||
cuppe | so...I'm new, and just playing around at the moment. was trying to figure out how to do constructors in perl6 and hit this problem: scsys.co.uk:8002/45223 | 02:11 | |
that's with the june rakudo release btw | 02:12 | ||
sorear | cuppe: new is just an ordinary method | ||
if you override new to be { say "constructor" }, then Player.new() will return whatever say() returns | |||
object construction happens in the default new(), but you overrode the default new(), so no construction happened | 02:13 | ||
any reason why you couldn't just use has @.hand = ... like you did for $.user? | 02:14 | ||
ash_ | cuppe: perlgeek.de/blog-en/perl-6/object-c...ation.html does a good job of explaining how object construction works in rakudo | 02:15 | |
cuppe | sorear: because I want to do more than just assignment | 02:16 | |
ash_: ty | |||
ash_ | there are multiple parts of object construction, so adding a 'new' isn't always what you want | ||
sorear | cuppe: use BUILD, then | 02:17 | |
cuppe | yeah. I didn't know about it, I tried new() and other stuff | 02:18 | |
now it prints "Any()" instead of the expected "6" | 02:19 | ||
ash_ | the image in the middle of the post is a great visual representation of the construction process | ||
cuppe | why do I get Any()? | 02:22 | |
02:24
redicaps joined,
redicaps left
|
|||
ash_ | rakudo: class Foo { has $.bar is rw; submethod BUILD { $.bar = 'bar is set'; } }; my $a = Foo.new; say $a.bar; | 02:25 | |
p6eval | rakudo 233401: OUTPUT«bar is set» | ||
cuppe | rakudo: class Foo { has $.bar is rw = 6; submethod BUILD { 1; } }; my $a = Foo.new; say $a.bar; | 02:28 | |
p6eval | rakudo 233401: OUTPUT«Any()» | ||
cuppe | rakudo: class Foo { has $.bar is rw = 6; }; my $a = Foo.new; say $a.bar; | ||
p6eval | rakudo 233401: OUTPUT«6» | ||
ash_ | hmm thats weird, i don't get why its setting it to any | 02:30 | |
rakudo: class Foo { has $.bar is rw = 6; submethod BUILD { $.bar = 123; } }; my $a = Foo.new; say $a.bar; | |||
p6eval | rakudo 233401: OUTPUT«123» | ||
02:33
ash_ left
|
|||
cuppe | he ran away ;( | 02:35 | |
02:36
alester joined
02:44
emadum left
02:45
emadum joined
|
|||
sorear | cuppe: Any is the default value of an uninitialized variable | 02:56 | |
I guess your BUILD is overwriting whatever sets up variables, or something | |||
might play around with --target=pir to see what Rakudo's really doing; there's probably a bug report lurking in here somewhere | 02:57 | ||
cuppe | if BUILD works like that should that be expected behavior | 02:58 | |
ciphertext | cuppe, sorear: i suspect this is a bug. The spec (S12:827) says that "any default attribute values are implicitly copied into any attributes that haven't otherwise been initialized" | ||
03:05
felliott joined
|
|||
cuppe | if that gets changed I can keep coding and find more :p | 03:05 | |
I can obviously work around whatever is happening | 03:06 | ||
03:07
TiMBuS joined
03:10
felliott left
|
|||
sorear | hmm. sprixel needs to treat 'class' like 'sub' | 03:13 | |
03:19
redicaps joined
|
|||
sorear | ...yeah, Sprixel ClassHOW is going to look basically nothing like Rakudo's | 03:27 | |
03:37
Guest23195 joined
|
|||
dalek | meta: r346 | stefa...@cox.net++ | trunk/vicil/Kernel.cs: [vicil] Mock up some compiled code so the kernel can be fleshed out |
04:07 | |
04:15
Trashlord left
04:18
Trashlord joined
|
|||
sorear | Actually, TIMTOWDI | 04:26 | |
I'm going to provide TWO metamodels for Sprixel | |||
one will be based on runtime class generation, and will support mixins & traits | |||
the other will generate classes at compile time and will load much faster | |||
04:36
eternaleye joined
04:48
alester left
04:53
envi^home joined
04:55
saaki joined
|
|||
ciphertext | colomon: ping | 04:56 | |
05:02
redicaps left
05:27
emadum left
|
|||
ciphertext | phenny: tell colomon i've got series passing all (nonfudged) tests, and conforming to almost all of the spec. See nopaste.snit.ch/21602 for details. (especially note the section at the bottom). | 06:15 | |
phenny | ciphertext: I'll pass that on when colomon is around. | ||
sorear | rakudo: say ((1, -1/2, 1/4 ... 0)[5]).perl | 06:26 | |
p6eval | rakudo 233401: OUTPUT«-1/32» | ||
sorear | rakudo: say ((1, -1/2, 1/4 ... 0)[55]).perl | ||
p6eval | rakudo 233401: OUTPUT«-2.77555756156289e-17» | ||
sorear | rakudo: say ((1, -1/2, 1/4 ... 0)[400]).perl | 06:27 | |
p6eval | rakudo 233401: OUTPUT«3.87259191484932e-121» | ||
sorear | rakudo: say ((1, -1/2, 1/4 ... 0)[600]).perl | ||
p6eval | rakudo 233401: ( no output ) | ||
sorear | rakudo: say (1, -1/2, 1/4 ... 0).length | ||
p6eval | rakudo 233401: OUTPUT«Method 'length' not found for invocant of class 'List' in main program body at line 11:/tmp/0PpmrIHCeK» | ||
sorear | rakudo: my @x = (1, -1/2, 1/4 ... 0); say @x.elems; | 06:28 | |
p6eval | rakudo 233401: ( no output ) | ||
sorear | rakudo: say (1, -1/2, 1/4 ... 0).elems | ||
p6eval | rakudo 233401: ( no output ) | ||
sorear | huh. I wonder what's going on here | ||
dalek | meta: r347 | stefa...@cox.net++ | trunk/vicil/notes.pod: [vicil] Notes on the two ClassHOWs, new model of lexotics, eval in BEGIN |
06:45 | |
06:49
plobsing joined
07:03
__eric__ joined
07:04
__eric__ left
|
|||
moritz_ | good morning #perl6 | 07:07 | |
sorear | good morning moritz_ | ||
araujo | morning | 07:08 | |
07:12
radu_ joined
|
|||
dalek | meta: r348 | stefa...@cox.net++ | trunk/vicil/Kernel.cs: [vicil] Add CLRImportObject, shorten IPerl6Object -> IP6 since I'm typing it so |
07:14 | |
07:15
gfx joined
07:19
sawyer_ left
07:31
sawyer_ joined
07:39
gfx left
07:50
redicaps joined
|
|||
dalek | meta: r349 | stefa...@cox.net++ | trunk/vicil/Kernel.cs: [vicil] Implement &say in the mock compiler output |
07:54 | |
pugssvn | r31471 | moritz++ | fix plan in if.t | 08:02 | |
r31472 | moritz++ | [t/spec] unfudges in undefined-types.t | 08:03 | ||
r31473 | radus++ | [t/spec] Added test for RT69314 - Null PMC access when calling 'callsame' directly from a sub in Rakudo. | |||
08:12
Exodist left
08:13
exodist_ joined
08:22
exodist_ left
|
|||
radu_ | std: enum SomeEnum <a b c>; say SomeEnum::.keys | 08:22 | |
p6eval | std 31472: OUTPUT«ok 00:01 111m» | ||
radu_ | rakudo: enum SomeEnum <a b c>; say SomeEnum::.keys | ||
p6eval | rakudo 233401: OUTPUT«Could not find sub &SomeEnum in main program body at line 11:/tmp/j1v9zTTjio» | ||
08:23
exodist joined
08:24
Ross joined
|
|||
pugssvn | r31474 | radus++ | [t/spec] Added test for RT70894: Cannot do .keys on enum type stash in Rakudo. | 08:31 | |
08:31
skangas joined
08:40
M_o_C joined
08:43
redicaps left,
orafu left
|
|||
moritz_ | www.perlmonks.org/?viewmode=public;..._id=632816 # preview of a Perlmonks meditation; feedback welcome | 08:48 | |
08:52
tadzik joined
08:54
mmcleric joined
|
|||
moritz_ | sorry, just had a small downtime of the IRC logs | 09:01 | |
some a**hole started scraping all the pages with 10 parallel requests or so | |||
with distributed IPv6 source addresses | 09:02 | ||
Guest23195 | cxreg: How's your FakeDBD::Pg work going? | 09:04 | |
sorear | :/ perlmonks doesn't like anons | 09:05 | |
moritz_ | sorear: moritz.faui2k3.org/tmp/involved.html then | ||
sorear: the links are broken there, but should be fine on perlmonks | |||
sorear | I see | 09:07 | |
drat. vicil isn't going to be the first Perl 6 implementation to use STD | |||
dalek | meta: r350 | stefa...@cox.net++ | trunk/vicil/notes.pod: [vicil] Rethink of interfaces system |
||
moritz_ | please reload, just pushed some minor fixes | ||
sorear: don't complain, rather be happy... it means that pmurias++ already found some mis-parses and made TimToady++ fix them :-) | 09:08 | ||
sorear | apparently, checking the "don't abbreviate my e-mail" box on google code doesn't do anything | 09:09 | |
in particular, it doesn't make dalek-- see the whole thing | |||
sorear out | 09:10 | ||
mmcleric | morning everyone | 09:13 | |
rakudo: say(:foo) | |||
p6eval | rakudo 233401: OUTPUT«Unexpected named parameter 'foo' passed in 'say' at line 4732:CORE.setting in main program body at line 11:/tmp/iBFJKQMwk2» | ||
mmcleric | rakudo: say((:foo)) | ||
p6eval | rakudo 233401: OUTPUT«foo 1» | ||
mmcleric | is this intentional? | ||
moritz_ | yes | 09:15 | |
(:foo) is a list/parcel of single pair | |||
while :foo is a named argument in the context of a signature | |||
mmcleric | yes, i understand it | ||
i'm asking because jnthn's suggestion to propagate all .returns() in Actions.pm broke things | 09:16 | ||
handle_named_parameter relies on .returns() value to check node type | 09:17 | ||
and with () around it, (:foo) returns Pair too now | |||
moritz_ | so it's probably missing a :named or so | 09:18 | |
09:18
plobsing left
|
|||
mmcleric | its missing .value | 09:19 | |
or do you mean i should check if node has :named attribute to check if its really pair and not pair in parens? | 09:20 | ||
pugssvn | r31475 | radus++ | [t/spec] Added test for RT 72814 - Null PMC access when typing a my-declared variable as ::a in Rakudo. | ||
moritz_ | mmcleric: I'm not sure, but that (:named) could be it | ||
09:21
Guest80565 left
09:36
timbunce joined
|
|||
pugssvn | r31476 | moritz++ | [t/spec] more rakudo unfudges, pmichaud++ | 09:51 | |
10:05
stef_ joined
10:07
stef_ left
10:08
stef_ joined
10:19
meppl joined
10:45
tadzik left
10:51
azert0x joined
|
|||
cognominal | too bad eval is not usable as a lhs, that would help me to circumvent the abscense of := | 10:56 | |
*absence | 10:57 | ||
...without eval-uating the whole statement | 10:58 | ||
10:59
tadzik joined
11:03
sftp joined
11:04
Trashlord left
11:05
whiteknight joined
11:13
redicaps joined
11:16
mberends joined
|
|||
pmichaud | cognominal: I expect to be able to implement at least a simple form of := today. | 11:19 | |
moritz_ | even binding to scalars would help many people | 11:21 | |
mberends | that will be great. I have no current need for := but it's something that seems to block several developers here | ||
pmichaud | moritz: "need little to know Parrot knowledge" should be "need little to no Parrot knowledge" | ||
(in the meditation draft) | 11:22 | ||
mberends | hmm | ||
11:23
timbunce left,
dakkar joined
11:24
azawawi joined,
azawawi left
|
|||
mberends | moritz_: could you figure out a way to refer to Rakudo * in your "getting involved"? At the BPW yesterday I also tried to emphasize that R* is intended to enable inexperienced developers to easily begin their own projects, and that we hope the list a proto.perl6.org quickly doubles in number of projects. | 11:30 | |
moritz_ | mberends: I'll do | 11:37 | |
pmichaud: thanks | |||
mmcleric | how can i do "defined" or "exists" in NQP? | 11:38 | |
pmichaud | pir::defined($var) | ||
pir::exists($var, $index) | 11:39 | ||
mmcleric | thanks :) | ||
11:48
pmurias joined
|
|||
cognominal | pmichaud++ # that would avoid many contorsions. I don't mind if it lacks all the necessary checking and I am not sure they are even specified... | 11:49 | |
my @a; my Int @b | 11:50 | ||
@a := @b # is that legal for example (when checks implemented) | |||
I feel that @a inherits the restrictions from @b | 11:51 | ||
11:57
M_o_C left
|
|||
moritz_ | right | 11:58 | |
otoh @b := @a would be disallowed | |||
12:00
M_o_C joined
|
|||
moritz_ | pmichaud: turns out that my "Parent is not a class" problem in the 'optimizations' branch is also triggered in the PAST::Pattern code | 12:00 | |
I suspect it might be related to Rakudo being in a different HLL | |||
anyway, I've sent tcurtis++ an email describing the problem | 12:01 | ||
(I avoid it in my code in the branch by monkey-typing Perl6::Compiler | |||
) | |||
pmichaud | moritz_: yes, that could be it | 12:05 | |
moritz_: I still haven't remembered what triggers that particular error. I know it's something pretty simple, though. | 12:06 | ||
tadzik | how to open a binary file for writing in Perl 6? | 12:12 | |
mberends | tadzik: wait one month, then recompile latest Rakudo ;-) (it's NYI but expected soon) | 12:13 | |
moritz_ | tadzik: 1) bug masak to implement it 2) do it :-) | ||
tadzik | :) ok | ||
moritz_ | www.perlmonks.org/?node_id=846772 # posted my meditation | 12:14 | |
tadzik | wklej.org/id/357014/ | 12:16 | |
gives me a segfault. Bug? | |||
pmichaud | segfault is a bug, yes. | 12:17 | |
but note that open doesn't throw a catchable error, iirc. | |||
it returns a failure | |||
tadzik | well, if I use say not die, CATCH works | 12:18 | |
but the program does not terminate even if I put exit in CATCH, prints some other things anyway | |||
pmichaud | ah, the segfault is because the CATCH is catching the 'die' | ||
I think that's a known bug. | |||
(at least, that's my guess) | |||
at any rate, I don't think open() should be throwing an exception. Perhaps I'm mis-remembering the spec, though. | 12:19 | ||
12:19
felliott joined
|
|||
pmichaud | (it can throw an exception if 'use fatal' is in effect) | 12:19 | |
tadzik | hmm, is the author of LWP::Simple wandering around maybe? | 12:22 | |
moritz_ | the perl 5 or the perl 6 one? | 12:23 | |
iirc cosimo_ wrote the Perl 6 version | |||
tadzik | the Perl 6 one of course | 12:24 | |
cosimo_? | |||
moritz_ | hugme: tweet rakudoperl Getting involved with #perl6: www.perlmonks.org/?node_id=846772 | 12:26 | |
hugme hugs moritz_; tweet delivered | |||
tadzik | yay, fixed | 12:27 | |
I tried to implement getstore(), but fixed LWP::Simple instead | 12:28 | ||
pmichaud | LWP::Simple url? | 12:29 | |
tadzik | github.com/cosimo/perl6-lwp-simple | ||
pmichaud | thanks | ||
12:47
ilogger2 joined
12:48
redicaps joined
13:16
kfo joined
13:47
shade_ joined
13:52
rv2733 joined
|
|||
radu_ | rakudo: sub foo() {say $test; }; my $test = foo(); | 13:53 | |
p6eval | rakudo 233401: OUTPUT«Any()» | ||
radu_ | hm. I was expecting an undeclared variable error. Does anyone know if this is how it should work? | 13:54 | |
allbery_b | I think it's like perl5: the former is in the global setting, the latter in the lexical. It *should* warn, though. | 14:00 | |
pmichaud | that should've been an error, yes. | 14:02 | |
rakudo: say $a; my $a = 5; | |||
p6eval | rakudo 233401: OUTPUT«Any()» | ||
pmichaud | that's.... weird. | ||
radu_ | ok, i'll submit a bug report | 14:03 | |
allbery_b | ...right. more lightbox time needed, maybe I'll wake up :} | 14:10 | |
14:23
jferrero joined
14:25
ciphertext joined
|
|||
pmichaud | S05-mass/rx.t has a lot of uses of &infix:<S&> in it. What's it supposed to represent, or why was it chosen here? | 14:55 | |
14:59
dual joined
15:01
timbunce joined
|
|||
pmichaud gets rid of them. | 15:01 | ||
cosimo_ | pmichaud, tadzik, thanks, i'll fix the module | 15:02 | |
15:02
ciphertext left
|
|||
tadzik | cosimo_: I sent you a complete patch to gh issues | 15:02 | |
even wrote a test for that, but I don't know how to run tests for p6 -_- | 15:03 | ||
15:03
ciphertext joined
15:05
ciphertext_ joined,
ciphertext left,
ciphertext_ is now known as ciphertext
15:06
M_o_C joined
15:10
hercynium joined
15:18
rv2733 left
15:22
saaki joined
15:28
M_o_C left
|
|||
mmcleric | anyone care to review my patch about nested *? | 15:29 | |
it's RT#76140 | |||
or better, github.com/berekuk/rakudo/commit/41...077205b02, there are some per-line notes | 15:31 | ||
15:31
redicaps left
|
|||
dalek | kudo: 56d8874 | pmichaud++ | src/core/IO.pm: open() should fail, not die. |
15:37 | |
cosimo_ | unfortunately, applying tadzik's patch to LWP::Simple, makes it fail the case where no path is supplied | 15:39 | |
pugssvn | r31477 | pmichaud++ | [t/spec]: Miscellaneous test cleanups. | 15:40 | |
frew | so what's the difference between a rule and a token in a grammar? | 15:42 | |
rules can have actions and tokens can't? | |||
dalek | kudo: 0a87aa7 | pmichaud++ | src/ (3 files): Eliminate Mu::!STORE -- we no longer do "copy pmc" semantics for values. |
||
kudo: 7bcf224 | pmichaud++ | src/cheats/eval.pm: Refactor eval() to set $! properly (first version). |
|||
kudo: d16a2f0 | pmichaud++ | src/core/IO.pm: Merge branch 'master' of github.com:rakudo/rakudo |
|||
cosimo_ | damn, it's so nice to have method names like 'parse-url()' | 15:43 | |
i'm getting used to it, and suddenly 'parse_url()' looks so ugly! :) | 15:44 | ||
frew | cosimo_: true dat | ||
pmichaud | mmcleric: I think I need to let jnthn++ review the patch | 15:48 | |
mberends | frew: a regex is your basic building block. token is regex with :ratchet (no backtracking) and rule is token with :sigspace. All can have actions. | 15:49 | |
mmcleric | pmichaud: ok :) seems like he's not around today, though | 15:50 | |
pmichaud | mmcleric: but I also think that any hoisting of .returns and .arity should take place in the semilist action, not in circumfix:sym<( )> | ||
frew | huh... | ||
mberends: thanks | |||
mberends | :) afk & | 15:52 | |
15:55
ash_ joined
|
|||
cosimo_ | if I declare a class with 'class foo:auth<COSIMO>:ver<3.14> {}' is there a way to get the 3.14? | 15:57 | |
for example to print it on stdout? | |||
15:57
steffan joined
|
|||
cosimo_ | or, in alternative, any other "standard" way to declare a version for a module? | 15:57 | |
15:58
timbunce left
|
|||
pmichaud | I don't think we have that implemented yet. | 15:58 | |
15:59
steffan left
|
|||
TimToady is back online, but likely to be busy today helping set up the quiz meet | 16:03 | ||
pmichaud | TimToady: o/ | ||
16:06
jferrero left,
jferrero joined
|
|||
ingy | TimQuizzy | 16:06 | |
frew | is it supposed to be possible to modify a grammar at runtime? if so, is that implemented in rakudo | 16:07 | |
TimToady | sorear: it is intended that all function/macro defs be lexically scoped, and that a macro use the 'lift' statement prefix (NYI) to genericize its code into its caller's lexical scope | 16:08 | |
S04:768 | 16:09 | ||
I'm sure the spec still needs some work there though... | |||
so if you ask me embarrassingly good questions about lift, I'll say "Beats me." :) | |||
ingy | frew: I will probably need to do that today as well... | ||
ash_ | rakudo: use MONKEY_TYPING; grammar Foo { }; augment grammar Foo { }; # frew | 16:10 | |
p6eval | rakudo 233401: ( no output ) | ||
TimToady | s/macro/multi/ | ||
frew | very cool... | ||
ash_ | that lets you add more to it leter | ||
later* | |||
frew | and presumably if I define a token in the second grammar that's already in the first it just blows the former token away | 16:11 | |
I wonder if it would be better to just make a sub grammar (isa) at runtime and override from there | |||
probably. | |||
ash_ | TimToady: can you use a role on a grammar to add tokens? | 16:12 | |
TimToady | ash_: STD already does that | ||
pmichaud | frew: inheritance is generally preferred to monkey patching :) | ||
frew | pmichaud: that's what I figured | 16:13 | |
ash_ | cool, so you can do a role instead | ||
frew | I like it better to | ||
too* | |||
then you can go back | |||
TimToady | everywhere you see .tweak in STD, it's really doing a mixin of a role | ||
ash_ | or inheritance... lol so TMTOWTDI | ||
TimToady | mixins are inheritance, not monkey typing | 16:14 | |
ash_ | monkey typing doesn't work on grammars? | ||
pmichaud | ash_: it *does* work, but it's not preferred :) | 16:15 | |
ash_ | got ya | ||
pmichaud | mmmmm.... running spectests on amazone ec2 instances takes only ~20 mins :) | ||
*amazon | |||
ash_ | cool | 16:16 | |
frew | pmichaud: now you need to set it up so that it parallelizes on enough instances to run in 5s | ||
pmichaud: and then set up a pre-commit-hook 8-P | |||
pmichaud | afk, errands | 16:21 | |
frew | so could I use a grammar role to add | 'x' to a token? | 16:28 | |
and can I do something similar in a subclassed grammar? | 16:31 | ||
for example, instead of copying the parent token and adding | 'x' myself, could I do soething like, .next::token | 'x' ? | |||
ash_ | frew: have you seen proto regex's? | ||
pmichaud | frew: protoregexes | ||
frew | ash_: no; looking for examples now | 16:32 | |
pmichaud | they're explicitly for "add a new alternative" to a token or regex | ||
frew | ah, very cool | ||
pmichaud | short version: | ||
ash_ | perlgeek.de/en/article/mutable-gram...for-perl-6 has an example of some, but pmichaud can give you lots of good examples too | 16:33 | |
pmichaud | proto token number { <...> } | ||
16:33
hercynium left
|
|||
frew | I'm looking at nqp right now | 16:33 | |
pmichaud | token number:sym<0d> { '0d' \d+ } | ||
token number:sym<0x> { '0x' <.xdigit>+ } | |||
frew | ok, so sym isn't like, a variable name then? It's what says this is a candidate? | 16:34 | |
pmichaud | token number:sym<integer> { \d+ } | ||
the above causes <number> to match any of the candidates | |||
frew | right | ||
pmichaud | if you use <sym> in a regex, it corresponds to the name of the regex | ||
thus | |||
token number:sym<0x> { <sym> <.xdigit>+ } # same as above | 16:35 | ||
frew | oooh | ||
neat | |||
pmichaud | (it also captures to $<sym>) | ||
anyway, you can subclass the grammar and add new token number:... regexes | 16:36 | ||
frew | right | ||
pmichaud | so then <number> in the grammar subclass includes the ones from the base class as well as the ones added in the subclass | ||
frew | and that sounds very clean and neat | ||
pmichaud | It is. | ||
as an added bonus, protoregexes do some nice lookahead based on constant strings | 16:37 | ||
16:37
masak joined
|
|||
pmichaud | so, when matching <number>, it's able to jump directly to the 0d or 0x rule if it sees that next in the match (and it doesn't bother calling those subrules if it doesn't) | 16:37 | |
masak | hi, #perl6! | ||
frew | very cool | ||
TimToady | protoregexes are really a form of alternation, and full-blown P6 is supposed to write you a LTM matcher at every alternation | ||
pmichaud | correct | ||
NQP is able to handle rule-level alternations at the moment | 16:38 | ||
it doesn't do intra-rule LTM on alternations yet. | |||
TimToady | (which STD has a brand-new implementation of from sorear++) | ||
pmichaud | yes, I'm looking forward to stealing STD's new implementation, or adopting it altogether :) | ||
afk, errands | |||
masak | sorear++ | 16:39 | |
16:45
masak left
16:46
bgoggin joined
16:59
jferrero left
17:05
nimiezko joined
17:16
ash_ left
17:38
timbunce joined
17:39
tedv joined
17:52
jferrero joined
|
|||
ingy | patch: greetings | 18:15 | |
18:26
Ross joined
18:27
ash_ joined
|
|||
pugssvn | r31478 | pmichaud++ | [t/spec]: Match objects are mutable, remove test for immutability (RT #65610) | 18:38 | |
18:45
eternaleye joined
|
|||
cosimo_ | any base64 encoding example in perl6 ? | 19:04 | |
19:06
cono joined
19:07
buubot left,
buubot joined
19:08
bgoggin left
19:20
tylercurtis joined
19:23
pmurias joined
|
|||
pmurias | sorear: ping | 19:23 | |
phenny | pmurias: 25 Jun 18:29Z <moritz_> tell pmurias that I'm working on my yearly "Getting involved with Perl 6" post for perlmonks. Is there anything I should say about contributing to mildew, and if yes, what? | ||
pmurias: 25 Jun 18:32Z <moritz_> tell pmurias also if you want to have any links to mildew that you would like to see included, please let me know | |||
19:32
rv2733 joined
|
|||
ingy | src/rakudo/parrot_install/bin/parrot -o src/gen/perl6.pbc src/Perl6/Compiler.pir | 19:32 | |
I'm building rakudo and seemingly hanging there | 19:33 | ||
for almost an hour | |||
any thoughts? | |||
sorear | hello #perl6 | ||
pmurias: pong | |||
pmurias | sorear: i'm moving the uniprop reading from INIT to BEGIN time | 19:34 | |
so it's possible to load STD at runtime | |||
pugssvn | r31479 | pmurias++ | [STD] move uniprop loading from INIT to BEGIN time | 19:35 | |
pmurias | sorear: is it ok? | 19:37 | |
sorear: what is CORE.lex and how do i optain that? | 19:38 | ||
19:38
tadzik joined
|
|||
pmurias | s/optain/obtain/ | 19:38 | |
19:39
masak joined
|
|||
sorear | pmurias: I had a good reason for INIT, but I've forgotten it. If you can make BEGIN work, that's fine | 19:40 | |
pmurias: CORE.lex is dead and gone, you can't obtain it | |||
pmurias: if STD asks for CORE.lex, it means you forgot to run ./std CORE.setting (are you using the Makefile...?) | |||
pmurias | pastie.org/1020965 | 19:41 | |
sorear | right | 19:42 | |
pmurias | running make | ||
19:42
lue joined,
timbunce_ joined
|
|||
sorear | the file you actually want is "syml/CORE.syml.store" | 19:43 | |
19:43
eternaleye_ joined
|
|||
sorear | hello timbunce! | 19:43 | |
19:43
eternaleye left
|
|||
timbunce_ | hi sorear | 19:43 | |
19:44
eternaleye_ is now known as eternaleye,
timbunce left,
timbunce_ is now known as timbunce
|
|||
tadzik | cosimo_: new lwp simple checks the uri scheme and connects to the appropriate port. But will the data you send be appropriate for e.g. FTP? | 19:44 | |
19:48
neo_ joined
|
|||
neo_ | helo | 19:48 | |
hello | |||
19:48
tylercurtis left
|
|||
tadzik | helo | 19:49 | |
pugssvn | r31480 | sorear++ | [Cursor] A more awesome error message when syml/CORE.lex.store isn't found (pmurias++) | ||
neo_ | i have a question about classes in p6 | ||
Tene | Hi! | 19:50 | |
What's your question? | |||
neo_ | what is the file extension, also the same like p5 ".pm" ? | ||
moritz_ | .pm and .pm6 work both | 19:51 | |
neo_ | okay and another question (sorry) , i use now the padre ide, is sombody knows a ide that have highlighting for p6 ? | 19:52 | |
and thx @moritz | 19:53 | ||
also @Tene | |||
szabgab | neo_, I think both vim and emacs have highlighers for p6 | ||
as Padre has | |||
masak | neo_: also, we kinda like it when people ask Perl 6 questions :) | 19:54 | |
moritz_ | neo_: the vim hilighting is much better than the emacs one | 19:55 | |
neo_ | sorry, is it right, if i write variables in the class like "$!bla;" | ||
pugssvn | r31481 | pmurias++ | [Cursor] use last instead of goto label | 19:57 | |
pmurias | sorear: got rid of the goto | ||
tadzik | cosimo_: looks like it just hangs on ftp | 19:58 | |
neo_ | ok, i will come back if i have more questions, now i will try to lern more about p6 | ||
see you all later | 19:59 | ||
19:59
neo_ left
20:00
mikwss joined
20:12
bbkr left
20:13
mikehh joined
20:15
eternaleye left
|
|||
pmurias | sorear: VAST::infix__S_Tilde doesn't inherit from VAST::Base, what could cause that? | 20:17 | |
TimToady | cool, power failure here, but the internet is still up... | 20:21 | |
lue | Well, don't know how to react to that :) | 20:22 | |
[you must be using a laptop] | |||
TimToady | well, yes... | 20:23 | |
which I unplugged as soon as the lightning started... | |||
20:25
mikwss left
|
|||
masak | TimToady: maybe it's the kind of internet that doesn't run on electricity. | 20:25 | |
TimToady | otoh I'm sitting on a meta chair, which could be either good or bad... | ||
*metal | |||
sbp | want to buy metachair | ||
TimToady | weatherized carrier pigeons, no doubt | ||
lue | .u chair | 20:26 | |
phenny | U+2441 OCR CHAIR (⑁) | ||
lue | rakudo: say 3 R- 2; say 3 ⑁- 2; | ||
p6eval | rakudo d16a2f: OUTPUT«===SORRY!===Confused at line 11, near "say 3 \u2441- 2"» | ||
lue | .oO(darn, no metachair) |
||
ingy | patch and I are having troubles building parrot on my linux box | 20:27 | |
is there a tag we can try | 20:28 | ||
does a given rakudo tag link to a specific parrot build? | |||
TimToady | if you do 'perl Configure.pl --gen-parrot' it's supposed to pull in the right one | 20:29 | |
ingy | TimToady: what's a known good rakudo checkin? | 20:30 | |
moritz_ | ingy: each rakudo release targets a parrot release | ||
ingy | we are just trying to write a perl6 module | 20:31 | |
moritz_ | so rakudo tag 2010.06 targets parrot 2.5.0 | ||
ingy | k | ||
20:39
plobsing joined,
dju joined
|
|||
ingy | where does the best perl6.vim live? | 20:48 | |
masak | github.com/petdance/vim-perl | 20:54 | |
pmichaud | aiiiigh | 21:01 | |
colomon++ has turned all compile-time constants into runtime subroutine invocations :-( | |||
ingy | masak: installed, but doesn't seem to work | 21:03 | |
what does it key on? | |||
masak | ingy: I haven't tried it myself. | ||
ingy | nod | ||
21:04
patrickas joined
|
|||
masak | pmichaud: in what way does that merit a ++ ? :) | 21:04 | |
pmichaud | masak: I'm not sure that it does. | ||
21:04
felliott joined
|
|||
masak | sounds like a way to slow things down... | 21:04 | |
pmichaud | yeah, I'm uncomfortable with this particular refactoring of things. | 21:05 | |
21:05
felliott_ joined,
felliott left,
felliott_ is now known as felliott
|
|||
masak | oh! open() fails now? | 21:07 | |
that's bound to cause a bit of an impact on the Application Cheese... :) | 21:08 | ||
pmichaud | that's the way I think it's supposed to work. | ||
masak | it is. | ||
pmichaud | I'm surprised it was ever 'die' | ||
masak | it's been "die" for the past 2 years. | ||
pmichaud | I'm surprised it got repeated in ng, then :) | ||
masak | :) | ||
rakudo: say 3 !% 9 | |||
p6eval | rakudo d16a2f: OUTPUT«0» | 21:09 | |
masak | rakudo: say 9 !% 3 | ||
p6eval | rakudo d16a2f: OUTPUT«1» | ||
masak submits rakudobug | |||
pmichaud | oh, colomon++'s patch only appear to affect the decimal numbers, not the ints | 21:10 | |
that's much less worrisome to me. | |||
but I'd still prefer to see it precompile things to constants over processing strings at runtime. | |||
and I really don't like the global namespace being littered with the conversion routines | 21:12 | ||
saaki | masak: that's the output i would expect, what were you expecting? | ||
pmichaud | std: say 9 !% 3 | ||
p6eval | std 31481: OUTPUT«===SORRY!===Can't negate % because multiplicative operators are not iffy enough at /tmp/p0fsMUqQ__ line 1:------> say 9 !%⏏ 3Parse failedFAILED 00:01 112m» | ||
masak | saaki: there was a spec change the other day. | ||
pmichaud | saaki: that. :-) | ||
saaki | ah =) | ||
masak | saaki: !% is now known as %%. | ||
lue | what the heck is iffyness? | 21:13 | |
masak | saaki: congratulations, you just made it into a rakudobug report ;) | ||
saaki | doh! | ||
masak | saaki: consider it a privilege. you're contributing information. | ||
arnsholt | lue: Conditionalness | ||
saaki | i'm just operating under intuition, i'll have to read the specs i suppose | ||
masak | saaki: yes. all of them. all the time. :P | 21:14 | |
lue: there's "iffy", "diffy" and "fiddly", all of which describe operators. | 21:15 | ||
I'm getting nothing done, so I'm going to take an early night. see you all tomorrow! o/ | 21:16 | ||
mberends | o/ | ||
saaki | night | ||
pmichaud | masak: quick question? | ||
masak | absolutely. | ||
pmichaud | I'm a bit curious about the signature of Buf.new() | ||
it says it takes an array | |||
not a slurpy array? | |||
masak | yes. | 21:17 | |
that's new. | |||
I changed the spec and everything. | |||
pmichaud | why an array and not a slurpy, ooc? | ||
masak | this was after talking with jnthn, who indicated that a slurpy array would be very expensive here. | ||
since we expect Bufs to be fairly long. | |||
apparently making the array slurpy incurs a big speed hit. | 21:18 | ||
pmichaud | ....and we expect these long bufs to be created using .new ? | ||
masak | how else would you create a Buf? | ||
pmichaud | one could create an empty Buf and add things to it | ||
ingy | why would a build hang on 'src/rakudo/parrot_install/bin/parrot-nqp --target=pir --output=src/gen/perl6-actions.pir' | ||
?? | |||
pmichaud | (I'm just asking :) | ||
ingy | so frustrating... | 21:19 | |
pmichaud | ingy: I'm guessing your machine might be a little short of ram? | ||
masak | pmichaud: it seemed like a good idea at the time. :) still does, I think. | ||
pmichaud | masak: okay. I'm not so sure that slurpies will take the huge speed hit in the future, though. | ||
ingy | is there a way to get a binary build? | ||
pmichaud | masak: and I'd hate to set an API based on Rakudo's current characteristics. | 21:20 | |
masak | pmichaud: one thing I can think of which might change the decision back is if other similar constructors take slurpies, like Set.new, for example. | ||
pmichaud | afaik, Array.new and Seq.new all take slurpies | ||
masak | hm. ok. | ||
pmichaud | I don't know about Set.new | ||
masak | will discuss it with jnthn++ next time I see him. | ||
pmichaud | makes sense | ||
masak | g'night. | ||
pmichaud | but just because slurpies are slow now doesn't mean they'll always be that way :) | ||
masak | indeed. | 21:21 | |
21:21
masak left
|
|||
pmichaud | (and I'm not so sure they're slow now for basic arrays) | 21:21 | |
ingy: I'm not aware of any binary builds at the moment | |||
(we certainly hope packagers will create some when R* comes out :-) | 21:22 | ||
ingy | pmichaud: Mem: 262364k total | ||
pmichaud | 256MB? That's a little small for Rakudo build, yes. | 21:23 | |
ingy | it's a slicehost image :\ | ||
pmichaud | I just tried some builds on Amazon's EC2 cloud system -- worked very nicely there :-) | 21:24 | |
even builds under the "small 32-bit image" | |||
ingy | pmichaud: what's the fast path to get set up there? | 21:25 | |
pmichaud | but yes, 256MB is likely to be a bit constraining at the moment. We'd like to get Parrot and Rakudo to use less memory, but there's a fair bit of refactoring and optimization that needs to happen for that. | ||
on ec2? | |||
ingy | yah | ||
pmichaud | just a sec, I'll write up the steps | ||
ingy | bless you | ||
pmichaud | I just did this for the first time myself yesterday, based on Util++'s talk at yapc::na | ||
the first set of instructions I'm writing will be for command-line ubuntu | 21:32 | ||
I'll then write a set for web interface | |||
ingy | nod | 21:37 | |
21:37
timbunce left
21:42
tadzik left,
timbunce joined
|
|||
pmichaud | version 1 of instructions: www.pmichaud.com/sandbox/ec2-ubuntu-cmdline.txt | 21:42 | |
now for a web-based version | |||
oops, typo | 21:46 | ||
(updated) | 21:47 | ||
21:53
rv2733 left
22:01
pmurias left
|
|||
pmichaud | web-based instructions now at pmichaud.com/sandbox/ec2-ubuntu-web.txt (doesn't require the ubuntu ec2 tools) | 22:01 | |
22:05
songmaster joined
22:08
dual left
22:09
dual joined
|
|||
ingy | pmichaud++ | 22:11 | |
pmichaud: trying now... | |||
pmichaud | I'm sure the instructions need some updating. | ||
Maybe I'll stick them on the rakudo github wiki. | |||
ingy | pmichaud: can I create multiple users on this? | 22:12 | |
pmichaud | ingy: I don't know. | ||
basically all I know about ec2 is there in that document :-) | 22:13 | ||
ingy | :) | 22:14 | |
songmaster | Hi, I'm just starting out with p6. What's the simplest way to initialize a hash with keys 1..9 (values don't care)? | ||
pmichaud | songmaster: my %hash = 1..9 X Any; | ||
rakudo: my %hash = 1..9 X Any; say %hash.perl; | 22:15 | ||
p6eval | rakudo d16a2f: OUTPUT«{"1" => Any, "2" => Any, "3" => Any, "4" => Any, "5" => Any, "6" => Any, "7" => Any, "8" => Any, "9" => Any}» | ||
songmaster | pmichaud: Ahh, thanks. | ||
pmichaud | rakudo: my %hash = 1..9 X 'welcome'; say %hash.perl; | 22:16 | |
p6eval | rakudo d16a2f: OUTPUT«{"1" => "welcome", "2" => "welcome", "3" => "welcome", "4" => "welcome", "5" => "welcome", "6" => "welcome", "7" => "welcome", "8" => "welcome", "9" => "welcome"}» | 22:17 | |
22:33
christine joined
22:53
felliott left,
bbkr joined
22:55
timbunce left
22:59
felliott joined
23:00
Ross left
23:02
macdaddy joined,
macdaddy is now known as Guest37381
23:04
rgrau_ joined
23:10
patrickas left
|
|||
sorear wonders what the improvement in r31481 is | 23:23 | ||
pmichaud | std: say <1 2 3>.>>.perl; | 23:25 | |
p6eval | std 31481: OUTPUT«ok 00:01 111m» | ||
23:28
jedai joined
23:36
songmaster left
|
|||
ingy | pmichaud++ # perl6 installed easily on ec2 | 23:37 | |
thanks!! | |||
\o/ | |||
sorear | Ouch! All parameters always being containerized calls the circularity saw when the argument in question is the invocant to FETCH | 23:45 | |
sorear decides, grudgingly, to allow non-containerized values | |||
diakopter | heh | 23:48 | |
23:51
ash_ left
23:53
Psyche^ joined
23:56
shade_ is now known as shade\
23:57
Psyche^ is now known as Patterner
23:58
rgrau_ left
23:59
rgrau_ joined
|