»ö« | 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«-1␤1␤»
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 !%⏏ 3␤Parse failed␤FAILED 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