»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
00:01 ggoebel joined
ssutch yeah 00:02
force of habit (python,ruby,js)
masak yes, the rule is this: if you use the '@' sigil, you already have an array for free. 00:03
r: say my @a = 1, 2, 3
camelia rakudo b4d858: OUTPUT«1 2 3␤»
ssutch yeah
masak r: my $s = 1, 2, 3; say $s
camelia rakudo b4d858: OUTPUT«WARNINGS:␤Useless use of "," in expression "my $s = 1, 2, 3" in sink context (line 1)␤1␤»
ssutch is there any copying going on there? 00:04
masak in what sense?
r: my @a = 1..3; my @b = @a; say @a === @b; say @a eqv @b
camelia rakudo b4d858: OUTPUT«False␤True␤»
ssutch if i say my @list = %hash{'list_item'} it doesn't do any copying
what if it has to coerce say, a parcel? 00:05
r: my @a = 1..3; my @b = @a; push @b, 4; say @a === @b; say @a eqv @b
camelia rakudo b4d858: OUTPUT«False␤False␤»
masak r: my %hash = list_item => [1, 2, 3]; my @list = %hash<list_item>; say @list === %hash<list_item> 00:06
camelia rakudo b4d858: OUTPUT«False␤»
masak looks like copying to me.
ssutch yeah
masak r: my %hash = list_item => [1, 2, 3]; my @list := %hash<list_item>; say @list === %hash<list_item>
camelia rakudo b4d858: OUTPUT«True␤»
masak use binding if you don't want a fresh copy :)
ssutch ah
so @liast stays a parcel in that case 00:09
@list
is it possible to get an element from an array, defaulting to some value if it doesn't exist? like @arr.some(0, 'alternative') 00:14
timotimo @arr[10] // "yarr!" 00:15
ssutch simple enough 00:16
00:18 BenGoldberg joined 00:19 xilo_ joined 00:20 xilo_ left, xilo_ joined
dalek p: aa3dd30 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:
Split-aware instruction base size calculator
00:26
p: 4fd1847 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:
Fragment size calculator
masak 'night, #perl6 00:29
moritz_ good knight, masak 00:30
timotimo even if my pod changes work now, i'm doubtful they will ever be accepted into rakudo >_< 00:32
(except they don't work) 00:36
colomon is getting frustrated at trying to program in p5. Why do we not have Email::Sender::Simple in p6 yet?
timotimo er, wait, what? my debug outputs don't show up for perl6 --doc=HTML foo.p6 00:37
oh, i was just redirecting the output 00:38
dalek p: 43db7b3 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:
Optimize try-catch edge generation for large methods
00:42
00:46 btyler joined 00:59 benabik joined
timotimo sprinkles the code with debug statements and sadness 01:01
ssutch hah
why wouldn't your patch be accepted?
timotimo it's a big amount of changes and they don't look good 01:02
it's kind of disorganized at the moment and touches all the places
ssutch my significant other would describe me the same way 01:04
timotimo in that case it's adorable, in my case it's ... frustrating
ssutch break it up into small, palatable changes? 01:05
timotimo oooh, i think i see where i went wrong
wow, that was not a mistake a smart person would have made
benabik Clever people make clever mistakes. 01:07
colomon Clever people sometimes make the biggest mistakes... 01:08
timotimo basically there was a token looking like { something something || <.typed panic> }, i added an assertion at the beginning of something something hoping it'd skip the block
instead it skipped right into the typed panic every time
even worse. i apparently misread that whole thing and it was fine before. also didn't make my code work magically 01:09
01:09 cooper joined
timotimo i hope that once i can make it work i can refactor most of the changes 01:12
01:13 btyler left 01:18 Chillance_ is now known as Chillance, Chillance left 01:19 Chillance joined
ssutch when dynamically generating classes, if i want it to descend from ann object, i should use $type.HOW.mixin($type, Class::A, Class::B) 01:21
does that seem right?
01:21 FROGGS_ joined 01:23 btyler joined
timotimo github.com/timo/ADT/blob/master/lib/ADT.pm6 - i'm not sure but i think i have something in here about that 01:23
i don't get it. i get an exception, but a closure i put before it isn't being run 01:25
i think i'm getting tireder and the code isn't getting righter. i should probably head to bed. 01:28
01:33 hypolin joined
timotimo i made most blocks in the documentation turn into 1s ... i should really get rest. good night! 01:41
[Coke] masak: p6a removed from sixplanet. 01:48
(will take a few minutes to percolate)
sorear [Coke]++ 01:49
segomos who is in charge of accepting pull requests for modules in META.list?
ssutch [Coke]++
[Coke] half the people here can do it.
sorear segomos: tell me your github ID
segomos sorear: hosted on bitbucket as segomos 01:51
need to me to suck it into github?
sorear hmm
I'm trying to give github.com/tony-o a commitbit
but github is being dumb
there it goes 01:54
segomos: you should now be able to merge the pull request. :) 01:55
segomos thank you 01:56
ssutch seems like in order to make a class that inherits from another class at runtime i should just do eval 01:59
colomon do bitbucket repos work in the ecosystem?
sorear segomos: use the metamodel 02:00
colomon sorear: did you mean ssutch there?
and o/
ssutch sorear: i don't see a way to do that with the metamodel
sorear: with roles, maybe
dalek osystem: a790671 | segomos++ | META.list:
Update META.list
02:06
osystem: d2a7691 | (Philip Mabon)++ | META.list:
Merge pull request #26 from tony-o/patch-1

