»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:07 lolisa left 00:09 gfldex left 00:31 lizmat left 00:33 lizmat joined 00:39 laouji left, laouji joined 00:44 laouji left 00:46 laouji joined 00:55 Util_ is now known as Util 01:04 kurahaupo joined 01:05 perlpilot is now known as PerlJam 01:07 BenGoldberg_ is now known as BenGoldberg, jack_rabbit joined 01:09 laouji left 01:11 tinyblak joined 01:12 laouji joined, yqt left 01:20 pyrimidi_ left 01:21 pyrimidine joined 01:26 kurahaupo left 01:36 jack_rabbit_ joined, jack_rabbit left 01:41 cognominal left 01:47 jack_rabbit_ left 01:54 aborazmeh joined, aborazmeh left, aborazmeh joined 02:06 cognominal joined 02:15 noganex joined 02:17 Ben_Goldberg joined 02:18 noganex_ left 02:19 BenGoldberg left 02:30 kst left 02:31 tinyblak left 02:38 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk 02:48 telex left 02:50 tinyblak joined, telex joined 03:01 aborazmeh left 03:07 CQ_ joined 03:10 CQ left, CQ_ is now known as CQ 03:39 molaf left 03:49 tinyblak left 03:52 tinyblak joined 03:54 zacts left 03:57 tinyblak left 03:58 zacts joined 04:04 cognominal left 04:08 lsm-desktop left 04:18 lsm-desktop joined 04:21 _mg_ joined 04:29 Ben_Goldberg left 04:34 raiph left 04:39 nys left, cognominal joined 04:49 bartolin left, kaare_ joined 04:52 bakedb left, bakedb_ joined 04:53 tinyblak joined 04:54 tinyblak left, tinyblak joined 04:57 tinyblak left 04:58 tinyblak joined 05:01 bartolin joined 05:02 tinyblak left 05:03 tinyblak joined 05:05 atroxaper joined 05:09 [Sno] left 05:13 laouji left
dalek ast: 9d5a3ec | usev6++ | S09-hashes/objecthash.t:
Add test for RT #125352
05:19
05:23 laouji joined 05:25 skids left 05:26 atroxaper left 05:33 cognominal left, atroxaper joined 05:41 tinyblak left 05:43 FROGGS_ left 05:46 Psyche^ joined 05:49 Psyche^_ left 05:52 spider-mario left 05:57 xinming_ joined 06:00 domidumont joined, xinming left 06:01 spider-mario joined 06:04 domidumont left 06:05 domidumont joined 06:07 FROGGS joined 06:08 diana_olhovik_ joined
atroxaper Hello, #perl6 ! 06:14
FROGGS morning 06:15
atroxaper Is it good that Grammar::Debugger fails test on Rakudo MoarVM 2016.06 ?
FROGGS: o/
FROGGS not good most probably 06:16
atroxaper And Bailador too :(
tadzik oh noes 06:17
atroxaper I just tried to panda install Task::Star
dalek kudo/nom: 164f1e0 | TimToady++ | src/Perl6/Grammar.nqp:
fix @foo = $bar = 5, 10;

Assignment is right associative, so the intent is that the righthand assignment pay attention only to it's immediate left arg as its left term. It would be incorrect to pay attention to treat the entire lefthand assignment as the target of the righthand assignment.
The patch makes infix:sym<=> consume any $*LEFTSIGIL it finds, freeing up the next term to set its own $*LEFTSIGIL.
06:18
TimToady .tell Zhtwn You're making it too difficult trying to work around a bug. See irclog.perlgeek.de/perl6/2015-06-22#i_10784896 06:20
yoleaux TimToady: I'll pass your message to Zhtwn.
FROGGS m: say '<>'.ords 06:25
camelia rakudo-moar b95a22: OUTPUT«60 62␤»
FROGGS m: say 'äöüßÄÖÜ<>'.ords».fmt: '&#%d;' 06:28
camelia rakudo-moar b95a22: OUTPUT«&#228; &#246; &#252; &#223; &#196; &#214; &#220; &#60; &#62;␤»
jnthn TimToady: Well, that's a cute solution...
dalek ast: e6ff033 | TimToady++ | S03-operators/assign.t:
tests for @foo = $bar = 5, 10; working right
06:29
masak morning, #perl6 06:31
jnthn o/ masak 06:32
TimToady waves from about 10 meters north of the Yellowstone River, which is loud 06:33
but not annoyingly so 06:34
jnthn :)
jnthn wants to visit Yellowstone some day...
TimToady jnthn: did you see my suggestion that preclim pay attention to associativity to decide whether to match exactly? 06:35
jnthn TimToady: Yes, but I wasn't clever enough to work out exactly how to turn that into code yet ;)
Probably 'cus I was spending my cycles on figuring out how to put my apartment into boxes. :)
It sounded reasonable, anyways.
TimToady okay...I just have a sneaking suspicion it'll work out better for some case or other 06:36
06:37 cognominal joined 06:40 espadrine joined
masak was implementing associativity in 007 during the weekend 06:40
there are a lot of things I like about Perl 6 operators (and defining them), but in 007 I brought in a bunch of simplifications, which I hope to blog about soon.
FROGGS did some NativeCall stuff, which was fun
masak it surprised me a little that unary ops can have associativity... even though that bit's been in S03 since forever 06:41
jnthn commutes to the office, so he can associate with colleagues... &
masak basically, from the point of view of precedence, prefixes and postfixes are considered together. 06:42
06:51 [Sno] joined 06:55 zakharyas joined 06:56 araujo joined, araujo left, araujo joined 07:01 larion left 07:06 amurf_ left
nwc10 jnthn: and help them brew better coffee? 07:08
07:10 kurahaupo joined 07:16 g4 joined, g4 left, g4 joined
masak we do need some help with that. 07:18
07:18 espadrine_ joined 07:19 espadrine left
masak (we're also currently looking for Java, C#, Perl, and JavaScript/web developers. get in touch.) 07:19
07:23 espadrine joined, espadrine_ left
cognominal interesting, the use of emojis in atom commit messages : github.com/atom/atom/blob/master/C...t-messages 07:24
masak ok, that is a cute use of the "penguin" character, I concede. 07:26
moritz "you think this is a cute penguin today" :-) 07:27
07:28 abraxxa joined
masak I do! 07:32
I guess someone could filter-branch away all the penguins in the future, if they turn out to be a really bad idea. but I doubt it. 07:33
jnthn nwc10: Well, my first attempt to pour coffee resulted in coffee outside of the cup... 07:35
nwc10 today?
jnthn Bootstrapping strikes again.
Yes. :P
nwc10 aha
jnthn Unfamiliar jug type. That's a good excuse.
nwc10 :-)
masak they look like designer jugs. almost encouraging misuse. 07:36
way too high a center of gravity.
moritz but did the designer add a cute penguin? 07:37
.u penguin
yoleaux U+1F427 PENGUIN [So] (🐧)
07:37 domidumont left
nine
.oO(now what would a real engineer's cup look like?)
07:37
moritz nine: I wanted to say "it's self-cleaning", but that would a violation of Separation of Concerns 07:39
nine moritz: so that's one property: modularity 07:44
I would appreciate a heating unit thats compatible with my mug
07:45 atroxaper left
masak I think I would be happy with a mug that was robust and nice to hold. 07:45
07:47 domidumont joined 07:48 atroxaper joined, RabidGravy joined
moritz and standards compliant, so that it works with all standards-compliant coffee machines, dish washers, heating devices etc. 07:50
RabidGravy yawn! marnin!
moritz (and the ops guy in me says: there should be an easy way to monitor it; possibly via snmp)
masak ;) 07:51
actually I don't mind if it's all that standards-compliant. as long as it's not ridiculously un-compliant.
moritz good yawning, RabidGravy
07:57 darutoko joined 08:03 abraxxa left
cognominal notes that the ce marking (european conformity) logo does not seem to belong to Unicode. webmasters.stackexchange.com/questi...or-ce-mark 08:03
08:03 abraxxa joined
cognominal Not sure if there is a european standard for mugs :) 08:04
DrForr U+212e maybe?
U+212E ESTIMATED SYMBOL - used in European packaging
nwc10 they should add it. and unify it with the "China Export" symbol :-) 08:05
context: www.raspberrypi.org/easter-picture-post/ 08:06
08:09 pyrimidine left 08:10 itz joined, pyrimidine joined, atroxaper left, espadrine left
itz Good UGT 08:12
08:13 moritz left, DrForr left 08:14 moritz joined, larion joined, DrForr joined
nine nwc10: looking at a couple of things lying on my desk, I wonder if even the manufacturers are aware of this subtle difference. Because I actually think they meant the Conformité Européenne mark instead of China Export. Especially with my iAudio player that's made in Korea. 08:15
08:15 silug_ left
masak "However, the European Commission says that this is a misconception." -- en.wikipedia.org/wiki/CE_marking#China_Export 08:18
08:18 salva joined
vendethiel submitted his SPW talk 08:20
masak \o/ 08:21
08:21 bliizZzards joined, laouji left 08:22 dakkar joined, bliizZzards left 08:23 itz left 08:24 itz joined 08:25 itz left, itz joined 08:26 andreoss joined 08:28 laouji joined 08:29 silug_ joined
tadzik oh, right... 08:31
08:31 Ven joined 08:32 rarara joined 08:33 bin_005 joined, sqirrel joined 08:37 cognominal left, spider-mario left 08:38 cognominal joined 08:40 domidumont left 08:41 domidumont joined 08:42 atroxaper joined 08:43 kaare_ left
|Tux| today p6 was even slower than before :( 08:44
08:46 kaare joined
tadzik . o O ( dear diary ) 08:46
08:46 kaare is now known as Guest25465
tadzik . o O ( or is it dairy, I know one is funnier than the other... ) 08:47
itz considers patching the last star to ignore "unit"
masak tadzik: how appropriate! you fight like a journal! 08:49
tadzik :D
|Tux| :p for pipe seen at: 08:50
src/gen/m-CORE.setting, line 18616
Deprecated since v2015.6, will be removed with release v2015.9!
08:51 xinming_ left
masak |Tux|: you're getting errors for things in the core setting? that seems harsh. 08:52
|Tux| this is a fresh rakudo build with fresh Inline::Perl5
git pull about 5 minutes ago
moritz in IO::Handle: 08:54
method pipe(IO::Handle:D: |c) {
self.open(:p, |c);
}
08:54 amurf joined
masak is that `pipe` method the one the deprecation message is suggesting you use? 08:57
|Tux| tux.nl/Files/20150622105714.png <= test-t once was below 36.0 - the last few days it is rising to over 40
no changes to my code at all: I'm writinbg slides
itz |Tux|: thats a known problem with someone working on it see scrollback 08:58
masak there's a 'multi sub pipe' in src/core/io_operators.pm, which calls that method in IO::Handle, which uses the deprecated :p flag. 08:59
08:59 amurf left, espadrine joined
RabidGravy related but tangential to that is there scope for "#file ..." type directives in the catted source so that it points to the actual source rather than the settings file? 09:08
09:08 brrt joined
RabidGravy m: class A { my $boo will leave { say "leaving boo" }; } # is this my usual monday morning stupid or broken? 09:12
camelia rakudo-moar 164f1e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9nfDPkobaI␤Method 'add_phaser' not found for invocant of class 'A'␤at /tmp/9nfDPkobaI:1␤»
masak RabidGravy: looks broken to me. 09:28
|Tux|: submitted it here: rt.perl.org/Ticket/Display.html?id=125454 09:30
|Tux| top 09:32
RabidGravy masak, if you're interested RT'd the above with rt.perl.org/Ticket/Display.html?id=125455 09:42
masak RabidGravy++ 09:43
dalek href="https://modules.perl6.org:">modules.perl6.org: 8af90f1 | paultcochrane++ | web/index.tmpl:
Remove link to proto.json

This is because the more up to date information is located at
  ecosystem-api.p6c.org/ and keeping proto.json around is likely to
confuse people.
09:44 pmurias joined
pmurias hi 09:44
masak \o
Ven o/
masak RabidGravy: (until next time: it helps if you supply what Rakudo you're running. version/platform. that's part of the "steps to reproduce" data.)
pmurias do a lot of #perl6 people plan on coming to YAPC::EU? 09:45
masak pmurias: yes!
RabidGravy masak, it appears that the RT has custom fields for that information but they aren't available to edit 09:47
masak RabidGravy: I always just put it in the ticket body. 09:48
DrForr I'm speaking, kind of have to be there :)
masak RabidGravy: easiest way to remember to include it is to just copy the output from camelia.
m: say "OH HAI"
camelia rakudo-moar 164f1e: OUTPUT«OH HAI␤»
masak that 'rakudo-moar 164f1e' has all the requisite info 09:49
RabidGravy :)
jnthn got an accepted talk at YAPC::EU also, so will be showing up ;) 09:51
masak ditto 09:53
DrForr Oh, wonder if my other p6 talk got in then, should check.
pmurias is planning on comming 09:54
DrForr And this time my way is paid for.
09:54 brrt left
pmurias * coming 09:54
hopefully to also means to that nqp-js will be revived ;) 09:55
masak pmurias: oh! meant to ask you.
pmurias: have you seen the webasm news?
pmurias: and will this change things for nqp-js and rakudo-js? 09:56
(guessing "no", at least in the short term)
pmurias in the short term no 09:58
webasm is the first iteration at least is just a more concise asm.js version
and targeting asm.js is really equivalent to emitting raw native code 09:59
only more restricted
masak right. 10:00
thought so. :)
pmurias++
pmurias the features on the "long term" look very promissing 10:01
atroxaper Question: if I have token in grammar like this - token <a> { <b> (<c1> | <c2> | <c3>)+ <d> } - how can I iterate over elements in round brackets? Like $result<a>.... 10:02
vendethiel atroxaper: [0], et 10:03
etc*
atroxaper It's just for testing by eyes. I'm going to make Action for grammar.
pmurias as they plan to turn webasm into both a llvm backend (as it currently is) and a way to support high level languages
vendethiel m: 'abc' ~~ /(<[a..z]>)+/; say $0, $1, $2
camelia rakudo-moar 164f1e: OUTPUT«「a」 「b」 「c」NilNil␤»
vendethiel m: 'abc' ~~ /(<[a..z]>)+/; say $0[0], $0[1], $0[2] #whoops :) $0 is the whole () 10:04
camelia rakudo-moar 164f1e: OUTPUT«「a」「b」「c」␤»
pmurias and Perl 6 seems to be something that goes back and forth between those two worlds
atroxaper vendethiel: Thanks. I'm gonna test that. 10:05
masak pmurias: yeah, it does look exciting. I'm left wondering how much webasm will end up toppling JavaScript from its current position as "you must pass through me to do web things"
pmurias replacing asm.js seems fairly easy 10:06
masak oh, sure.
espadrine for some uses, js was an implementation detail 10:07
10:07 Ven left
pmurias having something that can both support a c++ and a javascript style language efficently seems a hard problem 10:07
espadrine they have supporting gc languages as a long-term goal, too 10:10
10:13 Vlavv left
itz m: EVAL "use Pod::To::Text"; say Pod::To::Text.new.WHAT 10:13
camelia rakudo-moar 164f1e: OUTPUT«Could not find symbol '&Text'␤ in block <unit> at /tmp/ZnHOqfeRF2:1␤␤»
pmurias it could be useful to sneak to sneak in an agent of ours into the the webasm council (which might just be a bunch of people hacking on it on github ;) ) to try to influence it into something Perl 6 can efficently target 10:15
:)
espadrine they'll definitely be looking for that feedback 10:18
btyler joins the 'got a talk accepted at ::EU' party 10:22
10:23 jaffa4 joined, domidumont left, domidumont joined
jaffa4 hi all 10:24
Is unit implemented?
My code does not seem to compile
itz do you mean uniq ;) 10:25
RabidGravy or
10:26 Vlavv joined
jaffa4 there is such a thing as unit declarator 10:26
RabidGravy m: unit module Foo;
camelia ( no output )
RabidGravy as opposed to
m: module Foo { }
camelia ( no output )
RabidGravy ? 10:27
jaffa4 I downloaded the latest rakudo start
It get a compilation error
RabidGravy in what way?
nine Seems like I really should get my act together and submit my talk proposals. Now I've just to come up with a good title... 10:28
jaffa4 Undeclared routine: Did you mean 'uniq'?
RabidGravy jaffa4, you need to show the code too
nine jaffa4: you're on rakudo star? That doesn't support unit yet.
itz jaffa4: that sounds like the last star not the last rakudo release
RabidGravy (or the smallest part that can be made to fail)
jaffa4 yes, rakudo star 10:29
itz rakudo star is broken with many modules now 10:30
10:31 Guest84975 is now known as ponbiki
jaffa4 Is there compilation for the lastest version for rakudo on Windows? 10:31
10:31 ponbiki is now known as Guest81919
RabidGravy isn't there a * release coming up RSN? 10:32
itz I think Task::Star mostly works with the current rakudo with the exception of Bailador 10:33
10:35 brrt joined 10:40 atroxaper left 10:41 atroxaper joined
itz hmmm the REPL seems to ignore -I 10:42
10:42 bin_005 left 10:43 sqirrel left, zakharyas left, ilbelkyr left, rudi_s left, hobbs left, pnu left, tardisx` left, dalek left, rudi_s joined, tardisx joined, hobbs joined, sqirrel joined, ilbelkyr joined
itz actually only ignored inside the REPL itself 10:43
10:43 zakharyas joined 10:44 uncleyear left, uncleyear joined 10:45 atroxaper left 10:46 lizmat_ joined
masak jaffa4: `unit` is in the latest Rakudo compiler release, but not in the latest Rakudo Star (which is older). 10:46
10:46 RabidGravy left, lizmat left 10:47 dalek joined, ChanServ sets mode: +v dalek 10:50 aborazmeh joined, aborazmeh left, aborazmeh joined
nine Does this talk abstract sound interesting/intriguing? Comments very welcome! niner.name/talks/Building%20bridges...r/abstract 10:54
jnthn
.oO( If you build Inline::PHP, is that a bridge too far? :P )
10:55
nine: Seems like an attractive talk, anyways.
nine jnthn: if it didn't sound so painful, I'd actually be tempted to try it ;) Cause if we lose 10 % of Perl developers due to this bridge and gain 10 % of PHP developers, we grew our community. A lot ;) 10:56
jnthn True that :) 10:57
nwc10 The whole Hack vs PHP 7 thing is panning out to be "interesting" 10:59
news.softpedia.com/news/HHVM-Now-Fa...4687.shtml
I sincerly hope that the journalist is being wrong in his assumption "While this firmly puts HHVM back on top as the best optimization tool for PHP code, the PHP7 team has not even gotten started, as their product is still an alpha-level technology and more improvements are certainly still being developed as we speak." 11:00
PHP 7 ought to be being stabilised at this point. 11:01
not destabilised.
I'm also suspicious/informed guessing that PHP 7 doesn't have as much scope for speedup as HHVM.
masak nwc10: sounds a bit like hyperbole, just from that sentence. 11:02
nwc10 its architecture is what, 15?, years more recent?
itz looks about as reliable as Phoronix :)
11:03 cow-orke1 left
nine itz: phoronix is quite reliable if you use it as a link aggregator and ignore the written text ;) 11:05
11:06 sqirrel left
dalek c: f10e583 | paultcochrane++ | lib/HomePage.pod:
Mention Perl 5 documentation web site explicitly

Using a link with the word "here" is supposedly bad practice in web pages. The text is now more explicit as to what "here" is.
11:14
11:18 aborazmeh left
masak [ptc]++ 11:18
I'd say it's often a missed opportunity. it's like you label all of your jars for different foods, but you label them all "here". 11:19
:P 11:20
tadzik hm, now that I think of it I can see why "here" may be a bad practice, especially in times of mobile where you may often not know what link is going to until you actually go there 11:21
mouseover is a blessing indeed 11:22
DrForr It's a PITA for screen readers. 11:23
moritz also, SEO 11:24
masak naming a product "Here" would give it a great head start in terms of popularity.
tadzik heheheh, like Here Maps 11:25
moritz Here Docs
masak Here Wolves 11:26
tadzik "Here here" 11:31
masak Here Raising
daxim I can't figure out from the documentation how to add to a set: docs.perl6.org/type/Set 11:39
11:39 telex left
masak daxim: sets are immutable. 11:39
m: my $s = set(1, 2, 3); $s (|)= 4; say $s 11:40
camelia rakudo-moar 164f1e: OUTPUT«set(4, 3, 1, 2)␤»
11:40 telex joined
masak m: my $s = set(1, 2, 3); $s ∪= 4; say $s 11:40
camelia rakudo-moar 164f1e: OUTPUT«set(4, 3, 1, 2)␤»
daxim baffling 11:41
masak daxim: ^ ^^ Texas operator, Unicode operator
11:42 atroxaper joined 11:44 smls joined
smls How can I EVAL a Perl 6 file to make its subroutines etc available, but without executing its mainline? 11:45
e.g. to unit-test the subroutines in a stand-alone script 11:46
In Perl 5 this trick works reasonably well:
eval 'package Script { sub { '.slurp_file($script).'} }';
masak daxim: perhaps what you want is a SetHash?
smls but in Perl 6, subs are lexical so that won't work
masak m: my SetHash $s .= new; $s<foo>++; say $s; $s<foo>--; say $s
camelia rakudo-moar 164f1e: OUTPUT«SetHash.new(foo)␤SetHash.new()␤»
brrt if you use a sub MAIN i'd think you can just use it
jnthn Was gonna say, the usual idiom I've seen is a sub MAIN('test') { ... } or so 11:47
smls ok
daxim I dunno. how do I decide? don't just answer, one is immutable and the other is not
11:47 atroxaper left
masak `multi MAIN('test')` 11:47
moritz multi MAIN, to be specific
masak++
jnthn uh, yes :)
masak daxim: SetHash is a hash where the values can only be Bool values. 11:48
daxim: and False is taken to mean "remove this entry from the hash"
colomon basically it’s a mutable Set 11:49
masak colomon: we weren't allowed to say that :P
by daxim's rule above
daxim how do I decide?
colomon do you want to change it? 11:50
masak daxim: how do you decide whether you want an array or a hash in a program? it's a fairly ill-posed question.
daxim maybe, I don't know yet
masak daxim: to me, the answer is "it depends on a lot of things -- try to make your program nice"
daxim that's easy, arrays have order and hashes don't
moritz huh 11:51
masak well, SetHash mutates, Set doesn't
colomon I don’t know how you think about whether you want a Set or a SetHash without considering mutability.
moritz for me it's mostly "hashes if I mostly need lookups by name"
colomon Since that is the difference between the two
masak moritz: hashes are enormously powerful. there's at least five orthogonal-ish use cases.
slightly fewer in Perl 6 than in Perl 5, since Perl 6 has things like Set. 11:52
jnthn Well, it's algorithm design in some sense. Adding/removing from a SetHash is O(1). If you have a set and want to union in another value, getting a new set, then it's O(n) to do so.
If on the other hand you'll have sets of value and mostly be doing union/intersect and so on between the sets, or membership testing, then Set likely makes more sense. 11:53
masak the link 'See setbagmix#Set/Bag Operators' in docs.perl6.org/type/Set is broken -- do I report this to github.com/perl6/doc/issues ?
[ptc] masak: let me have a look
masak if you know you're doing certain kinds of lookup/modification, then a union/find data structure might be exactly what you want. 11:54
ooh, we don't have a good union/find data structure in the module ecosystem yet.
I bet CPAN has one.
colomon I think I mentioned this a couple of days ago, but I converted some p5 $work code to p6 last week, and I really dug being able to use ∈
it’s really elegant for certain uses
masak aye. 11:56
I've had this feeling too. 11:57
11:57 sqirrel joined
[ptc] masak: fixed in local repo. Am building html to check that I fixed it correctly. Thanks for the bug report! 11:58
masak [ptc]++ # fast turnaround
[ptc]: abstracting away a bit -- is it by necessity that we have a build system for the docs pages that allows broken links? 11:59
[ptc] masak: dunno. However, afaik the links can't be checked at build time 12:00
masak: probably best to ask moritz++ or Mouq++ 12:01
masak why can't the links be checked at build time? 12:02
what was it about this link that you fixed that makes it not checkable at build time?
moritz it's all a matter of adding another step/layer to the build process
patches welcome :-)
masak ok, fair enough. that's what I was hoping to hear. :)
moritz if somebody has an idea for how to structure the whole HTML building to make it easier to debug (and/or to make it easier to build parts of the site), that would be also very welcome 12:05
12:05 laouji left
brrt insufficient ideas left, sorry :-) 12:06
moritz brrt: if you JIT-compile everything to be 10x faster, that also counts as an idea :-) 12:10
[ptc] wishes that the html docs built quicker... 12:11
brrt hah. if you're coming to YAPC::EU, you'll hear *precisely* why that 10x will/won't happen :-P
[ptc] or maybe just that one can optionally build a single html page
smls moritz: I experimented with that a few months ago, but I also wanted to make use of concurrency and that was still to unstable in r-m 12:12
maybe I should try again
moritz smls: I also have a concurrent branch which I abandoned due to instabilities 12:13
parallel-htmlify and parallel-htmlify-2
smls ok
jnthn Dunno if things are better enough yet 12:14
itz m: say <yes no>.pick 12:15
camelia rakudo-moar 164f1e: OUTPUT«no␤»
smls camelia has spoken!
masak m: say <no yes>.pick
camelia rakudo-moar 164f1e: OUTPUT«yes␤»
masak see, she just picks the last one you said :P
like a 2-year-old.
moritz wants to emphasize that camelia as a bot is 8 years old 12:16
smls I read that when kids are asked questions that don't make sense, they tend to pick an answer anyway because they believe that one is expected 12:17
e.g. in poorly phrased interviews/studies with kids
masak smls: *I* tend to believe an answer is expected, when asked a question. 12:18
moritz I also notice that kids have their very own logic
masak but I guess you mean they feel they have to choose between the alternatives given, or something like that.
smls yeah
12:24 sqirrel left
TEttinger hello again! I can't quite recall who figured out the way postcircumfix and/or postfixish worked with the unshifting of the variable preceding the op... jnthn++ maybe? 12:26
but I can't find unshift, specifically, in this chunk, and I have no idea what the rest means github.com/perl6/nqp/blob/master/s...#L454-L470
I strongly suspect that shift and unshift are not interchangeable :) 12:27
there's definitely a lot of work done by HLL for operator stuff already, but since I am not using the operator functionality, I'm in a bit of an odd place 12:28
arnsholt What are you trying to do? (I haven't scrollbacked, so I don't have the preceding context) 12:29
TEttinger hey arnsholt! I'm trying to make a lisp, but I can't take advantage of cargoculting the existing code for array access because it's an operator 12:30
I should probably look at snake, huh :)
arnsholt I don't have array dereferencing yet, unfortunately =) 12:31
itz arggg I just forget I was on a case insenstive file system
12:31 espadrine left
arnsholt TEttinger: But is your problem that you need to implement array accesses as an operator in your Lisp? 12:31
TEttinger the contrasting problem, actually
sym<[ ]> is the core of how NQP and Rubyish do it 12:32
arnsholt Aha, I see
TEttinger which is an operator, postcircumfix
arnsholt While in your Lisp, it's just going to be a fucntion, I see
TEttinger postfixish operators somehow get their preceding array available to them 12:33
arnsholt I think what you want is something like the nqp::op code in Snake/Rakudo/NQP
TEttinger or preceding hash yeah
ohhh
I saw that I didn't get it
arnsholt Basically, a way to expose the compiler primitives into your language 12:34
TEttinger so it would let me call an existing nqp op?
right
arnsholt And then you can do something like (defun aref (arr idx) (nqp::atpos arr idx))
TEttinger nice
arnsholt Yeah, it's a nice trick 12:35
TEttinger thanks, arnsholt++ !
arnsholt You're welcome =) 12:36
12:53 leont joined
dalek c: 67fd46d | paultcochrane++ | lib/Type/Set.pod:
Fix link to Set/Bag Operators from Set page

Thanks to masak++ for pointing out the broken link.
12:54
12:57 espadrine_ joined, pmurias left
leont perl5.git.perl.org/perl.git/commitdiff/d9fc04ee 13:06
So starting perl 5.23.1, doing 􏿽xABperl perl6script.pl􏿽xBB will do the right thing if perl6script.pl contains a perl6 hashbang 13:08
Which should make using prove a lot easier 13:09
FROGGS that's great! 13:10
masak leont: wow, this is big news! looking forward to seeing how that plays out. 13:12
13:13 raiph joined
leont Sadly 5.24 will only be out in about 11 months, but still 13:14
Should have amended it to add a proper description to the commit, forgot about that, perl5's behavior there is interesting and strange. 13:15
smls nice
leont (it already did the right thing for any string that doesn't contain the word "perl", I just had to special case the string "perl6")
masak this will have any number of minor, interesting consequences. 13:17
tadzik leont: awesome!
smls masak: It will?
masak first off, it slightly rewards any implementation that decides to call its executable `perl6`.
13:18 yqt joined
masak it's also the first time (I believe) that any acknowledgement of the existence of Perl 6 makes it into the Perl 5 code base. 13:18
13:18 RabidGravy joined
leont masak: not really, because of what I just said. If it says "#!/usr/bin/rakudo" perl5 will execute the hashbang faithfully today, it didn't use to do that for "#! /usr/bin/perl6" 13:20
It's more unblocking than rewarding, really 13:21
masak I didn't say anything about rewarding.
I said "acknowledging".
as in, recognizing that it's there.
leont I replied on "first off􏿽x85" 13:22
masak oh! sorry :)
yes, you're right.
any executable name without the substring `perl` in it would already work.
so, yes -- unblocking is a better phrasing.
actually, it suggests to me that matching on /perl/ in the first place is risky. should be /\bperl\b/ or something. 13:23
leont Backwards compatibility makes that tricky 13:24
13:24 prevost joined
DrForr imperlious, experlience... 13:24
leont That last \b is a no-go, versioned perl5's are not that uncommon 13:25
masak oh, good point. 13:26
13:26 prevost left
masak .oO( backwards compatibility would be a lot simpler, if it weren't for all those annoying users out there ) 13:26
leont The first \b would have been a good idea, but given the dubious gains and the risks I suspect it wouldn't be accepted 13:27
masak *nod*
13:30 smls left, smls joined 13:31 atroxaper joined
[Sno] is learnxinyminutes.com/docs/perl6/ known here? 13:35
13:36 atroxaper left
DrForr #perl6 is mentioned at the bottom :) 13:36
timotimo yes, one of ours has written that. it was vendethiel 13:37
13:40 jaffa4 left
dalek blets: 5658144 | (Herbert Breunung)++ | docs/appendix-a-index.txt:
removed sprintf
13:41
13:46 aborazmeh joined, aborazmeh left, aborazmeh joined
nine leont: nice! Love that patch :) 13:49
13:49 bjz joined
masak lichtkind: doesn't that commit remove printf, not sprintf? 13:54
gtodd1 what is the technical term for perl6 (and other languages) feature that allows multiple iteration/loop values like: for @list -> $a , $b, $c { do separate things with $a,$b,$c } 13:59
or is there one ... 14:00
PerlJam gtodd1: you can always make one up ... "multi-iterative" might work :) 14:01
Ulti gtodd1 list/parameter unpacking is what I've heard it referred to fairly generally not sure there is something specific for it being in a loop 14:04
timotimo hmm
it feels to me like list or parameter unpacking is about having a single item-y value in a list and taking it apart into pieces
rather than taking multiple items from a list for every iteration
Ulti well yeah usually a single list 14:05
gtodd1 hehe wheeee!!! it is not really something that gets bragged about in the synopses too much design.perl6.org/S04.html#The_for_statement
Ulti: good point
Ulti because its not really /that/ special
gtodd1 :-D
wait is it in Ecmascript 6 ?! :-D
Ulti dunno but its in most languages that have everything as a list 14:06
gtodd1 heh right ... one day over the course of time perl6 might become ecmascript compatible by accident .... 14:08
14:09 rindolf joined
Ulti I guess the cool thing for the loops in P6 is that its a pointy block rather than special syntax for just the loop 14:10
PerlJam I guess those zip examples need updating with parens now.
DrForr Heh, change the P6 frontend to write out asm.js instead of JVM code :)
masak DrForr: pmurias is working on nqp-js (and eventually rakudo-js) 14:12
sorry, meant pmurias++
gtodd1 pointy block ... for @list -> THIS_CAN_BE_ANYTHING? 14:13
DrForr scribbles for future reference.
masak gtodd1: it's a signature
gtodd1: just like inside `sub foo(...)`
gtodd1 so could that signature part be a function ? 14:14
that returns a signature
masak ...no. not if I understand you right.
gtodd1 errm wait let me figure out if what I just asked makes sense
hahaha
ok skip that :-D
PerlJam masak: could it be ... A MACRO?!? ;) 14:15
gtodd1 that's the word I was looking for!
masak I think gtodd1 ventured into the realm of macros with that suggestion, yes.
gtodd1 we can haz macros! :-D
sorry
masak but I'd want a concrete example, I think. not just handwaving :)
gtodd1 \o
:-D
Ulti but then what are ($var1,$var2) = @list; or ($var1,$var2) = funcall(); the concept is more general than signatures just P6 goes the extra mile in the example of pointy blocks its more about a list populating a sequence of scalars generically? what's that called 14:18
timotimo it's not pointy blocks that are doing it
the mechanism that implements list iteration for for loops inspects the arity of the given block 14:19
Ulti sure but the semantics of taking things from a list/iterable and populating scalars regardless of where and how, does that have a name which is language agnostic? 14:20
feels like something functional people would have a name for
arnsholt I usually call that "destructuring" 14:21
masak yes, there you go. that's the name of it. 14:24
and it's what ES6 has too, though I'm not sure it can be used in loops.
not in for loops, I don't think.
well, not the foreach type, anyway. 14:25
Ulti lisp does though by the looks of it, and calls it destructuring (what doesnt lisp do) 14:26
14:27 espadrine_ is now known as espadrine, nys joined
masak I didn't find any function that does this in the Haskell standard prelude. 14:28
Ulti oh neat lisp uses the same range keywords as icon if only it had less () so I could fall in love with it 14:29
arnsholt masak: Well, in Haskell it's basically a syntactic construct, isn't it? 14:32
masak arnsholt: my Haskell ain't so good. how would you do it in Haskell? 14:35
arnsholt You get it via the pattern matching syntax, don't you? 14:41
The exact syntax escapes me ATM, but basically "foo [head | tail] = ..." for lists for example
masak oh, that's one way, yes. 14:43
14:43 brrt left, |Tux| left, |Tux| joined 14:54 pierrot left, pierrot joined
moritz head:tail iirc 14:57
though my haskell is also rather rusty 14:58
masak aye
14:59 JimmyZ_ joined, FROGGS left
timotimo it may be interesting to see what a haskelly rust might look like :P 15:00
espadrine isn't rust already haskelly? 15:02
timotimo no clue 15:08
15:08 aborazmeh left
leont A bit 15:10
TimToady my haskell is a bit rusty
15:10 kurahaupo left 15:12 andreoss` joined 15:14 andreoss left 15:16 diana_olhovik_ left, smls left
TEttinger oh boy. arnsholt++, I imagine you encountered this error when running Snake: Syntax error at line 2, near "'1'" 15:19
I'm trying to run a quick eval on the command line, like... 15:20
nqp-m.bat lilikoi\lilikoi.nqp -e'1'
(I'm on windows, but rubyish ran fine so it isn't a \r\n thing I think)
the two sets of quotes are odd. "'1'" 15:21
timotimo there is a --rxtrace flag that you may be able to use
for perl6 it's pretty useless, because it always only outputs up to CompUnit or something 15:22
15:23 zakharyas left, gfldex joined 15:24 kurahaupo joined
geekosaur TEttinger, you are aware that cmd.exe only supports "" quoting and only of whole "words"? 15:26
TEttinger oh boy. thanks timotimo, that does help
geekosaur: ?
geekosaur so the double quoting in the error is the "" delimiting the error string, and the '1' is what nqp tried to parse
TEttinger ah
geekosaur when you say -e'1', a unix shell sends -e1 and cmd.exe sends -e'1' 15:27
TEttinger which is not valid in my lisp, since ' as the quote macro isn't implemented yet
oh ok
so is there a better shell to use for this?
tony-o_ cygwin is more fun 15:28
geekosaur well, if you expect unix-style shell quoting to work, you should use a unix-like shell :)
otherwise adapt your quoting to fit the shell you are using
TEttinger I didn't actually know that was a unix thing
would -e(+ 1 2 3)
that type of thing, work?
tony-o_ you have to do -e "(+ 1 2 3)"
geekosaur ^ 15:29
15:29 larion left
tony-o_ otherwise it parses -e(+ and then the rest as just extra params 15:29
TEttinger that definitely helps, thanks
tony-o_ cygwin might be a decent download if you want to get unixy style parameter parsing, it doesn't work half badly with perl6 either (though you still need to compile perl6 for windows)
geekosaur (note, in reality windows just passes a single string to the application, it is the C runtime that does simplistic "" handling and argument splitting) 15:30
tony-o_ didn't know that geekosaur++
TEttinger "Unable to obtain AST from NQPMatch" is the current error that seems accurate now...
dalek line-Perl5: 2caa790 | (Stefan Seifert)++ | / (6 files):
Support subclassing Perl 5 classes directly, without the Perl5Parent role.

Inline::Perl5 creates a corresponding Perl 6 class for each Perl 5 module loaded via the use Foo:from<Perl5> or $p5.use('Foo') mechanisms.
You can subclass these automatically created classes as if they were original Perl 6 classes:
   use Data::Dumper:from<Perl5>;
   class MyDumper is Data::Dumper {
   has $.bar;
   }
15:31
15:35 khw joined 15:38 FROGGS joined
TEttinger so this error, "Unable to obtain AST from NQPMatch", could it mean that somewhere I'm not returning a make $<whatver>.ast from an action method? 15:43
tadzik nine++ # this is amazing
TEttinger errr, not .ast 15:44
nine tadzik: I remember us sitting on those steps in Sofia and talking about how much you can do with the most basic support. Who'd have thought this little experiment would evolve so quickly? :) 15:45
timotimo TEttinger: "return" and "make" behave very differently 15:47
TEttinger: but it cold very well be the case that you're missing a "make" somewhere
15:48 domidumont left
TEttinger I think I may have spotted something... 15:48
I will commit this so it will be easier to communicate
15:48 leont left
TEttinger I think the problem is, I have this proto token but no corresponding method github.com/tommyettinger/lilikoi/b...oi.nqp#L29 15:50
I don't know what the method would look like though 15:51
15:51 diana_olhovik_ joined
timotimo i don't think that's problematic 15:51
i don't even think we call the action method on proto tokens and such; is that right?
TEttinger rubyish doesn't have one
hm
timotimo all in all, i think the proto token and the one it ends up actually calling will only have a single match object that you can set a .ast on with "make" 15:52
TEttinger I do have method exp:sym<value>($/) { make $<value>.ast; } 15:53
and I have lots of rules like value:sym<string> and such 15:54
timotimo right
that seems to be correct
TEttinger (well, tokens not rules)
I may be misusing rules and tokens
it seems to call ws rules a lot
timotimo any rule, token, regex is more or less "just a method"; which one you choose just changes the default parameters that are set inside for the regex portion 15:55
ugexe what is actually emitting an NQPMatch object instead of the CompUnit you expect
er, QASTUnit
TEttinger ugexe, I don't understand
ugexe which 'rule' causes the problem 15:56
TEttinger here's the rxtrace pastebin.com/S300AiRq 15:57
dalek kudo/nom: eb39888 | lizmat++ | src/core/IO/Handle.pm:
Quick fix for #125454

This is handled properly in the newio branch already, so I think a quick fix will do.
TEttinger I really have no idea which rule-like thing is causing the problem 15:58
ugexe its token ws where it stops
TEttinger yes, I had to tweak that one a bit
timotimo welllll, this is inside the compile step
... could it be that your TOP isn't "make"ing something? 15:59
TEttinger github.com/tommyettinger/lilikoi/b...i.nqp#L154
timotimo it's most likely that the parse step is already complete at that point
so the ws at the end just means that your code ends in something being parsed as ws
like the last end of line
PerlJam does <!after <id>> parse properly?
I would have written "<!after <id> >" so as not to confuse myself later at least 16:00
timotimo it ought to work 16:01
PerlJam (since >> has a high "chunking factor" for me)
16:01 colomon left
TEttinger hm, I changed github.com/tommyettinger/lilikoi/b...i.nqp#L179 just now, still no change 16:01
but I think for @<exp> is what it should be? 16:02
ugexe $<exp>.list possibly 16:04
PerlJam or @($<exp>)
timotimo i know we have support for @<exp> in perl6, we may not have it in nqp 16:05
TEttinger I've seen it in rubyish 16:06
stmtlist in rubyish uses: for @<stmt>; 16:07
as a suffix
timotimo OK 16:08
16:09 rindolf left
pmichaud good morning, #perl6 16:10
hoelzro_ morning pmichaud
nine Good morning, pmichaud 16:11
timotimo good morning, pmichaud :)
tadzik nine: yes! :)
nine: I didn't expect it to become so advanced, like, ever :P 16:12
nwc10 good UTG, pmichaud
TEttinger interesting, @($<exp>) throws an exception about being unable to find .list
PerlJam nine: Inline::Perl5 should be part of Rakudo Star :) 16:13
nine PerlJam: of course I'd like that :) Come to think of it: is there any reason not to include it? Perl 5's already needed for building rakudo, isn't it? 16:14
lizmat_ m: class A { my $boo will leave { } }; # what should "will leave" on a class lexical do ?? 16:17
camelia rakudo-moar 164f1e: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xNkXzDDNKu␤Method 'add_phaser' not found for invocant of class 'A'␤at /tmp/xNkXzDDNKu:1␤»
16:17 uncleyea1 joined
lizmat_ agree with #125455 that error is LTA, but I'm not sure what meaning it would have 16:17
16:17 lizmat_ is now known as lizmat
lizmat PSA: I may or may not get to doing a P6W today 16:18
TEttinger Pat 6 Weimerauners 16:19
16:20 uncleyear left
TEttinger there's a lot of acronyms in use here :) 16:20
16:20 atroxaper joined
PerlJam S99 16:21
S99:P6W
16:22 hoelzro_ is now known as hoelzro, synbot6 joined
PerlJam S99:P6W 16:22
synbot6 Link: design.perl6.org/S99.html#P6W
16:23 spider-mario joined 16:25 atroxaper left 16:26 smls joined
gtodd1 hmm stackoverflow.com/a/28587025/2019415 16:27
the perl6 example there shows <> at the end of a %hash.perl
oh wait I forgot about camelia :-)
16:28 vendethiel left
gtodd1 camelia: m: my %war_on_drugs_industrial_complex = < money prisons > ; %war_on_drugs_industrial_complex.perl ; 16:29
camelia ( no output )
gtodd1 camelia: m: my %war_on_drugs_industrial_complex = < money prisons > ; %war_on_drugs_industrial_complex.perl.say ;
camelia gtodd1: rakudo-moar eb3988: OUTPUT«{:money("prisons")}<>␤»
gtodd1 why is there a <> ? ... 16:30
tony-o_ because you're not using Data::Dump ;) 16:31
16:32 vendethiel joined
gtodd1 :-) which is "built in" now ... doh! 16:32
ok ... I figured the <> was telling the compiler something special about constructing a list so the output could be "round tripped" back and forth etc. 16:33
timotimo i didn't know we could "camelia: m:" 16:34
the <> at the end means basically "deconted"
pmichaud gtodd1: yes, the <> is there for round tripping, I think. I'm hoping to eliminate that post-GLR.
(expecting to do so) 16:35
gtodd1 wow cool
lizmat m: my @a = 1,2,3; say @a.perl
camelia rakudo-moar eb3988: OUTPUT«[1, 2, 3]<>␤»
lizmat m: my $a = [1,2,3]; say $a.perl
camelia rakudo-moar eb3988: OUTPUT«[1, 2, 3]␤»
tony-o_ m: my @a = EVAL('[1, 2, 3]<>'); @a.perl.say;
camelia rakudo-moar eb3988: OUTPUT«[1, 2, 3]<>␤»
lizmat <> is the (temporary) decontainerize marker
afk again& 16:36
tony-o_ m: my @a = EVAL('[1, [2]<>, 3]<>'); @a.perl.say;
camelia rakudo-moar eb3988: OUTPUT«[1, 2, 3]<>␤»
gtodd1 pmichaud: once you have done that the explanation will appear obvious so I will hereby NOT ask to explain how perl will know it is dealing with the output of .perl :-)
pmichaud well, in the new GLR design, my @a = 1,2,3; say @a.perl will output "[1, 2, 3]" with no <>. 16:37
because [...] no longer containerizes the array.
gtodd1 I had the feeling that the answer would "there will be no such question any longer" ...
16:37 cognominal left 16:38 rarara left
gtodd1 pmichaud: that makes sense :-\ 16:38
pmichaud that also means that things like my @a = [ 1, 2, 3 ]; does what most people expect. 16:39
gtodd1 data point: .... it seems that each time I spend a month or so away from perl6 when I come back and it seems simpler and easier to understand 16:40
even if this is a more a personal neuronal thing ... it is still a very good sign 16:41
nine pmichaud: speaking of the GLR, how is it coming along?
pmichaud I worked on it over the weekend (during a road trip) -- I'm transfering new information into S07 tonight. 16:42
gtodd1 I changed that SO answer to add a Perl6 example ... I hope it makes Perl6 look good :-D
pmichaud I'm expecting to get a fair bit done (code) on GLR this week. 16:43
nine pmichaud: I haven't been able to follow the channel in the past 6 weeks. So I was hoping for a bit coarser answer :)
gtodd1 so SO7 is the thing to watch? Is there a branch ... github dropdown shows a lot of them to choose from! 16:44
pmichaud nine: oh. Current information is in S07-glr-draft.
github.com/perl6/specs/blob/master...-draft.pod
there's not a code branch yet
it's still in design
nine pmichaud: ah, thank you very much :)
gtodd1 ++ 16:45
16:45 rindolf joined
pmichaud My latest musings (re-)introduce a Seq type, which will be used to efficiently manage iteration. 16:49
anyway, it'll be in tonight's S07 update. :) 16:50
16:51 espadrine left
gtodd1 hmm from somewhere deep down in twitter.com/CompSciFact (++) "2015 is a palindrome in binary: 11111011111" 16:52
16:53 vendethiel left
gtodd1 wait ... there are 11 numbers (5+6) and 0 is in the 6th and the 6th last position ... this could be the numerological explanation of Christmas! 16:54
16:57 muethos joined, muethos left, muethos joined 17:00 dakkar left
DrForr I don't suppose there' a variant of .perl that prettyprints its output... Lining up braces so I can see the output with some whitespace is driving me blind. 17:02
17:02 skids joined
PerlJam DrForr: you probably want Data::Dump 17:03
DrForr Right, that'll do.
smls nine: Nice work, making Perl 5 classes directly subclassable from Perl 6. 17:04
Now make exported Perl 5 functions directly callable from Perl 6... :P
17:05 vendethiel joined
smls Also, is it intentional that "panda install Inline::Perl5" will fail if Moose is not installed? 17:05
If it doesn;t actually need it except to run some tests, wouldn't it be better if those tests were skipped when Moose is not installed.
17:06 colomon joined
nine smls: it's not intentional. I seem to have screwed up the skipping 17:06
dalek line-Perl5: 24600bc | (Stefan Seifert)++ | t/inherit.t:
Fix tests not being skipped when Moose is not installed

