»ö« 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.
Mouq p6: grammar G { regex TOP { (<abc>)+ }; regex abc { abc } }; G.parse("abcabc"); .say for @0 00:00
camelia niecza v24-109-g48a8de3: OUTPUT«「abc」␤ abc => 「abc」␤␤「abc」␤ abc => 「abc」␤␤»
..rakudo-parrot 4d8734, rakudo-jvm 4d8734, rakudo-moar 4d8734: OUTPUT«「abc」␤ abc => 「abc」␤ 「abc」␤ abc => 「abc」␤␤»
Mouq fixes that too 00:01
lue Mouq++ 00:02
I'd much prefer if @/ and friends were distinct things, instead of equivalent to @($/), but I guess it's a solution. (Better than two unnecessary bytes per desire to iterate at least) 00:03
dalek kudo/nom: 456f3aa | Mouq++ | src/Perl6/Actions.nqp:
@<h>, @1 mean @$<h>, @$1 and %<h>, %1 mean %$<h>, %$1
00:04
Mouq Not my least cryptic commit message... 00:05
lue I'll be sure to betterify my syngen code once I feel like throwing another half-hour at rakudo compilation :P 00:06
Mouq someone should grep the ecosystem for "for $<" and "for $"\d... 00:10
timotimo++: could you please mention this change in p6weekly? 00:13
timotimo i'm glad you've given me a change to mention :P 00:14
everything else i remember off the top of my head is TimToady's recent contributions
so @<foo> and %<foo> didn't exist so far, yes?
at least in rakudo 00:15
Mouq timotimo: Technically this is mostly his fault ;p
timotimo: They existed, but were equivalent to $<foo>
timotimo ah
00:16 berekuk left
Mouq r: say Date.today() - 7 00:17
camelia rakudo-parrot 4d8734, rakudo-jvm 4d8734, rakudo-moar 4d8734: OUTPUT«2014-02-24␤»
Mouq moar-support landed in panda! 00:18
pretty sure that was this week
timotimo cool
00:23 kaare_ joined
Mouq lue: github.com/lue/pod_vvi/blob/master...ns.pm6#L45 00:23
lue Mouq: yeah, I had a feeling. :) 00:25
00:27 dmol joined
lue Figures I can't use the debugger on Pod::To::HTML :| 00:32
Mouq lue: are you having a problem with "Unknown compilation input 'optimize'"? 00:33
lue Ah, nevermind, I just have to switch around the pod file and the --doc option. For some reason.
Mouq: Illegal option --doc
Mouq Oh. I was getting that on test files with BEGINs in them
Cool :) 00:34
00:34 Pleiades` left
lue ... and switching them around does nothing. Great. 00:34
$ perl6-debug-m ../specs/S26*pod6 --doc=HTML
>>> LOADING ../specs/S26-documentation.pod6
$
Mouq lue: Doesn't that call S26.pod6 with the option --doc=HTML? 00:35
00:35 dmol left, Pleiades` joined
lue probably would. But -debug-m won't accept a starting --doc 00:35
lue just realized why the debug say he was trying to use (before trying the debugger) probably wasn't printing to screen :P 00:36
00:37 virtualsue joined, virtualsue left
lue I see what's happening, "NEL" isn't actually a unicode name. 00:37
It's only got a unicode 1.0 name, and even then it likely doesn't mean the "\n" you want. 00:39
BenGoldberg rn: say "\c[NEL]" 00:40
lue (U+0085 has the name "NEW LINE (NEL)", the closest match it seems)
camelia rakudo-parrot 456f3a, rakudo-jvm 456f3a, rakudo-moar 456f3a: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unrecognized character name NEL␤at /tmp/tmpfile:1␤------> say "\c[NEL⏏]"␤»
..niecza v24-109-g48a8de3: OUTPUT«␤»
BenGoldberg rn: say "\c[NEW LINE (NEL)]"
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Unrecognized character name NEW LINE (NEL) at /tmp/tmpfile line 1:␤------> say "\c[NEW LINE (NEL)⏏]"␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting …»
..rakudo-parrot 456f3a, rakudo-jvm 456f3a, rakudo-moar 456f3a: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unrecognized character name NEW LINE (NEL)␤at /tmp/tmpfile:1␤------> say "\c[NEW LINE (NEL)⏏]"␤»
BenGoldberg rn: say "\c[NEW LINE]" 00:41
camelia niecza v24-109-g48a8de3: OUTPUT«===SORRY!===␤␤Unrecognized character name NEW LINE at /tmp/tmpfile line 1:␤------> say "\c[NEW LINE⏏]"␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (d…»
..rakudo-parrot 456f3a, rakudo-jvm 456f3a, rakudo-moar 456f3a: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unrecognized character name NEW LINE␤at /tmp/tmpfile:1␤------> say "\c[NEW LINE⏏]"␤»
lue "NEL" and "NEXT LINE" are aliases for U+0085 , not the actual name. "NEXT LINE (NEL)" is the Unicode 1.0 name. It has no current Unicode name. 00:42
Mouq is both happy and annoyed that this super-hyped snow storm has missed us completely 00:43
geekosaur heh. we got the start of our hyped snowstorm and then it petered out early 00:44
Mouq "Don't expect school Monday and Tuesday", "Worst snowstorm of the season!" 00:45
-_-
lue r: say "\c[NL]Hello!" 00:46
camelia rakudo-parrot 456f3a, rakudo-jvm 456f3a, rakudo-moar 456f3a: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unrecognized character name NL␤at /tmp/tmpfile:1␤------> say "\c[NL⏏]Hello!"␤»
00:54 pippo left 00:55 rurban left, pippo joined 00:57 pippo left 00:58 spider-mario left 01:01 hoverboard left, colomon left 01:04 rurban joined 01:08 xenoterracide left
dalek ecs: 35e12b4 | lue++ | S26-documentation.pod:
Change E<NEL> to E<0x85>

Currently errors on rakudo. NEL is in reality an alias for a codepoint without a current Unicode name, U+0085. Since it's unclear if such aliases are supposed to work, for now play it safe.
01:17
c: f189ac4 | Mouq++ | htmlify.pl:
Make origin links point to #infix_*, fix search
01:23
Mouq updates doc.perl6.org 01:24
01:25 rurban left
lue wonders how long it'll be before perlcabal.org/syn and feather.perl6.nl/syn have the cool stylings of doc.perl6.org :) 01:28
Mouq github.com/perl6/Pod-To-HTML/commit/41db0 lue++ though I don't feel like this should be Pod::To::HTML's job 01:31
01:31 colomon joined
lue Mouq: there's no standard rule to match any kind of number, and convert it to decimal for you, so far as I know. 01:32
(though it would perhaps be nice if the rakudo side converted E<> things for you...) 01:33
Mouq lue: the latter is what I mean 01:34
lue: Though I'm not sure what to in the case of E<apos> etc
lue Like <somebody> said, at this point Rakudo's side needs to be founded on AST nodes, instead of building the collection of classes itself. E<> stuff is a perfect example of how ASTyness would be helpful. 01:35
Mouq: E<> is supposed to handle HTML entities, regardless of your chosen backend.
s/backend/generator/, to be clearer 01:36
Mouq perl6 --doc -e'=pod E<apos>' 01:37
apos
:|
lue: So what is desired behaviour there?
lue Output an apostrophe, clearly :)
(E<> definitely needs to be processed by rakudo, rather than backends) 01:38
::HTML happens to luck out with HTML entities, but ::Man and ::TeX and etc. would need to handle it similarly to how Rakudo would.
(if Rakudo didn't handle it, that is)
Mouq So rather than Pod::FormattingCode.new(type => "E", content => Array.new("apos")), you think it should be Pod::FormattingCode.new(type => "E", content => Array.new("'")) or Pod::FormattingCode.new(type => "E", content => "'")? 01:40
And then Pod::To::HTML can escape it itself?
lue Mouq: maybe? This is why ASTs would be better perhaps; it would be just another "plain text" node, perhaps with an attribute saying "special char; may need to handle this" 01:41
Mouq (with special casing for Pod::FormattingCode.new(type => "E", content => "\n") -> "<br/>"
)
lue But I definitely think it's detrimental to have every Pod backend implement E<> processing.
Mouq lue: And I'm not sure what you mean by AST 01:47
lue: What I've been saying about AST is that Perl6 should parse the code and generate an AST that builds the Pod at runtime, instead of compiletime 01:48
lue: But I'm not sure if you mean something completely different
lue Well, someone (I think tadzik) mentioned a while ago that perhaps the Pod parser in Rakudo should build a more QAST-ish structure, as opposed to the tree of Pod:: stuff it does now. (essentially, a tree of nodes that builds the Pod tree, instead of building the pod tree outright) 01:49
01:49 hoverboard joined
Mouq But the final output ($=pod and whatever's handed to Pod::To::*) would still be a tree of Pod:: stuff? 01:51
or do I misunderstand?
because I don't see a way around that
lue I forget what the specific issue was that gave rise to the idea, but presumably $=pod would hold the pod. 01:52
01:55 araujo left, araujo joined
lue Mouq: it came up while discussing M<> , and the person making the suggestion was you rather :) 02:02
Mouq: from S26: "By default, once the DOC INIT phase is complete, the interpreter then calls a special default DOC INIT block that walks the AST and generates the documentation, guided by the content of the $?DOC hint, the $=pod tree, and any DOC blocks that have loaded Pod-related handler code." 02:04
Sadly the "How Pod is parsed and processed" section doesn't seem to mention anything by way of processing *another* file's Pod from a Perl 6 script :/ 02:06
Mouq EVAL( $slurp ~ "\n$=pod")[0] :P 02:07
Which should really be like use File; File.pod or something
dalek ast: d429f6e | larry++ | S05-mass/properties-derived.t:
for <:Common> pick char with that property, duh
lue Mouq: too bad we can't have something like DOC import "../docs/file.pod6" :/ 02:14
02:14 JimmyZ left, JimmyZ joined
lue I'd much prefer something like $~Pod.parsefile("foo.pod6") actually 02:14
This is the first time I've run syngen all the way through post-flattening-patches on MoarVM, and it took 2098 seconds, a significantly worse time than the ≈1230s I had before :( Don't know what caused it though. 02:21
02:22 LooneyLemur left 02:24 klapperl_ left 02:27 klapperl joined 02:30 Sqirrel_ left 02:31 Sqirrel joined
TimToady p6: say so "〣" ~~ /<:NumericValue(3)>/ 02:38
camelia niecza v24-109-g48a8de3: OUTPUT«True␤»
..rakudo-parrot 456f3a, rakudo-jvm 456f3a, rakudo-moar 456f3a: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/tmpfile:1␤------> say so "〣" ~~ /<:NumericValue[33…»
TimToady wow, there's nothing in roast about that sort of thing 02:39
02:44 __thou left, alc joined 03:06 xenoterracide joined 03:08 jnap left
skids r: =head1 foo$=pod.say # Hrm evalbot won't take U+0085 as an inline line separator; this works on CLI 03:12
camelia ( no output )
03:24 fridim__ left 03:39 hoverboard left
Mouq r: =head1 foo$=pod.say 03:52
camelia ( no output )
Mouq r: =head1 foo$=pod.say
camelia rakudo-parrot 456f3a, rakudo-jvm 456f3a, rakudo-moar 456f3a: OUTPUT«Pod::Heading("level" => "1").hash␤ Pod::Block::Para␤ foo␤␤»
Mouq skids: ^^
04:00 laidback_01 joined 04:04 rurban joined 04:05 hoverboard joined 04:09 jnap joined
Mouq .ask smls What font is used in imgur.com/a/y1dHo ? It looks like Helvetica or Arial but not quite... 04:09
yoleaux Mouq: I'll pass your message to smls.
Mouq And definitely not either 04:10
04:13 jnap left
Mouq .tell smls And I can't say how much I love the mockup btw. I hope you don't mind if I've done the smallest amount of work getting the docs to look like it. The only thing I note on it is that Routine may need to be broken up into sub-categories 04:16
yoleaux Mouq: I'll pass your message to smls.
04:17 xinming left 04:20 xinming joined 04:35 xinming left 04:39 hoverboard is now known as muchbacon 04:40 xenoterracide left 04:41 xinming joined 04:42 muchbacon is now known as hoverboard
skids Mouq: thanks. Wonder why it needs two. 04:43
04:43 itz joined
Mouq skids: Because =alpha will take keep going until it meets a blank line or another =pod declaration 04:44
skids Was trying to test Module::{$=pod} but that seems not functional. Also no way to test on evalbot without pod in an available module in base install. Maybe Pod::To:Text could use some dogfooding.
Mouq: well on star 2014-01 one works. 04:45
04:46 itz_ joined 04:49 vinian joined, vinian left
Mouq r: say "\x[85]" ~~ /\r\n/ 04:51
camelia rakudo-parrot 456f3a, rakudo-jvm 456f3a, rakudo-moar 456f3a: OUTPUT«Nil␤»
Mouq Pretty sure that's why. 04:52
04:52 vinian joined
Mouq It wanted to parse it such that it needed two, but it messed up with the \x[85] because of its outdated use of \r, I'm pretty sure 04:53
star: =head1 foo␤$=pod.say 04:54
camelia star 2013-09: OUTPUT«Pod::Heading("level" => "1").hash␤ Pod::Block::Para␤ foo␤␤»
Mouq No?
Humbug
Well, I'm 99% certain that its current behavior is spec
Pod thinks in terms of paragraphs, foo␤$=pod.say is a paragraph to it 04:56
lue yeah, $=pod.say should be part of the header in that star: line 04:57
Mouq p6: grammar Foo { token TOP { <a>* }; proto token a { ab {*} }; token a:sym<c> { <sym> }; token a:sym<d> { <sym> }; }; Foo.parse('abcabdabdabc').say # Can this work pretty please? 04:58
camelia niecza v24-109-g48a8de3: OUTPUT«「abcabdabdabc」␤ a => 「abc」␤ a => 「abd」␤ a => 「abd」␤ a => 「abc」␤␤» 04:59
..rakudo-parrot 456f3a, rakudo-jvm 456f3a, rakudo-moar 456f3a: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Proto regex body must be {*} (or <*> or <...>, which are deprecated)␤at /tmp/tmpfile:1␤------> n TOP { <a>* }; proto token a { ab {*} }[3…»
Mouq Niecza++
lue that {*} should rather be <...> I think, at least according to the rakudo grammar
Mouq lue: "(or <*> or <...>, which are deprecated)" :) 05:00
lue Eh. I think {*} looks too much like a useless closure for my tastes.
Mouq lue: Perhaps, but it echos the spirit of {*} in regular routines 05:01
lue yeah, but I think <...> is more to the spirit of regexes :)
05:09 jnap joined
TimToady <...> is supposed to be {*} nowadays 05:11
skids Mouq: I think the current behavior is spec, yes.
TimToady <...> is a fossil
lue TimToady: is <*> fossily too? 05:12
TimToady first I've heard of <*>
<*foo> is supposed to mean something else entirely 05:13
05:14 jnap left
skids
.oO(U+2029 is a "paragraph separator." Bother.)
05:14
TimToady you don't like paragraphs?
skids No just wondering what pod should do with it. 05:15
lue treat it as a paragraph separator, of course :)
skids Kinda hard to test given linux console just puts a space there when you type it. 05:16
05:21 [Sno] left 05:48 rurban left
dalek kudo/nom: 8f8ac8e | Mouq++ | lib/Pod/To/Text.pm:
[Pod::To::Text] support nested items
05:51
Mouq (^because: dogfooding^)
TimToady oh, oh, we have 666 entries on RC 05:53
06:20 darutoko joined 06:42 alc left 06:46 kurahaupo_mobile left 06:51 [Sno] joined 06:53 BenGoldberg left 06:57 pdcawley left 06:58 pdcawley joined, dayangkun joined 07:08 dayangkun left 07:31 xenoterracide joined 07:36 dmol joined 07:47 berekuk joined 07:48 Alina-malina left 07:49 Alina-malina joined 07:54 kaleem joined 07:59 FROGGS joined 08:01 berekuk left 08:05 berekuk joined 08:11 kaleem left, kaleem joined 08:12 zakharyas joined 08:14 kbaker joined 08:17 kaleem left, kaleem joined 08:23 kbaker left 08:25 darutoko- joined, salv0 joined 08:27 darutoko left 08:28 kaleem left, Ven joined 08:29 darutoko- left 08:30 kaleem joined, berekuk left 08:40 pdcawley left, hoverboard left 08:41 pdcawley joined 09:01 vinian left
dalek kudo/nom: 3333a41 | Mouq++ | src/ (3 files):
Parse and store Pod FormattingCode info in @.meta