Update META.list
02:08 kst`` joined 02:09 yves joined
segomos sorear: use the metamodel? 02:14
oh - 02:16
02:18 SamuraiJack joined 02:23 Chillance left 02:27 potatogim joined
JimmyZ good morning, #perl6 02:29
02:34 silug_ joined
ssutch 'morning! 02:34
colomon \o 02:42
02:55 abnorman left 03:11 ztt joined
sorear o/ 03:11
03:13 fridim_ joined
ztt howdy! I can not find where rakudo REPL code placed. I just wannar to see how this REPL works 03:14
Can anyone tell me which file do the REPL? sorry for my english 03:15
ssutch ztt github.com/rakudo/rakudo/blob/8976...mpiler.nqp is a good place to start 03:17
ztt oh thx! 03:19
ssutch ztt that class descends from github.com/perl6/nqp/blob/master/s...mpiler.nqp
03:19 eternaleye joined, ldthien0 joined
ssutch which has more of what you probably want in it (see the .interactive method) 03:19
ztt thank you ssutch! you show me a new world! ° △ ° 03:22
ssutch hah i like that emoticon 03:24
03:26 atroxaper joined 03:29 ldthien0 left 03:30 preflex_ joined, ChanServ sets mode: +v preflex_, preflex_ is now known as preflex 03:31 btyler left 03:32 xilo_ left 03:35 xilo_ joined
ssutch is there a prettier way to do this? # $.gen-class($_) for $pkg.messages 03:35
03:39 Guest1337 left
sorear ssutch: I promise you, everything which can be done with classes using eval can also be done with the MOP 03:49
ssutch sorear: that's good, i'd rather do things that way
this is how im doing it right now, but haven't yet figured out how to use MOP to generate a class which descends from another class: github.com/samuraisam/p6-pb/blob/6...nerator.pm 03:52
regardless, it's probably more "correct" to use roles anyway, which ClassHOW.add_role($cls, $role) seems to work 03:53
03:55 BenGoldberg left 04:00 skids left
sorear ssutch: can you paste the code which is supposed to add a parent but doesn't work? 04:01
ssutch sorear: im not sure what to do, i tried saying $type is $parent; - that didn't work 04:02
sorear ssutch: I suggest looking at the definition of is 04:04
search the setting for trait_mod:<is>
ssutch sorear: that makes sense :)
sorear generally speaking metamodel stuff involves lots of uppercase letters, especially H and W... 04:06
ssutch derp, the role was in Metamodel::MultipleInheritance 04:15
$typ.add_parent($typ,$parent) # DOH! 04:17
and it works!
now if only i could make namespaces at runtime, i'd be rich!
sorear $typ.HOW.add_parent surely 04:19
ssutch yeah, that's what i meant 04:20
diakopter o_O
ssutch thanks for the hand sorear \o
diakopter gchat is down-ish, for once 04:25
04:27 Psyche^ joined 04:31 Psyche^ is now known as Patterner
sorear ssutch: btw, $foo.^bar($baz) is short for $foo.HOW.bar($foo, $baz) 04:34
ssutch yar 04:37
04:39 ztt left 04:47 fridim_ left 04:51 zby_home_ joined 04:53 xinming joined, birdwindupbird joined 04:59 nitestryker joined 05:08 fridim_ joined 05:13 SamuraiJack left 05:17 SamuraiJack joined 05:18 abnorman joined 05:19 arlinius left 05:30 nitestryker left 05:36 FROGGS_ left 05:38 rs0_ joined 05:40 nitestryker joined 05:45 fridim_ left 05:46 nitestryker left 05:49 arlinius joined 05:54 kaleem joined 06:11 FROGGS_ joined 06:12 nitestryker joined 06:13 eternaleye left, eternaleye joined 06:20 dukeleto joined, dukeleto left, dukeleto joined 06:23 kaleem left 06:26 dmol left 06:34 xlat joined 06:37 dukeleto left 06:45 kaleem joined 06:55 drbean joined 07:09 SamuraiJack left 07:11 SamuraiJack joined, domidumont joined 07:16 nitestryker left, nitestryker joined 07:31 berekuk joined 07:36 domidumont left 07:37 domidumont joined 07:45 fhelmberger joined 07:49 sqirrel joined
TimToady commuting to York & 07:52
Teratogen wow 07:54
08:09 cosimo joined, cosimo left, cosimo joined 08:10 cosimo left, cosimo joined, cosimo left 08:11 cosimo joined 08:12 cosimo left, cosimo joined 08:14 cosimo left, ssutch left, cosimo joined 08:15 cosimo left 08:20 cosimo joined 08:36 djanatyn joined 08:41 Tene joined, Tene left, Tene joined 08:46 dakkar joined 09:02 daxim joined 09:11 kst`` left 09:12 kst`` joined
dalek ecs: fce8a2f | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Framework for a Perl 6 glossary
09:46
lizmat please note it is just a framework with some empty lemma's so far
patches welcome!
09:50 snearch joined
lizmat robocup& 09:54
dalek ecza: 7bae012 | (Solomon Foster)++ | lib/CORE.setting:
Port lizmat++'s classify to Niecza.
10:04
10:05 Chillance joined, zby_home_ left
dalek ast: 10f1993 | (Solomon Foster)++ | S32-list/classify.t:
Refudge for Niezca.
10:06
sorear morning colomon :) 10:07
colomon \o
sorear hrm. I made a small change to rakudo and I worry I may have caused an optimizer regression 10:13
because it made the setting marginally *bigger*, and I think that change should only have been capable of causing shrinkage
FROGGS_ sorear: that could be my patch too 10:15
sorear FROGGS_: I think I pulled and measured after yours 10:16
FROGGS_ before my object-flush patch the setting.bpc was 17meg, afterwards 18meg
sorear so the "big method" in the output from rx.t was causing the method splitter fits
~100,000 instructions, 2018 local variables
200M (insn,variable) pairs needing type deduction 10:17
i made some changes to nqp&rakudo which have the same method down to 25 locals (near-same insn count)
unfortunately, it doesn't verify. 10:18
jnthn 2018 to 25? Whoa. :) 10:19
sorear++
sorear: I may be able to guess if I see the patch, or alternatively I may have no clue.
sorear jnthn: also, the splitter was having a bit of trouble with the splitting. 2018 locals doesn't leave much room after the save epilogue/restore prologue :) 10:20
huh, nqp passes tests and rakudo passes coretests
jnthn right :)
sorear isn't sure how to square this with the new verifier rejecting output 10:21
jnthn Verifier being pickier than the JVM's own?
10:22 fridim_ joined 10:23 rindolf joined
sorear mustbe. 10:24
dalek ecza: 39ab531 | (Solomon Foster)++ | lib/CORE.setting:
Add Any.classify.
10:29
ast: 6f8898b | (Solomon Foster)++ | S32-list/classify.t:
Unfudge for Niecza.
timotimo hmm. do i want to bang my head against Pod6 again today? 10:30
masak good afternoon, #perl6 10:31
colomon \o 10:32
it's barely morning here...
timotimo i was wondering, D<...> is supposed to offer a link target for future usages of the term and its synonyms. making those links seems like a job for Pod::To::*, right?
sorear ah, I just screwed up the lload stack signature 10:39
had it marked as returning a reference with no type (L) 10:40
10:42 pecastro joined
dalek p: 4d574a2 | sorear++ | src/ (4 files):
Add a local_lifetime hint op

