»ö« 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.
dalek ast: 6e20c59 | coke++ | S02-types/hash_ref.t:
fudge for jvm (more self-referential issues)
00:00
ast: 2e255c0 | coke++ | S03-metaops/cross.t:
more JVM/GLR fudges
00:01 firstdayonthejob left 00:08 pmurias left 00:12 bjz left
ugexe for a role that is composed into a class, is there any difference between `self.my-classes-method($arg)` and `$.my-classes-method($arg)` ? I ran into strange behavior where the former stopped worked when threads were involved and the later fixed it, but im not sure if it was just moving a thread bug or if there was an actual difference 00:15
ShimmerFairy ugexe: unless I'm mistaken $.meth is short for $(self.meth) -- maybe try itemizing the self version and see what happens ? 00:18
00:21 vendethiel left
ugexe i will have to try that. im just worried when im changing that stuff that im changing the execution/memory enough to move the problem 00:22
00:23 spider-mario left
[Coke] r: [[2, 3], [4, [5, 6]]]».squish.gist.say 00:39
camelia rakudo-moar d98dc8: OUTPUT«((2 3) (4 [5 6]))␤»
..rakudo-jvm d98dc8: OUTPUT«((2 3 Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new…»
[Coke] r: [[2, 3], [4, [5, 6]]]».squish.say 00:41
camelia rakudo-jvm d98dc8: OUTPUT«((2 3 Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new Mu.new…»
..rakudo-moar d98dc8: OUTPUT«((2 3) (4 [5 6]))␤»
00:45 kjs_ joined 00:50 softmoth joined
dalek ast: da1ab4f | coke++ | S03-metaops/hyper.t:
fudge for JVM, new tickets
00:51
ugexe r: my Blob $a = "a".encode; my Blob $b = "b".encode; $a ~= $b; say $a.perl; # has socket bust on jvm github.com/rakudo/rakudo/blob/nom/...ket.pm#L16
camelia rakudo-moar d98dc8: OUTPUT«utf8.new(97, 98)␤»
..rakudo-jvm d98dc8: OUTPUT«java.lang.RuntimeException: This type does not support positional operations␤ in block <unit> at /tmp/tmpfile:1␤␤»
mr_ron m: gist.github.com/ronaldxs/8e62394e7edcd407caf5 00:53
camelia rakudo-moar d98dc8: OUTPUT«3 bottles of beer on the wall, 3 bottles of beer. Take one down and pass it around, 2 bottles of beer on the wall.␤␤2 bottles of beer on the wall, 2 bottles of beer. Take one down and pass it around, 1 bottle of beer on the wall.␤␤1 bottle of bee…»
mr_ron fixed part of it anyway ...
dalek ast: a152f36 | coke++ | S03-metaops/zip.t:
fudge for rakudo.jvm
00:56
01:03 rarara_ left
ugexe looks like jvm may be trying to call the stringy infix ~ instead of the Buf infix ~ 01:06
hmm thats not it 01:09
01:11 yqt left
mr_ron m: gist.github.com/ronaldxs/9eebbf721b93bc127aac 01:12
camelia rakudo-moar d98dc8: OUTPUT«3 bottles of beer on the wall, 3 bottles of beer. Take one down and pass it around, 2 bottles of beer on the wall.␤␤2 bottles of beer on the wall, 2 bottles of beer. Take one down and pass it around, 1 bottle of beer on the wall.␤␤1 bottle of bee…»
mr_ron suggestions for improvements on fix welcome ... 01:13
01:25 tokuhirom_h joined, tokuhirom_h left, tokuhirom_h joined
zengargoyle am i alone in finding the Search box on doc.per6.org plain annoying becuse it's automatically selected so when you hit <space> expecting to page down you instead get a pause and then a dropdown. 01:33
01:34 mr_ron left 01:39 lolisa joined 01:44 raiph left, cygx left 01:45 tokuhirom joined 01:48 raiph joined 01:50 tokuhirom left
leont op 01:57
02:14 leont left
Ben_Goldberg r: my Num $x = 5; 02:19
camelia rakudo-{moar,jvm} d98dc8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Can't assign a Int literal (5) to a Num variable. You can try 5e0 instead or use Real␤at /tmp/tmpfile:1␤------> 3my Num $x = 7⏏055;␤»
Ben_Goldberg r: my Int $x = 5e0; 02:20
camelia rakudo-{moar,jvm} d98dc8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Can't assign a Num literal (5) to a Int variable. You can try 5.floor instead or use Real␤at /tmp/tmpfile:1␤------> 3my Int $x = 7⏏055e0;␤»
Ben_Goldberg "a Num literal (5)" ?
02:21 raiph left
Ben_Goldberg timotimo++, timotimo-- 02:21
masak antenoon, #perl6 02:26
also, "or use Real" feels not so precise. my first thought was `5e0.Real`, which doesn't help at all :)
02:27 tokuhirom joined
mst masak: maybe you were just imagining it would 02:30
japhb masak: Antenoon? What TZ are you in today?
mst I assume 'antenoon' is meant ala 'moin' to be a tz independent greeting 02:31
masak japhb: .cn
mst: no, it's that thing between 10:00 and 12:00 that's not really morning anymore
02:32 tokuhirom left
masak japhb: I guess the real answer is UTC+08:00 02:33
mst masak: that's the only bit of 'morning' I normally see.
masak I suspected you'd say something like that :P 02:34
japhb mst: That's the only bit of 'morning' that I generally *want* to see ... unfortunately, I almost always see a lot more of it.
02:36 uruwi left 02:53 Oatmeal left 02:54 kjs_ left
dalek c: 8361465 | (Tokuhiro Matsuno)++ | doc/Type/Array.pod:
Added missing semicolon
02:56
02:59 Oatmeal joined 03:05 softmoth left
dalek kudo-star-daily: f12d49a | coke++ | log/ (8 files):
today (automated commit)
03:24
masak GNU Hurd 0.7 released. www.gnu.org/software/hurd/news/201...eases.html 03:30
I find I'm in the same situation with GNU Hurd as I imagine many are with Perl 6.
namely, sure, OK, I see releases being made. nice. but how realistic would it be to use this for something that I already use (say) Linux Mint for? 03:31
dalek ast: c3e1c83 | coke++ | S03-operators/buf.t:
fudge for jvm, new ticket
03:32
masak all I as an outsider see as evidence one way or another is that most people have not switched to GNU Hurd yet :) despite it being "0.7", whatever that means.
AlexDaniel .u ⦿
yoleaux U+29BF CIRCLED BULLET [Sm] (⦿)
masak .u ⦾ 03:34
yoleaux U+29BE CIRCLED WHITE BULLET [Sm] (⦾)
dalek ast: 0a6592c | coke++ | S03-operators/increment.t:
fudge for jvm, new ticket
03:40
AlexDaniel .u ⍿ 03:48
yoleaux U+237F VERTICAL LINE WITH MIDDLE DOT [So] (⍿)
AlexDaniel I wish every unicode symbol also had a short explanation why it was added… 🞡🞢🞣🞤🞥🞦🞧🞨🞩🞪🞫🞬🞭🞮 04:00
04:01 vendethiel joined
TimToady
.oO("This symbol was added because VERTICAL DOT WITH MIDDLE LINE makes no sense.")
04:05
AlexDaniel
.oO( BOLD GREEK CROSS was added because since it is commonly used in handwriting; VERY BOLD GREEK CR…… )
04:11
oops 04:12
masak .u ⽏⾇⾥⿁
yoleaux U+2F4F KANGXI RADICAL DO NOT [So] (⽏)
U+2F87 KANGXI RADICAL OPPOSE [So] (⾇)
U+2FA5 KANGXI RADICAL VILLAGE [So] (⾥)
masak .u ⿁
yoleaux U+2FC1 KANGXI RADICAL GHOST [So] (⿁)
masak grins
dalek ast: ac74e3b | coke++ | S05-mass/properties-general.t:
refudge for jvm
ast: e708736 | coke++ | S05-substitution/subst.t:
fudge for jvm
masak this has been on my mind lately: do we have an example in Perl 6, 'sides quasi blocks and unquotes, of the OUTER:: chain being messed with? as in, it's set to something other than the surrounding block? 04:18
04:19 dayangkun joined
AlexDaniel .u 🆕 04:23
yoleaux U+1F195 SQUARED NEW [So] (🆕)
AlexDaniel no squared OLD though!
[Coke] RT: 1046; tests 11: JVM: 37; Moar: 17; LTA: 86; WEIRD: 10; XMAS: 67; GLR: 7; nom: 8 04:24
AlexDaniel .u 🆒
yoleaux U+1F192 SQUARED COOL [So] (🆒)
04:26 finanalyst joined 04:28 tokuhirom joined, khw left
ugexe heh i beat you rt126530 with rt126529 04:31
04:33 tokuhirom left
AlexDaniel .u 🗊🗐 04:35
yoleaux No characters found
AlexDaniel .u 🗊
yoleaux No characters found
04:40 softmoth joined 04:41 lolisa left 04:44 Taller1 left, softmoth left 04:56 dayangkun left 04:57 vendethiel left 05:00 bpmedley joined 05:04 mattp_ joined 05:05 mattp__ left 05:11 integral left, smash joined 05:12 Jonis left 05:17 integral joined, integral left, integral joined 05:18 Jonis joined 05:19 jnthn joined
dalek p/backlog: 261e50c | (Jimmy Zhuo)++ | src/vm/jvm/ (6 files):
expose the backlog arg for listen
05:25
05:32 kaare_ joined 05:36 weihan joined
Sgeo vaguely wonders how autovivification compares/contrasts with Rust's Entry APIs for maps 05:44
yoleaux 17 Aug 2015 13:46Z <Ven> Sgeo: wrt irclog.perlgeek.de/perl6/2015-08-17#i_11067252 - I like clojure's namespaced dynamics, what do you think?
Sgeo Oops wow it's been a while since I talked here I guess
examples.perl6.org/categories/best-...ctory.html 05:48
This page seems broken
TimToady a lot of the RC entries have been updated, so you might compare with what's on RC these days 05:51
05:51 _28_ria joined
TimToady though that one hasn't been update, and doesn't appear to need an update 05:52
Sgeo The example itself only says "use v6;" 05:53
05:54 xyf left
Sgeo At least as displayed on that page 05:54
05:54 dwarring left 05:57 telex left 05:58 telex joined
masak TimToady: I've been thinking of a way to allow quasi blocks to set the parser mode. so `quasi @ Q::Trait { ... }` would mean "parse what comes inside the block as a trait" (syntax isn't set in stone; the idea's what's important) 06:05
TimToady: and the default `quasi { ... }` means `quasi @ Q::Expr { ... }`, because macros expand into expression tree fragments by default.
Ben_Goldberg m: github.com/perl6/perl6-examples/bl...factory.pl 06:06
camelia ( no output )
masak TimToady: thinking of it this way, I find it weird and inconsistent that we even allow semicolons inside a quasi block -- if it's an expression only. would it make sense to forbid that by default, and train people to write `quasi @ Q::StatementList { ... }` in that case? 06:07
06:08 AlexDaniel left
ShimmerFairy masak: I'd find it weird to _disallow_ semicolons, honestly. It feels like we'd be adding a third interpretation of { } . (Besides, isn't do { foo; bar; } considered an expression, and doesn't it also have semicolons? ☺) 06:10
06:13 Ben_Goldberg left
masak m: my $foo = do { say("OH HAI"); 42 }; say $foo 06:23
camelia rakudo-moar d98dc8: OUTPUT«OH HAI␤42␤»
masak TimToady: an exception could be make for the usual `quasi { ... }` doing what ShimmerFairy just suggested. it'd then lead to the "extract value from last statement" semantics of github.com/masak/007/issues/7#issu...t-69327526 06:24
and if someone wanted the stricter semicolon-less variant, they could explicitly say `quasi @ Q::Expr { ... }`
ShimmerFairy masak: @a[1;2;3] is another example of an expression with semicolons, so the semicolon detector in your suggestion would have to be more careful (and even then, ideally not fail if someone just liked ending their one expression with a semicolon)
masak that one is not a concern; I don't really mean "semicolons", I mean "a statement list". :) 06:25
06:28 softmoth joined
ShimmerFairy masak: Ah, that's what I brought up do { } for, though treating quasi { } as a kind of do { } might be the way to go anyway :) 06:28
masak s/make/made/
06:32 softmoth left 06:47 uruwi joined 07:11 quester joined
dalek kudo/nom: 6089b25 | TimToady++ | src/core/Exception.pm:
Better message on literal assignment type mismatch
07:22
kudo/nom: eea721d | TimToady++ | src/Perl6/Optimizer.nqp:
also catch assignment of Rat to Int/Num/Complex
kudo/nom: 86aad9d | TimToady++ | src/core/Exception.pm:
protect the conjectural coercion with a try
kudo/nom: 38f4869 | TimToady++ | src/Perl6/Optimizer.nqp:
catch assign of complex values to non-complex too
ast: 66377ae | TimToady++ | S02-types/type.t:
all combos of Int/Num/Rat/Complex literal assign
07:24
07:24 xfix joined
quester p6: sub accum2 ($n is copy) { $n += * }; $a = accum2( 17 ); say $a( .3 ); say $a( 5i ) 07:27
camelia rakudo-moar d98dc8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Variable '$a' is not declared␤at /tmp/tmpfile:1␤------> 3sub accum2 ($n is copy) { $n += * }; 7⏏5$a = accum2( 17 ); say $a( .3 ); say $a(␤»
quester p6: sub accum2 ($n is copy) { $n += * }; my $a = accum2( 17 ); say $a( .3 ); say $a( 5i )
camelia rakudo-moar d98dc8: OUTPUT«17.3␤17.3+5i␤»
masak m: sub accum2($n is copy) { return -> $m { $n += $m }; my $a = accum2( 17 ); say $a( .3 ); say $a( 5i ) 07:28
camelia rakudo-moar d98dc8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3yGzp6lMR0␤Missing block␤at /tmp/3yGzp6lMR0:1␤------> 3accum2( 17 ); say $a( .3 ); say $a( 5i )7⏏5<EOL>␤ expecting any of:␤ postfix␤ statement end␤ statement modifier…»
masak m: sub accum2($n is copy) { return -> $m { $n += $m } }; my $a = accum2( 17 ); say $a( .3 ); say $a( 5i ) 07:29
camelia rakudo-moar d98dc8: OUTPUT«17.3␤17.3+5i␤»
masak quester: I'd write it like that. somehow it doesn't feel clear enough to use a WhateverCode for a nested routine.
dalek osystem: 2b3b1b9 | lestrrat++ | META.list:
Add Crust::Middleware::Session
07:32
osystem: 94a48b6 | moritz++ | META.list:
Merge pull request #85 from lestrrat/patch-2

Add Crust::Middleware::Session
pan style="color: #395be5">perl6-examples: b559787 | (Ronald Schmidt)++ | categories/other/bottles.pl:
Fix 99 bottles of beer. Dont know if best solution to GLR but at least it works.
07:34
pan style="color: #395be5">perl6-examples: b206725 | moritz++ | categories/other/bottles.pl:
Merge pull request #36 from ronaldxs/master

Fix 99 bottles of beer.
quester masak: Yes, now that you mention it, it is kind of obscure. Sometimes golfing your code makes it clearer. This... really isn't one of those times.
p6: say so "first second" ~~ rx/first/; say $/; say [or] <first second> X~~ ( rx/second/, rx/third/ ); say $/; 07:46
camelia rakudo-moar d98dc8: OUTPUT«True␤「first」␤True␤「first」␤»
quester That's odd... the [or] ... X~~ ... can determine that there is a match, but it doesn't set $/ at all. 07:47
I'm actually looking for a way to check if any of several variables match any of several keywords. That part is working, but I would also like to get the keyword that matched. 07:49
07:53 Actualeyes joined 07:57 mj41 joined 07:58 weihan left
masak quester: setting $/ sounds useful in that case. 08:07
quester: I have no sense of whether t'is "reasonable" to want.
I guess implementation-wise, [or] and [||] and the like are implemented as a reduce() routine calling the appropriate operator. there's a real chance $/ is correctly set inside of that reduce() call. 08:08
quester masak: It seems to be the X~~ that doesn't set $/, as far as I can tell. I was just wondering if anyone happened to know offhand if that was intentional or has something to do with the metaop implementation. 08:11
ShimmerFairy m: say <first second> X~~ ( rx/second/, rx/third/ ); say $/; 08:12
camelia rakudo-moar 38f486: OUTPUT«(False False True False)␤Nil␤»
ShimmerFairy yeah, it's the X~~ part, not necessarily the [or] part :)
quester I suppose I'll just write it out as two nested loops and use a simple ~~ for the match. That is working.
08:12 darutoko joined
ShimmerFairy quester: if possible, you can also represent the choices in one regex, e.g. rx/ @foobar / will match against any of the elements of @foobar, IIRC 08:13
quester ShimmerFairy: Oh! Good idea... thanks. Let me try that... 08:14
ShimmerFairy m: my @a = <foo bar baz>; say "bar" ~~ /@a/; say $/;
camelia rakudo-moar 38f486: OUTPUT«「bar」␤「bar」␤»
08:16 softmoth joined
quester p6: my @a=<third fifth seventh>; say so <fourth fifth sixth> ~~ / @a /; say $/ 08:19
camelia rakudo-moar 38f486: OUTPUT«True␤「fifth」␤»
quester ShimmerFairy++ 08:20
08:20 softmoth left 08:21 azawawi joined
azawawi hi 08:21
yoleaux 30 Oct 2015 18:51Z <pippo> azawawi: Thank you! And thank you for this great module. :-))
30 Oct 2015 23:29Z <pippo> azawawi: Found an asymmetric line in WebElement.pm6. In method "selected". Should the "element/$.id/selected" be "element/$($.id)/selected". Did not go through the code. Only asymmetry is bugging me. o/
azawawi ugexe: ping 08:26
08:27 quester left
azawawi .tell ugexe I was able to use zef on windows. Thanks for creating such a great tool. Please do keep up the awesome work. 08:27
yoleaux azawawi: I'll pass your message to ugexe.
azawawi sees many module test failures on windows 7 machine 08:28
we're back to non-file structure in C:\rakudo\share\perl6\site ? 08:29
im seeing 0, ..., n named files
08:29 tokuhirom joined 08:34 tokuhirom left
azawawi so rakudo will use flat module structure from now onwards? 08:35
08:41 firstdayonthejob joined
azawawi .tell pippo thanks. fixed in github.com/azawawi/perl6-selenium-...68fc14f753 :) 08:42
yoleaux azawawi: I'll pass your message to pippo.
09:03 RabidGravy joined 09:04 vendethiel joined
azawawi slow #perl6 traffic today 09:07
RabidGravy it's foggy outside 09:10
azawawi it is sunny here 09:11
masak kind of dusky here
[Tux] test 50000 37.647 37.536
test-t 50000 39.170 39.058
azawawi .tell ugexe what's zef solution for the following code github.com/retupmoca/P6-Compress-Z...r/Build.pm ? 09:12
yoleaux azawawi: I'll pass your message to ugexe.
09:12 aristotle joined
vendethiel m: SEQ(say("hey"); say("masak")); 09:12
camelia rakudo-moar 38f486: OUTPUT«hey␤masak␤»
aristotle jvns.ca/blog/2015/10/31/papers-are-...-with-coz/
azawawi masak: so no lib directories again for modules... flat structure?
09:13 grondilu joined
aristotle this might have steal-worthy ideas for anyone working on profiling Perl 6 code 09:13
azawawi so what's im seeing right now, the windows support is subpar. zef works on it but most native modules refuses to work with zef :) 09:14
and panda refuses to install .bat scripts 09:15
azawawi sighs
masak azawawi: I have no idea. haven't been involved in those changes...
09:16 aristotle left
azawawi masak: profiling/testing threaded applications becomes a real nightmare when you need to control actual external device state. 09:17
masak I see. 09:18
azawawi masak: some devices are by definition 'slow' can slow all threaded and cause bottlnecks of all sorts...
for example, when you take an image snapshot from a camera to be analyzed for face recognition. that's easy 09:19
imagine capturing n image snapshot from n cameras...
09:20 Begi1115 joined
azawawi the 20 ms delay from one camera snapshot can eventually result in a big accumulated delay in a multi-threaded environment 09:22
masak azawawi: does this have any bearing on Perl 6 that I'm missing?
azawawi is just complaining... ignore :)
any interesting upcoming Perl 6 events? 09:24
moritz azawawi: well, I can think of something in December :-) 09:30
azawawi moritz: good morning 09:31
moritz: What about fosdem.org/2016/ ? do we have anything for it?
nine azawawi: Wendy is organizing that 09:32
lizmat good *, #perl6
we have a dev room on Sunday at FOSDEM, I believe
masak good *, lizmat 09:33
lizmat well, we have a dev room for sure, and I believe it to be on Sunday
vendethiel FOSDEM is in february like last year, right?
or, er, end-of-jan
azawawi fosdem.org/2016/schedule/track/perl/ ?
lizmat no, it's the last weekend of Jan this time
RabidGravy in the the S22:META6 does anyone have any objection to my changing "superseded_by" to "superseded-by" on the grounds that I guess it isn't implemented anywhere yet and when it does get implemented it will wind up kebab case anyway 09:35
synbot6 Link: design.perl6.org/S22.html#META6_doe...y_changing
lizmat RabidGravy++
moritz azawawi: also, German Perl Workshop in 2016-03 will have Perl 6 content
RabidGravy whaddafuq 09:36
design.perl6.org/S22.html#META6.json that iis
zengargoyle m: sub r { my @x = 1,2; my $y = 3; return @x, $y }; my (@a,$b) = r; @a.say; $b.say; my ((@c,$d)) = r; @c.say; $d.say; ((@c,$d)) = r; @c.say; $d.say; 09:39
camelia rakudo-moar 38f486: OUTPUT«[[1 2] 3]␤(Any)␤Cannot call method 'say' on a null object␤ in block <unit> at /tmp/IoH7lYUHb3:1␤␤»
lizmat RabidGravy: +1 from me (to be clear)
RabidGravy :)
I'll do it, and apologise later if anyone objects ;-) 09:40
zengargoyle m: sub r { my @x = 1,2; my $y = 3; return @x, $y }; my (@a,$b) = r; @a.say; $b.say; my (@c,$d); ((@c,$d)) = r; @c.say; $d.say;
camelia rakudo-moar 38f486: OUTPUT«[[1 2] 3]␤(Any)␤[[1 2] 3]␤(Any)␤»
zengargoyle m: sub r { my @x = 1,2; my $y = 3; return @x, $y }; my (@a,$b) = r; @a.say; $b.say; my (@c,$d); (@c,$d) = r; @c.say; $d.say; 09:41
camelia rakudo-moar 38f486: OUTPUT«[[1 2] 3]␤(Any)␤[[1 2] 3]␤(Any)␤»
azawawi we do not have the concept of a test suite file like in JUnit and other testing frameworks (in other languages) that is, right?
im trying to map a selenium test suite (a collection of test cases) into perl 6 09:42
09:42 tokuhirom_h left
lizmat ah, and good * to you, masak! :-) 09:42
09:42 TEttinger left
RabidGravy azawawi, something quite like Test::Class (in Perl 5) has yet to emerge afaik 09:44
zengargoyle m: sub r { my @x = 1,2; my $y = 3; return @x, $y }; my (@a,$b) = r; @a.say; $b.say; my (@c,$d); ((@c),$d) = r; @c.say; $d.say; 09:45
camelia rakudo-moar 38f486: OUTPUT«[[1 2] 3]␤(Any)␤[[1 2] 3]␤(Any)␤»
zengargoyle m: sub r { my @x = 1,2; my $y = 3; return @x, $y }; my (@a,$b) = r; @a.say; $b.say; my (@c,$d); (@c),$d = r; @c.say; $d.say;
camelia rakudo-moar 38f486: OUTPUT«WARNINGS:␤Useless use of variable @c in sink context (line 1)␤[[1 2] 3]␤(Any)␤[]␤([1 2] 3)␤»
dalek kudo/curli: 1a5a465 | (Stefan Seifert)++ | src/core/CompUnit (2 files):
Migrate Repository::FileSystem's candidates code into need

