»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:02 kerby joined 00:03 kerby left 00:04 benabik joined 00:05 benabik left 00:10 TheMartianGeek left 00:11 mikehh joined
jnthn Grr, too tired to think. 00:15
More hacking tomorrow
&
00:16 M_o_C joined 00:19 [particle] left 00:20 [particle] joined 00:22 awwaiid left 00:24 mikehh left, mtk left 00:33 mtk joined 00:37 Rotwang left 00:41 woosley joined 01:15 M_o_C left 01:44 imamelia joined 01:49 bluetom joined 02:02 noganex_ left 02:06 noganex joined 02:08 bluetom left 02:09 coldhead left 02:24 donri left 02:26 slavik2 joined 02:28 pmurias left 02:32 cdarroch left 02:40 risou left 02:45 cls_bsd joined 02:46 awwaiid joined 02:47 tyatpi_ joined 02:52 wooden left 03:04 envi joined
colomon Does anyone out there have a handy framework for using git-bisect with Rakudo? I'm hoping to pin down which commits hosed our speed in the prime.pl benchmark.... 03:42
afk # much-needed sleep
03:47 noganex left 03:55 woosley left 03:58 noganex joined
awwaiid greetings 04:35
I'm writing a blog post about the Whatever-star. Is that an ok thing to call it? "Whatever-star", that is. 04:37
sorear sure why not 05:08
05:24 risou joined
awwaiid lovely 05:32
mberends sorear: so I'm wanting to add a 'now' to niecza that compiles down to 'Instant.new(val=>Q:CLR{DateTime.Now.ToFileTime()*0.0000001})' but that's not how it's done. How is it done?
the Q:CLR is pseudocode for the C# that returns the right value 05:34
probably to be added near niecza/lib/CORE.setting:1188 05:36
05:38 imamelia left 05:41 orafu left
sorear niecza: say now; 05:41
p6eval niecza v3-67-geec33bf: OUTPUT«===SORRY!===␤␤Action method term:sym<now> not yet implemented at /tmp/hGBRXSWM5O line 1:␤------> say now⏏;␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 387 (CORE die @ 2)␤ at
../home/p6eval/niecza/src/ST…
05:41 orafu joined
mberends niecza: my $i = Instant.new(val=>99); say $i.to-posix 05:41
p6eval niecza v3-67-geec33bf: OUTPUT«99␤» 05:42
mberends rakudo: say now.to-posix[0]
p6eval rakudo a357c9: OUTPUT«1299994947.22292␤»
sorear mberends: for some reason I can't quite remember, there's already a Builtins.GetNow which returns a value suitable for val =>
mberends ok, I'll search for that. I don't want you to give me a fish, I want you to teach me how to fish. 05:43
sorear mberends: probably because of the 'long' termorary that would otherwise be required
05:43 imamelia joined
sorear naturally 05:44
there are three ways to do this - the wrong way, the simple correct way, and the yak-shaving way
the first is seen at NieczaCompiler.pm6 line 14 05:45
since TimToady is strongly opposed to conditional compilation, backend-specific primitives like rawscall really, really, really shouldn't be used in CORE.setting
mberends I see 05:46
sorear hrm
it seems the "simple correct way" is already half done
you can use Q:CgOp { (bif_gettimeofday) } to access GetNow in a backend-neutral way 05:47
mberends ok, sounds sane
sorear so basically what you need to do is term:<foo> handling 05:48
NieczaActions.FALLBACK is the interesting bit here 05:49
it's... a big ugly ball of workarounds
sorry
mberends not just a CORE.setting addition?
sorear nope.
if it were just a function, it could be a CORE.setting addition 05:50
mberends I can imagine that being Wrong somehow
sorear term:<foo> is part of the operator overloading stuff 05:51
an unimplemented part, it seems :/
dalek ok: d9d8f42 | duff++ | src/basics.pod:
[basics] add some verbage on scopes and sigils
ok: dfed068 | duff++ | src/grammars.pod:
[grammars] Add some more prose, change some wording
ok: c661a1d | duff++ | src/grammars.pod:
[grammar] add a note about POD processing
ok: 1ad574f | duff++ | src/classes-and-objects.pod:
[classes] rewording
sorear mberends: how interested are you in figuring out how to do this? 05:53
I have spoilers.
mberends This was an itch to scratch because of my future benchmarking plans (popolnik) but I'm not in the mood for an ugly ball of workarounds, I think I'll shelve this idea for a while. As a niecza n00b developer, I'll take a look at the LHF first.
sorear popolnik?
mberends unpublished, a smoker results aggregator 05:54
sorear once I get niecza building again after the current refactor I'll LHFify now
mberends :D
(popolnik is Slovak for ashtray) 06:01
06:08 takadonet1 joined, takadonet1 left
dalek ecza: a800dde | sorear++ | / (6 files):
Refactor Op::SubDef to delay choosing lexical name
06:08
06:09 Bzek left, Bzek joined
mberends sorear: I think I can use gettimeofday() as a workaround in niecza/lib/Test.pm6 for the time being. Experimenting with that... 06:10
dalek ecza: 7caf678 | sorear++ | src/niecza:
Implement term:<> categoricals
06:13
sorear mberends: term:<now> is now LHF
mberends oh cool. That is quick customer service!
sorear: is there a way to expose Environment.GetEnvironmentVariable() ? I know the whole %*ENV thing is a bigger yak, it was in Rakudo as well. 06:23
sorear yes 06:25
(the main reason I haven't done %*ENV is that tied hashes aren't there yet)
to add a completely new OS primitive:
1. add a method to the CgOp class, following the bif_xxx pattern 06:26
06:26 nymacro joined
sorear 2. add a clause in the pile of stuff around CLRBackend.cs line 3200 06:26
3. add a wrapping function to Builtins.cs, if needed 06:27
4. add a function to CORE.setting to wrap the new op
mberends 5. profit!
sorear 5. (optional, only for 'hot' functions) add a clause to NieczaPassSimplifier.pm6 to inline direct calls 06:28
mberends looks like a nice yak to shave
sorear it's like the opposite of a yak
06:29 Chillance joined
sorear it's something small I have to do far too many times 06:29
not a big one-time annoyance
mberends
.oO(what's the opposite of a yak IRL?)
sorear in this case, step 3 won't be needed, as NAM can handle str->str fine
actually it would probably be better to copy the implementation of path_file_exists 06:30
mberends to me the first time will be a shaving task :)
sorear that already demonstrates how to call a CLR function directly 06:31
mberends yes, that's a good similar case
sorear tip: don't modify CgOp.pm6 unless you really want to recompile about 5,000 lines of downstream code. play with the augments in src/niecza instead. 06:32
mberends thanks. I'll be entering timesharing mode soon, as Sunday dawns in NL.
sorear timesharing mode?
mberends multitasking IRL
sorear is sunday the start of the NL work week? 06:33
mberends doing other stuff around the house
no, Sunday is for home. Sometimes I go to $work for a break ;)
06:38 coldhead joined 06:42 Bzek_ joined 06:44 Bzek left 06:47 nymacro left, nymacro joined 06:57 tyatpi_ left
dalek ecza: 22617be | sorear++ | src/ (5 files):
mergeback
07:01
07:24 imamelia left 07:31 xinming joined
moritz_ good morning 07:34
mberends hi moritz_
moritz_ has a wide awake and peaceful baby in his arms 07:36
mberends :-) :-)
dalek ecs: f265507 | moritz++ | S19-commandline.pod:
[S19] make it possible to the comma in one-liners
07:41
coldhead aw 07:42
moritz_ s/to/to use/ 07:45
I shouldn't spec hack before being really awake :-) 07:46
mberends moritz_: it looked like you the 'skip' or something ;) 07:47
accidentally
moritz_ I thought I the verb :-) 07:48
07:51 justatheory left 07:53 wooden joined, wooden left, wooden joined 08:09 risou left 08:12 mtk left 08:20 mtk joined 08:22 Mowah joined 08:42 VXZ joined 08:54 gabiruh joined
masak good morning. 09:14
src/gc/gc_gms.c:2336: failed assertion 'Dead object found!' 09:15
colomon: did you encounter failures like this when running the p5 solutions over long strings? I do.
09:23 risou joined
moritz_ probably different parrot revisions 09:30
09:30 risou_ joined 09:32 risou left
masak or different input data. or just some indeterminism somewhere. 09:33
rakudo: say any(3, 4) * any(3, 4); say any(3, 4) ** 2 10:02
p6eval rakudo a357c9: OUTPUT«any(any(9, 12), any(12, 16))␤any(9, 16)␤»
masak junctions and the laws of algebra don't mix well :)
moritz_ junctions and the naively applied laws of algebra don't mix will :-) 10:03
masak are you calling my laws of algebra naïve? :) 10:05
they've gotten me this far in life...
moritz_ I just say it's naïve to apply the algebra of real numbers to junctions 10:06
but there might well be a separate algebra for junctions
masak sure. some laws do hold out-of-the box. 10:08
addition and multiplication are still commutative, for example.
10:09 M_o_C joined
moritz_ and I guess distributivity also holds up 10:09
masak was just going to say that :)
the slightly disturbing thing is that an infix:<**> containing special-casing for an exponent of 2 might well give the any(8, 12, 16) result above. 10:10
er, 9*
10:11 isBEKaml joined
moritz_ how so? 10:13
10:13 noganex left
moritz_ I mean, how would that happen? 10:13
masak sub infix:<**>($base, $exp) { if $exp == 2 { return $base * $base }; ... } 10:14
moritz_ autothreads over $base 10:15
10:15 noganex joined
moritz_ ie $base is a Real, not a Junction 10:15
rakudo: sub pow($base, $exp) { if $exp == 2 { $base * $base } }; say pow(any(3, 4), 2); 10:17
p6eval rakudo a357c9: OUTPUT«any(9, 16)␤»
masak hm. 10:20
10:20 MayDaniel joined
masak true. 10:20
rakudo: sub pow(Mu $base, $exp) { if $exp == 2 { $base * $base } }; say pow(any(3, 4), 2);
p6eval rakudo a357c9: OUTPUT«any(any(9, 12), any(12, 16))␤»
masak right. one has to want to cause it to cause it.
10:25 MayDaniel left
moritz_ insert blurb about how Mu type declarations imply that you deal with junctions yourself 10:26
isBEKaml perl6: say substr("camel", 1|2, 3&4); # :? 10:29
p6eval niecza v3-70-g22617be: OUTPUT«Unhandled exception: Junctions NYI␤ at /home/p6eval/niecza/lib/CORE.setting line 387 (CORE die @ 2)␤ at /home/p6eval/niecza/lib/CORE.setting line 1165 (CORE infix:<|> @ 2)␤ at /tmp/PfaU4Oiwn8 line 1 (MAIN mainline @ 1)␤ at /home/p6eval/niecza/lib/CORE.setting line 10:30
..1261 (CORE C5…
..rakudo a357c9: OUTPUT«all(any("ame", "mel"), any("amel", "mel"))␤»
..pugs: OUTPUT«all(VJunc any(VRef <Scalar::Proxy:0x7ff9b979d659>,VRef <Scalar::Proxy:0x7ff9b97a3779>),VJunc any(VRef <Scalar::Proxy:0x7ff9b979f5c9>,VRef <Scalar::Proxy:0x7ff9b97a10d9>))␤»
isBEKaml hmmm, while autothreading over junctions as above, how does rakudo treat the ordering? Essentially unordered? 10:32
moritz_ junctions are unordered intrinsically 10:33
isBEKaml moritz_: I understand. But, when I enter something like above, <any> and <all>. how does Rakudo see them?
especially, in parameters to subs.
masak isBEKaml: <all> binds tighter than <any>. 10:34
isBEKaml: just as && binds tighter than || 10:35
rakudo: say any(1,2) + all(3,4); say all(3,4) + any(1,2)
p6eval rakudo a357c9: OUTPUT«all(any(4, 5), any(5, 6))␤all(any(4, 5), any(5, 6))␤»
masak so no matter what the ordering is in the expression, the all() junctions are evaluated before the any() junctions. 10:36
that's why they end up outermost both times above.
isBEKaml makes sense. all() overrides everything else. how about none() ? 10:37
a contrived eg.
rakudo: say none(1,2) + all(3,4); 10:38
p6eval rakudo a357c9: OUTPUT«none(all(4, 5), all(5, 6))␤»
isBEKaml hmmm
masak none() is just a version of all(), so they're treated the same, I think.
I don't know offhand about the tightness of one().
isBEKaml spec doesn't say anything about this. S09:955 10:39
masak anything about what? seems that section explains it. 10:40
isBEKaml none() and all(), in the eg above. 10:41
masak all() and none() get first dibs from left to right.
isBEKaml the way I see it - it should just be all(3,4).
masak isBEKaml: then you've misunderstood junctions a bit.
isBEKaml: they're not intuitive, they're logical :P
isBEKaml rakudo: all(1,2) + none(3,4)
p6eval rakudo a357c9: ( no output ) 10:42
isBEKaml rakudo: say all(1,2) + none(3,4)
p6eval rakudo a357c9: OUTPUT«all(none(4, 5), none(5, 6))␤»
isBEKaml L2R, right. :)
masak just because you see the word "none" there doesn't mean the compiler will go "oh, so these shouldn't partake in the addition!"
isBEKaml masak: I have failed several times over at modern algebra. :D
masak it's more like the compiler goes "hokay, I'll just go ahead and wrap this expression in a none() junction" 10:43
moritz_ s/compiler/runtime/ and ss/wrap this/autothread over/ 10:44
isBEKaml unionised sets? :?
masak and a none() junction is as much a junction of a bunch of values as the other three.
it's just that it has a more negative outlook on life.
isBEKaml: sort of. except that junctions aren't really sets. 10:45
isBEKaml rakudo: none(0+1,8*8) + all(14/7, 89%%3) 10:47
p6eval rakudo a357c9: ( no output )
isBEKaml rakudo: say none(0+1,8*8) + all(14/7, 89%%3); ## gack, nosay.
p6eval rakudo a357c9: OUTPUT«none(all(3/1, 1), all(66/1, 64))␤»
10:47 donri joined, coldhead left
isBEKaml rakudo: say none(0+1,8*8) + all(14/7, 89%3); 10:48
p6eval rakudo a357c9: OUTPUT«none(all(3/1, 3), all(66/1, 66))␤»
masak rakudo: say all(1,2) / any(3,0) 10:50
p6eval rakudo a357c9: OUTPUT«all(any(1/3, 1/0), any(2/3, 1/0))␤»
isBEKaml what I got seems weird to me. :(
masak why?
isBEKaml evaluate expressions and perform operation. it goes the other way. 10:51
masak that's part of the point of junctions.
isBEKaml maybe, I'll have to re-read the section again. 10:52
masak maybe you shouldn't start by understanding two junctions in one expression. one junction is easier to see. 10:57
rakudo: say 40 + any(1,2,3)
p6eval rakudo a357c9: OUTPUT«any(41, 42, 43)␤»
11:10 whiteknight joined
isBEKaml hmm, in the case of all() and none(), the left most autothreads. with others, all() or none(), if present override the rest to be autothreaded. 11:14
unintuitive but logical. :)
masak I didn't grok that, but it sounds overly complicated. 11:23
11:24 woosley joined 11:26 fisted_ is now known as fisted
isBEKaml it looks like it. my attention deficit forced me to skip reading it the first time around. 11:30
isBEKaml ducks
11:31 risou joined, cjk101010 joined 11:34 risou_ left 11:41 donri left 11:43 karupanerura joined 11:45 M_o_C left 11:50 cjk101010 left 11:57 cjk101010 joined 11:58 [particle]1 joined 11:59 [particle] left 12:02 jaldhar left, jaldhar joined 12:12 LoRe joined 12:19 isBEKaml left, MayDaniel joined 12:35 kaare_ joined 12:39 kaare_ left 12:43 aloha left 12:45 aloha joined
colomon masak: I actually don't know. The benchmarking setup actually just times how long the program runs, it doesn't check the results in any way. 12:51
masak: sounds like a Rakudo or Parrot bug...... 12:52
masak oh, it's definitely GC-related (so, Parrot). 12:53
I also don't check the results, but I kinda notice when the program dies with a stacktrace. :)
masak .STORE 12:58
jnthn
.oO( what's being stored in masak? )
13:00
tadzik most likely the groceries 13:02
13:05 tyatpi_ joined 13:23 M_o_C joined 13:30 sji joined 13:31 sji left, sji joined, risou_ joined 13:32 sji left 13:33 sji joined 13:34 risou left 13:35 sji left 13:36 sji joined, sji left 13:37 sji joined 13:38 sji left 13:39 sji joined 13:40 sji left 13:43 karupanerura left 13:45 M_o_C left
colomon masak: the other thing is I was running everything on my box with 8 gigs of RAM. :) 14:05
14:07 cjk101010 left 14:08 Axius joined
tadzik hmm, the shiny new IO.copy hangs on directories 14:10
14:13 UAACIEU joined
tadzik Module to port: ExtUtils::Command 14:16
mberends aye :) 14:18
tadzik there was this Rakudo Star wiki, with Most Wanted List 14:19
or maybe we should start one in the ecosystem
jnthn Sounds good 14:20
It's another thing to point people who want to contribute at
tadzik aye 14:21
mberends then also make sure it's prominently linked on perl6.org
tadzik github.com/perl6/ecosystem/wiki/Mo...write-port 14:26
mberends worries about an unhelpful flood of module names 14:29
tadzik oh, there aren't that many of us so we won't be able to track who did this :) 14:30
mberends s/won't/will/ 14:31
tadzik hmm, that's not what I meant :) 14:32
There aren't that many of us that the seek for the flooder will be difficult. There
mberends ok, it looks like you have to be logged in to edit the page :) 14:35
tadzik aye. I reported that as a Githubbug around a year or two ago. They said: "We're working on it" 14:36
dalek href="https://perl6.org:">perl6.org: 2aeec31 | tadzik++ | source/getting-started/involved.html:
[getting involved] Add a like to the Most Wanted page on the ecosystem wiki
14:50
href="https://perl6.org:">perl6.org: 3386761 | tadzik++ | source/compilers/index.html:
[compilers] Move Niecza higher on the list
14:51 imamelia joined
tadzik mberends: well, there's a risk some people will rush with Catalyst, Mason, DBIx::Class and then say "what? Of course it's Most Wanted" 14:51
mberends indeed, there could be so many such "clever" remarks
tadzik we could grant a Captain Obvious Award to ones who add such entries :) 14:52
mberends +1
14:55 wooden left
moritz_ is General Oblivious 14:55
mberends :-) I've just put the following into an executable /usr/local/bin/niecza: 14:56
#!/bin/sh
MONO_PATH=/home/martin/2011/perl/niecza/run /home/martin/2011/perl/niecza/run/Niecza.exe "$@"
and it works lovely!
masak \o/ 15:07
15:10 gabiruh left 15:17 gabiruh joined
mberends masak: did you really mean "Perl 6 coding context" in strangelyconsistent.org/blog/p5-fin...-substring ? 15:20
masak no :) will fix. 15:27
15:30 icwiener joined 15:32 ggoebel joined 15:38 _twitch joined
mberends niecza currently aborts all of the p5 solutions, I wonder how soon it will be able to run some of them 15:38
15:55 imamelia left
masak mberends: aborts due to syntactical problems? 15:56
15:58 woosley left
masak er, I mean due to NYIisms? 15:58
15:59 mtk left, dual joined
masak oh, and typo fixed. mberends++ strangelyconsistent.org/blog/p5-fin...-substring 16:00
16:01 Axius left 16:07 mtk joined 16:09 MayDaniel left
sorear good * #perl6 16:13
hello mberends 16:16
masak sorear! \o/
sorear does 'now' work yet?
mberends hi sorear, not yet, I was distracted ;-) 16:17
16:17 envi left 16:18 Patterner left
mberends sorear: could niecza (with a little fixin') run any of these 2010 P6 Coding Contest entries? strangelyconsistent.org/p6cc2010/ 16:19
16:19 Psyche^ joined, Psyche^ is now known as Patterner
mberends niecza p5-colomon.pl Undeclared routine: 'exists' used at line Any() Unhandled exception: Check failed 16:25
niecza p5-fox.pl Unhandled exception: No value in mainline available for parameter $j
niecza p5-matthias.pl Unhandled exception: Unable to resolve method push in class Hash
niecza p5-moritz.pl Multi routines NYI at /home/martin/2011/perl/p5-moritz.pl line 43
niecza p5-util.pl Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.
sorear foxp3 looks like will run 16:27
mberends and my unofficial solution niecza p5-mberends.pl Undeclared routine: 'index' used at line Any()134 16:28
sorear: you could wipe the board with the CLR speed
16:29 [particle]1 is now known as [particle]
masak I predict that next Christmas, Niecza will be a viable implementation for doing p6cc solutions in. 16:31
mberends aye
16:31 mj41_nb joined, barika joined
masak today's autopun spotting: "Circular logic is the best type of logic, because it's circular." (from @acangiano) 16:31
mberends lol 16:32
masak it's funny how autopuns keep being funny, despite being so formulaic ;)
sorear mberends: want commit bit? 16:33
mberends sorear: definitely
sorear done 16:34
mberends thanks
16:34 mj41_nb left 16:36 mj41_nbx joined 16:37 barika left 16:39 MayDaniel joined 16:41 justatheory joined 16:43 dju__ left 16:44 barika joined 16:53 benabik joined 16:58 mj41_nbx left 17:06 tyatpi_ left 17:12 mj41_nbx joined 17:13 MayDaniel left 17:16 mj41_nbx left 17:21 kaare_ joined 17:24 allbery_b joined 17:29 tyatpi_ joined 17:34 imamelia joined
masak imamelia: your nick reminds me of bash.org/?328464 :) 17:36
Trashlord masak: haha 17:37
imamelia I'm actually TheMartianGeek, but since I used this nickname on another server long before I ever joined any Perl-related channels and I'm not familiar enough with my IRC client to set more than one nickname as default, that's what it turned out as. 17:38
17:39 imamelia is now known as TheMartianGeek
masak ah, now I recognize you! :) 17:39
TheMartianGeek (In fact, there are quite a few other things I can't figure out how to do with it either...)
moritz_ TheMartianGeek: suggesting to read your IRC client's documentation won't do much good, will it? 18:02
mberends RTFM is so last century 18:05
twinshadow wicked burn 18:07
TheMartianGeek [12:02] <moritz_> TheMartianGeek: suggesting to read your IRC client's documentation won't do much good, will it? <-- Lousy documentation. And some of the things it says are possible, I've tried with no luck. 18:09
mberends TheMartianGeek: xchat works nicely for me, even though I don't know much about it. Try some other programs. 18:11
flussence_ I tried to figure out how to write irssi's scrollback to a file the other day. The docs literally cut off a few pages in saying "I couldn't be bothered to do the rest"
mberends naughty irssi, no biscuit! 18:12
sorear there are no good irc clients; the protocol sucks too much 18:16
(actually I got into Perl 6 because I wanted to use it to write an irc client, but gave up) 18:18
masak yeah, probably too early still.
maybe another good goal for Niecza? :)
18:19 donri joined
sorear interesting that in multi sub infix:<+>(Int $x, Int $y) { ... } the colonpair adds to the short name 18:20
while in multi token infix:sym<+> { <...> } the colonpair adds to the long name
masak huh. never thought of that.
though the first form doesn't really look like a colonpair... 18:21
tadzik hola zebras
sorear is trying to build a single unified conception of "multi"
does any current implementation support "my proto token"? 18:22
masak tadzik! \o/
tadzik: 5K! \o/
oh wait. wrong tzadik... :)
18:49 _twitch left
flussence_
.oO( are the [← →] arrows in DejaVu Sans vertically misaligned? or is there a reason I'm not getting... )
18:57
dalek ecza: af2dab4 | sorear++ | src/ (9 files):
Remove stale hashes, workaround bitop definitions
19:04
benabik flussence_: They don't look aligned in Monaco either.
19:05 imamelia joined
mberends TheMartianGeek: you can run, but you can't hide! 19:06
19:07 TheMartianGeek left, imamelia is now known as TheMartianGeek
dalek kudo: 592e298 | tadzik++ | src/core/IO.pm:
Don't try to copy directories in IO::copy. Previously it hanged, now it gives a friendly die()
19:12
19:17 TheMartianGeek left
sorear I liked "imamelia" better 19:27
masak who wouldn't like an imam named Elia? ;) 19:29
19:30 frodwith joined
tadzik nopaste.snit.ch/37334 -- could someone give me a hand with this one? 19:48
jnthn Rakudo is giving the right complaint 19:49
There is no sub foo
tadzik yeah, there is a method though
jnthn self.can('&foo').wrap({ ... }) may do it 19:50
cah
self.can('foo').wrap({ ... })
Or look in .^methods
tadzik why the .can part?
now I get Method 'wrap' not found for invocant of class 'P6Invocation'
jnthn Figured that may happen 19:51
Well, easy way is to make it an our method and then &A::foo.wrap
19:51 Rotwang joined
jnthn But looking in .^methods to find it would also work I guess. 19:51
tadzik well, that can be done with just 'method foo { say "before"; callsame }'
jnthn No, then .wrap the thing you find 19:52
You could also do that but I guessed you wanted to wrap the original...
tadzik well, I just wanted the 'before' from Moose, there or another way. Not sure which one will be more correct 19:53
masak maybe worth adding that this will be fixed with the nom branch merge... 19:54
19:54 TheMartianGeek joined 20:01 MayDaniel joined
tadzik as everything, including the black spots on the sun :) 20:04
masak yeah. I submitted those back in '08.
sorear wrap is basically nothing like Moose's before 20:06
jnthn is adamant that Moose's before is not needed in core Perl 6 20:07
jnthn sorear: er
sorear: When did I say that
?
sorear jnthn: around a year ago. might've been TimToady. 20:08
lue hello world! o/
sorear hi leu
mberends hellue! o/
masak lue! \ue/ 20:10
sorear niecza: say ?Bool 20:11
p6eval niecza v3-71-gaf2dab4: OUTPUT«Unhandled exception: System.InvalidCastException: Cannot cast from source type to destination type.␤ at Niecza.CtxJustUnbox`1[System.Boolean].Get (Niecza.Variable obj) [0x00000] in <filename unknown>:0 ␤ at CORE.C108_Bool_2EStr (Niecza.Frame ) [0x00000] in <filename
..unknown>:0 ␤ …
masak "Cannot cast from source type to destination type" -- what else would you cast to and from? :P
20:12 Bzek joined
tadzik Nominal type check failed for parameter '$p'; expected Pies::Project but got Str instead -- could those include line numbers by any chance? 20:14
jnthn The backtrace should. 20:15
tadzik it maybe doesn't like .pir files
20:15 Bzek_ left 20:25 jaldhar left, jaldhar joined
Util flussence_: To write Irssi's scrollback to a file, use: /lastlog -file some_file_name 20:27
flussence_ argh, should've known it was something simple. 20:28
20:28 coldhead joined
Util Don't feel bad; I happened to look for that functionality a few days ago, and had to read *every* option in the command reference until I got to /lastlog. 20:29
mberends well it would be last, wouldn't it? ;) 20:30
Util Did I just slip into a "my keys are always in the last place I look for them" joke? Doh! 20:32
I had to read over half the manual to find the option. 20:33
s/over/almost/
Util obviously needs to recharge; supper & 20:34
masak I get the feeling that most people who do the "keys in last place I look" thing aren't aren't really joking. more likely they're really flummoxed by this correlation. 20:36
jnthn "I found my keys, but I kept looking for a while, just so they weren't in the last place I looked." 20:40
dalek p/ctmo: e458b36 | jonathan++ | src/NQP/ (2 files):
Parse scope declarators on packages; minor actions updates.
p/ctmo: 2b1619e | jonathan++ | src/ (2 files):
Compile time symbol installation becomes a task for the SC builder.
p/ctmo: dd93e72 | jonathan++ | src/ (2 files):
Add storage slot for WHO and get_who/set_who ops.
p/ctmo: 5d47501 | jonathan++ | src/ (2 files):
.WHO support; make sure we don't ever hand back a C NULL.
frettled :) 20:45
I often find (pun intended) that things usually are not in the last place I look, but either in a place I have already looked (but not good enough), or simply discarded as a place I think I know it cannot be. 20:46
«Nah, that book isn't THAT thin, it can't _possibly_ be in that pile.» -> FAIL
masak solution: don't have piles. 20:47
jnthn Yeah, they're a pain in the ass!
tadzik piles++
at least everything is in one place 20:48
lue But they're *sooo* easy to make!
mberends but are your piles stacks or heaps?
tadzik hmm, it depends 20:49
masak stacks of heaps.
tadzik heaps of stacks
mberends HoSoH
tadzik all(Stack, Heap) does Mess;
mberends s/Mess/Garbage/ 20:50
20:55 mj41_nb joined
lue btw, can anyone take a look at this? I'll take another crack at it in a bit, but I think more eyes would be handy: gist.github.com/837820 20:55
tadzik what's the problem? 20:57
lue It's in there, but the grammar only decides to parse one POD block before giving up. 20:58
tadzik is there any other block in there?
lue yes. The link I gave above has sample REPL usage. 20:59
tadzik yes, I'm looking at that one
rule document is <block>+. =begin head1\nHAI\n=end head1\n is the first block, which one is the second? 21:00
lue =for head1\nDERE\n\n 21:02
tadzik oh I get it
is <?DEBUG(1)> helpful?
lue I tried that a while back, and I don't remember it being helpful (partly because it seems to continuously loop through all the possible blocktypes repeatedly before moving on, even if it already matched something, IIRC) 21:04
jnthn That sounds...odd. 21:05
masak lue: that, in all honesty, sounds like a problem with your grammar, rather than with <?DEBUG(1)>
jnthn The DEBUG shouldn't ever change the control flow. 21:06
I've seen how it's implemetned and it's hard to imagine it not being pretty honest about what's going on.
masak lue: fwiw, I'm having a very similar problem with Yapsi right now.
lue: how much do you know about backtracking and token/regex?
tadzik the DEBUG wfm in this case 21:07
lue I've been guessing it's a problem with (!)backtracking somewhere. 21:08
masak lue: do you know about ratcheting and token/regex? 21:10
(and things like the difference between .* and .*: ) 21:11
lue I haven't bothered to look up ratcheting yet.
masak ratcheting is what prevents backtracking.
generally, in a grammar that parses large amounts of text (like Pod), you'll want ratcheting in as many places as possible. 21:12
(to make the grammar parse the text in linear time)
lue There wasn't an advent post on ratcheting, was there? [If not, I'll continue reading the synopses] 21:18
21:21 takadonet1 joined
takadonet1 hey all 21:21
flussence_ o/ 21:22
masak hey takadonet1 21:24
takadonet1 question.... How does a child class calls it's parent class method ? i.e class Parent { method fcn { ... } } ; Class child does Parent { method fcn { self.super.fcn ???? } } ; child.new().fcn();
jnthn Normal was is callwith (or callsame just to pass on same args) 21:25
s/was/way/
lue regex is the only one of the three that does backtracking by default, right?
takadonet1 just callsame() ? 21:26
jnthn rakudo: class A { method lol() { say "wtf" } }; class B is A { method lol() { "omg{callsame}bbq" } }; B.lol
p6eval rakudo 592e29: OUTPUT«wtf␤»
jnthn oh duh :)
rakudo: class A { method lol() { "wtf" } }; class B is A { method lol() { say "omg{callsame}bbq" } }; B.lol
p6eval rakudo 592e29: OUTPUT«omgwtfbbq␤»
jnthn Anyway, yes, just callsame() :) 21:27
takadonet1 perfect
jnthn parens optional :)
takadonet1 jnthn++
how's your branch coming along?
jnthn Slowly but mostly because I'm having to do a bunch of ground work.
It'll pay off though.
takadonet1 I know
jnthn Expect we get resolve a bunch of long-running issues. The dependency tree for doing so just went deeper than I had expected. 21:28
takadonet1 well your branch will probably break lots of my workarounds then :)
jnthn Depends how cheaty/non-Perl-6-y they are :)
takadonet1 some are bad 21:29
jnthn :)
takadonet1 but gotten a huge of the base class somewhat working for bioperl6
21:29 M_o_C joined
takadonet1 huge piece* 21:29
masak takadonet++
jnthn yay!
takadonet1 github.com/cjfields/bioperl6 21:30
once all the test are passing, time to cleanup the code
jnthn :)
dalek p/ctmo: d0337bd | jonathan++ | src/ (3 files):
Stub in use. Will eventually be where GLOBAL merging and stuff gets done.
21:32
p/ctmo: 3dd30e3 | jonathan++ | src/stage0/ (6 files):
Push basic use support into the bootstrap.
lue I think what I'll do is look through my grammar and place racheting marks where they seem to be useful. 21:35
[ and if it turns out they aren't useful, remove them :) ] 21:36
masak lue: sounds good. remember, there's both ratcheting marks, and token/rule.
takadonet1 Is there a way yet to do lazy parsing with a grammar/action combo? i.e return after only parsing a section of an input file?
jnthn takadonet1: Do you want to resume afterwards? 21:37
takadonet1 yes
benabik Doesn't rule backtrack?
jnthn takadonet1: Hm
takadonet1 it would be great to do that when parsing very large text files
jnthn takadonet1: You can't somehow use gather/take to do that?
takadonet1: Doing the takes in the action methods?
takadonet1 I was but I believe at the time, something I was using was forcing it to be eager instead of lazy b/c NYI 21:38
jnthn ah
takadonet1 github.com/cjfields/bioperl6/blob/...s/Fasta.pm 21:39
not sure what operators to use to make that it's lazy
lue
.oO(time to move the rest of my round tuits into the P6 bin.)
21:40
jnthn takadonet1: The thing is that it will already have parsed everything by the time the TOP action method gets called.
takadonet1: I suspect the gather needs to be entirely outside of the actions 21:41
takadonet1: And the take needs to be in action method fasta, for example.
takadonet1 jnthn: i see If I can do that 21:42
thx
21:44 MayDaniel left 21:59 TheMartianGeek left 22:02 mj41_nb left
dalek p/ctmo: 76d887f | jonathan++ | / (5 files):
Re-write the nqp-builtins cheats into NQP and stick 'em in the setting.
22:04
22:05 tyatpi_ left
masak good night, #perl6. 22:12
mberends o/
22:13 masak left
lue I think this helps: I found out it's not a "won't parse >1 block" problem, it's simply that it only parses delimited (=begin/=end style) blocks! 22:26
22:27 plobsing joined
dalek ecza: 543ebb3 | (Martin Berends)++ | / (3 files):
[my first niecza commit] implement 'now' as per Synopsis 02
22:30
takadonet1 mberends++ congratz
mberends :D
colomon \O/ 22:34
colomon apparently has a big head 22:35
mberends rakudo: say now.to-posix[0]
p6eval rakudo 592e29: OUTPUT«1300055719.72275␤»
mberends niecza: say now.to-posix[0]
p6eval niecza v3-71-gaf2dab4: OUTPUT«Unhandled exception: System.Exception: Unable to find lexical &term:<now> in mainline␤␤Server stack trace: ␤ at Niecza.CLRBackend.NamProcessor.ResolveLex (System.String name, System.Int32& uplevel, Boolean core) [0x00000] in <filename unknown>:0 ␤ at
..Niecza.CLRBackend.NamProcesso…
benabik What is now.to-posix[1]? 22:36
mberends like unix time, but with fractional seconds too
benabik rakudo: now.to-posix[1]
p6eval rakudo 592e29: ( no output )
mberends oh, [1] is a flag whether there is a leap second somewhere 22:37
benabik rakudo: now.to-posix[1].say
p6eval rakudo 592e29: OUTPUT«Bool::False␤»
benabik Oddly.
Odd, rather. But precisely defining "now" is odd.
moritz_ rakudo: say now.to-posix.perl 22:39
p6eval rakudo 592e29: OUTPUT«(1300055939.16743, Bool::False)␤»
jnthn rakudo: say("body"); sub MAIN() { say("main") } 22:40
p6eval rakudo 592e29: OUTPUT«body␤main␤»
lue
.oO(it FINALLY works! time to blog...)
moritz_ rakudo: sub MAIN() { say("main") }; say 'body'
p6eval rakudo 592e29: OUTPUT«body␤main␤» 22:41
22:41 nymacro left
jnthn phew ;) 22:42
mberends colomon, moritz_ : p5-mberends-c.c for comparison, and more benchmark results inside
colomon, moritz_: pastebin.com/YgQDEcpq 22:43
22:43 Mowah left 22:49 M_o_C left 22:53 Rotwang left 23:05 tyatpi_ joined 23:07 kaare_ left 23:10 wolverian joined
dalek p/ctmo: c910ccf | jonathan++ | src/ (4 files):
Start working towards eliminating src/nqp/Compiler.pir in favor of just having Compiler.pm. This moves a couple of bits around, and also twiddles Grammar.pm and Actions.pm to actually be valid Perl 6 (they used to have two semicolon style packages in the same file).
23:11
p/ctmo: e96422c | jonathan++ | src/NQP/ (2 files):
Implement sub MAIN. The multi case probably works too (if you declare a proto). Also should handle the case where it's not in the outermost scope (Rakudo gets that wrong...steal this fix! ;-)).
p/ctmo: 4619313 | jonathan++ | src/ (2 files):
Move Lexpad HLL mapping to where it probably shoulda gone in the first place.
p/ctmo: d5fbdcf | jonathan++ | src/stage0/ (6 files):
Update bootstrap.
p/ctmo: 02dd606 | jonathan++ | src/NQP/Compiler.pir:
Toss a chunk of stuff that's happily handled by NQP's generated output now, so needn't be done magically at compiler startup.
23:14 PacoLinux left 23:34 risou joined, risou_ left
lue blog post! rdstar.wordpress.com/2011/03/13/th...indfolded/ 23:37
23:38 Grrrr left 23:41 Grrrr joined 23:45 mtk left 23:54 mtk joined 23:55 fisted_ joined 23:57 ymasory joined, fisted left