»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:25 Cabanossi left 00:26 Cabanossi joined 00:42 lookatme joined
lookatme morning .o/ 01:04
01:10 aborazmeh joined, aborazmeh left, aborazmeh joined
ugexe zengargoyle: actually i think the speed is entirely from json parsing. note the difference between `time zef update p6c` and `time zef update cpan` 01:17
01:17 mtj_ left
ugexe 800 dists takes 14 seconds vs 15 dists and 1 second 01:18
the 800 dists i also tried using the git mirror so that the network bandwidth required would be non-existent 01:19
01:27 mtj_ joined
ugexe this is using Rakudo::Internals::JSON - and this makes sense because that is what CUR/Distribution use - which means it could also be optimized since its only purpose *is* for this exact thing 01:28
it doesn't have to be spec 01:29
01:40 AlexDaniel left 01:42 dudz left, dudz joined 01:46 ilbot3 left, pilne left 01:48 ilbot3 joined, ChanServ sets mode: +v ilbot3 01:50 culb left 02:04 Actualeyes joined 02:35 raiph left 02:37 noganex_ joined 02:40 noganex left 02:45 vendethiel left 02:52 aborazmeh left 03:07 aindilis` left 03:23 cdg joined 03:24 Cabanossi left 03:26 Cabanossi joined 03:37 parv joined 03:49 cbk_ joined 03:52 Cabanossi left 03:54 Cabanossi joined 04:08 javan joined 04:09 khw left 04:11 wamba joined, cdg_ joined, cdg left 04:14 aborazmeh joined, aborazmeh left, aborazmeh joined 04:22 cdg_ left 04:23 cdg joined 04:31 itaylor57 left 04:32 itaylor57 joined 04:35 cdg left 04:36 Actualeyes left 04:38 Cabanossi left 04:39 Cabanossi joined 04:54 cgfbee joined 04:56 cpage_ left 05:22 Cabanossi left 05:24 Cabanossi joined 05:25 ChoHag joined 05:26 cpage_ joined, kurahaupo_ joined 05:28 kurahaupo left 05:34 aborazmeh left, xtreak joined 05:37 avuserow left 05:39 kurahaupo_ is now known as kurahaupo 05:59 cbk_ left 06:00 curan joined, javan left 06:05 wamba left, domidumont joined 06:07 Cabanossi left 06:09 domidumont left, Cabanossi joined 06:13 Actualeyes joined 06:15 skids left 06:17 Sgeo_ joined 06:18 xtreak left 06:21 Sgeo left 06:22 ChoHag left, kurahaupo left 06:24 kurahaupo_ joined
lookatme |_·) 06:24
06:31 geekosaur left 06:32 geekosaur joined 06:34 ChoHag joined 06:40 xtreak joined 06:46 espadrine joined 06:53 Cabanossi left 06:54 Cabanossi joined 06:57 parv left 06:58 xtreak left 06:59 xtreak joined 07:03 xtreak left 07:04 domidumont joined 07:06 abraxxa joined 07:09 BenGoldberg left 07:12 xtreak joined 07:15 ChoHag left 07:16 lowbro joined, lowbro left, lowbro joined 07:17 ChoHag joined 07:20 wamba joined 07:23 kurahaupo_ left, kurahaupo joined, abraxxa left 07:24 abraxxa joined 07:25 TEttinger left 07:26 bbkr joined, rindolf joined 07:27 ChoHag left 07:28 as_ joined
as_ rakudo: say True ^^ True; 07:28
camelia Nil
07:29 robertle_ left
as_ While documented, it looks strange 07:29
07:35 as_ left 07:37 kurahaupo_ joined 07:39 kurahaupo left 07:46 wamba left 07:58 espadrine left 08:00 stmuk joined 08:02 dakkar joined, stmuk_ left 08:04 tipdbmp joined 08:07 aindilis joined
tipdbmp Why does calling an undefined method on the "$!" produce Nil instead of an error: sprunge.us/idSI 08:07
moritz m: say $!.^name 08:09
camelia Nil
moritz m: Nil.fooobar
camelia ( no output )
moritz seems intentional, if odd
08:09 jonas2 joined
moritz (and methods are always resolved at run time, because at compile time, there's not enough information to do so reliably) 08:10
08:11 xtreak left
tipdbmp Okay. 08:11
08:11 kurahaupo_ left, kurahaupo joined 08:12 xtreak joined
tipdbmp In Perl 6 functions/subs can return multiple values, is it possible to specify the types of those values? 08:12
08:14 g4 joined, g4 left, g4 joined
moritz m: sub f () { return 1, 2 }; say f().^name 08:16
camelia List
08:16 xtreak left
moritz m: sub f () { return 1, 2, a => 42 }; say f().^name 08:16
camelia List
moritz tipdbmp: you can declare that it returns a List
08:16 kurahaupo_ joined
moritz it doesn't have true multi-value returns 08:16
just like python, which also just allows you to return a tuple
(and helps you destructure it on the caller side) 08:17
08:17 kurahaupo_ left, kurahaupo_ joined
tipdbmp m: sub f() returns \(Int, Int) { \(1, 2) } 08:17
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed trait
at <tmp>:1
------> 3sub f() returns7⏏5 \(Int, Int) { \(1, 2) }
tipdbmp What about returning captures? 08:18
moritz m: sub f() returns (Int, Int) { (1, 2) }
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed trait
at <tmp>:1
------> 3sub f() returns7⏏5 (Int, Int) { (1, 2) }
moritz still just a single object
tipdbmp Why do we get "Malformed trait error"? 08:19
08:20 kurahaupo left, zengargoyle left
moritz because it fails to parse the "returns" trait 08:20
tipdbmp How do you declare that a sub returns a capture: \(Int, Int)? 08:21
08:22 Sense8 joined
moritz m: subset IntIntCapture of Capture where \(Int, Int); sub f(--> IntIntCapture) {} 08:24
camelia ( no output )
08:27 zengargoyle joined
tipdbmp m:sub foo() returns Int { my Int $a = 1; $a }; say 'runtime'; my Str $s = foo(); 08:28
evalable6 (exit code 1) runtime
Type check failed in assignment to $s; expected Str but got Int (1)
in block <unit> at /tmp/uWl4zXgIf3 line 1
tipdbmp I see, return types are checked at runtime, not compile time. 08:29
moritz type checks in general are run time 08:30
there are just a few special cases where they can be hoisted to compile time
tipdbmp That's kind of disappointing. :/ 08:31
08:31 xtreak joined
moritz that's what you get when you start from a dynamic language 08:31
if you want compile-time type checking, you're better off with a static language, and use a few "dynamic" variables here and there 08:32
like C#
tipdbmp I think I'll try to use Perl 6 to learn about metaprogramming/introspection instead. =) 08:38
moritz good idea :-)
another good is to explore the regexes and grammars
(IMHO)
08:39 xtreak left
tipdbmp Introspection now, parsing later. 08:39
08:40 xtreak joined
lookatme m: subset IIC of Capture where :(Int, Int); sub foo() returns IIC { return \(1, 2); }; say foo(); 08:44
camelia \(1, 2)
08:45 Sense8 left
lookatme m: subset IIC of Capture where :(Int, Int); sub foo() returns IIC { return \(1, 2); }; my ($x, $y) = |foo(); 08:45
camelia ( no output )
lookatme m: subset IIC of Capture where :(Int, Int); sub foo() returns IIC { return \(1, 2); }; my ($x, $y) = |foo(); say $x, $y;
camelia 12
08:45 Sense8 joined
lookatme m: subset IIC of Capture where :(Int, Int); sub foo() returns IIC { return \(1, 2); }; my Str ($x, $y) = |foo(); say $x, $y; 08:45
camelia Type check failed in assignment to $x; expected Str but got Int (1)
in block <unit> at <tmp> line 1
lookatme m: subset IIC of Capture where :(Int, Int); sub foo() returns IIC { return \(1, "2"); };
camelia ( no output )
lookatme m: subset IIC of Capture where * ~~ :(Int, Int); sub foo() returns IIC { return \(1, "2"); }; 08:46
camelia ( no output )
lookatme m: subset IIC of Capture where * ~~ :(Int, Int); sub foo() returns IIC { return \(1, "2"); }; say foo();
camelia Type check failed for return value; expected IIC but got Capture (\(1, "2"))
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
lookatme m: subset IIC of Capture where :(Int, Int); sub foo() returns IIC { return \(1, "2"); }; foo();
camelia Type check failed for return value; expected IIC but got Capture (\(1, "2"))
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
lookatme m: subset IIC of Capture where \(Int, Int); sub foo() returns IIC { return \(1, "2"); }; 08:47
camelia ( no output )
lookatme m: subset IIC of Capture where :(Int, Int); sub foo() returns IIC { return \(1, "2"); }; foo();
camelia Type check failed for return value; expected IIC but got Capture (\(1, "2"))
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
lookatme m: subset IIC of Capture where :(Int, Int); sub foo() returns IIC { return \(1, 2); }; foo();
camelia ( no output )
lookatme m: subset IIC of Capture where :(Int, Int); sub foo() returns IIC { return \(1, 2); }; say foo();
camelia \(1, 2)
lookatme m: subset IIC of Capture where \(Int, Int); sub foo() returns IIC { return \(1, 2); }; say foo();
camelia Type check failed for return value; expected IIC but got Capture (\(1, 2))
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
lookatme The subset need to match with a signature. 08:48
08:56 Sense8 left
tipdbmp m: sub foo(Str $a, Int $b) returns Bool { return True; }; say &foo.signature; 08:58
camelia (Str $a, Int $b --> Bool) 08:59
tipdbmp If foo was a method in some class, how would we print its signature, how do we get a reference to a method?
jnthn ThatClass.^lookup('foo') 09:01
tipdbmp m: class Foo { method foo(Int $a, Str $b) returns Bool { return True; } }; say Foo.^lookup('foo').signature; 09:03
camelia (Foo $: Int $a, Str $b, *%_ --> Bool)
tipdbmp Right. 09:04
09:09 Exodist left 09:10 Exodist joined 09:19 DesertJellyfish is now known as alienDesertJelly, alienDesertJelly is now known as AlienDesertJelly, Exodist left 09:20 Exodist joined 09:27 wamba joined 09:35 pecastro left 09:38 Cabanossi left 09:39 Cabanossi joined, robertle joined 09:40 pmurias joined 09:45 nattefrost joined 09:52 tipdbmp left 10:00 scimon joined
scimon Morning all. In my search for a YAML module to use I figured I might do a bit of documentation. Is POD in the main lib the recommended way to go? 10:01
(The older I get the more I like good documentation)
tinita scimon: don't know the recommended way, but I'm interested in which YAML module you found =) 10:11
Xliff scimon++ # A sign of a mature coder, no matter what the age. 10:13
scimon Well looking at the Options you've got Config::Parser::Yaml (A wrapper around Yamlish, no docs). Yamlish (no docs), YAML (dump only from the docs) and the LibYAML implemation (best docs, but consistently failing travis tests). 10:14
That's from a search for YAML in the perl6.org modules list. 10:15
tinita Xliff: and the new yaml/yaml-perl6
Xliff: I noticed the LibYAML tests are failing, but they are passing on my system, so I gotta figure out what's the reason 10:16
scimon If I have a choice of modules I'll generally pick the one with the most docs.
tinita therefor it would be cool if people could try out github.com/yaml/yaml-perl6
scimon :tinita that looks nice. 10:17
tinita scimon: LibYAML and yaml/yaml-perl6 were just started, so the docs are incomplete
scimon I get that :) 10:18
Geth ecosystem: afcb12e2fe | (Zoffix Znet)++ (committed using GitHub Web editor) | META.list
Fix 404 meta URL
scimon I'll take a look at yaml-perl6 this evening. (I'm working on a project to get my head around Perl6 as a long time Perl5 developer) 10:19
tinita scimon: oops, the comment above about the failing test should have been an answer to you, not Xliff =)
scimon :)
tinita scimon: yaml-perl6 is also my first perl6 module, so I learned a lot of the language while writing it. (i hope!) 10:21
10:29 cognominal left 10:37 skids joined 10:38 Cabanossi left 10:39 Cabanossi joined 11:08 Cabanossi left 11:09 Cabanossi joined, xtreak left 11:28 zakharyas joined, domidumont left 11:29 domidumont joined
tbrowder hi #perl6 11:32
i'm working on my lite linter and a good test p6 prog for input to it. in fiddling with various combinations of =begin/=end pod blocks, both matched and unmatched, i'm finding possible inconsistencies in how perl6 treats them. it's too early to wave a flag but i thought the actual indentation of a =begin or =end isn't supposed to matter but it seems it sometimes does.
zengargoyle i would guess LibYAML is failing because it's a NativeCall binding to libyaml.so and some systems have it and some dont and LibYAML doesn't try to check on installation.
i.e. using a Build.pm and LibraryCheck or such to ensure that libyaml.so is present on the system. 11:33
tinita zengargoyle: it's actually working, just one test in 20.emit.t is failing 11:34
(and another test (31.emit-bug-tag.t) is failing, but that should be removed anyway)
could be the libyaml version maybe 11:35
the .travis.yml currently does: apt-get install libyaml-dev 11:36
zengargoyle ah, i see the .travis.yml at least installs libyaml-dev.
heh
tinita =)
but i'll keep that (LibraryCheck) in mind 11:38
zengargoyle i would like NativeCall to do some smart pick highest version instead of looking for libNAME.so as such. there's often not a .so file and instead several .so.1.0.1 and .so.2.0.0. .so links are usually in the -dev packages just for the sake of linking. 11:39
11:45 gregf_ joined 11:53 domidumont left 11:55 domidumont joined 12:02 zakharyas left 12:05 wamba left 12:06 Cabanossi left 12:07 _4d47 joined 12:09 Cabanossi joined
jnthn Given that .so version number bumps - especially majors - will typically imply ABI changes, just picking the latest won't tend to be very smart. :) 12:11
12:13 wamba joined
zengargoyle neither is looking for whatever libNAME.so is currently linked to. it's probably going to be the latest. 12:13
i guess it doesn't matter if a :ver() is given. 12:14
but i gues without wanting a specific version, it's *hard* to enumerate the available versions and pick the highest anyways. 12:16
12:16 andrzejku joined
andrzejku hello perl6 12:16
zengargoyle but i gues without wanting a specific version, it's *hard* to enumerate the available versions and pick the highest anyways.the windows is datrie.dll ... can't win either way. :/ 12:18
jnthn Yeah but on Windows is basically encouraged to bundle the version you need. 12:19
zengargoyle and debian package calls it libdatrie1.so the windows is datrie.dll ... can't win either way. :/ so i just built a .so in resources. 12:20
zengargoyle keeps getting IRC goofs from my touchpad scrolling the input box history 12:21
think the disable touchpad while typing thing is broken. :( 12:22
12:23 raschipi joined 12:25 perlpilot left 12:27 perlpilot joined 12:30 ZofBot left
raschipi Now we can talk behing Zoffix's back. 12:31
moritz no, the Zoffix's Eye sees all! 12:35
12:50 jonas2 left 12:54 skids left
zengargoyle heh, does zef turn on verbose testing when under travis-ci? 12:59
13:00 araraloren joined
araraloren evening 13:00
moritz zengargoyle: not automatically, I think
raschipi hello araraloren 13:01
moritz zengargoyle: some module authors add --verbose to their .travis.yml
araraloren :)
zengargoyle my .travis.yml just has 'zef install .' and the build log shows a '$ PERL6LIB=lib prove -v -r --exec=perl6 t/' that i can't explain happening....
13:02 mcmillhj joined
araraloren I think prove is a test tools from Perl 5 . 13:03
13:04 curan left
tbrowder ref pod blocks: hm, indentation is important since it determines virtual start of block content, misaligned =end may be part of the problem... 13:04
zengargoyle travis-ci.org/zengargoyle/p6-Algor.../242006981 13:07
i wonder if you don't give a script: section if travis is being smart and doing prove? 13:08
13:08 ChoHag joined
zengargoyle araraloren: yeah prove is p5 but it can be used with many languages as long as the have tests that output TAP, and it has pretty reporting and other functionality. 13:10
araraloren zengargoyle, oh :) thanks 13:12
raschipi TAP being the Test Anywhere Protocol
13:18 xtreak joined 13:19 avar left, Possum joined, avar joined 13:25 _cronus joined, xtreak left
zengargoyle yeah, it's travis that is assuming the full test appropriate to p6 if you don't provide a script: yourself. :) 13:26
travis-ci.org/zengargoyle/p6-Algor.../242014740 13:28
_cronus Hello, I tried a small script using JSON::RPC ( paste.ubuntu.com/24841175/ ). When I run the client I get `Parse error (-32700): "Input (0 characters) is not a valid JSON string"` any idea why? 13:29
yoleaux 7 Jun 2017 17:37Z <eveo> _cronus: people told you to use @$lines the other day. Don't. .IO.lines gives you a Seq, which doesn't keep its values around after you iterate over them, which is a handy thing to do if you're, say, iterating over 10GB file. The reason for $lines {} iterates over the entire Seq is because it's containerized. Use for $lines<> {} to decont it and then it'll iterate a line at a time AND won't keep the lines
7 Jun 2017 17:37Z <eveo> _cronus: around. See more at docs.perl6.org/language/glossary#i...ntry-Reify and docs.perl6.org/language/containers
13:34 lichtkind joined 13:35 sufrostico joined, sufrostico left, sufrostico joined, sufrostico left 13:36 sufrostico joined
sufrostico Morning 13:36
anyone knows if its posible to run bailador by using apache2 http server ?
13:36 Cabanossi left
[Coke] I was under the impression that bailador used its own server, and didn't necessarily integrate with an existing one. 13:36
moritz well, you could add apache2 as a reverse proxy in front of it 13:37
which would be good idea, generally
sufrostico thanks, I'll take a look into that 13:38
13:38 khw joined 13:39 Cabanossi joined
tadzik it might be a good idea to write a perl5-perl6 psgi bridge 13:39
so you can run perl6 behind anything that can run psgi apps 13:40
moritz sufrostico: there's also a Bailador slack channel; if you're interested, I can send you an invitation 13:44
raschipi tadzik: Isn't that HTTP::Easy::PSGI ? 13:54
13:55 eveo joined
eveo zengargoyle: your travis also has "language: perl6", which includes the default test script that runs prove: docs.travis-ci.com/user/languages/...est-Script 13:55
13:57 ZofBot joined, ChanServ sets mode: +v ZofBot
zengargoyle that was my guess, i'm just not sure if it's new since i originally wrote the module or whether it was there and i chose to be specific for myself. it just surprised me. 13:57
like i should probably add in other OS's and test against 6.c as well nowadays. but i'm not sure if anybody has a best-practices template like thing for modules yet. 13:59
same with the modules.perl6.org/todo page complaining about MANIFEST file.
eveo All stable Rakudos are 6.c, including latest
zengargoyle is sad App::Mi6 doesn't do MANIFEST 14:00
eveo Why do we do MANIFEST anyway?
I don't plan adding one to my dist.
zengargoyle eveo: i have some IO code that broke between 6.c and latest....
eveo zengargoyle: lastest *is* 6.c tho
zengargoyle it's not 6.c of last year. 14:01
eveo Do you mean 2015.12 release?
zengargoyle probably. old module. i remember ensuring it worked after christmas.
eveo Other than minor errata, there haven't been any changes to 6.c language and latest compliers all pass the 6.c language spec tests
zengargoyle well, it broke between now and then due to IO changes. 14:02
eveo There have been a ton of bug fixes and changes not covered by 6.c language tho
zengargoyle: do you remember which module is it?
Or which code.
zengargoyle Text::Fortune in the tests in the bit that basically slurped in a Buf via .s and .read 14:04
(as the fortune .dat files are basically binary structs of sorts). it'll probably break if/when pack/unpack changes also. 14:05
i think pack/unpack are sorta on shakey ground.
14:06 ctilmes joined
eveo zengargoyle: this? github.com/zengargoyle/Text-Fortun...d57035a931 14:06
[Coke] make test on jvm fails hard.
eveo zengargoyle: just write it as 'empty.dat'.IO.slurp: :bin 14:07
Don't mess with handles if you don't need to.
mc: with '/tmp/empty.dat'.IO { .spurt: "meow"; dd .slurp: :bin }
committable6 eveo, ¦2015.12: «Buf[uint8].new(109, 101, 111, 119)»
eveo Works in 2015.12 too 14:08
zengargoyle eveo: yeah. i think/thought that back then .slurp wasn't implemented on Buf.
14:08 _cronus left
[Coke] (wow. git on newjob work machine instantly switches between 6.c-errata and master; took 10s of seconds on oldjob machine of similar power) 14:08
zengargoyle or maybe just not documented.
eveo zengargoyle: it was. It wasn't in IO::Handle, but yeah, .s and all the rest of file tests were removed from IO::Handle in April (none of them were part of the 6.c language) 14:10
m: let $*CWD = 't/test_data';
camelia ( no output )
eveo we have let? :S 14:11
TIL
Tho it's useless in that file: github.com/zengargoyle/Text-Fortun...nodat.t#L5 14:13
zengargoyle Text::Fortune was started before christmas, so i'm pretty sure it's full of not-the-best-practice bits. :)
14:13 lizmat left
zengargoyle and my first attempt at a p6 module. :) 14:15
14:16 eveo left
zengargoyle how is it useless? 'with_dat.dat'.IO wouldn't resolve unless in the t/test_data directory 14:16
[Coke] trying to build on JVM. make install is trying to run 'mkdir -p -- /Perl6' 14:19
that's with a plain Configure (where I expect everything to go into ./install)
also the repl repeatedly complains about a type check failure 14:20
14:23 lizmat joined, eveo joined
eveo zengargoyle: because `let` is useful for changing value when a block is left, but you're not leaving any blocks. `my` makes more sense there. Or better yet: chdir 't/test_data'; which will also fail if that dir ain't there 14:24
zengargoyle was probably used to p5 Cwd module and did it that way out of habit. 14:25
eveo m: my $v = 1; { let $v = 42; True }(); dd $v; 14:26
camelia Int $v = 42
eveo m: my $v = 1; { let $v = 42; Nil }(); dd $v;
camelia Int $v = 1
eveo There's also &indir that runs a chunk of code inside some dir
And `temp` to localize changes (like `let`, except always restores old value) 14:27
14:27 eveo left
tadzik raschipi: but that's a Perl 6 server 14:27
what I was thinking about is having a way for Perl 5 servers to run Perl 6 apps, so you can put them behind starman, apache or whatnot
zengargoyle cool, i'll try and keep that in mind for the future and if/when i go back and clean up Text::Fortune. 14:28
i'm still working on fixing up old travis files to use zef instead of panda, and getting :ver and :auth things in place. 14:29
tadzik are you, by any chance, finding modules.perl6.org/todo/ helpful? :) 14:30
14:31 lucasb joined
tadzik modules.perl6.org/todo/zengargoyle in your case 14:31
zengargoyle and really, a module i have that builds a .so from source and puts it into resources and does NativeCall stuff still works so i'm decently happy.
tadzik and I'm not sure if it even has checks for .travis.yml contents, hmm
zengargoyle tadzik: not sure about the MANIFEST thing. but otherwise yeah, i've fixed a couple of META things. 14:32
tadzik MANIFEST is a new-ish thing
zengargoyle and mi6 doesn't do it. :) even though it will use a MANIFEST.SKIP when generating a tarball for upload.
14:33 skids joined
tadzik ah, a patch opportunity :) 14:33
zengargoyle always hated keeping track of MANIFEST* files.
raschipi zengargoyle: Did using readlink on /proc/self/fd work? 14:36
zengargoyle i'm guessing MANIFEST is a CPAN thing? i don't really see any use for it. (if your dist is mostly just whatever is in git ls-files)
tadzik yeah, it's a cpan thing 14:37
[Coke] (JVM) $(MKPATH) $(DESTDIR)$(J_LIBPATH)/Perl6 so both destdir and j_libpath are unset, I guess?
zengargoyle raschipi: that wasn't my problem. somebody else was looking for the 'real path of opened file'
14:38 aborazmeh joined, aborazmeh left, aborazmeh joined
zengargoyle raschipi: and the security related race conditions stuff. 14:38
raschipi I see, I misread the conversation, it was Voldenet that wanted it. 14:39
zengargoyle tadzik: mi6 uses git ls-files minus .travis.yml, .gitignore, .precomp and minus what's in MANIFEST.SKIP to build the tarball, but there's no place where it actually writes the MANIFEST file. 14:40
so it's not in the tarball that gets uploaded to CPAN 14:41
_4d47 m: sub postfix:<!>(Int $x where { $x >= 0 }) { [*] 1..$x }; say 6!; 14:44
camelia 720
zengargoyle i looked into fixing mi6 and got sidetracked when the SKIP code used 'eq' for testing and then i found that * ~~ /$match/ doesn't work properly. i was gonna make it take regexes. :)
14:45 nattefrost left
timotimo that was the closure bug, right? 14:45
(not the fact that you used /$match/ instead of /<$match>/
) 14:46
_4d47 i'm wondering why i get a compilation error when i put it line by line in the repl (eg. say 6!; <enter>)
zengargoyle timotimo: yeah, it's bugged and there were probably previous examples under different circumstances.
raschipi m: say 6!;
camelia 5===SORRY!5=== Error while compiling <tmp>
Negation metaoperator not followed by valid infix
at <tmp>:1
------> 3say 6!7⏏5;
expecting any of:
infix
infix stopper
zengargoyle is there a tool that does nice JSON diffs? 14:48
[Coke] _4d47: the REPL cheats. by the time you run the 6! on the next line, the scope container the postfix is gone 14:49
*containing
_4d47 looks like at 2017.02 it was working
[Coke] that would work fine in a script where the sub def and the use of it were in the same scope
zengargoyle i.e. when ordering is different but things are the same and `git diff` shows a bunch of add/delete.
_4d47: yeah, in REPLY you sorta have to put everything on the same line. except class definitions. REPL is a strange thing. 14:51
raschipi Git accepts plugins to generate the diffs, not many people know that. It's possible to tell it to use some jsondiff tool to tell it if things are the same or not.
zengargoyle raschipi: is there a jsondiff tool? 14:52
14:52 Cabanossi left, itaipu joined
zengargoyle guesses maybe google will help. :) 14:53
14:54 Cabanossi joined
_4d47 oh ok, i was enjoying postfix:<%>(Numeric $n) { $n / 100 } for some repl math 14:56
14:56 lizmat left
zengargoyle if i'm serious, i have two windows. one an editor and the other using inotifywait to watch the file and run it on each write. 14:58
raschipi m: postfix:<%>(Numeric $n) { $n / 100 }; (4+3i)% * 300 14:59
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in argument list; couldn't find final ')'
at <tmp>:1
------> 3postfix:<%>(Numeric7⏏5 $n) { $n / 100 }; (4+3i)% * 300
expecting any of:
infix
raschipi m: sub postfix:<%>(Numeric $n) { $n / 100 }; (4+3i)% * 300 15:00
camelia WARNINGS for <tmp>:
Useless use of "*" in expression "% * 300" in sink context (line 1)
15:00 titsuki joined
raschipi m: sub postfix:<%>(Numeric $n) { $n / 100 }; say (4+3i)% * 300 15:01
camelia 12+9i
sufrostico moritz: sure, i'll like that
moritz sufrostico: /msg me your email address
15:04 lizmat joined, AlexDaniel joined, aborazmeh left 15:09 AlexDaniel left 15:13 tipdbmp joined, itaipu left
tipdbmp m: class Foo::Bar {}; say Foo::Bar.^methods; 15:13
camelia ()
tipdbmp m: class Foo::Bar {}; say Foo.^methods;
camelia No such method 'methods' for invocant of type 'Perl6::Metamodel::PackageHOW'
in block <unit> at <tmp> line 1
tipdbmp How can one test whether something is a class? 15:14
jnthn Foo.HOW ~~ Metamodel::ClassHOW
tipdbmp Okay, so Foo::Bar is a class, but what is Foo? 15:15
moritz m: class Foo::Bar { }; say Foo.HOW.^name
camelia Perl6::Metamodel::PackageHOW
moritz a package!
(and yes, I love how that uses two meta-levels to get to the answer) 15:16
lizmat
.oO( turtles all the way down )
tipdbmp I guess listing all the classes now should be easy, thanks! =) 15:17
15:18 tipdbmp left 15:36 cdg joined 15:37 Cabanossi left 15:38 cdg left, cdg joined, cdg left 15:39 cdg joined, Cabanossi joined 15:48 wamba left 15:50 cyphase left 15:52 wamba joined 15:53 cyphase joined 15:56 lichtkind left 15:57 gregf_ left 15:58 abraxxa left 15:59 lowbro left, scimon left 16:04 devmikey joined 16:07 robertle left 16:08 Cabanossi left 16:09 lichtkind joined, Cabanossi joined, domidumont left 16:10 setty1 joined 16:15 wamba left 16:25 pilne joined 16:26 dakkar left 16:29 dha joined, grondilu joined 16:32 bpmedley left 16:33 araraloren left
pmurias any better ideas for a TPF::Amsterdam talk title than the obvious "Rakudo.js - compiling Perl 6 to JavaScript" 16:36
?
16:38 Cabanossi left 16:39 Cabanossi joined
mst "Rakudo.js - because not every transpiler has to have a silly name" 16:40
16:41 Cabanossi left 16:42 Cabanossi joined 16:43 robertle joined, Cabanossi left 16:44 Cabanossi joined 16:48 xerx joined
lizmat is looking forward to pmurias' talk already :-) 16:50
16:54 captain-adequate left
[Coke] pmurias++ 16:55
16:57 domidumont joined
dha This is how I know I've not been paying sufficient attention lately. Task::Star isn't a thing anymore, is it? 17:11
17:11 xerx left
El_Che dha: killed in its sleep 17:12
dha Yeah. I think I vaguely heard something about that. Is there something similar or did we just move to "leave us alone and just install what you want"? 17:13
lizmat github.com/finanalyst/p6-task-popular # dha 17:16
dha Thanks.
lizmat dinner& 17:20
17:23 mcmillhj left 17:26 mcmillhj joined 17:38 Cabanossi left 17:39 Cabanossi joined
Geth Swapped META.info → META6.json in 1 dists in github.com/perl6/ecosystem/commit/cb94230a06 17:49
17:56 TEttinger joined
Geth doc: 0f2dcd305a | (Jan-Olof Hendig)++ | doc/Type/Signature.pod6
Fixed some issues, mostly relating to code example output
17:58
18:00 ugglan joined
zengargoyle dha: i'm guessing everybody will roll their own. github.com/zengargoyle/p6-Task-Handy :) 18:03
dha Aha.
dha will have to look into this. 18:04
Huh. *Should* HTTP::UserAgent be failing tests on OS X? 18:05
zengargoyle it's really just a META6.json with a bunch of "depends" ...
18:05 st_elmo joined 18:08 cyphase left, wamba joined
mst m: my $xenu's = "foo"; say 'Xenu's value is {$xenu's}'; 18:09
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3my $xenu's = "foo"; say 'Xenu'7⏏5s value is {$xenu's}';
expecting any of:
infix
infix stopper
postfix
statemen…
18:09 |oLa| left
mst m: my $xenu's = "foo"; say 'Xenu\'s value is {$xenu's}'; 18:10
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3s = "foo"; say 'Xenu\'s value is {$xenu'7⏏5s}';
expecting any of:
infix
infix stopper
postfix
statement end
mst ...
m: my $xenu's = "foo"; say "Xenu\'s value is {$xenu's}";
camelia Xenu's value is foo
raschipi m: my $xenu's = "foo"; say "Xenu\'s value is $xenu's"; 18:12
camelia Xenu's value is foo
raschipi m: my $xenu's = "foo"; say "Xenu's value is $xenu's"; 18:13
camelia Xenu's value is foo
18:14 cyphase joined 18:24 lucasb left 18:25 itaipu joined 18:27 dct joined 18:29 andrzejk_ joined 18:30 mcmillhj left, buggable left, buggable joined, ChanServ sets mode: +v buggable
raschipi After binding a veraible to something, how can I give it a container again? 18:32
Juerd raschipi: As far as I know, you can't give a container to an existing lexical, but you can declare another variable with the same name that will hide the original. 18:34
raschipi Redeclaration will be completely blocked in 6.d
Juerd raschipi: That will emit a warning because it's usually a bad idea. Why do you want to do this?
moritz you can bind a container to again
m: my $x := 42; $x := (my $); $x = 23; say $x 18:35
camelia 23
raschipi Now I remembered the difference between `$` and `my $`, thanks.
Juerd raschipi: Oh, that's unfortunate. I use redeclaration as a useful feature.
moritz Juerd: example? 18:36
Juerd moritz: I use it during debugging to test what-ifs
18:36 mcmillhj joined
moritz (we're talking about redeclaration in the same scope, not in an inner scope, right?) 18:36
Juerd moritz: Yes, same scope.
gfldex m: my $x := 42; { temp $x; $x = 24; say $x } 18:37
camelia Can only use 'temp' on a container
in block <unit> at <tmp> line 1
raschipi I think it should be allowed in the REPL too.
Juerd raschipi: Personally I don't think it should be disallowed at all, although I'd be convinced if disallowing it came with performance benefits.
raschipi It will probably be allowed after using some MONKE TAG 18:38
Juerd The warning is sufficiently clear and verbose to guide those who redeclare by mistake.
raschipi: Works for me
raschipi And how can I change what a name is bound to? 18:39
Juerd raschipi: How does that differ from what moritz showed at 20:35? 18:40
raschipi m: my $b = 3; my $c = 4; say my $a := $b; say $a := $c 18:41
camelia 3
4
raschipi I think my local P6 is old, it gives me: "Cannot use bind operator with this left-hand side"
moritz try perl6 --version 18:43
raschipi I don't even need to run that to know I have 2017.05
moritz that doesn't sound so old 18:44
[Coke] can you run it anyway, though, to make sure?
(esp. if you are using rakudobrew or might otherwise have multiple instances)
raschipi Yep, I just did
18:44 setty1 left
raschipi $ perl6 --version This is Rakudo version 2017.05 built on MoarVM version 2017.05 implementing Perl 6.c. 18:45
18:45 setty1 joined
[Coke] committable6: 2017.05 my $b = 3; my $c = 4; say my $a := $b; say $a := $c 18:45
committable6 [Coke], ¦2017.05: «3␤4»
raschipi let me try it in file instead of the REPL
[Coke] $ echo 'my $b = 3; my $c = 4; say my $a := $b; say $a := $c' | perl6 # same answer here. 18:46
(some version post 2017.05) - also worked fine in my REPL just pasted in.
raschipi Works in a file. So it's REPL weirdness
moritz committable6: 2016.01 my $b = 3; my $c = 4; say my $a := $b; say $a := $c
committable6 moritz, ¦2016.01: «3␤4»
[Coke] the last line complains if you split it out. 18:47
the REPL cheats on scoping. sometimes this bites you.
raschipi Yep, only fails if I do it in multiple lines.
Doing it in the same line works. 18:48
> say $a := $c; ===SORRY!=== Error while compiling: Cannot use bind operator with this left-hand side ------> say $a := $c⏏;
perlpilot raschipi: say ($a := $c); 18:49
raschipi perlpilot: got the exact same error. 18:50
18:57 andrzejk_ left 19:01 ctilmes left 19:02 nhywyll joined 19:05 tipdbmp joined
tipdbmp CORE::.keys gives back all the keys in package CORE, what would be the syntax if the name CORE was a string/came from a variable: ::($pkg)::.keys doesn't seem to work? 19:07
19:12 nhywyll left, mr-fooba_ left 19:14 bdmatatu joined, mr-foobar joined 19:15 raschipi left, zakharyas joined 19:18 itaipu left, raschipi joined
tipdbmp m: say ::('CORE')::.::; # =) 19:18
camelia ===SORRY!===
MVMArray: Can't pop from an empty array
19:18 kurahaupo joined 19:19 itaipu joined 19:21 kurahaupo_ left, AlexDaniel joined 19:26 kurahaupo left, uberbaud joined, kurahaupo joined
moritz I think CORE isn't a regular package, but special-cased in the compiler 19:27
m: class A::B { }; my $name = 'A' say ::($name)::.keys 19:28
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3class A::B { }; my $name = 'A'7⏏5 say ::($name)::.keys
expecting any of:
infix
infix stopper
postfix
statement…
moritz m: class A::B { }; my $name = 'A'; say ::($name)::.keys
camelia ()
moritz m: class A::B { }; my $name = 'A'; say ::($name).keys
camelia ()
moritz m: class A { class B { }}; my $name = 'A'; say ::($name)::.keys
camelia ()
moritz m: class A { class B { }}; my $name = 'A'; say ::($name).keys
camelia ()
19:29 domidumont left
moritz stumped 19:29
19:32 andrzejk_ joined, TEttinger left 19:33 TEttinger joined 19:35 zakharyas left 19:36 itaipu left 19:37 Cabanossi left, eveo joined, uberbaud left
eveo .tell cono you should add yourself to CREDITS file: github.com/rakudo/rakudo/blob/nom/CREDITS 19:38
yoleaux eveo: I'll pass your message to cono.
eveo .tell flussence you should add yourself to CREDITS file: github.com/rakudo/rakudo/blob/nom/CREDITS
yoleaux eveo: I'll pass your message to flussence.
19:39 Cabanossi joined, cpage_ left
tipdbmp m: class A::B { }; my $name = 'A'; { use MONKEY-SEE-NO-EVAL; say EVAL("$name\::.keys"); } 19:40
camelia (B)
eveo tipdbmp: you need to use .WHO 19:41
m: my $x = "CORE"; say ::($x).WHO.keys
camelia (&infix:<+|> WhateverCode SIGSEGV Slip &callframe Pair &keys SIGHUP utf8 &RETURN-LIST &infix:<∖> CurrentThreadScheduler PromiseStatus StringyEnumeration &infix:<ne> Distribution &infix:«<=» &slip &splice &trait_mod:<handles> &callsame &GATHER Backtra…
19:43 itaipu joined 19:44 eveo left
tipdbmp I see, thanks! 19:45
19:50 devmikey left 19:52 zakharyas joined 19:54 tipdbmp left 20:02 dct left 20:05 cpage_ joined 20:07 yqt joined, Cabanossi left 20:09 Cabanossi joined 20:15 yqt left 20:20 itaipu left, andrzejk_ left 20:21 itaipu joined 20:22 dha left 20:24 st_elmo left 20:28 itaipu left 20:29 itaipu joined
lizmat And another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/06/12/...ty-sorted/ 20:32
Geth doc: 95a0de8074 | (Jan-Olof Hendig)++ | doc/Type/Promise.pod6
Changed formatting
20:33
20:35 itaipu left 20:36 itaipu joined, zakharyas left 20:40 espadrine joined 20:41 itaipu left 20:42 cpage_ left, bpmedley joined
tinita zengargoyle: LibYAML is pasing now on travis (because I cheated) 20:42
seems the reason might indeed be a different version of libyaml (I did a dpkg -l in the .travis.yml) 20:43
20:52 travis-ci joined
travis-ci Doc build errored. Jan-Olof Hendig 'Fixed some issues, mostly relating to code example output' 20:52
travis-ci.org/perl6/doc/builds/242121000 github.com/perl6/doc/compare/bc247...2dcd305a3e
20:52 travis-ci left 20:58 setty1 left 21:02 cpage_ joined
Juerd In docs.perl6.org/language/list, "put an actual List into an @-sigiled variable" seems inaccurate. Binding doesn't put anything into anything, does it? 21:03
pilne how hard, and how ineficcient would it be to use perl6 to launch and manage instances of other things (like, node instances, python instances, haskell instances, etc.)?
skids Only in the semantic sense. 21:04
(^^Juerd)
pilne including marshaling data when required.
Juerd Besides that, I think that the text is generally way too complex. I'm not a native speaker of English, and have trouble reading the document.
zengargoyle tinita: cool. i wonder if the NativeCall version request stuff works. i still think it's sorta a bad idea to just ask for foo/libfoo.so/foo.dll or whatnot instead of finding foo.so.1.0.1 or something. the bare .so is usually just a link to the latest version if it exists at all without installing a -dev package.
Juerd skids: Sounds like an important sense to get right :)
21:05 mcmillhj left
skids Yeah, keeping the difference between containers and variables straight in the text is important. Maybe we should figure out which verbs to use consistantly for which operation. 21:06
Juerd skids: May I quote you in the ticket? 21:08
21:08 Cabanossi left
skids Anything I say on IRC is fair game. (gonna regret saying that some day :-) 21:09
21:09 Cabanossi joined
Juerd skids: Back when this channel was smaller, I said some personal things that later I asked to be removed from the public logs. This was before I was aware that logs would be published. In any case, I'm careful with copying what happens on IRC to other contexts... 21:10
21:12 cpage_ left
Juerd github.com/perl6/doc/issues/1378 21:14
21:16 cpage_ joined 21:22 cpage_ left
grondilu pmurias: hi, what's the status on the js port? 21:23
21:24 bdmatatu left 21:26 skids left
raschipi pilne: Perl6 is my favorite language for doing that at the moment, works fine. And tghere's even a framework for serious use called sparrowdo 21:29
bye
timotimo sparrowdo makes a good impression from afar, i haven't had a need for it yet so didn't actually test it 21:30
21:34 raschipi left 21:36 dibz` joined
lizmat blogs.perl.org/users/pawel_murias/2...tests.html # grondilu 21:37
21:39 cpage_ joined
lucs I don't know what "sink" is and at this point I'm (almost) too afraid to ask. 21:42
So I ask.
And also, maybe it should appear in the Glossary?
timotimo sink context is what happens to things you're getting returned from somewhere, but aren't assigning to something 21:46
lucs Hmm...
Similar to P5's void context? 21:48
timotimo i suspect so, but i'ven't written a line of p5 in my life :)
lucs :)
21:48 wamba left
timotimo a for loop in void context can immediately forget the value from the last statement in the block body 21:49
but in a nonsink context it has to remember all values to make a list
lucs Can you concoct a small illustration of each?
21:49 mcmillhj joined
timotimo m: for ^100_000_000 { $_ }; say now - INIT now 21:50
hm, that may have been too much though
m: for ^100_000 { $_ }; say now - INIT now
lucs That would be sink, righ?
timotimo right
camelia (timeout)WARNINGS for <tmp>:
Useless use of $_ in sink context (line 1)
WARNINGS for <tmp>:
Useless use of $_ in sink context (line 1)
0.056286
lucs Aha
timotimo m: my @foo = do for ^100_000 { $_ }; say now - INIT now
camelia 0.1198060
pmurias grondilu: I'm now working on fixing bugs and adding missing stuff (for example I'm currently working on getting temp to work)
lucs Ah, interesting. 21:51
21:51 rindolf left
lucs timotimo: Thanks! 21:51
21:52 Cabanossi left 21:54 mcmillhj left, Cabanossi joined 21:56 espadrine left 21:57 mcmillhj joined 21:59 aindilis left 22:01 pmurias left 22:04 dibz` left 22:05 cpage_ left 22:07 cpage_ joined 22:08 buggable left 22:09 buggable joined, ChanServ sets mode: +v buggable 22:10 ramortegui joined 22:14 john51 left, ChoHag left, john51 joined 22:15 travis-ci joined
travis-ci Doc build errored. Jan-Olof Hendig 'Changed formatting' 22:15
travis-ci.org/perl6/doc/builds/242174485 github.com/perl6/doc/compare/0f2dc...a0de80745a
22:15 travis-ci left 22:22 Guest20488 left 22:25 sufrostico left 22:34 sufrostico joined 22:38 sufrostico left 22:44 sufrostico joined
pilne .tell raschipi "thank you for the pointer to sparrowdo" 22:49
yoleaux pilne: I'll pass your message to raschipi.
22:55 colomon left 22:59 robertle left 23:01 mcmillhj left 23:11 mcmillhj joined, skids joined 23:15 mcmillhj left 23:27 mcmillhj joined 23:32 mcmillhj left 23:36 Cabanossi left 23:39 Cabanossi joined 23:48 mcmillhj joined 23:49 _4d47 left 23:52 mcmillhj left 23:53 cdg left 23:56 skids left