Thanks to smls++ for reporting!
17:12
muethos grrr 17:13
ups
17:13 larion joined, colomon left
timotimo gtodd1: there's actually no need to loop over the < ... > stuff at all for that SO answer 17:14
er, no
what i meant to say was:
if you use a list of pairs instead, you can just push that into a hash and it'll give multivalue values :)
nine smls: Actually I already tried importing exported Perl 5 functions directly, but ran into a strange limitation of perl
TEttinger hm, this is going better, maybe? I found that I had lots of rules and tokens that mentioned the token id , but no action method for id 17:15
however, after adding an action method, it doesn't seem different 17:16
id's body is just: make ~$/;
id is exactly like the builtin ident, but tolerating more than alphanumeric and underscores
(at least it's supposed to be. anything that you can put in a name) 17:17
17:17 rir joined
nine pmichaud: what bothers me about the Slip or Seq type is it's yet again a different way to flatten. For me the hardest thing about learning Perl 6 was just passing on arguments from a slurpy array. I never knew whether I needed |@args or @args.list or now the new Seq(@args) 17:18
17:19 yqt left
pmichaud well, I suspect most programmers will rarely encounter or use Slip directly. 17:20
tony-o_ DrForr: i'll take a look ^
DrForr Ohai.
tony-o_ howu
nine pmichaud: if Slip is the way to concatenate lists, they probably will 17:21
pmichaud I could be wrong about that. In many ways Slip is what Parcel was intended to be -- something that happens internally but doesn't get a lot of exposure outside.
well, Slip is the way to concatenate lists without flattening their contents.
if I want to concatenate two arrays, then flat @a, @b is still likely to be the way to do that. 17:22
nine As a Perl 5 programmer, concatenating without flattening sounds like the "normal" use case.
tony-o_ DrForr: in that bug, what is '$p' ? 17:23
pmichaud nine: really? that's.... odd, since Perl 5 does concatenation with flattening.
gtodd1 timotimo: !!!
nine pmichaud: I'd argue that it doesn't. A Perl 5 array cannot contain anything flattenable as lists would be flattened already when they are put into the array. Once they're there, they're no lists anymore. And arrayrefs will not be flattened. 17:24
pmichaud nine: in p5, the result of @a, (1, 2, 3, (@b, 5..10)) is completely flattened 17:25
to get that same behavior in p6, use 'flat'
nine Ok, I didn't think of parenteses. But with my @a = (1, 2, [3, 4]); my @b = (5, 6); my @c = @a, @b; will give you (1, 2, [3, 4], 5, 6) 17:26
pmichaud in p5 or p6?
nine in p5
gtodd1 timotimo: like: %hash = <tinku 15 tina 4 rita 18 tinku 18 tinku 17 tinku 16 rita 19>.pairs.push ; 17:27
pmichaud in p6, one would write: my @a = 1, 2, $[3, 4]; my @b = 5, 6; my @c = @a, @b results in (1, 2, [3, 4], 5, 6)
gtodd1 timotimo: oh wait that doesn't work quite right
17:27 gtodd1 is now known as gtodd
pmichaud the $ explicitly says "don't flatten this part" 17:27
DrForr tony-o_: If there's not enough info for you to debug I can tell you how to derive the test scripts.
pmichaud more precisely, it results in (1, 2, $[3, 4], 5, 6) 17:28
i.e., @c.elems is 5, and @c[2] is an Array.
gtodd timotimo: but I get your drift :)
nine pmichaud: pre or post GLR? 17:29
pmichaud post GLR
more importantly, no Slip involved at the programmer level.
nine pmichaud: so what's the difference between my @c = @a, @b; and my @c = Slip(@a), Slip(@b);? 17:30
pmichaud in this case, nothing.
Slip() is primarily needed when creating a list using a generator of some sort, such as a gather/take or a map
and then only if you want to produce a list that has a different number of elements than the number of takes or map iterations 17:31
nine Ok, that sounds like a more advanced feature, indeed. Might be something worth clarifying in S07 17:32
pmichaud the number of times we need to concatenate lists is fairly small. Indeed, at the moment Rakudo (pre-GLR) doesn't have any way to concatenate lists, and we obviously do okay without it. :)
nine m: my @a = 1, 2, 3; my @b = 4, 5, 6; my @c = @a, @b; say @c.perl; 17:33
camelia rakudo-moar eb3988: OUTPUT«[1, 2, 3, 4, 5, 6]<>␤»
nine For me that ^^^ still looks like concatenation :0
;)
pmichaud actually, it's a flattening.
the type of concatenation I'm referring to is something like this: 17:34
my @a := (1, 2..5);
my @b := <a b c>
now, make a list that is exactly (1, 2..5, <a b c>) from @a and @b
such that the number of elems of that list is 3
oh, wait, i got that slightly wrong. 17:35
make a list that is exactly
(1, 2..5, 'a', 'b', 'c') from @a and @b
such that the number of elems of that list is 5
i.e., @a has two elements (an Int and a Range)
@b has three elements (three Strs) 17:36
so the concatenation of @a and @b should have five elements
we don't have a way to do this in Perl 6 currently.
nine Ok, now its crystal clear. Thanks for enlightening me!
masak pmichaud++ # hadn't thought of that difference 17:38
pmichaud it's the problem I repeatedly run into when trying to implement things like .kv
obviously .kv should be created using some sort of iterator. but if we do something like take $key, $value
then what we end up with is a list consisting of 2-item lists
i.e., ((k0, v0), (k1, v1), (k2, v2), ...) when what we really want is (k0, v0, k1, v1, k2, v2) 17:39
nine With take Slip($key, $value) it would work as intended 17:40
pmichaud correct
also, Slip() becomes the way to have an iteration that doesn't insert a value into a list
i.e., for 1..5 { $_ == 3 ?? Slip() !! $_ } can produce (1, 2, 4, 5) 17:41
PerlJam and what happens to () ?
pmichaud as opposed to (1, 2, Nil, 4, 5) or (1, 2, (), 4, 5)
PerlJam: () is a List with zero elements. 17:42
gtodd camelia: m: (my %h3).push: <tinku 15 tina 4 rita 18 tinku 18 tinku 17 tinku 16 rita 19>.pairs.invert.unique ; %h.perl.say
camelia gtodd: rakudo-moar eb3988: OUTPUT«5===SORRY!5=== Error while compiling /tmp/eYVZ0GRIRq␤Variable '%h' is not declared␤at /tmp/eYVZ0GRIRq:1␤------> 3tinku 16 rita 19>.pairs.invert.unique ; 7⏏5%h.perl.say␤»
nine So Slip() really is what () is in Perl 5 while [] is something between P5's () and [] and $[] is mostly like []
17:42 domidumont joined
pmichaud [] is an Array constructor. 17:42
tony-o_ DrForr: i was able to reproduce the rror by 'Dump'ing GLOBAL::
pmichaud $[] is most like an arrayref, without actually being a ref
gtodd /gsm camelia 17:43
pmichaud (or, more precisely, it's the equivalent of all of the other refs we have in p6)
tony-o_ DrForr: i think i got it working enough that it won't die, it may not show you everything that you expect to see though. if it doesn't lmk and i can figure out how to add more info to Dump
pmichaud the main thing about [ ] is that it itemizes it contents
and produces an Array object instead of a List object
DrForr Cool, let me update.
gtodd timotimo: what am I doing wrong here ? 17:44
camelia: m: (my %h).push: <tinku 15 tina 4 rita 18 tinku 18 tinku 17 tinku 16 rita 19>.pairs.invert.unique ; %h.perl.say
camelia gtodd: rakudo-moar eb3988: OUTPUT«{"15" => 1, "16" => 11, "17" => 9, "18" => [5, 7], "19" => 13, "4" => 3, :rita([4, 12]), :tina(2), :tinku([0, 6, 8, 10])}<>␤»
DrForr tony-o_: t/01-hash.t fails at line 22 after rerunning 'panda install Data::Dump'. 17:46
gtodd timotimo: I just want the "classified" part :rita([4, 12]), :tina(2), :tinku([0, 6, 8, 10] ... not sure I get where something like "17" => 9 ... is coming from
nine m: say (1, 2..5).perl; say [1, 2..5].perl;
camelia rakudo-moar eb3988: OUTPUT«(1, 2..5)␤[1, 2, 3, 4, 5]␤»
gtodd timotimo: well I know where it's coming from but I don't know whey it is there :-) 17:47
nine pmichaud: if [] itemizes, shouldn't it keep the range as is instead of interpolating it?
pmichaud yes, in the current GLR design it would do that.
which is why there's a conjectured :[ ] which flattens its contents. 17:48
(and then itemizes)
TEttinger so if in an NQP action method, the only line is: make ~$/;
in that case, what does that mean?
it seems not to do what I would expect, which is just return the string of what was matched
tony-o_ DrForr: try it again, i forgot to commit the test files 17:49
pmichaud and, of course, one could always do [flat 1, 2..5, <a b c>] which would produce an array of eight elements
masak I think I prefer that form
pmichaud same here
masak in terms of legibility
DrForr Heh. One sec...
pmichaud I'm not a fan of the colon form, but TimToady++ keeps mentioning it. :) 17:50
masak the colon form for hashes :{ } does something completely different
:[ ] doesn't feel strangely consistent here, just chosen because it's available
DrForr tony-o_: Now responding with 'ANTLR4::Actions::Perl6::Shim.new(ast => {:actions([]), :content([{:action(Any), :attribute([]), :content([{:content([{:commands([]), :content([{:!complemented, :content("INT"), :!greedy, :modifier(Any), :type("nonterminal")}]), :label(Any), :options([]), :type("concatenation")}, {:commands([]), :content([{:!complemented, :content([{:content([{:!complemented, :content("INT"), :!greedy, :modifier("?"), :type("nontermin 17:51
GAH
SOrry.
pmichaud I do like that we now have a nice way to construct both the three-element [1, 2..5, <a b c>] and the eight-element [flat 1, 2..5, <a b c>]
moritz fwiw NQP doesn't distinguish between flatenning and non-flattening arrays
sorry, I replied to stale backlog 17:52
pmichaud technically, NQP doesn't have arrays at all.
just lists.
DrForr tony-o_: Now responding with 'Invocant requires a 'Failure' instance, but a type object was passed. Did you forget a .new?' in sub key at lib/Data/Dump.pm6:9 (there's much more to the stacktrace but after that boner I'm afraid to paste :) )
tony-o_ DrForr: no worries, can you tell me where/how to get whatever file you're using to test (then i can make the tests better and fix this one)? 17:53
nine pmichaud: :[] ... Larry's first rule of language design? ;)
tony-o_ timtowtdi dwim and colons
17:54 vendethiel left
smls I gotta agree with masak the - having the colons in :[ ] and :{ } mean conceptually totally different things, does not sound nice. 17:54
*there
DrForr tony-o_: Sure. examples/antlr42perl6 of github.com/drforr/perl6-ANTLR4 is what I'm running, replace sub MAIN with what's in the github issue. The test file I'm using for it is corpus/Abnf.g4 from the same project.
pmichaud nine: I think it's the 2nd Law of language design. :) 17:55
17:55 vendethiel joined
TEttinger anyone know what action methods do when they have as their last line, make ~$/; 17:55
smls pmichaud: If syntactic sugar for flattening is needed, I think it should be | although then a new syntax would have to be invented for interpolating in signatures
timotimo gtodd: i think you misunderstand what ".pairs"d oes 17:56
pmichaud smls: fair enough, but you'll have to speak to the Language Redesigner to get that change in place. :)
smls :P
gtodd timotimo: k
japhb
.oO( GLR: Great Language Redesigner )
17:57
tony-o_ DrForr: i'll take a look ^ ty
nine Why is | only used for flattening in signatures anyway? Seems rather un-Perl-6y to have such a special case. 17:58
pmichaud technically, it's not "flattening"
smls well, it does something different from flattening
pmichaud what it's doing is saying "interpolate this into the argument list"
and argument lists aren't Lists
17:59 _mg_ left
timotimo gtodd: you're calling .pairs on a list; .pairs on a list behaves a lot like .kv on a list, but it gives you Pair objects 17:59
gtodd: i think we have something called "pairup" that does what you want here
which is take alternating values as the key and value for Pair objects
jnthn TEttinger: Sets .ast on the Match object to be the stringification of what was matched
timotimo rather than building Pair objects from the array index and the value at that position
smls m: dd (2, 4, 6, 8).pairup
camelia rakudo-moar eb3988: OUTPUT«(2 => 4, 6 => 8)␤»
pmichaud m: dd (2, 4, 6, 8).pairs # for comparison 18:00
camelia rakudo-moar eb3988: OUTPUT«(0 => 2, 1 => 4, 2 => 6, 3 => 8)␤»
smls dd (2, 4, 6, 8).map({; $^k => $^v }); # alternative
m: dd (2, 4, 6, 8).map({; $^k => $^v }); # alternative
camelia rakudo-moar eb3988: OUTPUT«(2 => 4, 6 => 8)␤»
jnthn TEttinger: Note that if you want something that's going to evaluate to a string, it needs wrapping in a QAST::SVal
TEttinger jnthn: thanks, and the result of that (the action method with that line is id ), could it be used like...
hm
make QAST::Var.new( :name(~$<id>), :scope('lexical') ); 18:01
would id behave correctly there?
gtodd timotimo: yeah that works ... intead of another methdo I was looking for some way to for the pairs to be arrayrefs or something [ ] 18:02
jnthn Well, that's valid, but if you're looking to access the thing you set with "make" in the action method of id then you want $<id>.ast
smls timotimo: On "camelia: m: ..." working, that's probably for the same reason perl6 -e "m: ..." works - the m: is parsed as a label :P
gtodd instead of another method I was looking for some way to force the pairs to be arrayrefs or something [ ] and got distracted
timotimo: so thanks
TEttinger if id is a token that matches effectively anything that isn't a grouping symbol, reserved symbol, or starting digit, any number of times, then .ast should get the thing? 18:03
DrForr And now I'm getting "Use of uninitializd value $v ..." when I don't *have* a $v. Filing a bug report
tony-o_ DrForr: gist.github.com/tony-o/aa49fff84a110143aaf7
is there anything *not* in there that you'd expect to see?
18:03 colomon joined
DrForr Thanks, I'll file this issue first though... 18:03
jnthn TEttinger: Only if you are doing "make" in the action method for id 18:04
TEttinger hm
jnthn TEttinger: If you've a concrete example of what you're trying that you can gist, I'll take a glance at it
gtodd smls: pmichaud timotimo: thanks all
TEttinger well I'm getting this error pretty much regardless of what I try, let me post the error and code. Unable to obtain AST from NQPMatch
18:04 _mg_ joined
jnthn Ah, OK. I know where the error comes from, but I'll need the code to see why you're getting it :) 18:05
18:05 danieli joined
smls m: dd (2, 4, 6, 8).map(* => *) 18:06
camelia rakudo-moar eb3988: OUTPUT«(2 => 4, 6 => 8)␤»
smls ^^ Makes me wonder why we even need pairup... :)
PerlJam smls: it's more human-friendly :)
gtodd smls: that looks more perl5 brain friendly too
FROGGS m: dd (2, 4, 6, 8).map([=>] *,*)
camelia rakudo-moar eb3988: OUTPUT«Method 'count' not found for invocant of class 'Pair'␤ in block <unit> at /tmp/JZNJaHKFWW:1␤␤»
TEttinger errors, jnthn: pastebin.com/vRdSmsim code: github.com/tommyettinger/lilikoi/b...ilikoi.nqp
FROGGS aww
smls PerlJam: I don't know, I think the map is more self-documenting 18:07
dalek ecs: 1278284 | (Stefan Seifert)++ | S07-glr-draft.pod:
Fix typo in S07-glr-draft.pod
pmichaud I like * => * a bit better than .pairup also.
PerlJam smls: yeah, I can't argue that. 18:08
pmichaud although I'm sure .pairup is/can be faster than the .map
18:08 cognominal joined 18:09 mj41 joined
mj41 m: "10 20".split(" ").[0,1].reduce:{$^a + $^b}.say 18:09
camelia rakudo-moar eb3988: OUTPUT«-> ($a, $b) { #`(Block|44053488) ... }␤Type check failed in binding &with; expected 'Callable' but got 'Bool'␤ in block <unit> at /tmp/rpjYDB5clB:1␤␤»
mj41 m: say "10 20".split(" ").[0,1].reduce:{$^a + $^b}
camelia rakudo-moar eb3988: OUTPUT«30␤»
jnthn TEttinger: Ah, I see it
TEttinger oh? 18:10
jnthn Action methods are called on rule/token/regex
You have a method TOP, which calls token comp_unit.
That's fine, we do the same in the Perl 6 compiler
TEttinger ah, and no comp_unit?
jnthn But it means the action method you named TOP wants to be called comp_unit
TEttinger ohhhh 18:11
what action method should be called TOP then?
does it need any?
jnthn You don't need one
TEttinger sweet, will try now
jnthn Your TOP method in the grammar calls self.comp_unit;
Which just returns the Cursor that comp_unit produces
And that's where you'll have attached the .ast with "make" in the comp_unit action method 18:12
18:12 dha joined
jnthn If it helps, you can imagine each token/rule/regex as containing an implicit call to your action method at the end, provided there is one. 18:12
smls FROGGS: The comma operator stops * currying. If it didn't, cute expressions like 0, 1, *+* ... * would not be possible. 18:13
FROGGS smls: I see
timotimo jnthn: remember that thing i nagged you about? :) 18:14
DrForr waves dhaward.
18:17 Guest81919 is now known as ponbiki
dha Howdy DrForr 18:18
mj41 m: "10 20".words.reduce(* + *).say
camelia rakudo-moar eb3988: OUTPUT«30␤»
18:18 vendethiel left
dha I have the feeling that S28's contention that the p6 equivalent of C<$&> is C<< $<> >> is nonsense. Is that the case? 18:19
tony-o_ DrForr: lmk what you think of that gist, not sure what else it *should* have in it. also not sure how to handle that AST attr 18:20
18:20 Sqirrel joined
TEttinger jnthn, it seems to work, though I can't get whitespace to work as I hoped 18:20
dha Huh. It's NOT nonsense. 18:21
PerlJam m: "foo bar" ~~ /foo/; say $<>;
camelia rakudo-moar eb3988: OUTPUT«「foo」␤»
dha But, given that it looks to be the same as $/, WHY isn't it nonsense? 18:22
18:23 JimmyZ_ left
pmichaud m: "foo bar" ~~ /foo/; say $<>.perl 18:24
camelia rakudo-moar eb3988: OUTPUT«Match.new(ast => Any, list => (), hash => EnumMap.new(), orig => "foo bar", to => 3, from => 0)␤»
pmichaud m: "foo bar" ~~ /foo/; say ${}.perl
camelia rakudo-moar eb3988: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6_Fgxat15W␤Unsupported use of ${}; in Perl 6 please use $()␤at /tmp/6_Fgxat15W:1␤------> 3"foo bar" ~~ /foo/; say ${}7⏏5.perl␤»
PerlJam dha: It's probably "nonsense" in the sense that $() is really the equivalent to $&
18:24 vendethiel joined
FROGGS $() is $/.ast // ~$/, no? 18:25
18:25 _mg_ left
dha Ah. Yes, $() does seem to be a more precise analog. 18:25
But I do question why we have two variables that appear to do exactly the same thing. 18:26
colomon which bigint package are we using these days?
pmichaud S05:2968
synbot6 Link: design.perl6.org/S05.html#line_2968
PerlJam well ... as long as .ast isn't set as FROGGS mentions
pmichaud I can't find any reference to $<>, nor have I heard of such a construct.
mj41 rosettacode.org/wiki/A%2BB#Perl_6 updated :-)
18:27 telex left
dha pmichaud - it's in design doc S28 as the analog to $&. It also works. :-/ 18:27
PerlJam if $<> continues to exist, perhaps it should be the same as ~$/ (i.e. no .ast concerns) 18:28
pmichaud PerlJam: please, no.
18:28 telex joined, yqt joined
pmichaud to me, <> ought to retain it's qw-like and slicing meanings somehow. 18:28
dha In the meantime, should I change S28 to read C<$()> instead as the replacement for $&?
pmichaud don't overload it with yet another meaning
DrForr tony-o_: As that stands, I don't have a problem with it. I was more after a dumping of the content in $.ast but that may not have come across in my gist. Dump($p.parsefile($filename).ast); should return a formatted version of the .ast I've generated, and that's what I'm after so I can look at the content.
pmichaud I think the replacement for $& should be ~$/ 18:29
jnthn colomon: MoarVM uses libtommath, on JVM it's whatever backs the Java BigInteger class. On Moar we also have some fast-pathing to avoid the big integer library on smaller numbers
colomon jnthn++ 18:30
18:30 JimmyZ_ joined
pmichaud $() is not exactly the same as p5's $&, and using it instead of ~$/ will likely cause confusion. 18:31
since ~$/ is the more common (and accurate) construct.
dha Out of curiosity, how is it different?
pmichaud $() is defined as $/.made // ~$/
which means that if a Match object has an attached value (via 'make'), that's what gets returned instead of the string that was matched 18:32
PerlJam m: "foo bar" ~~ /foo {make "hi"}/; say $(); say ~$/;
camelia rakudo-moar eb3988: OUTPUT«hi␤foo␤»
pmichaud PerlJam++
dha Well, I certainly don't see a problem with putting this all under $/. But then again, I'm new here. :-) 18:33
pmichaud m: "foo bar" ~~ /foo { make 3}/; say $().WHAT; say (~$/).WHAT 18:34
camelia rakudo-moar eb3988: OUTPUT«(Int)␤(Str)␤»
dha But, as it stands, barring attached value issues, currently C<$()>, C<$/.Str>, C<~$/>, C<< $<>.Str >>, and C<< ~$<> >> all seem to do the same thing. And C<$/> and C<< $<> >> seem to be the same thing. 18:35
So, at the moment there seems to be a large amount of unnecessary duplication.
pmichaud dha: well, don't forget that what Rakudo implements isn't necessarily what the language requires.
$() is different from the others, because of .made/make 18:36
dha True. So, how do we determine what the language requires?
pmichaud dha: officially, by the test suite; unofficially, by the design documents ("specs")
dha (in case you missed it, I'm trying to write more comprehensive docs for people transitioning from p5 to p6)
pmichaud (yes, I've been reviewing them :)
I saw the FB post :) 18:37
dha Ah. thanks.
PerlJam ack didn't find $<> in my local copy of roast
pmichaud $<> is obviously doing something in Rakudo, but afaict it's not an official part of Perl 6.
so I think it's an emergent behavior somehow, as opposed to being defined.
FROGGS m: "foo bar" ~~ /foo/; say ${''}; 18:38
camelia rakudo-moar eb3988: OUTPUT«5===SORRY!5=== Error while compiling /tmp/rWnGTXGdQm␤Unsupported use of ${''}; in Perl 6 please use $('')␤at /tmp/rWnGTXGdQm:1␤------> 3"foo bar" ~~ /foo/; say ${''}7⏏5;␤»
dha It's defined in S28. (line 165)
pmichaud I mean, I know what $<foo> means, and I know what $<foo bar> means, but I'm having trouble figuring out how we're getting to $<> from those.
dha: S28 is conjectural.
dha: or, put another way, S28 is more of a following document than a leading one. 18:39
dha Right. Hence my question above about whether it should be changed. to, from your comments, C<~$/>?
pmichaud different synopses have different levels of "frozenness". Some contain fossils -- things that were once conjectured but have since been abandoned.
yes, I think S28 should be changed there, if nobody here knows where the $<> came from. 18:40
actually, let me git blame it a second and see if I can track it down
dha I really need to learn how to use git better. I never use blame. Probably 'cause I don't like blaming people. :-)
smls I thought maybe $ followed by postcircumfix:{} is simply compiled to $/ followed by postcircumfix:{}, but FROGGS' example disproves that.
FROGGS smls: my example is a special case of our grammar to catch P5isms 18:41
smls oh, so my theory could be true after all
FROGGS smls: so what you think can still be true
aye
pmichaud yeah, it looks like $<> was conjectured from the Pugs days
github.com/perl6/specs/commit/47f8...26979d692a 18:42
18:42 bin_005 joined
geekosaur IIRC pugs used that syntax, yeh 18:43
and it was conjectured as an alternate official syntax
dha Ok, shall I tweak S28 to C<~$/> as things stand?
pmichaud dha: yes, please.
and thank you :) 18:44
dha done 18:45
dalek ecs: dc72cb8 | (David H. Adler)++ | S28-special-names.pod:
Edited S28 to make C<~$/> the p6 analog of p5's C<$&>
pmichaud std: say $<>;
camelia std 28329a7: OUTPUT«ok 00:00 136m␤»
DrForr m: say ">$_<"; 18:46
camelia rakudo-moar eb3988: OUTPUT«5===SORRY!5=== Error while compiling /tmp/bmVj98jDWR␤Unable to parse quote-words subscript; couldn't find right angle quote␤at /tmp/bmVj98jDWR:1␤------> 3say ">$_<";7⏏5<EOL>␤ expecting any of:␤ postfix␤»
DrForr It blows up even more entertainingly if you have a method declaration later on :) 18:47
18:47 vendethiel left
pmichaud m: my %h = 1,2; say %h<> 18:48
camelia rakudo-moar eb3988: OUTPUT«1 => 2␤»
pmichaud m: my %h = 1,2,3,4; say %h<>
camelia rakudo-moar eb3988: OUTPUT«1 => 2, 3 => 4␤»
dha Should I assume that, with the elimination of C<$`>, C<$&>, and C<$'>, the associated performance penalties have been done away with?
18:48 vendethiel joined 18:49 JimmyZ_ left
pmichaud dha: yes. 18:50
dha thanks.
pmichaud I suspect that $<> is being translated into $/.postcircumfix:<{ }>() which is returning self.
18:50 Khisanth left
pmichaud m: 'foo bar' ~~ /foo { make 3 }/; say $<>.WHAT 18:51
camelia rakudo-moar eb3988: OUTPUT«(Match)␤»
pmichaud m: 'foo bar' ~~ /foo { make 3 }/; say $<> =:= $/
camelia rakudo-moar eb3988: OUTPUT«False␤»
pmichaud m: 'foo bar' ~~ /foo { make 3 }/; say $/.perl
camelia rakudo-moar eb3988: OUTPUT«Match.new(ast => 3, list => (), hash => EnumMap.new(), orig => "foo bar", to => 3, from => 0)␤»
pmichaud m: 'foo bar' ~~ /foo { make 3 }/; say $<>.perl
camelia rakudo-moar eb3988: OUTPUT«Match.new(ast => 3, list => (), hash => EnumMap.new(), orig => "foo bar", to => 3, from => 0)␤»
colomon I’m not seeing any sign of $<> in roast 18:52
pmichaud I think that $<> is just the same as $/.{} 18:53
which is improperly returning self
geekosaur that's my recollection
pmichaud well, unless that behavior was added to make the decontainerizer work.
(which I'm hoping to eliminate)
my $a = 3; say $a.perl 18:54
m: my $a = 3; say $a.perl
camelia rakudo-moar eb3988: OUTPUT«3␤»
pmichaud m: say 3<>
camelia rakudo-moar eb3988: OUTPUT«3␤»
pmichaud m: say 3<>.perl
camelia rakudo-moar eb3988: OUTPUT«3␤»
pmichaud yeah.
18:57 mohij joined
pmichaud smls: ${} is a prefix:<$> followed by a hash constructor, I suspect. 18:57
i.e., it's an itemized hash
smls: say ${ 1, 2, 3, 4}.perl 18:58
er
m: say ${ 1, 2, 3, 4}.perl
camelia rakudo-moar eb3988: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V7BJEBRPQ5␤Unsupported use of ${ 1, 2, 3, 4}; in Perl 6 please use $( 1, 2, 3, 4)␤at /tmp/V7BJEBRPQ5:1␤------> 3say ${ 1, 2, 3, 4}7⏏5.perl␤»
pmichaud hmmm
18:58 [Sno] left
pmichaud that may need to go away in GLR. 18:58
cognominal Does $<?> exist? github.com/perl6/specs/blame/maste....pod#L2508 18:59
pmichaud that looks like a definite fossil of some sort. 19:00
technically, $<?> would be the same as $/{'?'}
19:00 Khisanth joined
cognominal ya, that's a follow up to your discussion 19:00
pmichaud I really want a way to do git blame on earlier versions of docs 19:01
(via github)
cognominal so do I :)
masak original commit is 0c334d695d965883bdfd82fc624ecdd50f9224b9 19:02
"tweak result object from {''} into {'?'}"
pmichaud aha. At one point it looks like .ast/.made/make was going into $/{'?'}, and prior to that it was in $/{''}
(yes, I found out how to do it in github :) 19:03
19:03 andreoss` left
cognominal share it with us :) 19:03
colomon (you just check out the old version and do blame on that, right?) 19:04
pmichaud writing...
in this case I 1. followed the path to the commit (04b44e7) from cognominal's original blame listing, 2. clicked 'view' to see S03-operators as of that commit, 3. clicked 'history' to see the history of commits to that file up to that point, 4. clicked on the <> of the commit occurring before the 04b44e7 commit, 5. clicked "blame" on that 19:07
vendethiel colomon: should work
pmichaud repeat that sequence to go even earlier in history 19:08
dalek ecs: 2991e87 | (Stéphane Payrard)++ | S03-operators.pod:
S03: $() definition now consistant with S05
pmichaud afk, walk 19:09
dha so, S28 (which I trust less and less as time goes on... :-) indicates that the information formerly embodied by C<$+> can be gotten from C<$/> in p6. I'm probably just being dense, but I don't see an obvious way of doing this. 19:10
19:10 Khisanth left
ugexe $/<match-name> vs $+{match-name} ? 19:11
smls ugexe: That's %+ not $+ (in Perl 5) 19:12
ugexe huh?
dha yeah. in p5 $+ is still just a scalar. :-) 19:13
smls they're two different things
PerlJam ugexe: perldoc perlvar # :)
dha But that will definitely be helpful when I get to %+! ?-)
PerlJam There's less uncertainty about such things in P6. 19:17
m: for < Revision:1 Version:23 > { /'Version:' (.*)|'Revision:' (.*)/; say $/; }
camelia rakudo-moar eb3988: OUTPUT«「Revision:1」␤ 0 => 「1」␤「Version:23」␤ 0 => 「23」␤»
PerlJam (parrotting the example given in perldoc) 19:18
notice that in both cases it's the $0 var that has a value.
smls Yeah, example could just use $0 in Perl 6, because capture numbering resets for each branch of an alternations
dha C<$/[-1]> working would make my life easier. :-) 19:21
PerlJam dha: $/[*-1] does work 19:22
dha Aha. What's the * doing there?
And whatever it's doing, it's ugly. :-) 19:23
19:23 smls_ joined, smls left
PerlJam that's funny 19:24
* is actually a Whatever
dha ...right...
PerlJam S02:1126 19:25
synbot6 Link: design.perl6.org/S02.html#line_1126
smls_ m: my @a = 2, 4, 6; say @a[*-1]; say @a[{ $_ - 1 }]; # <-- dha
camelia rakudo-moar eb3988: OUTPUT«6␤6␤»
colomon m: my @a = 2, 4, 6; say @a[* / 2]; 19:26
camelia rakudo-moar eb3988: OUTPUT«4␤»
19:26 FROGGS left, abraxxa left
ugexe i think he is asking why not just @a[-1]. Is it because the syntax -\d+ wouldnt work in ranges nicely? or was the * added for readability reason? 19:27
pmichaud I think it's to avoid accidental negative subscripts in things such as @a[$n]
PerlJam ugexe: more like we don't want @a[$foo] to accidentally do something unintended when $foo is negative 19:28
dha Ok, I'm just going to say "Just do it this way. DON'T ASK QUESTIONS."
PerlJam heh
pmichaud dha: if it's not terribly inconvenient, add a link to the relevant synopsis documentation
such as the one PerlJam++ gave above :)
and let that explain the *-1 part :) 19:29
dha Yeah, I was going to add "The use of "*" here is beyond the scope of this document. See...."
pmichaud my @a = 2,4,6; say @a[1 % *]; # curious
m: my @a = 2,4,6; say @a[1 % *]; # curious
camelia rakudo-moar eb3988: OUTPUT«4␤» 19:30
pmichaud m: my @a = 2,4,6; say @a[-1 % *]; # curious
camelia rakudo-moar eb3988: OUTPUT«6␤»
pmichaud coooool
smls_ In case the documentation dha is writing is for p6doc, I think links to other p6doc pages are actually preferred over links to synopses
pmichaud m: my @a = 2,4,6; say @a[-3 % *]; # curious
camelia rakudo-moar eb3988: OUTPUT«2␤»
dha smls_- agreed. Is Whatever covered in any of those?
pmichaud smls_: it's separate from p6doc at the moment, but you may be right that linking to p6doc is a better choice
ugexe m: my @a = 0,1,2,3; my $i = -2; say @a[*-$i] 19:31
camelia rakudo-moar eb3988: OUTPUT«(Any)␤»
smls_ dha: doc.perl6.org/type/Whatever
pmichaud ugexe: - won't work because * ends up being "number of elements in @a"
dha smls_- Ta.
ugexe yeah, im interested in the proper way to handle iterating negative indexes 19:32
pmichaud ugexe: I'd use %, as above.
dha / smls: I'm looking for something that explains the *-1 syntax more directly, rather than the generic link to Whatever (which is a bit overwhelming)
dha That would be nice. 19:33
To someone coming from p5, "-1" would be obvious, "*-1" would be "WHAT???"
pmichaud doc.perl6.org/routine/%5B%20%5D might be more straightforward 19:34
or even doc.perl6.org/routine/%5B%20%5D#lan..._Operators
PerlJam someone could write a whole blog post on the whys of Whatever/WhateverCode
pmichaud right. which is why the first answer should be "use *-1 to index from the end", with the second in-depth answer being "okay, how/why exactly does that work?" 19:35
dha Yep. If someone writes that blog post, I will link to it. :-) 19:36
19:36 rir left
pmichaud imo, the p6doc for [] should mention *-1 as the way to index from the end _before_ talking about Callables. 19:36
because someone new to p6 won't realize that *-1 is a Callable (and they shouldn't have to know that to use it) 19:37
smls_ true
19:37 smls_ is now known as smls
colomon glances back, and is stunned he never thought of the [N % *] idiom. pmichaud++ 19:38
19:38 lichtkind joined
pmichaud nicely, the N % * idiom explicitly says what we're wanting to do :) 19:39
i.e., we're wanting to access the elements in a modulo fashion :)
lichtkind CHEERS
can someone please check the tablets cronjob 19:40
it stopped working
PerlJam lichtkind: um ... where was it running?
lichtkind i dont know exactly 19:41
i think moritz did set it up
masak the [N % *] idiom is a few years old. I can't remember who used it first. 19:45
19:48 darutoko left, amurf joined
muethos hello, i am new and i have a problem. i hope i can explain what the problem is. 19:49
i have a question.
i have two arrays, one is with one pair x and y and the second is with more x and y pairs.
the wormCoords is with more pairs and build in a method
the applecoord has one pair
now i want to know is applecoord in wormcoord
i think i can do this with @wurm.first-index(@!appleCoord);
@worm is because i give the wormCoords to the method as (@worm is rw)
but the result is always NIL
sorry for my bad english 19:51
masak m: my $pair = 1 => 2; say [4 => 3, 1 => 2].first-index($pair)
camelia rakudo-moar eb3988: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at /tmp/fAejoyxdxK:1␤1␤»
smls If applecoord has only one pair, why is it an array?
19:51 domidumont left
masak hm, why am I getting an undefinedness warning? 19:52
lichtkind i double checked the code is clean and generates flawless html
19:52 amurf left
lichtkind so its a server side issue 19:52
pmichaud how exactly do Pairs smartmatch again...?
muethos i know that i can use only x and y but i have tryed this to see that the output is the same
lichtkind masak: greetings to the north do you know who administers the dev server? 19:53
tablets.perl6.org/appendix-b-groupe...smartmatch
pmichaud m: say Pair ~~ Associative
camelia rakudo-moar eb3988: OUTPUT«True␤»
lichtkind looking for that?
muethos look:
@!appleCoord.perl= [[:x(2), :y(2)]]<>
@wurm.perl= [[:x(6), :y(10)], [:x(6), :y(9)], [:x(6), :y(8)], [:x(2), :y(2)]]<>
@wurm.first-index(@!appleCoord)=
Nil
this is the putput
smls m: my $apple = 1 => 2; my @worms = (4 => 3, 1 => 2, 5 => 6); say @worms.first-index(* eqv $apple) 19:54
camelia rakudo-moar eb3988: OUTPUT«1␤»
19:54 TEttinger left
smls masak: smart-matching against a pair does something special, doesn't it? 19:54
muethos ok i try ths with * eqv
pmichaud note that the way this is written the elements of the array are actually arrays with two Pair objects 19:55
so, :x(2) and :y(2), not 2 => 2
(probably better this way, yes)
19:55 colomon left
pmichaud m: say [:x(1), :y(1)] ~~ [:x(1), :y(1)] # curious 19:56
camelia rakudo-moar eb3988: OUTPUT«False␤»
pmichaud m: say [:x(1), :y(1)] cmp [:x(1), :y(1)] # curious
camelia rakudo-moar eb3988: OUTPUT«Same␤»
pmichaud m: say [:x(1), :y(1)] cmp [:x(1), :y(2)] # curious
camelia rakudo-moar eb3988: OUTPUT«Less␤»
pmichaud m: say [:x(2), :y(1)] cmp [:x(1), :y(2)] # curious 19:57
camelia rakudo-moar eb3988: OUTPUT«More␤»
smls m: say [:x(1), :y(1)] eqv [:x(1), :y(1)]
camelia rakudo-moar eb3988: OUTPUT«True␤»
pmichaud yeah, eqv looks like the way to go here.
but could also use junctions 19:58
@!appleCoords eqv any(@wormCoords)
dha How do you people think about this stuff all day. My head hurts.
19:58 atroxaper joined
pmichaud or, more precisely: 19:58
@!appleCoords[0] eqv any(@wormCoords) 19:59
smls Junctions ftw :)
masak dha: can only speak for myself. I like Perl 6 and want it to turn out nice.
PerlJam dha: you get used to it (at least for the majority of things; there's still some head-hurting edges though)
smls m: my $apple = 1 => 2; my @worms = (4 => 3, 1 => 2, 5 => 6); say so any(@worms) eqv $apple
camelia rakudo-moar eb3988: OUTPUT«True␤»
pmichaud dha: in this case, I'm trying to find a perl6-ism that naturally maps to the original question. 20:00
smls ^^ muethos
pmichaud the original question was "how can I find out if an x-y pair is in a list of x-y pairs", so it makes me wonder if there's a natural way to express than in Perl 6
in this case: $apple eqv any(@worms)
so, how do we do this all day? well, we have a few standard idioms that we try to follow :) 20:01
muethos hmm 20:02
20:03 atroxaper left
dha Reality check: the fuctionality previously provided by C<@+[0]> would now be provided by C<$/.to> ? 20:03
pmichaud dha: $[0].to 20:04
or $0.to
smls pmichaud: Do you think the compiler can some day learn to short-circuit so $needle op any(@haystack)
pmichaud smls: yes.
muethos @!appleCoord.perl= [[:x(2), :y(2)]]<>
@wurm.perl= [[:x(6), :y(10)], [:x(6), :y(9)], [:x(6), :y(8)], [:x(2), :y(2)]]<>
@!appleCoord eqv any(@wurm);= any(False, False, False, False)
last have to be true?
pmichaud muethos: you need to use @!appleCoord[0]
dha: oh, I misread. 20:05
yes, $/.to
$[0].to is the end of the first capture
dha whew. You had me worried, for a second.
pmichaud $/.to is the end of the full match
muethos the same
:'( 20:06
pmichaud m: my @a = [:x(2), :y(2)]; my @w = [:x(6), :y(10)], [:x(2), :y(2)], [:x(6), :y(9)]; say @a[0] eqv any(@w); 20:07
camelia rakudo-moar eb3988: OUTPUT«any(False, True, False)␤»
pmichaud m: my @a = [:x(2), :y(2)]; my @w = [:x(6), :y(10)], [:x(2), :y(2)], [:x(6), :y(9)]; say so @a[0] eqv any(@w);
camelia rakudo-moar eb3988: OUTPUT«True␤»
pmichaud dha: I suspect part of the way we do this all day is that we're not constantly trying to figure out what the p5 equivalent would be. :) 20:08
smls: at some point we may be able to detect when junctions are being evaluated in boolean context and short-circuit them there. 20:10
dha Aha! I KNEW it had to be MY fault!
memo to self: STOP TRYING TO HELP PEOPLE.
pmichaud oh no, helping people is good.
muethos the problem is somewhere else.
when i look at my debug output i see that the arrays like the array here im irc but the output from my code is different
pmichaud I'm very much a fan of your p5->p6 document. 20:11
dha pmichaud - If I'm going to actually be serious for a moment, that means a lot. Thanks. :-)
And, FWIW, I'm definitely open to comments.
pmichaud of course. when the FB post came across I only had time to do a quick scan of what was there, but what I saw looked good and nothing jumped out at me as needing immediate correction. 20:12
dha Thanks. 20:13
I'm trying to keep it fairly simple. More of a map than a full explanation. 20:14
20:14 rindolf left
masak sounds sane. 20:14
dha "This is what you did in p5? Ok, this is what you should look at in p6." 20:15
pmichaud +1
masak I think I'd be most helped by (a) concrete examples making up the map, complemented by (b) the minimum amount of helpful explanation to "fill in the blanks".
dha Examples are definitely a good idea. I'll try to get to that after I work out the what-goes-where parts. I think I'll need to put my brain into a different mode for examples. 20:17
20:17 colomon joined
DrForr It's also a great sanity check from people outside spotting the WTFs. 20:17
dha I think I left sanity behind a while back... 20:18
masak sanity is such a relative concept. 20:20
DrForr And overrated. 20:22
20:23 kst joined 20:27 CQ left 20:29 [Sno] joined
masak overrated in most contexts. because most contexts already have an overabundance of it. 20:30
RabidGravy dha, I was also going to suggest a bit on "what you may not need modules to do any more" 20:33
as in some, but only some mind, of Moose, POE and Threads are in there already 20:35
dha Also a good idea. If you have some in mind, I could start a list. Although that's something I probably won't get to until I get through the variables and builtin functions.
masak dha: I bet you could find a lot of nice inspiration from the Perl 6 Advent Calendar.
dha masak - indeed. thanks. 20:36
20:43 mr-foobar left 20:44 mr-foobar joined
vendethiel
.oO( we stay sane so that you don't have to )
20:44
[ptc] \o/ MoarVM 2015.06 has been accepted into Debian unstable: lists.alioth.debian.org/pipermail/...00603.html 20:47
masak m: my $saneness = <sane insane>.roll; my ($g1, $g2) = <we you>.pick(*); say "$g1 stay $saneness so $g2 don't have to"
camelia rakudo-moar eb3988: OUTPUT«we stay insane so you don't have to␤»
masak :P 20:48
dha Are there p6 equivalents for C<ARGVOUT> and C<$ARGV> at this point?
masak dha: don't know about former. latter is @*ARGS[$n]
lizmat dha: $ perldoc -r ARGVOUT 20:50
No documentation found for "ARGVOUT".
is that something newish ?
(this was 5.20.0)
dha It's in perlvar, under "Variables related to filehandles"
And isn't @*ARGS the command line arguments? $ARGV in p5 is the current filehandle when reading from <>. Which may, of course, mean it's not relevant to p6 20:51
lizmat reading from <> is $*IN 20:52
smls or $*ARGFILES, right?
lizmat yes
tony-o_ DrForr: yea i'm trying to figure out what part of Attribute.get_value($obj) is failing - right now it returns Failure but .perl doesn't but i'm not sure what other mechanisms i have to get the contents of the .ast attribute 20:53
masak well, reading from <> can also be `get()` or `lines()`, depending
lizmat in p6 , get() and lines() work on $*ARGFILES, afaik 20:54
masak and `while (<>) { ... }` in p5 is best written `for lines() { ... }` in p6
nwc10 lizmat: ARGVOUT, it seems, dates from the big 1.0: perl5.git.perl.org/perl.git/blob/pe...man.1#l144
masak lizmat: so does <> in p5, no?
dha Unless I'm misunderstanding, those are filehandles, not a variable which tells you what the current filehandle is, which is what $ARGV seems to be.
DrForr tony-o_: Got it, but it's almost bedtie here.
dha If I'm reading perlvar correctly.
tony-o_ DrForr: no worries, going to keep looking at it
masak .oO( bedties are cool ) 20:55
dha ARGVOUT seems connected to the -i command line switch, so, again, it may not have any use in p6
lizmat dha: at least not at the moment, no
masak I think -i is merely NYI in Rakudo.
lizmat possibly, not sure
colomon m: say -i 20:56
camelia rakudo-moar eb3988: OUTPUT«-0-1i␤»
colomon was worried there for a sec. ;) 20:57
masak haha
dha ok, unless I'm losing it, current input filehandle might be C<$*IN.path.what> 20:58
and similarly $*OUT for output handle 20:59
tony-o_ DrForr: got a good thing going for you for .ast
lizmat dha: for all practical purposes, $*IN *is* the handle
dalek ast: e963792 | jnthn++ | S12-methods/multi.t:
Fudged test for RT #74646.
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=74646
lizmat dha: that's what you use to call methods such as .get and .lines on 21:00
dha But for the maybe-not-so-practical-purpose of having an analog to $ARGV...?
lizmat perlvar says: $ARGV Contains the name of the current file when reading from "<>". 21:03
lichtkind hai liz
do ypi know who has acess to the dev server?
lizmat dha: perl -E 'say $ARGV' # empty line
lichtkind: I would guess moritz and FROGGS 21:04
dha Hm. I guess this entry is going to have to read "Answer unclear. Try again."
lichtkind but neither of them is online
dha Perl 6 Via Magic 8 Ball, by dha.
mohij .tell moritz <lichtkind> can someone please check the tablets cronjob, it stopped working
yoleaux mohij: I'll pass your message to moritz.
lizmat dha: I must admit I have never had a use for $ARGV in perl 5 21:05
lichtkind thanks mohij
masak dha: actually, I hardly touch @*ARGS anymore. because `multi MAIN` is so nice.
lizmat dha: could you give a small example of its usage?
pmichaud $*IN is the handle for standard input. 21:06
dha lizmat - probably not. :-) I'm just working my way through perlvar.
masak oh, $ARGV, is the name of the current file when reading from <>
pmichaud right
masak yeah, I've never needed that.
pmichaud we're looking for something that while using lines() can tell us which file we're currently reading from
lizmat define "current file" ?
lichtkind lizmat.virtualhug();
masak lizmat: if you pass several files to -e 21:07
lizmat: and then loop over then with `while (<>)`
lizmat ah...
dha Yes. so is there an equivalent? Or does the way we read files in p6 obviate the need for this. Not that we seem to have needed it much in p5 either...
pmichaud for lines() { say <MUMBLE> } # what do I put here to tell me which file lines() is currently reading from?
dha: I believe there's a need for the equivalent.
21:07 Guest25465 left
pmichaud having used $ARGV in p5, I'd want there to be an equivalent in p6 21:07
masak +1
dha pmichaud - ok, but as of now there isn't one?
pmichaud I suspect it needs to be a method on $*ARGFILES 21:08
masak what does S28 say?
pmichaud since that is where lines() reads from.
dha S28 says "TBD"
smls perl -e 'while (<>) { print "$ARGV: $_\n" }' a.txt b.txt # for example
dha As it does for ARGVOUT. But without a working -i option, ARGVOUT may be a moot point for now. 21:09
lizmat there *is* a .filename method on IO::ArgFiles opjects
*objects
pmichaud looks to me as though $*ARGFILES.filename will do it
lizmat beat me by a couple of seconds :)
tony-o_ .tell DrForr give Data::Dump a shot with the ABNF stuff, i think it turned out pretty well
yoleaux tony-o_: I'll pass your message to DrForr.
21:11 espadrine joined, brrt joined
pmichaud gist.github.com/anonymous/f7edfb72a4f1f4d9fecc 21:12
(shows that $*ARGFILES.filename appears to dtrt)
brrt that's weird
dha Thanks. 21:13
21:13 spider-mario left
pmichaud brrt: what's weird? 21:13
brrt your bug :-)
21:13 kurahaupo left
brrt or, isn't that a bug 21:13
dalek ecs/newio: 7506482 | pmichaud++ | S07-glr-draft.pod:
Missing example provided by mj41++ .

