»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by moritz on 25 December 2014.
00:01 BenGoldberg joined 00:08 pmurias left 00:14 Mouq joined 00:16 fhelmberger joined
skids Sum:: += librhash support. Thankfully there are not as many hashing libs as hashing functions. 00:18
Of course I'll probably have to do one for OpenSSL libcrypto and one for that SSH standalone splinter of libcrypto 00:20
And at some point talk someone into being Sum::'s windows dev, cuz I aint gonna. 00:21
00:21 fhelmberger left
hoelzro .tell pmurias you said that the next bit of work is going to be around QASTNode; what exactly does that entail? 00:41
yoleaux hoelzro: I'll pass your message to pmurias.
00:43 diana_olhovik_ left 01:05 Alina-malina joined
psch yay, byte[] marshalling works now \o/ 01:07
now i just gotta dig up test cases for the 11 other possible typed arrays 01:08
oh, nvm, it's 11 including byte[] 01:09
and maybe i don't need SixModelObject[]..?
psch sleeps & 01:15
retupmoca skids: just did a panda install Sum - passes all tests on my Windows 8.1 machine 02:03
oh, looks like the NativeCall tests are disabled right now 02:06
skids Yeah, as once runtime is entered fails happen unless those libs are installed.
reupmoca++ thanks for testing. 02:07
02:07 MadcapJake left
skids damn I typoed retupmoca++ again 02:07
Mouq You reuped reupmoca? 02:08
skids Right now I am having fun fighting with a hinky NativeCall scnario: gist.github.com/skids/b33fcda50e7dad774835 02:16
02:17 fhelmberger joined 02:21 prime left 02:22 fhelmberger left 02:29 chenryn joined
skids Ah, it wasn't working because libmhash is broken. Heh. 02:32
02:59 adu joined 03:04 alini left 03:23 yeahnoob joined 03:26 prime joined, noganex joined
Mouq m: my $*THIS; sub term:<this> { $*THIS }; sub new(&fn, |c) { { my $*THIS = {} but role {method FALLBACK($name) is rw { self{$name} }}; fn(|c); $*THIS } }; sub Constructor(\attr) { this.foo = attr }; say new(&Constructor, "bar"); say new(&Constructor, "baz"); say this.perl 03:29
camelia rakudo-moar c453cd: OUTPUT«foo => bar␤foo => baz␤Any␤»
03:29 noganex_ left
Mouq (It could be `new Constructor("bar")`, with new as a macro, but quasi's don't work with blocks in them, which we'd need for lexical $*THIS) 03:31
03:56 anocelot joined 04:08 anocelot left 04:10 dustinm` joined, anocelot joined 04:13 btyler joined 04:19 anaeem1_ joined 04:21 dustinm` left 04:22 anaeem1_ left 04:23 anaeem1 joined, telex left 04:24 telex joined 04:34 kaleem joined 04:39 telex left 04:51 telex joined 05:07 mr-foobar left 05:13 kaleem left 05:24 BenGoldberg left 05:42 chenryn left 06:04 dustinm` joined 06:07 xfix joined 06:12 dustinm` left 06:13 chenryn joined 06:22 Akagi201 joined 06:28 jack_rabbit joined 06:29 dustinm` joined 06:32 Rounin joined, Mouq left 06:38 diana_olhovik_ joined 06:42 adu left 06:43 dustinm` left 06:45 dustinm` joined 06:49 chenryn left 06:50 kaleem joined 06:52 chenryn joined 06:53 jack_rabbit left
vendethiel .botsnack 06:58
yoleaux :D
vendethiel .tell pmurias "function foo(){}"
yoleaux vendethiel: I'll pass your message to pmurias.
06:59 vendethiel left 07:01 adu joined 07:06 gfldex joined 07:12 nbrown joined, nbrown left 07:14 alini joined 07:15 TimToady joined 07:16 asdf12z_ left, jack_rabbit joined 07:19 mj41 joined 07:21 mj41 left, xfix left 07:23 asdf12z_ joined 07:27 gfldex left 07:28 FROGGS_ left 07:29 jack_rabbit left 07:30 adu left 07:35 espadrine joined 07:37 Ugator joined 07:38 chenryn left 07:42 darutoko joined 07:45 chenryn joined 07:57 FROGGS joined 08:02 alini left 08:04 kjs_ joined, prime left 08:08 ab5tract joined 08:10 trone joined
[Tux] I cannot find it on doc.perl6.org: where can I see what can be used when I have CHECK in a class? 08:13
08:13 prime joined 08:14 Ugator left
moritz what you can use? every symbol that's in scope 08:15
[Tux] like the class (and its methods)?
moritz yes
classes are being built and composed at BEGIN time, so at CHECK time, everything should be rosy 08:16
08:16 rurban_ joined 08:17 Mouq joined
[Tux] gist.github.com/Tux/dfe0257c49f38641f84a 08:17
then I am missing something
FROGGS foo is a method, not a sub 08:18
moritz [Tux]: I've opened github.com/perl6/doc/issues/47 for you :-)
FROGGS at least, that's the first thing that comes to my mind
08:18 fhelmberger joined
[Tux] a method and a sub both are Routine, right? 08:18
moritz yes
but you can't refer to method foo simply by writing foo 08:19
methods live only in the method table
FROGGS [Tux]: but you call a method on its class or class instance
[Tux] I thought that the signature of alias would force it to be the method instead of a call to it 08:20
moritz alias(C.^find_method('foo'), < bar > )
[Tux]: the arguments are evaluated first, then bound
[Tux]: signature != p5 prototypes
[Tux] right
timotimo how do p5 prototypes behave?
ISTR something about changing how the parser treats a sub based on its prototype or something? 08:21
moritz timotimo: they modify parsing of the argument list
[Tux] and what if C is subclassed? Then C.^find_method will return the wrong foo?
08:21 Mouq left
moritz [Tux]: no 08:21
[Tux] ok
moritz [Tux]: TheSubclass.^find_method would return the wrong one
a class doesn't even know of its subclasses
08:22 fhelmberger left
[Tux] drat. Slang::Tuxic is not (yet) in effect inside CHECK :( :( 08:23
gist.github.com/Tux/22f8ced78cf9dc87db69 08:25
FROGGS but 'use' is BEGIN time...
08:25 kjs_ left
FROGGS [Tux]: the way you line up curlies makes it hard to read your code 08:26
[Tux] funny you say that. for me it is always vice versa :) 08:27
tux.nl/style.html if you want to know why 08:28
FROGGS [Tux]: well, that is something between you and the majority of the hackers :o)
[Tux] is well aware of that
missing :, gist.github.com/Tux/eacf46e310aed15795d1 works!!! :) :) 08:30
FROGGS ahh 08:31
glad you solved it
08:33 sqirrel__ joined 08:34 diana_olhovik_ left 08:37 andreoss joined
dalek kudo/newio: 756a4ac | lizmat++ | src/core/Array.pm:
[].VAR.name returns something more obviously wrong

Namely "$ANON_VAR__10". The "$x" seen originally, was an artefact of the name used of the variable used to itemize in the circumfix sub. Hopefully, we can 988984e | lizmat++ | src/core/Distro.pm: Introduce Distro.tmpdir
The logic for determining what a good temporary directory is, is really dependent on the Distro we're working under, not on the IO::Spec. One step closer to eradicating $*SPEC and IO::Spec!
08:39
lizmat sorry dalek 08:40
08:40 dalek joined, ChanServ sets mode: +v dalek 08:43 alini joined
masak good morning, #perl6 08:46
moritz good am, masak
08:47 Mouq joined, zakharyas joined
[Tux] callframe(0).annotations<line> is not valid in all contexts. is there a way to dynamically tell the current line? 08:51
or the current line of the caller
FROGGS $?LINE ?
that's not the caller though
08:53 chenryn left 08:54 chenryn joined
Mouq "Backtrace.new[mumble].line"? Not sure that's valid anywhere that callframe isn't, though 08:56
09:01 brrt joined 09:02 zakharyas1 joined
[Tux] In trying to slim down the situation that makes perl6 dump core, I found the combination that failed. 09:03
brrt which perl6... moar?
[Tux] putting that first though makes the script segfault somewhere else :(
moar
FROGGS [Tux]: what does make it crash? we need to ticket and resolv that 09:04
[Tux] jnthn knows, but I'll greate a gist where you can copy to try to reproduce. one moment ...
09:05 Mouq left
brrt :-) 09:05
09:08 Sqirrel_ left 09:09 espadrine left, kjs_ joined 09:12 sqirrel__ left
[Tux] gist.github.com/Tux/e398c043a80ecf498a05 09:13
including valgrind output
[Tux] leaves for $work 09:14
FROGGS [Tux]++ 09:17
Humbedooh walks 5 meters from home to work....done
FROGGS :/ 09:20
jnthn is kinda encouraged that the SEGV can be re-produced with a smaller test case; it reduces the chance it's a GC bug :)
Good morning, #perl6
FROGGS I have to walk 200x as much as Humbedooh :o(
morning jnthn
jnthn: I can golf that in a moment (in can I can reproduce in the first place)
jnthn FROGGS: OK. I'll look at it probably at the weekend; I'd like to focus on natives stuff today. 09:23
Also there's another strings bug I/someone needs to tackle.
09:23 ven joined
jnthn (RT'd by masak a while ago) 09:23
ven o/, #perl6
FROGGS ahh, will take a look when I have the chance 09:24
hi ven
jnthn FROGGS: I think there's also a macro in src/strings/ops.c that you can turn on, which does rope sanity checks after every operation.
FROGGS k 09:25
Humbedooh FROGGS: I suppose I could do the walk 200 times if that makes you feel any better :)
FROGGS *g*
not at all :P
jnthn Is this a bad time to mention I'm working at home today? :) 09:26
Also: nice, the MoarVM op-list parse/code-gen script (written in Perl 6) runs notably faster these days than in the past :) 09:27
09:27 zakharyas1 left
FROGGS jnthn: no, my mood is in quite a good shape :o) 09:27
09:27 rindolf joined
ven eh, scala-to-js compiler no longer experimental. moore altjs :P 09:32
FROGGS Program received signal SIGSEGV, Segmentation fault. 09:34
0x00007ffff79de055 in MVM_string_concatenate (tc=0x603690, a=0x7ffff6684cb8, b=0x0) at src/strings/ops.c:321
321 if (!IS_CONCRETE((MVMObject *)a) || !IS_CONCRETE((MVMObject *)b))
(b is NULL)
09:35 fhelmberger joined
masak shomehow read "which does rope salty checks", which gave him pause 09:37
jnthn FROGGS: Hmm. Wonder where it comes from... 09:38
FROGGS jnthn: the salty rope check does not hit fwiw
jnthn FROGGS: No, that looks like a straight "it's NULL" 09:40
09:40 spider-mario left
moritz salty licorice rope checks 09:40
FROGGS :S 09:41
jnthn Salty licorice is my favorite troll gift.
FROGGS MVM_SPESH_DISABLE=1 hides it
masak moritz: do they have those in .de? or is it just Scandinavia?
jnthn FROGGS: Oh, curious... 09:42
FROGGS MVM_JIT_DISABLE=1 does not hide it
FROGGS tests inline and osr 09:43
moritz masak: dunno, I don't like licorice :-)
dalek kudo/newio: 6a6f145 | lizmat++ | src/core/Process.pm:
Initialize $*TMPDIR from $*DISTRO.tmpdir
09:44
FROGGS jnthn: MVM_SPESH_INLINE_DISABLE=1 and MVM_SPESH_OSR_DISABLE=1 have no effect
arnsholt I think salty liquorice is mostly a Scandinavian/Nordic thing
lizmat eh, aren't you forgetting NL here ?
arnsholt And the Dutch
lizmat salty liquorice is also very much a Dutch thing
09:45 yeahnoob left
lizmat we even have the best salty liquorice in the world :-) 09:45
FROGGS lizmat: which is not a good thing :o) 09:46
lizmat it's *the* remedy for low blood pressure :-) 09:47
FROGGS I'll keep the low blood pressure instead, thanks :o) 09:49
09:51 pecastro joined 09:53 kaleem left, btyler left, dagurval_ left, Klaudioh left 09:54 btyler joined, dagurval joined, Klaudioh joined 09:55 abraxxa joined, wicope joined
dalek kudo/newio: 1aeeb95 | lizmat++ | src/core/Distro.pm:
Distro.tmpdir should return an .IO object
09:56
nine I have the name of a sub in a variable. How can I call the corresponding sub? 09:59
10:00 espadrine joined
mathw o/ 10:00
moritz nine: &::($name) 10:01
m: my $name = 'sin'; say &::($name)(pi)
camelia rakudo-moar c453cd: OUTPUT«1.22464679914735e-16␤»
lizmat m: my $a = sub { say "foo" }; $a() 10:02
10:02 dustinm` left
camelia rakudo-moar c453cd: OUTPUT«foo␤» 10:02
lizmat ah, name
grrr
nine moritz: thanks!
lizmat jnthn: is it correct that we still don't have an nqp:: op to follow a symlink ? 10:03
10:03 Bucciarati left
jnthn lizmat: Lemme check 10:04
10:04 avar left
jnthn I seem to recall a readlink at some point. 10:04
10:05 kaleem joined
moritz mlenz@mlenz-workstation:~/p6/rakudo/nqp (master)$ git grep readlink|wc -l 10:05
0
fwiw that's also the name I would have proposed :-)
jnthn I only see fileislink, symlink, and link
dalek line-Perl6: c57a1ec | (Stefan Seifert)++ | / (3 files):
Implement calling parameterless P6 functions from P5
10:06
lizmat so I guess it's still NYI
jnthn Probably we should have a readlink
10:07 kjs_ left
lizmat agree :-) 10:07
lizmat dives into nqp to see what would be needed 10:08
dalek p: 2071014 | lizmat++ | docs/ops.markdown:
Fix copy-pasto
10:09
jnthn lizmat: Well, needs VM-level addition first, I suspect. 10:11
github.com/libuv/libuv/blob/v1.x/i...uv.h#L1215 exists in libuv, which Moar uses for this stuff 10:12
10:12 kaleem left
lizmat ok, I'll follow the track laid out by "symlink" and try to follow in its footsteps :-) 10:13
10:13 alini left
jnthn OK. Probably you need 1) function in fileops.c (and mention it in fileops.h), 2) Add readlink op to src/core/oplist (instructions at the top for how), run tools/updateops.p6, 3) implement op in interp.c to just call the function you write in fileops.c 10:14
10:15 Bucciarati joined
FROGGS and important, add the stuff to interp.c to directly before the sp_* ops 10:15
10:16 kaleem joined
jnthn I think the instructions at the top say that :) 10:16
10:16 avar joined, avar left, avar joined
jnthn Also, the way it gives you link back looks REALLY funky. o.O 10:18
Grep for readlink in docs.libuv.org/en/latest/fs.html
lizmat hmm.... running tools/update_ops.p6 gives me only 1 op afterwards ? 10:20
jnthn lizmat: Not sure I follow
Can you gist me something? 10:21
lizmat Parsed 1 total ops from src/core/oplist
ah, could be I broke something in perl6 10:22
in the newio branch
jnthn That is entirely possible.
If you gist me a diff of yoru src/core/oplist I can sanity check that before you go digging. 10:23
dalek kudo/newio: 8a27ceb | lizmat++ | src/core/IO/Pathy.pm:
Oops, forgot .d
jnthn
.oO( salty check )
lizmat Parsed 670 total ops from src/core/oplist # much better :-) 10:24
jnthn Sounds more like it :)
nwc10 it is, if your op isn't this one: en.wikipedia.org/wiki/One_instructi...t_computer 10:25
lizmat jnthn: the diff after running upadte_ops.p6: gist.github.com/lizmat/a02f943058b0930ddd3e 10:28
seems like it got sorted somewhere in the middle ?? 10:29
10:29 pmurias joined, alini joined
jnthn lizmat: That's absolutely correct. 10:29
lizmat so what about keeping numbers the same for binary compatibility ? 10:30
(existing)
jnthn lizmat: The ops beyond that are ones that are never allowed to appear in bytecode files
pmurias .tell ven re jscript, I'm not spending much effort right now towards compatiblity with it, but I think in the future it might be important
yoleaux 00:41Z <hoelzro> pmurias: you said that the next bit of work is going to be around QASTNode; what exactly does that entail?
pmurias: I'll pass your message to ven.
06:58Z <vendethiel> pmurias: "function foo(){}"
jnthn lizmat: The sp_ prefix is for spesh
lizmat ah, ok :-)
jnthn lizmat: Those are ops that only the dynamic optimizer is allowed to insert. 10:31
lizmat I can commit this as adding a readlink stub, right ?
Ah, I need more
:-) 10:32
jnthn lizmat: I think you must add as stub in interp.c
lizmat yup
jnthn Otherwise the computed goto table will miss a label
lizmat indeed: src/core/oplabels.h:628:7: error: use of undeclared label 'OP_readlink' :-)
jnthn You'll add something like
OP(readlink):
MVM_exception_throw_adhoc(tc, "readlink NYI");
phone, brb 10:33
back 10:38
lizmat added stub now, and Moar compiles
jnthn Moar ops!
lizmat I guess I now need to add a QAST::MASTOperations.add_core_moarop_mapping to src/vm/moar/QAST/QASTOperationsMAST.nqp ? 10:41
(first trying to get the stub in all the way, before messing more with Moar / libuv internals)
FROGGS lizmat: aye 10:42
10:45 diana_olhovik joined 10:55 pecastro left 10:59 pecastro joined 11:01 brrt left, pecastro left 11:04 pecastro joined
ab5tract does anyone know why sillymoose hasn't released Module::Minter into the ecosystem? 11:08
github.com/dnmfarrell/Module-Minte...Minter.pm6
(i think that's sillymoose, but maybe i am wrong)
11:15 bsh joined 11:16 kjs_ joined
ab5tract btw, digging into channels and supplies at $day_job with btyler. going to see if we can make that a $day-job sooner rather than later :) 11:16
moritz ab5tract: if you have any qualms with the docs for Supply or Channel on doc.perl6.org, please let me know 11:19
ab5tract: (or open github issues about them)
ab5tract moritz: much appreciated. already enjoying the progress that has been made on them already 11:20
what i really need is an open ticket on myself, because i'm still new to trying to think in this way :)
jnthn points out wiki2.enlightenedperl.org/index.php...Ideas_Page 11:25
Wonder if we should migrate our ideas list there, or just link it from there? Maybe better for visibility to do the latter.
uh
the former 11:26
gah :)
11:29 bsh left 11:30 telex left 11:32 telex joined
ab5tract okay, first $ab5tract-problem .. how to construct a Promise such that it will call $channel.close at a specific time, such that we can use $channel.closed as a condition in a loop ( 'until $channel.closed' ) 11:43
but without wrapping the whole thing in an await 11:44
dalek p: 51b308b | lizmat++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Add mapping for nqp::readlink() on Moar
11:46
ab5tract paste.booking.com/5wshk@raw
but we just found $supply.Channel coercion, so that might help :)
moritz "The connection to the server was reset while the page was loading."
ab5tract: is that a private server? 11:47
Promise.in(15).then({ $channel.close })
ab5tract yes, sorry
but that's time based 11:48
right?
moritz yes
ab5tract gist.github.com/anonymous/a624ddbed08512749b80
ven pmurias: I am 100% convinced is irrelevant. mind explaining your stance?
yoleaux 10:30Z <pmurias> ven: re jscript, I'm not spending much effort right now towards compatiblity with it, but I think in the future it might be important
11:49 travis-ci joined
travis-ci NQP build failed. Elizabeth Mattijsen 'Add mapping for nqp::readlink() on Moar' 11:49
travis-ci.org/perl6/nqp/builds/49729260 github.com/perl6/nqp/compare/20710...b308b775af
11:49 travis-ci left
moritz ab5tract: Promise.alloff((^10).map: { ...}).then({$c.close}) 11:49
ab5tract: also perl6advent.wordpress.com/2014/12/...eepy-kind/ 11:53
11:54 sqirrel__ joined 11:55 ven is now known as ven-, noganex left, Ven joined, noganex joined 11:56 bonsaikitten left 11:57 xiaomiao joined
ab5tract moritz: yup, i've got all the advents and docs open :) 11:58
btyler make that two of us
ab5tract gist.github.com/ab5tract/e214eccb652cfb6e514f
11:59 isacloud left, ggoebel111111113 left, esaym153 left
ab5tract so the allof just about solves it, but i end up having to do some non-perl6-y feeling "guard guarding" to avoid the run time error 11:59
11:59 ggoebel111111113 joined 12:00 sivoais left, simcop2387 left, esaym153 joined 12:01 arnsholt left, isacloud joined, sjn joined 12:02 simcop2387 joined
moritz ab5tract: well, doing a loop is the wrong thing 12:02
12:02 arnsholt joined
moritz ab5tract: if you await the alloff promise, you know know you're done 12:02
ab5tract yeah, but then 12:03
... hmmm ... 12:04
moritz ab5tract: or if you act on the things as they come in, use a Supply
btyler this (using a supply instead of a channel) does what we expected. is this the Right Way: gist.github.com/kanatohodets/b97a0...7c2f10389f ?
moritz *if you want to act
btyler heh, lost the race :)
12:04 lizmat_ joined
moritz btyler: yes, that's how I'd do it 12:04
12:05 dalek left
pmurias Ven: internet explorer has a fair amount of market share 12:05
12:05 djanatyn left, nyuszika7h joined
moritz btyler: and you won the race for the code, just lost the race for advise :-) 12:06
pmurias Ven: if we don't support JScript, rakudo-js generated code will not run in internet explorer
Ven pmurias: IE is javascript, not jscript, really 12:07
12:07 lizmat left
Ven pmurias: quirks that jscript have introduced are not in use anymore. (stuff as in "foo() = 5") 12:07
ven- and most of the others bug I'm always trying to avoid only exist up to ie6 12:08
12:08 lizmat_ is now known as lizmat
lizmat hmm... appears I need to bump NQP first 12:08
moritz lizmat: bump MOAR first in NQP 12:10
lizmat need to fix Moar (again) first, then I'll bump :-)
12:10 dalek joined, ChanServ sets mode: +v dalek
moritz ok :-) 12:10
12:12 [Coke]_ joined, kaleem left 12:13 sivoais joined, [ptc]_ joined, nine_ joined, pmurias_ joined, djanatyn joined 12:14 diegok joined, rurban__ joined, broquain1 joined 12:16 pmurias_ left, pmurias_ joined 12:17 pmurias left, pmurias_ is now known as pmurias
pmurias Ven: isn't JScript the name of the JavaScript engine inside Internet Explorer 12:18
Ven pmurias: no, it's chakra 12:19
pmurias: jscript is what wsh uses
12:19 Klaudioh left, btyler left, rurban_ left, Akagi201 left, anocelot left, amalia left, cdc left, charsbar_ left, Ulti left, [ptc]_ is now known as [ptc]
Ven (window script host) 12:19
12:19 Akagi201 joined, rurban joined
pmurias that's not supported 12:19
12:21 cdc joined, Klaudioh joined, btyler joined, anocelot joined, amalia joined, charsbar_ joined, Ulti joined, Aaron`J joined, revdiablo joined, pnu joined, grep0r joined, japhb joined, yogan_ joined, Spot__ joined, ggherdov joined
pmurias Ven: what I mostly care about supporting is commonly used browsers/node.js/and the thing facebook will be using for react.js native 12:22
Ven: other things will be supported if someone else is willing to either put in the work or convince me why it's important 12:23
12:23 grep0r left 12:24 grep0r joined, cdc is now known as Guest6226
pmurias Ven: wikipedia refers to the internet explorer JavaScript as JScript 12:24
dalek p: 9f4ebea | lizmat++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION to get readlink stub
12:25
12:25 kjs_ left
Ven pmurias: ... but nobody else. 12:27
it's what they used to have when ecma didn't exist.
pmurias Ven: but it seems wikipedia is being more and more controlled by shady/stupid people subverting the internal editiorial processes so it might not be trusted
Ven pmurias: I've stopped trusting wikipedia on topics I'm certain of long ago :P
.oO( when they started adding "isomorphic javascript"
12:28
12:28 travis-ci joined
travis-ci NQP build passed. Elizabeth Mattijsen 'Bump MOAR_REVISION to get readlink stub' 12:28
travis-ci.org/perl6/nqp/builds/49732627 github.com/perl6/nqp/compare/51b30...4ebea96839
12:28 travis-ci left
pmurias Ven: what's isomorphic javascript 12:29
?
12:29 chenryn left
Ven pmurias: "javascript running both on the client and the server". or, rather, people trying to use words they don't understand... 12:30
12:31 xfix joined
nine_ Ven: back in ye olde days IE's scripting really was called JScript. 12:32
Ven nine_: yes. I said "up to ie6"
dalek line-Perl6: 783e653 | (Stefan Seifert)++ | / (4 files):
Support passing string arguments to P5 functions called from P6

Promoted Inline::Perl6Helper to a proper class that holds a pointer to my_perl and pass my_perl to all C wrappers.
Allows Inline::Perl6 to be used from multiple P5 interpreters in the same process and allows re-using unmodified C code from Inline::Perl5.
12:33
12:34 Ugator joined 12:36 dj_goku_ left, dj_goku joined 12:39 rmgk_ joined, rmgk left, rmgk_ is now known as rmgk
ab5tract m: sub dummy-id { return (^10).roll(*).join }; say dummy-id 12:43
camelia rakudo-moar c453cd: OUTPUT«(timeout)»
ab5tract ^^ times out locally as well 12:44
moritz ab5tract: yes, .roll(*) is an infinite list
ab5tract: joining that takes infinite time 12:45
ab5tract m: say (^10).roll(*).join
camelia rakudo-moar c453cd: OUTPUT«(timeout)»
moritz m: say (^10).roll(*)[^20]
camelia rakudo-moar c453cd: OUTPUT«4 8 5 6 5 1 3 3 9 2 3 9 5 6 8 7 4 7 4 0␤»
ab5tract how bizare.. that has returned correctly for me before
moritz ab5tract: maybe you meant .pick(*)? or .roll(10)?
ab5tract moritz: i meant the latter, yeah. is there a shorthand for that? 12:46
moritz ab5tract: no
ab5tract (and i see now that when it was returning, it was the .pick(*) version)
moritz there's nothing intrinsic in a 10-sided die that makes it more natural to roll it 10 times than any other number 12:47
12:49 skids left
ab5tract moritz: agreed, still i expect to see a fair amount of @things.roll( +@things ). but i'm not complaining nor taking the position that such is wrong 12:50
moritz ab5tract: I don't expect that, fwiw 12:52
ab5tract: my experience with rolling dice is that I use 1, 2 or 3 dice much more often than 6 or 20 :-)
12:55 anaeem1 left
ab5tract moritz: not a fan of 2nd edition Shadowrun then? ;) 12:55
12:57 Akagi201 left
moritz ab5tract: no, more Dark Eye (mostly popular in Germany) 12:58
psch o/
13:02 dustinm` joined
dalek kudo-star-daily: bf07e36 | coke++ | log/ (9 files):
today (automated commit)
13:03
nine_ moritz: Lilyhammer++ :)
13:03 [Coke]_ is now known as [Coke]
jnthn nine_++ # hacking on Inline::Perl6 13:04
13:09 dustinm` left
colomon wait, is that a p5 module? 13:13
nine_ colomon: yes
colomon sweet 13:14
moritz nine_: glad you like it 13:18
ab5tract nine_: i noticed last night that there is a mismatch in argument passing with Inline::Perl5 13:20
nine_ ab5tract: care to elaborate? 13:21
ab5tract nine_: of course :)
use Module:from<Perl5>; Module.method_which_takes_@_and_puts_it_in_a_hash( key1 => "thing", key2 => "other_thing" ) 13:23
i had to rewrite it as 13:24
Module.method_which_takes_@_and_puts_it_in_a_hash( "key1", "thing", "key2", "other_thing" )
btyler what's the perl6 for this: my %foo = (a => 1, b => 2); %foo{qw(a b)}; #gives (a, 1, b, 2) -- the key/value pair hash slice 13:25
ab5tract so perhaps some extra sugar around the FALLBACK code
nine_ ab5tract: oh yes, there's no multi method p6_to_p5 for Pairs yet. Should be trivial to implement.
moritz that's not an argument passing mismatch, more a mismatch between p5's and p6's => operator
btyler: %foo<a b>:p
btyler ah ha, an adverb
lovely
FROGGS m: my %foo = a => 1, b => 2; say %foo<a b>
camelia rakudo-moar c453cd: OUTPUT«1 2␤»
moritz m: my %foo = (a => 1, b => 2); say %foo<a b>:p.perl
camelia rakudo-moar c453cd: OUTPUT«===SORRY!=== Error while compiling /tmp/csQFPqS4ty␤Two terms in a row␤at /tmp/csQFPqS4ty:1␤------> %foo = (a => 1, b => 2); say %foo<a b>:p⏏.perl␤ expecting any of:␤ infix stopper␤ infix o…»
FROGGS m: my %foo = a => 1, b => 2; say %foo<a b>:p
camelia rakudo-moar c453cd: OUTPUT«a => 1 b => 2␤»
moritz m: my %foo = (a => 1, b => 2); say (%foo<a b>:p).perl 13:26
ab5tract moritz: it doesn't seem to affect anything in other places
camelia rakudo-moar c453cd: OUTPUT«("a" => 1, "b" => 2)␤»
moritz m: my %foo = (a => 1, b => 2); say (%foo<a b>:kv).perl
camelia rakudo-moar c453cd: OUTPUT«("a", 1, "b", 2)␤»
btyler perfect, thanks! moritz++/FROGGS++
dalek p: 38cd1f0 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/BootJavaInterop.java:
Implement marshalling of listy Types to typed Java arrays.
ab5tract and yes, the root of the mismatch stems from => being a real thing in perl 6, and not a fat comma
moritz btyler: :p for pair objects, :kv for keys/values list interleaved
m: my @a = (a => 1, b => 2); say @a.elems; # for ab5tract 13:27
camelia rakudo-moar c453cd: OUTPUT«2␤»
ab5tract moritz: are you implying that i solved this without understanding that? :P
moritz $ perl -wE 'my @a = (a => 1, b => 2); say scalar @a'
4
ab5tract: yes
ab5tract i know the differences, i'm saying that i've only encountered it in Inline::Perl5 wrt to argument passing 13:28
moritz: that's pretty uncharitable man
i didn't just pull the solution out of my ass
FROGGS *g*
moritz ab5tract: why? it shows I have high confidence in your problem solving ability :-)
ab5tract well, that just proves you doubly wrong ;P 13:29
13:30 sqirrel__ left 13:31 bcode left 13:32 ven- left 13:33 bcode joined
ab5tract didn't realize that being accused of not understanding lists in perl 5 would be such a trigger 13:33
13:33 bcode left
moritz didn't do such a thing 13:35
hoelzro o/ #perl6
13:36 bcode joined
jnthn o/ hoelzro 13:39
13:47 kaleem joined
ab5tract $supply.emit([ @array, %hash ]); # legal ? 13:48
moritz yes 13:50
jnthn Sure, you can emit whatever object you like
(Just as you can take whatever you like.)
ab5tract we are getting a strange error: "cannot stringify this" which appears to trigger when we use $supply.emit in that way
jnthn m: my $s = Supply.new; $s.emit([ my @a, my %h ]); # golf? 13:51
camelia ( no output )
ab5tract trying to gold this now
*golf
jnthn m: my $s = Supply.new; $s.tap(&say); $s.emit([ my @a, my %h ]); # golf? 13:52
camelia rakudo-moar c453cd: OUTPUT«␤»
jnthn m: my $s = Supply.new; $s.tap(*.perl.say); $s.emit([ my @a, my %h ]); # golf?
camelia rakudo-moar c453cd: OUTPUT«[]␤»
jnthn OK, I'll leave you to golf :)
13:54 zakharyas left
hoelzro pmurias: did you see my message about what needs to be done for QASTNode? 13:54
13:56 rindolf left, zakharyas joined
pmurias hoelzro: hi 13:56
hoelzro: checking...
13:59 sqirrel__ joined
ab5tract rindolf 13:59
rindolf's part message always catches my eye, but i'll never understand
hoelzro pmurias: there's no rush, I just wanted to talk about it so I have something to work on after work today =)
pmurias hoelzro: nqp::{istype,clone,curlexpad,findmethod} 14:00
hoelzro pmurias: awesome, thanks!
FROGGS ab5tract: same for me :o)
Ven ab5tract: summer glau's the "crazy" character in firefly. she's apparently given extraordinary powers by her fans :o) 14:02
well, that's a misuse of "given". should be "attributed"
btyler m: my $sup = Supply.new; $sup.tap: -> [@foo] { say "yay"; } $sup.emit([1, 2]);
camelia rakudo-moar c453cd: OUTPUT«===SORRY!=== Error while compiling /tmp/vgqIBOccTI␤Two terms in a row␤at /tmp/vgqIBOccTI:1␤------> new; $sup.tap: -> [@foo] { say "yay"; } ⏏$sup.emit([1, 2]);␤ expecting any of:␤ infix stopper␤ …»
btyler moment, totally unrelated to supplies
m: my $sup = Supply.new; $sup.tap: -> [@foo] { say "yay"; }; $sup.emit([1, 2]); 14:06
camelia rakudo-moar c453cd: OUTPUT«cannot stringify this␤ in block <unit> at /tmp/gYK_YESL8k:1␤␤»
btyler jnthn: ^
and maybe this is ab5tract and I totally failing to understand something, but in any case the error is LTA 14:07
psch m: my $f = -> [@a] { say "ok" }; $f()
camelia rakudo-moar c453cd: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in block <unit> at /tmp/eXB65z1YMz:1␤␤»
psch m: my $f = -> [@a] { say "ok" }; $f([1,2,3])
camelia rakudo-moar c453cd: OUTPUT«cannot stringify this␤ in block <unit> at /tmp/eh5vNIjRF3:1␤␤»
psch m: my $f = -> @a { say "ok" }; $f([1,2,3])
jnthn btyler: It looks like a problem in error reporting
camelia rakudo-moar c453cd: OUTPUT«ok␤»
moritz m: my $sup = Supply.new; $sup.tap: -> @foo { say "yay"; }; $sup.emit([1, 2]);
camelia rakudo-moar c453cd: OUTPUT«yay␤»
jnthn The unpack is wrong
moritz btyler: if you do the signature correct, it works :-) 14:08
14:08 anaeem1 joined
ab5tract yup :) 14:08
btyler right, figured we had something backwards
moritz but yes, the error message is LTA
ab5tract m: my $sup = Supply.new; $sup.tap: -> [@foo] { say "yay"; }; $sup.emit([[1]]); # works
camelia rakudo-moar c453cd: OUTPUT«yay␤»
Juerd Speaking of unpack, does Perl 6 have something like Perl 5's unpack?
ab5tract m: my $sup = Supply.new; $sup.tap: -> [@foo] { say "yay"; }; $sup.emit([1]); # LTA
camelia rakudo-moar c453cd: OUTPUT«cannot stringify this␤ in block <unit> at /tmp/R7VyJmaeaO:1␤␤»
ab5tract just for the record, this becomes a lot more obvious once it's golfed ;) 14:09
moritz Juerd: it has the beginnings of something like that, yes 14:10
Juerd: but the plan is to do it a bit differently; more like the nativecall interface
[Coke] has stopped puking, sleeping, and is now, tentatively, at $dayjob. 14:13
Juerd moritz: I see. 14:14
Things like N/a is where Perl 5's unpack really shines and saves you a lot of work.
jnthn [Coke]: That does sound like an improvement. 14:15
14:16 Alina-malina left
[Coke] jnthn: except for the dayjob part! ;) 14:16
jnthn tbh, I find pretty much every aspect of my dayjob preferable to puking... :P 14:18
nwc10 can I remind you of that next time the coffee catches you out? 14:19
jnthn Cold coffee doesn't taste *that* bad... 14:21
14:22 _mg_ joined
ab5tract okay, so i've re-golfed the "issue" we were running into 14:23
i think it is less straight-forward
but prefacing it with "i'm not sure that this is wrong"
14:23 Bowman42 joined
ab5tract m: my @a = <list of things>; my %h = %( hash => "of", things => "yup" ); my $sup = Supply.new; $sup.tap: -> [@a,%h] { say "yay"; }; $sup.emit([@a, %h]); # cannot stringify 14:24
camelia rakudo-moar c453cd: OUTPUT«cannot stringify this␤ in block <unit> at /tmp/B8ASweYEh9:1␤␤»
pmichaud Juerd: doc.perl6.org/routine/unpack # maybe 14:25
ab5tract m: my @a = <list of things>; my %h = %( hash => "of", things => "yup" ); my $sup = Supply.new; $sup.tap: -> [@a,%h] { say "yay"; }; $sup.emit([ $@a, $%h ]); # itemize first
camelia rakudo-moar c453cd: OUTPUT«yay␤»
pmichaud good morning, #perl6
jnthn morning, pmichaud o/
Juerd pmichaud: It's a start
jnthn ab5tract: The [...] composer flattens 14:26
ab5tract: Try $sup.emit([$@a, $%h])
nwc10 good UGT, Pm
ab5tract jnthn: see my second working example :D 14:27
okay, so that explains it
jnthn ab5tract: hah, I fixed a compile error between when I read your question and finished typing my answer..so didn't notice ;) 14:28
ab5tract jnthn++ # a hero of mine
FROGGS *g*
14:29 _mg_ left
PerlJam greetings #perl6 14:29
psch jnthn: the "cannot stringify" comes from $error[0] in the subsig binding code. .HOW.name on that $error[0] still can't stringify, which i don't understand :) 14:30
ab5tract on a related note, we are having an interesting time trying to discuss $@a (aka []) without saying arrayref
psch ab5tract: itemized array?
but i don't think [] is equivalent to $@a
jnthn psch: Hmmm...odd
ab5tract psch: i meant it as a structural reference 14:31
but itemized array just sounds weird
psch ab5tract: oh, right, "how it behaves in assignment" and that kind of stuff. right
ab5tract when you have an "itemized list" IRL, you are talking about the elements of the list being itemized. not the list itself
psch ah, right. that discussion happened a few weeks back iirc. itemified is the only alternative i remember but that's slightly awkward 14:32
ab5tract psch: but yeah, "itemized array" has been one of the phrases we've been trying
14:34 Ven left 14:35 skids joined
psch ab5tract: clog research reveals that raiph++ suggests "as [an]? item", and jnthn++ doesn't mind *ref. i might have imagined someone suggesting "itemified" :) 14:38
ah, no, that was timotimo++
or maybe masak++
14:39 Rounin left
psch jnthn: i'm not sure how to follow that $error around through the binder code 14:39
dalek p/native-ref: 4c6574f | jnthn++ | src/vm/moar/QAST/QASTOperationsMAST.nqp:
Map some native ref nqp::ops.
jnthn psch: Oh, I see it... 14:41
14:41 sqirrel__ left
jnthn Note that the thing that top-level handles the error is: 14:41
nqp::isinvokable(@error[0]) ?? @error[0]() !! nqp::die(@error[0]);
Things that want to throw a typed exception do so by putting it into $error
psch ooh 14:42
jnthn So assuming we have a string is errorneous
psch right, so subsig should do the same check?
isinvokable that is
jnthn Search for X::TypeCheck::Binding in BOOTSTRAP.nqp to see where it happens
Well, we could do that but...we still have no good way to attach the "oh btw it's in a subsig" ino
jnthn glances at moritz++, resident typed exceptions expert :) 14:43
s/ino/info/
14:44 H2O1 joined 14:49 anaeem1 left 14:50 H2O1 left 14:54 _mg_ joined 14:57 abraxxa left
moritz well, I'd just add an attribute for "in subsignature for parameter $parameter" 14:59
to X::TypeCheck::Binding
or an array, if we allow arbitrarily nested subsigs
14:59 amalia is now known as amaliapomian
jnthn moritz: X::TypeCheck::Binding is kinda not specific to signatures, though? 15:00
moritz: I was wondering if mixing in a role might be a way to go...
moritz jnthn: right, we should maybe start with a signature-specific error type 15:03
jnthn: mixing in things on the fly sounds a bit too spooky for me :-)
15:04 _mg_ left
psch m: sub f(Int $x) { }; { EVAL "f('foo')"; CATCH { default { .perl.say } } } 15:06
camelia rakudo-moar c453cd: OUTPUT«X::TypeCheck::Argument+{X::Comp}.new(filename => "EVAL_0", line => 1, column => Any, modules => Array.new(), is-compile-time => Bool::True, pre => "<BOL>", post => "f('foo')", highexpect => Array.new(), protoguilt => Bool::False, arguments => Array.new("st…»
[Coke] protoguilt? 15:07
15:07 kjs_ joined
dalek p: eb40eb0 | lizmat++ | tools/build/MOAR_REVISION:
Bump Moar to get proper readlink(), FROGGS++
15:07
[Coke] lizmat++ 15:08
psch m: proto foo($) {*}; multi foo(Int $) { "Int" }; { EVAL 'foo(1,2)'; CATCH { default { .perl.say } } } 15:09
camelia rakudo-moar c453cd: OUTPUT«X::TypeCheck::Argument+{X::Comp}.new(filename => "EVAL_0", line => 1, column => Any, modules => Array.new(), is-compile-time => Bool::True, pre => "<BOL>", post => "foo(1,2)", highexpect => Array.new(), protoguilt => 1, arguments => Array.new("Int", "Int")…»
psch [Coke]: "does the proto prevent dispatch" i suppose 15:10
'cause &foo in that example can never take two scalars, no matter their type
the .message has «$.protoguilt ?? "Calling proto of '" !! "Calling '"» 15:12
andreoss m: my \n = 0; say n...(n+10);
camelia rakudo-moar c453cd: OUTPUT«0 1 2 3 4 5 6 7 8 9 10␤»
15:15 kaleem left
andreoss m: my \n = 2; say n, 2*n, 3*n ... n+10; 15:18
camelia rakudo-moar c453cd: OUTPUT«2 4 6 8 10 12␤»
andreoss m: my \n = 2; say n, 2*n, 3*n ... n;
camelia rakudo-moar c453cd: OUTPUT«2␤»
andreoss m: my \n = 2; say n, 2*n, 3*n ... n+1;
camelia rakudo-moar c453cd: OUTPUT«2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 1…»
andreoss m: my \n = 2; say n, 2*n, 3*n ... n+3; 15:19
camelia rakudo-moar c453cd: OUTPUT«2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 1…»
andreoss m: my \n = 2; say n, 2*n, 3*n ... 3;
camelia rakudo-moar c453cd: OUTPUT«2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96 98 100 102 104 106 108 110 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146 148 150 152 154 1…»
15:19 mr-foobar joined
dalek kudo/nom: 8e91140 | lizmat++ | tools/build/NQP_REVISION:
Bump NQP to get nqp::readlink
15:20
moritz andreoss: when the limit isn't matched exactly, it goes on forever
nine_ m: EVAL 'sub foo() { say "foo!"; }'; EVAL 'foo();'; 15:21
camelia rakudo-moar c453cd: OUTPUT«===SORRY!=== Error while compiling EVAL_1␤Undeclared routine:␤ foo used at line 1␤␤»
nine_ why is that? ^^^
jnthn The code in an EVAL is its own lexical scope
nine_ jnthn: is there any way around that? 15:22
dalek href="https://perl6.org:">perl6.org: fb2c904 | paultcochrane++ | README.md:
Add link to the #perl6 irc channel
href="https://perl6.org:">perl6.org: e798885 | paultcochrane++ | README.md:
Add link to browsershots.org
href="https://perl6.org:">perl6.org: 3051f25 | paultcochrane++ | README.md:
Add formatting to emphasise text in README
jnthn m: EVAL 'our sub foo() { say "foo!"; }'; EVAL 'OUR::foo();';
psch there is :context on EVAL, but i don't understand how it works
camelia rakudo-moar c453cd: OUTPUT«Cannot find method 'Any'␤ in block <unit> at EVAL_1:1␤ in any <unit-outer> at EVAL_1:1␤ in sub EVAL at src/gen/m-CORE.setting:795␤ in block <unit> at /tmp/7glix27HYJ:1␤␤»
jnthn Hmm
moritz psch: it's for setting the outer scope
jnthn m: EVAL 'our sub foo() { say "foo!"; }'; EVAL 'GLOBAL::foo();';
camelia rakudo-moar c453cd: OUTPUT«Could not find symbol 'foo'␤ in method <anon> at src/gen/m-CORE.setting:14599␤ in any find_method_fallback at src/gen/m-Metamodel.nqp:2741␤ in any find_method at src/gen/m-Metamodel.nqp:988␤ in block <unit> at EVAL_1:1␤ in any <unit-outer> a…»
moritz psch: you can say EVAL($string, :context(CALLER)) or so 15:23
andreoss moritz: is there something like n, 2*n, 3*n ... * where n < limit ?
FROGGS m: EVAL 'our sub foo() { say "foo!"; }'; EVAL '&GLOBAL::foo();';
camelia rakudo-moar c453cd: OUTPUT«foo!␤»
FROGGS m: EVAL 'our sub foo() { say "foo!"; }'; EVAL '&OUR::foo();';
camelia rakudo-moar c453cd: OUTPUT«foo!␤»
jnthn Oh, of course :)
FROGGS++
psch moritz: oh, i see
FROGGS :o)
moritz m: my \n = 5; say n, 2*n, 3n ... * >= 70 15:24
camelia rakudo-moar c453cd: OUTPUT«===SORRY!=== Error while compiling /tmp/EwphE6AQwa␤Confused␤at /tmp/EwphE6AQwa:1␤------> my \n = 5; say n, 2*n, 3⏏n ... * >= 70␤»
moritz m: my \n = 5; say n, 2*n, 3* n ... * >= 70
camelia rakudo-moar c453cd: OUTPUT«5 10 15 20 25 30 35 40 45 50 55 60 65 70␤»
15:24 kaare_ left
moritz andreoss: ^^ 15:24
andreoss thanks
moritz m: my \n = 5; say n, 2*n, 3* n ...^ * >= 70 # excluding the end
camelia rakudo-moar c453cd: OUTPUT«5 10 15 20 25 30 35 40 45 50 55 60 65␤»
15:24 Mouq joined
FROGGS m: my \n = 5; say n, 2*n, 3* n ^... * >= 70 # also nice 15:25
camelia rakudo-moar c453cd: OUTPUT«===SORRY!=== Error while compiling /tmp/ce82xYT8pZ␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/ce82xYT8pZ:1␤------> my \n = 5; say n, 2*n, 3* n ^... ⏏* >= 70 # also nice␤»
FROGGS err
nine_ So it seems that $p6.call(...) needs a $scope parameter. Cause builtins are in CORE::, not in GLOBAL:: or OUR:: 15:26
psch m: say &say.package.^name
camelia rakudo-moar c453cd: OUTPUT«GLOBAL␤»
nine_ Unhandled exception: No such symbol '&::GLOBAL::say' 15:27
moritz m: say &MY::say
psch the first two : look wrong to me
camelia rakudo-moar c453cd: OUTPUT«(Any)␤»
psch m: say &GLOBAL::say.perl
camelia rakudo-moar c453cd: OUTPUT«Any␤»
moritz m: MY::('&say')(52)
camelia rakudo-moar c453cd: OUTPUT«===SORRY!===␤No such symbol 'MY::&say'␤»
moritz huh
psch m: say &UNIT::say
camelia rakudo-moar c453cd: OUTPUT«(Any)␤»
psch m: say &CORE::say 15:28
camelia rakudo-moar c453cd: OUTPUT«use of uninitialized value $name of type Any in string context in block <unit> at /tmp/GTQpdeT3nv:1␤␤sub say (Any |) { #`(Sub|49029848) ... }␤»
psch m: say &CORE::say.perl
camelia rakudo-moar c453cd: OUTPUT«use of uninitialized value $name of type Any in string context in block <unit> at /tmp/ovKZVnh6yy:1␤␤sub say (Any |) { #`(Sub|60298008) ... }␤»
dalek c: e73ce03 | paultcochrane++ | lib/Language/modules.pod:
Replace github by GitHub

This is how the GitHub people render the name.
c: 43b1c8f | paultcochrane++ | lib/Language/modules.pod:
Link to markdown syntax documentation
c: e879e7b | paultcochrane++ | lib/Language/modules.pod:
Minor typographical updates
jnthn psch: The .package simply means "what package were we in when the thing was declared"; whether it was actually installed in the package is a separate question.
moritz [ptc]++
nine_ m: my $name = "say"; &CORE::($name)("yes!"); 15:29
camelia rakudo-moar c453cd: OUTPUT«yes!␤»
nine_ m: my $name = "say"; &GLOBAL::($name)("yes!");
camelia rakudo-moar c453cd: OUTPUT«===SORRY!===␤No such symbol '&::GLOBAL::say'␤»
moritz m: &::('say')(42)
camelia rakudo-moar c453cd: OUTPUT«42␤»
moritz nine_: &::(...) gives you the same look up that 'say()' does
15:29 xinming_ joined, gfldex joined 15:30 Ven joined
moritz nine_: that is, first in the lexical scopes, then in CORE 15:30
nine_: 'our' isn't searched by default in Perl 6
andreoss m: my @x := n, 2*n, 3* n ... * >= 70; say @x[* - 1];
camelia rakudo-moar c453cd: OUTPUT«===SORRY!=== Error while compiling /tmp/71ZfPTRgkg␤Undeclared routine:␤ n used at line 1␤␤»
nine_ m: EVAL 'our sub foo() { say "foo!"; }'; my $name = 'foo'; &::($name)();
camelia rakudo-moar c453cd: OUTPUT«foo!␤»
andreoss m: my @x = n, 2*n, 3*n ... * >= 70; say @x[* - 1]; 15:31
camelia rakudo-moar c453cd: OUTPUT«===SORRY!=== Error while compiling /tmp/2iJdxjuyZ_␤Undeclared routine:␤ n used at line 1␤␤»
nine_ moritz: ah, seems like &::(...) already does enough magic for me
moritz andreoss: add your 'my \n'
skids m: my \n = 2; my @x = n, 2*n, 3*n ... * >= 70; say @x[* - 1]
camelia rakudo-moar c453cd: OUTPUT«70␤»
15:31 pierrot left 15:32 pierrot joined
andreoss stupid me 15:32
15:32 profan joined
dalek c: 46b4504 | paultcochrane++ | lib/Language/modules.pod:
Further typographical and formatting updates
15:34
15:35 andreoss left 15:37 Mouq left 15:45 andreoss joined
andreoss "@phi[k] = @phi[k] - (@phi[k] div n)"" that is 30 times faster than "@phi[k] -= (@phi[k] div n);" 15:46
15:47 rindolf joined
dalek kudo/newio: 8e91140 | lizmat++ | tools/build/NQP_REVISION:
Bump NQP to get nqp::readlink
15:48
kudo/newio: 50a0dae | lizmat++ | tools/build/NQP_REVISION:
Merge branch 'nom' into newio
line-Perl6: 167cbae | (Stefan Seifert)++ | / (2 files):
Support passing all non-object data types from P6 to P5

Int, Book, Num, Rat, blob8, Hash, Positional
15:50
jnthn andreoss: Yeah, the optimizer doesn't make a great job of those just yet. The faster form is not only directly cheaper, but also will get better treatment from dynamic optimization too. 15:51
jnthn wonders if we've a perl6-bench entry for that yet
FROGGS thinks that it is not true that Book is a non-object data type 15:53
jnthn A Book is a data structure derived from a Tree... 15:54
skids And subclassed by Dict
dalek kudo/native-ref: 168ca22 | jnthn++ | src/vm/moar/ops/container.c:
Update Rakudo scalar contspec for updated API.
15:55
moritz jnthn: can 6pe be merged? or have you merged it already? 15:56
jnthn moritz: Potentially. I'd like to at least see it tested against the Star modules. 15:57
If anybody fancies taking that on, to get it landed faster, please do.
Also make sure that, when merged into nom, we don't lose any spectests.
There's more work to do in the 6pe area, but I think what's in the branch being merged won't be terribly disruptive. 15:58
moritz jnthn: what's the moarvm branch name? or is it only nqp+rakudo? 15:59
nine_ And Dict is really a Hash in Perl 5. So when Hashes are non-objects, the base of hashes cannot be objects either
FROGGS ;o) 16:00
jnthn moritz: The MoarVM and NQP 6pe branches are both already merged 16:01
moritz jnthn: oh, that simplifies things \o/
jnthn moritz: So it's only the 6pe-mop one that is up for merge.
The native-ref branches I'm currently working on will not be elligible for merge until after 2014.02 16:02
But I've plenty to be doing in them :)
FROGGS jnthn: I mused about testers.perl6.org... would be nice if we just did: PANDA_SUBMIT_REPORT=before-6pe panda smoke; <switch branach>; PANDA_SUBMIT_REPORT=after-6pe panda smoke
and then a way to compare both tags 16:03
switch branch*
16:03 adu joined 16:06 kaleem joined
nine_ This really shows how easy Inline::Perl6 is to write: even in my condition and unable to type I can make decent progress. 16:08
jnthn It's so easy when r-m has no embedding API! ;)
16:09 espadrine left
moritz t/spec/integration/weird-errors.t test 5 has been failing for me for a while on moarvm 16:09
anybody know what's up there?
jnthn Not me
Didn't see it on the last spectest I ran on this box but I've no idea when that wsa. 16:10
moritz and t/spec/S17-supply/start.t fails test nine here
# expected: [1, 1]
# got: [1, 1]
16:12 espadrine joined
nine_ jnthn: it's not NativeCall which makes up for most of it :0 16:12
;)
16:13 diana_olhovik left
dalek kudo/newio: 459ebe6 | lizmat++ | src/core/IO/ (2 files):
We can do .parent on files as well
16:13
lizmat moritz: to me, that's a flapper 16:16
runs ok by itself
16:19 xinming_ left
jnthn nine_: Wow, it's amazing how little you actually need in that .xs file 16:20
But yeah, I need to provide better APIs for doing what you're doing from Moar...
PerlJam nine_: Have you tried Inline::Perl5 on different versions of Perl 5? 16:22
nine_: I ask because my perlbrewed 5.20.0 has been working fine, but today I tried 5.20.1 and it barfed. I haven't had time to investigate if it's just me or a general problem. 16:23
16:24 _mg_ joined
PerlJam nine_: I mean, I switched to 5.20.1 and attempted to install Inline::Perl5 with panda and it complains. 16:24
moritz jnthn: on 6pe-mop I get a test failure in t/spec/S14-roles/mixin.t (last test), though that is one testing an exact error message 16:26
jnthn moritz: Ah, yeah...
moritz: Typed exception time? :)
I do think the new text is an improvement.
moritz but running the code in that test on the command line seems to produce a fine error message
jnthn: +1 to typed exceptions :-) 16:27
jnthn moritz: If you've the ork to put in a typed exception for it, feel free
moritz: Otherwise I can do it in the next day or so
nine_ PerlJam: I'm actually developing Inline::Perl5 on 5.20.1 16:28
moritz jnthn: I'm now testing panda + star modules, so no idea if/when I'll get to it 16:29
jnthn moritz: OK
moritz jnthn: ... or if I remember how to use a typed exception from a meta class/role :-)
jnthn Just serach for P6EX in src/Perl6/Metamodel :)
16:32 fhelmberger left
nine_ I wonder if I shouldn't just go in and actually use Inline::Perl5 for implementing Inline::Perl6. I'll end up copying most of the code anyway. 16:32
pmurias nine_: sharing code so that the Perl 5 objects behave the same in Perl 6 while using both of those modules seems like a good thing 16:36
dalek kudo/newio: f5d730c | lizmat++ | src/core/IO.pm:
Introduce MAKE-PARENT helper sub
16:39
ast: 5cea494 | skids++ | S32-exceptions/misc.t:
Add test for RT #72816
16:40
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=72816
dalek rl6-roast-data: 3600641 | coke++ | / (5 files):
today (automated commit)
16:41
16:41 _mg_ left 16:42 raydiak joined 16:44 telex left 16:46 telex joined 16:50 synopsebot left 16:51 pierrot left, pierrot joined, jferrero left, jferrero joined 16:52 synopsebot joined
retupmoca moritz: could I get you to look at github.com/cosimo/perl6-lwp-simple/pull/42 ? 16:52
16:53 kaleem left 16:54 alini left 16:55 zakharyas left
dalek p/native-ref: 4d77554 | jnthn++ | docs/6model/repr-compose-protocol.markdown:
Spec nativeref compose protocol.
16:55
16:55 Ven left 16:59 Bowman42 left 17:00 sivoais left
lizmat hmmm... looks like STAT_EXISTS is false on a cyclic symlink 17:00
17:01 sivoais joined
jnthn Maybe that's the OS's way of saying "I can't bear to look..." :P 17:02
lizmat yeah, which simplifies things :-)
jnthn Well, depends how portable that result is :)
lizmat true 17:03
ok, I'll build in a safeguard just in case
hoelzro that's consistent with Perl 5 17:05
(at least)
lizmat hoelzro: what is consistent exactly? 17:06
hoelzro lizmat: that -e $cyclic_symlink is falsy
on my machine, anyway =)
lizmat ok, just checking to be 100% sure
moritz retupmoca: nag me again later today/tonight 17:07
now decommuting&
hoelzro it makes sense, in a way
moritz jnthn: fwiw rakudo 6pe-mop successfully tested star on moarvm
hoelzro there's no end of the chain of symlinks, so stat returns ELOOP
jnthn hoelzro: What OS are you trying it on, ooc? 17:08
moritz really gone&
jnthn moritz: OK, cool! Thanks!
hoelzro jnthn: Arch Linux
jnthn OK, and lizmat is presumably on OSX.
hoelzro (I think any Linux distribution would do this, though)
lizmat yep
jnthn And it's moot on Windows.
OK, so I guess we can skip the safeguard... :)
hoelzro I think so
lizmat okidoki 17:11
ah, and the libuv function actually follows symlinked symlinks already, so even more simple :-) 17:15
17:16 _mg_ joined
lizmat ah, no, need to do that myself :-( 17:17
17:18 espadrine left, sunnavy joined
FROGGS m: use Test; class Foo { method bar { } }; my $foo = Foo.new; my @a = <a b c d>; sub baz(|) { ok $foo.bar, "bar" }; for @a { for @a { baz @a } } # jnthn: that's [Tux]'s segfault 17:19
camelia rakudo-moar 8e9114: OUTPUT«(signal SEGV)not ok 1 - bar␤␤# Failed test 'bar'␤# at /tmp/sjtxnWMYjo line 1␤not ok 2 - bar␤␤# Failed test 'bar'␤# at /tmp/sjtxnWMYjo line 1␤not ok 3 - bar␤␤# Failed test 'bar'␤# at /tmp/sjtxnWMYjo line 1␤not ok 4 - bar␤␤# Faile…»
hoelzro lizmat: you're following the symlinks by hand?
FROGGS jnthn: I golfed it 'a little' because I was unable to follow the problem in moar
lizmat yes, that seems to be needed
hoelzro lizmat: is that in Moar, or in NQP/Rakudo? 17:20
I remember deleting some manual symlink following logic from MoarVM a while back
jnthn FROGGS++
lizmat at the moment I do it in Perl 6
hoelzro ah ha
jnthn lizmat: What exactly do you need to handle, ooc? 17:21
dalek kudo/newio: cf9e9fe | lizmat++ | src/core/IO.pm:
Implement FILETEST-L
lizmat see above commit
17:21 PZt joined 17:22 alini joined
hoelzro what's -L, again? 17:22
jnthn lizmat: Remind me what -L is?
haha :)
lizmat readlink
jnthn lizmat: Should it recurse?
lizmat well, good question 17:23
jnthn It's not clear to me it should, fwiw.
'cus then you have no way to get the "what exactly does this link to", plus we can't say it's the Perl 6 way of spelling readlink...
TimToady readlink should not recurse 17:24
dalek p-js: 7bb9ec8 | (Pawel Murias)++ | src/vm/js/ (3 files):
Add a --nyi=warn option to nqp-js to print out NYI stuff to standard error.
p-js: 3539435 | (Pawel Murias)++ | TODO:
Add a bunch of missing opcodes to TODO.
hoelzro thought readlink followed symlinks already
17:24 Kristien joined
FROGGS lizmat: that's related: irclog.perlgeek.de/perl6/2014-11-10#i_9636226 17:24
Kristien hola
TimToady what if the program wants to count the indirections?
lizmat ok, fair enough :-)
17:25 dustinm` joined
TimToady primitives need to be primitive 17:25
FROGGS TimToady: clearly we should expose a stat_file_get_indirections(...) like there probably exists in PHP :o)
dalek p-js: 0ee266e | (Pawel Murias)++ | HACKING:
Add a scavenging hint.
17:26 FROGGS[mobile] joined, FROGGS[mobile]2 joined, FROGGS[mobile]2 left, FROGGS[mobile]2 joined
dalek kudo/newio: e4823c0 | lizmat++ | src/core/IO.pm:
Primitives need to be primitive
17:27
hoelzro nope, nevermind
pmurias hoelzro: I added a bunch of stuff to the nqp-js TODO, they should be of varied difficulty
hoelzro pmurias: awesome, thanks!
17:27 FROGGS left 17:30 FROGGS[mobile] left, ingy1 joined
lizmat TimToady: how about a "desymlink" function that *would* recurse ? 17:31
17:32 Alina-malina joined
FROGGS[mobile]2 "de"? 17:32
PerlJam lizmat: what's the use-case?
dalek c: 42f0d4e | paultcochrane++ | lib/Language/mop.pod:
Typographical etc. corrections to mop.pod
17:33
c: de216c8 | paultcochrane++ | lib/Language/mop.pod:
Wrap paragraphs consistently in mop.pod
c: f1699aa | paultcochrane++ | lib/Type/Metamodel/Finalization.pod:
Move X<DESTROY> into documentation body

This stops htmlify from complaining that it can't find the =SUBTITLE.
lizmat well, -d on a symlink
17:33 andreoss left
TimToady it's just a one-liner, which argues that it's not much bloat, but also not much utility 17:33
lizmat I ran into this when testing tmpdir functionality 17:34
in OS X /tmp is a symlink
TimToady agrees the use case is limited, not that may people are interested in absolute paths
lizmat I would like to know whether something resolves to a symlink or not
*many ?
TimToady ya
we don't need convenience features for seldom-used stuff 17:36
lizmat but this also implies that I can't really test for -d for features such as $*CWD
because they might be valid if they\re a symlink as well 17:37
hmmm... I think I know another way :-)
FROGGS[mobile]2 see the link I postet about stat 17:40
lizmat FROGGS[mobile]2: once I'm done with readlink, I'll do lstat :-) 17:41
dalek p-js: 6b20680 | (Pawel Murias)++ | HACKING:
Add a hint how to get beautified output.
17:43
17:45 pmurias left
timotimo o/ 17:46
dalek ecs/newio: 3b5f3b8 | lizmat++ | S16-io.pod:
Readlink is not used often, so de-hufmannize
17:47 lue left 17:49 Rounin joined
dalek kudo/newio: 3d80ceb | lizmat++ | src/core/IO.pm:
FILETEST-L -> FILETEST-READLINE
17:50
FROGGS[mobile]2 lizmat++ 17:51
geekosaur READLINK?
(hopefully that's just a commit message typo)
lizmat yes, commit message typo :-( 17:52
too late to fix now
TimToady doesn't need to be THAT dehuffmanized :)
17:56 colomon left, _mg_ left
TimToady hits the road again for Seattle... 17:57
afk &
17:58 dustinm` left, Mouq joined 17:59 lue joined 18:02 molaf joined 18:08 kjs_ left 18:10 tgt joined, Alina-malina left, ingy1 is now known as ingy 18:25 Mouq left 18:26 Hor|zon left 18:51 Alina-malina joined 18:54 rindolf left, rindolf joined, diana_olhovik joined 18:58 alini left 19:03 nsharrok joined, trone left 19:04 Woodi left
Kristien .tell vendethiel I decided to write a custom VM 19:06
yoleaux Kristien: I'll pass your message to vendethiel.
Kristien yoleaux: thanks you're great
moritz blug again: perlgeek.de/blog-en/perl-6/2015-doc...6-org.html 19:08
19:10 _mg_ joined
jnthn moritz++ 19:10
19:12 alini joined 19:15 beastd joined 19:16 alini left 19:19 nsharrok left
pmichaud moritz++ 19:20
I also wonder if there's a place for "what's the p6 equivalent of p5's XYZ?"
moritz pmichaud: there's certainly a place for that, though it's not on my personal agenda 19:22
19:22 kjs_ joined 19:23 Hor|zon joined
moritz pmichaud: also it might be economical to wait and see if there is really going to be a big migration movement from 5 to 6 at some point 19:23
19:24 diana_olhovik left
moritz pmichaud: maybe our users will come from unexpected corners (like the go folks expecting to attact C programmers, and attracted many python programmers) 19:24
dalek kudo/nom: 7f20855 | moritz++ | src/core/ (2 files):
move X::Does::TypeObject to operators.pm

