»ö« 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/tmpfileCan't assign a Int literal (5) to a Num variable. You can try 5e0 instead or use Realat /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/tmpfileCan't assign a Num literal (5) to a Int variable. You can try 5.floor instead or use Realat /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 HAI42» | ||
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/tmpfileVariable '$a' is not declaredat /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.317.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/3yGzp6lMR0Missing blockat /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.317.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«heymasak» | ||
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/7exYZNKBkFQuantifier quantifies nothingat /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/2U8vyv7gd6Quantifier quantifies nothingat /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/swN76XzxDbQuantifier quantifies nothingat /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/GHb2tCuMbdQuantifier quantifies nothingat /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«TrueFalseTrueFalseTrue» | ||
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 lengthleft: 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..51..51..51..51..5» | ||
uruwi | m: say $_ ~~ 1 .. 5 for (5, 4, 3, 2, 1) | ||
camelia | rakudo-moar ac0d1d: OUTPUT«TrueTrueTrueTrueTrue» | ||
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/i7RrcAPWuDMissing blockat /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_2GwWhitespace 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/fuOsAEEBqzVariable '%array' is not declared. Did you mean any of these? $array arrayat /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 contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/tjycoMnZPG:1Cannot 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«protoingUse of uninitialized value of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in method foo at /tmp/rZfRm3CR1N:1Cannot 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/0OjBLOfaINInvalid 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 malformedat /tmp/xXrRHqT_rd:1------> 3say7⏏5 '̚';Bogus postfixat /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«axCCx88xE2x90xA4» | ||
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/dJfsgDGJlJUndeclared 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/WVm88D1ouSVariable '$y' is not declaredat /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/kz67nuwH88Variable '$y' is not declaredat /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/5isYgnr0FtUndeclared 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/QYEU69FCiZUndeclared 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/lUMrm7FT7RUndeclared 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_0Undeclared 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/VoxSAr05agCannot use placeholder parameter $:excl in the mainlineat /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/VE0r0uNqcEPlaceholder variable '%_' cannot override existing signatureat /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/QHjqAOx5myUndeclared 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
|