This tells the code generator that the named locals don't need to escape the scope of the op. Note that this is more than just a scope analysis, since it affects behavior in loops: you're telling the codegen that it's OK to clobber the named variable between iterations. As such, to automatically generate it would require a dataflow analysis. A future dataflow analyzer might do so.
10:48
p: 968a0b4 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:
Fragment-sizing logic
p: 25887f2 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:
Fix L/J typo
10:50
p: 7718394 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:
Intern type descriptors for speed
p: 4e644af | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:
Switch to BFS for type inference. Seems to result in fewer iterations for most functions.
p: c0cffa0 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:
Better debug output for fragment sizer
masak sorear: wow, looks like you're hitting really interesting problems there. 10:52
dalek kudo/nom: a07c211 | sorear++ | / (2 files):
Generate local_lifetime hints.
sorear jnthn: I've optimistically pushed
running a parrot test build in parallel
apparently updating NQP_REVISION requires rebuilding parrot. bleh. 10:53
jnthn sorear: We quite consistently don't put underscores in nqp::op names except for things like the _n type suffixes. 10:54
sorear oops.
jnthn sorear: Did you change anything about the Parrot code-gen, beyond making it not explode when it sees locallifetime? 10:55
sorear jnthn: No 10:56
sorear wanted to do the minimal possible change to minimize the chance of a failure now
jnthn *nod*
10:56 xinming left
sorear jnthn: What's the best way to take a --gen-parrot rakudo build tree and update the NQP without rebuilding Parrot? 10:57
sorear suspects this rakudoparrot build will fall over
jnthn sorear: Mess with tools/build/PARROT_REVISION is one way 10:58
(in the nqp repo)
10:58 xinming joined
jnthn sorear: Once you have got an NQP that knows to install to the right place, you can just make install it 10:58
So if you already have one, just tweak PARROT_REVISION, configure/install it. So long as the NQP revision is at least hihg enough, it's all good. 10:59
11:02 atroxaper left
dalek p: 418457e | sorear++ | src/ (4 files):
s/local_lifetime/locallifetime/g
11:04
jnthn sorear++
Util sorear++ # For getting the ball rolling in the direction of dataflow analysis. 11:08
dalek kudo/nom: e63ebb6 | sorear++ | / (2 files):
s/local_lifetime/locallifetime/g
11:08 Stygia joined
sorear the rx.jast:qb_1 now has 25 locals and 89075 instructions, and the autosplitter identifies seven fragments it could be broken into 11:09
jnthn \o/ 11:10
sorear next: extend autosplitter to actually generate said fragments, and the glue code
FROGGS_ that sounds pretty cool
jnthn That'll win us some tests. 11:11
In fact, with all the test files this manages to pull it, it may be enough to push us into the 80%s
FROGGS_ \o/ (I'm from the 80s too) 11:13
sorear I'm not. :p
jnthn Don't worry, we'll reach the 90%s soon after :P 11:15
masak was the autosplitter written out of necessity (as in "this code won't run otherwise") or was it more of a performance thing? 11:16
jnthn nec 11:18
sorear right now the biggest test files die with "Method code too large!" 11:19
kind of annoying. 11:20
jnthn Indeed...especially as a bunch of them are regex ones, and the regex engine is already powerful enough to parse Perl 6, so it should be able to pass a good number of them. 11:29
self.endTime = ko.computed(function () {
dammit
FROGGS_ jnthn: you are calculationg your own endtime? 11:31
jnthn Not quite... :/ 11:33
sorear this method autosplitter is dangerously close to "debugging code takes twice as much cleverness as writing it in the first place" territory
11:39 rindolf left
FROGGS_ :/ 11:40
11:51 snearch left
timotimo r: say "<C<<FOO>>>" ~~ / $<code>=<[A..Z]> $<begin>=['<'+] [ <!before '>'> \N]+ [ $<end-tag>=['>'+] <?{ $<end-tag>.Str.chars == $<begin>.Str.chars }>] / 12:00
camelia rakudo a07c21: OUTPUT«「C<<FOO>>」␤ code => 「C」␤ begin => 「<<」␤ end-tag => 「>>」␤␤»
timotimo neato!
r: say "<C<<Foo I<Bar> baz>>>" ~~ / $<code>=<[A..Z]> $<begin>=['<'+] [ <!before '>'> \N]+ [ $<end-tag>=['>'+] <?{ $<end-tag>.Str.chars == $<begin>.Str.chars }>] / 12:02
camelia rakudo a07c21: OUTPUT«「C<<Foo I<Bar>」␤ code => 「C」␤ begin => 「<」␤ end-tag => 「>」␤␤»
timotimo oh no :(
r: say "<C<<Foo I<Bar> baz>>>" ~~ / $<code>=<[A..Z]> $<begin>=['<'+] <!before '<'> [ <!before '>'> \N]+ [ $<end-tag>=['>'+] <?{ $<end-tag>.Str.chars == $<begin>.Str.chars }>] / 12:03
camelia rakudo a07c21: OUTPUT«「I<Bar>」␤ code => 「I」␤ begin => 「<」␤ end-tag => 「>」␤␤»
timotimo i wish i could run rakudo-debugger :(
12:04 SamuraiJack left
timotimo r: say "<C<<Foo I<Bar> baz>>>" ~~ / $<code>=<[A..Z]> $<begin>=['<'+] <!before '<'> [\N]+ [ $<end-tag>=['>'+] <?{ $<end-tag>.Str.chars == $<begin>.Str.chars }>] / 12:04
camelia rakudo a07c21: OUTPUT«「C<<Foo I<Bar> baz>>>」␤ code => 「C」␤ begin => 「<<」␤ end-tag => 「>>」␤␤»
timotimo ah, thit is the problem
it's a good thing there are spectests about this.
timotimo makes more
12:05 preflex left 12:06 preflex joined, ChanServ sets mode: +v preflex
timotimo r: say "I<<<This is nested B<<within I<and within>>>>>>" ~~ / $<code>=<[A..Z]> $<begin>=['<'+] <!before '<'> [\N]+ [ $<end-tag>=['>'+] <?{ $<end-tag>.Str.chars == $<begin>.Str.chars }>] / 12:06
camelia rakudo a07c21: OUTPUT«「I<<<This is nested B<<within I<and within>>>>>>」␤ code => 「I」␤ begin => 「<<<」␤ end-tag => 「>>>」␤␤»
timotimo cool beans
r: say "I<<<This is nested B<<within I<and within>>>>>>" ~~ / $<code>=<[A..Z]> $<begin>=['<'+] <!before '<'> $<content>=[\N]+ [ $<end-tag>=['>'+] <?{ $<end-tag>.Str.chars == $<begin>.Str.chars }>] / 12:07
camelia rakudo a07c21: OUTPUT«「I<<<This is nested B<<within I<and within>>>>>>」␤ code => 「I」␤ begin => 「<<<」␤ content => 「This is nested B<<within I<and within>>>」␤ end-tag => 「>>>」␤␤»
dalek p: bd00194 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:
Code generators for saving/restoring values
12:11
sorear sleep&
FROGGS_ gnight sorear
timotimo but does it already work?!
timotimo tries it out
src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:847: error: cannot find symbol case AbstractInsnNode.IINC_INSN:
jnthn 'night, sorear 12:12
timotimo it seems like something wasn't added to the nqp repo or something?
masak 'night, sorear
jnthn timotimo: Did you re-configure?
timotimo src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:8: error: package org.objectweb.asm.commons does not exist
jnthn Makefile may have changed
timotimo oh!
that would explain it nicely
sorear timotimo: uh...
timotimo it works now 12:13
sorear timotimo: gist.github.com/sorear/5866922 apply this
timotimo is that just for debugging?
sorear yes
then try some variation on: java -cp nqp-runtime.jar:3rdparty/asm/asm-debug-all-4.1.jar org.perl6.nqp.jast2bc.JASTToJVMBytecode ../rakudo-jvm/rx.jast rx.class
that's how I've been doing the test runs 12:14
it's not ready for full integration yet
timotimo well, for now, re-configuring it helps
sorear sleep for reals&
timotimo good night!
JimmyZ 'night, sorear 12:15
12:15 snearch joined
timotimo is there some trick to tell backtracking "be eager until you find this token, then see if you can advance, but if you can't, become eager again"? 12:16
if not, no problem, i suppose i can do nongreedy forward search instead 12:17
jnthn "keep going until we can match the next token" is basically what frugal quantifiers are doing 12:21
timotimo is there a speed enhancement to going greedy until a specific token that in many but not all cases signifies that parsing should end anyway is found? 12:24
i think i made the pod parsing significantly slower :| 12:27
i wonder if it'll finish. 12:28
all it's doing is eat more and more memory, so ... i guess something is happening? 12:31
FROGGS_ if it is perl6 code you could use the debugger 12:32
(which makes it even slower :P)
timotimo no, it's in the Grammar again :| 12:33
it's almost constant at 2.4gb now
i wonder if i could try develop this atop jvm? it would certainly be a bit faster to compile.
but i don't know if i can install Pod::To::HTML there? 12:34
if and how.
FROGGS_ no idea 12:35
can you show a diff?
timotimo oh, since it's a crazy slowdown, i could perhaps get away with not turning it into HTML at all
gist.github.com/timo/d7018f9f3f75321bc9b7 - this is my diff
especially note how it removes the <!before '>'> from the content section 12:36
the +? was after the ] in my last try, too.
FROGGS_ typo: end-teg
last added line
timotimo whoops! 12:37
wow.
that would certainly kill it :)
thanks, i needed that second pair of eyes :)
FROGGS_ :o) 12:38
12:38 p5eval joined
FROGGS_ btw, you could add a param to token pod_string_character like: pod_string_character($*POD_IN_FORMATTINGCODE = 1), and then pass 1 on line 12 and 15 12:40
this way you dont need to set the dynvar in line 11, 13 and 15
timotimo don't i need to pass that around everywhere in that case?
FROGGS_ no 12:41
ohh, the signature should be pod_string_character($*POD_IN_FORMATTINGCODE = 0)
timotimo sounds good. i'll finish my test cycle first.
FROGGS_ of course
timotimo ah, it'll stay a dynamic variable in that case?
sounds useful, thanks!
FROGGS_ no premature optimization please :o)
yes
seen it somewhere in the grammar
timotimo about to see my results :) 12:42
aaw, crud
"These synonyms can then be inserted into subsequent Pod using the L<{Pod::FormattingCode<3718923960175712333>.type}<> formatting code>|Alias placements."
>_>
FROGGS_ O.o 12:44
timotimo ah, it gets classified as "todo", interesting 12:45
mls Hi! 12:47
JimmyZ hello
12:47 konundra joined
mls here's my first try to get rid of the priorInvokation element: gist.github.com/mlschroe/5867111 12:48
timotimo i think i just need to add handling so that C<...> will not cause formattingcodes inside to be parsed 12:50
jnthn commute & 12:52
mls all nqp testcases pass, but I'm not happy about the somewhat "sprinkled" captureouter calls. jnthn++ probably knows a much better place to do it.
FROGGS_ timotimo: is C<...> a separate token?
mls argh, missed him ;)
I'll retry in an hour or so ;)
timotimo no, it's not 12:53
FROGGS_ hmmm, maybe it makes sense to treat pod formatting like q and qq ? 12:54
timotimo i don't know exactly how that's being done
at least there's a range of parameters that defines what gets parsed inside blocks and what doesn't
you can give a =code block an :allows with any subset of the letters A through Z
FROGGS_ you have a nibbler, and roles like q and qq, and depending on what you want to parse you mixin the right rule 12:55
timotimo at least i know now why the output of Damian Conway <L<C<damian@conway.org>|mailto:damian@conway.org>> looks bugged with my changes:
because the input is bugged!
there's no reason for pod to put that second > outside of the L<...>
FROGGS_ yeah
timotimo but now that i've made these changes, i can just use « instead of <
do you think i can make these changes to the docs before the changes to rakudo are merged? 12:56
FROGGS_ these A..Z allow letter sounds pretty much the the quote rules
if you fix the doc, yes
timotimo the docs will renderfail in the non-fixed version of rakudo, though 12:57
FROGGS_ ohhh, hmmm
then I would wait
timotimo it seems like there's another b0rkedness still ... 12:58
FROGGS_ :/
timotimo found the problem! :) 12:59
FROGGS_ \o/
timotimo anyway. yesterday i experimented with different ways to make these letter combinations work and figured out that a single integer as a bitfield is the most workable solution
a list of ones is easier to access, but passing that list on through the dynamic variables made me bang my head on the table a few times too often 13:00
integers are nice, they are kind of atomic, immutable, singlets ... what's not to like?
tadzik Captain's log, stardate 2606201.3. A suspected meteorological phenomena caused the crew to sleep for 14 hours and still feel tired as hell 13:01
good afternoon, #perl6
FROGGS_ hi tadzik
I like ints :o)
13:02 rindolf joined
timotimo hm, i'm getting lots and lots of unrecognized formattingcodes from pod::to::html, i didn't even know there were that many! 13:04
before: You can use a set of single angles (C«<...>»), a set of double angles («...»), or multiple single-angles (C«<<<...>>>»).
after: You can use a set of single angles (<...>), a set of double angles («...»), or multiple single-angles (<<<...>>>).
\o/
i think this kind of error: C<{Pod::FormattingCode<-8207415112293251889>.type}<>> :comes from suddenly functional formatting codes inside C<...> 13:06
13:11 PacoAir joined, bbkr joined 13:14 Kelder joined
moritz_ it's just LTA stringification of Pod block objects 13:15
timotimo oh, you're right! it's not something new i broke! 13:16
it's something that got rebroken by me
qq{<kbd class="pod2html-todo">{$node.type}&lt;} - yeah, how is that supposed to work exactly? :D
13:23 colomon joined 13:25 benabik left 13:31 bluescreen10 joined 13:33 kaare_ joined 13:34 btyler joined 13:40 snearch left 13:41 skids joined
timotimo anyone feel like reviewing my changes to Pod::To::HTML? github.com/perl6/Pod-To-HTML/pull/2 - i consider them pretty much mergable now. the real improvements start happening when the rakudo stuff hits nom, though. 13:43
aw, shucks. B<R<foo> R<bar>> doesn't work any more :| 13:48
13:48 stevan_ left
FROGGS_ :/ 13:49
timotimo the second R gets parsed as R<bar>> instead of R<bar>
i wonder if i can :my $endstr; and later match $endstr? 13:51
rather than doing the alteration between » and '>'+ and then checking the length of '>'+ vs the length of '<'+ in the beginning
did some macro spectests break while i was working on pod things? 13:52
FROGGS_ nqp: say("abchurzabc" ~~ /:my $t; $<t> :=[\w**3] { $t := ~$<t> } $<middle>=[.+] <$t>/) 13:53
camelia nqp: OUTPUT«Unrecognized regex metacharacter = (must be quoted to match literally) at line 2, near ":my $t; $<"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤» 13:54
13:54 stevan_ joined
FROGGS_ nqp: say("abchurzabc" ~~ /:my $t; $<t>=[\w**3] { $t := ~$<t> } $<middle>=[.+] <$t>/) 13:54
camelia nqp: OUTPUT«abchurzabc␤»
timotimo nice
that should make the whole process a bit cleaner, perhaps also faster.
FROGGS_ nqp: say("abchurzabc" ~~ /:my $t; $<t>=[\w**3] { $t := ~$<t> } $<middle>=[.+] <$t> { say(~$<middle>) } /)
camelia nqp: OUTPUT«hurz␤abchurzabc␤»
FROGGS_ worx
nqp: say("abchurzabc" ~~ /:my $t; $<t>=[\w**3] { $t := ~$<t> } $<middle>=[.+] <$<t>> { say(~$<middle>) } /)
camelia nqp: OUTPUT«hurz␤abchurzabc␤»
FROGGS_ nqp: say("abchurzabc" ~~ / $<t>=[\w**3] $<middle>=[.+] <$<t>> { say(~$<middle>) } /) 13:55
camelia nqp: OUTPUT«Null regex not allowed at line 2, near ""␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
FROGGS_ nqp: say("abchurzabc" ~~ / $<t>=[\w**3] {} $<middle>=[.+] <$<t>> { say(~$<middle>) } /)
camelia nqp: OUTPUT«hurz␤abchurzabc␤»
FROGGS_ see
timotimo nqp: say("<<<".subst("<", ">"))
camelia nqp: OUTPUT«Method 'subst' not found for invocant of class 'String'␤current instr.: '' pc 51 ((file unknown):40) (/tmp/_mXxpffWrH:1)␤»
timotimo nqp: say(nqp::subst("<<<", "<", ">"))
camelia nqp: OUTPUT«Error while compiling block : Error while compiling op call (source text: "nqp::subst(\"<<<\", \"<\", \">\")"): Error while compiling op subst (source text: "nqp::subst(\"<<<\", \"<\", \">\")"): No registered operation handler for 'subst'␤current instr.: '' pc 50797 (src/sta…
FROGGS_ nqp: say("abchurzabc" ~~ / $<t>=[\w**3] {} $<middle>=[.+] < $<t> > { say(~$<middle>) } /) # readability, note that the {} is needed 13:56
camelia nqp: OUTPUT«Unrecognized regex metacharacter < (must be quoted to match literally) at line 2, near " $<t>=[\\w*"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
timotimo oh, don't even need to substitute
FROGGS_ nqp: say("abchurzabc" ~~ / $<t>=[\w**3] {} $<middle>=[.+] <$<t>> { say(~$<middle>) } /) # no readability, note that the {} is needed
camelia nqp: OUTPUT«hurz␤abchurzabc␤»
timotimo nqp: say(">" xx 4)
camelia nqp: OUTPUT«Confused at line 2, near "say(\">\" xx"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
timotimo nqp: say(">" * 4)
camelia nqp: OUTPUT«0␤»
timotimo nqp: say(">" xx 4)
camelia nqp: OUTPUT«Confused at line 2, near "say(\">\" xx"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
timotimo er, how do?
nqp: say(nqp::repeat(">", 4))
camelia nqp: OUTPUT«Error while compiling block : Error while compiling op call (source text: "nqp::repeat(\">\", 4)"): Error while compiling op repeat (source text: "nqp::repeat(\">\", 4)"): No registered operation handler for 'repeat'␤current instr.: '' pc 50797 (src/stage2/QAST.pir:18547) (s…
FROGGS_ nqp: say(nqp::repeat("x", 4))
camelia nqp: OUTPUT«Error while compiling block : Error while compiling op call (source text: "nqp::repeat(\"x\", 4)"): Error while compiling op repeat (source text: "nqp::repeat(\"x\", 4)"): No registered operation handler for 'repeat'␤current instr.: '' pc 50797 (src/stage2/QAST.pir:18547) (s…
FROGGS_ there was an op.... 13:57
hmmm
timotimo nqp::repeat seems to exist somewhere
nope.
FROGGS_ no
timotimo will need to write a loop. 13:58
is there no for loop in nqp, btw? there's no range operator at least.
13:59 logie joined 14:00 woosley1 joined
FROGGS_ nqp: say(x("a", 4)) 14:01
camelia nqp: OUTPUT«Could not find sub &x␤current instr.: '' pc 47 ((file unknown):138690247) (/tmp/vBfw5Ajt6j:1)␤»
FROGGS_ nqp: say(nqp::x("a", 4))
camelia nqp: OUTPUT«aaaa␤»
FROGGS_ timotimo: ^^
timotimo ah, neato :) 14:02
14:04 benabik joined
timotimo FROGGS_: can you explain what the {} is for? 14:06
also, i don't have the option to use <$<t>> or something, because i want to derive a string to be matched from a previous string 14:07
FROGGS_ it is a code block basically, and I think the match variables will be computed at that time 14:08
timotimo ah, ok
FROGGS_ (that is a bug btw)
timotimo but i've already got a code block there with things in it
nqp: say "C<<< foo bar >>>" ~~ / :my $end; C $<start>=['<'+] { $end := nqp::x(">", nqp::chars($<start>)); say($end) } \N+? <$end> /; 14:09
camelia nqp: OUTPUT«Confused at line 2, near "say \"C<<< "␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
14:09 Guest1337 joined
timotimo nqp: say("C<<< foo bar >>>" ~~ / :my $end; C $<start>=['<'+] { $end := nqp::x(">", nqp::chars($<start>)); say($end) } \N+? <$end> /); 14:09
camelia nqp: OUTPUT«>>>␤Unrecognized regex metacharacter > (must be quoted to match literally) at line 2, near ">>>"␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
timotimo oh, do i need to generate valid regex in the string?
nqp: say("C<<< foo bar >>>" ~~ / :my $end; C $<start>=['<'+] { $end := "'" ~ nqp::x(">", nqp::chars($<start>)) ~ "'"; say($end) } \N+? <$end> /);
camelia nqp: OUTPUT«'>>>'␤C<<< foo bar >>>␤»
timotimo neato :)
nqp: say("C<<< foo bar >>>>>>" ~~ / :my $end; C $<start>=['<'+] { $end := "'" ~ nqp::x(">", nqp::chars($<start>)) ~ "'"; say($end) } \N+? <$end> /); 14:10
camelia nqp: OUTPUT«'>>>'␤C<<< foo bar >>>␤»
timotimo that's also exactly how i want this to work :D 14:11
FROGGS_ yeah, that's cool 14:12
PerlJam timotimo: why \N ? Can't formatting codes span lines? (or was that just for camelia's sake?) 14:13
14:16 xenoterracide joined
timotimo yes, it can. this is just shortening for camelia 14:18
Missing or wrong version of dependency '<unknown>' ......
FROGGS_ -.- 14:19
timotimo make clean'd just in case 14:21
14:25 spider-mario joined
cognominal o/ all-* people 14:25
timotimo i don't know what i've done to cause this strange error :| 14:27
cognominal I have a question. How SO5 PEG rules applies when a rule is not left anchored. Can a longest string match can win over a shorter one if its start position is greater than the short string? 14:28
timotimo ah, Term::ANSIColor breaks it apparently 14:29
moritz_ cognominal: no
cognominal: left-most match is more important than longest token
cognominal so that should be rule 0 in github.com/perl6/specs/blob/master...ex.pod#L45 ?
moritz_ ? 14:30
moritz_ not really, it applies well before the pecking order mentioned there
it's not an ambiguous parse
cognominal Depends on the defenition of ambiguous parse :) 14:31
timotimo is the definition of ambiguous parse ambiguous? 14:32
cognominal timotimo: I am not sure it is even given anywhere
My initial question was falsely naive. I was almost sure about the answer but in a spec so called obvious things must be stated explicitely. 14:35
14:35 Stygia left
hoelzro could other people +1 my PR for pygments.rb? github.com/tmm1/pygments.rb/pull/73 14:36
cognominal I understand that historically synopses build on Perl 5 knowledge by difference but eventually synopses must be self contained.
hoelzro the author decided to rear his head yesterday, and I don't want him to continue to ignore it.
cognominal hoelrzro, is there examples of docs usings your pygment lexer ? we can't just blindly +1 it. 14:39
hoelzro cognominal: you use it just like any other pygments lexer 14:40
you just provide language = 'perl6' 14:41
JimmyZ we had a js highlighter for perl6, fyi
hoelzro I wrote a Perl 6 highlighter for pygments so that Perl 6 code may be highlighted on GitHub
it's in the main pygments (python) repo already, but getting it into pygments.rb is the next step towards GH citizenship 14:42
bbkr hoelzro++
cognominal I don't care how I use it because I don't want to go to the trouble right now. I just want to see a non trivial page that use it so I can +1 if I am convinced.
hoelzro cognominal: I would say that GitHub highlighting for Perl 6 files isn't trivial =) 14:43
JimmyZ Is it js highlighter in mu repo?
14:46 rindolf left
cognominal hoelzro: you don't answer my question. I want to see a html page that demonstrates Perl 6 highlighting on a complex Perl 6 file. 14:47
hoelzro oh 14:48
I misunderstood
cognominal So far, all highlighting goes astray
hoelzro cognominal: how's this: hoelz.ro/files/perl6-pygments.png
14:48 SamuraiJack joined 14:49 woosley1 left
cognominal nice but this does not qualify yet . I want to see heredoc, complex quoting, complex string interpolations (like methods call) 14:50
hoelzro cognominal: would you mind writing up an example? I'd be happy to run the highlighter on it and post the results!
14:51 ecocode joined
cognominal sure. Not a complete one but a challenging one. 14:51
hoelzro sweet =)
FROGGS_ BATTLE!!! 14:52
timotimo oh lord. i typed in the command to do a spectest run and went AFK for fifteen minutes, come back to see that i forgot to hit return on the command 14:53
FROGGS_ hoelzro: I could give you some P6/P5 code mix to highlight :P
[Coke] is the autosplitter java only?
FROGGS_ -.-
[Coke]: think so, yes
[Coke] timotimo: if it's java, you didn't lose much time!
hoelzro FROGGS_: hmm...that brings up a great point. I don't think the highlighter handles that *at all*
timotimo nope, it's on parrot.
FROGGS_ hoelzro: nvm, I dont think that this is a common case within the next one or two years 14:54
hoelzro it's good to prepare for, though
FROGGS_ timotimo: the autosplitter is on parrot? sure? 14:55
hoelzro: having it pluggable like the slangs would make sense (use COBOL)
hoelzro looks at slang docs 14:56
cognominal hoelzro, gist.github.com/cognominal/5868054
that's a short one but a challenging one.
timotimo JimmyZ: the js highlighter has this to say about itself: github.com/perl6/mu/blob/master/mi...erl6.js#L9 14:57
FROGGS_: why are we thinking about the autosplitter?
this is for my pod work ;)
cognominal btw, I am not sure that pygment has a css class for interpolation in strings
FROGGS_ timotimo: that was [Coke]++'s question
timotimo oh
anyway, i've already reached S32 14:58
cognominal hoelzro: I want you to succeed doing hilighting but I am not sure pygment is the tool for that.
FROGGS_ I am a lvl86 dwarf
hoelzro cognominal: hoelz.ro/files/perl6-pygments4.png
cognominal hoelzro, Perl 6 is so challenging.
hoelzro keep in mind that the pygments standard is not to highlight interpolated vars 14:59
the Perl 5 lexer does this as well
FROGGS_ hoelzro++
hoelzro oh, I know P6 is challenging. It took me a long time to "perfect" the lexer
cognominal hoelzro, that's my point
hoelzro but I feel pretty good about its state
FROGGS_ does it handle heredocs as parts of sub calls too? 15:00
hoelzro let's see
cognominal hoelzro. is it able to recognize the end of the heredoc?
hoelzro yes
timotimo cognominal: if we want syntax highlighting on github, there is no other way than to make a pygments highlighter. 15:01
i'm pretty sure github will not let us deploy a perl6-to-js-translated STD.pm6.js for our niche language.
hoelzro FROGGS_: unfortunately not =/
cognominal timotimo: ha, ok. So the focus is to get something good enough on github.
15:02 ecocode left
hoelzro yes 15:02
I thought I'd mentioned that =)
timotimo i thought he'd mention that as well
15:02 ecocode joined
timotimo so i'm currently working on the pod stuff and i've stumbled upon V<C<boo> B<bar> asd> 15:02
cognominal ok, so I agree that I must ++ it. 15:03
timotimo is there any reason whatsoever for <...> inside V blocks to have to be balanced?
hoelzro \o/ 15:04
cognominal hoelzro, I added my positive comment.
hoelzro cognominal: thanks!
(and thanks to the others that +1'd as well!)
cognominal you are welcome.
hoelzro++
timotimo because i'm pretty sure if you want to have C<boo> inside a V<...>, you'll just use V<< >> instead or V« » (and this test just used it that way because <<... and « were NYI) 15:05
cognominal hoelzro, sorry about my Saint Thomas attitude 15:06
hoelzro it's cool
my solicitation was kind of out of context =)
benabik would think that whatever brace you use for the V should be balanced or non-existant inside it.
timotimo cognominal: "we need perl 6 highlighting in github" sounds a bit strong ;)
timotimo reads the specs more carefully 15:07
15:07 ecocode left
timotimo ah, indeed 15:08
this complicates things :|
15:08 ecocode joined
timotimo dayum, pod6 is kinda complicated. 15:09
cognominal timito: I think Perl 6 not highlighted in github marks it as an irrelevant language.
FROGGS_ yepp
benabik Why should the doc format be any simpler than the language itself. ;-)
15:09 xlat left 15:11 snearch joined
timotimo oof, keeping track of what may be balanced and what mustn't inside deeply nested formattingcodes is *not* going to be easy 15:11
FROGGS_ timotimo: have a look at the nibbler 15:12
[Coke] wonders if sorear is going to get this fix in to run more spec tests in the next 40min. :) 15:15
15:16 fhelmberger left
timotimo that's surprisingly simple! 15:17
15:17 ecocode left 15:18 ecocode joined 15:20 ecocode left, ecocode joined
JimmyZ timotimo: thanks, I found another github.com/perl6/std/tree/master/std_hilite 15:25
timotimo oh, interesting
15:26 benabik left
timotimo i don't understand how it works 15:26
i don't see a grammar in there
15:26 crab2313 joined 15:27 bluescreen10 left, bluescreen10 joined
FROGGS_ I guess it is using the STD_P5.pm6 grammar 15:28
timotimo but how?
i don't see a mention of it anywhere
FROGGS_ ask him :o)
15:28 snearch left
JimmyZ hoelzro: nice, I was just +1 to there 15:29
hoelzro JimmyZ: great, thanks!
15:29 xenoterracide left
JimmyZ hoelzro: thanks for your work! 15:29
hoelzro happy to be of help =)
timotimo oh, i get it 15:30
it's not js code that does the highlighting
you have to preprocess code with a running perl.
15:33 ecocode left, ecocode joined 15:34 daxim left 15:36 FROGGS_ left 15:49 FROGGS_ joined 15:50 dmol joined
lizmat back from robocup 15:54
thinking more about S11, I was thinking that maybe we should put the auth/ver information of a compunit in pod
as it is needed only during installation of a file, really
because from then on, the "database" will contain all the necessary information to select the compunit 15:55
timotimo Standard semantic blocks include: =NAME =VERSION =DEPENDENCY =AUTHOR - like those?
lizmat during compiletime / runtime 15:56
yup
15:56 domidumont left
lizmat doesn't that make sense? 15:56
timotimo dunno, those blocks would have to be standardised 15:57
15:58 xenoterracide joined
timotimo so ... inside <<, only sequences of << have to be balanced, right? 15:59
and inside « » any sequence of < and > may appear, balanced or otherwise 16:00
but if i have I«C<<< ... >>>», inside the C, there can only be imbalanced < and <<, but not <<<?
so it only goes "a level deep" if there's a new formatting code?
16:00 konundra left
tadzik gist.github.com/tadzik/5868712 16:02
might interest someone :)
timotimo hey, that's neat! 16:03
tadzik it still needs support for typed arrays to make any sense
timotimo commute& 16:04
16:04 konundra joined
tadzik also throws nice exception on missing fields, like "Type check failed in assignment to '$!race'; expected 'Str' but got 'Nil'". I like how Perl 6 gives them for free 16:04
16:06 ingy left, ingy joined
tadzik r: class A { has Int @.b }; say A.^attributes[0].type.perl 16:10
camelia rakudo e63ebb: OUTPUT«Positional␤»
tadzik that's bad. I don't see a way to know that it's of type Int
jnthn: ^
16:13 vk joined
lizmat r: class A { has Int @.b }; say A.^attributes[0].of 16:14
camelia rakudo e63ebb: OUTPUT«No such method 'of' for invocant of type 'Attribute'␤ in block at /tmp/mQAv2yAA2B:1␤␤»
lizmat seems to me Attribute needs an "of" method?
tadzik I suppose the above Positional should just say Positional[Int] or such 16:15
it works for scalars alright:
r: class A { has Int $.b }; say A.^attributes[0].type.perl
camelia rakudo e63ebb: OUTPUT«Int␤»
tadzik may be NYI
lizmat wonders why it is called "type" there, while it is "of" in other places 16:17
tadzik what other places? 16:18
gfldex did anybody use Grammar::Debugger successfully lately? 16:19
tadzik I usually use Grammar::Traces
* tracer 16:20
but not recently
lizmat why it is .type: Attribute.HOW.add_attribute(Attribute, BOOTSTRAPATTR.new(:name<$!type>, :type(Mu), :package(Attribute)));
tadzik yeah. But where is it .of? 16:21
timotimo i was not able to compile the debugger lately 16:22
lizmat r: my Int @a; say @a.of
camelia rakudo e63ebb: OUTPUT«(Int)␤»
tadzik oh
lizmat r: my @a of Int; say @a.of
camelia rakudo e63ebb: OUTPUT«(Mu)␤»
timotimo tadzik, your interpretation of formatting code nesting; does it match mine as stated above?
lizmat of xxx apparently is NYI
dalek ast: d770a94 | (Solomon Foster)++ | S32-io/io-path.t:
Refudge for Niecza.
16:23
lizmat but I guess that's the reason for the .of method
tadzik timotimo: yes, that matches my understanding of it
dalek ecs: cf6767c | (Cédric VINCENT)++ | S99-glossary.pod:
Add TTIAR entry in S99-glossary.pod
16:24 SamuraiJack left
dalek kudo/nom: 5c0dae4 | tadzik++ | src/core/Attribute.pm:
Nicer Attribute.gist
16:24
tadzik yay, I commited to rakudo
16:25 kaleem left 16:30 crab2313 left
dalek ecs: 896dcf3 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Expanded some acronyms
16:33
16:33 apejens left
timotimo tadzik: can i put an I«…» into a B<> and put arbitrary combinations of <> into the inner I? 16:36
16:37 dmol left 16:38 dmol joined
timotimo that would make things simpler at least. 16:39
16:39 kaleem joined, kaleem left, Guest5246 joined, Guest5246 left 16:40 apejens joined, Guest5246 joined
Guest5246 helo 16:40
16:40 Guest5246 left
lizmat hi Guest5246! 16:41
16:44 stevan_ left 16:46 mikemol joined, konundra left
lizmat latest spectest I just ran, has some error that it didn't have before 16:47
timotimo macro errors?
lizmat t/spec/S06-macros/opaque-ast.t
timotimo phew. i thought i broke those!
lizmat t/spec/S06-macros/quasi-blocks.t
t/spec/S06-macros/unquoting.t 16:48
shall I gist the errors for you?
timotimo has no need for them; i have them locally, too, but not in my shell scrollback
lizmat Method 'evaluate_unquotes' not found for invocant of class 'String' 16:49
they all have the same error 16:50
16:50 abnorman left 17:00 rindolf joined 17:07 dakkar left 17:08 birdwindupbird left 17:10 ecocode left 17:11 stevan_ joined
GlitchMr rn: my $a = 4; if $a = 2 { say "Hello, world!" } 17:15
camelia rakudo 5c0dae, niecza v24-86-g39ab531: OUTPUT«Hello, world!␤»
GlitchMr std: my $a = 4; if $a = 2 { say "Hello, world!" }
camelia std d4cc5ab: OUTPUT«ok 00:01 44m␤»
GlitchMr While this isn't error, I think this case should have warnings, just like Perl 5 had.
17:15 abnorman joined
GlitchMr Assigning constant to variable and checking "if" is never what you meant. 17:16
17:17 kaleem joined
ugexe how do i push a hash into an array without flattening it? 17:18
lizmat push @array, %hash 17:19
?
ugexe that pushes the key value pairs
timotimo push @array, %hash.item 17:20
lizmat indeed…
r: my @a; my %h; push @a, $(%h); say @a.perl
camelia rakudo 5c0dae: OUTPUT«Array.new({})␤»
lizmat need to itemize it with $()
ugexe ah
lizmat r: my @a; my $h=Hash.new; push @a, $h; say @a.perl
camelia rakudo 5c0dae: OUTPUT«Array.new({})␤» 17:21
timotimo .item doesn't work?
r: my @a; my %h = 1 => 2; push @a, %h.item; say @a.perl
camelia rakudo 5c0dae: OUTPUT«Array.new({"1" => 2})␤»
timotimo that works, too
lizmat r: my @a; my %h; push @a, %h.item; say @a.perl
camelia rakudo 5c0dae: OUTPUT«Array.new({})␤»
lizmat yup, one is just syntactic sugar for the other, or they're both syntactic sugar :-)
depends on how you look at it 17:22
ugexe sweet, thanks
moritz_ see also doc.perl6.org/type/List
GlitchMr std: << 17:23
camelia std d4cc5ab: OUTPUT«===SORRY!===␤Unable to parse shell-quote words at /tmp/zk2_BLkECV line 1:␤------> <BOL>⏏<<␤Couldn't find final '>>'; gave up at /tmp/zk2_BLkECV line 1 (EOF):␤------> <<⏏<EOL>␤Parse failed␤FAILED 00:00 41m␤»…
lizmat r: my $a=Array.new; my @a; say $a.perl; say @a.perl # wonders whether there is some kind of mixup here 17:28
camelia rakudo 5c0dae: OUTPUT«[]␤Array.new()␤»
17:28 ldthien0 joined 17:29 ldthien0 left
timotimo tadzik, feel like looking over my pod::to::text changes? 17:34
17:34 snearch joined 17:41 snearch left
dalek ecs: e0c90ef | (Elizabeth Mattijsen)++ | S26-documentation.pod:
Some background for new S11
17:42
ecs: 49c6564 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Added API
17:45 xlat joined 17:46 konundra joined
lizmat dinner& 17:46
tadzik timotimo: I will, yes 17:49
timotimo: as for the preios question, I suppose that should work
and probably doesn't at this moment :) 17:50
17:56 vk left 18:00 xlat left, xlat joined, xlat left
timotimo tadzik: that's what i'm trying to make work at the moment 18:03
18:08 ssutch joined 18:14 rindolf left
tadzik ossom 18:18
18:35 benabik joined 18:58 vk joined
timotimo i'm getting a Assignment ("=") not supported in NQP, use ":=" instead at line 567, near "> 1 }>\n " where i don't actually seem to use a = 19:00
m) 19:01
=> instead of >=
19:02 konundra left
lizmat NQP only does binding 19:05
aka :=
timotimo yes, the problem was that i didn't see where i put the accidental =
19:07 domidumont joined 19:11 snearch joined 19:12 rindolf joined
dalek ecs: 199df7e | (Elizabeth Mattijsen)++ | S26-documentation.pod:
Bring in line with S11 to come
19:17
cognominal jnthn : github.com/jnthn/grammar-debugger/issues/4 19:18
19:20 kaleem left 19:25 domidumont left 19:30 stevan_ left
timotimo my parsing is progressing. except there's a strange bug in it. 19:33
19:34 stevan_ joined 19:39 ecocode joined 19:43 sqirrel left
dalek ecs: 431f3d3 | (Elizabeth Mattijsen)++ | S26-documentation.pod:
Some more addition for S11
19:47
ecs: 1691d9e | (Elizabeth Mattijsen)++ | S11-modules.pod:
Take 2 at unslushing S11

