»ö« 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,23,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/uEZEvWpykcInvalid 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/Uc8QdH4SjpPlease 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/BGTNTbeDAyTwo terms in a rowat /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/yEwFs10EQlTwo terms in a rowat /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/Begq7NWGKVUnable to parse class definitionat /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/PlrZX66lq3Redeclaration of symbol Aat /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/9of3H8RsQgRedeclaration of symbol Aat /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/n6off3KmSRConfusedat /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/xpdYk1dCchRedeclaration of symbol FHat /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 |