it reads much nicer to have the exception defined close to where it is thrown
Also record the type that was attempt to mix into
19:26
retupmoca moritz++ # blog
dalek c: bfefd0a | moritz++ | lib/Type/X/Does/TypeObject.pod:
Document X::Does::TypeObject.type
c: 70de3c2 | moritz++ | util/sync-build-log:
Avoid syncing the results of a failed build
retupmoca moritz: also, now nagging you again about LWP::Simple PR :) 19:27
19:27 virtualsue joined, Hor|zon left
moritz retupmoca: looking... 19:29
retupmoca: first piece of feedback: I'd appreciate separate features in separate pull requests
retupmoca: but that won't stop me from merging them :-)
retupmoca sorry, will split them in the future 19:30
19:31 alini joined
pmichaud my p5 question isn't driven by expected migration as much as within the past week I've already fielded a number of questions of the form "what's Perl 6's equivalent to Perl 5's ______?" So it's at least a frequently asked question. 19:32
moritz pmichaud: that *is* a good reason for putting it into the docs
pmichaud: please collect the specific quesitions you were ask (as far as you remember them) 19:33
pmichaud well, one was about unpack
another was __FILE__
19:34 Kristien left
pmichaud another one that comes up (but is already documented) is "length" 19:34
another one (that I didn't have an answer for) was Moose's "required" flag on attributes 19:37
jnthn has $.foo = die "You must have a foo"; # or write an 'is required' trait that does the right thing; I'm sure there'll be modules
19:37 Hor|zon joined
pmichaud jnthn++, but I'm also interested in seeing that documented/answered somewhere. the "required" question has come up for me at least twice within the past few months 19:38
anyway, these questions just made me wonder about a p5-to-p6 index of some sort. 19:39
jnthn It probably makes sense to have a place to collect them. 19:40
pmichaud I'm afk for a while... probably until Monday-ish
jnthn Have a good weekend 19:41
[ptc] moritz++ # blog 19:42
dalek c: 82740f8 | paultcochrane++ | lib/Language/objects.pod:
Typographical etc. corrections to objects.pod
19:44
c: cd2bed6 | paultcochrane++ | lib/Language/objects.pod:
Wrap paragraphs consistently in objects.pod
c: e340b18 | paultcochrane++ | / (2 files):
Merge branch 'master' of github.com:perl6/doc
jdv79 whoa. wasn't there a perl 5 wiki that ?Schwern? spearheaded? i thought there was also a perl 6 wiki that looked similar. i can't find either. 19:45
muraiki yeah, a wiki might be a nice way to let people contribute to docs 19:49
19:50 FROGGS joined
hoelzro it would be nice to be able to easily find information on operators, or p5->p6 info (ex. "p5: $0") 19:51
FROGGS std: $0
camelia std f9b7f55: OUTPUT«ok 00:00 135m␤»
jdv79 it looks like the perl5 wiki was taken down 19:52
skids jdv79: The old stuff on www.perlfoundation.org/perl6/index....umentation is still up, if you meant that.
19:53 dustinm` joined
jdv79 oh, look at that. 19:53
19:53 _mg_ left
muraiki is this "old stuff" in the sense of "stuff that's out of date and misleading?" :) 19:54
skids Some of it.
Some could use to be harvested into docs, with some proofreading, probably.
19:55 Kristien joined
skids But don't bother to improve on that site because everyone hated editing using it. 19:55
muraiki haha 19:56
jdv79 wow, its like peering back 5/10 years ago 19:57
all old
Util_ moritz++ # For blog, p.s. doc.perl6.org is very nice
moritz: re: "searching for variables, syntactic constructs and keywords isn't easily possible" 19:58
Yesterday, I was thinking about this need, and started writing to meet it, but then I found these:
www.perlfoundation.org/perl6/index.cgi?witch What Is This Character Here (WITCH)
www.perlfoundation.org/perl6/index....dex_tablet
Just FYI, as something to steal entries or organizational ideas from.
19:58 Util_ is now known as Util
ugexe is there an easier way to search a Buf for a specific (in this case 3 bytes) sub-buffer other than using a loop like `for ^$buf.bytes { return 'utf8' if $buf.subbuf($_, 3) eqv Buf.new(0xEF, 0xBB, 0xBF) }`? 19:58
Util Oh, I see conversation has outpased me :) 19:59
FROGGS ugexe: this might be faster: github.com/sergot/http-useragent/b...nt.pm6#L54
jdv79 i think some of that is on www.perl6.org/documentation/ already 20:00
Util ugexe: will the .subbuf method work for your purpose?
ugexe it only needs to search the first 1024 bytes, so speed isnt too important. mostly just trying to do it as perl6y as possible 20:03
FROGGS ugexe: I'd like to see a method on Blob or so for that purpose 20:04
20:04 dustinm` left
ugexe fwiw its something im working on for decoding detection for http::useragent 20:04
moritz fwiw a possible workaround is to decode as latin-1, and then use string methods 20:05
ugexe im not sure about latin-1, but for instance decoding baidu.com as 'ascii' caused an error 20:06
moritz ugexe: ascii != latin-1
ugexe: ascii maps only half of the possible bytes
ugexe: but latin-1 (or at least our implementation of it) maps all 20:07
ugexe ah. i almost considered using unpack('A1024')
i assume for someone in the US that is likely using latin-1? 20:08
moritz assumes so too
FROGGS TimToady: what do you think, do we want a .index method on Buf? 20:09
Util ugexe: Idiomatic Perl 6 that does not need to be efficient... Hmmm. Untested:
return 'utf8' if any(map {$buf.subbuf($_, 3)}, (^( [max] $buf.bytes - 3, 1024))) eqv Buf.new(0xEF, 0xBB, 0xBF)
geekosaur danger will robinson! the byte order mark is only defined in utf16, not utf8! 20:12
20:13 darutoko left
dalek kudo/native-ref: 6f5d937 | jnthn++ | / (2 files):
Add a NativeRefHOW.
20:13
kudo/native-ref: 24974ca | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Basic bootstrap of various native ref types.
20:14 espadrine joined
FROGGS I think that is quite 6y: 20:15
m: my $a = lines[0].encode; my $b = utf8.new(0x6d, 0x61, 0x6f); say $a.list.first-index({ $a.list[(state $i = -1) .. $i++ + $b.elems] ~~ $b.list });
20:15 dustinm` joined
camelia rakudo-moar 8e9114: OUTPUT«25␤» 20:15
ugexe what does `my $a = lines[0].encode;` do? set the default encoding to something? 20:20
FROGGS ugexe: encodes the given string to a Buf type (utf8 by default)
m: say lines[0] # just some sample input
camelia rakudo-moar 8e9114: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤»
20:20 rurban__ left
FROGGS m: say lines[0].encode 20:20
camelia rakudo-moar 8e9114: OUTPUT«utf8:0x<43 c3 a9 61 64 20 73 6c c3 a1 6e 20 61 67 20 73 6c c3 a9 69 62 68 74 65 20 6d 61 6f 72 67 61 20 43 68 6f 6e 74 61 65 20 44 68 c3 ba 6e 20 6e 61 20 6e 47 61 6c 6c>␤»
FROGGS see 20:21
ugexe ah gotcha
skids I always get envious when I see .gist use 0x< > 20:22
FROGGS would be nice to have that as literals 20:25
skids I'm happy to wait for 6.1.0 for that though :-)
FROGGS :o)
me too
20:34 Ugator left
retupmoca moritz++ # accepting PR 20:41
20:41 dustinm` left 20:43 kjs_ left
moritz jnthn: p-spectest and j-spectest are both clean after a 6pe-mop merge 20:45
20:45 alini left
moritz jnthn: testing star now, though it's slooow, and I don't know the exact expected outcomes (iirc both p-star and j-star aren't clean) 20:46
20:51 kjs_ joined
jnthn moritz++ 20:52
20:54 kjs_ left
[Coke] moritz++ indeed. 20:58
21:00 rurban__ joined
moritz [Coke]: fwiw parrot star doesn't hang anymore during module build (nor during test), so it would be awesome if you could re-enable it for your daily star runs 21:04
21:06 ingy left, ingy joined 21:09 Rounin left 21:11 bobv joined
hoelzro would if my $value = routine() { ... } be considered an anti-pattern? 21:15
coming from Perl 5, I can see how a lot of others would make that mistake 21:16
jnthn hoelzro: That's a parse error, isn't it? 21:17
hoelzro m: if my $a = 3 { say $a }
camelia rakudo-moar 7f2085: OUTPUT«3␤»
jnthn m: oh
camelia rakudo-moar 7f2085: OUTPUT«===SORRY!=== Error while compiling /tmp/DqLl29Qb8K␤Undeclared routine:␤ oh used at line 1. Did you mean 'on'?␤␤»
moritz m: if my $v = sin(42) { say $v }
jnthn duh :)
hoelzro m: if my $a = 3 { say $a } ; say $a
camelia rakudo-moar 7f2085: OUTPUT«-0.916521547915634␤»
rakudo-moar 7f2085: OUTPUT«3␤3␤»
jnthn Misread :)
moritz hoelzro: well, if function() -> $value { ... } is certainly more idiomatic 21:18
hoelzro jnthn: I was thinking about if a warning should be issued for that (not likely by default, though)
jnthn But yeah, you probably want if 3 ->$a { say $a }
hoelzro jnthn: exactly
moritz chants linter, linter, linter
jnthn Not sure it wants a warning under normal conditions, feels more like a critic style thing
hoelzro jnthn, moritz: right
is there an existing linter project? 21:19
psch it's not a mistake as such, is it?
hoelzro psch: well, to me, it would be
psch hoelzro: because the var stays alive outside the if scope? 21:20
(if it does.. :s )
m: sub foo { "bar" } ; if my $baz = foo() { say $baz }; say $baz
camelia rakudo-moar 7f2085: OUTPUT«bar␤bar␤»
psch i don't disagree that it's not idiomatic, fwiw
hoelzro because if I use if(my $value = routine()) { ... } in Perl 5, I expect $value to go out of scope after the if block
in Perl 6, it does *not* go out of scope 21:21
psch i guess i agree with moritz and jnthn, too much visibility for a variable seems like something for a linter 21:22
hoelzro that sounds good to me
dalek kudo/native-ref: 4d1b9de | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Register native reference types with HLL.
21:25
japhb Is there a tempfile/tempdir generator in core? I know I'm tired, but 1. I could swear we had one, and 2. I'm not seeing it in the grep results (just the thing in IO::Spec that returns the machine tmp dir for each OS) 21:26
psch japhb: ecosystem has File::Temp 21:27
japhb psch++ # Thanks 21:30
21:30 dj_goku_ joined, dj_goku left 21:35 [Sno] left 21:40 grettir joined
dalek kudo/native-ref: 3c56352 | jnthn++ | src/Perl6/Metamodel/BOOTSTRAP.nqp:
Configure native ref types as containers.
21:40
21:40 xfix left 21:41 dj_goku_ left 21:42 [Sno] joined 21:43 bobv left
dalek ar: aece474 | moritz++ | docs/announce/2015.01.md:
release announcement: mention that parrot support maybe suspended/dropped in future
21:44
21:44 beastd|2 joined 21:46 dj_goku joined, dj_goku left, dj_goku joined 21:47 beastd left
moritz moritz.faui2k3.org/tmp/rakudo-star-...RC1.tar.gz # R* hopefully final release candidate 21:48
skids started it building on my 32-bit system. If it doesn't abort, it might still be running when I get home in an hour :-) 21:56
22:01 grettir left, skids left
Peter_R So what's the rational for stuff in if conditions not being scoped to the if? 22:04
22:04 FROGGS_ joined
psch Peter_R: the my in "if my $a" is scope at the same level as the if 22:04
Peter_R Indeed, but why
jnthn Peter_R: Simpler scoping rules: things are declared inside the pair of curlies you see them in. 22:05
moritz Peter_R: scoping is tied to blocks of curlies and their signatures
psch Peter_R: while the formal parameter to the block in "if foo() -> $x { }" is scoped to the block
Peter_R e.g. I find my $a; if blah to be more intuitive
psch because "-> $x { }" is general "this is a param to the block" syntax
moritz Peter_R: and nothing stops you from writing that
timotimo moritz: how do we feel about a comments/questions section in docs.perl6.org? 22:06
moritz timotimo: negatively
Peter_R psch, as long as there is a way and it isn't too bad to use, sounds alright :)
moritz timotimo: the comments often get out of date, and then I don't know what to do with them. And they need to be modreated. 22:07
timotimo: if you are looking for ways to make contributions easier, a link to the respective source file on github would be a better way
22:07 FROGGS left
Peter_R Hmm, this is actually better than the P5 way, because I'll never have to write my $persists; if($persists = ... 22:08
timotimo OK 22:09
22:09 Mouq joined
hoelzro what powers the search bar on doc.perl6.org? 22:11
raydiak hoelzro: jqueryui autocomplete widget + static generation at htmlify time 22:13
hoelzro oh, so the terms are embedded in a JS file, or in the HTML?
raydiak in the js
github.com/perl6/doc/blob/master/t...emplate.js
hoelzro interesting
raydiak and github.com/perl6/doc/blob/master/h...fy.p6#L529 22:14
the end result is no extra traffic once the js is cached, and zero server load for the searches
hoelzro right, it's quite clever 22:15
I'm thinking about the conversation earlier, about moritz' blog post
raydiak I thought so too...I didn't design it, just integrated it
raydiak backlogs
hoelzro (about 2.5h ago) 22:16
22:16 alini joined
moritz perlgeek.de/blog-en/perl-6/2015-doc...6-org.html that's the post 22:16
hoelzro one thing I think about is "what if someone searches for ':'"? 22:17
or 'colon'
22:18 adu left
raydiak well it used to handle all kinds of funny chars, but over time things have gotten out of sync and urls are wrong depending on what generated them 22:18
hoelzro it would be nice if we had an interface that described invocants in signatures, paren-less call syntax, labels, etc
I was thinking about other types of searches users might do (based on what I've asked, thought of, and seen here) 22:19
raydiak it would be nice if it generated a more extensive index perhaps, instead of just types and routines like moritz++'s blog says
hoelzro mhmm
I feel like operators would be a good (yet difficult) next step
moritz hoelzro: maybe a bit like we handle routines, for example doc.perl6.org/routine/type
hoelzro: that's simply the docs from all routines called 'type', and where they come from 22:20
hoelzro yeah, that would work
moritz we could the same for syntax/colon or syntax/:
hoelzro the canonical URL for ':' could be doc.perl6.org/operator/colon
ooo, I like "syntax" better
moritz ... once we actually have the description, and index it will the relevant characters
hoelzro moritz: yes, that's the real work, isn't it? =) 22:21
moritz anyway, time for sleep here. See y'all tomorrow
hoelzro: aye
&
raydiak g'night moritz
hoelzro o/ moritz
timotimo moritz: how do we feel about linking to this here IRC channel from docs.perl6.org more prominently? or maybe have some sort of "private-ish comment thread per page" thing?
oh, i should get to bed, too!
o/
hoelzro timotimo: I was thinking about something like that as well
kind of like perlbot on #perl 22:22
raydiak good night timo
hoelzro o/ timotimo
jnthn 'night, moritz++ 22:24
And timotimo :)
22:27 kaare_ joined, colomon joined 22:28 colomon left 22:29 colomon joined 22:30 grettir joined
Mouq moritz++ 22:34
22:34 Araq joined 22:35 pmurias joined
Mouq Re: nativetypes: htmlify *shouldn't* care what the filename is... it's designed to be able to read definitions (`=h1 class int`) where ever it finds them, so something like "lib/Type/native_int.pod" *should* work fine. This hypothesis is however untested 22:38
Mouq will work to document htmlify this weekend
22:39 dolmen joined
raydiak
.oO( metadocumentation )
22:39
Mouq Or perhaps, more generally, adding docs for contributing to the docs
raydiak: Beat me to the punch :9
raydiak :)
Mouq has to do some cleaning first, alas 22:40
22:42 rindolf left 22:43 nebuchadnezzar left 22:45 telex left, nebuchadnezzar joined 22:46 telex joined
raydiak wrt search I wonder if we should have an indirection page for everything (not just syntax), and build a per-search-term result page which lists all doc pages containing a hit (sorted by hits); also wonder how much execution time that would add to htmlify 22:46
22:47 Araq left
raydiak easier even, have a big index listing page somewhere like you find in the back of a book, and have an 'Index: search-term' result listed for each term in the index which just links to an anchor on the big index page 22:49
(marginally easier, anyway) 22:50
22:50 adu joined
jnthn If you're already doing jQuery UI for the search to work at all, could just generate a JSON blob mapping term to result set... 22:50
And use that blob to project out the list of terms for completion, and to generate the result list 22:51
22:54 rurban left
Mouq raydiak: Don't we already do that with the disambiguation pages? 22:57
22:57 virtualsue_ joined
Mouq Oh, per-search-term 22:57
raydiak Mouq: we have disambiguation pages?
Mouq For example: doc.perl6.org/routine/temp 22:58
22:58 virtualsue left, virtualsue_ is now known as virtualsue
Mouq Or just doc.perl6.org/temp 22:58
raydiak oh I haven't seen that...then yes perhaps we are :) 22:59
Mouq wonders why we don't seem to have an infix:<+> in the docs
Weird... 23:02
Mouq submits an issue for this bug
23:09 rurban joined, rurban left
Mouq So, htmlify has bulked up to an ungainly 743 hardly commented lines. I'm planning to review the code and pull what's sensible into individual modules. 23:12
23:13 virtualsue left 23:14 rurban__ left, colomon left 23:15 colomon joined
Mouq Also, we have several files in lib/Perl6/ and lib/Pod that could be reclassified into their own repositories. One advantage of this is that they'd be more likely to be installed via panda, aka compiled, aka faster 23:16
jnthn sleep; 'night 23:23
23:24 dolmen left
raydiak g'night jnthn...sorry I didn't get back to your suggestion, I'm still mulling it over...sent my wheels spinning in several different directions :) 23:24
Mouq night jnthn :0 23:25
:)
*
23:28 BenGoldberg joined, colomon left, BenGoldberg left 23:29 BenGoldberg joined
Mouq Inspired by the conversation a few nights ago about adding to core, I created github.com/Mouq/p6-Syntax-GetMethod 23:30
Please review :)
23:34 colomon joined 23:40 colomon left
BenGoldberg m: class Human { has $!name; method whoami { $!name } }; say &Human::whoami; 23:45
camelia rakudo-moar 7f2085: OUTPUT«(Any)␤»
BenGoldberg m: class Human { has $!name; method whoami { $!name } }; say &Human::asdfsadf;
camelia rakudo-moar 7f2085: OUTPUT«(Any)␤»
BenGoldberg What's happening there? 23:46
Mouq p6: say &Huh::wtf
camelia rakudo-{parrot,moar} 7f2085: OUTPUT«(Any)␤»
Mouq p6: say &Huh::wtf; module Huh { our sub wtf { 42 } } 23:47
camelia rakudo-parrot 7f2085: OUTPUT«sub wtf () { #`(Sub|5227838163442078284) ... }␤»
..rakudo-moar 7f2085: OUTPUT«sub wtf () { #`(Sub|77553728) ... }␤»
Mouq Looks like something isn't doing parse-time checking properly 23:48
BenGoldberg m: module Foo { }; class Foo { }; say 1;
camelia rakudo-moar 7f2085: OUTPUT«===SORRY!=== Error while compiling /tmp/un_TACniGd␤Redeclaration of symbol Foo␤at /tmp/un_TACniGd:1␤------> module Foo { }; class Foo ⏏{ }; say 1;␤ expecting any of:␤ generic role␤»
BenGoldberg If it's illegal to have both a module and a class of the same name, then we could use the same syntax for finding a function in a module and finding a method in a class. 23:49
Mouq m: class Foo { method bar { 42 }; our sub bar { "not 42" } }; my &bar = Foo::bar; say bar 23:50
camelia rakudo-moar 7f2085: OUTPUT«Type check failed in assignment to '&bar'; expected 'Callable' but got 'Str'␤ in block <unit> at /tmp/YwVE8EOR0x:1␤␤»
Mouq Er
m: class Foo { method bar { 42 }; our sub bar { "not 42" } }; my &bar = &Foo::bar; say bar
camelia rakudo-moar 7f2085: OUTPUT«not 42␤»
23:52 tgt left 23:54 skids joined
BenGoldberg m: class Human { has $!name; method whoami { $!name }; our sub asdf { 'jkl;' }; }; say &Human::asdf; 23:54
camelia rakudo-moar 7f2085: OUTPUT«sub asdf () { #`(Sub|71062016) ... }␤»
BenGoldberg m: class Human { has $!name; method whoami { $!name }; our sub asdf { 'jkl;' }; }; say &Human::asdf :method;
camelia rakudo-moar 7f2085: OUTPUT«sub asdf () { #`(Sub|60113488) ... }␤»
BenGoldberg Does that :method (which obviously doesn't do anything here) get passed to say?
Because adding a named parameter is, imho, probably more perl6-ish than adding yet more syntax... 23:57
Mouq BenGoldberg: I'm not really sure where that method's going. It gets parsed as a fake_infix 23:58
It looks like it just gets thrown away? 23:59
:/
23:59 beastd|2 left