»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by sorear on 25 June 2013.
R0b0t1 Oh for some reason I thought that was perl6. 00:00
Disregard.
raiph [1, 2, 3].itemized would mean the three items "1", "2", and "3" individually according to conventional use of the word "itemized". Maybe we use "as item" (and "as list" and "as hash" etc.) instead, with the longer "as an item" in contexts that really demand smoother English. 00:03
timotimo where does that come up, raiph?
R0b0t1: a perl6 equivalent to mojolicious is something we'd like to have 00:04
psch Web looks like it's steps into that direction, superficially 00:05
but then it also seems to be rotting
raiph timotimo: My prior comment was poorly worded
timotimo psch: you mean the Web:: namespace of modules we have on modules.perl6.org at the moment? 00:06
raiph timotimo: I mean when people say "itemized array". The regular dictionary defintion of "itemized" (eg "itemized list") means to individually list the items in a list.
timotimo oh
that's a good point 00:07
psch timotimo: right. i found it on github as perl6-web
R0b0t1 timotimo: Yeah, that's how I got about searching for perl web frameworks, read something about a lack of perl6 equivalent
raiph _sri has said he's looking forward to porting mojolicious to P6 when P6 is ready.
timotimo oh, that's nice
psch timotimo: i guess Web::App is actually what's steps-towards mojolicious, if more verbose in the examples
timotimo what do you mean when you say Web::App? 00:08
on the modules list i see Web::App::Ballet and Web::App::MVC 00:09
psch github.com/supernovus/perl6-web the example has "use Web::App" :)
the first one
timotimo oh
psch i'm still mostly looking at (hopefully sensibly placed) debugging says in ModuleLoader to wrap my header around where to look wrt this jvm bug, so i apologize if i'm not that coherent 00:10
timotimo head*
:)
psch right :) 00:11
that was the web-stuff :P
timotimo i'm excited to see where HTTP::Server::Async leads us and how hard it'll be for stuff to sit atop either HTTP::Server::Simple or HTTP::Server::Async and not b0rk 00:12
raiph R0b0t1:_sri has been waiting patiently for years. He tweeted a month or two ago "#perl6 is starting to reach the point where i would love to spend more time on a port of #mojolicious." 00:14
timotimo have we tried to come up with a specific list of deliverables yet?
R0b0t1 raiph: I shall wait with baited breath. 00:15
R0b0t1 rustles impatiently
timotimo it may not happen *that* quickly :)
psch what confuses me most right now is that packages from precompiled modules apparently don't go through World.install_package 00:16
but maybe that just happens somewhere jvm specific?
to clarify: i have debug says in install_package, and on the jvm those don't get executed when running with precompiled modules; on moar they do get executed 00:17
it does get executed when precompiling, but on moar it happens in both cases
is that just an architectural difference? 00:18
(and is it even related? :P)
timotimo i'm not really familiar with that corner of rakudo/nqp :( 00:23
psch me neither! :D 00:24
i think i'll let this sit for now, i'm not really awake enough anymore it seems 00:25
Mouq Didn't [Coke]++ start on a Mojo port?
timotimo i think he started working on some modules that could kind of stand alone, iirc 00:26
Mouq github.com/coke/mojo6
00:26 Akagi201 joined
Mouq Mojo::Util 00:26
Does sergot++'s work factor into this? 00:28
timotimo i wonder the same thing
he's writing some stuff related to parsing headers and such, so that's kinda similar to a Request object you'd have in a mojolicious thingie 00:29
psch there's also one rather weird comment in the jvm ModuleLoaderVMConfig: "might be good to error here" in if $have_jar { } 00:30
00:30 BenGoldberg left
psch anyway, i wanted to go to sleep... :) 00:30
g'night everyone o/
00:30 psch left 00:31 Akagi201 left 00:37 insanity_ left
zengargoyle timotimo: i think rakudobrew does let you switch versions in some fashion.. 00:48
$ rakudobrew list
* moar-2014.06 moar-HEAD
at least it can switch between tagged versions and head. 00:49
anotherone you are doing a hard work 00:50
congratulations
still with the "hack" energy as in puberty, just saw that in dragonfly bsd community 00:51
sorry XD
i think perl 6 is in good hands, will try it 00:55
nice code all 00:56
00:57 anotherone left 01:09 itz_ left 01:10 BenGoldberg joined 01:26 dragon_d left 01:27 raiph left, Akagi201 joined 01:32 Akagi201 left 01:50 FROGGS_ joined 01:54 FROGGS left 02:00 klapperl_ left 02:01 klapperl joined
dalek rl6-roast-data: d41be7a | coke++ | / (6 files):
today (automated commit)
02:06
02:15 atroxaper joined 02:19 noganex_ joined, atroxaper left 02:22 noganex left 02:28 Akagi201 joined
dalek ast: 25668e6 | coke++ | / (50 files):
Prefer RT #XXXXXX
02:32
02:33 Akagi201 left 02:36 dragon_d joined 02:41 marcg joined
marcg I want to get involved with Perl 6. I am well versed in Perl 5, but know little of 6. I am into cryptography, so I am thinking about implementing some crypto algorithms in P6: DES, AES. These are apparently "most wanted": github.com/perl6/perl6-most-wanted...odules.md. What is the best way to learn enough p6 to write 02:43
a module I won't be embarrassed of?
02:53 atroxaper joined
dalek ast: 99fe062 | coke++ | S17-supply/ (18 files):
Reference RT #122229
02:55
ast: b43c840 | coke++ | S03-metaops/zip.t:
mark tests for RT #122230
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122229
Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122230
[Coke] marcg: if you're familiar with perl5, looking at the synopses (modeled after the camel book chapters) might be a good start. there is a spec test suite with examples of a lot of the syntax described there. also a growing list of modules. doc.perl6.org also 02:57
dalek ast: 08eb153 | coke++ | S03-metaops/hyper.t:
Another instance of RT #122230
03:00
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122230
[Coke] m: subset MyInt of Int where True; my MyInt $x = 5; $x = Nil; say $x.WHAT; 03:02
camelia rakudo-moar 44d535: OUTPUT«(MyInt)␤»
[Coke] m: subset MyInt of Int where True; my MyInt $x = 5; $x = Nil; say $x === Int
camelia rakudo-moar 44d535: OUTPUT«False␤»
[Coke] m: subset MyInt of Int where True; my MyInt $x = 5; $x = Nil; say $x === MyInt
camelia rakudo-moar 44d535: OUTPUT«True␤»
marcg Coke, thanks 03:03
[Coke] ^^ That's in S02-types/nil.t - added in 2011 by sorear. Is that still a valid assumption, that it should be === Int ? 03:04
If not, there's a few todos in there marked "triage" that can probably be cleaned up.
03:11 marcg left 03:14 rindolf joined 03:17 btyler left
zengargoyle marcg: the advent calendar blogs are a nice collection of chunks of random gleanings. 03:26
perl6advent.wordpress.com/
03:32 Akagi201 joined 03:39 carlin left 03:53 araujo left
dalek ast: 49b617b | coke++ | S02-types/declare.t:
canonicalize on "NYI"
03:55
ast: ad2abf4 | coke++ | S (17 files):
standardize on NYI for things not yet implemented