This works in conjunction with an updating commit to Pod::To::HTML
09:05
Mouq is pretty happy that Just Worked after he finally got the parsing correct. Corresponding ::HTML commit: github.com/perl6/Pod-To-HTML/commit/bbdfc 09:16
moritz Mouq++ 09:17
09:22 fhelmberger joined
Ven Mouq: can't you do something like `my @meta := $<meta>.map: {~*}` or something ? 09:33
Ven is needlessly golfing 09:34
Mouq Ven: Where?
In the NQP?
Ven yes
does nqp not support that ?
Mouq Not so much...
It could be golfed to `my @meta := []; @meta.push($_) for $<meta>`, but if you need to debug that gets annoying 09:35
*push(~$_) 09:36
Actually... why does that work?
moritz why wouldn't it work?
Mouq r: =pod L<thing|perl6.org/>␤␤say $=pod[0].contents[0].meta[0].WHAT 09:39
camelia rakudo-parrot 3333a4, rakudo-jvm 3333a4, rakudo-moar 3333a4: OUTPUT«No such method 'contents' for invocant of type 'Pod::Block::Named'␤ in block at /tmp/tmpfile:3␤␤»
09:40 xinming_ joined
Mouq r: =pod L<thing|perl6.org/>␤␤say $=pod[0].content[0].meta[0].WHAT 09:40
camelia rakudo-parrot 3333a4, rakudo-jvm 3333a4, rakudo-moar 3333a4: OUTPUT«No such method 'meta' for invocant of type 'Pod::Block::Para'␤ in block at /tmp/tmpfile:3␤␤»
Mouq Bluh
r: =pod L<thing|perl6.org/>␤␤say $=pod[0].content[0].content[0].meta[0].WHAT
camelia rakudo-parrot 3333a4, rakudo-jvm 3333a4, rakudo-moar 3333a4: OUTPUT«No such method 'meta' for invocant of type 'Str'␤ in block at /tmp/tmpfile:3␤␤»
Mouq -_- 09:41
r: =pod L<thing|perl6.org/>␤␤say $=pod[0].perl
camelia rakudo-parrot 3333a4, rakudo-jvm 3333a4, rakudo-moar 3333a4: OUTPUT«Pod::Block::Named.new(name => "pod", config => ().hash, content => Array.new(Pod::Block::Para.new(config => ().hash, content => Array.new("", Pod::FormattingCode.new(type => "L", meta => Array.new("perl6.org/…»
Mouq r: =pod L<thing|perl6.org/>␤␤say $=pod[0].content[0].content[1].meta[0].WHAT
camelia rakudo-parrot 3333a4, rakudo-jvm 3333a4, rakudo-moar 3333a4: OUTPUT«(Str)␤»
Mouq Weird
moritz what would you expect it to be?
timotimo o/ 09:42
moritz \o timotimo
Mouq moritz: Not sure, but it's not being serialized like the rest of the code does to strings 09:43
09:43 xinming left
Mouq \o 09:43
dalek kudo/nom: 6479fff | Mouq++ | src/Perl6/Actions.nqp:
Serialize strings being put in Pod::FormattingCode.meta
09:45
09:51 dakkar joined
timotimo i'm now looking through the git commit logs to find things to put into the p6weekly 09:52
feel free to point out anything i might miss
dalek kudo/nom: ed13bb1 | Mouq++ | src/Perl6/Grammar.nqp:
Pod definitions are semicolon delimited
09:53
09:54 kbaker joined 09:57 telex left 09:58 telex joined
dalek c: 9da5a03 | Mouq++ | htmlify.pl:
Fix htmlify.pl for the latest Rakudo
10:05
timotimo r: say [<a b c>] Z=> <1 2 3>; 10:07
camelia rakudo-parrot 3333a4, rakudo-jvm 3333a4, rakudo-moar 3333a4: OUTPUT«["a", "b", "c"] => "1"␤»
timotimo good
r: say [1, 2].WHAT 10:08
camelia rakudo-parrot 3333a4, rakudo-jvm 3333a4, rakudo-moar 3333a4: OUTPUT«(Array)␤»
FROGGS timotimo: TimToady++ has probably fixed >60 spectests for perl6-m about unicode properties, so we are down to 71 failures as of yesterday 10:09
nwc10 where is the JVM?
FROGGS timotimo: dunno if you have mentioned it already, panda now supports moar as well 10:10
4 rakudo.jvm 2014-03-02 100.00% 39214ef 28979 5 610 1505 31099 28579
5 rakudo.moar 2014-03-02 99.83% 39214ef 28931 71 577 1334 30913 28579
6 rakudo.parrot 2014-03-02 99.59% 39214ef 28859 64 595 1395 30913 28579
parrot should be clean in today's run
nwc10 so Moar is 48 behind JVM? 10:11
FROGGS sort of
nwc10 but Parrot has the only star.
FROGGS it is quite possible that tests are fudged on jvm that work on moar and vice versa
masak good antenoon, #perl6
FROGGS hi masak 10:12
timotimo tro
er.
FROGGS: how deep does the moar support go?
can i just go around and perl6-m rebootstrap.pl and panda my::favourite::module? 10:13
FROGGS timotimo: yes
timotimo i'll surely mention that
FROGGS but you might want to mention that there are two known precomp bugs that break modules like URI
maybe it is just one bug, I dunno 10:14
timotimo yeah
FROGGS I am working hard on the S11 stuff if you want to put that in 10:15
timotimo rakudo-parrot should get back up to 99.72%, right?
dalek kudo/nom: f3cf9d5 | Mouq++ | src/Perl6/Grammar.nqp:
Allow any amount of content in C<code> etc
10:16
FROGGS p: say (28859+64) / 28979
camelia rakudo-parrot 3333a4: OUTPUT«0.998068␤»
timotimo i should also mention that if we were to run the moar-conc branches for the daily spectest runs, we would be getting even more passes.
FROGGS yes
and when it is merged we can tick some boxes here: perl6.org/compilers/features 10:17
which is very nice :o)
timotimo \o/
FROGGS: i'd like to link to the "experimental S11", where do i find that? 10:23
FROGGS rakudo/eleven and panda/eleven 10:24
timotimo i meant the spec document :)
FROGGS and perhaps link to the S11 spec as well, it fits almost the implementation I think :o)
timotimo oh, that's in specs/master?
cool.
FROGGS yes
maybe link directly to perlcabal.org/syn/S11.html#Versioning 10:25
timotimo yes
FROGGS did I mention that I love the way you can invoke `panda-m --auth=github:tadzik install Foo` ? 10:26
timotimo oooh :)
FROGGS (you can even invoke scripts from different dists that install binaries under the same name) 10:27
like Foo and Blurb provide a bar2baz script 10:28
you will end up with bar2baz-m bar2baz-p and bar2baz-j, and to invoke the correct script you can do: bar2baz-m --name=Blurb <args for bar2baz here> 10:29
timotimo that already works? o_O
FROGGS I've not tested it for some weeks but it should still work, yes 10:30
timotimo oh wow!
i didn't even realize!
FROGGS only on linux though, I still need to write down the windows wrapper script
timotimo yeah
what a drag ;) 10:31
FROGGS :o)
Mouq FROGGS++
FROGGS thanks :o)
timotimo finally some breakfast \o/ 10:32
Mouq FROGGS: Does =NAME and so on work?
FROGGS ahh, and I need to think about a File::DistDir alike so that a module can load its shared data files
Mouq: you mean how a CU specifies its metadata? 10:33
Mouq FROGGS: mmhm
FROGGS no, I think that is not handled yet 10:34
I just cared about what happens when you install a distribution
Mouq FROGGS: Ok, it just caught my eye :)
FROGGS at that time you already have a META.info where everything should be included
so, some day we need a tool that bundles a bunch of files for release, perhaps creating the META.info on its own 10:35
10:39 darutoko joined
timotimo is that what perl5ers use Dist::Zilla for? 10:40
FROGGS but this tool is probably a combination of a local installed toolchain and a proper dist upload server 10:41
timotimo: sounds like, I only used Module::Build
dalek ecs/pod6ify: f2f6e3b | Mouq++ | S26-documentation.pod6:
[S26] This won't work without explicit code block
10:43
Mouq Oop. Should probably be on master
dalek ecs: 39866b1 | Mouq++ | S26-documentation.pod:
[S26] This won't work without explicit code block
10:45
Mouq Much better. o/ #perl6 10:46
timotimo o/ Mouq 10:47
FROGGS ciao Mouq 10:48
10:52 Mouq left 11:07 xenoterracide left 11:08 denisboyun joined 11:17 xenoterracide joined
colomon masak: ADT started failing overnight, Test::CSV still failing 11:28
CSS::Grammer started failing overnight
timotimo: ADT failed overnight
masak: meant Druid, not ADT, for you. :) 11:29
timotimo colomon: oh noes :( 11:34
it's tough being a module author
even tougher since i don't have any users, at least to my knowledge 11:35
colomon on the bright side, your module is pretty cool
timotimo what a relief :) 11:40
i appreciate the notifications in any case
it's slightly annoying to have a module that needs fixing every now and then, but it'd be much worse to have a module that silently fails as soon as someone tries it out 11:41
tadzik lue: (Pod in QAST) no :) 11:42
11:42 xenoterracide left
tadzik actually, I did extra effort to do it the way it's done now, and I think it's the right way to do that 11:42
timotimo tadzik o/ 11:43
you got a favourite thing i should add to this week's p6weekly?
tadzik \o
colomon o/ 11:44
colomon wonders if anyone else has tried installing File::Find on moar
tadzik timotimo: other than panda on moar? :)
colomon: I usually don't since updating modules that are panda deps usually breaks panda :|
timotimo tadzik: already in :) 11:45
colomon tadzik: emmentaler does it, and emmentaler / panda completely break when it does
tadzik oh, but it installs it to a different location, not updates the existing one 11:47
that should work, let's see
or am I one of those lucky fellas who can't connect to feather:3000?
...yes 11:48
colomon tadzik: I poked around the issue a bunch the other day.
tadzik IO::Socket::INET.new(:host<feather.perl6.nl>, :port(3000)) hangs for me
(on moar)
let's see if the update helps 11:49
colomon tadzik: for what it's worth, I think it's a moar bug and not a panda bug. 11:53
tadzik it is 11:54
lucky for me :D
ok, the bug is still there in the latest moar (for me)
timotimo aaow :( 11:55
aaw*
12:09 dmol left
masak colomon: thank you for the reports. 12:10
I looked into Text::CSV, but I couldn't identify the problem quickly. it seems parsing-related.
colomon tadzik: what it looks like is happening is File::Find installs (this is with pandabrew/bin/pandabrew panda install File::Find, but the same error comes from emmentaler), then when it wants to clean up the install process it calls rm_rf (Shell::Command) which in turn calls find (File::Find) and when that call is made, it bombs out with an illegal opcode. 12:12
tadzik huh 12:14
as if it indeed overwrote the original File::Find, and re-loaded it somehow?
colomon yeah, that's what it seems like, and that's why I suspect a Moar bug 12:16
it's not even supposed to be possible to trigger a re-load, is it?
tadzik to my knowledge, no 12:17
colomon once it happens, panda is completely borked until you rebootstrap it
12:18 colomon left 12:22 bluescreen10 joined 12:24 colomon joined
masak this is pretty big: perltricks.com/article/72/2014/2/24...signatures 12:28
tadzik it is 12:29
nwc10 that article is more accurate now than when it was first published.
but "PerlTricks.com and the authors make no representations or warranties with respect to the accuracy or completeness of the contents of all work on this website and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended. The advice and strategies published on this website may not be suitable for every situation. All work on this website is provided with
so that's OK. 12:30
FROGGS cool (sub sigs)++ 12:33
12:33 xenoterracide joined
Ven so it took them as much time as perl 6 to mature that much :p 12:33
masak Ven: yes, but don't ridicule them too much for that. they have other constraints than Perl 6 does. 12:35
Ven masak: well, that's the point. It's ridicule to have *that much constraints*. I don't even know how they can move 12:36
FROGGS let's just agree that we are happy to have signatures in Perl 5 as well, because we love Perl 5, okay? :o)
masak what FROGGS said.
nwc10 If you move too far and break their code, your userbase doesn't come with you: alexgaynor.net/2013/dec/30/about-python-3/ 12:37
masak I'm not here to dump on Perl 5. those guys are doing an amazing job.
FROGGS exactly (both of your sentences)
12:37 xenoterracide left
masak the more I'm involved in the Perl community, the more respect I have for Perl 5. 12:37
the fact that Perl 6 is an awesome vision doesn't change the fact that (size-wise), we're the Rebels to Perl 5's Empire. 12:38
12:40 spider-mario joined
Ven maybe perl got the "urge to move" stance a bit better? 12:41
s/perl/the ruby community/ # duh
masak Ven: I'm not following what you're saying. 12:43
Ven masak: from what I've seen in the community, the 1.9 had a nice list of breaking change (certainly not as much as perl 6 and probably less than py3), but people have been prompt to upgrade 12:44
masak Ven: that sounds quite likely to me. 12:45
Ven: maybe there is even some measure of "entrenched"-ness along which Ruby is much less affected than either Python or Perl.
Ven masak: maybe we're just hipsters who try the new things instantly :p 12:46
masak Ven: seriously though, I think it's connected to how much code you already have that'll break. 12:47
Ven: also possibly connected to how good test coverage you have.
Ven masak: that's why php people don't do any breaking change -- they don't have test </troll -- I'm sure that's not true>
masak: but I guess it works much better if, instead of a big list of breaking changes 12:48
masak: you just break little things over time. Less things to fix in one time, you're not "left behind" 12:49
masak yeah. 12:51
or even "of course" :)
12:51 colomon left 12:53 skids left
masak someone please remind me, what is the undocumented grammar debugging feature in Rakudo again? 12:53
tadzik <?DEBUG(1)> I think
masak thank you.
hm, no; doesn't work. 12:54
tadzik hm 12:55
bah, google sucks for searching irc log 12:56
and I can't find it with normal search either :( 12:57
12:58 rindolf joined
masak I tried doing 'git grep' in the Rakudo source, but I came up blank, too. 12:58
moritz that would be an NQP feature 12:59
but also there git grep --word DEBUG comes up empty
masak: there's a --rxtrace command line option, and $grammar.HOW.trace-on($grammer) 13:00
13:03 virtualsue joined
masak moritz: thank you. 13:03
ahaha. --rxtrace traces the parse of my *program*, not my input. :D 13:04
moritz yes :-)
for your own grammars, you have the grammar object available :-)
masak ===SORRY!=== 13:05
No such method 'trace-on' for invocant of type 'Perl6::Metamodel::GrammarHOW'
:/
13:05 BenGoldberg joined
masak guessing this is an NQP feature, too... 13:05
tadzik why not Grammar::Debugger? 13:06
or Grammar::Tracer?
moritz ah yes, it's from src/how/NQPClassHOW.nqp
13:07 vinian joined, vinian left
masak tadzik: because I tried it on Friday and discovered it's busted. 13:07
tadzik: gist.github.com/masak/eccadc58b72cd32f720e
tadzik: I don't know if it's busted gloablly on all Rakudo backends, or just on Moar. 13:08
13:10 DarthGandalf joined, darutoko left, xenoterracide joined 13:11 benabik left
moritz masak: is the tracer also busted? 13:13
masak good question. 13:15
masak checks 13:16
no... it's not busted! 13:17
moritz++
[Coke] moritz++ - i cannot recall the last time I tried to run anything long running on feather. 13:27
timotimo: TOO MANY SECRETS!
13:29 dayangkun joined, cooper joined 13:30 regreg joined 13:32 Grrrr joined
masak has anyone ever used the same action class for several successive parses before? 13:33
it never occurred to me until now, when I needed it. 13:34
13:34 frettled joined
masak by the way, if your DSL is line-based... make the grammar parse a single line, not the whole input. much easier. 13:35
moritz masak: I haven't 13:38
13:39 TimToady joined 13:41 frettled left
masak moritz: shouldn't be a problem at all, and it even motivates having an actions object *more* than for just one parse. 13:41
(because I can keep encapsulated, persistent state between parses) 13:42
13:44 virtualsue left 13:45 virtualsue joined 13:46 darutoko joined 13:53 xenoterracide left
moritz agreed 13:53
and it's likely faster :-)
13:54 virtualsue left 13:55 xenoterracide joined 13:56 virtualsue joined, camelia joined 13:58 ChanServ sets mode: +v camelia 13:59 kivutar joined, regreg left 14:01 frettled joined 14:06 regreg joined 14:08 colomon joined
Ven r: sub a { $a = -> { say 'hi'; return; } $a(); say 'hello' }; a(); 14:11
14:11 ajr joined
camelia rakudo-parrot f3cf9d, rakudo-jvm f3cf9d, rakudo-moar f3cf9d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$a' is not declared␤at /tmp/tmpfile:1␤------> sub a { $a⏏ = -> { say 'hi'; return; } $a(); say 'h␤ expectin…» 14:11
Ven r: sub a { $a = -> { say 'hi'; return; }; $a(); say 'hello' }; a();
camelia rakudo-parrot f3cf9d, rakudo-jvm f3cf9d, rakudo-moar f3cf9d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Variable '$a' is not declared␤at /tmp/tmpfile:1␤------> sub a { $a⏏ = -> { say 'hi'; return; }; $a(); say '␤ expectin…»
Ven r: sub a { my $a = -> { say 'hi'; return; }; $a(); say 'hello' }; a(); 14:12
camelia rakudo-parrot f3cf9d, rakudo-jvm f3cf9d, rakudo-moar f3cf9d: OUTPUT«hi␤»
14:12 ajr is now known as Guest26568
Ven So, I got that right. Seems pretty surprising to me 14:12
but it makes sense if you think about it : `if a {}` is `if a -> {}`
so I guess you need that behavior 14:13
14:15 xragnar_ joined, xragnar left, xragnar_ is now known as xragnar 14:16 xenoterracide left 14:17 Guest26568 is now known as ajr_ 14:21 pmurias joined
pmurias lue, Mouq: shouldn't it be possible to turn most of the E<...> escapes into regular unicode characters? (so that the backends will just get regular text) 14:22
tadzik ahahaha 14:24
Perl is great at unicode
imgur.com/uwpTZXc 14:28
[Coke] wonders if anyone here has been infected with the Happy songvirus.
tadzik maybe it's just not great at fonts :P
14:28 skids joined
tadzik there's a Happy songvirus? 14:29
14:29 rurban joined
[Coke] hurls 24hoursofhappy.com 14:32
14:32 rurban1 joined
FROGGS tadzik: my name was written correctly :P 14:32
tadzik lucky you :P 14:33
[Coke] it's a 4 minute song, there's a 24 hour music video of it on loop, each time with someone else dancing. (except the artist who shows up every hour on the hour.) (also an official video out there somewhere which is cut from the longer one.)
tadzik quoting YAPC::EU (or was that YAPC::NA?) organizers: „We love Unicode, we just don't use it” :P
14:34 rurban left
tadzik anyway, it's very nice to get an actual mail sometimes, I usually only get spam and invoices 14:34
FROGGS yeah :/
four times a year I get the german perl magazine, which is nice :o)
tadzik I'm thinking about setting up a camera and a speaker inside my mailbox
FROGGS *g*
tadzik so whenever I see a leaflet tumbling in, I can shout "take your spam someplace else, you moran!"
moritz with 200W speakers please :-) 14:35
tadzik :D 14:36
I'd have trouble keepint it powered, even if it was 2W
FROGGS I'd send you a Howler then, and then they would shout at each other :o)
tadzik might be tricky to provide power for the mailbox in a block of flats 14:37
haha
14:37 rurban1 left
moritz power via laser! 14:38
FROGGS "power" 14:39
moritz with sufficiently high power, you might even module the laser beam directly, and create a plasma that acts as a speaker 14:42
FROGGS guys, do we want to create a Perl 6 Marketplace? 14:49
[Coke] Marketplace?
FROGGS like a nice frontend for panda, with ads of new uploads on shiny pictures? 14:50
[Coke]: like the ubuntu software center, if you know that
i1-news.softpedia-static.com/images...ines-2.jpg 14:51
(my eclipse has a marketplace now, this is why I thought we should have that too)
14:59 Ven left 15:01 xinming joined 15:02 xinming_ left 15:04 __thou joined 15:08 rurban joined 15:13 rurban left 15:17 bluescreen10 left
masak r: sub a { return { return } }; a()() 15:18
camelia rakudo-moar f3cf9d: OUTPUT«Attempt to return outside of any Routine␤ in block at src/gen/m-CORE.setting:581␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm f3cf9d: OUTPUT«Attempt to return outside of any Routine␤ in block at gen/jvm/CORE.setting:581␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot f3cf9d: OUTPUT«Attempt to return outside of any Routine␤ in block at gen/parrot/CORE.setting:582␤ in block at /tmp/tmpfile:1␤␤»
masak \o/
you can't return a block which returns from the routine you returned the block from... you silly. :) 15:19
15:22 SHODAN joined
TimToady r: sub b { say "HERE"; sub a { return { return } }; a()(); say "THERE" }; b() 15:24
camelia rakudo-moar f3cf9d: OUTPUT«HERE␤Attempt to return outside of any Routine␤ in block at src/gen/m-CORE.setting:581␤ in sub b at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-parrot f3cf9d: OUTPUT«HERE␤Attempt to return outside of any Routine␤ in block at gen/parrot/CORE.setting:582␤ in sub b at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm f3cf9d: OUTPUT«HERE␤Attempt to return outside of any Routine␤ in block at gen/jvm/CORE.setting:581␤ in sub b at /tmp/tmpfile:1␤ in block at /tmp/tmpfile:1␤␤»
TimToady but it's not outside a Routine :P 15:25
so that message is a bit LTA
masak TimToady: what would you like it to be?
15:25 kaleem left
masak "outside of its bound Routine"? 15:25
TimToady more like "Cannot return from the routine I was defined in because we already exited it" 15:26
but, some indication of a lexotic failure
even "Attempt to return outside my Routine" would be in improvement
masak 'my' might be mistakenly understood as 'my declaration'. 15:28
TimToady "my routine is not currently active, so how can I return from it?
masak illegal return / the routine I am bound to / already returned 15:29
TimToady :D
cannot return now / the routine I am part of / already returned 15:31
cannot return now / the routine I am part of / already did so 15:32
PerlJam likes masak's version 15:33
TimToady though "bound to" is not bad, other than the overloadings 15:34
it does indicate deep relationship
BenGoldberg r: sub b { say "ONE"; sub a { say "TWO"; return { say "THREE"; return } } }; sub c($a) { say "FOUR"; $a(); say "FIVE" }; say c(b()); say "SIX";
camelia rakudo-parrot f3cf9d, rakudo-jvm f3cf9d, rakudo-moar f3cf9d: OUTPUT«ONE␤FOUR␤TWO␤FIVE␤True␤SIX␤»
BenGoldberg r: sub b { say "ONE"; sub a { say "TWO"; return { say "THREE"; return } } }; sub c($a) { say "FOUR"; say $a()(); say "FIVE" }; say c(b()) 15:36
camelia rakudo-parrot f3cf9d: OUTPUT«ONE␤FOUR␤TWO␤THREE␤Attempt to return outside of any Routine␤ in block at gen/parrot/CORE.setting:582␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-moar f3cf9d: OUTPUT«ONE␤FOUR␤TWO␤THREE␤Attempt to return outside of any Routine␤ in block at src/gen/m-CORE.setting:581␤ in block at /tmp/tmpfile:1␤␤»
..rakudo-jvm f3cf9d: OUTPUT«ONE␤FOUR␤TWO␤THREE␤Attempt to return outside of any Routine␤ in block at gen/jvm/CORE.setting:581␤ in block at /tmp/tmpfile:1␤␤»
TimToady the routine I belong to, maybe
masak I dunno, I think of it as a binding.
that's why it still attempts to return from the *original* function, even when the block is invoked from somewhere else. 15:37
PerlJam masak: me too, which is why I like your version more
15:38 bluescreen10 joined
TimToady well, but will it be meaningful to the naïve user? 15:38
masak fwiw, I'm not seriously suggesting we put a haiku as the error message. :)
TimToady they might just say "I didn't bind anything"
BenGoldberg A haiku error message would be awesome :) 15:39
PerlJam If we teach it as binding, then the naive user will make the connection :) 15:40
Also ... how would a naive user end up in such a situation? 15:41
TimToady cannot return now / the routine return is in / already did so
15:41 genehack left
moritz PerlJam: sub f(*@args) { map { return if $_ eq 'foo'; .uc } } 15:41
TimToady PerlJam: it is not the top goal of Perl to force CS down the user's throat, merely a secondary goal :) 15:42
15:43 kaare_ left
TimToady but to be sure, it's very like what would be called binding in, say, Scheme 15:43
BenGoldberg On an unrelated note, does perl6 have something like a '#file' pragma? It would be nice if errors produced by code in gen/*/CORE.setting looked like they were generated by the code which generated the setting. That would let the evalbot consolidate those error messages :) 15:45
pragma- hark! 15:46
TimToady BenGoldberg: not that I know of, but that would be a LHF for someone to pluck 15:49
r: say $?FILE; say $?LINE 15:51
camelia rakudo-parrot f3cf9d, rakudo-jvm f3cf9d, rakudo-moar f3cf9d: OUTPUT«/tmp/tmpfile␤1␤»
TimToady r: constant $?FILE = "PHOO"; constant $?LINE = 1; say $?FILE; say $?LINE 15:52
camelia rakudo-parrot f3cf9d, rakudo-jvm f3cf9d, rakudo-moar f3cf9d: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfile␤Twigil-Variable constants not yet implemented. Sorry. ␤at /tmp/tmpfile:1␤------> constant $?FILE = "PHOO"⏏; constant $?LINE = …»
TimToady it might look something more like that
masak error messages as haikus sounds like a very nice non-core module.
TimToady well, this particular one merits a hiaku because you are returning in the wrong season 15:53
masak hehe 15:54
such a bad timing / because you are returning / in the wrong season 15:55
TimToady cannot return now / the season for it has passed / to return from here
though I think it's somewhat gauche to actually use the word "season"
[Coke] we will not redo / all the error messages / for haiku reasons 15:56
TimToady only for haiku seasons?
masak the time for return / stopped as we left the routine / you silly person
TimToady returning again / without going there again / is not possible 16:00
16:02 xinming_ joined
masak "Did you mean gather/take?" ;) 16:03
TimToady one can view the proposed ability to shut down a lazy list as (in part) telling a gather/take to return from the gather 16:04
16:04 xinming left
TimToady except, of course, that in one sense the gather has already returned 16:05
masak *nod*
TimToady r: say gather {} 16:06
camelia rakudo-parrot f3cf9d, rakudo-jvm f3cf9d, rakudo-moar f3cf9d: OUTPUT«␤»
16:07 hoverboard joined, denisboyun left
TimToady one cannot interpret the shutdown of a gather as anything specific like return or leave or last, because one has no idea what the control structure surrounding the currently blocked take is 16:09
it's more just free the continuation and let the GC sort it out 16:10
masak yeah. 16:11
16:11 ajr_ left
masak that's the advantage of iterators. :) 16:11
16:11 ajr joined
masak with observers, they're working "against the grain" of the GC, and you have to add manual detaching logic. 16:11
16:12 ajr is now known as Guest89343, Guest89343 is now known as ajr_
FROGGS BenGoldberg: a file pragma (ha pragma!) would not help, because in the source code the backend specific stuff will still have other line numbers, and how would one debug virtual line numbers? :o) 16:12
BenGoldberg The backend specific stuff in gen/ comes from something which generated it, right? 16:14
TimToady it would help where the implementations are shared
FROGGS BenGoldberg: yes
16:14 rurban joined
BenGoldberg Then you'd point $?FILE and $?LINE to the file and line which did the generating. 16:14
FROGGS BenGoldberg: have a look at github.com/rakudo/rakudo/blob/nom/...e/terms.pm 16:15
TimToady $?LINE is a very funny constant, insofar as the compiler is allowed to change it on every line
FROGGS the first parrot specific block is short than the jvm one, so what is the common line number after these blocks? 16:16
timotimo p6weekly.wordpress.com/?p=82&sh...4aac3e4766 - after i wrote the biggest portion of this i took a rather long nap and didn't look over the whole thing completely yet, so it's probably missing a few important things
FROGGS it must be the biggest line number of all backends, so that there are holes in line numbering of the backends with short fudge blocks 16:17
but then you get a line number reported that either does not exist, or that does match a different position
BenGoldberg I'm not saying that the line numbers would always be common. They'd be common for common code, and point to the vm-specific line numbers for vm-specific code
FROGGS or the fudge scripts need to really put these holes in the generated source 16:18
I guess the last bit I said might actually work out
PerlJam timotimo: the last bullet point ends in the middle
16:19 arnsholt joined
arnsholt o/ 16:19
FROGGS hi arnsholt 16:20
BenGoldberg You only need "holes" if you only fudge the line numbers.
timotimo PerlJam: that's exactly the kind of thing i meant :D thanks 16:21
BenGoldberg If you fudge the file name, so so code in gen/*/terms.pm pretends that it is actually src/core/terms.pm, you can simply point to the original line numbers
FROGGS timotimo++ # I like it :o)
PerlJam timotimo++
FROGGS BenGoldberg: but then a backtrace line that points to after a fudge block would be reported for three different line numbers... ahh, now I know what you mean 16:22
BenGoldberg Continuing with the github.com/rakudo/rakudo/blob/nom/...e/terms.pm example, 16:23
The backtrace from the first common line of code after the first fudge block would be line 49 of src/core/terms.pm 16:24
And for all three backends, an error in any of gen/*/terms.pm on the corresponding line would appear to come from src/core/terms.pm line 49. 16:25
FROGGS yes, I got that now
BenGoldberg Ideally, no errors would appear to come from gen/*/, they'd all appear to come from src/code/*
:)
16:26 treehug88 joined, dmol joined
FROGGS I really love the idea, because it would not just silence camelia, it would even help debugging code 16:26
TimToady timotimo: [Xop] and [Zop] also rely heavily on recognizing list infix precedence of X and Z so that the arguments to the reduction do not flatten as a normal listop would
16:26 [Sno] left
FROGGS because when I add something errornous, I already have that terms.pm open at the errornous point 16:26
TimToady in any case, you should probably use the term "reduction" in there somewhere or people won't see the brackets
FROGGS a backtrace pointing to the gen'd setting that I ahve to open just to compare the text is, well, not perfect 16:27
timotimo TimToady: that means anything that's list infix now works better, yes?
BenGoldberg And the same is true if you want to edit the code... you've got to go to the src/, not to the gen/
timotimo i suppose it'd best be a new bullet
TimToady for duckmap, it's not exactly "inspecting"; it just tries it, and fails over to descending the structure 16:28
timotimo ah
TimToady If a cat can be both dead and alive, why can't it be on both sides of the door at once? 16:31
timotimo p6weekly.wordpress.com/?p=82&sh...4ae5d9d773 - new draft with a few issues fixed
"make two holes in the door for my two cats; one big and one small" 16:32
colomon timotimo++
timotimo stop that, it tickles ;)
16:35 btyler joined
timotimo masak: so, what does the Y metaoperator do now? 16:35
masak :P 16:36
timotimo: it doesn't exist.
timotimo: which is weird, because we have X and Z, right?
TimToady maybe it should zip to longest rather than shortest list
timotimo well, it better get specced soon, else we won't be able to release perl 6!
TimToady: that sounds surprisingly useful
TimToady but the devil is in the details 16:37
timotimo as always
masak clearly, the way Y looks, it should've been the zip operator :P
TimToady yeah, how come we never noticed that before :P 16:38
masak remembers a time when it actually was Y, which was the Texas version of the Yen symbol
masak shudders
16:38 zakharyas left
timotimo that was a thing? 16:38
masak timotimo: ya.
timotimo in perl 6, ya?
masak timotimo: usedta be we was cuh-ray-zee. 16:39
timotimo mhm
masak :P
arnsholt masak: I think you linked a webpage about an efficient algorithm to pick items according to a non-uniform distribution, at some point in the past. Ring any bells?
masak arnsholt: yes. 16:41
arnsholt: ask moritz.
arnsholt: the model was two-dimensional, stacking rectangles in some cool way. 16:42
arnsholt Exactly!
masak arnsholt: ah, found it: www.keithschwarz.com/darts-dice-coins/
arnsholt Thank you! 16:43
masak++ # Your google-fu is stronger than mine
masak :)
man, that's cool. I'm just skimming through it, but... wow. 16:44
arnsholt I'm pondering doing a talk/coding demp for our students, making a simple chatter-bot, and then I need an efficient select-from-distribution algoritm
masak well, I'd go with a simple one for that, I think. 16:45
there's one in the middle of that page that loops a few times, but is a lot simpler than the final algorithm.
arnsholt Yeah, or I'd just plop it in as a given (and make a Norwegian TV-cooking joke) 16:47
masak :) 16:49
"here, we just call the normal aliasing algorithm. next, we..." 16:50
arnsholt That'd be mean =D
16:51 hoverboard left
TimToady so if I run my perl6-m from outside the nom directory, I get: Unhandled exception: failed to load library 'dynext/libperl6_ops_moar.so' at <unknown>:1 (/home/larry/nom/perl6.moarvm::303) 16:54
masak TimToady: 'make install' ? 16:55
TimToady do that
probably something more like a relative install rather than an absolute 16:56
maybe I need to Configure with an explicit --prefix
16:56 fhelmberger left
masak I'm running Rakudo-on-Moar here, outside of the nom directory, with a relative install, and without --prefix 16:57
worksforme
TimToady no, all the build lines look absolute
hmm
arnsholt Does perl6-m have the same problem as perl6-j perhaps, that rakudo/perl6-j only works from the rakudo dir, but nqp/install/bin/perl6-j works outside too? 16:59
TimToady could be 17:00
can't test at the moment, rebuilding
17:00 rurban left 17:01 rurban joined
masak oh, I'm using the install/bin one 17:04
17:06 xinming_ left 17:07 Alina-malina left, Alina-malina joined, xinming joined 17:11 pmurias left
timotimo i'll publish the blorgpost now 17:17
oh, actually
i have no entries for "what's cooking"
any suggestions?
17:18 kurahaupo_mobile joined
FROGGS S11 is still cooking for me... maybe you just move it? 17:20
17:22 FROGGS left 17:23 hoverboard joined
timotimo sub infix:<ip>(...) { ...}; 1 Zip 2 :) 17:30
17:32 molaf joined 17:33 kbaker left 17:35 kurahaupo_mobile left, kurahaupo_mobile joined, klapperl_ joined 17:37 klapperl left
tadzik arnsholt: are you aware of nativecall-jvm fails on linux? 17:41
it boils down to java.lang.UnsatisfiedLinkError: Unable to load library './08-callbacks.so': Native library (linux-x86-64/./08-callbacks.so) not found in resource path 17:43
17:44 Alina-malina left, Alina-malina joined
tadzik some things I noticed $*VM<config><ld_out> is '-o ' on parrot, but it's empty on jvm/moar 17:46
also, the linux-x86-64 prefix, that jvm expects for some reason
17:47 Alina-malina left 17:48 kurahaupo_mobile left, Alina-malina joined, Rotwang joined 17:50 rurban left 17:53 bjz left 17:54 [Sno] joined
[Coke] j: "FooBarBaz".comb(/<:Upper><:!Upper>/); 17:54
camelia ( no output )
[Coke] j: "say FooBarBaz".comb(/<:Upper><:!Upper>/);
camelia ( no output )
[Coke] j: say "FooBarBaz".comb(/<:Upper><:!Upper>/);
camelia rakudo-jvm f3cf9d: OUTPUT«Fo Ba Ba␤»
[Coke] j: say "FooBarBaz".comb(/<:Upper><:!Upper>*/);
^^ wtf?
camelia rakudo-jvm f3cf9d: OUTPUT«(timeout)» 17:55
17:55 rurban joined
moritz j: say "FooBarBaz".comb(/<:Upper><:!Upper>*/); 17:59
camelia rakudo-jvm f3cf9d: OUTPUT«(timeout)»
moritz m: say "FooBarBaz".comb(/<:Upper><:!Upper>*/);
camelia rakudo-moar f3cf9d: OUTPUT«Foo Bar Baz␤»
[Coke] (blocker to porting mojo!)
moritz j: say "FooBarBaz".comb(/<:Upper>[<!before <:Upper> .]*/); 18:00
18:01 treehug8_ joined
camelia rakudo-jvm f3cf9d: OUTPUT«===SORRY!=== Error while compiling /tmp/q47AyUd0jq␤Unable to parse expression in metachar:sym<assert>; couldn't find final '>' ␤at /tmp/q47AyUd0jq:1␤------> rBaz".comb(/<:Upper>[<!before <:Upper> .⏏]*/);␤ ex…» 18:01
moritz j: say "FooBarBaz".comb(/<:Upper>[<!before <:Upper> > .]*/);
camelia rakudo-jvm f3cf9d: OUTPUT«Foo Bar Baz␤»
moritz [Coke]: ^^ workaround
arnsholt tadzik: Yeah, $*VM on JVM doesn't have to necessary info to build the test libs 18:02
tadzik: Run the test suite once with Parrot first and it should pass on JVM too
18:02 dakkar left 18:04 treehug88 left, treehug8_ left
[Coke] moritz++ 18:06
masak .oO( moritz++ provided a fixer-Upper )
18:06 rurban left 18:07 rurban joined
[Coke] masak: My internet here is super slow. can you bugify this? 18:07
++masa 18:08
++masak
18:12 ajr joined, ajr_ left, ajr is now known as Guest89207, tgt joined, Guest89207 is now known as ajr_
moritz j: say 'a' ~~ /<:!Upper>/; say $/.Str.chars 18:13
camelia rakudo-jvm f3cf9d: OUTPUT«「a」␤␤1␤»
moritz I thought it might match zero-width, but that's not the problem, it seems 18:14
[Coke], masak: I'll submit the bug report 18:15
masak moritz++
18:18 rurban left 18:19 rurban joined 18:22 virtualsue left
timotimo i quite enjoyed the article on loaded dice; i skipped almost half the whole article, though 18:22
masak it is quite enjoyable. 18:24
moritz ssp.impulsetrain.com/goto.html # also enjoyable
18:24 rurban left
masak wow, first class *gotos*. 18:25
18:25 berekuk joined
moritz first class labels 18:26
18:31 rindolf left
[Coke] moritz++ 18:32
masak yeah, I was hoping for first-class gotos... :/ 18:35
timotimo as in "change goto from line 10 to go to line 20"? :) 18:36
colomon heck, self-modifying assembly code can do that. ;) 18:37
colomon has just noticed that the wink-smiley his IRC program uses looks very pleased with itself. 18:41
18:45 FROGGS joined 18:47 darutoko left 18:48 ajr_ left 18:49 rurban joined 18:53 rurban left 18:54 vendethiel joined 19:05 sftp left 19:06 treehug88 joined 19:08 sftp joined
moritz well, with first-class labels changing a goto is just changing the label 19:10
19:11 bluescreen100 joined 19:12 denis_boyun joined
FROGGS loop labels do already work for the parrot backend, if somebody wants to pick it up I would be happy 19:13
timotimo except you can only bind all labels to one destination unless you put an indirection into it
19:14 ajr joined 19:15 ajr is now known as Guest44670, Guest44670 is now known as ajr_, bluescreen10 left 19:16 bluescreen100 left 19:19 jnap joined
dalek : ed622dc | moritz++ | docs/feather/svnbot.pm:
remove cruft
19:21
19:22 xinming left 19:23 xinming joined
tadzik arnsholt: that's not really panda-friendly :/ 19:24
arnsholt Yeah, I know =( 19:28
Problem is that figuring out how to build libraries without the VM telling us is pretty hard
FROGGS we don't have this problem on moar
masak what's the problem? 19:32
FROGGS getting compiler flags to compile C code on perl6-j I think 19:33
masak ah, yes. 19:34
MoarVM is closer to C than the JVM is, I guess.
FROGGS a bit :o)
m: say nqp::backendconfig
camelia rakudo-moar f3cf9d: OUTPUT«("ccoptiflags" => "-O1 -DNDEBUG", "uvrule" => "\$(AR) \$(ARFLAGS) \$\@ \$(UV_LINUX)", "tomobjects" => "3rdparty/libtommath/bn_error.o 3rdparty/libtommath/bn_fast_mp_invmod.o 3rdparty/libtommath/bn_fast_mp_montgomery_reduce.o 3rdparty/libtommath/bn_fast_s_m…»
arnsholt Yeah
FROGGS m: say nqp::backendconfig<ccflags>
camelia rakudo-moar f3cf9d: OUTPUT«(Any)␤»
FROGGS m: say nqp::backendconfig<cflags>
camelia rakudo-moar f3cf9d: OUTPUT« -O1 -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -fPIC␤»
colomon also moar is coded to give the information arnsholt needs, right?
masak j: say nqp::backendconfig 19:35
camelia rakudo-jvm f3cf9d: OUTPUT«("runtime.jars" => "/home/p6eval/rakudo-inst-1/languages/nqp/runtime/asm-4.1.jar:/home/p6eval/rakudo-inst-1/languages/nqp/runtime/asm-tree-4.1.jar:/home/p6eval/rakudo-inst-1/languages/nqp/runtime/jline-1.0.jar:/home/p6eval/rakudo-inst-1/languages/nqp/runtim…»
arnsholt AFAIK JVM doesn't expose that kind of information
FROGGS colomon: must be, because we use that to compile ops for perl6
colomon so the solution is simple! all arnsholt++ needs to do is code a new JVM, and have it give us the needed information… ;) 19:37
masak you can do it, arnsholt! 19:39
FROGGS simple solution is simple :o)
++arnsholt
arnsholt /o\ 19:45
Scary solution is scary =p
j: say nqp::backendconfig<cc_shared> 19:46
camelia rakudo-jvm f3cf9d: OUTPUT«No such method 'at_key' for invocant of type 'BOOTHash'␤ in sub postcircumfix:<{ }> at gen/jvm/CORE.setting:2546␤ in sub postcircumfix:<{ }> at gen/jvm/CORE.setting:2542␤ in block at /tmp/PzxlwlYDgl:1␤␤»
[Coke] The fix is to pull any compiler detector code out of one of the backends and use it at the rakudo level. 19:47
arnsholt m: say nqp::backendconfig<cc_shared>
camelia rakudo-moar f3cf9d: OUTPUT«(Any)␤»
[Coke] for parrot, that means pulling it out of perl5. what about moar?
arnsholt Yeah, I guess that might be doable 19:49
19:50 rurban joined
FROGGS [Coke]: we have presets for the os/compiler combinations, but we will have perl 5 like compiler flags proving in future 19:53
maybe we already have that...
nwc++ was working on that
19:54 rurban left 19:57 xenoterracide joined 20:05 regreg left 20:06 bluescreen100 joined
arnsholt nwc10: I guess you're the person to ask about this: Which of Perl (5)'s Configure variables are the right ones to use to figure out how to build shared libraries? 20:11
Or if not the entirely right ones, at least
the least broken one (damn PCRS)
20:34 hoverboard left
moritz feather.perl6.nl/ works again, as well as the perl6.net etc. redirects 20:37
[Coke] moritz++ 20:38
timotimo moritz: maybe it's time to learn something about ansible :P 20:42
moritz timotimo: does that solve the problem of feather running debian/sid, and nobody except me making an effort to maintain it? :-) 20:44
20:45 kurahaupo_mobile joined
timotimo i fear not :| 20:45
moritz another problem is that the apache upgrade breaks config 20:46
timotimo next time, find the option "create system restoration point" in the control center 20:47
moritz restoring doesn't solve the problem of actually doing the upgrade :( 20:48
timotimo right; but if you find that there's trouble, you can clone the machine, do the upgrade, mirror the changes back with much less failure time in between
well, at least in theory
i don't know much about sysadmining in practice :(
moritz well, for proper sysadmin practice, there would be a mirror system and/or a testbed 20:50
20:51 hoverboard joined, rurban joined
timotimo that'd require moneys and times 20:52
20:52 bartolin joined
masak and since time *is* money, it would actually require money² 20:54
timotimo only if it requires moneys times moneys 20:55
i think in this case it's more like 2moneys
lue ! money³
timotimo 2moneys5problems
20:55 rurban left
[Coke] ansible communication? 20:59
timotimo i don't know what that refers to
PerlJam timotimo: en.wikipedia.org/wiki/Ansible 21:00
lue Grrr. The only -debug- that doesn't die with "Unknown compilation input 'optimize'" is -debug-p, and that's waaay too slow with grammars to help anyone :/ 21:04
timotimo ah 21:13
ansible is something like puppet or chef
21:15 bjz joined
nwc10 arnsholt: I think you need $Config{ld} (the unfortunately named variable for the *dynamic* linker) and $Config{lddlflags} 21:15
on the command line you can do things like: perl -V:ld.*
to get perl to print all config variables matching that pattern 21:16
21:16 gfldex joined
nwc10 but I assume that if you're in the JVM trying to ask perl for >1 variable, pass it a custom little program on the command line (or stdin) which uses Config 21:16
instead of shelling out $n times with a perl -V
arnsholt: this file might be useful. It describes all the variables that Configure records: perl5.git.perl.org/perl.git/blob/HE...g/Glossary 21:17
arnsholt Cheers! nwc10++ 21:20
I'll probably put the config extraction in Configure.pl and store it in a JVM-friendly format somewhere (a properties file, most likely) 21:21
timotimo gnite #perl6 /o
arnsholt And with that, I'm off to bed too
G'nite!
lue arnsholt o/ 21:25
dalek p: c961832 | larry++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
add four new opcodes for unicode properties

