»ö« | perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is your friend!
Set by Tene on 14 May 2009.
jnthn That could help us. 00:00
(performance wise)
pmichaud and I need to finish converting PCT to use 'box'
jnthn By not having to re-bless stuff.
Depending on what we can map of course.
Tene: Going to spectest on Windows now.
Tene jnthn: so what syntax did you get working for defining sub trait?
jnthn Will be surprised if I see anything different from you though.
Tene: Ah, I pasted it as a gist earlier...let me see if I can find it... 00:01
Tene ohright
yeah, I've got it. 00:02
jnthn ah, ok, great.
Tene s1n: so, what did you want to know about it? 00:05
s1n basically, everything heh
lemme pull up the example
Tene github.com/masak/web/blob/92ff66f47...ispatch.pm 00:06
s1n: gist.github.com/111994
I still need to make loldispatch store the dispatch table in the caller's namespace... 00:07
jnthn needs some sleep
See you all tomorrow
Tene 'night jnthn
s1n man, it's hard: perl6 or red wings :/
Tene what is red wings? 00:08
s1n heh hockey
what's trait_auxiliary?
00:08 cognominal left
s1n and the :<is> syntax? 00:08
Tene trait_auxiliary is what is called when rakudo encounters something extra in a declaration. 00:11
s1n which declaration is that? $item<route> and $item<block>? 00:13
or really just $item<block>()?
Tene eh?
no, look at the example
sub ... is http-dispatch(...)
the 'is' is an auxiliary trait
s1n is http-dispatch? 00:14
Tene right
gist.github.com/111994
s1n what line? i dont see that
Tene erm...
http-handler
s1n you mea :<is>(http-handler....)?
s/mea/mean/
Tene look at the paste.
s1n okay 00:15
what do the foo and item subs do?
Tene what? 00:16
gist.github.com/111994
bacek_ rakudo: sub postfix:<!>($x) { $x ?? $x*($x-1)! !! 1 }; say 5!
p6eval rakudo b41e13: OUTPUT«120␤»
bacek_ pmichaud++ jnthn++ (everyone else)++ # Welcome to the future!
00:16 eternaleye left
s1n Tene: I was looking at the LolDispatch class itself 00:17
well, the usage bits
Tene oh, in the comment
s1n oh, =begin/=end are comments .... doh 00:18
shouldn't those comments say 'is http-handler' like your gist?
Tene yes. I forgot to update them.
s1n oh okay
that gist makes more sense then 00:19
Tene committed.
s1n cool, thanks for that, i was looking for something exactly like this
Tene howso?
s1n i needed a method dispatcher based on strings 00:20
i was going to do a cheezy hash/method lookup
s1n must go watch redwings now :/ 00:21
Tene just replace @routes with %routes
etc.
gimme a sec... I'll write your call-method-as-sub module now.
or you can see it when you get back
seeya
skids rakudo: sub infix:<`> (*@slurp) { join("OH", (map {.perl}, @slurp)); }; my @a = (2,3,4); (@a ` 2 ` 3).say; 00:22
p6eval rakudo b41e13: OUTPUT«"2OH3OH4OH2"OH3␤» 00:23
skids racking brain as to where those "'s come from
00:27 cognominal joined 00:31 justatheory left 00:51 alc joined 00:54 eternaleye joined, justatheory joined
eternaleye rakudo: class LazyList { has $location; has @contents; method generator { $^a + $^b }; method new( @starter ) { @contents = @starter; $location = 0; }; method next() { if $location + 1 == @contents.elems() { my @tmp = (); for 1 .. &generator.arity() -> $i { @tmp.unshift( @contents[ - $i ] ); }; @contents.push( &generator.( |@tmp ) ); ++$location; return( @contents[$location]); }; };}; my @beginning = ( 1, 1 ); my $foo = LazyList 00:59
@beginning ); while Bool::True { given $foo.next() { .say; } };
p6eval rakudo b41e13: ( no output )
eternaleye Hm, that gives a null PMC locally. 01:00
git pull time!
skids eternaleye: it isn't implemented yet, but you might enjoy the stuff in S07 01:01
eternaleye skids: Yeah, I was trying that out to see if, when List is fully in the setting but is not yet lazy, I could implement the proper API relatively simply. 01:02
When de-compactified, it's probably a pretty good way to go for infix:<...> too 01:03
skids I think evalbot may not have gotten the whole line you pasted.
eternaleye It _would_ be pretty funny if it cut it off somewhere but was still valid Perl6 01:04
Ah, that's what it is. I was getting a null pmc in parrot;Role;perl when I had typed parameters to new() [ those being Object @starter, Code &generator ] 01:06
(Object so that it can autothread the generator block on junctions)
skids tries to figure out out to feed newlines in Q:PIR to evalbot 01:07
eternaleye rakudo: Q:qq:PIR { say "hi" \n say "hi" } 01:08
p6eval rakudo b41e13: OUTPUT«Colons cannot be used as delimiters in quoting constructs at line 1, near ":PIR { say"␤␤current instr.: 'perl6;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
eternaleye (just guesing here)
*guessing
pasteling "skids" at 71.192.212.78 pasted "pre-"implemented yet"-but-works iterator stuff for eterneleye" (14 lines, 381B) at sial.org/pbot/36624 01:16
Tene s1n: nevermind, it didn't work out. 01:20
STD: sub term:<∅> { say 'lol' } 01:21
what happened to std-bot? 01:26
01:26 cdarroch left
Tene pmichaud: ping 01:28
skids std: sub term:<∅> { say 'lol' } 01:30
p6eval std 26833: OUTPUT«ok 00:04 43m␤»
skids a case of case sensitivity
:-0
Tene :) thanks 01:31
skids std: sub infix:<`> (|$args) { ... }
p6eval std 26833: OUTPUT«ok 00:02 37m␤»
Tene std: use Rails:lang<ruby>; 01:33
p6eval std 26833: OUTPUT«ok 00:02 35m␤»
skids rakudo: Q:PIR{ say 1␤say 2 } 01:36
p6eval rakudo b41e13: OUTPUT«1␤2␤»
Tene .u ␤
phenny U+2424 SYMBOL FOR NEWLINE (␤)
Tene That's funny that that's parsed "properly". :) 01:37
skids rakudo: my @a = <a b>; my $it = @a.iterator; for 1..3 { +$it.say; my $f = Q:PIR { ␤ $P0 = find_lex '$it' ␤ %r = shift $P0 }; $f.say; } 01:40
p6eval rakudo b41e13: OUTPUT«0␤a␤1␤b␤-1␤StopIteration␤current instr.: '_block34' pc 285 (EVAL_22:120)␤»
skids (basically same thing I pastebotted, but good to be able to do it inline.) 01:41
01:51 lichtkind_ left 01:53 sri_kraih left 01:58 justatheory left 02:08 mizioumt joined 02:11 mizioumt left 02:19 NoirSoldats_ left 02:20 drbean_ is now known as drbean 02:21 NoirSoldats joined
skids NoirSoldats: Heh, I just watched Noir a couple weeks ago. 02:34
02:53 amoc left 02:55 amoc joined 03:20 donaldh left, donaldh joined 03:41 hcchien_ joined, hcchien left 03:43 clkao_ joined, clkao left, orafu left, alester_ joined 03:44 orafu joined 03:48 kimtaro joined 03:57 skids left 04:00 cognominal left 04:02 hcchien_ is now known as hcchien, donaldh left 04:04 donaldh joined 04:26 szabgab_ is now known as szabgab 04:34 FurnaceBoy left 04:35 sri_kraih joined
Tene Nice, I now have the following working in rakudo: my $s = ⦃ 1, 3, 5 ⦄ ∩ ⦃ 1, 2, 3, 4 ⦄; 04:40
04:46 kate21de joined 04:52 mberends joined
dalek kudo: 271bbd0 | tene++ | src/parser/ (2 files):
Start parsing version information in use statements.
04:53
kudo: 8ff0e0a | tene++ | src/parser/ (2 files):
Add support for defining circumfix operators.
mberends Tene: awesome stuff, 2day youz teh rakduo op! 04:55
Tene writing a blog post right now... 04:56
04:56 justatheory joined 05:02 justatheory left, justatheory joined 05:07 aff joined, aff left
mberends 'perl6 -v' on fresh build omits version info. Is that intentional? 05:10
Tene blogs.gurulabs.com/stephen/2009/05/...m-ops.html 05:30
mberends Tene++z rly teh op op 2day 05:33
05:33 justatheory left 05:35 frew joined
frew is there a more generic term for hyperoperator? 05:42
and is there a functional version so we can make our own functions or do we have to define an infix op?
mberends a (normal) function that receives and returns lists seems 'hyper' 05:47
frew ok, I was just wondering if there was a word for it like there is a word for reduce
Like a word that isn't linguistically bound but is in lisp or something
mberends naw, the vocabulary appears to be exhausted right now. with a couple more players, we could have one of those word games ;) 05:49
frew haha, no I was wondering if ther was an established one
I don't need a new one
mberends sure, methinks presently none though 05:50
frew as as for a non-infix version of a hyperop?
s/as/and
mberends prefix and postfix I guess, but all ops need a fix. 05:51
frew no no, I mean like something like this:
hyper({ $^a + $^b}, @a, @b) 05:52
assume the function given were more complex though
mberends ah, there have been only infix examples of that shown here so far 05:53
TimToady map { $^a + $^b }, @a Z @b
map { $^a + $^b }, (@a Z @b) rather 05:54
05:54 alester_ left
frew I thought it might be something like that 05:55
very cool
TimToady map { $^a + $^b } <== @a Z @b
frew and the latter would have better performance right?
TimToady not necessariy
frew because it's stream-y and lazy?
TimToady rily
frew rily. Indeed. 05:56
TimToady lists are already lazy
<== rather explicitly allows a separate thread to generate the values, though
frew ah, very cool
mberends stream-y++
Tene TimToady: what's the reason for requiring map to be in-order?
TimToady in case there are side effects or dependencies. if you want to promise there are none, use hyper map 06:00
then it can evaluate them in any order, though return order is still guaranteed
Tene OK 06:01
TimToady just as with hyper operators
Tene I had forgotten about "hyper map"
frew what's hyper map?
TimToady a map in hyper context
which is an eager context that promises you don't care about order of evaluation 06:02
doubtless will be ignored in 6.0.0 though
frew so like, hyper map { $_~' is awesome' } 1,2,3,4;
TimToady it's just there as the generalization of hyperops
still produces the same list as without the yper 06:03
but if you said "say $_ is awsome" in the middle, they could happen in any order
er, only punctuated right
frew right
TimToady if Perl were a language with no side effects, you could always assume a hyper 06:04
but it's not 06:05
frew fortunately for us mortals.
I love functional programming, but not all the time.
06:12 kate21de left 06:19 LadyLuna1y joined 06:28 nbrown_ joined
moritz_ rakudo: sub circumfix:«` `»(say $x); `"foo"` 06:29
p6eval rakudo 8ff0e0: OUTPUT«Malformed routine definition at line 1, near "circumfix:"␤␤current instr.: 'perl6;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
06:31 nbrown left, nbrown_ is now known as nbrown
Tene rakudo: sub infix:<⦃ ⦄>($x) { say "omg: $x" }; ⦃ "hi" ⦄ 06:32
p6eval rakudo 8ff0e0: OUTPUT«Syntax error at line 1, near "\u2983 \"hi\" \u2984"␤␤current instr.: 'perl6;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
Tene rakudo: sub infix:<` `>($x) { say "omg: $x" }; `"hi"` 06:33
p6eval rakudo 8ff0e0: OUTPUT«Syntax error at line 1, near "`\"hi\"`"␤␤current instr.: 'perl6;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
Tene rakudo: sub circumfix:<` `>($x) { say "omg: $x" }; `"hi"`
p6eval rakudo 8ff0e0: OUTPUT«omg: hi␤»
06:35 LadyLunacy left
moritz_ Tene: thanks 06:35
I wasn't really awake, it seems ;-) 06:36
Tene yeah, I'm mostly asleep right now
06:37 Kisu left 06:51 frew|work joined 06:53 eiro left 07:01 aff joined, aff left 07:09 alc left
pugs_svn r26834 | moritz++ | [t/spec] circumfix custom operator 07:12
moritz_ literal: something in t/spec/S06-operator-overloading/sub.t (line 61) makes perl6.vim go mad, and I can't figure out what char to insert in a comment to make hilight the rest correctly 07:13
07:13 iblechbot joined
moritz_ sub infix:«_<_ » 07:13
everything from the second _ on is hilighted as a quote 07:14
ah, I need *two* closing >
literal: never mind ;-)
pugs_svn r26835 | moritz++ | [t/spec] prevent syntax hilighter from going too mad 07:15
07:16 jferrero left 07:20 donaldh left, donaldh joined 07:27 frew|work left
Matt-W Morning 07:28
07:30 frew left
Tene hi 07:30
07:32 payload joined 07:45 finanalyst joined
finanalyst is the IO of rakudo broken? yesterday $fh.get worked. today i get the error <Could not locate a method 'get' to invoke on class 'IO'.> 07:47
moritz_ rakudo: my $x = $*IN.get; say $x
p6eval rakudo 8ff0e0: OUTPUT«Land der Berge, Land am Strome,␤»
finanalyst hmmm 07:48
moritz_ rakudo: my $fh = open('README') or die $!; say ~$fh.get;
p6eval rakudo 8ff0e0: OUTPUT«=head1 Rakudo Perl 6␤»
moritz_ works fine here.
finanalyst i just did a git pull on my rakudo directory and rebuilt. 07:49
perl6 07:52
my $fh= open('README') or die $!; say $fh.get
Could not locate a method 'get' to invoke on class 'IO'.
that is using my local rakudo
moritz_ did you reconfigure Rakudo? 07:53
Tene finanalyst: there were some major changes recently... do a 'make realclean' and then reconfigure and rebuild
07:57 cognominal joined 07:58 wollmers joined
wollmers moritz_, Tene: I did 'make realclean; git pull; perl Configure.pl --gen-parrot; make' but got 'Unable to open filehandle from path' 08:01
Tene OK 08:02
moritz_ wollmers: in which step did you get the error message?
wollmers ./perl6 'my $fh = open("./README");' 08:03
ooops
./perl6 -e 'my $fh = open("./README");' -- WORKS;-)
08:13 DemoFreak joined 08:18 payload left 08:19 jferrero joined 08:24 bacek_ left 08:32 angelixd joined 08:49 agentzh left, agentzh joined
wollmers std: sub prefix:{"X"} ($a) { return "XXX: $a"; }; say X "b"; 08:59
p6eval std 26835: ( no output )
wollmers rakudo: sub prefix:{"X"} ($a) { return "XXX: $a"; }; say X "b";
p6eval rakudo 8ff0e0: OUTPUT«Could not find non-existent sub X␤current instr.: '_block14' pc 65 (EVAL_18:49)␤»
moritz_ rakudo: sub prefix:<X> ($a) { return "XXX: $a"; }; say X 'b' 09:01
p6eval rakudo 8ff0e0: OUTPUT«XXX: b␤»
09:02 zamolxes joined
wollmers moritz_: yeah, but -fix:{"X"} or {'X'} should be 'the same' (see spec) 09:03
moritz_ wollmers: where do I find that spec?
I know it's the same for hash subscripts
but this pair syntax, afaict
and I've never seen :{'X'} for pairs
wollmers S06: So any of these 09:04
indicates the same binary addition operator:
=head2 Operator overloading
moritz_ right 09:05
feel free to submit a ticket, add tests, whatever you want ;-)
09:05 payload joined
wollmers this would also allow {"\x[...]"} or {"\c[...]"} -- IMHO 09:06
09:07 jferrero left 09:08 jferrero joined, payload1 joined
wollmers sub prefix:{"\c[MINUS-OR-PLUS SIGN]"} # U+2213 MINUS-OR-PLUS SIGN 09:08
moritz_ one day I'll write a \T[...] macro which allows TeX escape sequences 09:09
\T[ \pm ]
shorter than \c[MINUS-OR-PLUS SIGN] ;-)
wollmers std: sub prefix:{"\c[MINUS-OR-PLUS SIGN]"} ($a) { return "XXX: $a"; }; 09:10
p6eval std 26835: OUTPUT«ok 00:04 42m␤»
wollmers moritz_: Unicode has short aliases like a_grave or A_grave 09:12
in Perl 5 'use charnames' you can define your own aliases 09:13
09:13 meppl joined
wollmers or cut and paste from demo.icu-project.org/icu-bin/ubrowse?s=PLUS 09:15
moritz_ wollmers: my point is simply that I know TeX's symbols much better than the Unicode names 09:21
wollmers: so for me it's mostly a matter of convenience
09:23 payload left 09:27 agentzh left
wollmers moritz_: others know HTML entities, thus can use '&rlm;' instead of U+200F RIGHT-TO-LEFT MARK 09:28
09:28 agentzh joined 09:30 Kyosuke_Kiryu joined 09:32 LylePerl joined
jnthn H H 09:33
mberends O AI! 09:35
happy Rakudoday, innit? 09:36
09:43 szabgab left
jnthn mberends: yes 09:49
09:52 Eevee left
finanalyst still having problems with get method for IO. done make realclean, reconfigured and rebuilt. 09:52
ran: perl6 -e 'my $f=open("README",:r);say $f.get'
09:53 sri_kraih left 09:54 Eevee joined
jnthn finanalyst: And what happens? 09:56
(It works here...)
finanalyst I get the following: Could not locate a method 'get' to invoke on class 'IO'. Then a whole load of debug lines 10:01
jnthn finanalyst: You have the latest Rakudo, and a Parrot revision matching that in build/PARROT_REVISION? 10:02
finanalyst i did 'make realclean' then 'perl Configure.pl --gen-parrot' 10:04
so it should be the correct versions No? 10:05
jnthn OK, that shoulda got you right right versions then...
finanalyst i could nopaste you the debug lines, if it would help
jnthn Yes, please. 10:06
pasteling "finanalyst" at 193.110.4.137 pasted "no get method for IO" (91 lines, 6.8K) at sial.org/pbot/36627 10:07
jnthn huh...I've not seen that double free in a while... 10:09
Matt-W meep
double frees are not fun
jnthn finanalyst: What do your build/PARROT_REVISION file contain? 10:10
Just to make sure we're looking at the same thing... 10:11
finanalyst 38768
jnthn Heh, same.
OK, confusing. 10:12
Do you fail any spectests?
(Presumably so, but I'm curious which ones.)
finanalyst when running Config?
jnthn No, when you run make spectest 10:16
10:16 agentzh left
finanalyst running spectest, will get back when finished 10:19
10:20 pmurias joined, zamolxes left, jnthn left, buu left, Maddingue left, jnthn joined, zamolxes joined, Maddingue joined, buu joined, irc.freenode.net sets mode: +o jnthn 10:39 masak joined
masak ahoj, hyperops. 10:40
jnthn ahoj, masak 10:41
ako sa mas?
masak is that Japanese? 10:42
literal rakudo: my sub infix:<􏿽xBB􏿽xF6􏿽xAB> ($a, $b) { return "$a 􏿽xBB􏿽xF6􏿽xAB $b" }; say 'oh' 􏿽xBB􏿽xF6􏿽xAB 'hi';
p6eval rakudo 8ff0e0: OUTPUT«oh ��� hi␤»
literal hm
jnthn masak: No, it's Slovak. :-P
moritz_ Unicode Fail
masak jnthn: oh. language guess fail. :) 10:43
10:43 payload1 left
moritz_ it works locally, though 10:43
masak jnthn: thanks for closing the masak-close-fail ticket, btw.
jnthn masak: Was just on a hunt for those that .HLL might have resolved, and spotted it then.
masak I didn't see literal's characters properly, fwiw.
jnthn It all looks fine until the output. 10:44
literal ah, I was sending latin1
moritz_ that explains a lot
jnthn Though that could cover a lot of Rakudo bugs. ;-)
literal p6eval should know how to convert latin1 to utf-8 :)
rakudo: my sub infix:<􏿽xBB􏿽xF6􏿽xAB> ($a, $b) { return "$a 􏿽xBB􏿽xF6􏿽xAB $b" }; say 'oh' 􏿽xBB􏿽xF6􏿽xAB 'hi'; 10:45
p6eval rakudo 8ff0e0: OUTPUT«oh ��� hi␤»
masak literal: still latin-1.
moritz_ rakudo: my sub infix:<»ö«> ($a, $b) { return "$a »ö« $b" }; say 'oh' »ö« 'hi';
p6eval rakudo 8ff0e0: OUTPUT«oh »ö« hi␤»
literal rakudo: my sub infix:<»ö«> ($a, $b) { return "$a »ö« $b" }; say 'oh' »ö« 'hi';
p6eval rakudo 8ff0e0: OUTPUT«oh »ö« hi␤»
masak much better. :)
10:45 agentzh joined
moritz_ literal: encoding magic is evil, and should be avoided whenever possible 10:45
10:46 agentzh left
masak more generally, "smart" software isn't. 10:46
literal most IRC clients do it, i.e. convert the latin1+utf-8 soup into utf-8
moritz_ I know
masak I don't think mine does. 10:47
literal the reason I had mine set to output latin was because I'm also on IRCnet, and I some people there are using old mIRC versions which only understand latin1, and irssi doesn't let me specify output encoding per-network 10:48
10:57 szabgab joined
masak literal: Perl 6 programs are in Unicode. :) 10:57
literal true
10:57 lichtkind joined
masak literal: oh, and by the way: I expect to do some additional thinking on the structure of the u4x documentation this weekend. 10:58
literal ok
10:58 vx64z joined
literal what sort of additional thinking? 10:59
moritz_ literal: there's a simple technical reason not have p6eval autodected encoding: it's implemented in Bot::BasicBot, which accepts only one encoding (it seems) 11:00
literal yeah, damn Bot::BasicBot and it's assumptions :) 11:01
er, its
masak literal: the sort that leads to additional structure in the u4x/documentation directory, so that a program can easily find the right item given some key. 11:02
11:05 iblechbot left
literal sounds good 11:06
masak Matt-W: it would be kinda cool (maybe) if the tabular layout in Form could be set to output a HTML table. :)
literal: I'm basically going through P2T1A, and thinking about how to access the documentation I'm creating. 11:07
so, I expect there will be an additional document about storage locations shortly.
moritz_ uhm. 11:08
shouldn't grok go through all documents and build an index itself?
or do you mean external resources, like the synopsis etc?
masak moritz_: no, I'm just talking about the internal data. 11:09
moritz_: I haven't thought of the need to build an index. would that be needed?
as far as possible, I'm hoping the actual .pod files will be enough for the program to find the right item.
that's why naming them right is important. 11:10
moritz_ it will, but probably rather slow
masak oh. well, an index for speed reasons is fine.
moritz_ an index can be something as simple as a list of headers associated with file names
masak but everything is rather slow in Perl 6 right now. :)
jnthn masak: I'm currently writing some benchmarks to access our basic performance. 11:11
moritz_ except finding bugs ;-)
masak moritz_: I'm thinking a file might be called 'prefix.pod', so if I'm looking for 'prefix:<!>', I know I should look there.
jnthn masak: But more importantly, so we can track how changes we think could hit performance affect things.
masak jnthn: sounds excellent. 11:12
jnthn I'm...kinda disturbed by the results so far.
01 - hello world: 1.015625
02 - 10,000 sub dispatches: 23.155615
masak :)
jnthn 03 - 10,000 multi dispatches: 15.889863
I think my benchmark must be bad...
masak what do the numbers mean? seconds?
11:12 aff joined
jnthn oh, I know why 11:12
yes
11:13 aff left
moritz_ masak: that would lead to quite some fragmmentation of the files 11:13
masak: and when somebody enters a ! in grok, it will have to look up all of those files anway
jnthn Writing good benchmarks is hard...
masak moritz_: that might be where the index comes in, then.
moritz_ because it can't know if it's a prefix, or an infix, or a regex meta character
jnthn or at least, writing ones that test what you want them to test is... 11:14
masak moritz_: still sounds like only three files.
jnthn even making the benchmarks much more fair is still giving crazy result
01 - hello world: 1.015625
02 - 10,000 sub dispatches: 16.467989
03 - 10,000 multi dispatches: 15.92106
We can multi-dispatch faster than single-dispatch. wtf.
moritz_ infix, prefix, postfix, circumfix, postcircumfix, regex, quotes, .k..
masak :) 11:15
moritz_ that why I'd prefer a single syntax.pod
and each entry is augment with 'prefix:<!>' or so 11:16
masak moritz_: well, when you throw in user-project documentation, it'll have to do something like that wide search anyway.
moritz_: a user might have written a method called .flip or .elems
moritz_ masak: and a user will not want to document exported operators in a separate file 11:17
masak moritz_: sorry, what?
I didn't get that part.
moritz_ masak: docuementation is usually grouped by functionality 11:18
masak: not by the syntactic category
DBI.pm doesn't have a separate file for class methods and instance methods
neither should we have separate files for operators and subs 11:19
because operators are just subs with weird names
masak moritz_: u4x is not documentation tied to a project. I think your analogy is faulty.
s/project/module/
11:20 donaldh left
moritz_ it's part of Perl 6's philosophy that the "core" language is not special 11:20
masak moritz_: true.
moritz_ or in anyway different than modules or so
11:20 donaldh joined
masak moritz_: I agree about that. 11:21
moritz_: but the "core" _is_ special in the sense that we know that it's there in an unmodified Perl 6.0.0 dialect.
if it serves us to structure that core as normal module Pod, then we will of course do that. 11:22
if it serves us to structure it in some other, more efficient way, we'll do that.
I don't claim to have any hard answers in this issue. that's why I intend to spend time this weekend thinking about it. :) 11:23
moritz_ well, I think we'll just do it somehow for now, and if it's a major pain we can still change it
masak aye. 11:24
Fire. Aim. Ready.
moritz_ bomb.
masak in fact, my first attempt at a structure will simply have as a goal to make it theoically possible to find a particular item given some degree of description about it. 11:25
(i.e. both '+' and 'infix:<+>' should find the same operator) 11:26
(but the former should also find 'prefix:<+>')
moritz_ and the quantifier + in regexes
masak aye. :)
is that called postfix:<+>, by the way? 11:27
or is there some better way to refer to it?
moritz_ and all of those won't help when somebody wants to know what q+foo+ does ;-)
masak moritz_: no. even grok will not be able to do miracles. 11:28
moritz_ masak: it's called quantifier:<+> in slang Regex
masak: well, it could, if the user entered q+...+ and it used a STD.pm backend
masak moritz_: but it might be possible to write 'grok "q+foo+"', and there will be enough parsing in grok to understand that q[] is intended.
moritz_: aye.
moritz_ that's where my idea for "perlhints" started long ago 11:29
masak moritz_: ok, thanks. then it should probably say 'quantifier:<+> in slang Regex' in the disambiguation message.
pugs_svn r26836 | wollmers++ | [t/spec] added test for operator overloading; and TODO
masak the main slang wouldn't have an 'in main slang' addition. 11:30
similarly, installed non-core modules would say 'in module DBI', but core things wouldn't say 'in CORE'.
moritz_ aye
masak just as with proto, it's important that things look neat and presentable. 11:31
that does not always seem to be a concern in Perl tools. :/ 11:32
moritz_ wollmers++ # nice tests 11:33
pugs_svn r26837 | pmurias++ | [re-mildew] added explicit FETCHes in t/classhow_add_method_real.t
r26837 | pmurias++ | and changed the invocant to an implicit ones so that it passes
r26838 | pmurias++ | [re-mildew] CORE.pm loads EXTERNAL.pm
r26839 | pmurias++ | [re-mildew] fixed the signatures for accessors
r26839 | pmurias++ | added an incomplete default method signature
r26839 | pmurias++ | t/knowhow_attributes.t passes - removed extra \n from output
masak are non-literals allowed inside the {} of infix:{} or the <<>> of infix:<<>> ? 11:37
moritz_ masak: no, you'd need macros for that
masak ah. makes sense. 11:38
11:38 LylePerl left
masak std: sub infix<<$s>>($a, $b) { 42 } 11:44
p6eval std 26839: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/K8wKNcjuQz line 1:␤------> sub infix<<$s>>($a, $b) { 42 }␤ expecting any of:␤ blockoid␤ routine_def␤ terminator␤ trait␤ whitespace␤FAILED 00:02 35m␤»
masak oops. 11:45
std: sub infix:<<$s>>($a, $b) { 42 }
p6eval std 26839: OUTPUT«Argument "EOF" isn't numeric in numeric ne (!=) at STD.pm line 58609.␤Argument "EOF" isn't numeric in numeric eq (==) at STD.pm line 58610.␤##### PARSE FAILED #####␤(Possible runaway string from line 1)␤Unable to parse quote-words subscript; couldn't find right double-angle
..quote...
masak TimToady: ^^
moritz_ cleans STD.pm's dir...
finanalyst jnthn: ping 11:47
jnthn finanalyst: pong
finanalyst make testspec returned. Can nopaste summary. Not much really 11:48
wollmers std: sub infix:<<$s>> ($a, $b) { 42 }
p6eval std 26839: OUTPUT«ok 00:04 39m␤»
jnthn finanalyst: OK, any of S16-* fail?
moritz_ or S32-io/* 11:49
finanalyst t/spec/S32-io/IO-Socket-INET.t faile 2/3
no fail of S16* 11:50
jnthn OK but we have tests surely that exercise .get...so hmm. 11:56
11:58 payload joined
mberends finanalyst: INET.t is my fault. on what platform is it failing? 11:58
11:59 payload left
finanalyst Ubuntu 9.04 11:59
11:59 payload joined, payload left, payload joined
finanalyst is 'make realclean' sufficient? should i try deleting the rakudo directory and trying again? 12:02
jnthn finanalyst: Might be worthwhile. 12:03
mberends finanalyst: could you show the output of './perl6 t/spec/S32-io/IO-Socket-INET.t' ? It's not good to have fails so frequently.
jnthn make realclean *should* be sufficient.
mberends vaguely recalls 127.0.1.1 as localhost on some platform 12:04
pasteling "finanalyst" at 193.110.4.137 pasted "t/spec/S32-io/IO-Socket-INET.t" (7 lines, 234B) at sial.org/pbot/36631 12:05
mberends finanalyst: thanks. but hmm, it's uninformative :( 12:06
moritz_ a few calls to diag() wouldn't hurt in that test 12:07
mberends yes, good idea :)
after this Temporal stuff is on its way 12:08
Matt-W masak: I think you could set up your picture strings so that'd work :)
masak Matt-W: It was just an idea. :) not sure it's useful in the long run. 12:09
Matt-W I think producing HTML tables would be fairly easy, actually
Maybe I'll write a demo for that 12:10
masak woot. 12:12
Matt-W heh
something to add to the todo
masak mberends: don't know if you saw, but the Ecosystem patch has landed. 12:16
mberends: I'm reluctantly very pleased with proto auto-compiling if it notices that the .pir files are out-of-date. :P 12:17
it's good for us developers, at least.
moritz_ so if I write a project and want it handled by proto, do I have to write my own makefile for precompilation? or does it do that automagically now? 12:18
masak viklund gave the moving dots both thumbs up, but he was bummed with to an equal and opposite force when he noticed that they weren't applied to all progress-related things.
moritz_: there's a create-new-project script that sets things up for you. mberends++
moritz_ I'll give it a shot over the weekend 12:19
(updating proto now, so that I can work offline)
git is so handy.
masak moritz_: do you have a new project idea?
moritz_ masak: no, but I want my JSON parser handled by proto
masak moritz_: I think it's already listed. not sure create-new-project would apply well in this case. 12:20
12:20 kimtaro left
masak moritz_: but you could definitely profit from reading the source and doing some of the steps manually. 12:20
moritz_ well, I just haven't written a makefile for it
pmichaud good morning, #perl6 12:21
masak pmichaud: mornin'
jnthn morning pmichaud
moritz_ oh hai 12:22
Matt-W pmichaud!!!!! What marvels do you have in store today?
masak (no pressure, though)
pmichaud right now my marvel is taking kids to school... bbiab 12:24
masak wow, taking kids to school. that pmichaud never ceases to amaze me.
jnthn sighs and wonders why nothing is every simple... 12:26
*ever
I had the crazy idea that now we have the Perl 6 HLL, we could actually creating MultiSubs as Perl6MultiSub rather than having to re-bless them into it. 12:27
Which means the bit of code causing RT#65674 could just stop being used and we'd have less work to do at init time... 12:28
12:29 raiph left
Matt-W That'd be nice 12:30
I take it that doesn't work
jnthn It's not as straightforward as one might hope, that's for sure. 12:31
Matt-W damn 12:32
12:35 iblechbot joined 12:37 jferrero left
masak I'm leaving to study Chinese a bit now. see y'all. 12:41
12:41 masak left 12:42 wollmers left
jnthn Trouble is, we don't want to transform everything, and I'm struggling to find a way to get a "just some things". 12:42
Matt-W :(
Well if it makes you feel any better, I'm trying to figure out a three-way deadlock 12:43
jnthn Ugh. 12:44
That sounds equally un-fun.
12:46 aff joined 12:47 aff left 12:48 amoc left
jnthn Well, in reality, everything needs to become a Perl6MultiSub anyway I guess. 12:50
Screw it. I'm going to make a branch and JFDI... 12:51
...or try... 12:52
12:53 vx64z left 13:01 iblechbot left
pmichaud jnthn: any chance you'll be able to look at #65672 today? I have some convert-PIR-to-settings items that will depend on it. 13:02
jnthn pmichaud: Ah, yes, I can do that. 13:03
pmichaud: I've started a branch to switch us fully over to Perl6MultiSub.
pmichaud: Got a Parrot patch that supports it in HLL_map 13:04
It sort of works, but it's a bit "all or nothing".
pmichaud excellent. Is this just for things compiled from perl6, or can/will it also apply to our PIR builtins ?
jnthn Well, that's the problem - I can't find a way to not make it apply to our PIR built-ins.
So they're gonna need to get sigs. However...
pmichaud how can it apply to our PIR builtins? 13:05
jnthn 1) We can use the same :(Any, Any) sigs
*sig
As in one and give it to all of 'em.
2) The junction variants can all go away since they'll be generated automatically.
(and lazily, and only if used)
pmichaud oh, are you using :immediate to get the hll_map registrations in place? 13:06
jnthn Yes.
pmichaud ah.
Okay, that can work.
jnthn I tried to see if I could cheat and just put the :immediate before including gen_setting.pir
But no such luck.
pmichaud I'd prefer that they all become Perl6MultiSub, I think.
jnthn They need to in the end, and I think we may as well just bite the bullet. 13:07
It saves a bunch of calls to !TOPERL6MULTISUB at startup too.
pmichaud it would also be really nice if upon encountering a sub that doesn't have a signature, we automatically generate one.
that would seem to be easier.
jnthn What would we auto-generate though?
pmichaud just :(Any, Any)
based on the sub's arity
jnthn Ah
pmichaud (which we *do* know)
jnthn That's perhaps do-able. 13:08
pmichaud even better would be if we could generate based on the sub's internal :multi() descriptor.
but just generating a "fake" .signature ought to be okay. We don't have to worry about !SIGNATURE_BIND being called, since there won't be one present. 13:09
jnthn Aye.
pmichaud We just neeed enough of a signature to get past multi-dispatch, and to not present too many falsehoods. :-)
jnthn BTW, I wrote a small benchmark-y script today to check how we do at certain things.
I'm pondering that it may be good to run it regularly (on the same machine) and graph. 13:10
pmichaud That sounds like an excellent idea.
jnthn So if we cause a major regression accidentally we can know that.
The numbers are kinda interesting.
01 - hello world: 1.015625
02 - 10,000 sub dispatches: 16.420971
03 - 10,000 multi dispatches: 15.905435
04 - 10,000 method dispatches: 19.8125
We multi-dispatch faster than single dispatch. Don't ask me how on earth... 13:11
pmichaud I'm guessing find_name_not_null is more expensive than we realize.
can I see the script? 13:12
jnthn Also, I was thinking that our method dispatcher must be horribly so, but the performance difference between subs and methods isn't *that* huge.
pmichaud ....wait, this method dispatch is going through our PIR-based dispatcher, yes? 13:13
jnthn pmichaud: gist.github.com/112205
pmichaud: Yes. 13:14
pmichaud wow.
13:14 skids joined
pmichaud I'm surprised it's as fast as it is. 13:14
jnthn Me too.
I thought that was likely a major bottle-neck for us.
Now I'm pondering that it may be !SIGNATURE_BIND.
(That is really costly) 13:15
pmichaud where is Time::HiRes ?
jnthn pmichaud: Off CPAN, or may be core. 13:16
pmichaud: Note this is a Perl 5 sciprt. ;-)
pmichaud oh, okay.
I didn't see a "use v5;" at the top. :-)
for a valid comparison between multi and sub, perhaps we need to type-constrain the sub params 13:17
unless you're assuming that the Any type constraints are equal-time with Int or Str
jnthn pmichaud: Ah, good point...
pmichaud (I wouldn't rely on that assumption, myself)
jnthn No, you're right. Changing the method one too. 13:18
pmichaud it would be interesting to benchmark multi method dispatch, too.
jnthn pmichaud: Wow, the difference between type-checking Int and Any is vast. 13:19
pmichaud Yes, I suspected so.
jnthn 01 - hello world: 1
02 - 10,000 sub dispatches: 14.936823
03 - 10,000 multi dispatches: 15.95237
04 - 10,000 method dispatches: 20.796875
OK, now we know why it differed.
erm
why multi was faster 13:20
Still, not bad that multi dispatch is only a *little* slower...
pmichaud it bugs me that type-checking Any is slow.
if only because it's soooooo common.
jnthn Same. 13:21
Actually
There'll be a notable difference (I hope) between type-checking of Any in multis and in singles. 13:22
Because multis have a type-based cache.
pmichaud wow, running spectests has become *really* slow in the past 48 hours.
dalek kudo: e374db0 | duff++ | src/classes/Signature.pir:
Fix error message output
13:23
jnthn pmichaud: Suspect HLL? 13:25
pmichaud jnthn: I'm not sure.
Matt-W Hmm it would be nice if Any was quicker 13:26
pmichaud running my spectest-progress update this morning is taking well over an hour.
Matt-W Would have thought checking that would be really easy
jnthn Ouch.
pmichaud usually it's done under 30 minutes.
Matt-W ouch
dalek kudo: f71c3e9 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 390 files, 11291 passing, 0 failing
13:28
pmichaud jnthn: can you check your benchmark script into tools or something? 13:29
that way we can all be sure to run the same benchmark 13:30
jnthn pmichaud: 7% performance win in sub dispatch if we getattribute the params list rather than calling .params and just do something more like a for loop rather than getting an iterator PMC every time.
pmichaud Add a "use v5;" to the top :-)
jnthn (In !SIGNATURE_BIND)
pmichaud +1 13:31
jnthn pmichaud: Want me to add that?
pmichaud I'm very fine with !SIGNATURE_BIND cheating.
!SIGNATURE_BIND can cheat all it wants.
13:40 zamolxes left
jnthn pmichaud: Release will be next week, right? 13:40
13:42 xinming left
dalek kudo: 5bd02be | jnthn++ | src/classes/Signature.pir:
Small optimizations to signature binding; costs us a PMC creation and a method call less every invocation of something that has a signature, which gives a 7% speed-up in a calling benchmark.
13:45
jnthn dalek missed the other patch which added the benchmarks to tools/benchmark.pl 13:46
Matt-W 7% is not to be sniffed at 13:49
jnthn Not when it's something we do every single sub call, for sure. 13:51
13:56 finanalyst left
pmichaud jnthn: yes, release is next Thursday. 13:56
jnthn pmichaud: Even if we put it just somewhere in Rakudo for now, I really feel we should show HLL line numbers. 13:57
In errors. 13:58
pmichaud I thought Tene was working on that.
jnthn Me too...
pmichaud I'm fine with it going in Rakudo, PCT, or wherever.
(with the understanding that it might get refactored to somewhere else)
Matt-W Would that be line numbers from the actual Perl 6 that's being run? 13:59
jnthn Just getting bored of waiting for something I can quite quickly hack in to Rakudo in not that much time. If it is replaced/moved later I don't mind at all.
Matt-W: Yes.
Matt-W Because I don't care how you do that, I will worship at your feet if you do it
jnthn Matt-W: Most of the hard work is done, it's just the output we're blocked on. 14:00
Matt-W I always thought it looked like it does know the source number 14:01
because if I look in the PIR generated for Form's modules there are lots of line directives
pmichaud that's relatively recent.
jnthn Well, it hasn't always, but pmichaud++ added the .annotate emission a good month or so back.
Or thereabouts.
Matt-W Well they were very helpful last time I had a nasty thing to debug in Form
just wish they were in the backtrace :) 14:02
I would say, hack it in with the knowledge that it'll probably be done properly later. It's too important not to have.
dalek kudo: cf586e3 | jnthn++ | tools/benchmark.pl:
Another benchmark, this time for operator dispatch.
jnthn OK, I'll toss something quickly into Rakudo to make sure we have them in for the reelease, and when Tene++ has chance to finish up his work on the more official way to do it, it can replace this. 14:03
pmichaud actually, if you get something into Rakudo, I can probably move it to PCT relatively quickly.
jnthn pmichaud: OK
Will leave that to you if you want to do it. :-)
pmichaud or if you just send me a patch that says "here's how it works in Rakudo", then I'll either move to the patch to PCT or apply it to Rakudo.
jnthn Will look into it when I've nommed this cheezsarnie. 14:06
14:11 szabgab left
Tene I can do that today. 14:12
jnthn Tene: ohrly?
Tene but yes, if you can do it faster feel free
jnthn Tene: Well, if you already have a patch for it I'd rather not re-do something you already did.
14:13 kbrandt left
Tene there's a branch in parrot 14:13
jnthn Tene: OK, what's blocking it being merged?
Tene it breaks a ton of tests that rely on the text of the "no exception handler" message
I had trouble detecting the "there are no annotations" case. 14:14
dalek kudo: a1055ac | pmichaud++ | src/parser/actions.pm:
Refactor to remove some redundant if tests in use_statement.
jnthn Tene: Ugh. 14:15
pmichaud afk for a bit
jnthn Tene: Is deceting the no-annotations case not a case of walking the backtrace and seeing if there is an annotations hash in there somewhere? 14:16
Tene jnthn: that's exactly what it should be, but somehow I was having trouble telling the difference between 0 and null
jnthn OK, maybe most useful is if I take a look at the branch rather than recreating what you've done. Is it the report_hll_info/ one? 14:17
14:17 xinming joined
Tene probably 14:17
jnthn checking it out 14:18
14:19 mizioumt joined, LadyLunacy joined 14:21 LadyLuna1y left
jnthn Tene: Were you getting it to print the line numbers for the entire backtrace BTW? 14:21
Tene yes
it worked great on perl 6 code
I just got frustrated trying to detect the "no annotations" case and gave up. 14:22
That's my guess, at least.
I don't quite remember. :)
jnthn Tene: ah, found the code in question.
Tene: Ah, I think I may know what's wrong. 14:28
interp->code->annotations 14:29
That assumes every sub in the backtrace is from the same source segment.
*code segment
Tene: Aww. It doesn't compile for me. 14:32
Tene aw 14:33
;_;
14:33 NoirSoldats left
jnthn Tene: Oh, easy one. 14:33
Just a C89 fail. :-)
14:35 jhorwitz joined
Tene man, what kind of crazy compiler are you using? 14:36
jnthn One that enforces C89. ;-) 14:38
Tene :P
14:40 dalek left 14:41 dalek joined
Infinoid jnthn: I think I just fixed your skipped commit issue 14:41
jnthn Infinoid: Oh, nice! :-)
Tene: Ugh, these fails are the annoying...
# at t/pmc/array.t line 121.
# 'Array index out of bounds!'
# doesn't match '/^Array index out of bounds!
# current instr/
# '
Tene yes!
jnthn We even test to make sure the exclamation mark is in the error! ;-) 14:42
14:44 frew joined 14:48 payload left, mizioumt1 joined
jnthn Tene: Is there any reason, if we die without any message, we can't keep showing the "No exception handler and no message"? 14:48
14:49 mizioumt1 left
Tene Because that's less useful. 14:49
that's a..
all.
jnthn Oh, since we don't show the line number.
Of the throw.
Right.
Hmm.
Tene: One thing that is an issue with the "put it in Parrot" approach is that I suspect many HLLs will want to only show the back trace down to the end of user code, rather than the trace through the compiler tools bits. 14:52
14:52 ejs joined
Tene as well, many HLLs might want to override or change the message format 14:53
jnthn Aye.
14:53 payload joined
jnthn I'm not saying it's bad Parrot provide a default. 14:53
Just that in reality many HLLs that already have a way of showing errors that their users are familiar with, may want to keep showing the errors their way.
Tene right 14:54
so maybe a print-exception sub in hllcompiler that can be overriden?
jnthn Perhaps something like that, yes.
I think for now I'll do something in Rakudo, and then we can generalize it. 14:55
And I suspect on the Parrot front, try and get a clarification on if the error messages in the test may be changed.
(e.g. at #parrotsketch0
)
Tene the answer is "they shouldn't be testing it like that anyway. they should be catching the exception.
" 14:56
jnthn True.
14:56 iblechbot joined
Tene which means the real answer is "Sure, but nobody wants to do all that work, and if they're changing the tests anyway, maybe they should just be updating them instead, but nobody really wants to do even more work. 14:56
" 14:57
14:58 jferrero joined 15:00 mizioumt left
Tene AFK work 15:04
15:05 ZuLuuuuuu joined 15:11 kimtaro joined
jnthn pmichaud: ping 15:14
15:18 donaldh left, jjjmm joined, donaldh joined
jjjmm #eci123 15:19
15:19 jjjmm left 15:20 donaldh left, donaldh joined
TimToady $!awake = .5 15:21
15:21 payload left, mofino joined 15:22 skids left 15:23 skids joined 15:26 payload joined 15:39 frew left
TimToady moritz_: I think non-literals are allowed in infix:{...}, but they will be evaluated at compile time 15:41
much like the arguments to a "use" 15:42
or anything in a BEGIN
15:42 Psyche^ joined 15:44 Patterner left, Psyche^ is now known as Patterner 15:46 jferrero left, justatheory joined
pmichaud jnthn: pong 15:51
jnthn pmichaud: Don't worry for now :-) 15:53
pmichaud: Oh, one question
Do we have the names of the file we're compiling easily avialable?
To emit a .annotate 'file', 'foo' 15:54
pmichaud at present I don't know that PCT has that, but we can easily add it.
15:56 nihiliad joined 15:57 payload left
pugs_svn r26840 | pmurias++ | [re-smop] started porting over p5 integration t/p5.t passes 15:58
15:58 H1N1[A] is now known as H1N1
pugs_svn r26841 | pmurias++ | [re-smop] update Makefile and .gitignore 15:58
15:58 ruoso joined, H1N1 is now known as H1N1[A][Again]
ruoso Hello! 16:01
pugs_svn r26842 | lwall++ | [STD] don't use EOF where number expected 16:05
r26842 | lwall++ | [STD] random rule/token cleanup
pmurias ruoso: hi 16:06
ruoso hi pmurias
pugs_svn r26843 | pmurias++ | [re-smop] ported over more functions in SMOP.pm
r26843 | pmurias++ | t/p5_lowlevel.t and t/p5_fetch_store.t pass
pmurias ruoso: we have 3 failing tests in re-mildew :) 16:08
ruoso cool
TimToady std: sub infix:«$s»($a, $b) { 42 } 16:09
p6eval std 26841: OUTPUT«Argument "EOF" isn't numeric in numeric ne (!=) at STD.pm line 58609.␤Argument "EOF" isn't numeric in numeric eq (==) at STD.pm line 58610.␤##### PARSE FAILED #####␤(Possible runaway string from line 1)␤Unable to parse quote-words subscript; couldn't find right double-angle
..quote...
TimToady I'm not sure whether I should fix that parsefail or not
since »() is a valid postfix to $s
but it's highly unlikely to be what the user expects 16:10
16:11 skids_ joined, skids left
jnthn pmichaud: How this this look? gist.github.com/112278 16:12
(For anyone else who wants to see example program and exception output check above too...)
s/this/does/
pmichaud perhaps <unknown>:8 instead of "line 8 of file <unknown>" ?
pmurias ruoso: do you think it would be wise to release smop to cpan once the refactoring is over (soonish) and have CPAN Testers attempt to compile it? 16:13
pmichaud (adding file annotations now, also)
ruoso pmurias, I'm not sure that's wise while we still depend on haskell 16:14
but maybe I'm wrong 16:15
pmurias scons seems a less common dependency
ruoso yeah... maybe we should try to port that to Module::Build 16:16
jnthn pmichaud: Got it now like 16:17
at method A::b <unknown>:3
called from sub bar <unknown>:8
pmichaud maybe parens
jnthn Better?
heh
pmichaud at method A::b (<unknown>:3)
that's more like what I've seen in other error traces.
jnthn OH NOES I HAS A FAIL 16:20
at method A::b (<unknown>:3)
called from sub bar (<unknown>:8)
pmichaud I like it.
jnthn same.
pmichaud maybe s/at/in/
jnthn yeah 16:21
done. 16:22
pmichaud I have the 'file' annotation done. 16:23
jnthn oh awesome, that was quick :-)
pmichaud just doing some tests now.
jnthn pmichaud: I have a slight issue with where I've put this code.
pmichaud: It seems that eval doesn't call evalpmc but instead just evals the code itself 16:24
pmichaud evalpmc doesn't do the eval, it creates an evalpmc.
(If you're referring to HLLCompiler.evalpmc)
ruoso pmurias, I know you don't like the idea very much, but I think it would be a good idea to port m0ld to p5...
jnthn pmichaud: Yes
pmichaud checking. 16:25
that's correct, evalpmc simply generates an Eval PMC
it doesn't execute it
jnthn pmichaud: OK
pmichaud which 'eval' are you referring to ?
jnthn eval method in HLLCompiler
pmichaud 'evalpmc' is the last stage of 'compile' 16:26
jnthn I subclassed it, call the super-class one...
Well, it seems to "drive" the compile in some ways
In that parse errors or any error ends up coming through this.
pmichaud I don't quite understand. 16:27
'eval' will do compilation of a string, yes.
sorry
'eval' will do compilation and execution of a string, depending on 'target'
jnthn OK
Is it OK that we catch all compile errors with this same handler? 16:28
pmichaud it should be okay for now.
jnthn And do you still want the full grammar tree backtrace to be printed?
pmichaud I'm less certain of that.
jnthn On syntax errors?
OK.
It's not being with my changes, that's all...
pmichaud I'm fine with it not displaying the full backtrace for now. IWBNI we have an option to get the backtrace. 16:30
but the number of times I use the backtrace is pretty small. 16:31
pmurias ruoso: untill we can run more stuff, ease of install isn't IMHO a hight priority
bbl
judo&
16:31 pmurias left 16:33 mizioumt joined
jnthn tries to make sure there's no way the exception printer can easily crash...that would be rather unfortunate. 16:35
pmichaud jnthn: e4f7b12 has the file annotations. 16:42
jnthn yay
pmichaud (and bumps PARROT_REVISION)
I suspect we'll have a number of PARROT_REVISION bumps this week. 16:43
jnthn That's fine.
PGE updates?
pmichaud Yes, and PCT updates.
jnthn OK
What have you got planned?
pmichaud well for one, removing things that were deprecated as of 1.0
jnthn Aha.
pmichaud but also the combine-loadinit-blocks change 16:44
and various other PCT refactors
I'll likely take the exceptions code you've created and put it into PCT as well.
then we'll have smart exceptions in NQP :-)
jnthn pmichaud: It's a bit Rakudo-specific.
pugs_svn r26844 | lwall++ | [STD] disallow >>( as part of interpolation; must use >>.( to mean that
pmichaud then I'll adapt it. :-) 16:45
jnthn pmichaud: It knows what's a Routine and what's not.
So it doesn't give a huge list with _block42 in and so on.
dalek kudo: e4f7b12 | pmichaud++ | (2 files):
Add 'file' annotation to generate code.
pmichaud I'm thinking we may be able to eliminate the _block42s
pmichaud since we have subids, we don't ever refer to anonymous blocks by their true name 16:46
so we could just as easily name them ''
jnthn True.
pmichaud then the backtrace could ignore blocks that have names of '' 16:47
jnthn But even so, we don't wanot to show 'em all in bt.
Yes, that'd be another way.
The Rakudo one is still smart enough then to know what is a sub and what is a method, but I'm not sure if that's valuable.
Wouldn't be a big deal to me if we lost that in the factor out to nqp, just thought it'd be a nice to have.
pmichaud Is there a way in parrot to introspect the anon/method bits?
jnthn If there is, it's probably available through the inspect op. 16:48
/vtable
If not, then it's easy enough to add it to inspect.
pmichaud anyway, now that I have a working example it should be possible to do something in PCT
we may still end up with a rakudo-specific backtracer, but it'll be an overridable thing
jnthn Updating my Parrot to check out the file thing. :-) 16:49
pmichaud i.e., PCT will give languages the ability to override the default handler
jnthn oh noes
null.obj : error LNK2001: unresolved external symbol _CONST_STRING_GEN
libparrot.dll : fatal error LNK1120: 1 unresolved externals
maybe I should have realclean'd. 16:50
pmichaud normally --gen-parrot realcleans for you
16:51 phenny left, phenny joined
TimToady std: sub infix:«$s»($a, $b) { 42 } 16:53
p6eval std 26844: OUTPUT«##### PARSE FAILED #####␤Unable to parse quote-words subscript; couldn't find right double-angle quote at /tmp/M4kBUFsyCZ line 1:␤------> ␤FAILED 00:04 38m␤»
TimToady it's lying about the version again... 16:54
16:55 awarefish joined
jnthn pmichaud: realclean fixed it - I maintain my own Parrot build btw 16:57
Man does Rakudo's compile feel un-fast... :-| 16:58
OH NOES I HAS A FAIL 16:59
in method A::b (crash.p6:3)
pmichaud++
Tene jnthn: can you fix the class { sub { ... } } thing? 17:00
jnthn ah, yes 17:02
Tene: Hang on, which one, the multi in a class one?
Or just subs in a class?
Tene ... I have another evil idea...
the latter.
jnthn ok, that's the easy one
:-)
Tene or maybe it was multi...
jnthn Both have issues.
17:04 LylePerl joined
jnthn Tene: If it's multi you want I'll just throw in a quick hack fix. I have a branch to use hll_map instead of doing re-blessing in !TOPERL6MULTISUB so it will eliminate the code that is has a fail anyway. 17:05
But don't rate my chances of finishing that branch today. 17:06
Tene jnthn: no hurry...
I can work around for now.
TimToady std: sub infix:«$s»($a, $b) { 42 } 17:07
p6eval std 26844: OUTPUT«ok 00:04 38m␤»
TimToady std: sub infix:«$s».($a, $b)» { 42 } 17:08
p6eval std 26844: OUTPUT«ok 00:04 38m␤»
TimToady std: sub infix:«$s».($a, $b)» ($a,$b) { 42 }
p6eval std 26844: OUTPUT«ok 00:04 39m␤»
dalek kudo: b7e9b77 | jnthn++ | perl6.pir:
Subclass eval and add support for printing a backtrace with the HLL details. Tries to get decent output for various situations; we'll see how it plays out and no doubt tweak it as we discover where it's less than good.
TimToady std: sub infix:«$s»($a, $b)» ($a,$b) { 42 }
p6eval std 26844: OUTPUT«##### PARSE FAILED #####␤Malformed block at /tmp/Wo4EPGlBM7 line 1:␤------> sub infix:«$s»($a, $b)» ($a,$b) { 42 }␤ expecting any of:␤ blockoid␤ routine_def␤ terminator␤ trait␤ whitespace␤FAILED 00:04 38m␤»
17:10 kaether joined 17:12 ejs left
jnthn Oh ouch 17:18
Fixing class Foo { sub bar { return 42 }; bar() } actually ain't quite so easy. :-( 17:19
(Problem is that we run the class's loadinit before that of the sub so it's not re-blessed before we run it...
)
17:22 sri_kraih joined 17:29 cdarroch joined
jnthn pmichaud: Got a fix for 65672. 17:34
(I think that was the one you were keen for me to fix...)
Spectesting atm. 17:35
17:38 frew joined, M_o_C joined 17:45 angelixd left
patmat ah one dumb question, is there a "switch case" for Perl6? 17:46
TimToady given/when 17:47
17:47 ejs joined
mberends patmat: given $value { when 1 { say "one"; } when 2 { say "two"; } }; etc... 17:47
patmat great great!!! thanks
TimToady std: given $value { when 1 { say "one"; } when 2 { say "two"; } } 17:49
p6eval std 26844: OUTPUT«##### PARSE FAILED #####␤Statements must be separated with semicolon at /tmp/hJrI0ifKLk line 1:␤------> given $value { when 1 { say "one"; } when 2 { say "two"; } }␤ expecting any of:␤ infix stopper␤ statement␤Other potential difficulties:␤ Variable $value
..is no...
TimToady :P
patmat applauds o/
mberends std: given $value { when 1 { say "one" }; when 2 { say "two" }; } 17:50
p6eval std 26844: OUTPUT«Potential difficulties:␤ Variable $value is not predeclared at /tmp/9HIEjBgZHf line 1:␤------> given $value { when 1 { say "one" }; when 2 { say "t␤ok 00:04 36m␤»
mberends :P again 17:51
Eevee std: given 2 { when 1 { say 'one' }; when 2 { say 'two' }; }
p6eval std 26844: OUTPUT«ok 00:02 36m␤»
Eevee huzzah, perl 6 can switch on a literal
TimToady why shouldn't it? 17:52
jnthn rakudo: given 2 { when 1 { say 'one' }; when 2 { say 'two' }; } 17:53
p6eval rakudo b7e9b7: OUTPUT«two␤»
Eevee TimToady: oh, of course it should; just amused that the first attempt that parsed cleanly was nearly useless :P 17:54
TimToady the second attempt parsed cleanly two; it just failed a strictness check 17:57
s/two/too/
18:11 cognominal left 18:24 nbrown left 18:26 japhb left 18:27 nbrown joined, kidd is now known as raig 18:41 skids_ left
TimToady jnthn: are the annotations by line or by position? it would be nice if error messages could point to the place within the line where it thinks the problem is. 18:42
jnthn TimToady: Just line. 18:43
TimToady one can always map position back to line, so it doesn't take any more storage
except for the translation table
jnthn TimToady: You're assuming we'll have the source around.
18:43 skids_ joined
jnthn TimToady: The parser can probably give errors down to the position very easily. 18:43
TimToady not much point in reporting the line without the source :)
just something to bear in mind 18:44
jnthn Not at all, I find exception reports from production systems where only the "binaries" are deployed including line number is very helpful.
Since while the source ain't sat on the production systems, I certainly have it. :-) 18:45
TimToady oops, lunch
jnthn Parrot's annotations system is completely general though.
TimToady kay
later, thanks &
jnthn You can annotate the moon phase at compile time if you want. ;-)
So we can do better on that later if we need. :-)
enjoy lunch
18:51 japhb joined, dalek left 18:52 dalek joined
pmichaud it's no problem for us to annotation the position as well... but as jnthn++ indicates -- we might not have the source. Unless we embed the source itself into the compiled output (which is certainly a possibility). 19:01
*annotate
if we do that, then &sub.perl becomes a lot more plausible :-)
dalek kudo: ee6739d | jnthn++ | perl6.pir:
Tweaks to error messages, and a better error for return outside of subroutine.
19:03
19:06 nbrown_ joined 19:07 M_o_C left
jnthn pmichaud: Going for dinner now but...fixing the &multi ~~ Callable is less easy that I thought. :-( 19:14
Back in a bit, anyways.
19:17 Kisu joined
patmat hey, i wrote a little sign of zodiac program before, i'm a programming newbie 19:19
www.pastie.org/479424
how do you think is it written? very bad?
its just a simple thing but i'm a real beginner
19:20 donaldh left, donaldh joined
patmat i'm using an Array for the zodiac of signs now I think :P 19:22
the little messages
19:24 nbrown left 19:32 araujo left
ruoso rakudo: my $a = 'foo'; $foo ~~ s/ oo $ / ar /; say $foo 19:33
p6eval rakudo ee6739: OUTPUT«Scope not found for PAST::Var '$foo' in ␤in Main (src/gen_setting.pm:3119)␤»
ruoso rakudo: my $foo = 'foo'; $foo ~~ s/ oo $ / ar /; say $foo
p6eval rakudo ee6739: OUTPUT«Could not find non-existent sub s␤»
jnthn back 19:35
PerlJam patmat: did you mean to write an infinite loop?
ruoso why did my test fail? 19:36
PerlJam ruoso: s/// isn't implemented with that syntax in rakudo yet.
ruoso which syntax is supported then?
PerlJam rakudo: my $foo = "foo"; $foo .= subst(/oo$/, "ar"); say $foo; 19:37
p6eval rakudo ee6739: OUTPUT«far␤»
ruoso cool
rakudo: class Foo { method postcircumfix:<{ }> ($name) { say $name } }; say Foo.new<abc>; 19:38
p6eval rakudo ee6739: OUTPUT«Malformed method definition at line 1, near "postcircum"␤in Main (src/gen_setting.pm:0)␤»
ruoso meh
how do I implement a Hash api in rakudo? 19:40
jnthn Probably nice that...
It may just be that we don't parse postcircumfix:<{ }> yet though. 19:41
(may even just be a grammar.pg addition)
19:41 iblechbot left
jnthn Well, for non-custom post-circumfixes anyway. 19:41
ruoso yeah... I just want that one ;) 19:42
19:42 nbrown_ left
ruoso I want to make the API look like I'm accessing a Hash, but it's actually doing something more than that 19:42
jnthn You sure do try out all the evil corners of Perl 6. :-) 19:43
pasteling "ruoso" at 189.97.251.132 pasted "example use of Hash-like API to have richer semantics..." (50 lines, 1.2K) at sial.org/pbot/36644
ruoso jnthn, if wouldn't use it, I would stay with p5 ;)
Tene jnthn: look at my commit adding circumfix 19:44
should be the same
jnthn Tene: Yeah, I'm already looking for that. :-) 19:45
19:45 frew left 19:46 cognominal joined
ruoso jnthn, does it mean I don't need to work-around it? 19:47
19:47 pmurias joined
pmurias rehi 19:47
19:48 hercynium joined 19:49 ejs left
ruoso hi pmurias 19:49
jnthn ruoso: Wait a moment. Think I may have it...
(method_def didn't yet match routine_def) 19:50
19:50 eMaX joined 19:51 eternaleye left 19:53 Fuad joined
Fuad hi all 19:58
pmurias ruoso: re translating m0ld to p5, what would we gain by that other then not requiring haskell?
ruoso mostly, that's it... 19:59
jnthn ruoso: Got your example working. ;-)
ruoso cool
20:00 kate21de joined
jnthn ruoso: Gonna run tests, then get it in. :-) 20:00
ruoso :D
20:14 Kyosuke_Kiryu left
PerlJam ruoso: you want my $com_name = $component.WHAT.perl; instead of using subst() to remove the last 2 characters. 20:15
ruoso rakudo: class Foo {}; say Foo.new.WHAT.perl;
p6eval rakudo ee6739: OUTPUT«Foo␤»
ruoso rakudo: class Foo {}; say Foo.new.WHAT.Str; 20:16
p6eval rakudo ee6739: OUTPUT«Foo()<0xb62d77b8>␤»
ruoso hmm
cool
PerlJam++
20:19 araujo joined
pasteling "ruoso" at 189.97.251.132 pasted "after some more updates" (71 lines, 1.7K) at sial.org/pbot/36646 20:19
patmat i have a problem, installing rakudo on mac os x, there is always this error: 20:23
Building Parrot ...
Unable to locate parrot_config
git is installed, svn is installed, it's happening after the perl --Configure.. thing
PerlJam patmat: you did ... perl Configure.pl --gen-parrot ? 20:24
patmat yes
[particle]- is rakudo installable yet? 20:25
patmat yes it was built via git
it worked fine
i had no problems with it on Ubuntu
PerlJam [particle]-: make: *** No rule to make target `install'. Stop.
jnthn patmat: Do you see any errors from Configure.pl? 20:26
As in, did it actually build a Parrot?
patmat yes i think so 20:27
[particle]- nopaste the output of your build session
patmat there aren't errors, just that message and it stops
one moment 20:28
LadyLunacy pastie.org/private/citfc3alinhh8fr77ykw 20:30
patmat thats it :) 20:31
PerlJam That "compilation failed with 'cc'" is the important part. It never built parrot, so rakudo couldn't find parrot_config 20:32
patmat oh so how can i fix it?
PerlJam dunno. I'm not real well versed in the foibles of MacOSX. Do you have a C compiler installed? 20:33
ruoso github.com/ruoso/faz/blob/24d2e0110...ntainer.pm <-- final version of the code waiting for jnthn's commit ;) 20:36
patmat which compiler can i use with mac os x? i'm not familiar with osx :P 20:37
literal Embedded comments are forbidden at the beginning of a line because of the case when you comment a block of code that includes a { or such and the beginning of a line. I'm wondering if similar arguments could be made against a hypothetical multiline #== / ==# comment. 20:39
ruoso rakudo: class Foo does Positional { my @a = 1,2,3; method list { @a } }; for @(Foo.new) { .say } 20:40
p6eval rakudo ee6739: OUTPUT«1␤2␤3␤»
ruoso rakudo++
rakudo: class Foo { my @a = 1,2,3; method list { @a } }; for @(Foo.new) { .say }
p6eval rakudo ee6739: OUTPUT«1␤2␤3␤»
ruoso rakudo++
literal the #== / ==# denoting a Pod comment/docstring, of course
jnthn ruoso: just comitted ;-)
ruoso and pushed? 20:41
jnthn Yes.
:-)
ruoso was supposed to leave 45 minutes ago... but couldn't resist not to test this...
ruoso rebuilding parrot... I think I won't be able to wait after all... 20:44
jnthn ruoso: Shouldn't need a Parrot re-build, just a Rakudo one.
dalek kudo: e86dd9e | jnthn++ | src/parser/ (2 files):
Allow parsing of postcircumfix:<...> and also allow methods as well as subs to be used to define operators.
ruoso I had a pretty old parrot
jnthn Oh, unless you need other things that do need a Parrot update... 20:45
OK. :-)
ruoso but it wasn't a dead parrot yet
;)
jnthn ;-)
pmurias ruoso: we have 2 tests failing in re-mildew now... :) 20:46
ruoso pmurias++
jnthn You guys sure pick the most unappealing substances to name bits of your compiler after. :-) 20:47
slime...mold...mildew...what next? ;-)
ruoso you forgot s1p (read swamp) 20:48
pugs_svn r26845 | pmurias++ | [re-smop]
r26845 | pmurias++ | a default how is set in p6opaque
r26845 | pmurias++ | added %how $!attr = ... to the RI DSL
jnthn :-)
pmurias buying some food& 20:49
20:51 masak joined
ruoso hey masak 20:51
jnthn oh hai masak
masak oh hai. 20:52
ruoso masak, Faz now allows you to have models and views
masak whoz op, ako sa mas?
jnthn masak: mam sa dobre, a ty?
ruoso Yarn+Faz already uses a model
masak jnthn: mam [also] sa dobre.
jnthn parse error: 'sa' must be in second position 20:53
.oO( hmmm...a Perl 6 grammar to parse Slovak... )
masak jnthn: oh. is 'sa' the predicate? 20:54
jnthn masak: It's the reflexive particle. 20:55
mam = I have
masak ah. of course.
jnthn "mam sa" is kinda idiomatic
Like, "to have feeling" or something
ruoso already wrote a portuguese grammar in Perl 6 rules some time ago...
masak 'to have oneself good'
jnthn But if you put a Ja (I) at the start you'd need to shuffle the particle back a bit
Ja sa mam dobre 20:56
dalek kudo: 6ac1eaf | jnthn++ | perl6.pir:
Unbreak warnings. (Oops.)
masak oh, still 'sa' in that case? quirky. :)
ruoso jnthn, aha! I knew something was wrong!
jnthn Yeah, worse is when you get other particles or particle-ish things.
masak it always is. 20:57
jnthn And they too want to be in certain positions, and have various "priorities".
masak aye.
ruoso jnthn, what happened to the backtrace when you have Null PMC?
jnthn ruoso: You should still get some kind of backtrace, but it'll be more at the sub level now, and have HLL line numbers in. 20:58
We may need a flag to disable that for development purposes...
To aid debugging such things.
ruoso couldn't it fallback on the Null PMC case?
since I got no backtrace at all
jnthn rakudo: sub foo { ::T = 42 }; sub bar { foo() }; bar() 20:59
p6eval rakudo e86dd9: OUTPUT«Null PMC access in getprop()␤»
jnthn Ouch, that shoulda given a backtrace with foo and bar in it for sure...
ruoso: Probably don't want to specialize the Null PMC case... 21:00
ruoso anyway... got to go...
masak ruoso++
jnthn Should just fix the general bug. Looking...
ruoso masak, have you seen the model stuff?
masak ruoso: no, just seen a lot of commit activity.
ruoso: I'm definitely interested though. will look.
ruoso I need a template engine in Perl 6 now... 21:01
masak ruoso: I'll see what I can do. :)
ruoso decommute &
jnthn rakudo: return 21:02
p6eval rakudo e86dd9: OUTPUT«Can't return outside a routine␤in Main (/tmp/g6n2COhvhY:1)␤»
masak rakudo: leave
p6eval rakudo e86dd9: OUTPUT«Could not find non-existent sub leave␤»
21:02 ruoso left
masak it just can't take a hint, it seems. 21:02
rakudo: exit 21:03
p6eval rakudo e86dd9: OUTPUT«Died␤in Main (/tmp/WdkxEIfnKU:1)␤»
masak o_O
jnthn Heh, exit once worked?
It so, it seems it wasn't tested.
masak I think it needs something like exit(0) 21:04
rakudo: exit(0)
p6eval rakudo e86dd9: OUTPUT«Died␤in Main (/tmp/032eTTuG9k:1)␤»
masak meh. 21:05
jnthn ah, the error handler is just catching the exit exception.
[particle]- figures
jnthn no biggie
can easily fix that up.
Honestly, I give you errors with HLL line numbers in and you just find ways to break Rakudo. :-P 21:06
21:06 mofino left
masak jnthn: sorry :) 21:07
jnthn masak: Just testing exit fix.
Wanna work out why that null pmc access didn't get a bt though.
oh, I know why...'cus .backtrace gets the address from the resume cont, and I guess exceptions thrown from C don't have one. Hmm. :-| 21:14
21:14 mizioumt left
dalek kudo: 1f14582 | jnthn++ | perl6.pir:
Fix exit. (Oops again.)
21:18
21:19 skids_ left, Fuad left 21:20 hercynium left
patmat if ($antwort eq 'Y' && 'y') { 21:23
what's wrong with that line?
jnthn you probably meant
if $antwort eq 'Y' & 'y' {
erm
wait, that can probably never work :-)
patmat :P 21:24
jnthn you probably want
if $antwort eq 'Y' | 'y' {
patmat why just | ?
jnthn YOu can $antwort to be equal to Y or y right?
Or did I not get what you're trying to do@ 21:25
?
masak patmat: it creates an any() junction.
patmat it works now :)
at the moment it looks like this:
masak patmat: you can either do 'if $antwort eq "Y" || $antwort eq "y"' or 'if $antwort eq "Y" | "y"'.
PerlJam patmat: it worked before ... it just didn't do what you wanted ;) 21:27
patmat www.pastie.org/479586
i understand masak thx :)
my brain hurts :DD it's simple huh but hard to do for me
masak patmat: you're doing fine. :) 21:29
patmat: and if you really do understand junctions, please explain them to the rest of us. :P
PerlJam patmat: your given should probably look more like given $monat { when 1..12 { say @text[$monat-1] } default { say "invalid month" } } 21:30
patmat: and rather than that if statement at the end of the loop, you could do $i = $antwort eq 'Y' | 'y'; 21:31
lichtkind patmat: you have no respect to astrology :)
PerlJam patmat: oh, and $monat == 6 || 9 || 11; should really be $monat == 6 | 9 | 11 21:32
patmat: same for the elsif below that one
patmat yup thx
so you mean the given - when has another style...
isnt it a matter of taste?? 21:33
21:33 mr_bo_jangles joined, Whiteknight joined, mr_bo_jangles left
patmat ahh sorry PerlJam i know what you mean... 21:33
PerlJam Geburtstag == "day of your birth" and Geburtsmonat == "month of your birth"?
patmat yes
PerlJam learns little tiny bit more german 21:34
patmat :P
i'm correcting it now!! 21:35
21:40 Darknknigt joined
jnthn Eurgh. I've just found out why we get some of the arity-based multi-dispatch stuff wrong. 21:41
21:44 Darknknigt left
lichtkind jnthn++ 21:45
mberends grrr. Is perl6_s1.pbc (the setting compiler) known to be offended by certain expressions? It either hangs or aborts on several things that Rakudo accepts. 21:46
jnthn mberends: It's not really intended to be directly used, other than for compiling the setting. 21:47
mberends: What is it moaning about? 21:48
mberends understood. Are there guidelines for the language subset? pasting...
jnthn The guideline is something like "enough to compile the setting" ;-)
21:49 Fuad joined
PerlJam rakudo: class Foo { method bar { self.baz; } }; class Bar is Foo { method baz { Foo::baz(self); } }; my $m = Bar.new; $m.bar; 21:49
p6eval rakudo 1f1458: OUTPUT«Null PMC access in invoke()␤»
PerlJam Hmm
LadyLunacy dubidubi
masak jams along 21:50
pasteling "mberends" at 83.161.42.49 pasted "part of Temporal.pm for setting - final line dies "Malformed declaration"" (23 lines, 846B) at sial.org/pbot/36648 21:51
21:52 Chillance joined
PerlJam mberends: missing $ 21:52
masak rakudo: say $*IN.get.flip
p6eval rakudo 1f1458: OUTPUT«Could not find non-existent sub die␤»
masak jnthn: ! 21:53
mberends PerlJam: of course!
patmat www.pastie.org/479609
so, finish for today or i die :P its not totally correct yet
jnthn masak: I rather doubt that one is new today... 21:54
patmat but it will be :D good night everyone, thanks for your help you guys are great!! :D
jnthn mberends: It works now? 21:55
# algorithm from Claus Tøndering
Nice use of unicode! ;-)
mberends testing... it usually hangs when unhappy. The other invalid syntax is 'my' without assignment.
yep, hung with $ put back. 21:56
jnthn oh, that's...odd
hung?
masak jnthn: but... why?
mberends well hung
jnthn doesn't write *any* of the things that just came to mind when he read that 21:57
mberends remove the last line and note the compile time. Put the line back and it consumes increasing RAM and CPU.
jnthn mberends: It hangs on compiling my wday = ($jd + 1) % 7 + 1; 21:58
erm, with the $?
rakudo: class A { method m { my $x = 42 } } 21:59
p6eval rakudo 1f1458: ( no output )
mberends with $wday. I've cut loads more out to get *something* to compile.
jnthn mberends: Hmm. That seems like a *really* odd thing to cut out...
And to have make a difference.
mberends pasting full original Rakudo working code, FWIW. 22:00
22:00 DemoFreak left 22:01 DemoFreak joined
pasteling "mberends" at 83.161.42.49 pasted "Temporal.pm Rakudo working version" (176 lines, 5.5K) at sial.org/pbot/36649 22:01
jnthn mberends: Added cut-down version to my local setting and compiling...
mberends good luck :) may the Windows be with you... 22:02
22:02 Chillance left
masak mberends++ # looks nice 22:03
mberends got nice tests too :)
masak ooh!
jnthn mberends: reproduced
22:04 Chillance joined
jnthn oh hmm 22:04
error:imcc:syntax error, unexpected IDENTIFIER, expecting $end ('Malformed')
pasteling "mberends" at 83.161.42.49 pasted "Temporal.t" (59 lines, 2.5K) at sial.org/pbot/36650
jnthn mberends: do you get the hang on this line: 22:05
C:\Consulting\parrot\trunk\parrot.exe -o perl6.pbc perl6.pir
(with your parrot path of course)
mberends earlier.
jnthn mberends: oh, duh! 22:06
didn't reproduce ;-)
trying again :-)
mberends parrot perl6_s1.pbc --target=pir src/gen_setting.pm > src/gen_setting.pir
jnthn yeah, getting it there now 22:07
oh no
it's actually managed to finish here 22:08
22:08 alester left
mberends then it's my cheap amd cpu :P 22:08
jnthn > say Temporal::Date.WHAT
lambdabot Failed to load interface for `Date':
Use -v to see a list of the...
jnthn Date()
mberends: Yeah, you should bet an Antitrust one. 22:09
erm, Intel.
mberends: Where did you add it in the setting?
At the end?
Also, I do use a load of RAM while compiling it...
mberends alphabetically, penultimate in setting list 22:10
jnthn OK, I added it at the end. Hmm.
masak mberends: our Str method iso8601($_:) { sprintf '%02d:%02d:%02d', .hour, .minute, .second }
mberends jnthn: between Range and Whatever 22:11
masak: golf already?
masak mberends: well, I'm willing to compromise. :) doesn't have to be quite that short.
mberends: I just saw a lot of repetition, so I bit. 22:12
mberends it works like that every time :)
masak mberends: our Str method iso8601() { given self { return sprintf '%02d:%02d:%02d', .hour, .minute, .second } } # might be better
mberends tell that to perl6_s1.pbc 22:13
masak :/
what the heck is that thing? it just seems to be causing a lot o' trouble...
mberends the setting compiler? 22:14
masak oh. that explains it. :/
mberends it's a little bit more QP than NQP 22:15
but not Q enough
masak Q. 22:16
mberends :)
masak mberends++ # nice use of subset in 'subset Offset'
22:16 REPLeffect left
mberends don't remember where I copied that from ;-) 22:17
22:17 lichtkind_ joined
mberends S32-Temporal 22:17
masak perl6: class A { my subset B of Int where { $^n < 10 }; has B $.c }; A.new( c => 20 ); say "alive" 22:18
p6eval elf 26845: OUTPUT«Unknown rule: type_declarator:expect_term␤It needs to be added to ast_handlers.␤ at ./elf_h line 2850␤»
..pugs, rakudo 1f1458: OUTPUT«alive␤»
masak submits rakudobug
rakudo: class A { my subset B of Int where { $^n < 10 }; has B $.c }; my $a = A.new( c => 20 ); say $a.c
p6eval rakudo 1f1458: OUTPUT«20␤» 22:19
masak hah!
the corner case hunter in me does a little dance.
22:20 LadyLuna1y joined
mberends that's not just a corner, it's a garage door 22:21
masak nevertheless, I found it first. :P 22:22
22:22 test joined
mberends and it's wide open 22:22
PerlJam rakudo: class A { my subset B of Int where { $^n < 10 }; has B $.c }; my $a = A.new( c => "foo" ); say $a.c 22:23
p6eval rakudo 1f1458: OUTPUT«foo␤»
masak o_O
PerlJam indeed
22:23 LadyLunacy left
jnthn Almost certainly the same underlying issue. 22:23
(Though I don't know which issue...)
mberends The Big Issue 22:24
masak jnthn: wishful thinking... :)
jnthn I do have my suspicions though...
masak rakudo: subset B of Int where { $^n > 5 }; my B $x; say $x.WHAT 22:26
p6eval rakudo 1f1458: OUTPUT«()␤»
PerlJam heh
masak what's that?
rakudo: subset B of Int where { $^n > 5 }; my B $x; say $x < 5 22:27
p6eval rakudo 1f1458: OUTPUT«Use of protoobject as value␤1␤»
mberends proto has so many uses!
masak actually, that use has been renamed. :) 22:28
masak patches
PerlJam Am I the only one who occasionally chunks protoobject as pro-toob-ject?
masak PerlJam: yes. :P
mberends PerlJam: get help 22:29
PerlJam heh
masak mberends: I was on the verge of saying that! :)
22:30 hercynium joined
jnthn mberends: working on the hang, but not much clues yet 22:30
apart from I keep finding it in string hanlding routines
mberends there is probably no test suite for perl6_s1.pbc :( 22:31
masak I'm making spectest, and then I'm going to bed. 22:32
mberends masak: seen pugs/ext/Web and pugs/ext/HTTP? kinda familiar language? 22:33
masak yes, seen them. :) 22:34
22:34 lichtkind left
mberends the more things change, the more they stay the same 22:34
masak mberends: they were written by Juerd, the originator of the whole Web.pm idea.
mberends saw that, yes 22:35
22:35 test left
masak he wrote the emails (in 2006), I'm just realizing his dream. 22:35
mberends good job! 22:36
masak not done yet...
Fuad g`night all
masak Fuad: o/
mberends hi, bye, Fuad
Fuad Hi mberends:)
22:37 icwiener joined
Fuad sorry i have to go to bed now,its too late here 22:37
masak no need to apologise.
22:37 nihiliad left
masak sooner or later, it gets too late no matter where you are. 22:37
22:38 Fuad left
mberends too late in my head as well. soon entering energy saving mode. 22:39
masak mberends: it's now at least theoretically possible for a project to depend on proto, and use same to get info on the project ecosystem. 22:40
mberends: the one "interesting" piece of bootstrapping needed is that Ecosystem.new needs 'project-dir' as a mandatory param, and that information is contained in config.proto. 22:41
mberends do you mean proto's project-dir or the dependent project's project-dir? 22:42
masak proto's. 22:43
the dir that has all the projects.
mberends i guess the former... yes
masak it might even be called "projects-dir", dontremember.
jnthn mberends: I'm having trouble narrowing it down, but there's something _very_ strange going on. 22:45
mberends jnthn: another strange behaviour was rejecting my ( $a, $b ); etc
masak where's all this strange behaviour coming from? 22:46
22:46 pdc303 left
masak Rakudo has been nice for months now... 22:46
jnthn masak: Sure, but you're not normally targetting the s1c..
22:46 lichtkind_ is now known as lichtkind
masak no, that's just s1c... 22:47
jnthn I'm still very bewildered why it is making such a difference though.
mberends and Rakudo failed 'returns DayOfWeek' but liked s/Day/day/g 22:48
22:49 skids_ joined
jnthn mberends: Most strange is that if I use the s1c to compile Temporal.pm alone, all is fine. 22:49
mberends maybe Pod bothers the gen_ thingy 22:50
PerlJam jnthn: maybe with the addition of Temporal.pm, gen_setting.pm passes some hidden threshhold that causes things to go screwy. 22:51
mberends (hidden threshold)-- (dark matter)-- 22:52
jnthn PerlJam: Perhaps. 22:53
mberends then (temporarily, no offense) ripping out other setting sources will fix it 22:54
mberends tries
PerlJam mberends: I'm pretty sure there's already pod in some of the other files that go into gen_settting.pm
jnthn PerlJam: Aye, there is. 22:55
Plus removing the pod sections of temporal.pm didn't help
masak rakudo: multi prompt () { }
p6eval rakudo 1f1458: OUTPUT«push_pmc() not implemented in class 'Sub'␤»
masak submits rakudobug
jnthn probably dupe. 22:56
masak O RLY?
jnthn rakudo: sub a { }; multi a { } 22:57
p6eval rakudo 1f1458: OUTPUT«Redefinition of routine a␤push_pmc() not implemented in class 'Sub'␤»
masak so Rakudo knows something's wrong, but it goes ahead and does it anyway?
jnthn Yeah, I'm sure we have other tickets on the only/multi conflict.
Well, redef is a warning, not an error.
masak oh, right.
ok, I'll let you off the hook for this time, then. 22:58
jnthn Trouble is at the moment it ends up warning, then generating code that won't work.
I haven't really figured out what it's meant to do in this case.
I mean, obviously not _that_.
Maybe an only/multi conflict should be an error.
masak I should think so! 22:59
jnthn masak: I wouldn't have minded a re-declared only being an error too tbh. 23:00
erm
re-defined
mberends perl6_s1.pbc still hangs after removing Hash.pm..Match.pm 23:01
masak jnthn: it isn't?
jnthn masak: It ain't in Perl 5, afaik. 23:02
Maybe it should be in Perl 6 though.
masak yes, maybe... 23:03
kinda comes with the meaning of 'only', dontcha think?
jnthn masak: aye 23:04
23:06 Chillance left
pugs_svn r26846 | masak++ | [games/wizard.pl] Fixed some bitrot issues. 23:10
r26846 | masak++ |
r26846 | masak++ | - Classes must be declared before they're referenced. Reordered classes.
r26846 | masak++ | - Perl 6 has a 'prompt', so there were some clashes. Renamed to 'myprompt'.
r26846 | masak++ | - '=$*IN' is now spelled '$*IN.get'
masak ok, my spectest run gave an unexpected death in t/spec/S04-statements/do.rakudo 23:11
jnthn mberends: Somehow, adding method day-of-week( ) seems to blow it. Hmm.
masak anyone else recognize that?
jnthn masak: I saw that too.
masak: Not sure if it's a roaming segfault or what.
mberends masak: re: indexes for grok, they are absolutely necessary for performance, but until Rakudo gets random file I/O (seek etc) there is no proper way to implement indexes.
masak good. that means my patch is fine. committing.
jnthn mberends: But I can't see it doing anything that could cause issues. 23:12
mberends jnthn: yes, trying various other minor additions did the same :/
dalek kudo: ec55f17 | masak++ | src/ (2 files):
[Protoobject.pir] changed a few warnings
23:13
masak mberends: you know me. I'm not one to go looking for elaborate solutions. I want something that Works For Now. I'll cross the indexing bridge when I have to. 23:14
mberends jnthn: it's fine to shelve Temporal for now, and resume when setting next gets more important changes. 23:15
masak: that bridge is just around the next corner 23:16
masak mberends: perhaps.
mberends: I still haven't dismissed the idea the naming the files right could solve most of the indexing worries. 23:17
jnthn mberends: I don't think I@m going to have a solution for this today. :-( 23:18
masak mberends: in Temporal::TimeZone::Observance, why do you .truncate $minutes, when it can only take on integral values? that looks like a logic bug to me... 23:19
mberends jnthn: thanks for trying, nobody expected such problems :)
23:20 donaldh left
mberends masak: I haven't touched Observance yet, it's just S32 example text 23:20
23:20 donaldh joined
masak ok. 23:20
then there's probably a bug in S32.
mberends Q a few, but np. We can refresh the spec from running code. 23:21
masak yes, I'm Q sure we can. 23:22
ok, sleep Q -- I mean T.
23:22 masak left
mberends enters low power mode. 23:24
23:24 mberends left 23:25 fridim_ joined 23:31 kate21de1 joined
jnthn OK, I'm knackered. 23:41
Enough debugging.
23:44 pmurias left
PerlJam make 23:45
jnthn fai
l
23:45 nbrown joined 23:47 kate21de left 23:51 japhb left 23:53 hercynium left