From irclog.perlgeek.de/perl6/2015-06-13#i_10746280 .
21:13 dalek left
pmichaud brrt: it did exactly what I expected :) 21:13
lizmat sorry dalek
21:14 dalek joined, ChanServ sets mode: +v dalek
brrt are you certain? x.p6 comes in 3 times 21:14
pmichaud because it has three lines
PerlJam dha: $*ARGFILES.ins will give you $. (since I'm guessing you're almost there too :)
pmichaud one for each lines
*line
brrt aha
vendethiel m: say :{}; # we have that already. looks like an angry something :)
camelia rakudo-moar eb3988: OUTPUT«␤»
brrt right.... i see
pmichaud I didn't want to do README or Makefile because the output would've been too long :)
dha PerlJam - yep. that'll be helpful. thanks.
brrt :-) 21:15
21:17 uncleyea1 is now known as uncleyear, uncleyear left, uncleyear joined
PerlJam though IIRC, $. won't reset on each file read from @ARGV without an explicit close. I'm not sure how to obtain the same effect with $*ARGFILES.ins 21:19
er, I mean .ins(), like $. won't reset. I'm not sure how to get the reset-on-each-file behavior
21:19 spider-mario joined
dha How about C<$,>? Any analog for that? A quick glance at what's in $*OUT doesn't show anything obvious. 21:19
pmichaud github.com/perl6/doc/issues/96 # added issue, we don't have lines() or $*ARGFILES documented, it seems.
21:20 Sqirrel left 21:21 skids left
pmichaud PerlJam: I don't think there's an existing way to get reset-on-each-file, but it seems like it'd be relatively easy to forward a method call to $!io.ins somehow. 21:21
(Inside of the ArgFiles object)
smls dha: IO::Handle does have a .print-nl method, maybe that does what PErl 5's $, does 21:22
hm no. looks like it's just a flag 21:23
dha yeah. Gives me "True"
smls m: $*OUT.nl = "_"; print 2; print 4; 21:24
camelia rakudo-moar eb3988: OUTPUT«24»
smls nope, that's not it either
I guess .nl is only used for input then
pmichaud at the moment .nl is only mentioned for input, yes. 21:25
dalek Heuristic branch merge: pushed 50 commits to rakudo/newio by lizmat
Heuristic branch merge: pushed 48 commits to roast/newio by lizmat 21:26
lizmat fwiw, I seem to recall speccing something in the newio branch of the speculatoins 21:27
dha huh. there's an instance of C<$,> in the IO::Handle docs, but I'm not sure what it's doing there.
21:27 Sqirrel joined
dha sub run(*@args ($, *@)) returns Proc::Status:D 21:27
PerlJam dha: I think $, and $" won't have direct analogs as they have been subsumed by .gist and .Str on the appropriate class 21:28
lizmat m: my ($, $a, $b) = 1,2,3; say $b; say $c
camelia rakudo-moar eb3988: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Lc2rtl2I1K␤Variable '$c' is not declared␤at /tmp/Lc2rtl2I1K:1␤------> 3my ($, $a, $b) = 1,2,3; say $b; say 7⏏5$c␤»
lizmat m: my ($, $a, $b) = 1,2,3; say $a; say $b
camelia rakudo-moar eb3988: OUTPUT«2␤3␤»
lizmat dha: $, is just an anonymous scalar with a comma 21:29
dha Ah.
lizmat m: say $,
camelia rakudo-moar eb3988: OUTPUT«(Any)␤»
PerlJam dha: yeah, that's what replaces undef in that code you mentioned on FB :)
lizmat m: say my Bag $,
camelia rakudo-moar eb3988: OUTPUT«(Bag)␤»
21:33 muethos left
dha I'm thinking S28 could use a bit of an overhaul... :-) 21:33
pmichaud I'm thinking S28 needs a huge overhaul. 21:34
21:34 diana_olhovik_ left
pmichaud it's definitely very out-of-date, and I've seen several occurrences in the last month where people have gotten incorrect information from it 21:34
PerlJam I'm thinking dha is the perfect person to make that happen ;)
lizmat PerlJam: I agree
pmichaud at the least we should put a prominent notice that S28 is currently fossilized
PerlJam pmichaud: +!
er +1
dha PerlJam - Don't make me come after you... 21:35
lizmat m: my $a will init { ... }; # this should throw an NYI, but doesn't :-(
camelia ( no output )
pmichaud also, if S28 is primarily reference/documentation, as opposed to providing specification, perhaps it should be eliminated entirely in favor of p6doc
lizmat even though the trait_mod contains just that 21:36
pmichaud s/specification/design details/
PerlJam pmichaud: when was that repo rename gonna happen? :)
pmichaud in particular, would we expect there to be a lot of tests associated with S28? If not, it's a likely candidate for removal/obsolesence, I think.
PerlJam: I don't want to force the rename until I'm fairly sure I'll be around to help clean up the fallout :)
i.e., I'm okay with asking forgiveness, but not that much forgiveness 21:37
pyrimidine pmichaud: any budging on naming the new type 'Seq'? Kinda conflicts with similar class/role names from us bioinfo types: metacpan.org/pod/Bio::Seq 21:39
Though I suppose if we use Bio::Seq that would disambiguate it :)
pmichaud pyrimidine: sure, I'm open for changes. The notion behind the Seq type is that it's the thing that handles iterations
dha I have to admit, although it's lacking, s28 has been pretty helpful in mapping p5 variables to p6 variables in a number of cases, or at least pointing me in the right direction. 21:40
21:40 mj41 left
pmichaud I'd like to see the p5-to-p6 mapping be more of a p6doc thing than a design-doc sort of thing, I think. 21:40
dha pmichaud - Working on that... :-)
pmichaud pyrimidine: "Seq" for the moment is a class of objects that are a sequence of values. It's very much like a List, but with the expectation that elements are to be consumed (e.g. in iteration) 21:41
dha Incidentally, above you said that C<.nl> was only mentioned for input handles. It does return something for $*OUT, though. The question from my perspective, of course, is that the equivalent of C<$\> in p5?
pmichaud I'm totally open for other names, as long as they're relatively clear, since programmers will encounter them 21:42
for example, I expect the result of a gather/take will end up being a "Seq"
same for lines()
same for 1, 2, ... * 21:43
smls so... basically ListIter? :P
pmichaud er: 1, 2 ... *
smls: not really.... ListIter is the thing that generates the elements
I'm not sure where the *Iter classes will end up. But I don't want them to be user-facing, at any rate.
pyrimidine pmichaud: makes sense. ok, will think about it. I'm actually fairly neutral on it (I would know the differenct), just possibly over-worried about user confusion 21:44
pmichaud i.e., I wouldn't want lines().WHAT to give me back "ListIter"
21:44 larion left
jnthn Gen (for Generator) may give the right semantic idea to some, depending on background. 21:45
pmichaud I might be able to go with Gen
anyway, these thoughts will be in tonight's S07 update :)
jnthn yay, I'll have breakfast reading :)
lizmat would a generic Iter not be better ? 21:46
pmichaud Over the weekend I managed to break (I think) the linkage between ListIter and populating Lists and Arrays...
lizmat: well, I really want the term to reflect the results of the iteration, not the iterator itself.
"Iter" might represent that, but it's not as "clean" to me as "Seq"
21:47 atroxaper joined
pmichaud i.e., I like that 1, 1, *+* ... * gives me back a Seq object 21:47
lizmat pmichaud: will ponder
dha S28 indicates that $| is replaced by an .autoflush method, but it's not in the docs for IO::Handle. Does it exist?
pmichaud and gather/take gives me back a Seq object
dha Incidentally, please tell me if I'm becoming a nuisance...
pmichaud anyway, the name is open for bikeshedding, yes.
dha: you're not annoying me :) 21:48
dha oh good. :-)
masak dha: thank you for helping us clean up S28! :)
pmichaud I don't recall seeing a .autoflush for quite some time, so I'm doubtful it exists in any implemented sense.
perhaps there needs to be one, but that's a design discussion 21:49
smls m: say IO::Handle.^methods(:all)».name.grep(/flush/)
camelia rakudo-moar eb3988: OUTPUT«␤»
smls hm, locally it prints "flush"
but no "autoflush"
lizmat autoflush could be implemented relatively easily 21:50
21:50 brrt left 21:51 atroxaper left
lizmat but maybe it should be done at the nqp / PIO level 21:51
masak 'night, #perl6
lizmat good night, masak 21:52
21:52 frobisher joined 21:53 dha left, frobisher is now known as dha
dha You know, now that I'm doing this, I'm finding a whole bunch of variables I never knew existed. 21:54
21:54 ruoso_ left
lizmat dha: ARGVOUT was new to me :-) 21:54
21:55 ruoso joined
dha I'm about to encounter ${^LAST_FH} 21:55
I know I never used that. 21:56
So, while I was disconnected did I get an answer about autoflush?
lizmat dha: irclog.perlgeek.de/perl6/today 21:57
dha Ah. thanks.
22:01 b2gills left
dha I'm going to take a leap of faith and assume that there's no equivalent of C<${^LAST_FH}> in Perl 6 at the moment. 22:02
pmichaud that's a reasonable leap. 22:03
22:05 yqt left
lizmat dha: indeed 22:07
dha OH GOOD LORD. Variables related to formats are next. 22:08
Please tell me formats are dead?
lizmat there is no format in P6
22:08 yqt joined
dha YAY! 22:08
lizmat something tells me that it could be removed from P5 also for 5.24 perhaps ? 22:09
.oO( waiting for [Tux] to scream :-)
smls I think Perl 5 uses longer deprecation periods than that :) 22:10
RabidGravy I'm not sure the last time I used a format
22:11 muethos joined, bjz left
RabidGravy they had their charm, especially at the time I was dealling with report generation languages like RPG and Informix ACE 22:11
geekosaur I still use them occasionally 22:13
RabidGravy okay twenty years ago
geekosaur that said, I always end up using hackery to make them do what I want, and well.
...ace, hadn't heard of that in decades
pmichaud perl6.org/archive/doc/design/exe/E07.pod 22:14
geekosaur I think most of my Informer knowledge has finally paged out to the bitbucked >.>
*bitbucket
22:15 profan left, b2gills joined 22:16 muethos left
dha So, I think I'm going to say for p5's C<$!>, C<$?>, C<$@>, and C<$^E>, they've all been eaten by p6's C<$!>. For stuff like C<${^CHILD_ERROR_NATIVE}>, I'm going to assume they might be in $!, but your guess is as good as mine. 22:17
22:17 RabidGravy left 22:20 espadrine left
dha Hm... the documentation for C<$!> is... sparse. 22:20
pmichaud yes, it is.
22:20 smls left
dalek kudo/nom: 75307d0 | lizmat++ | src/core/Deprecations.pm:
Make sure deprecations are listed in fixed order
22:20
dha Sorely tempted to say "Errors are now contained in C<$!>. How it actually works is anybody's guess. Next!" 22:21
pmichaud works for me :)
dalek ast: e6ec6ac | lizmat++ | S02-types/deprecations.t:
Test deprecations in correct order

