»ö« 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! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
SomeStrangeTest alright thanks for the help folks, off to get some dinner 00:01
00:07 yqt left
ugexe if you want a trail just do like i mentioned 00:08
panda look module::name
then you can modify the code or whatever before you do panda install .
00:37 prime joined, prime left, prime joined 00:46 tinyblak joined 00:51 tinyblak_ joined 00:55 tinyblak left 00:56 laouji joined 01:05 prime left 01:09 prime joined, prime left, prime joined
timotimo there's a pull request for giving template-mojo a "provides" section now 01:15
tadzik: ^
oh 01:16
zoffx already made a pull request way before i did
tadzik: ^
masak: Adventure::Engine still says "Actual illucidating example coming soon. Watch this spot." :) 01:18
Zoffix I only added provides though; not all the other stuff you added
timotimo right, but i don't know if the other stuff is even necessary 01:19
01:19 aborazmeh joined, aborazmeh left, aborazmeh joined
timotimo masak: and if you're looking at that, might as well add a "provides" section like panda gen-meta suggests :) 01:19
dalek kudo-star-daily: 7f490c6 | coke++ | log/ (2 files):
today (automated commit)
01:20
Zoffix Ah OK. so it's the missing 'provides' that was causing those errors, SomeStrangeTest 01:21
simple \o/
01:23 genio left
timotimo yeah, we just merged the change that makes the provides section necessary a few days ago 01:28
Zoffix 128 modules on modules.perl6.org/ that don't got that... 01:35
ugexe well, he did mention specifically the 'provides' error :P
Zoffix grog-blog.com/wp-content/uploads/20...epted.jpeg
ugexe although maybe it should be more explicit about it not working 01:36
Zoffix It's actually just a warning and it says "Successfully installed" but ... nothing's installed
01:36 aborazmeh left
ugexe successfully installed <- would be something to change in panda 01:38
Zoffix Just bail out after issuing warning maybe? 01:39
ugexe nah, cause you still want to install other modules you explicity told it to install 01:40
panda Fail::Module Success::Module <- i would expect it to install Success::Module even though Fail::Module fails
panda just needs to throw an exception in that circumstance and it would get handled properly 01:42
01:44 adu joined 01:46 dj_goku joined 02:02 uvb joined 02:04 aborazmeh joined, aborazmeh left, aborazmeh joined 02:11 gfldex left
SomeStrangeTest so that last error I had looks like a exception thrown by rakudo c code 02:15
: MVM_exception_throw_adhoc(tc, "No STable at index %d", idx);
this is in sc.c, which I gather is serialization context 02:16
02:16 jack_rabbit joined
SomeStrangeTest but grabbing Bailador from git and copying the libs in results in a working Bailador so I'm not sure what Panda is doing differently 02:16
anyway, it's not a problem for me, but thought I'd mention it in case somebody wants to track down the bug 02:18
02:18 noganex joined 02:21 noganex_ left 02:26 kaare_ joined
dj_goku nine_: you around? 02:28
02:30 raiph joined 02:39 aborazmeh left 02:42 raiph left 02:52 vendethiel- joined 02:54 vendethiel left
Zoffix Looks like I finally made an almost-fully-automated script to create PRs to add "provides" to META for the ~120 dists that are missing it. Gonna submit them all tomorrow, after work. 03:02
xkcd.com/1319/
03:09 raiph joined 03:16 aborazmeh joined, aborazmeh left, aborazmeh joined 03:21 tinyblak joined 03:24 tinyblak_ left 03:38 sirdancealot left 03:40 raiph left 03:42 BenGoldberg left 03:45 laouji left 04:01 adu left 04:17 adu joined, adu left 04:20 Vlavv_ left 04:27 adu joined 04:29 aborazmeh left 04:37 laouji joined 04:51 fhelmberger joined 04:55 fhelmberger left 04:57 tinyblak_ joined 04:59 adu left, tinyblak left 05:05 kurahaupo left 05:08 skids left 05:17 spider-mario left 05:27 Woodi left, uvb left 05:28 Woodi joined 05:29 adu joined 05:45 telex left 05:46 telex joined 05:50 kurahaupo joined 05:52 yeahnoob joined 05:53 danaj joined
kurahaupo TimToady: I noted your recent commit for the R meta-op, so that the generated op has the opposite associativity of the original operator. That seems sensible, but keeping the same precedence seems a bit crazy. Would anything break if the precedence of generated operators differed minimally from the original operator? My gut feeling is longer-name and/or more letters implies lower precedence, but there could be good arguments either way. 06:03
TimToady why make the user remember more rules? 06:05
there are meta-operators where the valence of the arguments changes from item to list, and there it makes sense to change the precedence, but the shape of the arguments stays the same for R 06:06
so it seems to fit more with the meta-ops that are transparent to precedence 06:07
kurahaupo TimToady: okay, but then how does one parse ( $x - $y R- $z ) ? I would have thought it saner to entirely forbid equal precedence with differing associativity 06:09
TimToady well, there's probably an argument to be made for pickiness there; we do, after all, complain on mixed list infixes 06:10
otoh, R is a lot rarer than X or Y or ..., so it seemed more like a DIHWIDT to me 06:11
06:15 chenryn joined
TimToady I should look at EXPR and see how costly such a check would be on very normal operators like +/- 06:15
06:21 adu left
TimToady there would be some cost to it; currently it uses the associativity of the new incoming operator rather than the old one on the operator stack; looking up the latter would involve saying something like ~@opstack[+@opstack-1]<OPER><O><assoc> // 'left', whereas the existing approach merely has to look up nqp::atkey(%inO, 'assoc') 06:28
so currently the opp will assume that $x - $y R- $z is right associative based on the righthand R- operator, which is handier to look up than the - on the left 06:31
06:33 rindolf joined
[Tux] .msg FROGGS would you be so kind to have another look at excluding reserved words like if/for/while/.. in Slang::Tuxic? 06:33
yoleaux [Tux]: Sorry, this command is admin-only.
[Tux] .tell FROGGS would you be so kind to have another look at excluding reserved words like if/for/while/.. in Slang::Tuxic? 06:34
yoleaux [Tux]: I'll pass your message to FROGGS.
[Tux] m: my$x=\"1,2\n3,4\n";$x.gist.say 06:49
camelia rakudo-moar f65ba9: OUTPUT«\(1,2␤3,4␤)␤»
[Tux] m: my$x=\"1,2\n3,4\n";$x.perl.say
camelia rakudo-moar f65ba9: OUTPUT«Capture.new(list => ("1,2\n3,4\n",))␤»
06:49 kurahaupo left
[Tux] is there a method in between, that returns "1,2\n3,4\n" 06:50
06:51 fhelmberger joined 06:54 brrt joined
moritz I'm not aware of any 06:54
[Tux] my $s-in = $in.gist; $s-in ~~ s:g{\n} = "\\n"; 06:55
that works for me for now
used in generating test messages
06:56 fhelmberger left, fhelmberger joined
moritz why do you deal with captures in the first place? 06:57
[Tux] because I can? :)
I am trying to find out WHAT I should deal with and HOW 06:58
like testing with Supply's is really hard
I first want to experiment with the complete scala of possibilities and *then* decide what is sane to support (if at all) 07:00
07:00 Ven joined
[Tux] so many people, so many users, so many points of view 07:00
moritz understood 07:01
07:01 Vlavv_ joined
[Tux] currently I am thinking that an Array of strings is *way* more logical than a single capture (string reference), as it does not conflict with whatever is already investigated 07:02
07:03 kurahaupo joined 07:04 brrt left 07:05 prime left, tinyblak joined, prime joined, prime left, prime joined 07:06 phdphil left
[Tux] ok, Array of strings done. that was easy :) 07:07
07:09 tinyblak_ left 07:14 eli-se joined, eli-se left, mr-foobar left 07:16 tinyblak left, tinyblak_ joined 07:17 mr-foobar joined 07:22 jack_rabbit left 07:23 brrt joined
[Tux] I really would like to see IO from Str (not needing a tem file) 07:25
makes testing so much easier 07:26
moritz then write a module that does it
shouldn't be all that hard
[Tux] opens a drawer to look for more free time … 07:27
moritz I mean, the typical IO API just consists of get, lines, print, say, close
[Tux] you are right, but I knoiw that will be a Yak-shaving experience 07:28
07:33 espadrine joined 07:35 [particle] joined
nwc10 um, surely, strictly IO from Buf? 07:36
07:37 [particle]1 left
nwc10 actually, you can do IO from either. If the IO system is smart enough to know when it's dealing in octets, and when in characters 07:37
07:45 risou is now known as risou_awy 07:46 risou_awy is now known as risou 07:47 RabidGravy joined 07:54 eli-se joined 07:55 eli-se left 07:58 kjs_ joined 08:01 Rounin joined 08:02 rurban_ joined 08:03 zakharyas joined 08:11 darutoko joined 08:14 pdcawley joined 08:23 gfldex joined 08:27 espadrine left, kjs_ left 08:30 abraxxa joined 08:35 dakkar joined 08:36 yqt joined 08:55 FROGGS joined 08:59 espadrine joined 09:01 kurahaupo left 09:03 FROGGS left 09:05 kjs_ joined 09:08 rurban_ left 09:11 eli-se joined
eli-se good evening 09:11
Ven \o eli-se 09:12
eli-se I want to write a videogame in Perl. 09:15
Ven eli-se: text-based or with graphics? 09:16
eli-se text-based, of course
I'm not a masochist.
Ven we have both :) 09:17
eli-se: timotimo++ made github.com/timo/gtk_cairo_shooter
eli-se Unicode art.
Ven and for text based, we had some module, but no unicode art, only "exploratory" text-based games
eli-se: github.com/masak/Adventure-Engine/ 09:18
eli-se: and as unicode art, github.com/masak/druid/
09:23 brrt left
timotimo Ven: yesterday i found out that gtk_cairo_shooter segfaults with my latest changes to cairo (turning it into a module Cairo; and tweaking gtk_cairo_shooter to use the new imports) and i didn't have time yet to debug it 09:23
Ven timotimo: well, I never managed to get it to run anyhow.. :)
(not sure how turning it into a module can make it segfault, tho) 09:24
09:28 slavik joined 09:29 pecastro joined 09:30 brrt joined 09:35 yeahnoob left
eli-se I want lenses in Perl 6. 09:35
they should make game development more pleasant
timotimo i don't really know what those "lenses" you speak of are :( 09:36
09:36 Ven left
eli-se they're a way to manipulate nested data structures 09:36
basically 09:37
timotimo oh
isn't that what this one person talked about during one of the recent conferences
oh, those were "zippers"
eli-se here's a lens type: gist.github.com/rightfold/1798a0994bc2d663a1a6
they can be composed to form paths into nested data structures 09:38
DrForr I've done soemthing very similar in perl5 when I was playing with destructuring. 09:39
09:39 aborazmeh joined, aborazmeh left, aborazmeh joined 09:41 Ven joined 09:45 sno is now known as [Sno] 09:47 Ven left, eli-se left 09:49 Ven joined 09:54 yqt left 09:56 Tux__ is now known as |Tux| 10:03 cschwenz joined, coffee` joined 10:08 RabidGravy left 10:09 eli-se joined
eli-se Why are lols special? 10:10
Ven eli-se: "special"? 10:11
eli-se yes
there's all sorts of documents on them
and there's a lol method 10:12
so they must be special in some way
I fail to see, however, how a list of lists would be any different from a list of integers.
and a LoL class 10:13
10:14 pdcawley left 10:15 SomeStrangeTest left
eli-se I can see why in Perl 5 arrays of arrays deserve special mention, since arrays can store only scalars. 10:15
10:23 pdcawley joined 10:26 chenryn left
moritz eli-se: iirc they offer both a flat and a nested view 10:29
10:30 pecastro left 10:38 brrt left, eli-se left 10:41 rurban_ joined
Zoffix They aren't really arrays of arrays, but arrays of *arrayrefs* 10:42
my @a = ( 'foo', 'bar', [ 'meow', 'mer', [ 'zer', 'ber' ] ] ); 10:43
10:43 Ven left 10:46 rurban_ left 10:49 FROGGS joined 10:51 xfix joined, xfix left 10:52 Rounin left 10:57 eli-se joined, eli-se left 10:58 pecastro joined 11:04 eli-se joined 11:09 eli-se left, chenryn joined 11:11 azawawi joined
azawawi hi 11:11
yoleaux 31 Mar 2015 22:49Z <timotimo> azawawi: for some reason i had this change locally: $file-name .= subst('~', %*ENV<HOME>); → $file-name ~~ s/'~'/{%*ENV<HOME>}/; inside method open-file in Editor.pm6
azawawi quick question, are we moving into removing the actual panda installed modules files and using an MANIFEST to extract their names? 11:13
so now instead of directly reading the file, i need to query a service to the file that belongs to my module...
any reason behind this big change
?
FROGGS umm what? I dont understand the question 11:14
yoleaux 06:34Z <[Tux]> FROGGS: would you be so kind to have another look at excluding reserved words like if/for/while/.. in Slang::Tuxic?
FROGGS [Tux]: I can do that but I cannot promise it will happen today or tomorrow :S
azawawi FROGGS: C:\rakudo\share\perl6\site\0..n files now instead of actual module name installed files
|Tux| sure
azawawi FROGGS: C:\rakudo\share\perl6\site\MANIFEST now contains a json file to the actual file numbers 11:15
11:15 eli-se joined
|Tux| but now code like «my @in = gather while ($in.list) -> $x { take $x }» looks really awkward and horrific 11:15
FROGGS azawawi: correct, because storing Foo::Bar as lib/Foo/Bar.pm makes it impossible to install several same named versions of a module
azawawi: so to allow the installation of Foo::Bar v1 and Foo::Bar v1.2 and Foo::Bar made by someone else we need a more database thing to install to, instead of just putting everything under lib/Foo/Bar.pm 11:16
azawawi FROGGS: so we're moving to a database-like structure for installed module names to be filesystem agonistic?
FROGGS azawawi: aye
azawawi FROGGS: cool 11:17
FROGGS azawawi: this also allows us to uninstall modules more easily, or recompile modules that depend on something you just changed etc
azawawi cools down a bit
FROGGS: and later move to be database-based (aka SQLite) if needed (e.g. for fast module queries)? 11:18
FROGGS azawawi: this explains why/how we do that: perl6advent.wordpress.com/2013/12/...g-modules/ 11:19
might be outdated here or there, since it is from 2013
azawawi: that's up to the 'module installation backend' (aka CompUnitRepo::*) you are using
azawawi so basically multiple module versions living in the same perl6 module ecosystem database? 11:20
FROGGS currently we have a CompUnitRepo::Local::Installation, but one can easily plug in a CompUnitRepo::Local::SQLite
azawawi and i can depend on a specific version for my module
FROGGS exactly
azawawi cool
azawawi drooling... :) 11:21
FROGGS or you say "I trust jnthn, but I dont care about the version", then you'd do: use Foo:auth<jnthn>
11:21 Ven joined
azawawi module time/space? :) 11:21
azawawi remembers NTFS Longhorn project... en.wikipedia.org/wiki/WinFS 11:23
11:23 rindolf left, brrt joined 11:24 KCL joined, eli-se left
azawawi so basically with this i can make module database and make a dump of it to be shared by the team... cool :) 11:24
revolutionary thinking 11:25
11:26 rurban_ joined
FROGGS as long as precompilation is not involved you can share such a thing, yes, I think so 11:26
Ven m: role S[::T]{...}; role S[Int]{ constant mzero = 0; }; role M[::T] { constant mzero = S[T].mzero; }; say M[Int].mzero;
camelia rakudo-moar f65ba9: OUTPUT«===SORRY!===␤No appropriate parametric role variant available for 'S'␤»
Ven m: role S[::T]{...}; role S[Int]{ constant mzero = 0; }; role M[::T, _S = S[T]] { constant mzero = _S.mzero; }; say M[Int].mzero; 11:27
camelia rakudo-moar f65ba9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uEZEvWpykc␤Invalid typename '_S' in parameter declaration.␤at /tmp/uEZEvWpykc:1␤------> 3]{ constant mzero = 0; }; role M[::T, _S7⏏5 = S[T]] { constant mzero = _S.mzero; };␤»
11:28 KCL_ left
Ven m: role S[::T]{...}; role S[Int]{ constant mzero = 0; }; role M[::T, $S2 = S[T].mzero] { constant mzero = $S2; }; say M[Int].mzero; 11:29
camelia rakudo-moar f65ba9: OUTPUT«Could not instantiate role 'M':␤No appropriate parametric role variant available for 'S'␤ in any specialize at src/gen/m-Metamodel.nqp:2244␤ in any specialize at src/gen/m-Metamodel.nqp:2441␤ in any specialize at src/gen/m-Metamodel.nqp:2022␤ …»
11:29 eli-se joined 11:30 chenryn_ joined, chenryn left 11:31 eli-se left
azawawi FROGGS: i see. Thanks for explaining it 11:41
11:43 araujo joined, araujo left, araujo joined 11:46 araujo left, eli-se joined, araujo joined
eli-se s/feather will/feather has/ 11:47
what was feather?
DrForr wonders about ( $a, $b ) <==> ( $.name<first>, $.name<last> ) for lens-ish syntax. 11:48
11:49 araujo left 11:50 araujo joined
DrForr Mm, obviously I've misrememebered. 11:51
11:54 brrt left 11:55 araujo left
eli-se With Visual Perl 6 for Applications we can take over the world. 11:58
11:59 raiph joined
bartolin_ m-star: say 1 ?? Str.new :value("foo") !! "omg" 11:59
abraxxa I just helped a coworker with a php webshop rouding problem. If Perl 6 gets a webshop it will take over the world for the next few years 12:00
bartolin_ star-m: say 1 ?? Str.new :value("foo") !! "omg" 12:01
camelia star-m 2015.02: OUTPUT«foo␤»
bartolin_ m: say 1 ?? Str.new :value("foo") !! "omg"
camelia rakudo-moar f65ba9: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Uc8QdH4Sjp␤Please use !! rather than :␤at /tmp/Uc8QdH4Sjp:1␤------> 3say 1 ?? Str.new :value("foo"7⏏5) !! "omg"␤ expecting any of:␤ statement end␤ statement modifier␤ …»
bartolin_ is that supposed to work? it does not with commit 225a7e3 12:02
FROGGS eli-se: +1 for a VP6 12:03
12:03 eli-se left 12:05 eli-se joined
bartolin_ it works with <EXPR('i=')> but not with <EXPR('j=')> in Grammar.nqp github.com/rakudo/rakudo/blob/nom/....nqp#L4239 12:05
timotimo++ found that yesterday: irclog.perlgeek.de/perl6/2015-03-31#i_10372090 12:06
12:07 eli-se left 12:08 [particle] left, eli-se joined 12:10 sirdancealot joined 12:13 eli-se left
dalek kudo/nom: bc7e480 | peschwa++ | t/02-rakudo/repl.t:
Add a few moreinput related tests.
12:15
12:19 konsolebox joined 12:25 laouji left
Ven m: lines; say lines 12:27
camelia rakudo-moar f65ba9: OUTPUT«Failed to seek in filehandle: 9␤ in method eof at src/gen/m-CORE.setting:17691␤ in method get at src/gen/m-CORE.setting:17695␤ in method get at src/gen/m-CORE.setting:18969␤ in code at src/gen/m-CORE.setting:18983␤ in block at src/gen/m-CO…»
12:28 st_iron joined
psch oh meh 12:29
st_iron hey
psch i fudged those tests wrong i think
hi st_iron
dalek kudo/nom: cbbeff8 | peschwa++ | t/02-rakudo/repl.t:
Correct fudging.
kudo/nom: 6caf1d4 | peschwa++ | t/02-rakudo/repl.t:
Actually correctly correct fudging.
12:33
Ven is lue++'s p6mode the one mod to use for emacs? 12:36
Ven found what he was looking for on perl6.org/whatever 12:38
actually, that one's from 2010. probably should be removed from perl6.org
Ah, no,it's just an incorrect branch. uh-oh 12:39
12:39 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk
dalek href="https://perl6.org:">perl6.org: 981b7e0 | ven++ | source/whatever/index.html:
Link to the master branch of cperl-mode

I don't see any reason to link to the 2010 branch
12:40
Ven Ohhh.. That was supposed to be a PR again...
Ven switches back to vim 12:47
12:49 eli-se joined 12:50 eli-se left 12:51 st_iron left, [particle] joined
azawawi FROGGS: ping 12:53
12:53 sirdancealot left
FROGGS azawawi: pong 13:02
Ven `use ADT "data Tree";` is "still" not possible, right? just checking
(as in, custom EXPORT arguments) 13:03
moritz it is, afaict 13:04
13:08 raiph left
Ven oooh 13:08
yes, yes, that's what jnthn++ demonstrated in his presentation, even!
Ven clones timotimo++'s ADT.p6 13:09
azawawi FROGGS: so how do i quickly find an asset inside lib/Foo/Bar/assets/ using the new CompUnitRepo::Local::Installation? 13:10
13:10 chenryn_ left 13:11 Rounin joined
azawawi FROGGS: best i could find is @binaries[0]<files>.keys.grep({ $_.IO.basename eq 'farabi.js' }); 13:11
13:12 lucasb joined
Ven m: class A{method !x is export{}; }; 13:13
camelia rakudo-moar 6caf1d: OUTPUT«===SORRY!===␤Cannot find method 'has_compile_time_value'␤»
Ven m: class A{method !x is export {}; };
camelia ( no output )
Ven should that error out? :P
m: module F {}; need F; 13:15
camelia rakudo-moar 6caf1d: OUTPUT«===SORRY!===␤Could not find F in any of: /home/camelia/.perl6/2015.03-136-g6caf1d4/lib, /home/camelia/.perl6/2015.03-136-g6caf1d4, /home/camelia/rakudo-inst-1/share/perl6/lib, /home/camelia/rakudo-inst-1/share/perl6/vendor/lib, /home/camelia/rakudo-inst-…»
FROGGS azawawi: @*INC.files('bin/farabi.js') (in case it is in bin/ in the dist) 13:19
Ven still doesn't get how the module system really works. what imports names, what doesn't, when to put `use` inside of declarations, when to put them outside, how to import unqualified class names...
13:19 yqt joined
lucasb Hello. The Any class has some deprecated methods in the middle of the code. Would you mind if I move all of them to the very end of the class or do you prefer them to keep sitting next to their relative current methods? I wanted to do this just as a file editing exercise to get acquainted with the process. :) 13:22
Ven m: 'a' ~~ /a/; say $/<foo>?.made;
camelia rakudo-moar 6caf1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/BGTNTbeDAy␤Two terms in a row␤at /tmp/BGTNTbeDAy:1␤------> 3'a' ~~ /a/; say $/<foo>7⏏5?.made;␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement en…»
moritz lucasb: don't do editing for the sake of editing
Ven m: my $a = 'heyy'; $a?.made; 13:23
camelia rakudo-moar 6caf1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yEwFs10EQl␤Two terms in a row␤at /tmp/yEwFs10EQl:1␤------> 3my $a = 'heyy'; $a7⏏5?.made;␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement m…»
moritz lucasb: it makes it harder to track methods in the git history
Ven ehh
moritz Ven: $var.?made 13:24
Ven moritz: it used to be the other way around, tho ._.
moritz Ven: I won't believe that unless you have some kind of proof for that 13:25
Ven my module worked with the other version
moritz Ven: the ? or + or * are quantifies, just like in regexes
that's... a very vague statement
13:25 konsolebox left
psch maybe it used that one slang? 13:25
Ven definitely didn't :) 13:26
wh.... what the heck happened. Why isn't this file in git!? 13:27
lucasb moritz: They are just deprecated methods anyway, but ok, understood. thanks.
13:28 aborazmeh left
Ven why doesn't "use A::B::C;" allow me to use "C" unqualified?.. 13:29
huf hmm? 13:31
there's no C in that use line
there's just A::B::C
just like the words rumble and crumble are unrelated, so is A::B::C and C
Ven yes. and I expect to be able to use "C" to talk about "A::B::C" from this declaration on
psch you can if A exports B and B exports C
huf oh shit this is the other channel. fuck me. 13:32
Ven psch: heh?
moritz Ven: you can do a use C:name<A::B::C> or so
psch Ven: not? maybe my understanding is also flawed :)
Ven psch: not, I definitely don't understand 13:33
but I find perl6's module system very difficult to understand and not particularly practical
psch sorry for misinformation then
Ven I mean -- I'm the one at loss here 13:35
13:42 Perl6_newbee joined
moritz Ven: there's no automatic aliasing. When you use A::B::C, then you can use the symbol A::B::C 13:43
it's actually quite simple :-)
Ven how do I get automatic aliasing?
moritz you don't 13:44
well, maybe with macros, some day
Ven I'm definitely used to "prior art"... But it seems really, really annoying in the long run to me 13:48
13:50 yqt left
moritz it's OK 13:53
same as p5
Ven that and having to -I lib/ or "use lib 'lib/'"; all over the place, under some rules I don't understand
Ven doesn't know p5
moritz if you want, there's always explicit aliasing
Ven: that's not hard either; if your modules aren't in the search path, you must extend the search path 13:54
Ven: and -Ilib and 'use lib "lib"' are two options to do taht
Ven moritz: I'd definitely expect "something else"... I mean, from "src/Foo/Bar.pm", to be able to `use Foo::Baz;` and have the module found without having to "use lib..".
or even being able to relative-require
huf actually, neither of those options works for perl5 13:55
moritz Ven: you don't have to put a "use lib ..." into a module
huf use lib 'lib/'; will be cwd-relative which is pointless
moritz Ven: because the script or module that loaded your module in the first place must have set up the search path already
otherwise it couldn't have been "use"d 13:56
huf use File::Basename qw/dirname/; use lib dirname(__FILE__).'/lib'; # or something
Ven moritz: well, from a MAIN sub, I still need to add a relative-use-lib-thing
moritz Ven: yes, but not from modules 13:57
Ven: and you only have to do that for development
Ven: for production, you simply install the modules
Ven: so it might more sense to leave it out of the script, and set PERL6LIB env for developing, or using -Ilib 13:58
Ven moritz: how do I install a module with a MAIN?
moritz Ven: same as any other module, really
Ven (also, please don't mention me on every single line, it beeps loudly :P)
moritz stop the beeping, then :-). That's how IRC works. 13:59
Ven I want the beeping, the one time I get mentioned first -- for the 3 following lines, sent 10 seconds later, chances are I havn't read / am still reading :P
nwc10 is this like: <purl> Hey Schwern! honk, honk, honk, honk, honk, honk, honk, honk, 14:00
honk, honk, honk, honk, honk, honk, honk, honk, honk, honk, honk,
honk, honk, honk, honk, honk, honk, honk, honk, honk, honk!
(but on one line)
14:00 skids joined
DrForr That was because Schwern had a text-to-speech translator :) 14:00
[Coke] glares at irc blearily over morning coffee. 14:01
tadzik text-to-speech is quite a hilarity with twitch livestreamers
Ven tadzik: &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 14:02
tadzik doubleu doubleu doubleu doubleu 14:03
14:06 rindolf joined, pecastro left 14:07 pecastro joined
Ven m: module M{}; module M::X {}; module M::X::Y { constant A = 1; }; constant Y = M::X::Y; say Y::A; 14:10
camelia rakudo-moar 6caf1d: OUTPUT«1␤»
Ven I guess... I guess I'll use that for now..
14:11 tinyblak_ left
Ven can I export another module "as myself"? 14:11
I can I should just override EXPORT as well 14:12
14:13 eli-se joined
Ven I guess*, erm. 14:13
eli-se Don't guess 14:14
Know
14:17 eli-se left 14:19 telex left 14:20 telex joined 14:27 risou is now known as risou_awy, risou_awy is now known as risou 14:32 araujo joined
lucasb At the beginning of S02, in the section Lexical Conventions/Bracketing Characters, some unicode codepoints are mentioned. Do you think it would be nicer to read if the literal character was added after the number? Like this for example: U+301D ("), U+301E (#), U+301F (#) 14:33
14:34 xfix joined
lucasb Well, the characters didn't show correctly here, sorry. :) 14:34
FROGGS hmmm, if we dont run intro trouble when adding these characters then I'd say +1 14:37
lucasb FROGGS: Well, the files are in utf-8, so I would edit it correctly, hopefully. Thanks! 14:40
PerlJam +1 from me too 14:42
14:42 xfix left 14:43 Ven left
PerlJam (I never remember what those code points are and have to look them up each I time) 14:43
14:43 cschwenz left
PerlJam s:2nd/I// 14:43
lucasb: maybe include their long name as well? 14:44
lucasb .u U+301E
yoleaux U+301E DOUBLE PRIME QUOTATION MARK [Pe] (〞)
lucasb PerlJam: I guess the long name would be too long for the text, don't they? 14:45
FROGGS that woule be a bit too much
would*
14:49 tinyblak joined 14:53 Ven joined
Ven does Panda titlecase its module names? FooO::Bar; won't work (symbol not found) 14:53
moritz you mean there's a FooO::Bar in the ecosystem, and you can't install it? 14:54
tadzik "its" module names?
I think panda has a "did you mean some other module with a different casing" thing though, doesn't it? 14:55
Ven say I have a `lib/FooO/Bar.pm`, I can't `use FooO::Bar;`, it just won't work. If I change both "FooO" to "Fooo", it works.
tadzik resolve stage failed for Term::AnsiColor: Project Term::AnsiColor not found in the ecosystem. Maybe you meant Term::ANSIColor?
contributors++
Ven sorry, that wasn't clear, that's totally not related to panda. ugh
moritz Ven: if that is indeed the case, it's a bug in rakudo 14:56
tadzik your issue is pretty weird though :o
moritz considering that all-caps names like SVG work, that's pretty surprising
Ven moritz: a friend of mine wanted to try perl6 and hit it, I reproduced it locally as well. he's on windows, I'm on osx with a <1week-old rakudo
PerlJam Ven: probably a FS casing issue.
FROGGS Ven: that veeeeery unlikely
Ven PerlJam: yeah, that's what I thought of first as well 14:57
FROGGS Ven: what s the error message ooc?
PerlJam Ven: got a transcript of what you did and what happened?
Ven I'm running a case-insensitive os x, apparently :)
PerlJam I just tried it locally and had no difficulty
(I'm on ubuntu though)
Ven thought os x had a case-sensitive FS .... 14:58
FROGGS Ven: a case-insensitive would make module lookup more lax, not strict/weird
moritz Ven: it's case-preserving by default, just like Windows
Ven FROGGS: Could not find symbol '&Frontend'
FROGGS Ven: that is something else
Ven moritz: oh, can you configure windows not to be? Or did I interpret your comment wrongly
moritz Ven: you did
FROGGS so it found and loaded lib/FooO/Bar.pm
Ven alright 14:59
moritz Ven: the OS X default is just like windows works
psch windows has special directory names that are equivalent, i recently discovered
creating a directory "Program Files" on C:\ wants to merge it into "Programme"
which made me feel a bit uneasy
FROGGS Ven: can you gist the module? 15:00
Ven FROGGS: wait, apparently it freezes on some cases on windows. ugh
I'll ask for a gist
nwc10 I think that I shall call my module Aux.pm, and see what hilarity follows... 15:01
moritz or Con
PerlJam nwc10: you have the con
:)
FROGGS Nil
nwc10 I shall store all my PRN in it 15:02
dalek ecs: c34d281 | (Lucas Buchala)++ | S02-bits.pod:
Add literal unicode chars in S02/Bracketing Characters
ecs: 008870f | (Zoffix Znet)++ | S02-bits.pod:
Merge pull request #91 from lucasbuchala/unicode1

Add literal unicode chars in S02/Bracketing Characters
15:11 coffee` left 15:12 raiph joined
Ven FROGGS: gist.github.com/wryk/e04068009417edc798b5 15:12
FROGGS: (updated with the command) 15:14
15:15 fhelmberger left, fhelmberger joined
PerlJam Ven: does Client.pm really only contain that text? 15:16
15:16 coffee` joined
Ven PerlJam: yes 15:16
15:17 wryk joined
FROGGS m: say LoL 15:18
camelia rakudo-moar 6caf1d: OUTPUT«(LoL)␤»
FROGGS >.<
PerlJam FROGGS++
FROGGS Ven: that's your issue
Ven FROGGS: ? 15:19
FROGGS btw, I get:
perl6 --ll-exception -Ilib t/00-basic.t
This representation (Null) does not support associative access
at src/Perl6/World.nqp:523 (/home/froggs/dev/nqp/install/share/nqp/lib/Perl6/World.moarvm:install_package:172)
m: class LoL::Meh
camelia rakudo-moar 6caf1d: OUTPUT«===SORRY!===␤This representation (Null) does not support associative access␤»
FROGGS m: class Int::Meh
camelia rakudo-moar 6caf1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Begq7NWGKV␤Unable to parse class definition␤at /tmp/Begq7NWGKV:1␤------> 3class Int::Meh7⏏5<EOL>␤ expecting any of:␤ generic role␤»
FROGGS m: class Parcel::Meh
camelia rakudo-moar 6caf1d: OUTPUT«===SORRY!===␤This representation (Null) does not support associative access␤»
moritz wtf.
oh
Ven FROGGS: he gets that as well, I think
15:20 fhelmberger left
Ven FROGGS: and without the "API" layer, he told me it freezes... 15:20
FROGGS Ven: LoL already is something, so for the moment avoid that namespace :o)
Ven Ahhh
FROGGS (and rakudobug it)
Ven indeeeeed.
15:21 sirdancealot joined
FROGGS .tell lizmat We need to talk about CUR::Installation and the way that non-existent dirs trigger that CURs do not appear in @*INC... (I "fixed" it in a rather scary way and want to fix it properly) 15:22
yoleaux FROGGS: I'll pass your message to lizmat.
15:22 azawawi left
nine_ dj_goku: not at 4 in the morning, but I do backlog 15:29
Ven
.oO( I only sleep when my perl6 is recompiling )
.oO( I used to sleep nicely, but this last year has been horrible )
FROGGS :o)
tadzik haha
nine_ I wonder how all this CompUnitRepo stuff fits together with distribution package managers 15:30
FROGGS nine_: very nicely hopefully
at least, we always had packagers in mind when designing it 15:31
nine_ FROGGS: but it sounds like simply copying files will no longer be enough to install
FROGGS nine_: correct, they need an install hook in some way
PerlJam nine_: and this is a feature! :) 15:32
moritz and I hope that installing a file is an API method in Perl 6 then
FROGGS nine_: ahh btw, they dont have to do that... they can install copy files around and provide either a CompUnitRepo::Local::Files or a CompUnitRepo::Vendor::Debian or so
moritz: it already is 15:33
(for CUR::Installation)
[Coke] Anyone here going to yapc::na in Utah?
FROGGS me isnt
tadzik hmm
I still have my visa valid
the cost is pretty insane though 15:34
otoh it's probably similar to what it always is in NA 15:35
15:35 pecastro left 15:36 pecastro joined
tadzik ah, I'd be on the other side of the globe then 15:36
15:47 Ven left 15:49 pecastro left 15:51 raiph left 15:53 rmgk is now known as Guest58708, rmgk_ joined, Guest58708 left, rmgk_ is now known as rmgk 15:54 geever joined 15:55 coffee` left 15:56 coffee` joined, tinyblak left, eli-se joined, tinyblak joined
eli-se hi there!!!! 15:58
PerlJam eli-se: greetings! :)
16:00 rindolf left 16:01 zakharyas left
itz some nice p6 talks at NLPW 16:09
lucasb m: module A::B {}; say A.HOW.WHAT # A gets autovivified into a package, right?
eli-se isocpp.org/blog/2015/04/the-c-languages-merge
camelia rakudo-moar 6caf1d: OUTPUT«(Perl6::Metamodel::PackageHOW)␤»
eli-se nice
lucasb m: module A::B {}; constant A = 42 # Ok, A already existed 16:10
camelia rakudo-moar 6caf1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/PlrZX66lq3␤Redeclaration of symbol A␤at /tmp/PlrZX66lq3:1␤------> 3constant A = 42 # Ok, A already existed7⏏5<EOL>␤»
eli-se maybe we should merge with Python?
lucasb m: constant A = 42; module A::B {}; say A # Does B gets inserted into A (an Int) somehow?
camelia rakudo-moar 6caf1d: OUTPUT«42␤»
lucasb ^^^ Does it make any sense what I wrote?
FROGGS m: constant A = 42; class A::B {}; say A::B 16:13
camelia rakudo-moar 6caf1d: OUTPUT«(A::B)␤»
FROGGS m: constant A = 42; class A::B {}; say A
camelia rakudo-moar 6caf1d: OUTPUT«42␤»
moritz lucasb: you must distinguish A from A:: (its symbol table)
FROGGS since the A namespace in A::B is just a stub it just happens to work here
moritz m: constant A = 42; say A::.^name 16:14
camelia rakudo-moar 6caf1d: OUTPUT«Stash␤»
psch m: module A { module B { } }; constant A = 42; say A::B # this breaks
camelia rakudo-moar 6caf1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9of3H8RsQg␤Redeclaration of symbol A␤at /tmp/9of3H8RsQg:1␤------> 3dule A { module B { } }; constant A = 427⏏5; say A::B # this breaks␤»
psch so stubbing of packages doesn't set something it should?
lucasb So, constants and packages/modules live in separate namespaces, right?
16:15 brrt joined 16:17 spider-mario joined 16:20 albert_ joined
moritz no 16:22
psch: I don't see the stubbing
lucasb I'm sorry; correct: constants and packages/modules *share* the same namespace 16:23
m: constant A = 42; my \B = 42; say A::.WHAT, B::.WHAT
camelia rakudo-moar 6caf1d: OUTPUT«(Stash)(Stash)␤»
16:23 wryk left
lucasb But why does simple scalar values have a stash? 16:24
PerlJam "have a stash"?
psch moritz: design.perl6.org/S10.html#Package_nesting speaks of "empty packages". i'm not sure that's the same as stubbing here
ah
but constants are package-like objects 16:25
which is allowed, according to a bit later in that link
so it works as designed, if i don't misunderstand something
16:28 albert_ left
lucasb By "have a stash" I mean new names be appended (with ::) to the original name. Even if the original value was not a package-like/package-variant like S10/"Package nesting" says. For example, the Int values above declared as constant and sigilless. 16:33
FROGGS <psch> but constants are package-like objects 16:34
m: my Int $a = 42; say $a::
camelia rakudo-moar 6caf1d: OUTPUT«42␤»
FROGGS m: my Int $a = 42; say $a::.WHAT
camelia rakudo-moar 6caf1d: OUTPUT«(Int)␤»
lucasb Anyways, I'm just not thinking clearly, so sorry for any confusion. Thanks for the help everybody. 16:36
m: my Int \a = 42; say a::.WHAT
camelia rakudo-moar 6caf1d: OUTPUT«(Stash)␤»
moritz m: say 4::.WHAT
camelia rakudo-moar 6caf1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/n6off3KmSR␤Confused␤at /tmp/n6off3KmSR:1␤------> 3say 4:7⏏5:.WHAT␤ expecting any of:␤ colon pair␤»
moritz m: say 4.WHO.^name
camelia rakudo-moar 6caf1d: OUTPUT«Stash␤»
16:38 FROGGS left, espadrine left 16:46 spider-mario left
masak evening, #perl6 16:46
timotimo #perl6, masak
16:47 spider-mario joined
timotimo did you see my highlights for some of your modules not having "provides" sections in their META.info? 16:47
masak no, haven't gotten that far. 16:48
will have a look soonish.
timotimo that's nice :)
although someone said they'll have a fully automated script that'll build pull requests for all ~120 modules lacking that section
so maybe wait for that first :)
arnsholt Version 0.5 of $work webapp done \o/ 16:52
Time to go get dinner!
colomon Time to cook some lunch! 16:53
16:59 dakkar left, Psyche^ joined 17:00 zakharyas joined 17:04 Patterner left 17:05 FROGGS joined 17:09 ZoffixWork joined
ZoffixWork "although someone said they'll have a fully automated script that'll build pull requests for all ~120 modules lacking that section" 17:09
Yeah, I'll do it in about 7 hours, when I get home :) it's not 100% automated script, but it does most of the work, so I should be done pretty quick :)
17:10 eli-se left
ZoffixWork BTW, I spotted a few docs that say "provides" section is optional. Should those be updated to say it's mandatory? 17:11
timotimo yeah 17:12
ZoffixWork \o/
timotimo feel free to share links to the sources that say that
flussence I'm not sure why the module installer can't just infer sane defaults for missing metadata, like ufo used to do for you... 17:14
timotimo that's what "panda gen-meta" does
flussence that's my point: if it can figure it out on its own, why the need to update everything in the ecosystem? 17:16
17:29 noganex left 17:33 kjs_ left 17:34 ZoffixWork left 17:37 raiph joined, Patterner joined 17:40 Psyche^ left, brrt left
FROGGS flussence: because gen-meta is not always right... 17:40
also because it looks for appearing symbols when modules get loaded instead of just turning filenames into namespaces 17:41
flussence ah, fine then. 17:42
17:43 muraiki joined 17:44 lucasb left, Perl6_newbee left
FROGGS and the reason for that was to decouple symbols and filenames/paths 17:49
17:53 RabidGravy joined 17:56 Sqirrel joined
dalek rl6-roast-data: 68f44a4 | coke++ | / (9 files):
today (automated commit)
18:05
18:08 zakharyas left 18:12 Sqirrel left 18:14 grondilu joined 18:18 firefish5000 joined 18:21 eli-se joined 18:22 pecastro joined 18:35 Sqirrel joined 18:39 raiph left 18:40 Sqirrel left 19:02 raiph joined 19:08 yqt joined 19:12 brrt joined 19:20 beastd joined 19:21 noganex joined
[Tux] gist.github.com/Tux/8ebe8af1949c2aced18b <= is this overly optimistic as implementation (before I test and fuck up) 19:25
19:25 spebern joined 19:28 eli-se left 19:29 ShimmerFairy left
[Tux] apart from the typo, that just fricking works :) 19:31
19:31 brrt left 19:33 dsm left, firefish5000 left 19:34 telex left 19:35 dsm joined
masak looks good. 19:35
my only stylistic comment is that I wouldn't re-use the same variable $fh for a different file handle on line 9. 19:36
but that's just my SSA acting up, I'm sure.
19:36 telex joined
[Tux] return open $filename, :r, chomp => False; 19:37
[Tux] changes 19:38
FWIW, I want that in core in memory :)
19:42 ShimmerFairy joined 19:44 _edwin joined
TimToady m: my \FH = 41; my \FH = 42; 19:45
camelia rakudo-moar 6caf1d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xpdYk1dCch␤Redeclaration of symbol FH␤at /tmp/xpdYk1dCch:1␤------> 3my \FH = 41; my \FH = 427⏏5;␤»
[Tux] m: (my $a, my $b) = (1,2);$a.say
camelia rakudo-moar 6caf1d: OUTPUT«1␤»
[Tux] m: class C { has Int $!x; method foo { ($!x, my $b) = (1,2);}};C.foo
camelia rakudo-moar 6caf1d: OUTPUT«Cannot look up attributes in a type object␤ in method foo at /tmp/ClfFVoH4FZ:1␤ in block <unit> at /tmp/ClfFVoH4FZ:1␤␤»
[Tux] is that explainable?
masak you're calling C.foo, the .foo method on the type object C 19:47
the type object doesn't really properly have an $!x
m: class C { has Int $!x; method foo { ($!x, my $b) = (1,2);}}; C.new.foo
camelia ( no output )
masak that works.
Juerd |Tux|: my Int $x, use a regular variable...
masak Juerd: depends what scoping he wants, surely.
Juerd: 'my' scopes it to the whole class. 'has' scopes it per instance. 19:48
nine_ Does nextsame create a new callframe?
[Tux] Juerd, I was working back from a line where I wanted ($!attr, my $xxx) = function (params)
Juerd masak: Per instance clearly can't work with C.foo :)
masak nine_: surely it creates a new one, question is more whether it ousts the old one ;)
Juerd: well, we're each fixing one of the two things that don't work together in his code. 19:49
TimToady "Cannot look up attributes in a type object" is an implementor-centric error message, not a user-centric one
[Tux] and I want an auto-correct on IO::Hanlde to IO::Handle
masak TimToady: actually, that error message could fail statically in this case.
Juerd TimToady: "Instance attribute used in non-instance method call"? :)
masak since C is already resolved at compile time.
no need to make it survive until runtime and then fail. 19:50
TimToady Juerd: that would be an improvement
nine_ masak: when it creates a new callframe, this callframe gets its own $*DISPATCHER lexical. So a nextsame in the new callframe has a different dispatcher that does not share state with the other one and thus comes to the same conclusion on hitting another nextsame. Leading to RT #123989 19:51
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123989
19:54 rurban_ left
nine_ Juerd: who's at fault? The caller or the callee? Your message implies the latter while it's entirely possible that the caller mistakenly called an object method as a class method. 19:54
19:55 eli-se joined
Juerd nine_: Hard to tell. It's the callers fault that the method is used on the type object OR it's the callee's fault that it tries to use an instance thingy, but I think the compiler can't know the difference. 19:56
nine_ Juerd: so the error message should imply neither or both. 19:57
PerlJam It could mention both options.
Juerd I'm not convinced that all possible explanations need to be listed.
PerlJam and name the attribute in question
Juerd: if it's just two, listing them only helps the programmer figure out what happened and how to fix it. 19:58
Juerd "Instance variable $!x used in a method called on a non-instance"
PerlJam I supposed the type object could be named as well 19:59
Juerd "Instance variable $!x used in method foo called on non-instance (type object) C"
But... if you take that approach, which line number should be reported? :P
PerlJam both! ;)
Juerd "Instance variable $!x used in method foo in foo.pl line 123 called on non-instance (type object) C in foo.pl line 456" 20:00
Whoa.
Good luck, implementors :)
masak no-one else liked the idea of statically erroring out with "call will never work" for the C.foo case where C is already statically resolved? 20:01
Juerd Of course, this calls for two separate stack traces, both equal except that one is 1 call shorter
nine_ masak: I do 20:02
Juerd masak: Could work, but can't methods be marked as instance-only?
20:02 kaare_ left
nine_ masak: the earlier errors are reported the better 20:02
PerlJam masak: How does the compiler decide that it will never work? and when?
Juerd Because then, any use of $!foo could simply mark the method as instance-only
And the error message could be simpler. 20:03
dalek kudo-star-daily: 2f6d5ed | coke++ | log/ (2 files):
today (automated commit)
Juerd "Method foo can only be called on an instance of C, not on C itself."
PerlJam (compiler hints)++ if we can reasonably have them.
I guess, if you declare the sig right, all the info is easy to get at. But without that, it seems like a bit of guessing for the compiler to do it. 20:04
masak PerlJam: compiler sees the call C.foo, and has already set a flag that the foo method in class C accesses an attribute. boom. 20:06
20:06 FROGGS left
masak rabmits sukudobug 20:06
Juerd "Method foo can only be called on an instance of C, not on C itself, because C.foo accesses instance attribute $!x." 20:07
masak neat. +1
PerlJam masak: flagging methods like that seems like quite a bit of bookkeeping for marginal benefit. 20:08
masak really? seems worth it to me...
it's a small hash somewhere in the compiler.
%accattr<C.foo> = True;
[Tux] IO::String cause 50 more tests to pass
[Tux] is quite happy with that 20:09
masak [Tux]: \o/
Juerd It could be a boolean flag (instance-only) and an array of further explanations
nine_ PerlJam: it would have prevented panda from being broken by rakudo (fixed with rakudo commit 011c3ec704f1b6014eb704071ce5f92cb4ef7fe6)
masak nine_: are you sure? the call needs to be *statically* detectable.
Juerd I've always found it a bit weird that Perl's object methods are class methods AND instance methods at the same time. Lots of Perl 5 modules break in interesting ways if you don't use them right. 20:10
[Coke] I find myself missing the java declaration of "this method is static (defaulting to instance if you don't say anything)"
PerlJam I'm not saying it's not a good idea. I'm just saying that the bang/buck ratio seems off to me. (I could be entirely wrong though :)
Juerd [Coke]: "static" is such a weird and overused word...
20:11 _edwin left
Juerd How many meanings does it have, even in programming alone? 20:11
PerlJam [Coke]: method foo(:D: ...) # that's "static" :)
nine_ masak: ok, I retract. It may have prevented
[Tux] gist.github.com/Tux/02832c29dc18b3c6a5e0
PerlJam (assuming that we allow to elide the invocant's name)
masak to be clear, a static check would catch `C.foo` but not `$obj.foo` where $obj happens to contain a type object. 20:12
[Coke] I'm not saying I miss the particular word, just the ability to declare what's what.
Juerd [Coke]: I get that. Just saying it, hoping that if something like that is added, it won't be "static" :) 20:13
[Coke] Juerd++ 20:14
20:14 _edwin joined
[Coke] masak: I think you mean a compile-time static check, not a static static check. ;) 20:15
Juerd A check 20:16
20:16 darutoko left
Juerd s/.*// 20:16
20:17 mohij joined, ShimmerFairy left
masak [Coke]: yes. thank you. I meant... that, what you said. 20:18
20:22 spebern left 20:31 ShimmerFairy joined 20:32 firefish5000 joined 20:41 raiph left 20:45 brrt joined 20:46 kjs_ joined 20:51 kjs_ left 20:53 kjs_ joined
dalek c: a1aeb93 | (Steve Mynott)++ | lib/ (6 files):
typos
20:57
21:04 skids left 21:12 lucasb joined
lucasb Can you update a single line of comment in rakudo? This one: 21:17
github.com/rakudo/rakudo/blob/nom/...Iter.pm#L5
IIUC, it should be "pair = 0, kv = 1, k = 2, v = 3, anti = 4, invert = 5"
PerlJam lucasb: you could submit a PR for that change :) 21:22
21:22 lichtkind joined
lucasb PerlJam: It's just a single tiny line :D 21:23
21:25 _edwin left, coffee` left
PerlJam seems right to me ... 21:28
dalek kudo/nom: b247cab | PerlJam++ | src/core/ (2 files):
update comment on HashIter mode
21:30 spider-mario left
lucasb PerlJam++, thanks 21:30
dalek kudo/nom: e88467b | PerlJam++ | src/core/HashIter.pm:
update comment on HashIter mode
21:31
lucasb src/core/core
21:31 kjs_ left
PerlJam Apparently I accidentally committed an extra file, so I'm asking for that forgiveness we're always talking about 21:31
:) 21:32
lucasb PerlJam: :)
21:33 firefish5000 left
nwc10 what's a little file between friends? :-) 21:33
21:33 travis-ci joined
travis-ci Rakudo build errored. Jonathan Scott Duff 'update comment on HashIter mode' 21:33
travis-ci.org/rakudo/rakudo/builds/56792856 github.com/rakudo/rakudo/compare/6...47cabfc7e7
21:33 travis-ci left 21:34 espadrine joined 21:40 khisanth_ joined 21:43 Khisanth left 21:45 eli-se left 21:49 muraiki left 21:55 kjs_ joined 22:03 hugme left 22:04 Juerd left, synopsebot left 22:12 brrt left 22:14 RabidGravy left 22:21 mohij left, grondilu left 22:22 beastd left 22:23 pdcawley left 22:26 kjs_ left
japhb .ask nine_ I seem to recall someone (you, I think?) mentioning that there was something unsafe about running multiple Python interpreters in a single process as a way of working around the unsafe/poorly scaling threading. Can you give specifics? 22:29
yoleaux japhb: I'll pass your message to nine_.
22:30 qntm_ joined
japhb is wondering if he can stop shelling out to multiple Python programs for some complex client code and just run a pile of Python interpreters with Inline::Python instead. 22:32
... thus allowing a pile of per-query startup costs to be amortized over many queries. 22:33
22:35 yqt left, yqt joined 22:39 geever left
qntm_ Is camelia running the latest and greatest Perl 6 interpreter because I think I found a bug 22:52
TimToady it's usually within an hour of real time 22:53
qntm_ right then here goes 22:54
rakudo: my @arr = (1, 2); say @arr.length;
camelia rakudo-moar e88467: OUTPUT«No such method 'length' for invocant of type 'Array'␤Did you mean 'elems', 'chars', 'graphs' or 'codes'?␤ in block <unit> at /tmp/tmpfile:1␤␤»
qntm_ rakudo: my @arr = (1, 2); say @arr.graphs;
camelia rakudo-moar e88467: OUTPUT«No such method 'graphs' for invocant of type 'Array'␤ in block <unit> at /tmp/tmpfile:1␤␤»
qntm_ in the first error message Perl 6 suggests a method which doesn't exist
22:55 BenGoldberg joined
TimToady .graphs and .codes are not yet implemented, but they will be, so we'll probably leave the message for now 22:55
qntm_ Hmm, .codes did work for me 22:56
TimToady m: my @arr = (1, 2); say @arr.codes
camelia rakudo-moar e88467: OUTPUT«3␤»
qntm_ By the way I imagine people have had this discussion a bunch of times before but you can add me to the pile of people who think the method for getting an array's length should be .length
TimToady hmm, one could argue it should be 2 instead, but it's counting the psace
*space
qntm_ yeah "3" is quite a surprising result there 22:57
TimToady it's all very well if you come from a language where only lists are measured in "length", but for people coming from languages where "length" is about strings instead, the lack of proper units is very confusing in the age of unicode, so we banned that term 22:59
not everyone has the same background as you
qntm_ do perl 6 strings inherit from arrays? 23:00
TimToady besides, .elems is shorter :)
no
qntm_ .len is shorter still, if you really care about that
TimToady and a BASIC programmer would certainly expect that to be a string length :)
qntm_ so they only have .graphs, .codes and .chars?
TimToady .elems is quite unambiguous
qntm_ well, I disagree on that as well actually 23:01
to me .elems sounds like it might create a shallow copy of the array, or return a generator for its elements, or something
like maybe arr.elems[0] is how you access the first element 23:02
but anyway if strings only have .graphs, .codes and .chars then they don't have a simple "length" method so you're fine
TimToady nevertheless, specifying units is better than a nebulous concept, long term, and people will get used to it, so we're just not gonna use length; you can alias it if you really like 23:05
qntm_ I think people are going to get tripped up by this 23:06
TimToady no doubt, but all language design is tradeoffs
qntm_ everybody's going to get used to it very quickly, but that doesn't change the fact that every single new Perl 6 programmer is going to trip over it
TimToady hence, the message, flawed though it may be :) 23:07
qntm_ why not just return the array length
TimToady because they might not be thinking of $random-variable as an array
qntm_ well if it's a string then the error message would make more sense 23:08
TimToady clarity must take a back seat to custom here
qntm_ "length is not well-defined for strings, try .chars, .codes or .graphs"
TimToady m: say 42.elems 23:09
camelia rakudo-moar e88467: OUTPUT«1␤»
qntm_ say "abcdef".elems
rakudo: say "abcdef".elems
camelia rakudo-moar e88467: OUTPUT«1␤»
qntm_ haha what
TimToady m: say "abcdef"[0] 23:10
camelia rakudo-moar e88467: OUTPUT«abcdef␤»
qntm_ so string doesn't inherit from array but it implements elems
TimToady not really
but anything that is not a list can be considered a list of 1 element 23:11
b2gills The elems method you get on a Str is probably from Any
qntm_ why 23:12
TimToady because this is Perl
which is all about tagmemics
qntm_ why is a string considered to be a single-element array
TimToady why can you use a noun as a verb?
qntm_ does "tagmemics" stand for something
are nouns and verbs Perl 6 language concepts? 23:13
TimToady certainly, though we use noun markers so you can tell 'em apart
b2gills Perl is all about automatic conversion where it is obvious what is meant
m: say "3" + "3"
camelia rakudo-moar e88467: OUTPUT«6␤»
qntm_ so if I call .elems on a string it is obvious that what I mean is to get the number of elements in the string 23:14
which is obviously 1
regardless of string content
TimToady m: my $verb = &max; say $verb(5,4,3)
camelia rakudo-moar e88467: OUTPUT«5␤»
b2gills It can be considered a single element list
japhb
.oO( &nouning a $verb )
23:15
qntm_ why is a string considered to be a single-element array?
japhb qntm_: Not just a string. Any scalar thing
qntm_ that strikes me as very surprising behaviour 23:16
TimToady because that's what most people want most of the time
jdv79 if i want to stuff an "undef" in an array slot its Mu now?
TimToady jdv79: you probably want Any
qntm_ if I wanted a single-element array can't I do ("string") instead of "string"
japhb jdv79: We have typed undef now, so Mu is saying "absolutely any type" as well as undefined
... but what TimToady said as well
qntm_ again, I think that's going to trip lots and lots of people up
TimToady qntm_: I'm not gonna recapitulate the whole design for you 23:17
Zoffix What should "provides" in META.info be for files in bin/ ?
b2gills The only other thing it could do is be an error
qntm_ I think the decision to conflate strings with single-element arrays is going to confuse a lot of people
sorry, conflate scalars 23:18
b2gills It doesn't conflate strings an arrays, at least not like C does
If it didn't you would probably always end up calling `$var.list.[0]` just to prevent it from failing 23:19
which is far worse
Zoffix bin: "Any file inside this directory, will be installed as a callable shell application.".... I guess it shan't be in "provides" at all, since we can't do multiple versions of the same name. 23:20
qntm_ I would be totally okay with completely separating strings and arrays as concepts 23:23
23:24 espadrine left 23:25 KCL_ joined 23:27 qntm_ left, KCL left 23:31 lichtkind left
Zoffix \o/ sent pulls to all the modules that weren't S11-compliant :) 23:47
Except a couple that didn't have META.info (marked as [old]) and v5, which I've no idea what it's supposed to have for "provides" :)
Or I should have... but somehow I'm showing just 38 PRs, yet 118 non-S11 dists :S 23:50
Oh, my scriptastic automation program failed me and skipped a ton of modules when I tried to restart it mid-point... Oh well, MOAR PRs \o/ 23:57