This allows for us to remove CompUnitRepo::Locally's need method.
09:46
ecs: e1da64f | RabidGravy++ | S22-package-format.pod:
Kebab case superseded_by to superseded-by in S22
09:51 spider-mario joined
azawawi RabidGravy: thanks for the info. So basically I have to map each selenium test case into nnn-test-name.t to preserve the run order of the test suite 09:56
RabidGravy looks at the existing testy things 09:58
so it seems, the tests files are definitely run in sorted order 10:00
nine azawawi: why do you need a certain order of your test files?
RabidGravy or make something like Test::Class but using traits rather than special names for the test methods 10:01
nine, in a web application you may not have control of the degree of isolation of the state of the application between tests 10:02
10:03 Ven_ joined 10:04 Actualeyes left
nine Not strictly isolating state between tests was a very wrong decision I've made and one that was very costly to reverse. But if we hadn't reversed it our test suites would run for hours instead of 15 minutes. 10:04
10:04 softmoth joined
dalek kudo/curli: 382ae45 | (Stefan Seifert)++ | src/core/CompUnit/Repository/Installation.pm:
Fix CompUnit::Repository::Installation::can-install

The previous code has never been tested and of course contained a bogus call to Any.any
10:07
RabidGravy in my last job we had a test suite that ran for hours, largely because it twatted and rebuilt the database between every fixture for every test
10:09 softmoth left
nine RabidGravy: that's why it would be better to have a random grouping of tests cases where each group gets a clean and separae database. So groups may run in parallel but you don't pay the cost of database setup for every single test case. 10:09
While still finding implicit dependencies between test cases quickly. 10:10
RabidGravy though all this said, I do find that there is a sort of natural order that tests should run in order to make debugging easier (i.e. does it compile -> does it have the expected methods .... etc, etc) 10:12
nine Tests are only useful when they are run. Will you run those basic tests for every single change when it adds an hour to your test runs? Probably not. You will only run the tests for the area you're working in. 10:14
RabidGravy indeed, for myself in a larger system I tend to organise things such that each "thing" that can be altered separately has a test file of its own that has enough coverage to ensure that you don't break stuff making a tiny change 10:16
then let CI pick up any unanticpated fallout 10:19
10:20 Ven_ left 10:22 Ven_ joined 10:23 rindolf joined
azawawi nine: sorry for being away but the short answer is my selenium test cases were written by a junior QA engineer... 10:27
nine azawawi: ok, that explains it very well :) 10:28
azawawi nine: basically in a web application, you have logged in/out states to consider. So i guess we can automate the login behavior and rerun it (at test runtime cost). 10:29
nine: also i asked because im working on translating from selenese commands into Perl 6 code :) 10:30
nine: i.e. QA edit it using selenium firefox IDE extension, and CI converts it into Perl 6 code and runs it on each test case commit 10:31
nine azawawi: just for context: at work we deal only with web applications with one exception. So we've been through a lot of these issues. That's also the reason why I wrote Test::WWW::WebKit, so we could realiably run tests in parallel and much faster then with Selenium.
azawawi takes a look at Test::WWW::WebKit
nine azawawi: it's great for testing your Javascript code, but of course useless for cross browser testing. 10:32
azawawi nine: but i have to consider IE and firefox in my case... and windows platform (my curse lol)
nine: so basically it is phantomjs? 10:33
nine: but faster since there is no JSON HTTP bridge involved, right?
nine Pretty much, yes.
azawawi cool thanks for the info 10:34
nine Phantomjs was not yet usable when I started WWW::WebKit. Also I needed a real drop-in replacement for Test::WWW::Selenium::Catalyst because we already had loads of tests based on that.
10:35 Ven_ left
azawawi so basically i need to make sure my selenium package has a compatibility layer with Test::WWW::Selenium to make it easier to migrate Perl into Perl 6 code 10:35
10:37 Ven_ joined 10:48 ][Sno][ joined 10:49 [Sno] left, Ven_ left 10:51 Ven_ joined 10:54 diana_olhovik joined 10:57 azawawi left 10:58 xfix left 11:01 diana_olhovik left 11:08 bpmedley left 11:09 cygx joined
cygx o/ 11:09
11:11 xfix joined, andreoss joined
dalek kudo/nom: 0d82c9b | lizmat++ | src/core/IO/Handle.pm:
Wean IO::Handle.Supply away from nqp::readfh
11:17
11:20 Ven_ left 11:23 Ven_ joined
RabidGravy right, off to the farmers market! toodlepip! 11:24
lizmat
.oO( fresh farmers!! wheee!! )
11:26 Ven_ left 11:28 RabidGravy left 11:32 diana_olhovik joined 11:34 FROGGS__ joined 11:35 brrt joined
brrt good * 11:37
dalek kudo/curli: d3e60c5 | (Stefan Seifert)++ | / (7 files):
CompUnitRepo::Locally -> CompUnit::Repository::Locally

Even though the module loading code has been migrated to the concrete implementations, the CompUnit::Repository::Locally role is still useful for sharing code between file system based implementations.
11:37 FROGGS_ left
nine I dare say, this concludes phase 1: code restructuring :) 11:39
lizmat nine++ 11:40
nine Now if only I knew how exactly this broke panda. I'd know a couple of changes that could need adjustment in panda, but it simply fails at use Test; But when I run the tests manually, everything is fine. 11:41
moritz nine: compare %*ENV and $*CWD? 11:43
11:44 yqt joined
dalek ast: e968239 | lizmat++ | S16-io/supply.t:
Add tests for IO::Handle.Supply
11:45
11:45 leont joined 11:46 yqt left 11:48 azawawi joined
nine moritz: oh, yes, panda's bootstrap.pl sets PERL6LIB 11:49
lizmat It's been a while: All tests successful. 11:50
Files=1069, Tests=49584, 237 wallclock secs (12.44 usr 3.86 sys + 1462.43 cusr 126.93 csys = 1605.66 CPU)
only 416 to go for 50K :-)
nine lizmat: still nice to see :)
azawawi so what is curli? :)
nine Wow, where did those 1000 tests come from?
azawawi: gist.github.com/jnthn/47a42b2e86e7e552b2e2
dalek kudo/nom: f9056c6 | lizmat++ | t/spectest.data:
Run tests for IO::Handle.Supply
11:51
11:51 tokuhirom_h joined
lizmat nine: I added 2 tests for each class known, checking validity of handling .gist and .perl on type object 11:51
azawawi reads
lizmat and found 2 problems because of that :) 11:52
nine lizmat++ # nice!
11:52 softmoth joined 11:54 diana_olhovik left 11:57 softmoth left 11:58 mj41 left
azawawi nine: nice. thanks for the info 12:00
nine Oh, the panda breakage is a cute one. CompUnitRepo caches repositories by path and will give you the same repo object for the same path. Since repos are now a linked list, re-using an object from the end of the list, will give you a rather short chain. 12:02
And panda's bootstrap.pl does exactly that: it specifies a repo in PERL6LIB that will be automatically added by rakudo anyway.
lizmat the fact that panda adds repo's, is broken, imho 12:03
it's part of the delay of installing many modules
delay at startup I mean 12:04
nine Well during bootstrap at least it has to add its local lib dir
azawawi panda is broken also on windows for .bat scripts that is... im waiting on curli to land for it be fixed or so i was promised :)
lizmat nine: the way I remember it, panda added an INC entry for each module installed 12:05
nine lizmat: that sounds terrible
lizmat well, please double check, but that's what I remember from looking at it 12:06
azawawi any zef developers here? 12:07
nine ==> Successfully installed panda 12:08
:)
cygx azawawi: ugexe and tony-o have contributed to the repository 12:09
azawawi cygx: thx 12:10
so MANIFEST in my rakudo folder is a json file that shows where are the different installed module version(s), right? 12:11
dalek c: badbf5d | lizmat++ | doc/Type/IO/Handle.pod:
Document IO::Handle.readchars + some cleanup
c: c1abbc8 | lizmat++ | doc/Type/IO/Handle.pod:
Document IO::Handle.Supply
kudo/curli: 3fa2369 | (Stefan Seifert)++ | src/core/Process.pm:
Include every repo only once in the $*REPO chain