Highlights:
   - unit statement no longer exists, pod is now used to specify meta-information
   - eradicated the use of "namespace", use "package" instead
   - introduction of repository, with @*INC containing CompUnitRepo objects
   - completely removed dir/file dependency, except for CompUnitRepo::Local::File
   - -I now unshifts CompUnitRepo::Local::File object in @*INC
lizmat *phew* 19:48
lizmat hopes to restart discussion
on S11, that is
sorear o/ 19:49
timotimo hola sorear
lizmat sorear! 19:50
sorear ¡hola! ¡hola! 19:51
timotimo parsing blind is hard :( 19:56
19:56 havenwood joined
flussence lizmat: this stuff looks good, does it mean the "class Foo:auth<bar>" syntax is also going away in favour of Pod? 20:00
lizmat yes, that's the idea 20:01
of course, use Foo:auth<bar> will stay
flussence sounds like a good reason to start actually putting docs in my code :)
lizmat that was the idea, and the version will automatically be up to dat ;-) 20:02
*date
timotimo has finally made a breakthrough 20:10
copied a bit of code from a token where there was a $<begin-tag> into a token where there is a $<start>
close, but no cigar
i had the debug output that should have raised a red flag for about 4 cycles, but didn't realize what was going on >_> 20:12
ooooh yeah! :))) 20:14
lizmat is glad as well 20:15
20:18 kaare_ left
timotimo hey, i can *actually* develop my pod improvements on the jvm 20:26
i should have done this from the start >_<
so much time i could have saved
and now i'll see if the rendering of S26-documentation.pod works properly 20:27
does nqp have a say-replacement that logs to stderr?
r: nqp::note("testing?");
camelia rakudo 5c0dae: OUTPUT«===SORRY!===␤Error while compiling block (source text: "nqp::note(\"testing?\");"): Error while compiling op call: Error while compiling block : Error while compiling op note: No registered operation handler for 'note'␤»
timotimo i'd like such an op, tbh 20:28
dalek ecs: 0f0f99a | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Some more glossary lemmas added / updated
20:28 Rotwang joined, ggoebel left 20:30 ggoebel joined 20:32 omakase left
PerlJam
.oO( why is the glossary S99 instead of S00? )
20:32
benabik PerlJam: Because the glossary goes in the back? 20:34
lizmat that was my idea as well, it goes in the back 20:35
it is not required reading beforehand
:-)
20:37 autumn left, rindolf left
PerlJam I don't know ... The Synopses are littered with ordinary-ish words used in very specific ways that are liable to confuse the poor reader unless they'd at least looked through the glossary. 20:38
(or been a denizen of #perl6 for a while)
lizmat actually, I also intend it for denizens of #perl6, not just for Synopses lurkers :-) 20:40
PerlJam That just makes me think that it should be required reading even more :) 20:41
lizmat I'm not sure the explanation of autopun cuts it yet
20:47 konundra joined, ggoebel2 joined 20:48 ggoebel left 20:53 xenoterracide left 20:57 xenoterracide joined 20:59 ggoebel joined
timotimo i fear i'm getting crazy backtracking in my pod grammar :( 21:00
21:00 ggoebel2 left 21:02 skids left, ggoebel2 joined 21:03 ggoebel left
timotimo figured out what's wrong 21:04
21:04 bluescreen10 left 21:05 Rotwang left 21:06 cognominal left 21:07 cognominal joined 21:08 konundra left 21:09 bluescreen10 joined
FROGGS_ what was it? 21:12
timotimo i started requiring any < sequences at all to be balanced, not only inside formattingcodes 21:13
but it's still terribly slow 21:14
21:14 benabik left
timotimo the parser is finding all manner of balanced braces in the code, but not very many formatting codes 21:14
perhaps S26-documentation.pod is just partially improperly nested? 21:15
lizmat wouldn't be surprised
dalek p: 5237853 | sorear++ | src/vm/jvm/runtime/org/perl6/nqp/jast2bc/AutosplitMethodWriter.java:
fragment code generation
timotimo oh yeah! :) 21:16
lue hello world o/
timotimo oh yikes
"finished a formatting code S", "finished a formatting code E" xx 100, "finished a formatting code D"
oh, i know where that is from 21:17
dalek : 3f63eed | (Tobias Leich)++ | / (4 files):
fix prefix `not`, add .P5Bool and fix regex modifier `g`
21:18
: 646276d | (Tobias Leich)++ | t/test.pl:
fix sub `is` for arguments of type Any
timotimo i think it'll be finished soon and i'll see what it's doing wrong
it seems like it's parsed prefectly 21:20
except it took about 10x as long :(
FROGGS_ :/ 21:21
21:25 ecocode left
timotimo [2a02:8071:2909:7b00:5604:a6ff:fe93...n.pod.html if you're interested in looking for errors 21:25
Anything enclosed in an C<N<>> code is an inline B<note>. - this seems to be misparsed :( 21:26
21:26 stevan_ left, PacoAir left 21:31 bruges_ joined
lee_ fyi rakudo-jvm is failing to build for me with this error: gist.github.com/leedo/5871909 21:31
21:32 dmol left
lee_ (was building fine yesterday) 21:32
timotimo you need to get a newer nqp for that
the op was added recently
lee_ hmm, ok. thought i was all up-to-date. but perhaps it is not installing correctly
timotimo i suggest cd nqp && make && make install && cd .. && make 21:33
lee_ doh, yes that was it
i re-ran ConfigureJVM without the prefix arg
timotimo ah :)
lee_ thanks!
timotimo this thing i've started here is apparently too much for my tiny brain 21:34
lue faintly recalls someone adding N<> when he used it in a Pod6 document.
tadzik newer nqp, heh. I need a newer IP for seeing that ;P 21:36
timotimo fails to explain the fix
running a new attempt now
i hope it won't take the same time it did last time :(
21:37 spider-mario left 21:38 Timbus joined, nqr joined
lue tries to get firefox to understand The Future™ (IPv6) 21:40
21:41 felher left
timotimo already up to 1.9 gb 21:41
ssutch chrome also refuses to recognize the url 21:42
timotimo it should work exactly like that
of course only if you already have ipv6 connectivity
(at the moment it's unfinished, so only a bunch of debug output that should have gone to stderr instead)
ssutch cl.ly/image/2x2Y1M0A0p0G
21:43 felher joined
timotimo can you ping6 the ipv6? 21:43
2.5gb
it feels like it's parsing lots and lots of balanced texts even if it isn't inside a formattingcode ,but i thought i just fixed that :| 21:44
21:45 Guest1337 left 21:46 berekuk left, stevan_ joined 21:47 stevan_ left
lue Can't even ping6 ipv6.google.com (I can ping ::1 though). My ISP appears to be LTA 21:47
21:47 berekuk joined 21:48 stevan_ joined
dalek ecs: da1d9ca | (Elizabeth Mattijsen)++ | S99-glossary.pod:
Less Than Awesome
21:54
lue :)
timotimo runs another test :( 21:55
tadzik ooh, S99
lue has never seen GIT mean get it together on #perl6 21:58
flussence timotimo: I think IPv6 and/or the firewall is acting up on your end
timotimo on my end?
i don't think so.
wakelift.wakelift.de.ipv4.sixxs.org/
(that is the same address)
(but unfortunately not the right port) 21:59
flussence that one worked...
lizmat lue: artistic license, patches welcome
flussence (but that's a v4 and it seems to just be sixxs' proxy server) 22:00
lue I think I'll leave it and add 'git' as our favorite VCS.
flussence I definitely have working connectivity on my end so... *shrug*
timotimo *groan* 22:01
it appears i've written a { ... } where i meant to write a <?{ ... }
>
dalek ecs: a1c99c7 | duff++ | S99-glossary.pod:
[S99] invocant, pad
timotimo i'm not making it easy for me
22:01 arlinius left
flussence I wish we had something that showed a realtime heatmap of running code, like rxrx does... 22:03
tadzik rxrx? 22:04
timotimo i don't know what that is :(
22:05 snoopy joined 22:06 ggoebel joined, vk left 22:07 ggoebel2 left 22:08 havenwood left
flussence p5 regex debugger thing, there's a demo of it on youtube iirc 22:09
timotimo ooooh 22:10
sorear duff = PerlPilot? 22:11
timotimo i fear the pre-nested-formattingcodes version will run circles around the new version :(
tadzik sorear: I think so
timotimo yeah, it very much so does :(
(0avgtext+0avgdata 397220maxresident)k - when not caring about nestedness
2.6gb resident set size on the other computer which isn't even finished yet 22:12
that's crazy, i'm clearly doing something very wrong.
22:12 snoopy left 22:13 nitestryker left
timotimo fer chrissakes, it's even *wrong* now :| 22:14
FROGGS_ I'd suggest you stop for today :/ 22:17
22:18 nitestryker joined
lizmat inspiration a good night's rest will bring 22:18
timotimo i've identified the mistake that led to this very problem
just 5 more minutes!
tadzik :)
flussence yay 22:19
FROGGS_ okay :o)
timotimo don't think i'll get a 'working' version now, though. 22:20
sorear curious what the mistake was 22:21
timotimo i had <$endtag> <!before '>'>, which i then turned into <$endtag>, where in reality it should have been <!after '>'> <$endtag>
i hope i didn't have to write <!before> there 22:22
my little test case will now be executed.
FROGGS_ I'm goign to bed... gnight
timotimo nope, wrong again
gnite FROGGS_ :)
Array.new(Pod::Block::Named.new(name => "pod", config => ().hash, content => Array.new(Pod::Block::Para.new(config => ().hash, content => Array.new("", Pod::FormattingCode.new(type => "C", config => ().hash, content => Array.new("N<")), ">")))))
nqp: "foo bar" ~~ { $<foo>=['foo'] { say(nqp::chars($<foo>)) } } 22:23
camelia nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near "['foo'] { "␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
timotimo nqp: "foo bar" ~~ rx{ $<foo>=['foo'] { say(nqp::chars($<foo>)) } }
camelia nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 2, near "['foo'] { "␤current instr.: 'panic' pc 14721 (src/stage2/gen/NQPHLL.pir:5232) (src/stage2/gen/NQPHLL.nqp:279)␤»
timotimo nqp: "foo bar" ~~ / $<foo>=['foo'] { say(nqp::chars($<foo>)) } / 22:24
camelia nqp: OUTPUT«3␤»
timotimo hm, weird, that should have been right
22:24 skids joined
timotimo nqp: say("foo bar" ~~ / <!after ' '>bar /) 22:24
camelia nqp: OUTPUT«␤»
timotimo nqp: say("foo bar" ~~ / <!after 'a'>bar /) 22:25
camelia nqp: OUTPUT«bar␤»
timotimo yeah, that should be right
OH 22:28
*OH*
i had a + where a * would have been correct
i'm making *all* the mistakes today. wow.
yet another step towards eventual correctness! wow.
sorear timotimo: are you sure <$endtag> shouldn't be $endtag ? 22:29
<$endtag> means to eval the contents of $endtag as a regex
$endtag is a literal string
I'm not sure you want to be evalling anything in this code
22:30 benabik joined
timotimo i didn't know i could just write $endtag 22:30
thanks!
i bet that will make a big difference in ram usage and speed, too!
22:30 arlinius joined
lizmat inspiration a good night's rest will bring, lizmat repeats 22:31
timotimo no, inspiration an attentive sorear will bring 22:32
dalek ecs: b44c0b1 | (Elizabeth Mattijsen)++ | S99-glossary.pod:
More lemma's and more explanations
timotimo sorear: say, is your fragment code generation working? :)
lizmat takes her own advise, she will& 22:33
timotimo :) good night! 22:34
sorear timotimo: sort of? It does generate code fragments 22:36
timotimo and the verifier supposedly makes sure those fragments will work together like the original did, right? 22:37
22:39 nitestryker left 22:42 tomyan joined
timotimo perl6 --doc=HTML specs/S26-documentation.pod > 68.46s user 0.26s system 99% cpu 1:09.06 total - much better than before, hopefully also correct this time. 22:43
(but still there are mistakes)
sorear timotimo: it chops the function into segments, then modifies each segment so that at each external jump, it generates code to save and restore local variables to an Object[] 22:47
the verifier is needed to get the types so that the correct casts can be generated in the restore
timotimo yeah 22:48
so, does it cause the huge test files to work properly now? :)
sorear no
timotimo aaw
i'm very glad you told me about $foo instead of $<foo> 22:51
er, <$foo>
22:52 tomyan left
sorear makes a big difference huh? 22:52
timotimo yeah
it seems like it uses way less ram, too
probably because each time it had a value it would create a new regex instance/class? 22:53
ooooooh snap! it seems to work! :D 23:01
how is that even possible?!
now to render the whole S26 with this code
tadzik awesome! 23:03
timotimo aaw hell no :( 23:05
it choked on nested formatting codes *again*
23:06 arlinius left
timotimo i changed nothing and thus made it work. i feel good now. 23:10
tadzik: if you have v6 connectivity: [2a02:8071:2909:7b00:5604:a6ff:fe93...n.pod.html 23:14
tadzik I have, but only at $work 23:15
so I can check it out tomorrow :)
I didn't find time to review your patch today, sorry :( 23:16
lue should perhaps look into one of those 6-to-4 things for the time being
timotimo you will only be able if i keep the computer running 23:17
but i can upload the result somewhere
i almost lost my code to cd .. <Return> <Up> <Return> 23:18
where the <Up> pulled in a git reset --hard
tadzik uh
timotimo fortunately i had all changed files open in vim via sftp
23:20 BenGoldberg joined
flussence timotimo: sorry, I think v6 is screwed up on *my* end. Just tried from my server and it worked fine. 23:22
timotimo yeah, i know.
hm, parsing something to keep newlines and spaces in the result isn't implemented yet? 23:23
sorear no ipv6 in the usa
pretty much
timotimo wat. 23:25
23:25 thundergnat joined
flussence hm, maybe it's the 2a02 that confuses it... I see a 2002/16 and 2000/3 on my router so one must be confusing it. 23:26
23:27 btyler left 23:34 pochi joined
timotimo tadzik, flussence: t.h8.lv/S26-documentation.pod.html 23:38
this is ipv4 for you legacy people :) 23:39
flussence the frustrating part is I can get a *ping* response, just not a http one... 23:40
timotimo perhaps the port is blocked for you? 23:41
at least you have a v4 version now to look at my nice output
(hopefully you'll like it)
lue
.oO( s/legacy people/people with LTA ISPs/ , I've set up my linux for IPv6 iirc)
timotimo the hardest part is still before me :| 23:43
making =allow work |:
lue looks good so far. timotimo++
sorear cute
timotimo thanks :) 23:44
flussence timotimo++ # looks much better than where I left s26.html at
tadzik timotimo: cute! 23:45
timotimo it seems like paras will now tend to create contents arrays starting and ending with "" 23:46
did i make a regression that cause dthat?
tadzik no
timotimo and arrays of a single piece of text, is that a regression?
tadzik Twines should always start and end with strings 23:47
timotimo ah, great
tadzik even if those are ""
timotimo it'll be pretty hard to make :allow work properly in conjunction with the code blocks
can i pick your brain a bit on that, tadzik?
tadzik timotimo: yeah, but not today, I'll be sleeping soon :) 23:48
timotimo oh 23:50
just tell me one thing
tadzik ok
timotimo how do i handle =end foobar inside =code blocks?
tadzik you don't
timotimo for example if they are flush with the left side
so the only thing that isn't allowed after a =begin code is =end code at the beginning of a lin?
23:51 cognominal left
tadzik at the same level of indentation 23:51
(as begin)
timotimo right
23:52 cognominal joined
tadzik yep, correct 23:52
timotimo i'll try to go on in that case.
tadzik good knight timotimo :)
timotimo good night tadzik! 23:53
lue would like Pod::To::HTML to indent implicit code blocks in the output like the Pod5 converter does. 23:54
timotimo which are those implicit code blocks again?
lue Indented lines in the middle of a =para or =pod block (S26:861) 23:57
(Not sure if explicit code blocks should do the same, and in any case it shouldn't be too difficult to make CSS fake the indentation anyway) 23:59