Well, actually, add two new opcodes and two old opcodes that weren't exposed.
21:32
masak good najt, arnsholt :) 21:40
21:41 hoverboard is now known as LinuxBrokeDawg 21:44 bartolin left 21:47 LinuxBrokeDawg is now known as hoverboard
dalek p: a0dc24c | larry++ | docs/ops.markdown:
document new uniprop opcodes
21:49
TimToady don't have anything to call the new opcodes yet, you still have to say nqp::getuniname(0x1f4a9) to get to them 21:50
but locally: 21:51
> ./perl6 -e 'say nqp::getuniname(0x2424)'
SYMBOL FOR NEWLINE
we'll need to decide a good API for the user 21:52
FROGGS true
something obvious like chr()
lue TimToady: gee, if only there were a spec with such ideas already in existence... :) 21:53
[Coke] TimToady++
FROGGS lue: where is your proposal again?
TimToady the property values work, but I'm not sure ucd2c.pl is encoding them quite right yet 21:54
lue FROGGS: github.com/perl6/specs/blob/master...nicode.pod :)
TimToady looks like the tables are currently storing numerators and denominators in 1-bit fields, which can't be right
lue rather, raw.github.com/perl6/specs/master/...nicode.pod
TimToady but at least you can get at the bogus tables :) 21:55
nap &
lue FROGGS: what you're looking for is currently uniname("A") 21:56
FROGGS uniname/uninames, yeah that is probably obvious enough :o)
lue (although it'd be nicer shortened to uname() ☺ ...)
TimToady except we look up the integer value
so maybe a multi 21:57
[Coke] perlcabal.org/syn/S15.html - 404
FROGGS could also be cname
TimToady rnap &
[Coke] www.pedestrian.tv/news/entertainmen...c6c3a2.htm - THIS PHOTO OF A SNAKE EATING A CROCODILE IS THE MOST TERRIFYINGLY AUSTRALIAN THING EVER 21:58
(except Damian++)
lue Yeah, I assume uniname() would be defined as something like sub uniname($a) { nqp::getuniname($a.ord) } 21:59
[Coke]: Pod6 docs (currently just S15 and S26) have to be hand-generated currently. S26 is old (don't know how much), S15 has never been generated. 22:00
[Coke] is the code for that lying about somewhere? 22:04
22:06 skids left
lue [Coke]: the POD5 stuff is in mu/ , Pod6 is (afaik) totally by hand. 22:09
[Coke]: github.com/lue/synopsis-generator is my attempt to replace that generator, and the 'pod6ify' branch of the specs repo holds converted synopses for my generator. 22:10
22:13 hoverboard left 22:15 Rotwang left 22:21 PZt joined, FROGGS left 22:23 Mouq joined 22:28 grondilu joined
grondilu shows up to comment on the serpent eating a crocodile. 22:29
amazing stuff, huh? Yet I remember having heard that it's not rare that the serpent dies after it, unable to digest the croc.
masak there are tradeoffs to everything. 22:38
grondilu it's not like they have much choice, though. I also remember that serpents there have pretty much eaten everything so crocs my be the only big game left. 22:39
22:39 telex left 22:40 telex joined
grondilu *may 22:40
22:46 bjz left
[Coke] lue: what's blocking getting that or something like it into "prod" ? 22:52
[Coke] commutes
22:55 denis_boyun left 23:00 tgt left
dalek kudo/nom: c8ef8d6 | Mouq++ | src/Perl6/ (2 files):
Allow X<thing|letter-t,letters;objects> to be multi-dimensional

Also sneak in a fix for a bug with D<>
23:04
lue [Coke]: last remaining feature is getting backlinks (or smartlinks, as the POD5 generator calls them) under the right paragraph; so far they're only placed under the right section header. 23:05
There's also the need to make it faster in general, last full run on perl6-m for me was 2098 seconds. (On a machine that takes 30m to compile perl6-p, mind you) 23:06
23:06 Psyche^ joined 23:08 btyler left 23:09 bjz joined 23:10 Psyche^_ left
Mouq lue: Would you like my to time syngen? My laptop is pretty fast 23:11
lue Mouq: that'd be great, also to see what happens when someone tries running it for the first time ever :)
Mouq lue: What's the line I should run? 23:13
23:13 xinming_ joined
Mouq (specs in ../specs) 23:13
lue I use perl6-m -Ilib syngen.p6 --synopses=../specs --outdir=html --backlinks=../roast
23:13 fridim__ joined
Mouq lue: Ok, cool. Lemme rebuild panda and try it :) 23:13
23:16 xinming left 23:18 colomon left 23:19 kaare_ joined
Mouq Oh, hey, I should probably checkout the pod6ify branch 23:20
23:22 kurahaupo_mobile left
lue Mouq: yeah :) I'll soon push a merge of recent changes in master into pod6ify, after fixing the one Pod6-incompatible change. 23:22
23:22 berekuk left
Mouq lue++ 23:23
lue Luckily you changing the same part of S26 in both branches didn't get seen as a merge conflict :) .
23:24 colomon joined
Mouq is glad he didn't break anything 23:24
Generating HTML files... 1/36 23:25
These definitely take a while
dalek ecs/pod6ify: 5ef5f5c | larry++ | S32-setting-library/Containers.pod:
Add Range.sample for TheDamian++
23:26
specs/pod6ify: 73c60fc | larry++ | S32-setting-library/Containers.pod:
specs/pod6ify: remove accidental duplication
23:26 dalek left 23:27 dalek joined, ChanServ sets mode: +v dalek
lue Mouq: definitely. It'd be nice to change that to an inline call to Pod::To::HTML, but the module provides no mechanism for such :( [I'd have to construct the Pod stuff myself, like perl6/doc 's htmlify script does, but that seems bothersome.] 23:27
(perl6-j is the only backend I see that desperately requires such a change to the generator) 23:29
Mouq Hm :( Ironically, it fails to parse S26-documentation.pod6, which is likely my fault 23:32
23:32 skids joined
Mouq Oh 23:34
Technically not my fault ;p 23:35
lue what was it?
TimToady It's all my fault. :) 23:36
Mouq m: =begin code :allow<B>␤B<sometext␤=gah>␤=end code
camelia rakudo-moar c8ef8d: OUTPUT«===SORRY!=== Error while compiling /tmp/geVGRdyjTy␤Pod formatting code B missing endtag '>'.␤at /tmp/geVGRdyjTy:2␤------> B<sometext⏏<EOL>␤ expecting any of:␤ pair value␤ quote words␤»
lue I was able to parse latest S26 just fine, though I don't have latest rakudo etc. 23:40
Mouq just decides that B<sometext␤=gah> should mean B<sometext␤=gah> and removes the rule preventing =gah from parsing
lue: 984.0981103 seconds 23:41
lue Yeah, if a command is in a formatting code, either it's supposed to be formatted, or whoever wrote the doc needs to do better :)
Mouq: that's better than I ever got (1230s) 23:42
Mouq Well actually... I'm not sure.
Should it parse fail?
lue What parsefailed?
Mouq m: =begin code :allow<B>␤B<sometext␤=gah>␤=end code
camelia rakudo-moar c8ef8d: OUTPUT«===SORRY!=== Error while compiling /tmp/qFPW1FlrcN␤Pod formatting code B missing endtag '>'.␤at /tmp/qFPW1FlrcN:2␤------> B<sometext⏏<EOL>␤ expecting any of:␤ pair value␤ quote words␤»
lue Oh, if it's in a =code block, definitely allow it. 23:43
Mouq lue: And it it's not...?
lue m: =begin code␤sometext␤=gah␤=end code
camelia ( no output )
lue Mouq: then it gets tricky. Someone might try B<bold\n=head2 Subsection\n\nmore bold> , don't know if we want to allow that. 23:44
lue thinks formatting codes should perhaps not affect =command handling in any way 23:45
Mouq lue: Uhm. S02-bits.html (haven't checked the rest) ends up with a bunch of '/S02-lexical-conventions/unicode.t 7􏿽' etc
lue Oh? Lemme check the last S02 I generated 23:46
Mouq <p> /S02-lexical-conventions/unspace.t 274􏿽</p>
23:47 xenoterracide left, hoverboard joined 23:48 ajr_ left
lue Nope, everything looks fine here. Let me update all my stuff and run the latest of everything. It'll take a while though :/ 23:50
I'll save some time by not compiling nqp-p or perl6-p :) 23:55
23:55 bowtie joined 23:56 tgt joined
masak another nice insight that falls out of the persistent-actions-class notion: you can put *other* methods on the actions class, called explicitly from the code instead of implicitly from parsing process. 23:56
lue masak: I've been thinking about slangs lately, and the more I do, the more I realize their primary purpose should be to add languages to Perl 6, not modify existing ones. Trying to change anything in an existing grammar+actions looks very fragile in general to me. 23:59