CompUnitRepo caches repositories by path and will give you the same repo object for the same path. Since repos are now a linked list, re-using an object from the end of the list, will give you a rather short chain.
Having a path represented by only a single object is still a good idea. And there should be no reason to have a path in multiple places of the repo chain, so avoid the breakage by making sure we include every repo only once.
cygx should get around to documenting IO::Handle.open and adding some tests, for that matter... 12:12
bartolin m: use Test; for ^150 -> $n { is $n + 0, 42 }
camelia rakudo-moar 0d82c9: OUTPUT«(signal SEGV)not ok 1 - ␤␤# Failed test at /tmp/bamd8cvbpB line 1␤# expected: '42'␤# got: '0'␤not ok 2 - ␤␤# Failed test at /tmp/bamd8cvbpB line 1␤# expected: '42'␤# got: '1'␤not ok 3 - ␤␤# Failed test at /tmp/bamd8cvbpB l…»
bartolin ^^ that segfault goes away with MVM_SPESH_DISABLE. Seems to happen in src/core/Cool.pm (method ends-with) while looking up the calling file. 12:14
cygx
.oO( what do you mean, undocumented? the commit message couldn't be clearer )
bartolin should I report it as an MoarVM issue or as a rakudobug?
12:14 tokuhirom joined
azawawi MANIFEST json is now 375 lines with only zef installed... what happens when we install hundreds of modules? parsing time? 12:15
nine azawawi: that's been a hot topic for months.
azawawi hotfixes his win32 panda installation for it to work 12:17
nine I'd say let's but the data into CSV files and have [Tux]++ optimize the loader till it runs in negative time ;)
ShimmerFairy Honestly, for something performance-sensitive I'd personally gravitate towards a binary format :) 12:19
cygx personally, I think the grammar engine as a whole is in need of a major speedup
nine ShimmerFairy: yes, sqlite
cygx have a couple hundred lines of code, and startup-time is a goner
12:19 tokuhirom left, RabidGravy joined 12:20 vendethiel left 12:21 SHODAN left
flussence thinks the filesystem is a pretty decent database format... 12:21
ShimmerFairy too bad the program can't choose the filesystem :P 12:22
nine flussence: until you need to find a module with version 2.1 or greater
12:22 Actualeyes joined
ShimmerFairy
.oO( sqlext )
12:22
azawawi Lots of tests failures on windows 7... time to work :) 12:24
12:28 tokuhirom joined
RabidGravy returns with a haul of locally brewed beer, strange vegetables and cheese 12:31
12:32 tokuhirom left
dalek kudo/nom: 48570b3 | lizmat++ | src/core/Any-iterable-methods.pm:
Use ternary, remove superstitious if/else
12:35
kudo/curli: 1aaf568 | (Stefan Seifert)++ | src/core/CompUnit/Repository/FileSystem.pm:
Bring back CompUnit::Repository::FileSystem::files

Apparently it's being used by panda
12:40
cygx anyone up for adding a more helpful 404 error page to doc.perl6.org? 12:41
already ticketed, I see ( github.com/perl6/doc/issues/129 ) 12:43
nine lizmat: do you think it's worth the time to try to reduce Perl6::ModuleLoader to the absolutely needed minimum? Loading Perl 6 modules should always go through CompUnitRepo AFAICT.
lizmat yes, it would always need to go through one place, especially to take care of async issues and sentinelity :-) 12:44
in fact, I could argue we only need Perl6::ModuleLoader for nqp modules 12:45
12:46 ^elyse^ joined
nine lizmat: yes, it seems to load Perl6::BOOTSTRAP and occasionally NQPHLL from NQP 12:46
lizmat: I guess we don't need much "locate an appropriate file" functionality for that 12:47
lizmat indeed :-)
dalek kudo/nom: ac0d1d4 | lizmat++ | src/core/Any-iterable-methods.pm:
Convert as-iterable/as-iterator