unimplemented for things that shouldn't be implemented
ast: e543e6e | coke++ | S02-types/array.t:
prefer RT #XXXXX
ast: e97bc95 | coke++ | / (25 files):
remove pugs fudge-fossil

this re-enables some tests that were commented out before fudge existed.
ast: 3033fd2 | coke++ | S02-names-vars/list_array_perl.t:
re-comment these out.

Need to properly skip them for rakudo, but that's hard.
03:56 btyler joined 03:58 cooper_ joined 04:00 BenGoldberg left 04:15 avuserow joined, takesako left 04:16 takesako joined 04:17 larryd left 04:19 atroxaper left, atroxaper joined 04:24 atroxaper left 04:30 molaf joined, larryd joined 04:37 atroxaper joined 04:39 SamuraiJack_ joined 05:12 dragon_d left 05:50 kaare_ joined 06:24 cooper_ left 06:29 molaf left
ChoHag Surely 3033fd2 should be coke--? 06:32
FROGGS_ ChoHag: we usually don't do that :o) 06:34
06:35 dmol joined 06:46 hightower2 left 06:49 atroxaper left 06:57 potatogim joined
ChoHag How did I get the -fPIC option into libdyncall's build last time? 06:59
07:01 potatogim left
ChoHag And thus is demonstrated the importance of reporting bugs and patches as they are discovered. 07:02
07:05 atroxaper joined 07:06 ingy left
FROGGS_ ChoHag: when the build script does not put it in for you, you perhaps hacked MoarVM's build/setup.pm 07:07
ChoHag No that time it was a much saner hack.
This time I just built dyncall by hand.
07:07 PotatoGim joined
FROGGS_ the Configure.PL/build.pm should detect the need of -fPIC for sure 07:08
ChoHag Incidentally, rakudo make clean can't because of no j-clean.
FROGGS_ how do you get that?
ChoHag Type make clean in top level. See complain about lack of j-clean. 07:09
FROGGS_ I often switch between building all or just a few backends...
ChoHag: it does not complain
ChoHag I'd buggered about with the source/build, so I'm waiting to see what it does after a clean^Wcomplete run through.
FROGGS_ make j-<tab><tab> shows j-clean also 07:10
ChoHag Then it probably was the source code sodomy.
FROGGS_ hmmmm 07:11
ChoHag It's just testing the jvm so give me an hour or two...
No not testing. Generating somethign.
FROGGS_ that is in rakudo's Configure.PL: print $MAKEFILE "clean: ", join(' ', map "$_-clean", @prefixes), "\n";
and: my @prefixes = sort map substr($_, 0, 1), keys %backends; 07:12
so the jvm backend must have been enabled...
ahhh 07:13
07:13 btyler left
FROGGS_ when your nqp-j had a problem, it would not append the Makefile-JVM.in to your Makefile 07:13
but you should've seen an error message then at least
ChoHag There were probably build failures then.
FROGGS_ it is not meant to continue then (and it looks like it does not continue) 07:14
brb 07:15
ChoHag Oh bugger. I just realised I forgot to specify the install location when I kicked the build off. 07:17
FROGGS_ it will be cwd/install I think 07:27
or nqp/install, not sure
07:39 ingy joined 07:44 virtualsue joined 07:57 darutoko joined
masak morning, #perl6 07:57
08:12 Isp-sec joined 08:20 FROGGS[mobile] joined, atroxaper left 08:25 Alula_ left 08:26 Alula_ joined 08:27 virtualsue left 08:30 dylanwh left 08:31 virtualsue joined 08:36 anaeem1_ joined, virtualsue left
zengargoyle m: class F does Associative { has %.k handles Associative; }; my %k := F.new; %k<f>=True; $k<f>.perl.say 08:37
camelia rakudo-moar 44d535: OUTPUT«===SORRY!=== Error while compiling /tmp/iFkUQTnTxw␤Variable '$k' is not declared. Did you mean '%k'?␤at /tmp/iFkUQTnTxw:1␤------> %k := F.new; %k<f>=True; $k<f>.perl.say⏏<EOL>␤ expecting any of:␤ …»
zengargoyle m: class F does Associative { has %.k handles Associative; }; my %k := F.new; %k<f>=True; %k<f>.perl.say
camelia rakudo-moar 44d535: OUTPUT«postcircumfix:<{ }> not defined for type F␤ in method <anon> at src/gen/m-CORE.setting:12877␤ in any find_method_fallback at src/gen/m-Metamodel.nqp:2604␤ in any find_method at src/gen/m-Metamodel.nqp:934␤ in method assign_key at src/gen/m-CORE…» 08:38
08:43 virtualsue joined 08:48 dylanwh joined
zengargoyle > class I is Associative { has %k; method postcircumfix:<{ }> ( **@slice ) { %k 08:55
09:00 virtualsue left 09:06 xinming joined 09:09 xinming_ left, pdcawley left 09:10 pdcawley joined
ChoHag The debugger complains of a lack of Debugger::UI::CommandLine 09:14
09:14 virtualsue joined
zengargoyle if you're no using rakudo-star you have to install it yourself 09:24
ChoHag Then I guess it's time to find out how that works. 09:26
zengargoyle install panda 09:27
then: panda install Debugger::UI::CommandLine 09:28
ChoHag That's not how it works.
That's how to use it.
zengargoyle oh, maybe i missunderstand. the built-in debugger does have an external dependency on Debugger::UI::CommandLine. 09:29
ChoHag You do, but not in that way. I got that. 09:30
I want to know how modules interact with the underlying os. "Use this magic tool" teaches nothing.
I didn't want to know that 5 minutes ago, but now I have an external dependency. 09:31
09:32 virtualsue left 09:39 spider-mario joined 09:42 kivutar joined 09:50 Rotwang joined
jnthn Once, the debugger was completely separate. These days, perl6-debug contains the stuff tied to the compiler that it became an utter pain to maintain on the outside, while the frontend doing the UI stuff lives where it always has. 09:56
ChoHag Hmm. Did I misunderstand the panda source, or does it not use the install method of CompUnitRepo? 09:57
Seems to implement its own copy function.
jnthn I *think* (I may be out of date) that there's a Panda branch to use the (quite recently added) CompUnitRepo, but it isn't quite ready to be the default thing yet. 09:58
ChoHag Ah CUR is a new thing?
jnthn Yes, and that it handles install is partly born out of the pain of what you see in Panda, iiuc. :)
ChoHag Heh
masak I hadn't seen this interview with TheDamian until now: www.linuxvoice.com/interview-damian-conway/ 10:04
and the HN discussion, surprisingly positive towards Perl 6: news.ycombinator.com/item?id=7988351 10:06
so, if you want people to say good things about Perl 6 on HN, link them to a TheDamian interview! :P
ChoHag Debugger: Unknown compilation input 'optimize' 10:09
Not my code. Optimise has an s.
10:09 grondilu joined
grondilu m: my @a := 1 .. *; @a = @a[0, 2 ... *] # Is this supposed to work? 10:10
camelia rakudo-moar 44d535: OUTPUT«(timeout)»
jnthn No. Slicing is not lazy.
grondilu ok
is it because it's impossible or something? It would have provided a neat solution to rosettacode.org/wiki/Ludic_numbers#Perl_6 10:11
jnthn Yes. Slicing returns a Parcel of the elements. A Parcel is always a pre-determined length. 10:12
10:21 Isp-sec left 10:24 jack_rabbit left 10:25 jack_rabbit joined
ChoHag Is there something else that r* would ordinarily have provided to make the debugger work? 10:26
I installed the UI module and Term::ANSIColor
grondilu
.oO( sub inifite-splicing(@array, @splice) { gather { take @array[$_] for @splice } } )
jnthn ChoHag: Those are the only deps I know of 10:29
ChoHag Then my code somehow breaks the debugger.
Wheee! 10:30
jnthn oh, fun...
Can you run with --ll-exception and gist me the error?
10:33 kivutar left
ChoHag gist.github.com/anonymous/23ac1a19fc27182f7c1c 10:36
jnthn Thanks. 10:45
10:53 mlawren joined 10:54 salv0 left 10:58 pdcawley left, pdcawley joined
dalek p: 78f5a7b | jnthn++ | src/vm/moar/QAST/QASTCompilerMAST.nqp:
Add typevar scope handling for MoarVM.

Uses op that indicates that the value is invariant with regards to the invocant type.
11:01
p: 39f25d9 | jnthn++ | src/vm/ (2 files):
On Parrot and JVM, for now typevar means lexical.
p: b4b2d6b | jnthn++ | src/NQP/Actions.nqp:
Start marking $?CLASS lookup with typevar scope.
p: 04bbf8c | jnthn++ | src/NQP/Actions.nqp:
One more place we can use typevar, not lexical.

This benefits !cursor_start, meaning that all the attribute accesses in it are now lowered to pointer operations. Le JIT will like this - once it can handle other things inside !cursor_start, anyway.
p: 174eb97 | jnthn++ | src/ (4 files):
Merge branch 'typevaropt'
p: 1d18e2b | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for inline/deopt fixes.
grondilu ludic numbers with infinite splicing: gist.github.com/grondilu/f64589d8110917751695 11:02
(or maybe better called lazy splicing) 11:03
m: gist.github.com/grondilu/f64589d8110917751695 11:04
camelia rakudo-moar 44d535: OUTPUT«gist not found»
jnthn Or lazy-splice, to verb it
11:04 James-YeJ3TE48lO joined, Akagi201 left 11:08 jack_rabbit left
dalek kudo/nom: 3756b5b | jnthn++ | src/perl6-debug.nqp:
Fix debug compile pipeline setup.

Unbusts various constructs under the debugger on non-Parrot backends.
  ChoHag++ for reporting.
11:08
ChoHag So what's the basic pull & build procedure for an all-backend rakudo? 11:10
If it's not just git pull && make install 11:11
tadzik clone everything, pass --backends=all to nqp and rakudo, I think
11:11 dalek left, salv0 joined 11:12 dalek joined, ChanServ sets mode: +v dalek
ChoHag woohoo! 11:12
This is the first time being in the debugger.
Naturally, it is time to prepare my daughter to go to an Event, so there's no time to play with it. 11:13
11:13 anaeem1_ left
ChoHag Damn kids... 11:13
11:13 anaeem1 joined
masak aw, don't say that. 11:15
kids are our future, almost by definition.
ChoHag They're not my future. 11:17
They're their future.
grondilu was hesitating to write almost exactly that 11:18
ChoHag Love her to pieces anyway though.
masak hm, 'our' as in humanity's? I think that's what I meant.
ChoHag She's a feisty one. 11:19
grondilu "humanity" is quite a big abstraction
masak yes, I'm grasping for a smaller one.
something like "those of us in this discussion". 11:20
grondilu I mean, humanity does exist, but it's not part of me if I'm not alive. So kids are not "my" future.
not to mention that they are not suppose to grow up as my servants or anything :/ So as ChoHag said, they are not my future, they are theirs. 11:22
ChoHag Engineers make the best parents...
grondilu even software engineers? 11:23
masak maybe just 'children are the future', then. 11:25
grondilu it's a bit anthropocentric, but yeah I guess. 11:27
BinGOs as long as no one breaks into a bit of whitney houston we should be alright.
masak grondilu: :P
grondilu: sometimes, as a human, I don't mind being anthropocentric. I don't feel sorry about it. 11:28
m: class A::B {}; say A.new
camelia rakudo-moar 44d535: OUTPUT«You cannot create an instance of this type␤ in method bless at src/gen/m-CORE.setting:839␤ in method new at src/gen/m-CORE.setting:823␤ in block at /tmp/1wxY489sYt:1␤␤»
masak ^^ might want a clearer error message.
jnthn Including the name rather than "this type" would help, but there's no good way to get hold of it at the moment. 11:29
masak submits rakudobug 11:30
11:32 Manu joined, Manu is now known as Guest40250
masak m: module A {}; say A.new 11:33
camelia rakudo-moar 44d535: OUTPUT«You cannot create an instance of this type␤ in method bless at src/gen/m-CORE.setting:839␤ in method new at src/gen/m-CORE.setting:823␤ in block at /tmp/er6k4o2v28:1␤␤»
11:33 denis_boyun joined
masak m: class A::B {}; say A.WHO 11:33
camelia rakudo-moar 44d535: OUTPUT«("B" => A::B).hash␤»
masak m: class A::B {}; say A.WHAT
camelia rakudo-moar 44d535: OUTPUT«(A)␤»
masak m: class A::B {}; say A.HOW.^name 11:34
camelia rakudo-moar 44d535: OUTPUT«Perl6::Metamodel::PackageHOW␤»
masak ah.
jnthn: if we just changed the error message to "You tried to call .new on a package", what wouldn't work out so well?
jnthn We don't know it's not a package. 11:35
uh
we don't know it's a package
m: subset Foo of Int where * > 42; Foo.new
camelia rakudo-moar 44d535: OUTPUT«You cannot create an instance of this type␤ in method bless at src/gen/m-CORE.setting:839␤ in method new at src/gen/m-CORE.setting:823␤ in block at /tmp/OB7IGFcd5K:1␤␤»
masak ok, fair enough. 11:36
I suspected something like that might be the case.
11:36 rindolf left
jnthn There's an Uninstantiable REPR at the bottom of all these. 11:36
masak *nod* 11:37
but still, an error message saying "Tried to instantiate A but it is a {A.HOW.^name}" would be ideal, no? 11:38
11:40 denis_boyun left
jnthn but it isn't a PackageHOW, it's a Package. And you can't make a method call in a REPR. That's against the rules. 11:40
masak oh :/
jnthn Don't "oh :/". Those rules keep a dozen other things sane. 11:41
masak then I don't know of a good solution.
it wasn't disappointment at the rule as such. I'm sure it's a great rule.
it was disappointment at the fact that there isn't an easy fix.
jnthn If there's any fix, it's to do what method dispatch does, which is let the HLL supply a handler for such errors, so it can rewrite them cleanly into some other exception type. 11:42
masak ok. 11:43
rt.perl.org/Ticket/Display.html?id=122232 11:44
11:47 SamuraiJack_ left 11:56 pdcawley left, pdcawley joined 12:04 brrt joined 12:21 FROGGS_ left, rindolf joined, mlawren left 12:31 rurban1 joined 12:33 FROGGS_ joined
colomon_ tadzik: ping? 12:44
12:50 rurban1 left, rurban1 joined 12:51 atroxaper joined
tadzik colomon_: pong 12:59
'sup? 13:00
colomon_ I think Build.pm overrides don't work right in emmentaler
or to be precise: I don't think they get the emmentaler temp library install in their INC path. 13:01
tadzik hm 13:02
I don't know why it would 13:03
oh hm 13:04
@*INC.push('.')
perhaps that'd work better if it was '/full/path/to/cwd' rather than '.'?
or not
nah, I don't see anything that'd be impacted by a custom installation path 13:05
nwc10 there's a structural bug in the TAP parser 13:08
This isn't seen as a TODO:
not ok 49 - .split('') does the same thing as .split(/''/) (RT #112868)# TODO RT #112868
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=112868
nwc10 nor this, and the 2 that follow it:
not ok 142 - RT #116280# TODO RT #116280
synopsebot Link: rt.perl.org/rt3//Public/Bug/Displa...?id=116280
13:09 brrt left
nwc10 that's t/spec/S32-str/split-simple.rakudo.moar and t/spec/S32-str/sprintf.rakudo.moar 13:09
13:10 Guest40250 left
jnthn nwc10: On moar master, any less ASAN explosions? I'd been hoping the scan_registers one may have been fixed by one of my patches earlier today. If that doesn't get it, it'll be something else... 13:15
13:16 rurban1 left 13:17 pdcawley_ joined 13:18 pdcawley left, pdcawley joined 13:21 pdcawley_ left
colomon_ tadzik: (sorry for spacing out there) The thing is, on a normal install Build.pm has access to all installed modules, including any dependencies built for it. 13:23
but when you run smoker, it builds the dependencies somewhere not on the normal INC path.
I'm thinking in addition to @*INC.push('."), it needs .push("$.destdir/lib") (or something to that effect. 13:24
colomon_ is going afm due to Harry Potter reading 13:25
@afk
13:33 atroxaper left
nwc10 jnthn: not sure. t/spec/S32-list/pick.rakudo.moar failed but I can't see why 13:33
13:33 atroxaper joined
nwc10 t/spec/S32-list/roll.t remains ASAN unhappy 13:33
I don't see any backtraces with scan_registers 13:34
I'll disable the fixed size allocator and rebuid
although my fan club is watching me
13:35 rurban1 joined 13:36 BenGoldberg joined 13:37 atroxaper left 13:38 atroxaper joined, dwarring left 13:39 carlin joined 13:48 rurban1 left 13:50 sunme joined 13:51 sunme left 13:55 rurban1 joined
cognominal I wrote a p6 script that massages Grammar.pm to generate a dot file that visualizes the relation between the rules of the pod "subgrammar". The result : gist.github.com/cognominal/48bf861...6747cefb0. With graphviz installed, use dot -Tpdf pod.dot > pod.pdf to see the graph 13:58
BenGoldberg Not that it matters, but you know that the title of that page is "A fist shot", not "A first shot" ? 14:03
cognominal :) 14:06
BenGoldberg, using dot, it is appropriate that programming becomes a boxing art. 14:08
flussence (I've got a distro package manager that can output to dot... but graphviz doesn't handle 1000+ nodes in a single graph gracefully :) 14:20
14:20 rurban1 left
cognominal I did once a dot graph for the Perl 5 grammar, it was unreadable. 14:21
arnsholt I'm not sure the Perl 5 grammar is for mortals to understand 14:25
timotimo flussence: i think as long as you don't use PNG output, it should be fine 14:26
cognominal arnsholt, Perl 5 grammar is ok but the lexer is a crime against sane programming. 14:27
arnsholt Oh. I thought the grammar was where the real insanity was. Good to have that cleared up =) 14:28
cognominal the aphorism should be : only Perl 5 can lex Perl 5
masak guess TimToady learned his lesson on that one. Perl 6 doesn't even *have* a lexer! :P
cognominal: isn't it C lexing Perl 5, though? 14:29
cognominal dura lex sed Perl 5 lex.
masak: yes
arnsholt cognominal++ # Latin jokes! =D
cognominal with sed, that's a unix joke too.
arnsholt FWIW, I don't know of any better representation of grammars than grammars 14:30
They're not very grokkable, but any alternatives are worse IME
timotimo why don't we have a tool that turns grammars into railroad diagrams yet? 14:32
cognominal sometimes, I would like a bnfy role to twiddle grammar syntax so as to write <subrule> as subrule, and forces to write string as 'string'.
timotimo .o( can always implement source filters ) 14:33
cognominal timotimo: and avertize Perl 6 as the new Pascal :) and moar bytecode as the new pcode 14:34
probably one could translate pcode into moar bytecode.
timotimo %) 14:35
cognominal I don't have seen any other language than Pascal with syntax presented as railroad.
timotimo sqlite, dogeon 14:36
cognominal primepuzzle.com/tp2/syntax-diagrams.html
timotimo super helpful: the letter and digit railroads ... 14:38
cognominal A clickable railroad to go from one rule to another would be nice. 14:40
A railroad is a good way to learn a grammar without knowing the syntax of a grammar. 14:42
timotimo aye
cognominal Except it must be stripped from assertions. 14:43
timotimo that's right 14:44
14:44 sqirrel joined
timotimo but things like "this variable name must refer to an already defined variable" is not something you'd see in a traditional "grammar" anyway 14:44
14:45 atroxaper left
cognominal but for a first approach of a grammar, decrypting assertion is usually more an hindrance than a benefit 14:45
14:45 atroxaper joined 14:46 anaeem1 left 14:50 rurban1 joined 14:52 rurban2 joined 14:53 itz_ joined 14:55 rurban1 left, tgt joined 14:57 rurban2 left 15:07 rurban1 joined 15:15 sqirrel left 15:18 denis_boyun_ joined 15:19 sqirrel joined 15:32 itz_ left 15:45 atroxaper left, zakharyas joined 15:49 rurban1 left 15:50 rurban1 joined 15:51 itz_ joined 15:52 denis_boyun_ left 15:58 denis_boyun__ joined, guru joined, guru is now known as ajr_ 16:09 sqirrel left 16:13 rurban2 joined 16:16 rurban1 left 16:19 denis_boyun__ left 16:20 atroxaper joined 16:21 vendethiel joined 16:28 hoverboard joined, rurban2 left 16:29 btyler joined 16:33 zakharyas left 16:36 rurban1 joined
vendethiel m: sub foo(::T $) { say T }; foo(1); 16:43
camelia rakudo-moar 3756b5: OUTPUT«(Int)␤»
vendethiel m: sub foo(::T *@) { say T }; foo((1,));
camelia rakudo-moar 3756b5: OUTPUT«===SORRY!=== Error while compiling /tmp/dXxQAAV1GJ␤Slurpy positionals with type constraints are not supported.␤at /tmp/dXxQAAV1GJ:1␤------> sub foo(::T *@⏏) { say T }; foo((1,));␤ expecting any of:␤ …»
vendethiel m: sub foo(::T @) { say T }; foo((1,));
camelia rakudo-moar 3756b5: OUTPUT«(Parcel)␤»
vendethiel mh, yeah ...
Is there some kind of shortcut I'm missing to call a method on an object and just return it ? 16:48
16:52 denis_boyun joined
FROGGS_ m: class Foo { method bar { self } }; say Foo.new.bar 16:58
camelia rakudo-moar 3756b5: OUTPUT«Foo.new()␤»
FROGGS_ vendethiel: ^^
m: class Foo { has &.bar = -> Str $baz { 42 } }; say Foo.new.bar.("huh") # how can I avoid the dot before () ? 17:00
camelia rakudo-moar 3756b5: OUTPUT«42␤»
17:01 rurban1 left, denis_boyun left, rurban1 joined 17:02 rurban1 left
masak FROGGS_: you can't, because without the dot it means a different thing. 17:03
FROGGS_: .bar("huh") means "call the accessor of $!bar" 17:04
FROGGS_: .bar.("huh") means "call whatever's *in* what the accessor returns"
there's some wording about this somewhere, probably in S12.
FROGGS_ I think this disagrees: perlcabal.org/syn/S02.html#Ampersan...invocation 17:05
ChoHag Hooray I can use the debugger! :) .... Boo the debugger doesn't like threads :( 17:06
FROGGS_ bbiab
jnthn ChoHag: No, it really doesn't; it hasn't been updated since threads started to exist in Rakudo. 17:07
ChoHag Had I considered it for half a second, I'd have expected it.
I was too excited by the prospects of a) running in moar, and b) having a debugger at all. 17:08
17:09 ssutch joined
ssutch hello 17:10
masak FROGGS_: no, that's concordant with what I'm saying.
ssutch: oh hai.
ssutch rakudo: say (*+2)(4); 17:13
camelia rakudo-jvm 3756b5: OUTPUT«(timeout)» 17:14
..rakudo-{parrot,moar} 3756b5: OUTPUT«6␤»
ChoHag Unhandled exception in code scheduled on thread 34630670336 17:22
No exception handler located for warn in method Str at src/gen/m-CORE.setting:1018
I don't call warn. 17:23
17:32 hoverboard is now known as moistcherry
masak probably something internal did. 17:36
vendethiel FROGGS[mobile]: I thing you misunderstood me. I'm looking for something to call a function that returns whatever atm and have it return the object 17:38
17:39 BenGoldberg left 17:43 ssutch left 17:45 rurban1 joined 17:51 ssutch joined
zengargoyle are any of the Types implemented in pure p6? 17:53
17:53 lelf joined
vendethiel the Types ? 17:54
you mean like array and suchs ?
zengargoyle: github.com/rakudo/rakudo/blob/nom/...e/Array.pm
zengargoyle yeah, like Set or Hash, are there any where their source wouldn't have some NQP in them somewhere. 17:55
lelf Is there good emacs mode? (I see only p6-mode.el) 17:56
masak lelf: there's that, and I always felt cperl-model.el did a good job with Perl 6, too. 18:00
FROGGS_ vendethiel: what is 'the object' ? 18:01
vendethiel FROGGS[mobile]: i.e. `sub call($obj, Str $meth) { $obj."$meth"(); $obj }` 18:02
FROGGS_ vendethiel: well, then do exactly that
vendethiel and I wanted to know if it existed ATM in the libs
FROGGS_ m: sub call($obj, Str $meth) { $obj."$meth"(); $obj }; call(42, 'say') 18:03
camelia rakudo-moar 3756b5: OUTPUT«42␤»
FROGGS_ m: sub call($obj, Str $meth) { $obj."$meth"(); $obj }; say call(42, 'say')
camelia rakudo-moar 3756b5: OUTPUT«42␤42␤»
vendethiel jlongster.com/Compiling-JSX-with-Sw...Readtables <- cool readtables with sweetJS
FROGGS_ but there is not built-in that does that
18:06 user3 joined
masak vendethiel: is 'readtable' a Lisp/Scheme notion? 18:06
ChoHag My attribute trait stopped working :(
vendethiel masak: yep. Reader macros
i.e., in CL, you can program `]` to be "the number of closing parens you need".
18:06 user3 left
masak vendethiel: just found docs.racket-lang.org/reference/readtables.html -- interesting. 18:07
vendethiel racket++
dalek rl6-bench: b36e80b | (Geoffrey Broadwell)++ | microbenchmarks.pl:
Add first two Rat microbenchmarks
18:13
18:15 anaeem1 joined 18:22 [particle] joined 18:26 larryd left
itz_ I was wondering what language racket resembled but the logo rather gives the game away... 18:27
18:27 [particle] left 18:28 sqirrel joined, kaare_ left 18:31 zakharyas joined 18:35 sqirrel left 18:36 skids joined
masak .oO( the language resembles a teepee? ) :P 18:41
ssutch omg moar starts up so fast 18:44
is there a way to supplement -I via environment variables? 18:45
itz_ PERL6LIB 18:46
ssutch <3 itz_
masak yes, moar's startup is pretty impressive. 18:47
ssutch (back to p6 after a year hiatus. previously, on ssutch: parrot) 18:48
jnthn r-m managed to regress a bit recently startup time wise, sadly 18:50
Well, more the r and then m, and probably all backends.
ssutch still, pretty awesome and back-pats all around
jnthn But yeah, Moar wins on startup time out of them still :)
japhb_ jnthn: OOC, why the startup time regression? Just more in the setting? 18:58
jnthn japhb_: The setup work for @*INC using the new CompUnitRepo stuff
lizmat++ is aware of it and I think has plans to investigate :) 18:59
19:00 atroxaper left 19:02 rurban1 left 19:05 cooper_ joined 19:11 BenGoldberg joined, darutoko left 19:15 vendethiel left, itz_ left 19:24 zakharyas left 19:26 denis_boyun_ joined 19:31 ssutch left, sam_ joined 19:41 itz_ joined 19:44 virtualsue joined 19:46 sam_ left, ssutch joined, carlin left 19:47 carlin joined 19:48 carlin left 19:49 carlin joined, Sqirrel joined 19:55 kivutar joined 19:56 araujo joined, araujo left, araujo joined
zengargoyle i've come to the conclusion that i'm bad at YNGTNI 19:57
19:57 rurban1 joined 19:59 vendethiel joined
zengargoyle 3 simple Bool flags became a restricted SetHash with an EnumMap that still doesn't do what i want. and i'm not even supporting 2 of the flags in the first place! 20:04
20:06 akagi201_ joined 20:07 rurban1 left
nwc10 Might be of some interest to some folks here if they've not already seen it: morepypy.blogspot.co.uk/2014/07/pyp...lease.html 20:08
20:09 vendethiel left
nwc10 The followup 3 months later is likely to be more interesting than this one: alexgaynor.net/2014/jul/04/your-pyt...s-evolved/ 20:09
20:10 vendethiel joined
ssutch so i rakudo'd with --gen-moar --gen-nqp --backends=moar; do i have to install something else to get the debugger? 20:10
perl6-debug-m complains of a missing Debugger::UI::CommandLine
20:10 mlawren joined 20:13 rurban1 joined 20:14 moistcherry is now known as hoverboard
ssutch ok derp, had to install panda and the library 20:14
jnthn Yes, you need to install that library to provide a UI for the debugger
The thing inside Rakudo is just the "driver", which needs maintaining along with the compiler 20:15
ssutch cool, thanks jnthn 20:16
20:17 denis_boyun__ joined
FROGGS_ Stage parse : error:imcc:loadlib directive could not find library `nqp_dyncall_ops' :o( 20:18
20:18 kaare_ joined, rurban1 left 20:19 denis_boyun_ left
jnthn tssk 20:20
I have a multi-backend patch for NQP and the NQP Parrot build jsut failed for me.
FROGGS_ I added the nativecast op but I dunno what went wrong
jnthn I jsut get loads of: 20:21
nqp_group.obj : error LNK2001: unresolved external symbol __imp_Parrot_pmc_new
nqplexinfo.obj : error LNK2001: unresolved external symbol __imp_Parrot_interp_register_native_pcc_method_in_ns
FROGGS_ O.o
when was the last time your built nqp-p? 20:22
jnthn Not sure
Could be a couple of weeks ago
FROGGS_ because we upgraded to parrot 6.5.0 at the tuesday before our 2014.06 happened 20:23
dalek p: 32ddb22 | jnthn++ | src/vm/ (4 files):
Add cleardispatcher op for all backends.

Provides a way to clear the dispatcher, rather than taking it. Leads to simpler code when an optimzier can emit it. MoarVM and JVM patches known to build fine; wasn't able to build Parrot, but should be right.
20:29
kudo/nom: ebd3166 | jnthn++ | / (2 files):
Try to optimize takedispatcher to cleardispatcher.

The latter is cheaper and simpler code. In many of the simple ops, we do not make any kind of call, and thus could never call one of the defering things (nextsame, etc.)
20:31
timotimo jnthn: "Make be able to simplify"? :) 20:32
jnthn heh, where is that?
My English is awesome.
timotimo Make English is Awesome 20:33
dalek kudo/nom: fc49436 | jnthn++ | src/Perl6/Optimizer.nqp:
Fix typo; timotimo++.
20:34 mlawren left
timotimo :P 20:35
success! i took about a minute of your valuable optimizer work time away from you to fix a little typo! 20:36
i feel so productive and helpful ... not!
masak timotimo++ # ... so! 20:37
20:40 kaare_ left 20:42 virtualsue_ joined 20:43 virtualsue left, virtualsue_ is now known as virtualsue 20:45 denis_boyun__ left 20:46 denis_boyun_ joined 20:49 rurban1 joined 20:51 rurban2 joined 20:52 denis_boyun_ left 20:53 rurban3 joined, rurban1 left 20:55 virtualsue left, rurban2 left 20:56 ajr_ left 20:57 rindolf left, rurban3 left 21:01 anaeem1 left, zengargoyle left 21:04 kivutar left 21:05 virtualsue joined, jack_rabbit joined 21:07 virtualsue left 21:08 zengargoyle joined, tgt left 21:09 virtualsue joined
zengargoyle github.com/zengargoyle/Text-Fortune.git is probably ready for a lookover and maybe ecosystem 21:11
it has some not-great stuff, but does do a version of strffile(1) and fortune(6) 21:13
*strfile(1)
21:16 pochi left 21:24 rurban1 joined 21:26 virtualsue left 21:27 virtualsue joined
masak good night, #perl6 21:32
japhb_ g'night, masak 21:34
What is the right way to round a num and get an int in NQP?
(Or Num/Int, for that matter)
21:43 [particle] joined 21:44 virtualsue left 21:49 Possum left 21:55 pmurias joined 21:58 dragon_d joined 22:00 rurban1 left 22:01 spider-mario left
ssutch i must be missing something. i should be able to do IO::Spec.os.join('foo','barf') correct? 22:02
or even just IO::Spec.join('foo', 'barf') but its complaining about not having enough arguments 22:04
22:05 rurban1 joined
ssutch ah no its right i dont think join does what i was expecting (take 'a','b','c' and turn it into 'a/b/c' in a platform-generic way) 22:06
FROGGS_ catpath or so should do
ssutch m: say IO::Spec.catpath('a','b') 22:07
camelia rakudo-moar 3756b5: OUTPUT«Not enough positional parameters passed; got 3 but expected 4␤ in method catpath at src/gen/m-CORE.setting:13376␤ in method catpath at src/gen/m-CORE.setting:13761␤ in block at /tmp/DFmBLt_Qmg:1␤␤»
FROGGS_ m: say IO::Spec.catdir('a','b') 22:08
camelia rakudo-moar 3756b5: OUTPUT«a/b␤»
ssutch aye, thanks FROGGS_ 22:09
22:12 carlin left, carlin joined, telex left 22:14 telex joined 22:17 dmol left, akagi201_ left
ssutch im getting No such method 'IO' for invocant of type 'Any' for this code: gist.github.com/samuraisam/c59386f4059f349f6e10 22:20
does that not seem somewhat strange?
FROGGS_ m: say IO::Spec.catdir($?FILE, 'Proto', 'ql2_13x.proto'); 22:21
camelia rakudo-moar 3756b5: OUTPUT«/tmp/tUFgelVQ_0/Proto/ql2_13x.proto␤»
FROGGS_ I have no idea why
perhaps it is something in PB::Model::Generator? 22:22
ssutch derp, it must be 22:29
i'm full of derps today
FROGGS_ *g* 22:30
22:30 carlin left
dalek kudo/lex2loc: 0cc9125 | jnthn++ | src/vm/moar/Perl6/Ops.nqp:
Fix a .DEFINITE code-gen bug.

Should not blindly re-use registers that may belong to locals.
22:36
kudo/lex2loc: be0d277 | jnthn++ | src/Perl6/Optimizer.nqp:
First pass at enabling lexical => local lowering.

Needs to take quite a bit of care, due to binder failover. This gets us through the build and passing the sanity tests. Quite a bunch of spectest fails, probably due to failures in the analysis.
rl6-bench: 7c5a914 | (Geoffrey Broadwell)++ | / (4 files):
Add first Complex benchmark, rc-mandelbrot
ssutch is there any way to compute an argument passed to a use statement? 22:41
i need to compute a path that is passed to PB::Model::Generator 22:42
it works fine when the argument is a static string
22:45 grondilu left
ssutch i tried throwing that code in a BEGIN block but that didn't seem to do the trick 22:46
jnthn Try declaring a constant to hold it 22:50
ssutch ah, changing the variables into constants seems to have worked 22:53
thanks jnthn!
jnthn np 22:56
constants are computed at compile time. 22:57
ssutch is there a way to inspect a module to see what's in it? 22:59
eg python: dir(literally_anything)
23:01 rurban1 left 23:03 BenGoldberg left, rurban1 joined 23:07 rurban1 left 23:08 xenoterracide__ joined
jnthn Depends what you mean; can always look at what's inside a package with Foo::Bar::.keys for example 23:14
23:18 Alina-malina left
ssutch cool 23:18
is there any way to re-export what is exported from a module you used?
for example module A; use B 'blah'; where B generates some classes; i would like to be able to access those via A like A::BlahClass.new 23:19
jnthn Well, can always do a BEGIN block and poke them into the package. 23:21
23:22 itz_ left
japhb_ 'perl6 --profile' 23:25
gives me 'No profiling support'
Anything I can do about this?
ssutch ah thanks jnthn i will try that out
jnthn japhb_: Write a profiler? :P
.oO( I don't think that was the desired answer... )
23:26
japhb_ jnthn: Ah, I was hoping the answer was "compile Rakudo with different options"
jnthn m: module B { class A { } }; module C { BEGIN { for B::.kv -> $sym, $obj { C::{$sym} := $obj } } }; say C::A 23:27
camelia rakudo-moar fc4943: OUTPUT«===SORRY!===␤Error while compiling op callstatic (source text: "say C::A"): Object of type A in QAST::WVal, but not in SC␤»
jnthn um...
m: module B { class A { } }; module C { BEGIN { for B::.kv -> \sym, \obj { C::{$sym} := $obj } } }; say C::A
camelia rakudo-moar fc4943: OUTPUT«===SORRY!=== Error while compiling /tmp/idR1UjQoYZ␤Variable '$sym' is not declared␤at /tmp/idR1UjQoYZ:1␤------> IN { for B::.kv -> \sym, \obj { C::{$sym⏏} := $obj } } }; say C::A␤ expecting any of:␤ …»
jnthn m: module B { class A { } }; module C { BEGIN { for B::.kv -> \sym, \obj { C::{sym} := obj } } }; say C::A
camelia rakudo-moar fc4943: OUTPUT«(A)␤»
jnthn japhb_: Well, I use the VS profiler to profile MoarVM at C level, but we don't have MoarVM profiling support yet. 23:28
ssutch jnthn: that is pretty rad, thank you
jnthn japhb_: It does work on Parrot. 23:29
japhb_: It spits out something you can view in KCacheGrind
japhb_ jnthn: Understood. Problem is, when I'm trying to figure out where r-m is slow ....
japhb_ is trying to find the low hanging fruit for your "Extract microbenchmarks from rc-forest-fire" request 23:30
jnthn japhb_: Yeah, I know Moar supporting profiling is rather needed. 23:31
I'm starting to miss it quite a bit too :)
23:31 rurban1 joined
jnthn Luckily, there's already a bytecode transformation framework to hand... :) 23:32
japhb_ heh
23:33 ren1us joined 23:34 atroxaper joined 23:36 rurban1 left, zengargoyle left
ssutch so close gist.github.com/samuraisam/32cc2078f066847752c3 (?) 23:36
23:38 zengargoyle joined, atroxaper left 23:45 xragnar_ joined, xragnar left, xragnar_ is now known as xragnar 23:49 Alina-malina joined, Alina-malina left, Alina-malina joined 23:51 rurban1 joined 23:53 breinbaas left 23:54 breinbaas joined 23:55 rurban1 left 23:57 klapperl_ joined, klapperl left
lelf say 1...Inf timeouts nowadays. Is it expected? 23:58