This fixes a test error on the JVM
22:22
22:22 bin_005 left
lizmat good night, #perl6! 22:26
22:27 b2gills left 22:35 ilogger2 joined, ChanServ sets mode: +v ilogger2
dha And p5 C<${^ENCODING}> does not seem to be equivalent to <$*ENC>... 22:36
And, *sigh* C<${^GLOBAL_PHASE}>? Anything like that?
pmichaud I'm not aware of a GLOBAL_PHASE equivalent. 22:37
dha And, fortunately the next few are internal anyway, and no one should be messing with them... 22:38
geekosaur I don't think ^GLOBAL_PHASE is applicable? p6 has more principled mechanisms 22:40
and any perl 5 script using ${^GLOBAL_PHASE} is going to need a bit more thinking to convert 22:41
dha And C<$^P>? Does the debugger even resemble the p5 debugger?
IS there a debugger?
jnthn There's a debugger, but given it's built out of architectural things that don't exist in Perl 5 by somebody who never used the Perl 5 debugger, a resemblence is highly unlikely. :) 22:43
22:45 amurf joined
pmichaud afk, dinner 22:46
dha ta.
jnthn sleep & 22:54
dha Hallelujah. I have finished going through perlvar. 22:58
23:00 gtbjj joined 23:01 gtbjj left, gtbjj joined 23:03 skids joined
gtbjj Hello, ' 23:07
I'm looking to contribute to the perl6.org website, could I request a commit bit for github?
23:11 vendethiel joined 23:22 leont joined, b2gills joined 23:35 vendethiel left 23:48 dayangkun joined 23:53 gtbjj left 23:59 vendethiel joined, cognominal joined