Since all calls to it where followed by .iterator anyway
12:48
lizmat brb 12:49
12:50 brrt left
RabidGravy so my first stupid question of the day: if I have something like "module Foo { multi sub doit(Int $t) { ... }; multi sub doit(Str $t) { ... }; sub process($t) { doit($t) } }" is it possible to inject a new multi doit() into there at runtime? 12:52
my initial research suggests not but I may be missing something 12:53
cognominal m: say $( 'a' ~~ /a/ )
camelia rakudo-moar f9056c: OUTPUT«「a」␤»
cognominal m: .say for $( 'a' ~~ /a/ )
camelia ( no output )
cognominal strange
nine lizmat: seems like I'll have to separate loading the BOOTSTRAP a bit more from normal module loading 12:56
lizmat looks good to me :-) 12:58
nine Right now it loads Perl6::BOOTSTRAP as if it was a Perl 6 module. It just works because it's already precompiled to a .moarvm file 12:59
lizmat yeah, didn't I already separate that ?
(or maybe tried to and failed :-) 13:00
nine If you already separated it a bit, I don't even want to know how tangled that was before :)
lizmat well, I removed the need for the "use bootstrap" at the beginning of the setting :-) 13:01
brb
psch m: proto f(|c) { }; multi f (Int $) { }; &f.dispatchees.say; &f.add_dispatchee(my sub (Str $) { "Str" }); &f.dispatchees.say; say f("foo"); 13:06
camelia rakudo-moar 48570b: OUTPUT«(sub f (Int $) { #`(Sub|67822152) ... })␤(sub f (Int $) { #`(Sub|67822152) ... } sub (Str $) { #`(Sub|67822456) ... })␤Nil␤»
psch RabidGravy: ^^^ it... almost works..?
RabidGravy: i suspect i'm missing something .^compose like, i.e. refreshing a cache or somesuch
mrf m: grammar G { token foo {A**^4}}; G.parse('AA', :rule<foo>)
camelia rakudo-moar 48570b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7exYZNKBkF␤Quantifier quantifies nothing␤at /tmp/7exYZNKBkF:1␤------> 3grammar G { token foo {A**7⏏5^4}}; G.parse('AA', :rule<foo>)␤»
mrf m: grammar G { token foo {A**0..4}}; G.parse('AA', :rule<foo>) 13:07
camelia ( no output )
13:08 grondilu left
mrf m: say ^10 13:08
camelia rakudo-moar 48570b: OUTPUT«0..^10␤»
mrf whats the correct syntax to use the ^10 range form rather than 0..10 in a token? 13:09
or am I inventing syntax again 13:10
timotimo o/
RabidGravy psch, hmm - the problem here is I want to do this to a module that I may or may not have control of
13:10 loren joined
mrf \o timotimo 13:10
timotimo TimToady++ # did everything i wanted to do to my error detection code from yesterday; and a bit more!
loren Evening, #perl6
colomon o/
flussence m: grammar G { token foo {A**0..4}; token bar {A**{^4}}}; say G.parse('AA', :rule<foo>); say G.parse('AA', :rule<bar>); 13:11
camelia rakudo-moar 48570b: OUTPUT«「AA」␤「AA」␤»
RabidGravy I think that approach would require a co-operating module to expose a sub or a method
flussence m: grammar G { token baz {A ** ^4} }; say G.parse('AA', :rule<baz>);
camelia rakudo-moar 48570b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2U8vyv7gd6␤Quantifier quantifies nothing␤at /tmp/2U8vyv7gd6:1␤------> 3grammar G { token baz {A **7⏏5 ^4} }; say G.parse('AA', :rule<baz>);␤»
mrf flussence++ #star thanks. 13:12
cognominal m: say "v6.b" cmp "v6.birthday"
camelia rakudo-moar 48570b: OUTPUT«Less␤»
cognominal I am confused about rakudo versionning
loren How to undef a variable ? Like undef($something) ?
nine loren: $something = Any 13:13
RabidGravy m: my $f = "foo"; say $f; $f = Any; say $f
camelia rakudo-moar 48570b: OUTPUT«foo␤(Any)␤»
mrf flussence: I guess the 0..10 form looks cleaner...Oh well. Are you able to explain why the ^10 form only works if in {}
RabidGravy because it wants to be interpreted as code 13:14
timotimo nine: not "$something = Nil"? 13:15
RabidGravy it's perl 6 grammar in grammar grammar
loren m: my $x = 10; undefine($x); say $x.defined;
camelia rakudo-moar 48570b: OUTPUT«False␤»
loren I found undefine can does this job 13:16
13:16 Oatmeal left
mrf RabidGravy: I am not entirely sure that I understand but I am happy to except 'you just do' at the moment 13:16
loren thks, nine timotimo
timotimo mrf: it's simply a case of the perl6 rules/regex/grammar grammar not yet understanding ^10 syntax in that position yet 13:17
we may want to introduce that for consistency's sake
nine timotimo: I guess that's one part of Perl 6 where I'm still just unsure
mrf timotimo: So its an unimplemented feature? IF so then thats fine. Its not a bit issue. 13:18
lizmat multi sub undefine(Mu \x) is raw { x = Nil } # undefine is just assigning Nil if not an iterable
ShimmerFairy mrf: IIRC it's out of some kind of backward-compatibility with old syntax that I believe isn't a good reason anymore 13:20
m: my $a = 3; say "AAA" ~~ / A ** { $a } /
camelia rakudo-moar 48570b: OUTPUT«「AAA」␤»
ShimmerFairy m: my $a = 3; say "AAA" ~~ / A ** $a /
camelia rakudo-moar 48570b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/swN76XzxDb␤Quantifier quantifies nothing␤at /tmp/swN76XzxDb:1␤------> 3my $a = 3; say "AAA" ~~ / A **7⏏5 $a /␤»
13:22 Oatmeal joined
mrf ShimmerFairy: Ok. Given that I am very unlikely to be able to fix that I will work around it. Any idea where I would document that inconsitency? 13:22
ShimmerFairy mrf: Not sure. I honestly think we should get rid of the issues involving supporting the old old old usage, if I'm correct on why those two cases work :) 13:23
m: my $a = 3; say "ABA" ~~ / A ** B / # huh, apparently we don't support that 'old form of +%' anymore anyway 13:25
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GHb2tCuMbd␤Quantifier quantifies nothing␤at /tmp/GHb2tCuMbd:1␤------> 3my $a = 3; say "ABA" ~~ / A **7⏏5 B / # huh, apparently we don't suppor␤»
psch RabidGravy: irclog.perlgeek.de/perl6/2011-09-11#i_4409571 maybe this gives some insight
RabidGravy: fwiw, "adding dispatch candidates to exported subs" feels kind of wonky to me in the first place
RabidGravy: especially considering the dispatche{r,ees} are local to the Routine 13:26
mrf ShimmerFairy: I agree that it would be nice to support ** ^10 formats. But the most I can likely do to help is docuemnt that it currently doesn't work. 13:27
timotimo mrf: want me to point you at the places in the code that are relevant? 13:28
psch looks like a pretty small patch from here 13:29
timotimo should be very small, aye
ShimmerFairy I think the ** ^10 case is just simply a case where the regex parser doesn't realize it's a Range too :)
timotimo yeah
mrf: you'd be looking inside the NQP repo under src/QRegex/P6Regex/
ShimmerFairy and ** $a shouldn't be too much more difficult either. Unless there's some other reason to absolutely force the closure form there. 13:30
timotimo in the Grammar.nqp file you'll be able to find the regex that parses a range after a **
mrf timotimo: I am happy to take a look if you suspect that it is a 'simple' change.
timotimo and it'll also tell you what method to look at in the Actions.nqp (same name as the token/regex/rule/whatever it parse the range so far)
and from there you should already have enough to cargo-cult
RabidGravy psch, specifically it's for something like this github.com/jonathanstowe/JSON-Mars...Marshal.pm or the reverse JSON::Unmarshal, to add a _marshal_unmarshal candidate with specific logic for a specific type 13:31
mrf has more eagerness than capability
timotimo then you can test your changes with building only an nqp and then nqp-m -e 'say("helllllllllo" ~~ / l ** ^4 /)' or something
RabidGravy (_marshal/_unmarshal) that is
lizmat cycling& 13:32
timotimo mrf: i hope you'll find your excursion to the inside of rakudo's guts to be pleasant :)
13:32 AlexDaniel joined
RabidGravy obviously in those cases they can be made to co-operate, but you see what I mean I hope 13:33
mrf timotimo: I am sure it will be enjoyable and educational. 13:34
RabidGravy or you'll never want to look at software source code again
timotimo i know a bunch about nqp, so i can help you with anything you have questions about 13:35
gladly :)
mrf RabidGravy: Having dealt with $works legacy Perl5 I am sure it can't be that bad
timotimo++ Thank you. I am sure I will have questions so will let you know
timotimo nqp is a fantastic language for implementing a perl6 compiler in, except that you can't debug it sanely
psch RabidGravy: gist.github.com/peschwa/2d25e44bcabecf1d6ced this works, but yes, it explicitly hands out the proto for adding the dispatchee 13:36
RabidGravy psch, :) nice 13:39
13:40 softmoth joined
azawawi RabidGravy: PR submitted for HTTP::UserAgent, Travis CI testing it :) 13:41
RabidGravy: for windows compatibility
nine lizmat: it's just 18 lines of code for loading BOOTSTRAP
RabidGravy you could do another level of abstraction and it might be somewhat generally useful ;-)
azawawi, I'll have to take your word on the windows compatibility as I don't know where the only windows computer in the house is right now 13:42
;-)
azawawi RabidGravy: it is a simple crlf problem with git.
timotimo TimToady: i had considered using the op's nodes' string accessor to get the exact thing the user typed, so that it'd also keep things like 10_000_000 intact 13:43
azawawi RabidGravy: which brings another topic, reliance on git for modules = CRLF troubles... PAUSE-like zipped releases are better
timotimo i thought git had a thing for handling CRLF?
nine timotimo: there's at least options for that 13:44
timotimo it's probably opt-in, though
RabidGravy yeah, I think there is some "native line ending thing" config
13:45 softmoth left 13:46 spider-mario left
psch hrmm 13:47
so i have one more almost-passing test
but my changes somehow mucked up Test.pm..?
'cause the test itself seems to work half-way, printing the final ok doesn't work because of a type object somewhere in _pop_vars...
but well, isolated test cases show that there's something wrong anyway, so i'll just ignore that hiccup there and try again... :S 13:48
RabidGravy azawawi, you may find "git rebase" useful to lose some of the revert/merge/etc before you push to github :) 13:49
it took me ages to work out how it works but now I'm a convert ;-) 13:50
13:51 spider-mario joined
timotimo bartolin: can you try that line with the loop and Test again with an up-to-date MoarVM? on my machine it at least doesn't segfault, it outputs chars requires a concrete string, but got null 13:52
bartolin: which jnthn very recently fixed
RabidGravy love me a bit of segfaulting in the morning 13:53
okay it's the afternoon
timotimo has Universal Knoppers time
this shift key is ... wobbly :( 13:54
RabidGravy heisen-shift!
RabidGravy gently prods tadzik about the PRs on JSON::Unmarshal 13:55
psch my alt-gr is sometimes a bit unresponsive :/ 13:57
which is really annoying when i want to paste from a screen buffer, but instead switch to screen 9
timotimo every now and then, i randomly remember the horribleness that is german keyboard's placement of {} and []
RabidGravy oh, my alt-gr is mapped to <Compose>
timotimo and \ 13:58
azawawi ok and another panda fix for windows github.com/tadzik/panda/pull/240 :)
psch timotimo: you're using neo2?
timotimo yeah 13:59
RabidGravy azawawi++ # fixorification day
azawawi interesting p6doc also fails on windows :) 14:00
psch timotimo: how long it did take you to get used to it, ooc?
timotimo good question 14:01
i remember about a week of frustration because i couldn't answer fast enough in chats and such
during at least the first month or two i had trouble finding some of the rarer specials, like $|~` 14:02
i've been on neo2 for like 6 years now, i think 14:04
there's some programs that get really confused by neo2's extra arrow keys, especially java programs 14:07
psch i guess qwertz is still around, though
i mean, congnitively
timotimo allegedly, it just takes a minute or two to get back into qwertz
but i struggle quite a bit whenever i'm forced to qwertz
let' try this, actually 14:08
i do have to look at the keyboard
and special chars just 100% fluster me :)
14:09 raiph joined
psch i'm always a bit weary of over-customizing my environment, tbh 14:09
timotimo i still have enough qwertz in me to type "setxk<tab>de neo"
psch that even extends to things like .bashrc or .vimrc
timotimo mhm
i can understand that
psch and a non-standard keyboard layout is pretty much as far as one can drive customization... :)
timotimo if you're allowed to carry a little autohotkey exe file around with you and onto other computers, neo2 is easy on windows, though 14:10
amusingly, qt and gtk programs tend to spectacularly fail with neo2 on windows 14:11
RabidGravy I've tried (custom kb layouts,) but I've been using qwerty for ~40 years and the reward is too little for the struggle
timotimo gtk file open dialog not being able to handle the special chars layer, which includes / for example
qt is a whole lot better, usually just the extra arrow keys not working
qwerty is a ton less atrocious than qwertz is 14:12
no clue about azerty
except azerty is super weird to me
not that i looked at it a lot 14:13
RabidGravy fortunately for me whenever I worked somewhere that has differing layouts I've always had my own laptop
timotimo i tend to carry my laptop around everywhere 14:14
if i have to work on a windows machine i'm screwed anyway
if i can get a linux machine, i'm golden, because neo2 is on every linux machine that has X 14:15
moritz at work I have two keyboards, one with US layout (for writing code), one with German layout (for emails, documentation)
and I noticed that I can press the "shift" button on one, and a normal key on the other, and still get an upper-case letter :-)
timotimo does having a physical switching action help get confused with z/y lessß 14:16
moritz timotimo: it helps that they have a different physical shape
timotimo mhm
moritz timotimo: one is ergonomic / curved, the other is straight
that helps me a lot
timotimo i have a MS sculpt 2 here and an external thinkpad usb keyboar
the sculpt has the wobbly shift key and the tab key straight up fell out 14:17
but it is more comfortable to type with compared to the flat and a tiny bit cramped TP keyboard 14:18
dalek kudo/curli: 521ac70 | (Stefan Seifert)++ | src/ (3 files):
Remove Perl6 module loading code from Perl6::ModuleLoader

Perl6::ModuleLoader is despite its name actually used only for loading NQP modules, most notably Perl6::BOOTSTRAP. Loading real Perl6 modules should only be done by CompUnit::Repositorys.
We special case Perl6::BOOTSTRAP for now and leave NQP loading capabilities in place. We may want to move the latter to Perl 6 code, though.
nine .tell lizmat you might like github.com/rakudo/rakudo/commit/521ac708a1
yoleaux nine: I'll pass your message to lizmat.
timotimo psch: it seems like i was able to cope with qwertz 14:19
nine 216 lines of redundant module loading code removed :)
timotimo psch: but i did have to look at the keyboard a bunch; didn't really feel like i was searching for keys, though
psch yeah, i'm wondering if i should try switching again tbh 14:20
14:21 andreoss left
ShimmerFairy is far too used to good ol' american QWERTY, with compose key of course :P 14:21
psch but the most problematic move for my joints is hitting left alt with my thumb, which neo2 doesn't help with afaict...
timotimo i hold left alt with my thumb all the time :| 14:22
psch well, i had a few fractures in my left wrist a bunch of years ago
timotimo ugh, not good
psch so it's probably rooted in those at least a bit
timotimo unfortunately the pinky's way too far away to be used as a replacement 14:23
how do you feel about getting a foot pedal and using that for alt?
like "vim clutch" or what it's called
psch that feels pretty ridiculous to me, tbh 14:24
i mean, it makes sense from a comfort and all perspective, but...
ShimmerFairy just thinking about it, I believe my habit is to move my hand enough to the left that my thumb isn't under my hand when pressing left alt :) (and I never use the right side modifiers, except for where I put compose)
timotimo psch: you could use a microphone, so that while you whistle, it'll hold alt for you
azawawi m: say $*SPEC.path.perl; 14:25
camelia rakudo-moar ac0d1d: OUTPUT«("/home/camelia/perl5/perlbrew/bin", "/home/camelia/perl5/perlbrew/perls/perl-5.20.1/bin", "/usr/local/sbin", "/usr/local/bin", "/usr/sbin", "/usr/bin", "/sbin", "/bin").Seq␤»
psch timotimo: that's really just silly :/
azawawi on windows $*SPEC.path.perl is returning (".", ("C:\\ProgramData\\Oracle\\Java\\javapath", "C:\\Windows\\system32", ...).Seq)) . Is that correct? 14:26
psch i guess some kind of ergo keyboard, or maybe one of those split ones would be great, but that's again the whole "overly customized" thing
so eh, i'll just silently suffer :P
i mean, it's not bad bad, just sometimes a little bad-ish
ShimmerFairy psch: caps-lock as alt, problem solved! :P 14:27
psch ShimmerFairy: caps-lock is compose when i have it :P 14:29
(i don't, at the moment, because i'm too lazy to figure it out on windows)
azawawi $*SPEC.path => ('.', (..).Seq) on windows?
14:29 tokuhirom joined
timotimo you could go the neo2 route and put compose on capslock + tab 14:33
14:34 tokuhirom left
psch hm, that actually sounds like a good idea 14:35
eh, almost at least 14:36
if capslock becomes alt, capslock + tab becomes alt+tab
timotimo when do you ever use that! :)
14:37 kjs_ joined
psch i think compose as capslock + rshift would work 14:39
i guess that should be possible with xmodmap
14:45 Alina-malina left
psch now, why does r-j try to unbox a Nil... 14:46
RabidGravy azawawi, looks okay to me 14:47
14:47 tokuhirom_h left 14:48 xpen joined
azawawi RabidGravy: i flat-tened it to make File::Which work :) 14:49
RabidGravy flattening also works :)
14:49 xpen left
azawawi now phantomjs selenium web driver are working on windows. Firefox and chrome web drivers have some issues. Oh well :) 14:52
RabidGravy flatteny will get you everywhere
mrf timotimo: Do you have any idea how you debug NQP. I have what I think should be a working solution but I am still getting the same error from a 'say("hello" ~~ /l ** ^2/)' 14:53
timotimo please tell me what the error is? 14:54
i'd probably have an easier time helping you if you upload your diff, too
psch nqp-m: say("aa" ~~ /l ** ^2/)
camelia nqp-moarvm: OUTPUT«Quantifier quantifies nothing. at line 2, near " ^2/)"␤ at gen/moar/stage2/NQPHLL.nqp:521 (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQPP6QRegex.nqp:83 (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPP6QRegex.mo…»
mrf timotimo: yes that one ^
psch seconds the request for a diff
timotimo mhm
mrf timotimo: will do
timotimo thanks :) 14:55
bartolin timotimo: yes, with a more recent moar (2015.10-21-g47bb37e) the segfault I showed earlier today is gone.
14:55 Alina-malina joined
bartolin timotimo: the new error message goes away with MVM_DISABLE_SPESH, btw 14:56
timotimo yeah, things like that are usually spesh-related
mrf timotimo: psch: gist.github.com/ungrim97/47b970ed15ed629d9a49
nine m: for 1..1000000 { }; say now - INIT now;
camelia rakudo-moar ac0d1d: OUTPUT«1.49898778␤»
timotimo a little bit more context please? :S
oh 14:58
mrf: when you get $<min>=['^'], $min won't be '^'
mrf: there's nothing in there that'd set a .ast on the $<min> in the ^ case 14:59
i suggest you check $<min>.Str eq '^'
15:00 khw joined
mrf timotimo: is .ast only set for <> captures? 15:00
timotimo the action method is responsible for setting the .ast
that's what the "make" keyword does
15:01 azawawi left
mrf timotimo: ah ok 15:01
timotimo i expect that'll get you far 15:03
mrf timotimo: ?
timotimo the change for $<min> eq '^'
i expect that'll give you a working implementation
psch heh, that might give us < $tkn ** ^ > as a funny way for "match 0 times", though 15:05
timotimo oh; that would be weird, too
mrf psch: yes I did notice that. I am not sure if that is a bad thing or not. 15:06
timotimo that's for when you don't know that comments work inside regexes
huh, <max=.integer> would also be able to match ""?
psch timotimo: oh, no, of course not!
i looked too closely at the actions there apparently 15:07
timotimo :)
AFK for a bit 15:09
15:14 espadrine joined
b2gills m: sub flipper { $ .=&prefix:<!> }; say flipper for ^5 15:14
camelia rakudo-moar ac0d1d: OUTPUT«True␤False␤True␤False␤True␤»
mrf timotimo: psch: gist.github.com/ungrim97/98a8ca3d252215b544ca 15:17
still no dice. Not sure why?
psch mrf: oh 15:18
mrf psch: the gist has 20 lines of context FYI 15:20
nine timotimo: seems like optimize_for_again is mostly working already? 15:23
psch nqp-m: say("a" ~~ /$<min>=['a']/)
camelia nqp-moarvm: OUTPUT«a␤»
nine timotimo: looks like correct sink context detection is the only bit left 15:24
timotimo that's right
psch mrf: your patch works for me, did you forget to rebuild nqp? 15:26
timotimo i was about to say; that patch looks perfect to me
the [ ] around '^' are unnecessary, but other than that it looks good 15:27
mrf psch: I reran make which I thought was enough. Is it not?
timotimo "make install"
probably
otherwise you'd have to explicitly ./nqp-m
psch i usually run '. config.status'
mrf thats my issue. I am using nqp-m for thois not ./nqp-m
*sigh*
psch mrf++
mrf Will submit a pull request. 15:28
:D. Look at me doing work on NQP
mrf feels like a real programmar :D
timotimo cool :)
15:29 softmoth joined
mrf OOI what is the difference between <min='^'> and $<min>='^' ? 15:30
timotimo oh, <min='^'> works? 15:31
mrf No but I am curious why.
would <min=^> look for a rule/token called ^
15:33 softmoth left
psch nqp-m: say("a" ~~ /<min=^>/) 15:33
camelia nqp-moarvm: OUTPUT«Unable to parse expression in metachar:sym<assert>; couldn't find final '>' at line 2, near "=^>/)"␤ at gen/moar/stage2/NQPHLL.nqp:521 (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQPHLL.nqp:528 (/home/camelia/…»
psch nqp-m: say("a" ~~ /<min='^'>/)
camelia nqp-moarvm: OUTPUT«Unable to parse expression in metachar:sym<assert>; couldn't find final '>' at line 2, near "='^'>/)"␤ at gen/moar/stage2/NQPHLL.nqp:521 (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPHLL.moarvm:panic:105)␤ from gen/moar/stage2/NQPHLL.nqp:528 (/home/cameli…»
psch the rhs expects a routine
for the enclosed form 15:34
15:34 kjs_ left
mrf also I have added suport for ^* as well as that wasn't covered by <max=.integer> 15:34
psch so, yes, it would look a for a token named ^, if ^ would parse as an identifier
timotimo i don't expect it not to, but does the patch survive spec tests? :) 15:36
psch and nqp qregex tests too, probably 15:37
mrf Hmm thats a point I should add a test for this
psch although i don't know off-hand how to run those
mrf It passes make test in nqp. Do I need to run other tests?
timotimo make spectest (usually with TEST_JOBS=4 or more depending on CPU cores) is a good idea 15:38
psch i don't know if make test makes the qregex tests, t/qregex/rx_quantifier doesn't look particularly test-file-ish
ah, make qregex-test exists
timotimo it should
mrf psch: looks like I just need to add a line or two in the rx_quantifiers file and it should get tested by 01-qregex.t 15:40
15:41 ^elyse^ left
mrf PR created for NQP 15:48
:D
15:48 tokuhirom_h joined
mrf all tests seem to pass for me 15:49
15:51 pmurias joined, s_kilk joined
timotimo looks good to me 15:53
though "^*" seems weird
15:54 tokuhirom_h left
timotimo m: say ^* 15:54
camelia rakudo-moar ac0d1d: OUTPUT«WhateverCode.new␤»
psch <foo> ** ^* should be equivalent to <foo>*, no?
timotimo yeah
psch it does look weird, yeah, but consistent to my eyes at least 15:55
timotimo weird as in: ^* isn't in perl6 - at least not the same way it would be in the grammars
i'm unwilling to decide on this :)
psch m: my @a = ^10; say @a[^*]
camelia rakudo-moar ac0d1d: OUTPUT«(0 1 2 3 4 5 6 7 8 9)␤»
psch timotimo: it is :)
i think the analogy fits, snark aside
as in, bare ranges aren't quite the same as quantifier-rhs ranges 15:56
+either 15:57
timotimo they are in the context of smartmatch :)
psch m: say (0,1,2,3) ~~ ^* 15:58
camelia rakudo-moar ac0d1d: OUTPUT«0..^4␤»
psch m: say (0,1,2,3) ~~ (^*)
camelia rakudo-moar ac0d1d: OUTPUT«0..^4␤»
psch m: say (0,1,2,3) ~~ 0..*
camelia rakudo-moar ac0d1d: OUTPUT«True␤»
psch ah, the first one does ^(lhs.elems)
m: say (0,1,2,3) ~~ { 0..$_ } 15:59
camelia rakudo-moar ac0d1d: OUTPUT«0..4␤»
psch m: say (0,1,2,3) ~~ { 0..$_ }($_) # this is what we do with mrfs path for the quantifier
camelia rakudo-moar ac0d1d: OUTPUT«True␤»
psch yeah, that kind of pushes me further towards undecided, too
the notable difference between quantifier ^* and rhs-Whatever is that the letter depends on the lhs to get meaning, and the former doesn't 16:00
i don't know if "we are the Regex language" is a strong enough context switch to allow it
m: say (0,1,2,3) ~~ (^*)($_) # more explicit 16:01
camelia rakudo-moar ac0d1d: OUTPUT«True␤»
psch hm, it turns out i don't even know what a Range on the rhs of ~~ does 16:02
m: say (1,2,3) ~~ 0..2 # ? 16:03
camelia rakudo-moar ac0d1d: OUTPUT«True␤»
psch vOv
timotimo m: say 5 ~~ 1..10
camelia rakudo-moar ac0d1d: OUTPUT«True␤»
timotimo m: say 99 ~~ 1..10
camelia rakudo-moar ac0d1d: OUTPUT«False␤»
psch m: (1,2,3) cmp 0 16:04
camelia rakudo-moar ac0d1d: OUTPUT«WARNINGS:␤Useless use of "cmp" in expression "(1,2,3) cmp 0" in sink context (line 1)␤»
psch m: say (1,2,3) cmp 0
camelia rakudo-moar ac0d1d: OUTPUT«More␤»
psch m: say (1,2,3) cmp 2
camelia rakudo-moar ac0d1d: OUTPUT«Less␤»
uruwi m: say (1, 2, 3) cmp 1
camelia rakudo-moar ac0d1d: OUTPUT«More␤»
mrf didn't intend to cause controversy
timotimo hehehe 16:05
uruwi m: say (1, 2, 3) cmp 1.5
camelia rakudo-moar ac0d1d: OUTPUT«Less␤»
uruwi So it checks only the first element.
timotimo that's a bit strange
mrf ^* seemd consitent to me and seemed like a thing people might use
uruwi m: say (1, 2, 3) «cmp« 2
camelia rakudo-moar ac0d1d: OUTPUT«Lists on either side of non-dwimmy hyperop of infix:<cmp> are not of the same length␤left: 3 elements, right: 1 elements␤ in block <unit> at /tmp/1eBwZ_Faai:1␤␤»
uruwi m: say (1, 2, 3) »cmp» 2
camelia rakudo-moar ac0d1d: OUTPUT«(Less Same More)␤»
uruwi This is what you are seeking.
psch yeah, that's below Range.ACCEPTS 16:06
m: say (3,2,1) ~~ 1..3
camelia rakudo-moar ac0d1d: OUTPUT«False␤»
psch m: say (3,2,1).reverse ~~ 1..3
camelia rakudo-moar ac0d1d: OUTPUT«True␤»
psch that's just misleading
uruwi m: say (3, 2, 1) «~~« 1 .. 3 16:07
camelia rakudo-moar ac0d1d: OUTPUT«(False True False)␤»
uruwi m: say (5, 4, 3, 2, 1) «~~« 1 .. 5
camelia rakudo-moar ac0d1d: OUTPUT«(False False True False False)␤»
uruwi What the hell happened here 16:08
psch exactly :D
Range.ACCEPTS doesn't handle List on the lhs sensibly, in my understanding
which might be because of infix:<cmp>
uruwi m: say 1 .. 5 for (5, 4, 3, 2, 1)
camelia rakudo-moar ac0d1d: OUTPUT«1..5␤1..5␤1..5␤1..5␤1..5␤»
uruwi m: say $_ ~~ 1 .. 5 for (5, 4, 3, 2, 1)
camelia rakudo-moar ac0d1d: OUTPUT«True␤True␤True␤True␤True␤»
psch m: my @a = ^10; @a ~~ 0..1 16:09
camelia ( no output )
psch m: my @a = ^10; say @a ~~ 0..1
camelia rakudo-moar ac0d1d: OUTPUT«True␤»
psch m: ^1000 ~~ 0..1
camelia ( no output )
psch m: say ^1000 ~~ 0..1 16:10
camelia rakudo-moar ac0d1d: OUTPUT«False␤»
psch that special-cases to Range.ACCEPTS(Range)
m: say ^1000 .list ~~ 0..2
camelia rakudo-moar ac0d1d: OUTPUT«True␤»
psch and *that* is just confusing
uruwi m: say gather { take $_ ~ 1 .. 5 for (1, 9, 8, 3, 2, 7, 5, 6, 4); }
camelia rakudo-moar ac0d1d: OUTPUT«("11"..5 "91"..5 "81"..5 "31"..5 "21"..5 "71"..5 "51"..5 "61"..5 "41"..5)␤»
uruwi m: say gather { take $_ ~~ 1 .. 5 for (1, 9, 8, 3, 2, 7, 5, 6, 4); } 16:11
camelia rakudo-moar ac0d1d: OUTPUT«(True False False True True False True False True)␤»
llfourn m: module A::B { }; module A { module B { } }; say A.WHAT # bug? 16:17
camelia rakudo-moar ac0d1d: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol B␤»
psch llfourn: looks like a missed check for repossession; the second module B declaration should be illegal 16:18
llfourn there are some situations when module A::B { } and module A { module B { } } work the same but others where they are not 16:19
they are meant to be exactly the same yes?
RabidGravy as I understand it yes
psch llfourn: not quite, the former stubs A, the latter finalizes it to only contain B
llfourn: i suspect that's also where the CT error above comes from 16:20
(at least that's what the code looked like the last time i looked at it...)
m: module A::B { our sub f { }; module A { our sub g { } }; say A::g
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/i7RrcAPWuD␤Missing block␤at /tmp/i7RrcAPWuD:1␤------> 3 }; module A { our sub g { } }; say A::g7⏏5<EOL>␤ expecting any of:␤ postfix␤ statement end␤ statement modifier…»
psch m: module A::B { our sub f { } }; module A { our sub g { } }; say A::g
camelia rakudo-moar ac0d1d: OUTPUT«Nil␤»
psch m: module A::B { our sub f { } }; module A { our sub g { "foo" } }; say A::g 16:21
camelia rakudo-moar ac0d1d: OUTPUT«foo␤»
psch m: module A::B { our sub f { } }; module A { module B { }; our sub g { "foo" } }; say A::g, A::B::f
camelia rakudo-moar ac0d1d: OUTPUT«===SORRY!===␤Could not locate compile-time value for symbol B␤»
psch m: module A::B { our sub f { } }; module A { our sub g { "foo" } }; say A::g, A::B::f
camelia rakudo-moar ac0d1d: OUTPUT«fooNil␤»
llfourn I noted this RT a little while ago seems to be same thing: rt.perl.org/Public/Bug/Display.html?id=126317
psch so, overwriting the first B should die
llfourn EXPORTHOW::Foo dooesn't work but EXPORTHOW { Foo { } } does work 16:22
psch and die more meaningful, probably...
llfourn psch: yep sometimes it does catch the redeclaration properly and sometimes not 16:23
also last time I checked if you load module like 'use Foo' you will get any sub-package defined like 'module Foo::bar' but you won't get 'module Bar' 16:24
even if they are bother under 'unit module Foo'
16:25 vendethiel joined 16:26 s_kilk left 16:28 loren left 16:29 TEttinger joined 16:32 BenGoldberg joined
psch llfourn: it's around package_def in Perl6::Grammar and ::Actions, in case you wanna dig in 16:33
llfourn: mostly Grammar, afaict 16:34
llfourn psch: kk will take a look 16:35
16:41 raiph left
psch m: my $x; ++++$x; CATCH { default { .perl.say } } 16:47
camelia rakudo-moar ac0d1d: OUTPUT«X::Parameter::RW.new(got => 1, symbol => "\$a")␤»
psch j: my $x; ++++$x; CATCH { default { .perl.say } }
camelia rakudo-jvm ac0d1d: OUTPUT«X::AdHoc.new(payload => "Cannot assign to a readonly variable or a value")␤»
psch somewhat misleading that moar points at $a, which is the param to prefix:<++> 16:48
but i think we have that in a few spots...
16:50 atweiden joined 16:52 skids joined 17:11 kjs_ joined 17:12 s_kilk joined
dalek rl6-roast-data: 0d23564 | coke++ | / (9 files):
today (automated commit)
17:13
17:16 grondilu joined 17:17 softmoth joined 17:21 Ben_Goldberg joined
dalek p: 44c92e4 | (Pawel Murias)++ | src/vm/js/ (7 files):
[js] Wrap nqp integers in objects so that they can be distinguished from floating point numbers.

Implement nqp::isint, nqp::isnum. Pass test 85.
17:21
17:21 softmoth left 17:22 tm left
psch hrm, if have that almost patched, the ++++$x case on jvm 17:22
but i have no reliable way for getting the parameter name
it's still hanging around in tc.native_s, but that seems really brittle to rely on
17:23 grondilu left, BenGoldberg left 17:24 grondilu joined, pmurias_ joined 17:26 tm joined 17:27 pmurias left
grondilu Hello everyone 17:28
RabidGravy erp
17:29 softmoth joined
psch oh my wat 17:35
okay, so i patched r-j to pass the tests in S03-operators/increment.t again 17:36
the i pulled roast, and reran the fudged file
just because i realized i was behind there
and then i again get the AdHoc thrown, but only if it's ran with #TODO for those tests 17:37
if i unfudge the tests, they all pass
please send help :P
nine m: for 1..1000000 { }; say now - INIT now; 17:38
camelia rakudo-moar ac0d1d: OUTPUT«1.4924420␤» 17:39
nine m: (1..1000000).map(-> {}); say now - INIT.now;
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cV_2hP_2Gw␤Whitespace required after keyword 'INIT'␤at /tmp/cV_2hP_2Gw:1␤------> 3(1..1000000).map(-> {}); say now - INIT7⏏5.now;␤»
nine m: (1..1000000).map(-> {}); say now - INIT now;
camelia rakudo-moar ac0d1d: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤ in block <unit> at /tmp/Zq1b9tCekS:1␤␤»
nine m: (1..1000000).map(-> $x {}); say now - INIT now;
camelia rakudo-moar ac0d1d: OUTPUT«1.66662376␤»
17:39 [Sno] joined
nine m: (1..1000000).map({;}); say now - INIT now; 17:40
camelia rakudo-moar ac0d1d: OUTPUT«1.65256667␤»
17:41 ][Sno][ left 17:46 Actualeyes left
[Coke] JVM test run today down to 468 failures from 2562 yesterday 17:47
bartolin [Coke]++ # roast/RT work 17:48
17:49 cognominal left
psch what the... 17:49
the fudge output in isolation works 17:50
bartolin this is the spesh bug I tried to golf today:
m: sub foo () { say callframe(1).file }; for 1..199 -> $n { next if $n < 199; foo; }
camelia rakudo-moar ac0d1d: OUTPUT«/tmp/Xyh_ADuc9i␤»
bartolin m: sub foo () { say callframe(1).file }; for 1..200 -> $n { next if $n < 200; foo; }
camelia rakudo-moar ac0d1d: OUTPUT«concatenate requires a concrete string, but got null␤ in sub foo at /tmp/RgEIqcrCGc:1␤ in block <unit> at /tmp/RgEIqcrCGc:1␤␤»
uruwi Why isn't p6 reading environment variables correctly? 17:51
dalek c: cd2afab | (Lloyd Fournier)++ | doc/Language/modules.pod:
require,use and now searchable
17:53 khw left
[Coke] uruwi: do you have code to demonstrate your problem? 17:53
uruwi I have the following at the top: constant USE-ANSI = so $*ENV<USE_ANSI>; 17:54
[Coke] m: say %*ENV<HOME>
camelia rakudo-moar ac0d1d: OUTPUT«/home/camelia␤»
uruwi And on bash I type export USE_ANSI=1
[Coke] It's %*, not $*
uruwi deeeeeeeeeeeeeeeeeerp
zengargoyle any Mathy folks around? 17:55
vendethiel depends the kind of math :p
Ben_Goldberg uruwi, You've got too much p5 in your brain ;)
uruwi Surprisingly enough, I've programmed too little p5
It was just a brain fart :P 17:56
uruwi is not used to sigils
[Coke] rakudo-moar is failing 432 tests; nonjit 350.
dynamic variables don't seem to have suggestive error messages, unfortunately.
m: my $array; say %array; 17:57
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fuOsAEEBqz␤Variable '%array' is not declared. Did you mean any of these?␤ $array␤ array␤␤at /tmp/fuOsAEEBqz:1␤------> 3my $array; say 7⏏5%array;␤»
zengargoyle taking a swing at fixing up the rosetta code perl 6 gaussian elimination entry which is old and pre-multi-dimensional arrays.
gist.github.com/zengargoyle/9a72db...8c70049bcf
17:58 cognominal joined
zengargoyle just what is proper when matrix is singular? 17:58
otherwise, code is pretty much just modifiying original to use multi-dimensional array instead of the hack. 17:59
dalek ast: a4721fe | (Lucas Buchala)++ | S16-filehandles/argfiles.t:
Add test for lines() with more than one file #126494
18:02
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126494
bartolin m: for ^200 { next if $_ < 199; say callframe } # golfed it a bit further 18:12
camelia rakudo-moar ac0d1d: OUTPUT«concatenate requires a concrete string, but got null␤ in block <unit> at /tmp/YecVtdR3D4:1␤␤»
bartolin ^^ this can happen in Test.pm (sub proclaim) while looking for the line number for error reports 18:14
18:20 jojotus joined 18:22 bitmap left 18:28 softmoth left
psch hah, apparently my patch broke the simples of cases of postfix:<++>, < my $x; $x++ >, which made Test.pm die in proclaim... 18:29
18:31 tokuhirom joined 18:35 tokuhirom left
psch oh, the actual problem appears to be that Routine.analyze_dispatch doesn't even know if the arguments are containers or not..? 18:36
18:39 sunnavy joined, sunnavy left 18:40 sunnavy joined 18:42 llfourn left 18:44 ChoHag left 18:45 kjs_ left 18:46 pmurias joined 18:49 pmurias_ left 18:52 ChoHag joined, s_kilk left 18:58 Ven_ joined 18:59 ^elyse^ joined 19:00 Ben_Goldberg left, Ben_Goldberg joined 19:01 Ben_Goldberg left 19:02 Ben_Goldberg joined 19:03 ^elyse^ left 19:06 Ven_ left 19:08 kjs_ joined, sprocket joined
sprocket hello, #perl6! 19:08
lizmat sprocket o/
yoleaux 14:18Z <nine> lizmat: you might like github.com/rakudo/rakudo/commit/521ac708a1
sprocket has anybody had any success building p6 on raspberry pi?
i’m getting a build error
19:09 Ven_ joined
sprocket and wondering if there are any workarounds i might try 19:09
lizmat sprocket: I've heard of MoarVM having been built on raspberry pi, but not nqp or rakudo 19:10
sprocket lizmat: it’s moar that’s failing for me
lizmat but I didn't pay much attention to that, so may well be totally wrong
sprocket it looks as though it’s a compiler error
or at least that’s what’s reported. :) 19:11
lizmat could you gist the error ?
psch sprocket: i think grondilu tried at least
sprocket: although i can't see anything regarding how far they got
sprocket here’s the gist: gist.github.com/anonymous/754198e8ae44fe9a3993 19:12
RabidGravy sprocket yeah it works fine for me
sprocket RabidGravy: were you checking out the latest from git, or using a specific version? 19:13
psch clog reveals grondilu has an rPi 2, fwiw
RabidGravy rakudobrew (whch gets the latest from git)
lizmat sprocket perhaps you need a more recent gcc ? 19:14
RabidGravy let me try here
sprocket lizmat: could be it - i’ll try updating raspbian
RabidGravy it could be something recent
sprocket RabidGravy - what version of gcc does yours have? 19:17
zengargoyle is my $new = $old.perl.EVAL the best way to make a deep copy of some structure?
RabidGravy gcc version 4.6.3 (Debian 4.6.3-14+rpi1)
sprocket hmmm…same as mine then 19:18
RabidGravy let me try to build it, may take some time
sprocket sure
19:21 Sqirrel joined, Ven_ left
RabidGravy I have two an RPi2 wth debian and a Rev 2 B with pidora 19:22
19:23 mj41 joined
sprocket Looks like this error pops up from time to time when x-compiling to ARM cpus 19:23
19:23 Ven_ joined
sprocket I’ll upgrade to gcc 4.8 and retry 19:24
RabidGravy yep get the same as you, looks like a codegen bug in gcc 19:25
how shit is that 19:27
19:30 pmurias left
sprocket I installed gcc 4.8 and it seems to be making urther in the build - that wil likely solve the problems, i think :) 19:31
lizmat m: class A { }; class B { multi method foo(A:) { say "foo" } }; A.foo # shouldn't this work ? 19:32
camelia rakudo-moar ac0d1d: OUTPUT«Method 'foo' not found for invocant of class 'A'␤ in block <unit> at /tmp/M87UNfsqjm:1␤␤»
19:32 pmurias joined
psch m: class A { }; class B { multi method foo(A:) { say "foo" } }; B.can('foo')(A) 19:33
camelia rakudo-moar ac0d1d: OUTPUT«Invocant requires a type object of type List, but an object instance was passed. Did you forget a 'multi'?␤ in block <unit> at /tmp/c1RfNZ9uxJ:1␤␤»
psch m: class A { }; class B { multi method foo(A:) { say "foo" } }; B.^can('foo')(A)
camelia rakudo-moar ac0d1d: OUTPUT«Invocant requires a type object of type List, but an object instance was passed. Did you forget a 'multi'?␤ in block <unit> at /tmp/RrDWXbaPE6:1␤␤»
psch huh
oh, list
m: class A { }; class B { multi method foo(A:) { say "foo" } }; B.^can('foo')[0](A)
camelia rakudo-moar ac0d1d: OUTPUT«foo␤»
psch lizmat: i don't think yours should work, there's no method foo in A
lizmat m: use MONKEY-TYPING; augment class Any { proto method foo(|) { * } }; class A { }; class B { multi method foo(A:) { say "foo" } }; A.foo # should this work ? 19:34
camelia rakudo-moar ac0d1d: OUTPUT«Use of uninitialized value of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/tjycoMnZPG:1␤Cannot call foo(A); none of these signatures match:␤ in block <unit> at /t…»
lizmat I mean, I put the proto in Any, A and B inherit from Any
still the proto doesn't see the method in B with the A: sig 19:35
psch m: use MONKEY-TYPING; augment class Any { proto method foo(|) { say "protoing"; {*} } }; class A { }; class B { multi method foo(A:) { say "foo" } }; A.foo
camelia rakudo-moar ac0d1d: OUTPUT«protoing␤Use of uninitialized value of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in method foo at /tmp/rZfRm3CR1N:1␤Cannot call foo(A); none of these signatures match:␤ in method fo…»
psch hm
19:35 ugexe joined
lizmat I think I've uncovered a place where jnthn cheated :-) 19:36
psch m: class A { proto f {*} }; class B is A { multi f(C:) { "C" } }; class C { }; say B.can('f').dispatchees
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0OjBLOfaIN␤Invalid typename 'C' in parameter declaration.␤at /tmp/0OjBLOfaIN:1␤------> 3 proto f {*} }; class B is A { multi f(C7⏏5:) { "C" } }; class C { }; say B.can('f'␤»
lizmat what I'm trying to do, is to put a Supply method in Any
psch m: class A { proto f {*} }; class C { }; class B is A { multi f(C:) { "C" } }; say B.can('f').dispatchees 19:37
camelia rakudo-moar ac0d1d: OUTPUT«Method 'dispatchees' not found for invocant of class 'List'␤ in block <unit> at /tmp/pzEOf5KeJ2:1␤␤»
psch m: class A { proto f {*} }; class C { }; class B is A { multi f(C:) { "C" } }; say B.can('f')[0].dispatchees
camelia rakudo-moar ac0d1d: OUTPUT«Nil␤»
19:37 xinming_ is now known as xinming
lizmat but Supply and other stuff is not known there then... and the fact that Supply is a *role* is not helping 19:37
because if I specify it as a return type, it gets punned, but there is nothing to pun yet :-( 19:38
psch m: class A { proto f {*} }; class C { }; class B is A { multi f(C:) { "C" } }; say B.can('f')[0].candidates
camelia rakudo-moar ac0d1d: OUTPUT«Nil␤»
lizmat at that stage in the core setting
psch m: class A { proto f {*} }; class C { }; class B is A { multi f(C:) { "C" } }; say B.can('f')[0]
camelia rakudo-moar ac0d1d: OUTPUT«Nil␤»
psch oh ffs
19:40 baest_ joined
psch lizmat: i don't think that SubA.f should call SubB.f, even if they both got an f-proto from the same parent 19:42
lizmat: i'm having trouble formalizing why, though...
something about action-at-a-distance and encapsulation... 19:43
19:44 bitmap joined
lizmat well, I've put it in a gist for someone ( jnthn?) to look at and explain to my why that doesn't work 19:44
gist.github.com/lizmat/0492103c6680fe6d2ec3 19:45
RabidGravy sprocket, hasn't finished yet but compiling moar works fine with 4.8 19:46
sprocket RabidGravy: yep, that’s what I’ve found out too - it’s just finished building NQP now 19:47
psch m: class A { proto f(|c) {*} }; class B is A { multi method f($) { "B" } }; B.can('f')[0].multi.say # uh, not sure if there's insight here... 19:49
camelia rakudo-moar ac0d1d: OUTPUT«False␤»
AlexDaniel m: say '̚'; 19:51
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/xXrRHqT_rd:1␤------> 3say7⏏5 '̚';␤Bogus postfix␤at /tmp/xXrRHqT_rd:1␤------> 3say 7⏏5'̚';␤ expecting any of:␤ infix␤ infix stopper␤ …»
AlexDaniel hm, how can I switch back to operations on codepoints? 19:53
lizmat AlexDaniel: you mean in NFC or NFD ? 19:54
AlexDaniel lizmat: yeah
like, here I want to store a combining character in a variable, what would be the easiest way to do it? 19:55
not that I really need it, but I still wonder what would be the solution 19:56
lizmat perhaps t/spec/S15-string-types/NF-types.t and similar test files can be of inspiration?
psch .u diaresis 19:57
yoleaux No characters found
19:57 kjs_ left
psch .u diaeresis 19:57
yoleaux U+00A8 DIAERESIS [Sk] (¨)
psch m: my $x = "\c[DIAERESIS]"; say "a" ~ $x
camelia rakudo-moar ac0d1d: OUTPUT«a¨␤»
psch that's not combining :/
m: my $x = "\c[COMBINING DIAERESIS]"; say "a" ~ $x
camelia rakudo-moar ac0d1d: OUTPUT«ä␤»
cygx AlexDaniel: there's also the Uni type
AlexDaniel oh nice
psch m: my $x = "\c[COMBINING DIAERESIS]"; say uniname("a" ~ $x) 19:58
camelia rakudo-moar ac0d1d: OUTPUT«LATIN SMALL LETTER A WITH DIAERESIS␤»
AlexDaniel m: my $x = "\c[COMBINING DIAERESIS]"; say $x 19:59
camelia rakudo-moar ac0d1d: OUTPUT«̈␤»
AlexDaniel I wonder if there should be a warning about this
[Coke] how does it know you didn't already print out something it could combine with? 20:00
20:01 espadrine left
AlexDaniel good point! Yeah. Though who is going to be printing characters one by one… 20:02
moritz AlexDaniel: would you also warn for printing a carriage return on linux?
AlexDaniel moritz: No idea. But it also depends on whether you use &say or &print 20:03
if you are trying to print a combining character with &say, it does not make enough sense, really
psch m: my $x = "\c[COMBINING DIAERESIS]"; print $x 20:04
camelia rakudo-moar ac0d1d: OUTPUT«̈»
psch m: my $x = "\c[COMBINING DIAERESIS]"; print "a"; say $x
camelia rakudo-moar ac0d1d: OUTPUT«a􏿽xCC􏿽x88􏿽xE2􏿽x90􏿽xA4»
sprocket RabidGravy, lizmat - got it up and going on the pi - the solution was indeed to upgrade gcc to something newer than 4.6. thanks for the help! 20:06
lizmat sprocket: glad to hear it worked out!
RabidGravy I usually test on like 5.1.1 and haven't built on arm for ages 20:07
sprocket lizmat: perhaps you can give me another nudge in the right direction, i was going to look at playing around with some bindings onto the RPi GPIO C libs. i know that XS isn’t around anymore, what’s the best way of getting started?
lizmat NativeCall
sprocket thanks, will look into it ) 20:08
:)
lizmat it comes with the core, already installed
RabidGravy it is possible that this is linked to someone implementing jit on arm
sprocket, do it - make my life easier as I have two RPi specific modules I want to part at some point
lizmat sprocket: testfiles of make test have some examples 20:09
sprocket RabidGravy: i’ll keep you posted as to my progress!
20:11 kjs_ joined
RabidGravy I looked at it, the other possibility is using using the kernel modules that add /dev entries and us the appropriate ones of those like tsome library does 20:11
sprocket aah ok, right 20:12
i’ve only just recently started doing much with RPi, so i’m not familiar with all the methods of doing things just yet
[Coke] oh, RPi = Raspberry Pi, not my alma mater. 20:13
RabidGravy the search.cpan.org/~shantanu/Device-SMBus/ also might give you some clues
20:17 kmel joined
TEttinger [Coke]: Rockin' Perl Institute? 20:18
bartolin [Coke]: you reported some dying tests with RT #126523. I'm unable to reproduce the problem (testing S02-names/pseudo.t in isolation) 20:20
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126523
20:21 zakharyas joined
bartolin [Coke]: on the other hand I saw those "Method 'Int' not found for invocant of class 'Any'" happen seemingly at random in different places 20:21
[Coke]: most notably S32-num/complex.t
20:22 yqt joined
[Coke] bartolin: I'll rebuild and retest. 20:26
20:27 pmurias left 20:28 pmurias joined
b2gills m: say &[+].name.perl; say &[X+].name.perl; 20:30
camelia rakudo-moar ac0d1d: OUTPUT«"infix:<+>"␤""␤»
20:30 geraud joined
[Coke] bartolin: you know I already fudged stuff, yes? 20:30
bartolin [Coke]: yes, I reverted your commit and got a clean run on that test file. 20:31
atweiden m: my Rat:D $r = 1.0; say so $r ~~ Num
camelia rakudo-moar ac0d1d: OUTPUT«False␤»
atweiden i have a method with return type of Rat:D ix.io/lL2
even though i have taken steps to coerce anything and everything to Rat, this method is managing to return Num when called from another class 20:32
it returns Num in the other class even when I coerce the result of the call there with Rat(call)
bartolin [Coke]: commit 109f31fdeb is what I talk about
[Coke] do you have the commit id handy?
danke.
atweiden how is this possible?
bartolin *g*
[Coke] bartolin: I get the same failure on moar I did yesterday. 20:33
bartolin: gist.github.com/coke/17dd59a3fe66133632da
20:34 FROGGS__ left
lizmat #126383 20:35
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=126383
retupmoca are there any known moar jitbugs?
[Coke] you might want to ask in #moar 20:36
lizmat you should probably ask that on #moar
[Coke] er, #moarvm
lizmat :)
indeed
:-)
retupmoca oh, right
retupmoca wanders off
20:37 Ven_ left, Ven_ joined
bartolin [Coke]: hm, but thats' a 'all tests successful' 20:38
[Coke]: you fudged test 114 ('indirect CALLER:CALLER works') and its passing now
[Coke]: on the other hand, I just got the error you mentioned in the ticket now on that test file. 20:39
20:39 bpmedley joined
bartolin [Coke]: So I conclude that it happens randomly :-/ 20:39
[Coke]: however, thanks for looking! 20:48
20:49 rabie joined
rabie hi stefan 20:50
yoleaux 30 Oct 2015 15:32Z <lizmat> rabie: welcome!
lizmat hi rabie
rabie i need your help
lizmat let's see if we can give you that :-) 20:51
rabie ok
20:51 darutoko left 20:52 Ven_ left
rabie sudo zypper in monodevelop mono-complete with this order not working there is an error 20:52
20:53 Ven_ joined
sprocket lizmat: this NativeCall library is awesome! So much better than spending days wrestling XS 20:53
rabie he told me the installing is complete but with error so i could not understand where is the problem 20:54
lizmat rabie: I'm afraid that doesn't ring any bell to me... could you gist the error ? 20:55
20:56 telex left 20:58 telex joined
rabie No update candidate for 'mono-complete-4.0.4-1.8.x86_64'. The highest available version is already installed. 21:00
'monodevelop' not found in package names. Trying capabilities.
No provider of 'monodevelop' found.
Resolving package dependencies...
this is the message i have got
RabidGravy rabie, not sure where monodevelop comes in to this? 21:01
21:01 lichtkind joined 21:02 kmel left
RabidGravy sprocket, yeah you may not even have to write any C code even 21:02
sprocket RabidGravy: it’s dreamy - i’m already calling the various library functions in libwiringPi
rabie yeah that is right
RabidGravy I've made about six modules using NativeCall and all work great
rabie i did not write any codes 21:03
sprocket is there a cpan for perl6?
where would i be able to push stuff out to?
RabidGravy er eight
lizmat sprocket: at the moment, we have modules.perl6.org 21:04
RabidGravy right now it's modules.perl.org
basic instructions at doc.perl6.org/language/modules
basically it's stick the source on github with a META.info and add the url of the raw META.info to the big list of modules 21:06
jdv79 cpan, specifically pause and cpan, function fine at teh moment
no installers work though
and metacpan is 3/4 baked
*almost*
sprocket great, thanks!
jdv79 "in the works" basically
21:07 Ven_ left, cygx left
rabie quit 21:09
lizmat rabie: if you want to leave, you probably need "/quit" 21:10
21:10 rabie left 21:13 s_kilk joined, mj41 left
sprocket how might i defined a function alias to another already defined function? 21:15
21:16 Ven_ joined
psch m: my &talk = &say; talk "ok" 21:16
camelia rakudo-moar ac0d1d: OUTPUT«ok␤»
psch sprocket: the minimal case works as above, potential considerations are EXPORT-iness and such, those you have to handle on the new name as well if they matter 21:17
sprocket psch: gotcha, thanks :)
21:22 xfix left, Ven_ left
RabidGravy where do Slip objects come from? 21:22
21:22 kaare_ left
RabidGravy i.e if I have one unexpectedly where to start looking 21:23
moritz from a slip() or .Slip call or a prefix |
nine .tell rabie sorry, on your openSUSE version you'll have to do: sudo zypper ar -r download.opensuse.org/repositories/...ctory.repo ; sudo zypper in monodevelop
yoleaux nine: I'll pass your message to rabie.
nine @all: sorry for the off topic discussions. rabie is a first time IRCer and we have lots of language barriers and I'm glad to have at least this line of communication. 21:24
21:26 rabie joined
nine hi rabie 21:27
lizmat hmmm... why didn't yoleaux pass the message ? 21:28
21:28 rindolf left
lizmat ah, duh :-) 21:28
21:28 Ven_ joined
jdv79 RabidGravy: you got one unexpectedly? 21:28
nine rabie: say something, then you'll get the message 21:29
21:29 s_kilk left
RabidGravy jdv79, in asmuch as I'm getting "Type check failed in assignment to $!license; expected Str but got Slip" and can't see where it came from 21:31
rabie ja das geht jezt vielen dank und gute nacht
yoleaux 21:23Z <nine> rabie: sorry, on your openSUSE version you'll have to do: sudo zypper ar -r download.opensuse.org/repositories/...ctory.repo ; sudo zypper in monodevelop
lizmat rabie: gute Nacht!
21:32 rabie left
RabidGravy something built a hash and then did Foo.new(|%hash) 21:32
jdv79 rabie: unfortunately most of us don't speak german but more english; i believe
RabidGravy: neat 21:33
I thought a | in a sig was different. does that trans to a slip? 21:34
vendethiel no, it's a capture
m: sub foo(|a) { say a.perl }; foo(3, 4);
camelia rakudo-moar ac0d1d: OUTPUT«\(3, 4)␤»
RabidGravy yeah, which is why the slip is unexpected ;-)
jdv79 hmm. yes...
21:35 zakharyas left
lizmat .tell TimToady I'm having a hard time describing your work on autogen the past week. Could you summarize that in a line of 1,2,3 (or more) for the Perl6 Weekly? 21:39
yoleaux lizmat: I'll pass your message to TimToady.
21:39 vendethiel left
timotimo i managed to cut into the tip of my finger while preparing food :( 21:40
RabidGravy :(
jdv79 is it in the bone?
memecrunch.com/meme/AYV8/ace-ventura/image.png 21:41
timotimo the cut doesn't seem deep 21:44
jdv79 if it make you feel any better i cut into the tip of my thumg with a table saw when i was in my teens ^H
that was bleh 21:45
didn't hit hte bone though!
lizmat timotimo: just make sure you disinfect it well 21:46
especialy on an old / dirty knife
jdv79 my thumb was "deflated" for a long time since that type of blade removes material:(
RabidGravy erk
jdv79 whatever. just trying to make timo's incident seem less troubling. 21:47
21:47 kjs_ left
lizmat
.oO( maybe I should not tell about the plastic saucer used as a frisbee incident when I was a kid: a lot of blood was involved :-)
21:49
RabidGravy and I promise not to explain why I have no middle joint in my right little finger either ;-) 21:50
jdv79 nice 21:51
21:52 Ven_ left 21:53 Begi1115 left 21:54 Ven_ joined
[Coke] S32-str/comb.t has tests that could be written to use throws-like 21:59
22:00 nowan left
lizmat [Coke]: it's now using dies-ok ? 22:00
[Coke] explicit try/catch and checking exception messages. 22:01
lizmat ah, ancient then :-)
22:01 avuserow joined
[Coke] super. 22:01
itz_stmuk pl6anet.org/stats/ 22:03
w00t!
22:03 cognominal left 22:04 cognominal joined
lizmat itz_stmuk++ :-) 22:04
22:06 spider-mario left 22:07 Ven_ left
dalek ast: 636e4d6 | coke++ | / (72 files):
prefer RT #ticket

  (not RT ticket)
22:08
kudo/nom: fd8c986 | lizmat++ | src/core/ (2 files):
Make permutations about 25% faster

This is achieved by using native int (arrays). Because of this, the sub needed to be moved *after* the native array support was compiled. It's an odd place for this sub, but otherwise I couldn't get this to work.
22:08 Ven_ joined
lizmat still thinking about an algorithm that wouldn't need gather/take 22:09
timotimo itz_stmuk: damn, november has been our worst month ever BY FAR! what have we been doing wrong all those day??? 22:10
[Coke] lizmat: you mention native arrays but say my Int @i ?
lizmat huh?
argh
fixing :-) 22:11
itz_stmuk :)
22:11 BenGoldberg joined 22:12 Ben_Goldberg left 22:17 Ven_ left, tokuhirom joined 22:18 espadrine joined 22:22 tokuhirom left
jdv79 why can't i say "TypeObj.attr" and get back the type obj of attr? 22:22
psch jdv79: you're saying <class A { has Int $.foo }; A.foo> should give you an Int? 22:23
jdv79 or, is there an easy way to get the type obj for an attr off a type obj like that? 22:24
i could instantiate a throw away i guess - seems unnecessary though
psch m: class A { has Int $.x }; A.^attributes.grep({ $_.name ~~ /x/ })[0].type.say 22:26
camelia rakudo-moar ac0d1d: OUTPUT«(Int)␤»
jdv79 yeah. i guess blocking attrs 100% on type objs is simpler. though in an alternate universe allowing fetching of the associcated type obj might be cool. 22:29
22:30 tokuhirom joined
psch jdv79: well, A.x actually means "call the autogenerated rw method that returns the container for the Attribute x" 22:30
s/rw/and potentially rw/ 22:31
jdv79: it sounds like an interesting thing to realize with some MOP-fumbling, though, if that interests you
jdv79 maybe. i'm fumbling on a related note. maybe tomorow. thanks. 22:33
i'm getting "undeclared routine" on an instance for some accessors. idk what i did?! 22:34
22:34 tokuhirom left
jdv79 oh, just my idiocy. used %h{k} instead of %h<k>. cool error. can we get more specific error locations? add column maybe? 22:36
psch m: my %h; %h{k} 22:37
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/dJfsgDGJlJ␤Undeclared routine:␤ k used at line 1␤␤»
psch yeah, that could maybe use an eject 22:38
m: my $x; $y
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WVm88D1ouS␤Variable '$y' is not declared␤at /tmp/WVm88D1ouS:1␤------> 3my $x; 7⏏5$y␤»
jdv79 do ejects work for multiple? 22:39
psch multiple what?
jdv79 errors
psch m: my $x; $y; $z;
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kz67nuwH88␤Variable '$y' is not declared␤at /tmp/kz67nuwH88:1␤------> 3my $x; 7⏏5$y; $z;␤»
psch compile time errors bail at the first i guess 22:40
jdv79 nope
i got multiple ^H
psch m: my %h; %h{a}; %h{b}
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5isYgnr0Ft␤Undeclared routines:␤ a used at line 1␤ b used at line 1␤␤»
psch well, that's one error
that might be why there's no eject yet, we're not carrying the offending lines around long enough
jdv79 m: my %h; %h{a} = 1; %h{b} = 1; 22:41
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QYEU69FCiZ␤Undeclared routines:␤ a used at line 1␤ b used at line 1␤␤»
jdv79 gotta go...
lizmat m: a; a; a; a; a; 22:43
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lUMrm7FT7R␤Undeclared routine:␤ a used at line 1␤␤»
psch lizmat++ 22:44
that's probably a good argument against ejects
lizmat m: EVAL "a;\na;\na;\na;\n"
camelia rakudo-moar ac0d1d: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0␤Undeclared routine:␤ a used at lines 1, 2, 3, 4␤␤»
psch having each line in the error with color and all i mean
uruwi Question: are there that many use cases for permutations?
lizmat not sure :-)
uruwi As it's an O(n!) operation
Appreciate the speedup anyway. 22:45
22:45 nowan joined
lizmat $ 6 'class A { has Int $.a }; say A.^attribute<$!a>.type' 22:46
(Int)
jdv79 ^^^ would that work for you ?
22:46 lichtkind left
lizmat gist.github.com/lizmat/d01f35e64b648578e3a4 # adding that, not sure if it is a good idea or not 22:49
psch .oO( this clearly means we need wanthash..! ) 22:52
22:53 geraud left 22:57 abaugher left 22:58 abaugher joined 23:00 raiph joined 23:11 adu joined
BenGoldberg m: my $excl = 42; sub foo(%_) { %_.say }; foo(:$excl); 23:19
camelia rakudo-moar fd8c98: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in sub foo at /tmp/PimM4Iqkh5:1␤ in block <unit> at /tmp/PimM4Iqkh5:1␤␤»
BenGoldberg m: my $excl = 42; sub foo(%_) { %_.say }; foo($:excl);
camelia rakudo-moar fd8c98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VoxSAr05ag␤Cannot use placeholder parameter $:excl in the mainline␤at /tmp/VoxSAr05ag:1␤------> 3= 42; sub foo(%_) { %_.say }; foo($:excl7⏏5);␤»
BenGoldberg m: my $excl = 42; sub foo() { %_.say }; foo($:excl);
camelia rakudo-moar fd8c98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VE0r0uNqcE␤Placeholder variable '%_' cannot override existing signature␤at /tmp/VE0r0uNqcE:1␤------> 3my $excl = 42; sub7⏏5 foo() { %_.say }; foo($:excl);␤»
BenGoldberg lizmat, IIRC, you can write :excl($excl) as :$excl. I think. 23:20
lizmat I guess, I just copy pasted it from method attributes above that 23:21
BenGoldberg: fwiw, it's nqp code, not Perl 6 23:22
BenGoldberg Hmm, nvmind then.
psch nqp-m: sub f(:$excl) { } 23:26
camelia ( no output )
psch nqp-m: sub f(:$excl) { $excl }; say(:excl("foo"))
camelia nqp-moarvm: OUTPUT«Unexpected named parameter 'excl' passed␤ at gen/moar/stage2/NQPCORE.setting:685 (/home/camelia/rakudo-inst-1/share/nqp/lib/NQPCORE.setting.moarvm:say:3)␤ from /tmp/rUPtyPdO_d:1 (<ephemeral file>:<mainline>:29)␤ from gen/moar/stage2/NQPHLL.nqp:1303 (/ho…»
23:29 espadrine left 23:31 pmurias left 23:32 raiph left 23:35 TEttinger left 23:37 BenGoldberg left, BenGoldberg joined
dalek kudo/nom: 1051fcc | lizmat++ | src/core/ (2 files):
Move TRANSPOSE to Rakudo::Internals

Also: greatly simplify it, making it between 1.8 (if no matches) and 2.2 (only matches) as fast as before. This also meant that TRANSPOSE-ONE was now outrun by TRANSPOSE, so there was no special version for that needed anymore.
Affected Rakudo level code:
  - Str.subst("from","to",:global) (aka s:g/from/to/)
  - Str.trans(o => "foo") (aka tr/o/foo/)
23:42
23:43 raiph joined 23:44 dayangkun joined
lizmat good night, #perl6 23:46
cognominal m: class A { method a is export { say 'a'}}; a 23:47
camelia rakudo-moar fd8c98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QHjqAOx5my␤Undeclared routine:␤ a used at line 1␤␤»
psch m: class A { method a is export { say 'a'}}; import A; a 23:49
camelia rakudo-moar fd8c98: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in method a at /tmp/eeow6kjT70:1␤ in block <unit> at /tmp/eeow6kjT70:1␤␤»
cognominal not sure what "in scope by default" mean here : github.com/perl6/specs/blame/maste...s.pod#L323
23:53 leont left, Alina-malina left
psch cognominal: note that IO is already imported in mainline code 23:54
cognominal: "[...], which - in addition to the method - puts a multi sub in scope by default" is how i understand it with the behavior that's shown 23:55
cognominal 'method ... is export' not used in the setting 23:57
RabidGravy .tell tadzik it would be a great boon to me if you could take a look at github.com/tadzik/JSON-Unmarshal/pull/9 :) 23:58
yoleaux RabidGravy: I'll pass your message to tadzik.
timotimo that's right. because the user's program behaves like it's in an inner lexical scope compared to the setting
cognominal I see it in roast though
23:59 jantore left
timotimo oh, sorry, i didn't realize you were talking about methods 23:59
23:59 jantore joined
cognominal ... but skipped 23:59
23:59 firstdayonthejob left