pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~315 days 'til Xmas
Set by mncharity on 8 February 2009.
pugs_svn r25485 | putter++ | [elfparse] Regexp aggregation optimization exists. Still quite slow and big. 03:59
MrKrueger goodnight 05:59
goodn ight
good night
s1n1 pmichaud, jnthn: make sure you guys check for pull requests 06:50
mikehh cotto over in #parrot has a patch for rakudo - nopaste.snit.ch/15695 09:43
I applied it and make test passes and make spectest looks good so far 09:44
viklund @seen masak 09:50
lambdabot I saw masak leaving #perl6 14h 32m 11s ago, and .
bacek cotto++ 09:58
mikehh t/spec/S29-list/reverse.rakudo (Wstat: 0 Tests: 50 Failed: 15) 10:03
Failed tests: 1, 3-4, 6-8, 11-14, 38-39, 41, 44-45
All the other spectest's pass 10:04
It takes forrrreverrrr
Files=314, Tests=9254, 1379 wallclock secs (10.10 usr 2.45 sys + 2390.08 cusr 131.14 csys = 2533.77 CPU)
bacek commit f7c0c0bcc9543117160b0607c8f380da5dff904c 10:19
Author: Moritz Lenz [email@hidden.address]
Date: Thu Feb 19 23:09:29 2009 +0100
move Str.reverse to setting/
I have no idea why reverse($str) still works, but it does.
Its actually not quite true.
bacek moritz_: you Str.reverse broke spectest. 10:30
bacek moritz_: it should be 'is export()' and "join('')". 10:33
bacek perl6: say "abc".split.reverse.join 10:40
p6eval pugs: OUTPUT«abc␤»
..elf 25485: OUTPUT«Use of uninitialized value $_[1] in regexp compilation at ./elf_h line 121.␤Use of uninitialized value $sep in join or string at ./elf_h line 187.␤cba␤»
..rakudo f23eda: OUTPUT«No applicable methods.␤␤current instr.: 'parrot;P6metaclass;dispatch' pc 109 (src/classes/ClassHOW.pir:85)␤»
bacek perl6: say "abc".split('').reverse.join 10:41
p6eval pugs: OUTPUT«cba␤»
..rakudo f23eda: OUTPUT«c b a␤»
..elf 25485: OUTPUT«Use of uninitialized value $sep in join or string at ./elf_h line 187.␤cba␤»
drbean purl: default_view is also 'TT' 11:48
Oops. 11:49
masak hello #perl6, you wonderful channel you! 12:31
dalek kudo: 2a2293d | (Carl Masak)++ | src/pmc/perl6str.pmc:
applied patch to fix recent change in string.pmc

segfaulting on some systems. This patch, also by cotto++, unbreaks the build.
13:32
jnthn cotto++ 13:33
masak jnthn: OH HAI 13:35
jnthn masak: HAI 13:41
masak: BTW that patch probably means we now only work with Parrot's since the change. 13:44
So perhaps need to bump PARROT_REVISION?
masak could not parse that
"work with Parrot's"?
jnthn ...
Parrots
fail
:-)
masak did Rakudo ever work with other animals?
jnthn :-P 13:45
masak no, seriously. I don't understand what it is you're saying.
jnthn The point is that the PARROT_REVISION file that gives the revision of Parrot that we grab for people who do configure with --gen-parrot likely needs updating now. 13:46
masak ok.
jnthn Because that patch fixes us to work with revisions of Parrot since the change that broke things.
masak I know nothing about the file, the config flag, or the need for such an update. :)
but feel free to fix.
jnthn Aye, thus why I'm mentioning it. ;-)
masak thanks. :) 13:47
jnthn Sure, will do. Just so you know for the future. :-)
masak aye.
jnthn builds and tests against latest Parrot revision just to be sure. 13:53
jnthn Heh, the svn up of the spectests is where I notice I had a couple of uncomitted unfudges... 14:05
masak heh 14:06
jnthn Tests looking good so far. :-) 14:12
Hmm. Fail in num/sqrt.t 14:16
And it log.t and in list reverse. 14:18
I can believe some of them are Win32-specific, but not list reverse.
masak failed 15/50 seubtests in S29-list/reverse 14:20
jnthn Aye
Ah
moritz moved it to the setting 14:21
masak otherwise, fine.
jnthn OK, then sqrt and log are Win32 nasties.
dalek kudo: 1533598 | jnthn++ | build/PARROT_REVISION:
Bump Parrot revision up, now we support new String PMC.
14:22
masak so, just to clarify: the PARROT_VERSION thing says 'download this particular version of Parrot if using the parrot-inside-rakudo setup, because it's the one last known to work', yes? 14:24
s/one last/last one/
jnthn Yes.
As far as I understand it. ;-)
jnthn Str.reverse fixed. 14:25
masak nice.
dalek kudo: 2a9382c | jnthn++ | src/setting/Str.pm:
Fix Str.reverse that was added to setting.
14:26
jnthn afk for a bit 14:27
masak all spectests pass here. 14:42
mikehh I am building on AMD64 platform now - ok on i386 14:46
Guest3744 hola 14:58
Carlos alguna chica kiere hablar¿ 14:58
masak Guest93012: Este canal es de alrededor de Perl 6. Prueba #chicas-que-kiere-hablar. 15:02
skids wonders if "perl6" means anything in -- what was that portuguese? 15:03
masak Spanish, I think.
skids Oh, well bad spanish. Yeah I guess.
Maybe we need to teach evalbot to hablar con los lonely hombres. 15:06
mberends masak: you're even more of a cunning linguist than I had thought 15:14
masak no, just using Google Translate.
mberends cunning 15:15
quo vadis proto? 15:16
masak it vadis fairly well, I guess. 15:18
masak I pushed a few changes just a couple of hours ago. 15:18
other than that, I haven't touched it.
masak viklund++ used proto to install November on feather this morning, and found a number of deficiencies that need addressing. I threw him a commit bit, but I think he ran out of tuits in the meantime. 15:19
mberends ook, I'll pull the the updates in soon. let me know about the deficiencies. is it ready for a bash -> perl5 migration?
keyboad-- 15:20
(blame the hardware)++
masak mberends: bash->perl5: definitely ready. there's nothing holding it back. 15:21
question is: which one do we want to do first: the migration, or a cleanup of the env var/.bash_profile mess? 15:22
mberends probably migration first, that may inherently help the cleanup 15:23
masak aye.
sounds good.
for the cleanup, I think we should go with a config file that's generated the first run of proto.
mberends agreed
masak so proto runs for the first time, sees that there's no config file, generates one and exits.
the config file should be filled with sane defaults. 15:24
s1n jnthn: ping, did you see my pull request?
masak that way, the user won't be hurt if she just re-runs proto without caring about the config file.
mberends ideally proto would have options to maintain the config, without asking the user to edit said file 15:26
a 'proto help' would be nice, and a 'proto menu' 15:27
masak I think I'm leaning towards config settings rather than options. 15:29
definitely 'proto help' (which would have to reside in the bootstrap script)
I don't really see what you want with a 'proto menu'.
doesn't sound very Unix-y to me. 15:30
mberends fair enough, just an idea to attract newbies. Do we aim for a 'proto showconfig' and similar? 15:31
masak as a rule, as few subcommands as possible, I think. :) 15:35
there might be a use for 'proto showconfig', but it'd basically be a cat of the config file. 15:36
mberends yes, we add only when the need arises. today's work will be simply bash->perl5 with as few side effects as possible. 15:38
mikehh ok - all spectest's pass on linux AMD64 - Kubuntu Intrepid
it took ages though - Files=314, Tests=9254, 1936 wallclock secs (12.14 usr 3.34 sys + 3486.83 cusr 164.51 csys = 3666.82 CPU)
mberends spectest just completed on eeebuntu i386, 2797 wallclock secs (intel atom 1.6GHz) 15:41
masak mberends: cool. in the meantime, I'll investigate a few errors in November that viklund++ noticed. 15:42
mberends: another idea that I don't know if I told you about are 'pseudopackages' -- packages which are not installed by proto itself, but which might be good to include in proto's model. these include 'parrot', 'rakudo' and 'proto'. 15:43
mikehh running i386 on the same comp - Files=314, Tests=9254, 1379 wallclock secs (10.10 usr 2.45 sys + 2390.08 cusr 131.14 csys = 2533.77 CPU)
jnthn s1n: Yes, they're on my pile of patches people want me to review and apply. ;-) 15:44
masak today I had an idea to make a pseudopackage for 'november-apache' too, to make installation of November as a web app really simple.
mberends apache is usually provided by the distro package system - lots of variation there 15:45
s1n jnthn: okay, was just wondering 15:46
wasn't really sure if the new patch sumitting process was working 15:47
mikehh that's 40% longer on AMD86 vs i386 - we need to get --optimize to run on AMD86 :)
s1n jnthn: if you end up approving that patch, i think i can move a lot more over, but i don't want to waste my time unless it gets approved
s1n mikehh: you mean amd64? 15:48
mikehh yeah - my bad
jnthn s1n: Kinda trying to work out git/github still. :-| 15:49
s1n: So suppose I want to cherry-pick some commits (is that how it works?) How can I find those easily on github to review them? 15:50
If I look at say github.com/s1n/rakudo/commits/ I don't see them...
Ah, here... github.com/s1n/rakudo/commits/rt_work 15:51
s1n jnthn: i think you will have those messages on your dashboard
jnthn: yes, that's my fork and branch
according to github, i'm supposed to send pull requests 15:52
not really sure how you're supposed to use them, i'm new to git/github myself
jnthn *nod*
OK, reviewing your patch... :-) 15:53
s1n thanks! :)
jnthn This line:
$out ~= '^' if($!from_exclusive);
I think that's wrong?
$out ~= '^' if $!from_exclusive;
Is what I'd expect.
s1n oh, nitpick?
jnthn erm, maybe syntax error in fact...
std: $out ~= '^' if($!from_exclusive);]
p6eval std 25485: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/vDVnprruoD line 1:␤------> $out ~= '^' if($!from_exclusive);]␤ expecting nofun␤Other potential difficulties:␤ Variable $out is not predeclared at /tmp/vDVnprruoD line 1:␤------>
.....
s1n didn't complain
jnthn std: $out ~= '^' if($!from_exclusive);
s1n hmm odd, why did that work for me....
p6eval std 25485: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/AsuqL0Hzyc line 1:␤------> $out ~= '^' if($!from_exclusive);␤ expecting nofun␤Other potential difficulties:␤ Variable $out is not predeclared at /tmp/AsuqL0Hzyc line 1:␤------>
.....
jnthn Yes, I thought so. 15:54
if(...) is a sub call, always.
s1n oh yeah, i keep forgetting
lemme see if i can fix it and push it
jnthn I think Rakudo gets that wrong at the moment, though...
s1n i brought that up to TimToady but i was the only one in here that thought if() !~ if () was wrong 15:55
jnthn Also this line worries me: 15:56
$from_truth &= $topic == $!from if !$!from_exclusive;
s1n man, keeping 2 working repo's is a PITA
jnthn Is that not going to construct a junction?
s1n jnthn: why?
i dunno what junctions really are
jnthn rakudo: my $x = 1; $x &= 2; say $x.perl; 15:57
p6eval rakudo 2a9382: OUTPUT«get_iter() not implemented in class 'Integer'␤current instr.: 'prefix:=' pc 20834 (src/builtins/misc.pir:17)␤»
s1n i got lazy and that seemed like what i wanted
ooo that's not good
jnthn std: my $x = 1; $x &= 2; say $x.perl; # just curious...
p6eval std 25485: OUTPUT«ok 00:02 33m␤»
jnthn I suspect that since $x foo= $y is really my $x = $x foo $y, then $x &=2 is $x = $x & 2; 15:58
oops, didn't mean that "my" to sneak in there...
masak seems reasonable.
s1n that doesn't sound wrong to me...
ianvgwp6y (lol, "i am not very good with perl 6 yet") 15:59
jnthn :-) 16:00
s1n jnthn: so do you see anything wrong with the ACCEPTS?
jnthn Well, the use of &= was in there...
Doing 16:01
my Bool $from_truth = Bool::True;
Followed right away by
$from_truth = $topic > $!from;
s1n i'm abbreviating that
jnthn Seems a tad odd though.
my Bool $from_truth = $topic > $!from;
s1n i didn't want to do 2 if/else for the exclusiveness
yeah, that's what i'm building now
jnthn Oh, you maybe meant &&= rather than &= 16:02
s1n gimme a second, i'll push an update after i finish building
ahhh yeah oops heh, fat finger :)
jnthn rakudo: my $x = True; $x &&= True; say $x;
p6eval rakudo 2a9382: OUTPUT«1␤»
jnthn rakudo: my $x = True; $x &&= False; say $x;
p6eval rakudo 2a9382: OUTPUT«1␤»
jnthn ...erm.
jnthn summons masak
s1n hmm, that seems wrong 16:03
masak ta-daa!
jnthn masak: Hey look rakudobug"
masak ooh!
masak submits
jnthn s1n: Always be sure to both make test and make spectest too, BTW, if you aren't already doing that, before submitting patches.
s1n i'm surprised there's no test for that already
jnthn rakudo: my $x = True && False; say $x; 16:04
p6eval rakudo 2a9382: OUTPUT«0␤»
s1n jnthn: i wanted to submit the code first before i added the test....
uh oh, i can't build the setting...
jnthn s1n: OK, but to make sure it passes all other/existing tests, I mean.
masak rakudo: True && False
p6eval rakudo 2a9382: RESULT«Could not locate a method 'perl' to invoke on class ''.␤current instr.: 'die' pc 16659 (src/builtins/control.pir:204)␤»
s1n jnthn: oh okay, will do in the future
masak and another one! 16:05
rakudo: say True && False
p6eval rakudo 2a9382: OUTPUT«0␤»
jnthn rakudo: say True.perl
p6eval rakudo 2a9382: OUTPUT«Could not locate a method 'perl' to invoke on class ''.␤current instr.: 'die' pc 16659 (src/builtins/control.pir:204)␤»
masak submits that too
jnthn masak: Ah, but we already haz ticket for this.
s1n sounds like Bool setting isn't working
masak ok.
jnthn It's missing .perl method on enum members.
And True and False are...well...enum-ish. 16:06
In fact, I fear that may be the thing we didn't have a spec for...though maybe I did ask about that recently...
Oh yes, IIRC the answer was enum elements .perl-ify to their long name.
So for enum Foo <Bar Baz>; Bar.perl is Foo::Bar.
s1n hmm, gen_setting segfaults on parrot r36930 16:07
jnthn But enums want a refactoring anyway.
s1n: Get the Parrot revision matching your build/PARROT_REVISION file.
s1n jnthn: if you pull my build patches, i added support to use "or-later" parrot revision, that's why i was using that revision 16:08
jnthn I'm not sure I want to pull that patch, given it is the cause of your current problems. ;-)
s1n (just add a '+' on the end) 16:09
oh no, you don't have to use it, but it's there for those people who might want to pull in something new automatically :)
jnthn Ah, OK.
s1n i reverted it by just removing the '+' :)
it's a nice feature to have in case someone forgets to update the revision
jnthn I think best is to submit that one to pmichaud for him to consider. :-) 16:10
s1n i did
jnthn OK, great.
s1n well, i'm rebuilding now, i'll try out those fixes and push the change
jnthn One final note - you can replace self.from.perl; with $.from.perl
s1n jnthn: yes i can, still getting use to the new syntax 16:11
jnthn (And yes, I know, in Pair.pm I used the self.from.perl, until moritz_++ asked me what on earth I was thinking... :-))
s1n jnthn: i started using the $!var and didn't fix the $.var
jnthn++ for the setting work 16:12
makes things much more pleasant
jnthn s1n++ for contributing :-) 16:13
s1n jnthn: i like contributing as long as patches don't get indefinitely ignored :) 16:14
jnthn: btw, is there any way to make setting build errors easier to track down? there's nothing really to indicate pc or line... 16:15
jnthn: too few arguments passed (0) - 1 params expected 16:16
current instr.: 'parrot;Bool;pick' pc 23803 (src/gen_setting.pir:335)
everything fails with that parrot revision... 16:17
jnthn Oh, hmm 16:18
jnthn is confused 16:18
s1n jnthn: yup, r36856, that's why i added the 'or-later' revision support
jnthn s1n: Paste me one line below that in the backtrace.
s1n called from Sub 'parrot;Perl6;Grammar;Actions;statement_block' pc 117983 (src/gen_actions.pir:453)
jnthn Yes, that one *was* fun to track down... :-)
OK, seems now you have too early a revison of Parrot. Which is...odd. 16:19
s1n heh
jnthn I don't know how easy/hard this is
s1n hence my change :)
but now the latest revision segfaults during build
jnthn But can you pull in the latest from Rakudo's master?
Then you can use the latest revision of Parrot...
s1n jnthn: by latest you mean svn head?
jnthn Yes. 16:20
That or what is in the latest PARROT_REVISION in the rakudo master repo (if that's the correct git terminology...)
s1n jnthn: again, i'll just use my or-later patch, but it segfaults generating the gen_setting.pir with svn head
huh? 16:21
jnthn That's because you don't have the changes to Rakudo that make it not segfault with latest Parrot.
s1n are you asking to try the version in rakudo's build/PARROT_REVISION?
jnthn: what changes? (github commit link?)
jnthn github.com/rakudo/rakudo/commit/2a2...e959004227 and github.com/rakudo/rakudo/commit/153...6ee08e9a36 16:22
s1n jnthn: okay, i think the terminology i want is to fast-forward my branch to rakudo's master... 16:23
lemme see what i can do here
s1n yay, i'm now a sysadmin of my own repo, fun 16:27
i can't merge because i'm in the middle of a conflicted merge 16:28
s1n i'm stuck, i can't seem to do anything now 16:29
s1n jnthn: that logic is wrong, lemme fix it first 17:31
cspencer rakudo: my @vals = (1..5); @vals[1..*].say 18:20
p6eval rakudo 2a9382: OUTPUT«2345Use of uninitialized value␤␤»
cspencer rakudo: my @vals = (1..5); @vals[0..*].say 18:21
p6eval rakudo 2a9382: OUTPUT«12345Use of uninitialized value␤␤»
cspencer is this a bug? i'm presuming that the * should match the final array subscript, though it looks like it's going one further...
skids rakudo: my @vals = (1..5); @vals[1..*-1].say 18:28
p6eval rakudo 2a9382: OUTPUT«2345␤»
skids I would say it is going one further, but not a bug, since [*-1] is documented as the last element. 18:29
* would then be the next element that could be added.
cspencer hmm, alright. 18:30
skids Which is now that I think of it is going to save me a lot of "push" statements :-) 18:31
cspencer there're a number of examples in S09 using the @array[0..*] notation, though i'm not sure it's clear that you'd get that particular behavious 18:33
er
behaviour
(or at least not clear to me, i suppose) :)
skids Hrm I would say yes the "to the largest allocated index" is iffy and may need to be corrected. As to whether the "to the largest specified index" also needs to change, that's above my head. 18:36
The parts where the splat is a whole range and not an endpoint, though, are probably fine.
TimToady * is not the last element 18:37
you are generalizing falsely
* is whatever the current operator makes of it
cspencer TimToady: so in the case of array subscripts, what would the correct behaviour be? 18:38
TimToady subscripting with * gives you all the elements, not the last one. it's - that turrns *-1 into a closure 18:38
and subscripting treates a closure differently than * 18:39
anyway, sorry to snipe and run, but I gotta go &
cspencer alrighty
skids Ah, so it would have to be [*-0] to do a push.
cspencer (so as i understand it, the current behaviour is a bug then?) :) 18:40
s1n jnthn: i'll have to get this committed later, it looks like managing this fork is taking longer than making the changes, so i may refork or something
skids rakudo: my @vals = (1..5); @vals[1..*-0].say 18:43
p6eval rakudo 2a9382: OUTPUT«2345Use of uninitialized value␤␤»
jnthn s1n: Sounds like git makes life forking hard now and then. ;-) 18:44
skids rakudo: my @vals = (1..5); @vals[1..*-0].kv.say
p6eval rakudo 2a9382: OUTPUT«021324354Use of uninitialized value␤␤»
jnthn s1n: Anyway, just let me know when you've something you want me to review. :-) 18:45
skids rakudo: my @vals = (1..5); @vals[1..*].kv.say
p6eval rakudo 2a9382: OUTPUT«021324354Use of uninitialized value␤␤»
cspencer rakudo: my @vals = (1..5); @vals[1..*].kv.join(' ').say 18:46
p6eval rakudo 2a9382: OUTPUT«Use of uninitialized value␤0 2 1 3 2 4 3 5 4 ␤»
skids well either it's a bug, or S09 needs a little love in a couple of places. I think TimToady was just setting me straight before I tried to @a[*] = $pushed_value which would have been quite wrong. But he's no longer here to ask :-) 18:50
cspencer heh :) i'll try to get more clarification later 18:52
i think though that by "matching all the elements", it's probably a bug 18:53
oops, he said "gives you all the elements"
skids I think he was talking about [*] not [N..*] 18:54
Speaking of S09 (and S02)... 18:55
The heretofor unimplemented postcircumfix adverbs -- would be nonsense with @[][] slices. 18:56
(only usable with @[;])
If I am correct?
(or perhaps usable on the last [] in @[][] but yielding different behavior) 18:58
cspencer hmmm....i'm not sure either 19:00
skids I was thinking of trying to add them, and by that I mean I was thinking of finding out how fast and hard I would fail at trying to add them :-) 19:02
skids std: %a{'a','b'}:p 19:17
p6eval std 25485: OUTPUT«Potential difficulties:␤ Variable %a is not predeclared at /tmp/gssWgHPgq8 line 1:␤------> %a{'a','b'}:p␤ok 00:02 34m␤»
skids std: my %a; %a{'a','b'}:p 19:18
p6eval std 25485: OUTPUT«ok 00:03 36m␤»
skids hrm ok maybe they are already over there... 19:19
cspencer rakudo: multi foo(Bool :$baz = Bool::False, *@vals) { say "foo" }; foo(:baz(Bool::True), 1, 2, 3); 21:19
p6eval rakudo 2a9382: OUTPUT«No applicable candidates found to dispatch to for 'foo'␤current instr.: '_block14' pc 91 (EVAL_16:47)␤»
cspencer pugs: multi foo(Bool :$baz = Bool::False, *@vals) { say "foo" }; foo(:baz(Bool::True), 1, 2, 3);
p6eval pugs: OUTPUT«foo␤»
cspencer is rakudo's MMD not working correctly in the above example? 21:20
jnthn Hmm...well, named params don't participate int he dispatch...but even so that call looks to me like it shoulda worked... 21:23
cspencer jnthn: it seems to be the Bool type in the signature that does it 21:25
rakudo: multi foo(Int :$baz = 1, *@vals) { say "foo" }; foo(:baz(2), 1, 2, 3); 21:26
p6eval rakudo 2a9382: OUTPUT«foo␤»
jnthn Hmm..curious. 21:30
jnthn cspencer: File a ticket, I'll look into it. 21:30
cspencer will do
jnthn thanks 21:31
shinobi-cl is the "foreach" keyword gonna be inexistent on perl6? 22:20
s1n akkk 22:24
managing a fork and keeping it in sync with the master rakudo is extremely problematic 22:25
pmurias shinobi-cl: the c-style for is now called loop
shinobi-cl yes, i know... is just that i think that "foreach" is more explicit on what the keyword does
is the p6 "for"exactly the same as "foreach" in p5? 22:26
or it is "􏿽xEFmproved" someway?
pmurias shinobi-cl: for @array -> $foo {...}
cspencer_ rakudo: join 22:32
p6eval rakudo 2a9382: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 59 (EVAL_16:38)␤»
cspencer_ rakudo: join()
p6eval rakudo 2a9382: OUTPUT«No applicable methods.␤␤current instr.: '_block14' pc 59 (EVAL_16:38)␤»
cspencer_ pugs: join()
p6eval pugs: OUTPUT«*** No compatible multi variant found: "&join"␤ at /tmp/AueW2ItfjA line 1, column 1 - line 2, column 1␤»
skids shinobi-cl: there will be precious little use of traditional incremental for loops what with for (0..N :by(M)) and various other improvements, and the pointy blocks make it pretty explicit 22:34
e.g why would you do a for loop to go through an array when you can do for (@array.kv) -> $index, $value is rw { ... } 22:36
jnthn Those parens are not needed too, I imagine. :-)
s1n jnthn: i'm rebuilding now, i finally figured out what i had to do :) 22:37
jnthn s1n: Yay. :-)
s1n it's got my fork's changes, fast-forwarded with recent rakudo changes, and it's pulling the right version of parrot right now :)
it was a _real_ pain, i'll need to modify that wiki page 22:38
shinobi-cl rakudo: my $val = 5; my @result = [|] (1,2,3,4,5); say $val ~~ @result ?? "found!" !! "missing"; @result = (1,2,3,4,5); say $val ~~ one(@result) ?? "found!" !! "missing" 22:41
p6eval rakudo 2a9382: OUTPUT«missing␤found!␤»
shinobi-cl mmmm, i would have expected to both examples would show "found!"
rakudo: [|] (1,2,3,4,5);
p6eval rakudo 2a9382: RESULT«any(1, 2, 3, 4, 5)»
shinobi-cl rakudo: [^] (1,2,3,4,5); 22:42
p6eval rakudo 2a9382: RESULT«one(1, 2, 3, 4, 5)»
shinobi-cl rakudo: my $val = 5; my @result = [^] (1,2,3,4,5); say $val ~~ @result ?? "found!" !! "missing"; @result = (1,2,3,4,5); say $val ~~ one(@result) ?? "found!" !! "missing"
p6eval rakudo 2a9382: OUTPUT«missing␤found!␤»
shinobi-cl pugs: my $val = 5; my @result = [^] (1,2,3,4,5); say $val ~~ @result ?? "found!" !! "missing"; @result = (1,2,3,4,5); say $val ~~ one(@result) ?? "found!" !! "missing"
p6eval pugs: OUTPUT«missing␤found!␤»
jnthn shinobi-cl: They're different. 22:47
shinobi-cl: In one case you have an array as the RHS of the smartmatch, and in the other a junction.
shinobi-cl ahh i see 22:48
pugs: my $val = 5; my $result = [^] (1,2,3,4,5); say $val ~~ $result ?? "found!" !! "missing"; @result = (1,2,3,4,5); say $val ~~ one(@result) ?? "found!" !! "missing"
p6eval pugs: OUTPUT«*** ␤ Unexpected " ="␤ expecting "::"␤ Variable "@result" requires predeclaration or explicit package name␤ at /tmp/t6LIF5LPEH line 1, column 97␤»
shinobi-cl pugs: my $val = 5; my $result = [^] (1,2,3,4,5); say $val ~~ $result ?? "found!" !! "missing"; my @result2 = (1,2,3,4,5); say $val ~~ one(@result2) ?? "found!" !! "missing"
p6eval pugs: OUTPUT«found!␤found!␤»
shinobi-cl is a little confusing since the sigils for scalar and junctions are the same 22:50
is a matter of getting used to
is not that the sigils are the same, is just that $results is a reference to a junction, right? 22:51
jnthn Well, in this case the issue is that you end up auto-threading over the things in the junction, whereas in the other case you end up calling Array's ACCEPTS 22:52
shinobi-cl a juntcion is a brand-new kind of container? at the $, @, % and & level? 22:56
jnthn No, it's not a container. 22:57
It's best to see it as a value that is many values at the same time.
shinobi-cl ahhh ok. 22:58
pugs: my $junction = one((1,2), (3,4)); say (1,2) ~~ $junction; 22:59
p6eval pugs: OUTPUT«one()␤»
shinobi-cl pugs: my $junction = one((1,2), (3,4)); say ?((1,2) ~~ $junction);
p6eval pugs: OUTPUT«one()␤»
shinobi-cl rakudo: my $junction = one((1,2), (3,4)); say ?((1,2) ~~ $junction); 23:00
p6eval rakudo 2a9382: OUTPUT«1␤»
shinobi-cl rakudo: my $junction = one((1,2), (3,4)); say (2,1) ~~ $junction;
p6eval rakudo 2a9382: OUTPUT«1␤»
shinobi-cl rakudo: my $junction = one((1,2), (3,4)); say (2,5) ~~ $junction;
p6eval rakudo 2a9382: OUTPUT«1␤»
jnthn rakudo: say one((1,2), (3,4)).perl 23:01
p6eval rakudo 2a9382: OUTPUT«one(1, 2, 3, 4)␤»
jnthn Which I believe is correct.
shinobi-cl rakudo: my $junction = one([1,2], [3,4]); say (2,5) ~~ $junction;
p6eval rakudo 2a9382: OUTPUT«0␤»
shinobi-cl rakudo: my $junction = one([1,2], [3,4]); say (1,2) ~~ $junction;
p6eval rakudo 2a9382: OUTPUT«1␤»
shinobi-cl :D
rakudo: my $junction = one([1,2], [3,4]); say (2,1) ~~ $junction;
p6eval rakudo 2a9382: OUTPUT«0␤»
shinobi-cl rakudo: my $junction = one((1,2), (3,4)); say 2 ~~ $junction; 23:02
p6eval rakudo 2a9382: OUTPUT«1␤»
shinobi-cl rakudo: my $junction = one((1,2), (3,2)); say 2 ~~ $junction; 23:04
p6eval rakudo 2a9382: OUTPUT«0␤»
s1n jnthn: i sent you a pull request 23:26