»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:02 RabidGravy left 00:16 cdg left 00:18 jabus left 00:22 rickbike left 00:23 aindilis left 00:24 aindilis joined, CurtisOvidPoe left 00:26 CurtisOvidPoe joined 00:27 Actualeyes left 00:29 pierre-vigier joined 00:37 wollmers left 00:45 spider-mario left 00:55 yqt left 01:03 jme` left 01:07 yeahnoob joined, pierre-vigier left 01:09 lokien_ left 01:14 pierre-vigier joined 01:19 cpage_ left 01:22 pecastro left 01:24 cpage_ joined
pierre-vigier Any way to uninstall a module? 01:31
yoleaux 14 Jan 2016 07:21Z <nine> pierre-vigier: panda does not yet support versioned requires
01:33 protium joined 01:36 leont left 01:38 BenGoldberg joined 01:40 pierre-vigier left 01:41 woodruffw left, woodruffw joined 01:44 pierre-vigier joined 01:46 pecastro joined 02:02 adu joined 02:03 xpen joined 02:04 adu left 02:05 pecastro left 02:06 pdcawley_ joined 02:07 pdcawley left 02:15 pierre-vigier left 02:16 pierre-vigier joined 02:24 harrison_ joined, harrison_ left, cognominal left 02:25 cognominal joined 02:27 pecastro joined 02:29 yurivish left, azawawi joined 02:32 pecastro left, pecastro joined 02:45 Actualeyes joined, ilbot3 left 02:47 ilbot3 joined 03:02 maybeyes joined
maybeyes p6: my @ls = qx "ls"; @ls.elems.say 03:03
camelia rakudo-moar 3259ba: OUTPUT«qx, qqx is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in sub QX at src/RESTRICTED.setting line 11␤ in block <unit> at /tmp/tmpfile line 1␤␤»
timotimo hm. does zef do uninstall?
otherwise, allegedly it's only a few lines of patch once that one branch is merged ... 03:04
mspo so rakudostar has p6doc but is otherwise out of date; rakudobrew gets you up to date but is missing p6doc 03:06
sortiz mspo: panda can install p6doc 03:09
03:09 kid51_ joined
mspo oic 03:10
03:11 kid51 left, kid51_ is now known as kid51
azawawi timotimo: nope 03:14
and hi :)
mspo if only the dependencies built ;) 03:16
URI:ver<v0.1.1>:auth<>:api<> already installed 03:17
azawawi i have been researching opencv + perl6 for a while... apparently github.com/Itseez/opencv_contrib/pull/15 is our only route atm for latest c++ api support otherwise it is plain legacy c api
given nativecall not being able to do std::string c++ name mangling 03:19
mspo Unhandled exception: Method 'IO' not found for invocant of class 'Any'
ugh
03:22 dwarring left, M___ left 03:23 maybeyes left, mrons left 03:24 azawawi left
sortiz mspo: I guess I'm lucky ;) 03:25
03:28 kid51 left
mspo something 03:44
03:44 xpen left
skids .tell Zoffix I pushed some ramblings to user-experience 03:45
yoleaux skids: I'll pass your message to Zoffix.
03:47 xpen joined 03:53 noganex joined 03:56 noganex_ left
autarch how can I get the exit status of something run via qqx? 03:56
actually, maybe I should use run 03:57
03:59 deepika__ joined 04:00 grassass left 04:01 Actualeyes left 04:02 deepika__ left, colomon left
autarch m: my $proc = run( 'echo', 'hello', :out, :merge );say $proc.out.slurp-rest; 04:04
camelia rakudo-moar 3259ba: OUTPUT«run is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in sub run at src/RESTRICTED.setting line 14␤ in block <unit> at /tmp/_tN2tbICEr line 1␤␤»
autarch that core dumps for me on my machine
ah, it's the :merge that does it 04:05
rt.perl.org/Ticket/Display.html?id=127273 04:07
ugexe rt.perl.org/Public/Bug/Display.html?id=125756 04:10
autarch argh 04:16
I searched for core dumb 04:17
dump*
04:17 Actualeyes joined
autarch I'd merge the tickets if I could 04:17
04:28 colomon joined, _nadim left 04:37 grassass joined 04:40 MadcapJake joined, pierre-vigier left 04:50 skids left
MadcapJake hello everybody! I thought I'd take my own advice and try designing a more sleek perl6 logo: just some simple gimp hacking but still looks kind of nice, twitter.com/MadcapJake/status/6878...0397976578 04:52
Probably won't quell any logo naysayers, but I saw python had a logo like this and I wanted to make things balanced in the world ;) 04:53
The angle of camelia really makes me feel the text is off-center, but i used a vertical guide so ¯\_(ツ)_/¯ 04:56
04:58 mtj_ left 04:59 mtj_ joined 05:03 pierre-vigier joined 05:07 lastAck99 left 05:12 BenGoldberg left
autarch cute 05:15
I don't know why people freak out over the logo - the logo is _way_ down on the list of things that will make or break perl 6
05:18 yurivish joined
MadcapJake agreed, it's definitely just an issue because people like to argue and they don't really know the langauge well enough to actually argue against anything meaningful :P but still I like reading various programming language websites and many of them have sleek modern interfaces that I think camelia just doesn't mesh well with. This took me all of 15 minutes to do so, nbd 05:19
05:22 linuxuser9000 joined 05:26 pierre-vigier left
TEttinger MadcapJake: this would be fun as an exercise to make a completely-different-tone, same-idea version of camelia. I may hop on this bandwagon, I think I may start by making a pixel/voxel art butterfly with P 6 on the wings 05:26
MadcapJake Great idea! 05:27
I'd like to see a butterfly done in the vein of golang's gopher or plan 9's bunny 05:28
TimToady
.oO(all your mascots are belong to us)
05:30
MadcapJake :D definitely, let's take every other language's icon/logo/mascot and reimagine them as butterflies 05:32
we'll then print them and create an art exhibit called "Metamorphosis or How I Learned To Love Perl 6" and tour the world creating a massive Perl 6 fervor! 05:34
autarch I do think the perl websites could be improved - I wanted to make doc better but I got hung up on my rewrite of Pod::To::HTML - said rewrite works great except that it uses massive amounts of memory for reasons no one can explain
perl6 websites, to clarify (I mean p5 too, but that's OT)
05:38 bzipitidoo joined
bzipitidoo msg camelia p6: say "hi"; 05:38
05:38 cpage_ left
MadcapJake m: say "hi"; 05:39
camelia rakudo-moar 3259ba: OUTPUT«hi␤»
05:46 dj_goku left 05:50 _nadim joined 05:53 Cabanossi left 05:55 Cabanossi joined
bzipitidoo m: grammar Tst { rule TOP { ^ <blok>* $ }; rule blok { '(' ~ ')' [ <-[()]> | <blok> ]* }; }; say Tst.parse("((a) b)"); 06:04
camelia rakudo-moar 3259ba: OUTPUT«「((a) b)」␤ blok => 「((a) b)」␤ blok => 「(a) 」␤»
bzipitidoo m: grammar Tst { rule TOP { ^ <blok>* $ }; rule blok { '(' ~ ')' [ <-[()]> | <blok> ]* }; }; say Tst.parse("((a)xb)");
camelia rakudo-moar 3259ba: OUTPUT«Nil␤»
06:06 pierre-vigier joined
bzipitidoo why doesn't this work? 06:11
m: grammar Tst { rule TOP { ^ <blok>* $ }; rule blok { '(' ~ ')' [ <-[()]> | <blok> ]* }; }; say Tst.parse("(ab)");
camelia rakudo-moar 3259ba: OUTPUT«Nil␤»
bzipitidoo but this works:
m: grammar Tst { rule TOP { ^ <blok>* $ }; rule blok { '(' ~ ')' [ <-[()]> | <blok> ]* }; }; say Tst.parse("(b)");
camelia rakudo-moar 3259ba: OUTPUT«「(b)」␤ blok => 「(b)」␤»
06:11 cpage_ joined 06:13 pat_js joined
MadcapJake TEttinger, TimToady: github.com/MadcapJake/metamorphosis 06:18
06:18 khw left 06:22 ParsonsNose left 06:31 bzipitidoo left 06:43 telex left, pdcawley joined 06:44 telex joined, pdcawley_ left 06:48 pierre-vigier left 06:51 xargs joined 06:53 bartolin_ left 06:54 pierre-vigier joined 06:56 bartolin joined 06:57 xinming_ left, xinming joined 06:58 xargs is now known as zmisc 06:59 zmisc is now known as zcm 07:10 sjoshi joined, domidumont joined
[Tux] csv-ip5xs 50000 18.452 12.835 07:13
test 50000 23.319 22.679
test-t 50000 12.831 11.950
csv-parser 50000 51.315 0.925
07:13 rfarr joined 07:14 rfarr is now known as REF 07:15 lokien_ joined 07:16 domidumont left 07:17 domidumont joined 07:20 _nadim left, _nadim joined 07:23 REF is now known as ref 07:25 _nadim left 07:26 bjz joined 07:31 _nadim joined 07:36 bjz left 07:42 rurban joined 07:45 firstdayonthejob joined 07:56 frankjh joined 07:57 _nadim left 08:04 abraxxa joined 08:07 b10m joined 08:11 darutoko joined 08:12 rurban left
TEttinger MadcapJake: bigger versions didn't look as good, but at icon size this isn't bad dl.dropboxusercontent.com/u/119146..._Pixel.png 08:15
08:17 bjz joined
dalek c: 48e04e2 | (Jim Davis)++ | doc/Language/glossary.pod:
two typos and a missing paren
08:18
08:22 Helge joined 08:25 RabidGravy joined 08:28 pierre-vigier left
RabidGravy marnin! 08:28
Helge Greetings 08:29
08:29 pierre-vigier joined 08:32 pierre-vigier left 08:34 Helge left 08:35 zakharyas joined 08:36 firstdayonthejob left 08:43 rurban joined, rurban left 08:45 rurban joined
dalek c: 03d42fc | (Jim Davis)++ | doc/Language/ (4 files):
assorted spelling/typo errors
08:45
08:46 rurban left
pat_js Yesterday TimToady said there was a thought that autothreading (of junctions) over if/given/when… blocks would be confusing. Is there some elaboration on that somewhere. Chatlogs would be fine. 08:47
masak good morning, #perl6! 08:48
pat_js: dunno about a written-down elaboration, but I know I'd be confused if, say, `if all(1, 2, 3) { ... }` ran the block three times 08:49
ditto given and while loops 08:53
actually, that's yet another reason a for loop is not exactly sugar for a .map :)
oh wait, it is... 08:54
&map (or rather, its callback) also doesn't autothread over a junction by default
pat_js hmm. But with that you have to be super paranoid if you want Conditions to be true inside an if block
masak m: map { say $_ }, 1, any(2, 3), 4'
camelia rakudo-moar 3259ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DasDIcSWmT␤Two terms in a row␤at /tmp/DasDIcSWmT:1␤------> 3map { say $_ }, 1, any(2, 3), 47⏏5'␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement …»
masak m: map { say $_ }, 1, any(2, 3), 4
camelia rakudo-moar 3259ba: OUTPUT«1␤any(2, 3)␤4␤»
masak m: map -> Any $_ { say $_ }, 1, any(2, 3), 4 # you'd have to do this 08:55
camelia rakudo-moar 3259ba: OUTPUT«1␤2␤3␤4␤»
08:55 rurban joined
masak pat_js: I don't understand what you mean -- could you elaborate with an example, p'haps? 08:55
08:55 Actualeyes left
El_Che .seen ovid 08:57
yoleaux I saw Ovid 7 Nov 2014 15:43Z in #perl6: <Ovid> Hello, timotimo.
El_Che .seen curtisovidpoe
yoleaux I saw CurtisOvidPoe 9 Jan 2016 23:19Z in #perl6: <CurtisOvidPoe> In fact, some companies have built in-house COBOL compilers with custom extensions due to the fear of COBOL providers going bankrupt.
CurtisOvidPoe /me waves
El_Che ahaha
silly me 08:58
CurtisOvidPoe: question
pat_js m: for 4,(0&3) { if $_ != 0 {say 4/$_} else { say "I don't divide here" }}
camelia rakudo-moar 3259ba: OUTPUT«1␤Attempt to divide 4 by zero using div␤ in block <unit> at /tmp/z6oVni3eQw line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/z6oVni3eQw line 1␤␤»
El_Che your blogpost about subset is kind of the only doc about it: blogs.perl.org/users/ovid/2015/02/a...erl-6.html
CurtisOvidPoe Shoot.
masak CurtisOvidPoe: wow, that is some serious risk mitigation. (building your in-house COBOL compiler.)
pat_js now think about what happens if that isn't iside a loop, but somewhere in the coode
El_Che CurtisOvidPoe: maybe could the subset part be adapted and added to the doc? 08:59
pat_js s/cood/cod/
08:59 rurban left
CurtisOvidPoe masak: COBOL fell so dramatically that there were major concerns. Scary. 08:59
pat_js for 4,(0&3) { if $_ != 0 && $_ !~~ Junction {say 4/$_} else { say "I don't divide here" }}
08:59 linuxuser9000 left
pat_js m: for 4,(0&3) { if $_ != 0 {say 4/$_} else { say "I don't divide here" }} # "save" variant 09:00
camelia rakudo-moar 3259ba: OUTPUT«1␤Attempt to divide 4 by zero using div␤ in block <unit> at /tmp/PHljYLSzFj line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/PHljYLSzFj line 1␤␤»
masak pat_js: yes, got it.
CurtisOvidPoe El_Che: if people want to use if for that, that’s perfectly fine with me.
RabidGravy amd then you had years of really, really ugly programs as all the cobol programmers cross trained to visual basic and delphi
masak pat_js: in my view, the concern isn't that junctions are somehow mis-designed (and that if/while etc should also autothread over them), but that passing junctions around as values in a program is not compatible with responsible programming. 09:01
pat_js: OMNSHO, use of junctions should be *very* local.
CurtisOvidPoe One company I ran away from retrained the COBOL team I was on to use C++. Gave ‘em a two-week crash course and let them loose without even experts to back them up.
masak IMNSHO*
CurtisOvidPoe: that's probably all too common.
CurtisOvidPoe: object-orinted design -- how hard can it be, right? 09:02
people even have prior experience with "objects" from real life!
09:03 FROGGS joined
CurtisOvidPoe masak: what’s worse, COBOL code is completely procedural and COBOL itself has no concept of scope. Thus, you variable names like GLJ-030R-SUBTOTAL-TAX to simulate namespaces. Calling a function? Set your global variables, call the function, and inspect the globals that it alters. 09:04
pat_js masak: I didn't assume that Junctions are mis-designed. I'm asking these questions to understand what they're designed for.
Now I begin to see, that the auto-threads in perl6 must be super-light. 09:05
CurtisOvidPoe El_Che: if you do use that code for docs, be aware that the subset example I gave is ultimately a synonym for UInt. I didn’t know about UInt when I wrote that.
09:06 CurtisOvidPoe left, CurtisOvidPoe joined
masak pat_js: perl6advent.wordpress.com/2014/12/...junctions/ 09:06
CurtisOvidPoe: sounds both very dreary and error-prone at the same time. 09:07
DrForr That's what it was like back in the Elder Days :)
CurtisOvidPoe masak: it was exciting when it was created because it was state of the art. And it wasn’t too error prone because COBOL is so limited that many programs are small utilities that can only do one thing and they’re joined together using something called JCL. In many ways, it looks remarkably like a unix pipeline. 09:08
09:08 andreoss joined
DrForr Oh, gawds, when I was doing punchcards JCL was something you copied from one card to another painstakingly, with no idea of what it was. It just worked, and if you were a character off you'd be waiting another week for access to run your program. 09:09
El_Che CurtisOvidPoe: I'll try to find the time to rewrite it (generic). Maybe you could have a look afterwards? My subset knowledge originates from your post :) 09:10
09:11 pmurias joined
CurtisOvidPoe El_Che: I’d be happy to. 09:11
El_Che DrForr: what about the new Grammar + Actions tutorial rewrite you considered writing?
CurtisOvidPoe: thx!
DrForr El_Che: Doing that for FOSDEM. 09:12
CurtisOvidPoe DrForr: when I was doing JCL in the late 90s, even the senior COBOL devs didn’t know JCL. They would do exactly what you were describing, but using dumb terminal emulators on our PCs.
pat_js ah, okay.
El_Che DrForr: I would love to see some of it afterward in the regular perl6 doc. For me, the tutorials wasn't very clear at all :(
DrForr: looking forward to your talk 09:13
DrForr Oh, you're coming? Cool. I'm hoping it'll be practice for FOSDEM :)
Er, practice for OSCON. TDM conferences.
pat_js sorry, i don't know why I have a keyboard macrop for saying ah okay in the #perl6 buffer
andreoss m: say ().>>(1)
camelia rakudo-moar 3259ba: OUTPUT«()␤»
andreoss why this valid?
El_Che DrForr: I'll be the guy to rushing you out of the podium because you're time is up :)
DrForr Just use a cane. You can borrow mine. 09:14
El_Che CurtisOvidPoe: ah good times! I have fond memories of participating in a Mainframe+Cobol to Solaris+java+cobol migration
fond as "fond, now"
andreoss m: say (1,2,3).>>()
camelia rakudo-moar 3259ba: OUTPUT«Non-QAST node visited NQPMu␤Weird node visited: NQPMu␤===SORRY!===␤Unknown QAST node type NQPMu␤»
09:14 Actualeyes joined
DrForr (yes, I'm still bringing the damn thing - My leg got tweaked just walking down the street on my way home from work on Tuesday.) 09:15
El_Che DrForr: I'll try to reserve some non snow weather for FOSDEM 09:16
09:16 andreoss left
pmurias CurtisOvidPoe: was it your Perl 6 "killer app" idea to allow mixing cobol and perl 6 for migration? ;) 09:16
DrForr Thanks, I'd appreciate it. As long as it's not like 2013 was when I almost didn't make it due to drifting on the way to the Belgian border. 09:17
CurtisOvidPoe pmurias: Yes. There’s a lot of background for understanding why. There have been multipel attempts to solve the COBOL dlilemma and they face technical, social, and political probelms. With the Perl 6 migration hack, you can sidestep all of those problems. 09:18
El_Che I feel a Inline::COBOL coming 09:19
CurtisOvidPoe: shall I change the title of your talk? :)
CurtisOvidPoe El_Che: I want to, but no time right now :) 09:20
DrForr Gawd. COBOL support using Roman Numerals. I'm a bad, *bad* man :)
pmurias El_Che: I think what CurtisOvidPoe intended was more a cobol slang than just inline
RabidGravy DrForr++ # madness is the answer 09:21
DrForr . o ( "They *SUCK*." )
CurtisOvidPoe A slang would be better so that one could gradually replace the COBOL with Perl 6, one procedure at a time.
DrForr Sorry, that particular RHPS callback is virtually ingrained.
CurtisOvidPoe: I'm working on something almost equally evil, we need to talk :) 09:22
CurtisOvidPoe DrForr: See you in a couple of weeks in Brussels :)
09:22 andreoss joined
DrForr After a few stouts it could get ugly :) 09:23
09:25 salv0 joined
CurtisOvidPoe Nah, Brussels will always be lovely :) 09:25
09:26 pdcawley left
El_Che pmurias: COBOL slang. And to think I used to like CurtisOvidPoe... 09:26
09:26 zakharyas left 09:27 rindolf joined
El_Che thing that CurtisOvidPoe and DrForr are laughing maniatically while petting a cat 09:27
ks
CurtisOvidPoe El_Che: if it works, it’s a hell of a business model to get companies out of their COBOL trap. They want to (hell, their devs are literally dying), but haven’t found a way. It’s a multi-billion euro industry that has repeatedly tried and failed to solve this problem. 09:28
09:28 _nadim joined 09:29 lokien_ left
TEttinger CurtisOvidPoe: do eeeeet! this would be great for those businesses, for perl 6 as a community, and for the security of the customers of those businesses to not be running decades old cobol and instead be running perl 6! 09:30
andreoss is there plans for rakudo-star 6c? 09:31
09:31 g4 joined, g4 left, g4 joined
moritz andreoss: yes, after the 2016.01 compiler rrelease 09:32
CurtisOvidPoe: aren't there any successful Java <-> Cobol interop products that would enable a gradual migration?
CurtisOvidPoe TEttinger: started once, but with one company at home and another one the way, I’d need a major investor to step up to the plate for this one :)
RabidGravy when I've got this dBase thing I've got down the back of the sofa finished, I'll have a think about a dBase/Clipper slang 09:33
lots of that stuff about still too
_nadim Good morning all.
CurtisOvidPoe moritz: those haven’t been too popular that I’m aware of. Miuch of COBOL is “dump out this file and let something else read it.” Don’t need Java/COBOL interop for that. Direct Java/COBOL interop also doesn’t solve the migration strategy. There have been tools to auto-rewrite COBOL into Java, but those have largely been regarded as a disaster: rewriting procedural crap with all global variables in to Java 09:35
“classes” means you’ve created a bunch of incomprehensible Java code and are likely handing it over to people with less business knowledge than the COBOL devs.
moritz CurtisOvidPoe: makes sense; thanks for the explanation 09:36
RabidGravy yeah, there was also some thing that did Informix 4GL -> Java back in the day, generated the most awful code
DrForr gets a nervous tic at the mention of Informix 4GL. 09:37
_nadim .see tadzik 09:38
.seen tadzik
yoleaux I saw tadzik 14 Jan 2016 23:34Z in #perl6: <tadzik> that'd be nice
masak CurtisOvidPoe: on the bright side, I can see the whole COBOL/JCL story working out quite well if managed well -- a bit like the now-popular "microservices"
RabidGravy for one period in 90s I was doing more I4GL than anything else, tapered off at the turn of the century
masak CurtisOvidPoe: I guess the key is to minimize damage by actually keeping each component small. (like you hinted at.) 09:39
DrForr mutters something about NewEra, goes back to figuring out what he should be doing.
CurtisOvidPoe If I had the time or the money, I’d work on it, but I don’t right now :)
Also, the performance of Perl 6 would need to be DRAMATICALLY improved. Speaking of which, what’s the progress on that front? 09:40
09:41 leont joined
masak .oO( too much drama, not enough improvement ) :P 09:42
tadzik _nadim: I'm around 09:44
RabidGravy well, it's fast enough to stream reasonably high bit-rate MP3 from disc (albeit with some NativeCall involved,) so I'm reasonably happy
masak RabidGravy: that sounds really nice
pmurias CurtisOvidPoe: I see commits with minor improvements for various things a lot, not sure if any major breakthroughs are comming soon 09:45
RabidGravy I ought to actually make a real application with that at some point
09:46 yeahnoob left
CurtisOvidPoe pmurias: Bummer. That and the existing bugs are the two major drawbacks for Perl 6 right now. 09:47
09:47 TEttinger left
masak CurtisOvidPoe: if you have the tuits, putting together a list of those bugs somewhere would surely be helpful 09:47
(preferably with links to RT)
09:48 Floyd-ATC left
CurtisOvidPoe masak: Aside from the bugs I’ve posted via Rakudobug, they’re just general things people still keep stumbling on. One Pythonista I know has followed Perl 6 for a while with interest and he was complaining to me that he still regularly finds bugs. I do too, though with less frequency, so the general “not quite stable” sense seems to hold. 09:49
I expect that will improve, but the performance, that’s the killer.
09:50 _Gustaf_ joined
_nadim tadzik: Hi, I tried to Panda install --forced this morning and it did not work, "error: already installed" plus some crazy stuff. Let me get you an output. 09:50
nine _nadim: it's panda --force install 09:51
pmurias CurtisOvidPoe: jnthn++ is planning to focus on improving performance this year
nine _nadim: hence the "panda [options] <action> # OPTIONS GO IN FRONT!! Not like git." in panda --help
moritz stability and performance are the big topics for 2016, yes
DrForr As long as perl 6 doesn't become stable in the biological sense in the foreseeable future... 09:52
tadzik _nadim: yep, what nine says :) 09:53
_nadim nine: bleahhh! and of course my screen is just big enough to scoll that out and show me the options indented under the command
masak CurtisOvidPoe: well, taking an 8-year perspective, bug count and frequency have both *definitely* gone down
CurtisOvidPoe: I used to *average* one rakudobug a day. now it's much lower than that 09:54
CurtisOvidPoe Yes, I’m happy to see that. And yes, I’m looking forward to seeing what will happen by the end of the year :)
09:54 andreoss left
RabidGravy maybe I'm not pushing the envelope much but I have only found one show-stopping (for me) bug in the last six months and that has gone away 09:54
_nadim tadzik: yes, works fine, although options in the same order as most other programs do is nice too. but as always, one doe it wrong twice and then can go on ;)
09:55 espadrine joined
tadzik _nadim: well, panda is not (anymore) trying to override Perl 6's default behaviour here 09:55
or MAINs rather
which only allows options before for some reason
hopefully if it annoys enough people we can make it work with both 09:56
moritz the main reason is that the option parser is the same that rakudo itself uses 09:57
and for perl 6, perl6 -c foo -x parses the -c as an option for itself, and -x as an option for the program being called
though we can special-cases that if necessary 09:58
masak perl6.org/compilers/features lists Niecza as not having `goto`, but I distinctly remember sorear using a `goto` in a Perl 6 program on Niecza. 09:59
El_Che masak: if niecza is abandoned, it is not better to remove it? 10:00
RabidGravy I had a think about making something more like Mono.GetOptions using traits or something to mark the targets for options
I'll probably won't get round to making it though 10:01
masak El_Che: there's a difference between "not actively developed" and "unusable"
El_Che masak: certainly
10:02 leont left
pmurias CurtisOvidPoe: re minor improvements for various things I don't want to downplay those optimalizations as it's likely they improved those things loads, the MoarVM guys also seem to have some JIT improvements being worked on in a branch 10:03
10:03 ChoHag joined 10:04 andreoss joined
El_Che question: while testing a class (from class.t), can I access private methods to test the as well? Or do I need to mock a subclass, etc? 10:05
10:05 kjs_ joined, yurivish_ joined
RabidGravy or insert accessors for the test 10:05
El_Che ok, pretty much what I thought. thx 10:06
pat_js m: sub de-thread (Junction $j, &test){my $b;(sub ($x, &y) {return unless y($x);$b=$x;})($j, &test);return $b}; (&all,&any,&one,&none).map({de-thread $_(3,4),4==*}).say; # doesn't recognize the type.
camelia rakudo-moar 3259ba: OUTPUT«(4 4 4 4)␤»
10:07 yurivish left
nine I think....the named argument thing is actually quite easy to fix 10:09
RabidGravy El_Che, 'ere you go 10:17
m: class Foo { method !bar() { "bar" }}; for Foo.^private_method_table.kv -> $name, $method { Foo.^add_method("public-$name", method (|c) { $method.(self,|c) })}; say Foo.public-bar
camelia rakudo-moar 3259ba: OUTPUT«bar␤»
pmurias CurtisOvidPoe: for the JavaScript backend I'm working on the performance is a big unknown as it will likely end up to be a complicated dance with the js JIT 10:18
jnthn El_Che: I wrote some things on testing private methods in my STOMP module series, fwiw.
El_Che RabidGravy, jnthn: thx, looking are both examples
jnthn (My overall advice being: don't.) 10:19
El_Che jnthn: as in "don't bother testing private methods"?
jnthn El_Che: As in "testing private methods makes your tests fragile in the face of what should be refactors completely scoped to the class, and so means your tests are less valuable than they should be for supporting refactoring" 10:20
10:21 pierre-vigier joined
El_Che jnthn: i see. It makes sense. 10:21
jnthn Yeah. I doubt I'll get everyone to agree with me on this point. :) But I know I've felt much better supported by my tests since I started viewing them as Just Another Client of the code under test. 10:22
dalek kudo/main_named_params: 84862ee | (Stefan Seifert)++ | src/core/Main.pm:
Allow for named options to go after positionals for MAIN args

Previously "panda install --force" would have panda's MAIN sub called with two positional arguments: ("install", "--force") With this patch, it's called as MAIN("install", :force) thus being more consistent with how other CLI programs work.
nine There you go.
moritz: ^^^
tadzik: ^^^
RabidGravy nine++ 10:23
arnsholt jnthn: The argument makes sense, I think
And private methods aren't part of the API, which is what you really want the tests to validate
Which is the same argument as "tests are just another client", I suppose 10:24
10:24 bjz_ joined
nine Testing private methods directly would be like trying to test some random block inside a sub directly. No one seems to be trying to do that either. 10:25
arnsholt Heh. I like that analogy =)
_nadim nine++ 10:26
10:26 bjz left
RabidGravy ponders whether he should put the entire 100+ line synopsis from the README into the pod as well 10:27
10:28 Actualeyes left, pdcawley joined
pmurias RabidGravy: synopsis of what? 10:28
RabidGravy of this module 10:29
10:29 kjs_ left
RabidGravy github.com/jonathanstowe/Tinky/blo.../README.md 10:29
pmurias how long is it normal for a Hague grant application to take from being sent to being avalible for community review?
10:30 kjs_ joined
pmurias RabidGravy: a lot people don't read READMEs 10:30
RabidGravy true, I usually copy the synopsis and description README <-> pod, it was more the size thing, but I guess that it's not an issue when the thing is precompiled 10:32
pmurias RabidGravy: isn't the synopsis a bit large? 10:33
RabidGravy probably
jnthn pmurias: A week or two in my experience 10:34
_nadim RabidGravy: IMO README should be as short as possible, it's not documentation but a "path finder". the 100+ lines should go in the documentation not in the synopsis; way too long, way too intricate, and way not explained enough for anyone to dare trying to understand it. 10:35
10:36 ChoHag left
dalek p: e08c31d | (Pawel Murias)++ | src/vm/js/ (3 files):
[js] Make pop/push/shift work on objects with positional_delegate. Fix return value of unshift.
10:36
p: 51c92e5 | (Pawel Murias)++ | t/nqp/59-nqpop.t:
Test return value of nqp::unshift.
p: 4c29b0c | (Pawel Murias)++ | t/nqp/73-delegation.t:
Test nqp::{pop,shift,unshift,push} working on an object with positional_delegate.
10:36 b10m left, zakharyas joined
RabidGravy _nadim, you seem to be assuming I'm using at as a replacement for the rest of the documentation 10:39
tadzik nine++ \o/
nine: so the previous behaviour was not spec(ulated), just implemented that way?
DrForr Re: Brussels were you mentioning www.public.nm.eurocontrol.int/PUBP...eway/spec/ ?
10:40 pierre-vigier left
_nadim RabidGravy: No I was not assuming that. 10:40
RabidGravy right
10:41 pierre-vigier joined
RabidGravy y'see IMNSHO the thing is sufficiently large that it merits a large synopsis, that covers a broad range of the functionality, the size of the synopsis is not at question 10:42
_nadim I disagree, large synopsis are not read which makes them moot 10:43
10:43 cfedde left
_nadim but there are different documentation styles, I am just sharing my thoughts. 10:44
10:44 cfedde joined
nine tadzik: the ugly truth is, that I don't actually read the spec all that much. Especially in cases where we don't have to speculate about what users are gonna need. We know that now. 10:48
tadzik :]
10:48 noganex left, noganex joined
nine tadzik: FWIW this actually has been working before commit "Merge WIP snapshot 2 of main-usage" back in 2011 10:48
tadzik oh 10:49
10:49 Actualeyes joined
nine So it may have really been just a regression that was later codified into the spec tests 10:49
10:49 pdcawley left
nine Yet the speculation says: "As usual, switches are assumed to be first, and everything after the first non-switch, or any switches after a --, are treated as positionals or go into the slurpy array (even if they look like switches). Other policies may easily be introduced by calling MAIN explicitly." 10:51
pmurias RabidGravy: imho the point of a synopsis is to offer a short "getting started" point 10:52
nine .tell TimToady what do you think about github.com/rakudo/rakudo/commit/84862eef7d? It would fix the very frequent issues with panda allowing options only before command arguments (so no install --force) but violates your speculation from 2008) 10:53
yoleaux nine: I'll pass your message to TimToady.
pmurias RabidGravy: OTOH some popular CPAN moduls have fairly long ones 10:56
nine The synopsis is really the source for copy & paste ;) 10:57
It's also often pretty much everything you need and having it on top makes authors think about examples. Something that so much documentation is sorely lacking. 10:58
11:02 rurban1 joined 11:05 pmurias left 11:06 pmurias_ joined 11:11 pmurias_ left 11:12 abaugher left 11:13 abaugher joined 11:14 lokien_ joined
Humbedooh slightly off-regular-topic; who will be at FOSDEM? :) 11:15
DrForr Yo.
(kinda have to be, seeing as I'm on the schedule.) 11:16
Humbedooh ah, giving a talk?
DrForr perl6 grammars, yeah.
_nadim Good documentation is difficult. And it is not alwas the module author who is best at finding what is missing. As for the synopsis being the source for copy-paste, by now we should be using much better systems.
El_Che Humbedooh: these people will be there: fosdem.org/2016/schedule/track/perl/ :)
Humbedooh anyone gonna be manning the Perl stand? :) 11:17
nine will attend, too 11:18
Humbedooh will be manning a stand a few feet away from the perl stand :)
El_Che nine: great to hear
Humbedooh: sure!
DrForr *PYTHON INFILTRATOR*! *cough* Hi.
Humbedooh a little Python never hurt....much...or well, doesn't kill you ;) 11:19
El_Che sunday I will be manning the devromm 100% of the time, but I count on some booth time saturday
Humbedooh cool! I'll be at the ASF stand for most of the time :)
El_Che Humbedooh: asf? 11:20
Humbedooh Apache Software Foundation
El_Che ah ok
nine Humbedooh: yeah, it doesn't kill you. It only sucks the joy out of your life. Not quickly and obvious as PHP. No, slowly and devious so you won't notice.
El_Che find it difficult to recognize people when only knowing their irc handle... 11:21
Humbedooh well, I answer to Humbedooh if you yell it out loud at FOSDEM ;)
it's been by nom de plume for the past 10 years 11:22
El_Che I am even sure I can pronounce it :)
DrForr I usually go by DrForr at conferences...
Humbedooh El_Che: it's easier to pronounce than my real name... :p 11:23
El_Che DrForr: luckily I know your face by now :) 11:24
DrForr Crap.
RabidGravy stuffed
El_Che That was my reaction as well :P
11:27 kaare_ joined, Psyche^_ joined
RabidGravy jnthn, will your STOMP stuff manifest as an actual module at some point, (or did it already and I didn't notice?) 11:28
DrForr Never got around to seeing them when I was in London...
11:29 ZoffixWin joined, ZoffixWin left, ZoffixWin joined
RabidGravy :) I've been in London forever and never got around to it either 11:29
jnthn RabidGravy: Yes, that's the goal. Two modules that I created on the journey are already in the ecosystem. :)
El_Che jnthn: do you take requests? :) 11:30
jnthn (Test::IO::Socket::Async and Concurrent::Iterator)
El_Che: Sure; whether I issue responses is another matter ;)
El_Che hehe
11:31 Psyche^ left
RabidGravy coolio, I think it would be nicer to use in an example of what I am doing at the moment than a straight up AMQP thing (and I'm not convinced Net::AMQP is working at the moment) 11:32
11:33 ZoffixWin left
RabidGravy actually I should test that 11:33
11:35 Dee22 joined
RabidGravy nope, totally b0rked by the Supply changes :-( 11:36
DrForr Is there a reasonable way to typecheck a parameter as either X or Y? Something like sub foo ( (Str|Whatever) $x ) { } 11:37
RabidGravy where X|Y
DrForr Ah, thanks. Checking...
That'd solve a combinatoric explosion.
s/solve/defuse/ # damn, missed one. 11:38
RabidGravy m: sub foo($x where Int|Str) { say "oke" }; foo(True);
camelia rakudo-moar 3259ba: OUTPUT«oke␤»
RabidGravy er
11:38 AndyDee left
RabidGravy m: sub foo($x where Int|Str) { say "oke" }; foo(Num); 11:38
camelia rakudo-moar 3259ba: OUTPUT«Constraint type check failed for parameter '$x'␤ in sub foo at /tmp/LhPMaCfFOn line 1␤ in block <unit> at /tmp/LhPMaCfFOn line 1␤␤»
RabidGravy Bool being special in that regard I guess 11:39
DrForr And checking the types afterwoard would be $x.WHAT ~~ 'Str'? Or is there a better way...
jnthn $x ~~ Str 11:40
RabidGravy given/when should do the trick
jnthn You almost never need .WHAT
Except for debugging or doing weird things
DrForr Didn't think so, but there wasn't much guidance in docs. Something else to poke at this weekend.
RabidGravy or just like typing more than is natural
DrForr It felt like using WHAT wasn't the right approach, mostly because of the whole capital thing :) 11:41
RabidGravy off out shopping for a bit 11:43
11:47 RabidGravy left 11:48 marmay left
gfldex m: sub outer(::T){ sub inner(-->T){ say T.^name; T }; inner() }; outer(Int); 11:57
camelia rakudo-moar 3259ba: OUTPUT«Int␤Type check failed for return value; expected T but got Int␤ in sub inner at /tmp/v0FyicXjJ_ line 1␤ in sub outer at /tmp/v0FyicXjJ_ line 1␤ in block <unit> at /tmp/v0FyicXjJ_ line 1␤␤»
gfldex should the type capture from &outer spill into &inner?
11:59 FROGGS left
jnthn Don't know that can be made to work, or at least not easily. 11:59
Signatures are constructed at compile time. 12:00
gfldex if the inner would use it on a positions/named i could use a where clause
but for the return type i would have to do it by hand, what would kill introspection
dalek c: be85e3d | (David Brunton)++ | doc/Language/operators.pod:
s/a/an/

  *an
12:05
c: 716b84e | (Brock Wilcox)++ | doc/Language/operators.pod:
Merge pull request #352 from dbrunton/patch-2

s/a/an/
moritz PSA: if you notice people repeatedly submitting PRs to repos under the perl6/ organization on github, please ping me so that I can give them direct access 12:06
12:09 FROGGS joined, Skarsnik joined 12:12 rimad left 12:18 kid51 joined 12:19 zakharyas left 12:20 zakharyas joined 12:21 lnrdo joined
timotimo is there any way for modules to react to different declared perl6 versions of the importing code? 12:30
12:30 _Vi left
timotimo actually, what i was wondering was: how do we handle changes in NativeCall now that we've released 6.c? 12:30
12:32 abraxxa left, kid51 left, abraxxa1 joined 12:33 abraxxa1 left, xpen left
nine timotimo: the version issue is one reason why I'd like Test to be moved to the ecosystem. Because it allows for installing multiple versions of Test at the same time. 12:33
For NativeCall it's more complicated, because that's really tied tightly to rakudo 12:34
Maybe we should ship all versions of NativeCall and install them? 12:35
timotimo i don't see a reason why we couldn't, really :) 12:36
nine I just wonder if we can make "use NativeCall" pick the version matching to $*PERL.version automatically. 12:39
timotimo right
that seems a bit more difficult
unless we invent something like :perl6<...> for use and fill that automatically on use ...
nine Not if we use a CompUnit::Repository::Core for those two modules. 12:40
12:40 pierre-vigier left
timotimo oh 12:40
then we could have that without any dirty hacks, eh?
nine I've already wondered if having an ::Installation repo for just a single dist is a bit of an overkill
12:40 c9874 joined 12:43 marmay joined 12:48 rurban joined, virtualsue joined, kjs_ left
Skarsnik Maybe freeze NC to bug fix and added feature only? 12:49
12:49 rurban1 left
timotimo no. 12:51
12:51 rurban1 joined
timotimo wait ... 12:51
how is NC freezed if we can add features? :)
Skarsnik Well NC is tricky, in it current state it's rather incomplete x) 12:52
12:52 rurban left
nine Skarsnik: nothing is ever complete ;) 12:53
12:54 AlexDaniel joined
Skarsnik Freezed as you can't change something already there. Maybe like some C++ lib allow for the add of feature via virtual method, but you can't change the rest to stay abi compat 12:54
12:54 kjs_ joined
Skarsnik I realise that will make 'new' code not compatible with 6.c NC, but 12:54
nine I'd much rather use the same mechanism as for the core setting 12:55
timotimo background for these questions is i'd like to post "the first irregular Perl 6 Non-Changes" on the weekly
12:55 rurban1 left
timotimo since i seem to have some difficulty writing up the weekly changes right now, i could do something different 12:56
12:56 rurban joined
timotimo that post would point out our stability strategy for the future of 6.c 12:56
Skarsnik for NC I rather have a document/test/spec that fix how stuff should be an aiming for a 'finished' version and otherwise considere the current one a Beta version x) 12:58
but that just my opinion 12:59
12:59 kjs_ left 13:00 rurban left, rurban joined 13:03 Actualeyes left, Actualeyes joined, rurban1 joined
masak .u 👀 13:03
yoleaux U+1F440 EYES [So] (👀)
nine timotimo: are you in #perl6-release? 13:04
timotimo oh
am not, but maybe i should be
nine It's certainly worth reading and backlogging. Very high signal to noise radio
timotimo on the other hand, the list of open channels at the bottom of my weechat was JUST made one line shorter when i closed a channel i didn't care much about
you mean i should join and post a few kitteh pictures? 13:05
nine timotimo: irclog.perlgeek.de/perl6-release/ ;)
13:05 rurban left
timotimo i'm reading it right now 13:06
El_Che Can someone explain this to me: blogs.perl.org/users/aristotle/2016...l6wow.html ?
(well know p5 hacker) 13:07
n
virtualsue El_Che: Um, he said "wow". :-)
nine Either it's just that or he accidentally published an unfinished post :) 13:08
timotimo hm.
well, he ended the sentence with a full-stop. so i suppose it's finished? 13:09
El_Che he waits for the rakudo star release to make it an appraisal or sarcastic :)
masak likes that post
it's short, and to the point
timotimo so, would a good response be "I know, right?"
virtualsue also, it is the essence of plausible deniability
moritz though it does feel like it's more suited for twitter
masak timotimo: "didn't see that one coming, eh?" 13:10
El_Che are office quotes still a thing?
nine sure 13:11
El_Che "that what she said" (or he/it) 13:12
gfldex m: package P { sub () is export(:ALL) {} } 13:14
camelia ( no output )
gfldex if i would be export i would complain 13:15
13:15 xpen joined 13:18 Ven joined
Ven hi, #perl6 13:18
yoleaux 11 Jan 2016 17:44Z <timotimo> Ven: SDL2 is stable enough to be used by students. the SDL2::Raw module ... not necessarily :P
11 Jan 2016 17:45Z <timotimo> Ven: also, only an SDL2 package isn't enough to make great stuff; you'd ideally also have OpenGL bindings
Ven m: my %h; %h{set("a", "b")}++; %h{set("a Str|b")}++; %h.values[0].say 13:19
camelia rakudo-moar 3259ba: OUTPUT«1␤»
timotimo oh it's le ven
Ven m: my %h; %h{set("a", "b")}++; %h{set("a Str|b")}++; say %h.perl
camelia rakudo-moar 3259ba: OUTPUT«{"a Str|b" => 1, "a b" => 1}␤»
Ven uh, so that's been fixed?
timotimo: hi! 13:20
13:22 pierre-vigier joined
Ven oh, obviously 13:22
m: my %h{Mu}; %h{set("a", "b")}++; %h{set("a Str|b")}++; say %h.perl
camelia rakudo-moar 3259ba: OUTPUT«(my Any %{Mu} = (set("a","b")) => 2)␤»
Ven that's a bit of a bummer :[
13:24 bpmedley left
Ven timotimo: we'll see how they manage... I installed 'em the 6 (ah, the joy of teaching them options like --prefix), and they started writing some of their exercises with it instead 13:26
13:26 pierre-vigier left
timotimo cool. 13:27
i hope it doesn't suck bigtime for them for some reason
i've not really put much care into making SDL2::Raw friendly to use, yet
i was hoping someone would build a module on top of that that gives users a nicer API 13:28
13:32 bpmedley joined
Ven timotimo: hey, for now, they're used to C and PHP, so.. they'll be happy even with a half-pony :-) 13:32
timotimo maybe it'd be interesting to show the cairo module, too ... though i'm not sure how well *that* one works!
Ven timotimo: they run mac :D 13:34
Skarsnik my small experience with cairo make want to not use it x)
timotimo oh lord 13:35
why macs everywhere?
Ven timotimo: school 13:37
timotimo :|
are you running a lab of your own or something?
Ven nope
"programming" school, has macs. 13:38
timotimo er, what i meant was: how come you get to recommend perl6 and SDL2::Raw to your peers?
13:39 lokien_ left 13:43 olinkl left
moritz 3/w 18 13:47
13:49 skids joined 13:50 ChoHag joined, _Vi joined 13:52 lokien_ joined 13:55 xpen left 13:56 frankjh left 13:58 kjs_ joined 14:01 rurban joined 14:03 rurban1 left 14:07 dj_goku joined
[Coke] (niezca) is unusable, or I'd be running tests on it daily. 14:10
colomon feels a bit guilty about not having the tuits to get/keep niezca running 14:12
Ven talk about guilt.. 14:13
moritz camelia: don't feel guilty; it's a large burden
sorry, meant colomon
colomon maybe regret would be a better word for it. at any rate, I don’t even vaguely have the time to do it. 14:14
[Coke] I would add (unmaintained) or something to the legend for niecza on the compiler features chart.
Are LoLs still a thing? 14:15
moritz I don't think so
jnthn Not as a type, no
moritz [Coke]: I'd even remove it
[Coke] there's something that can be scratched off the features list.
also shaped arrays are listed as not done 14:16
14:17 luiz_lha joined 14:18 luiz_lha is now known as Guest24090 14:21 RabidGravy joined
masak colomon: if I understand right, what "killed" Niecza was the ng/nom transition in Rakudo. before that, Niecza was ahead and more featureful in places. after it, it would have needed its own ng transition to stay current, and sorear didn't feel that was worth it. 14:22
colomon masak: I would have said it was MoarVM, but my memory may be fuzzy. 14:23
or perhaps rather MoarVM/JVM 14:24
masak no, I don't think so
timotimo i think moarvm came quite a bit later than niecza dying 14:25
though after ng/nom happened, niecza lived on for a little bit
masak that's my recollection too
timotimo: oh, sure. it lived on.
14:25 pierre-vigier joined
timotimo i mean, still got patches for a little bit 14:25
masak but it got increasingly behind, blocked by lack of ng
[Coke] is nqp's TODO a list for nqp-js? 14:27
moritz [Coke]: ja 14:28
[Coke] can we kill nqp's doc/bootstrapping
.ask pmurias if he can move nqp/TODO to nqp/docs/HACKING-js or something?
yoleaux [Coke]: I'll pass your message to pmurias.
14:28 virtualsue left
Ven masak: lack of "ng"? 14:29
[Coke] jnthn, pmurias - how hard would it be to generate a "so you want nqp to target another compiler" doc for nqp? recent talk of niecza made me think it might be nice to have an outline for someone interested in .net 14:32
14:33 lucasb joined 14:35 sjoshi left
pierre-vigier Hi all 14:35
timotimo greetings, pierre-vigier
pierre-vigier I am facing issue in installing Test::META, where it tries to install Could not find META6:ver<0.0.4..*> 14:36
Ven well met.
pierre-vigier however, at the same time, it's telling me it's not in the eco system :(
RabidGravy pierre-vigier, you may need to do a "panda update" first 14:37
14:37 virtualsue joined
pierre-vigier hum, all making sense now 14:38
Skarsnik hm, how I can know if a type Array is typed? @array.WHAT.can("of") give me 3 candidates for a typed and 2 for a non typed; but I can't call of on a non typed
pierre-vigier someone told me panda does not manage yet version number
i had an old version of META6
jnthn m: my @a; say @a.of
camelia rakudo-moar 3259ba: OUTPUT«(Mu)␤»
Skarsnik Oh I was trying on WHAT
jnthn Seems like it can be?
pierre-vigier running panda --force install META6 furst worked
nine pierre-vigier: panda cannot install exact versions of modules, because we wouldn't know where to get that version from. 14:39
RabidGravy at the current time things don't respect a "Foo:ver<0.0.1>" in the META info unfortunately, *but* the Test::META does require the newer version of META6
Skarsnik m: my @tab; say @tab.WHAT.^can("of"); say @tab.WHAT.of;
camelia rakudo-moar 3259ba: OUTPUT«(of of)␤Cannot look up attributes in a type object␤ in block <unit> at /tmp/hBWsZxubeh line 1␤␤»
nine Though probably versions are branches or tags on the linked github repo
Skarsnik m: my @tab; say @tab.WHAT.^can("of"); try {say @tab.WHAT.of};
camelia rakudo-moar 3259ba: OUTPUT«(of of)␤»
pierre-vigier that was that indeed, updated META6 through a force install 14:40
Skarsnik Shoud the of on WHAT work? or fail with a better message? x) 14:41
RabidGravy I ought to put a note in the README
we don't have a very good story around versioned dependencies as nine points out
Skarsnik It will probably not mix well with class version (that should probably not exists) 14:42
It sounds like a tricky version to handle version in module that is not annoying for module author
RabidGravy well the version comes from the META.info 14:43
Skarsnik like DBIish has version for stuff
but I honestly don't want to update everyfile if I do a 'release'
jnthn [Coke]: I guess we could try to write up a very high level guide 14:44
skids The package version != the version of classes in it.
Skarsnik Yes, but what the meaning?
moritz Skarsnik: I want a 'p6-infra release --version=2.0.3' tool or so that creates a tarball, where each .pm6 file has this version, and all "use" statements within this module use the same version 14:45
Skarsnik Yes, that probably why without a authoring tool that handle this kind of stuff. it's a mess x)
RabidGravy yeah, the "use Foo:ver<0.1>" version is taken from the "Distribution" which is from the META.info 14:46
Skarsnik well DBIish is a weird case
Should version allowed in a role but not a class?
Probably make more sense 14:47
RabidGravy the "class Foo:ver<0.1>" version is (I think) only a available on Foo.^ver
skids Skarsnik: If someone is only using one class from a module, and another class changes, for example. But we are just not there yet as far as panda goes.
RabidGravy I think the ver is on all sufficiently package like things: package, module, class, role and grammar 14:48
it's for the convenience of consumers
Skarsnik m: class Foo {has @.t}; say Foo.^attributes[0].type.of; 14:49
camelia rakudo-moar 3259ba: OUTPUT«(Mu)␤»
Skarsnik m: class Foo {has @.t}; say Bool(Foo.^attributes[0].type.of);
camelia rakudo-moar 3259ba: OUTPUT«False␤»
RabidGravy m: class Foo:ver<0.0.1> {}; say Foo.^ver; 14:50
camelia rakudo-moar 3259ba: OUTPUT«v0.0.1␤»
RabidGravy but that's probably only useful if you want to allow different versions of the class and deal appropriately 14:52
but useful nonetheless
14:54 rurban1 joined, rurban left, pierre-vigier left 14:55 _Gustaf_ left 15:01 rurban1 left, rurban joined
Skarsnik is there a call to get the basename of a class? (like without her role and package name) 15:02
15:03 cdg joined
gfldex m: role R {}; class C does R {}; say C.new.WHAT; 15:03
camelia rakudo-moar 3259ba: OUTPUT«(C)␤»
gfldex m: role R {}; class C does R {}; put C.new.^name; 15:04
camelia rakudo-moar 3259ba: OUTPUT«C␤»
gfldex m: role R {}; class C does R {}; put C.^name;
camelia rakudo-moar 3259ba: OUTPUT«C␤»
15:05 bowtie left
Skarsnik m: role R {}; module D {class C does R is export {}}; put C.^name; 15:05
camelia rakudo-moar 3259ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/GIu85CvRgU␤Undeclared name:␤ C used at line 1␤␤»
gfldex Skarsnik: ^^^, however, you may not get what you want
Skarsnik m: role R {}; module D {class C does R is export {}}; import D; put C.^name;
camelia rakudo-moar 3259ba: OUTPUT«D::C␤»
Skarsnik m: role R {}; module D {class C does R is export {}}; import D; put C.^shortname; 15:06
camelia rakudo-moar 3259ba: OUTPUT«C␤»
Skarsnik hm
15:06 rurban left, rurban joined 15:07 bowtie joined
Skarsnik m: role R {}; module D {class C is export {}}; import D; my C $a .= new; $a does R; say $a.WHAT.^name; 15:07
camelia rakudo-moar 3259ba: OUTPUT«D::C+{R}␤»
Skarsnik That what I mean x)
m: role R {}; module D {class C is export {}}; import D; my C $a .= new; $a does R; say $a.WHAT.^shortname;
camelia rakudo-moar 3259ba: OUTPUT«C+{R}␤»
Ven m: module D{class C{}}; my D::C $a .= new; say $a.WHAT.^name;
camelia rakudo-moar 3259ba: OUTPUT«D::C␤»
nine skids: yes, classes can have completely different version than the dists. Yet I think using the dist's version as default for otherwise unversioned classes contained in the dist's comp units makes sense.
Ven omg, that's been "fixed"? amazing :D
Skarsnik++ # now I can resume my work on Serialize::Tiny 15:08
skids nine: I agree, gradual versioning :-)
15:08 lucasb left 15:09 rurban1 joined 15:10 molaf joined 15:11 rurban left 15:12 andreoss left 15:16 Zero_Dogg joined
Zero_Dogg Is there any quick way to know which adverbs can be applied to a core function? Specifically I'm looking for a way to use run from IO to capture stderr (:out captures stdout) 15:17
moritz Zero_Dogg: like, reading the docs? :-) 15:18
m: say &run.signature.perl
camelia rakudo-moar 3259ba: OUTPUT«:(| is raw)␤»
moritz it accepts everything, because it passes them on to another routine
RabidGravy if the documentation omits the information then the documentation is faulty
Zero_Dogg moritz: yes, but I'm still new enough to p6 to not know quite where to look, It's not in the IO class docs, so I'm slightly stumped
skids m: &run.signature.say # Zero_Dogg 15:19
camelia rakudo-moar 3259ba: OUTPUT«(| is raw)␤»
skids Oh hey that's different.
m: &run.candidtates».signature.say 15:20
camelia rakudo-moar 3259ba: OUTPUT«Method 'candidtates' not found for invocant of class 'Sub'␤ in block <unit> at /tmp/0CG84QgSZw line 1␤␤»
moritz Zero_Dogg: doc.perl6.org/routine/run says "See Proc for more details, for example on how to capture output."
skids m: &run.candidates».signature.say
camelia rakudo-moar 3259ba: OUTPUT«((| is raw))␤»
moritz Zero_Dogg: where "Proc" is a link :-)
skids I actually get a good signature for that locally. Oh --- restricted setting.
moritz Zero_Dogg: (and you get there by typing "run" in the search box on doc.perl6.org/)
RabidGravy I've concluded that Net::AMQP may be more knackered than it is my ability to fix right now if anyone else is willing to jump in 15:21
15:25 Zero_Dogg left 15:26 Zero_Dogg joined, Zero_Dogg left, Zero_Dogg joined
Zero_Dogg moritz: Thanks, still getting used to all the jumping around in the docs 15:26
interestingly, my perl6 coredumps when providing run with :merge 15:29
RabidGravy the documentation like everything else relies on volunteer input, so if you find them lacking then please either fix or report
it shouldn't coredump ever (unless you are doing something which it can't control with NativeCall) 15:30
Zero_Dogg RabidGravy: was more of me not knowing where to look, really, they seem understandable once I actually found the right one
RabidGravy what is the version of the perl6
Zero_Dogg This is Rakudo version 2015.12-44-g477830a built on MoarVM version 2015.12
RabidGravy :(
15:30 bpmedley left 15:33 felher left 15:34 grassass left, tadzik left 15:36 rindolf left 15:37 bpmedley joined 15:38 tadzik joined 15:40 grassass joined, felher joined 15:43 rurban joined
timotimo Zero_Dogg: there's already a bug filed about :merge causing a segfault; i think it got reported yesterday 15:43
sorry about that :(
Zero_Dogg timotimo: great. No worries, I got what I needed with :err anyway. :merge just sounded like a handy feature to try 15:44
15:44 rurban1 left 15:45 g4 left, rindolf joined
RabidGravy as a matter of interest does anyone use "#|" style documentation in modules? 15:46
[Coke] jnthn: if it's a time sink, don't bother; just wondering if having a guide like that might encourage any .net people hiding in the corners.
DrForr RabidGravy: I do in perl6-readline, I think. That or Marpa. 15:47
And I've started to use #`() comments, though I still kinda agree with Common Lisp's #(..#) :)
15:48 aindilis left
mspo #`() isn't very nice visually 15:48
DrForr The trailing ')' gets lost.
mspo DrForr: indeed
DrForr rocks out to Kashmir. 15:49
mspo I think you can use something other than () but it has to be {} or []?
like you can't use #`# #?
15:50 pmurias joined
moritz it needs to be a bracketing character 15:50
DrForr As in the Unicode property? /me goes looking. 15:51
(I think it got added in v6...)
pmurias [Coke] re TODO it's outdated , I'll move it when I get to my laptoo 15:53
yoleaux 14:28Z <[Coke]> pmurias: if he can move nqp/TODO to nqp/docs/HACKING-js or something?
Ven Btw, DrForr , a COBOL slang would allow me to learn more COBOL alongside the way.
So it's a good idea :P.
DrForr There's 'open' and 'close' properties. 15:54
(since 3.2)
pmurias Is there much value in knowing COBOL beyond curiosity?
DrForr Billions in legacy code?
RabidGravy you want to learn COBOL? Weirdo ;-) I learned it a little more than thirty years ago, because it was still a thing
Ven pmurias: COBOL is amazing.
15:55 rindolf left
moritz there are lovers for everything :-) 15:55
Skarsnik RabidGravy, I don't know if the pod generator read the WHY of class/attribute x) 15:56
RabidGravy only if you write the code by hand on a coding sheet, hand it to a data entry clerk who makes punch cards which you get back at some point afterwards and then queue at the card hopper to get your program run
Skarsnik, perl6 --doc does but it's not very pretty 15:57
15:58 kjs_ left
RabidGravy learning to program like that is arguably a good thing as it ensures you work it all out in your head before committing it to a computer rather than dicking around with hundreds of micro-protoypes 15:58
pmurias [Coke]: re create new backend docs the hardest part will be figuring what the hard parts for new people are 16:00
16:04 c9874 left
DrForr horribly abuses 'multi sub' and is amazed at how well it holds up. 16:04
PerlJam DrForr: I'd like to see that horrible abuse as my imagination is currently lacking. 16:06
skids guesses many where clauses
DrForr Not really.
class Atom {}; constant foo = Atom.new; multi sub parent( foo, @x is raw ) { } 16:07
16:07 sftf joined
DrForr I'm using other parameter types as well, but that's an idea. 16:08
skids implicit where cluases then :-)
DrForr If that's how the internals work, sure.
skids m: class Atom {}; constant foo = Atom.new; multi sub parent( foo, @x is raw ) { }; &parent.signature.say;
camelia rakudo-moar 3259ba: OUTPUT«(;; Mu | is raw)␤»
jnthn That plus the fact that we infer a nominal type from the type of the constant.
&parent is the implicit proto, you need &parent.candidates[0] or so
skids m: class Atom {}; constant foo = Atom.new; multi sub parent( foo, @x is raw ) { }; &parent.candidates>>.signature.say; 16:09
camelia rakudo-moar 3259ba: OUTPUT«((Atom $ where { ... }, @x is raw))␤»
DrForr Yeah. I'm a bit surprised that you can get away with differentiating just on the constant name, I'm sure something is being done implicitly.
PerlJam DrForr: Is that behavior specced? ;)
DrForr No idea, I'm just taking an idea and bending it into Perl. 16:10
skids It's differentiating on the WHICH of the Atom.new I would imagine.
jnthn It's defined in terms of ACCEPT
Yes, it's by design
It's why base cases like multi fib(0) { 1 } work out 16:11
*ACCEPTS
PerlJam DrForr: anyway, I wouldn't say that's horrible abuse; just a little weird
DrForr checks to see if we're doing LTs at FOSDEM.
Well, that's just a sample :) Can't reveal the rest *too* early :) 16:12
No LTs, huh :(
PerlJam predicts that someone will do a WAT-talk for Perl 6 this year. 16:13
DrForr attempts to parse the acronym and fails. 16:15
PerlJam DrForr: www.youtube.com/watch?v=20BySC_6HyY
skids WAT is the anti-particle to DWIM. :-)
mspo oh I remember that 16:16
DrForr Ah. 16:17
16:17 kjs_ joined
mspo what language is perfectly consistent? 16:18
skids
.oO(Not having a (b)acronym for it is rather appropriately frustrating)
Ven mspo: the Mu language
virtualsue i'd like to see someone try that with Go. "We have no WAT - we designed to be simple and consistent!!1!" "really? looky here" <brain melts>
DrForr Ddin't G\"odel prove that to be impossible for any useful language? 16:19
Ven virtualsue: Go is inconsistent by design, but they very well know which place they chose to be inconsistent
mspo I like golang but can't stand the trend-driven style and "idiomatic" mantra 16:20
guess that's just immaturity
I gave it up entirely after this: code.google.com/p/go/issues/detail?id=1435 16:21
virtualsue i know at least one another language which has adherents which like to torment people with the idiomatic stick 16:22
mspo that's a pretty major bug for a language for "building servers"
idiomatic is a nice vocab word, though
virtualsue: which? 16:24
16:24 bdmatatu joined
virtualsue whistles quietly, looks away 16:24
RabidGravy there's a sort of idionatic -> elegant -> concise -> obfuscated road to hell
mspo oh python? 16:25
well in go the definition of "idiomatic" changes with each blog post by rob pike
all of a sudden $latestblog is *the way* to solve every problem
virtualsue RabidGravy++
geekosaur p5 has been known to combine that road to hell with parti-colored bikesheds 16:26
RabidGravy :)
virtualsue i think it often means "i would do x this way, you didn't, therefore your code wasn't idiomatic"
16:27 kjs_ left
DrForr virtualsue: Joining us at FOSDEM? 16:27
virtualsue indeed, DrForr
16:27 domidumont left
DrForr (seeing as I didn't have much time to see people at YAPC...) 16:27
Or LPW for that matter,d ue to my own idiocy.
Hotkeys Hello all 16:28
I like idiomaticness to an extent 16:30
If there is a common way to do something I'll probably do it like that
virtualsue oh, me too. but with an expressive, flexible language it does become a way for some enthusiastic senior devs to wear out their code review victims ;-) 16:31
Hotkeys Yeah of course
RabidGravy why don't we use "vernacular" in place of "idiomatic" in some places, or "argot"
Hotkeys I like the look of "idiomaticity" over "idiomaticness"
RabidGravy it's a metaphor after all
Hotkeys I'm going to use that
Even if it isn't a thing 16:32
virtualsue idiomatic becomes another "useful" word with a minor transformation
16:33 pmurias left, jme` joined
MadcapJake What reasons would lead to a "Cannot modify an immutable Str"? 16:34
16:34 prammer joined 16:35 jme` left
pat_js MadcapJake: a syntax error? Or you are trying to modify an immutable string ;-P 16:35
RabidGravy MadcapJake, in what context?
16:36 kjs_ joined
MadcapJake In a class, trying to change an attribute of an object with `$!object.text = ...` is that not okay? 16:36
jnthn MadcapJake: Is the attribute marked "is rw"?
MadcapJake no :P
RabidGravy m: use NativeCall; class Foo is repr('CStruct') { has Str $.foo is rw; }; my $a = Foo.new(foo => "hshs");
camelia rakudo-moar 3259ba: OUTPUT«Cannot modify an immutable Str␤ in block <unit> at /tmp/m6SKxSPysZ line 1␤␤» 16:37
RabidGravy that will do it for instance
MadcapJake jnthn: thanks, can't believe i forgot about that
Hotkeys So are private attributes read only by default
?
RabidGravy no
MadcapJake this is what happens when I don't program in perl6 for a bit. gotta get my daily vitamins! Vitamin P6! 16:38
RabidGravy all attributes are rw, the accessors that make them "Public" are ro by default
Hotkeys Ah
nine ~/win 36 16:39
16:41 khw joined, jme` joined
MadcapJake How come the String `split` method needs an empty string argument? Would be nice to just write `"abc".split` 16:43
jnthn You can do that with "abc".comb 16:44
MadcapJake jnthn: awesome! 16:45
RabidGravy I can see the attribute/accessor thing is going to become a thing that people beat neophytes with in years to come, like the signature of "main()" in comp.lang.c back at the dawn of time
masak m: say 1 ≤ 2 16:46
camelia rakudo-moar 3259ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wGv_W5ZgMk␤Confused␤at /tmp/wGv_W5ZgMk:1␤------> 3say 17⏏5 ≤ 2␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modifie…»
Skarsnik RabidGravy, what is main good signature? int main(int ac, char *ag[])?
well if you forget **env 16:47
RabidGravy I think the canonical one is "int main(int argc, char **argv)" yeah, only some systems pass the env 16:48
I still type just "main()" if I don't care about the arguments, as much as the compiler may bitch about it 16:49
16:50 Ven left
Hotkeys I need to figure out a way to make znc give me scrollback more often than first connection 16:50
Skarsnik int main; is the smallest sigseg you can do I think
Hotkeys but less often than all the time
Skarsnik the main symbole is here! 16:51
masak m: constant R = rx/(..)(..)/; say so "abcd" ~~ R; say ~$0; say ~$1
Hotkeys like first connection per machine
camelia rakudo-moar 3259ba: OUTPUT«True␤ab␤cd␤»
masak \o/
Hotkeys woo
regex
RabidGravy I'm not sure I've written any C that someone paid me for this century 16:52
Hotkeys me either
then again before this century I was barely a person
mspo why use a constant R ? 16:53
RabidGravy oh wait, yeah I made a rather "special" adaptation to the I4GL runtime to incorporate some SOAP functionality ;-)
in around 2001 or something
Hotkeys No SOAP
Radio 16:54
* all laugh *
* roll curtain *
16:55 sivoais is now known as sivoais-ms 17:00 bowtie left 17:01 bdmatatu left 17:02 hankache joined, zakharyas left, kjs_ left 17:03 bowtie joined
hankache good * #perl6 17:04
geekosaur sees i4gl, has flashbacks 17:05
RabidGravy hahahahahahaha 17:06
geekosaur (let's just say, I ended up with the direct contact number of one of the developers for reporting bugs) 17:07
17:07 pat_js left
RabidGravy yeah, prior to the IBM takeover they were quite good to deal with 17:07
geekosaur 's experience with them goes back to pre-sql informix 17:08
RabidGravy I still love the database
yeah, I started with it in the early 90s so just pre-Online and stuff 17:09
17:09 _Vi left
RabidGravy this was at the point you could still use the C-ISAM stuff against the database files 17:10
17:13 _Vi joined 17:15 domidumont joined 17:18 rindolf joined
RabidGravy what was I doing again? 17:22
dalek c: 694dd77 | (John Gabriele)++ | doc/Language/faq.pod:
update link to glossary in faq. Closes #353
17:24
17:25 prammer left 17:26 mkz left
TimToady .tell MadcapJake note that camelia has a lot of intentional asymmetry, in particular her left eye is not supposed to be quite centered; in addition to artistic reasons, there's a small pun on 'wall-eyed' there :) 17:26
yoleaux 10:53Z <nine> TimToady: what do you think about github.com/rakudo/rakudo/commit/84862eef7d? It would fix the very frequent issues with panda allowing options only before command arguments (so no install --force) but violates your speculation from 2008)
TimToady: I'll pass your message to MadcapJake.
17:30 Hor|zon joined 17:33 mkz joined
RabidGravy is there a way of distinguishing a role from a normal class in a TypeConstraint? I want to store a role in a thing and can't tell if it is defined or not 17:33
an anonymous role I might add 17:34
Skarsnik look if it does RoleHOW comparing to ClassHOW?
*trow random idea* 17:35
RabidGravy I don't think there is a single "RoleHOW" there are a bunch of different ones, like ParametricRoleHOW and so on 17:36
and I'm too scared to look at the code long enough to work out which I need ;-) 17:37
TimToady .tell MadcapJake I like the high-heel shoes, though :)
yoleaux TimToady: I'll pass your message to MadcapJake.
jnthn RabidGravy: .HOW.archetypes is often a better bet 17:38
RabidGravy: Taking one of the properties on there
RabidGravy Oooh 17:39
17:39 rurban1 joined, rurban left
Skarsnik m: my $a = role {}; say $a.HOW.archetypes; 17:39
camelia rakudo-moar 3259ba: OUTPUT«Method 'gist' not found for invocant of class 'Perl6::Metamodel::Archetypes'␤ in block <unit> at /tmp/71fmU46ZGk line 1␤␤»
17:39 lokien_ left
jnthn Yeah, you'll need to access one of the properties on it 17:40
It's pretty low level.
Unlikely to change significantly though.
17:40 perl6newbee joined
Skarsnik m: my $a = role {}; say $a.HOW.archetypes.name; 17:41
camelia rakudo-moar 3259ba: OUTPUT«Method 'name' not found for invocant of class 'Perl6::Metamodel::Archetypes'␤ in block <unit> at /tmp/PYBRTSwipn line 1␤␤»
RabidGravy composalizable
crack monkeys
jnthn "Can be turned into something composable" :)
English has such boring inflectional morphology, might as well harness the derevational :P 17:42
RabidGravy :) but composable is the puppy, cheers! 17:43
and surely you mean "derivisational"
;-) 17:44
17:44 bowtie left 17:48 bowtie joined 17:49 leont joined
RabidGravy but yeah, that works nicely, apart from the "applying the same role twice" bug I seem to have made 17:51
17:52 mkz left
RabidGravy "f not ?$!role.HOW.archetypes.composable { $!role = role { }; }" is what I'm going with 17:54
17:55 virtualsue left
AlexDaniel .u 🌛🌜🌝🌞 17:55
yoleaux U+1F31B FIRST QUARTER MOON WITH FACE [So] (🌛)
U+1F31C LAST QUARTER MOON WITH FACE [So] (🌜)
U+1F31D FULL MOON WITH FACE [So] (🌝)
AlexDaniel and of course 17:56
.u 🌚
yoleaux U+1F31A NEW MOON WITH FACE [So] (🌚)
TimToady where's my SMILEY NEW MOON WITH FACE? 17:57
17:57 mkz joined
TimToady
.oO(and the one with the rocket in its eye?)
17:58
17:58 dfcarpenterak joined
TimToady maybe we should allow people to make up their own glyphs for Perl 6, and then get them all incorporated into Unicode 17:59
RabidGravy That's a great movie
TimToady we could get a whole plane to ourselves if we worked at it hard enough
RabidGravy well nobody else would want to get on
;-)
18:00 SCHAAP137 joined
AlexDaniel hmm @😊̋@ 18:00
18:00 firstdayonthejob joined
AlexDaniel or even @🐛@ 18:00
TimToady coins the term "unimosh"
as in, unicode characters that squish in too tight on my terminal 18:02
AlexDaniel TimToady: by the way, somewhat unimosh related: rt.perl.org/Ticket/Display.html?id=127048
RabidGravy yeah, there are definitely some characters I can't read, maybe it's a bad display, maybe it's a bad font, maybe it's my eyes 18:03
or a combination of all through 18:04
er
three
Is "🐛" bug thing or a pine cone? 18:05
AlexDaniel .u 🐛
yoleaux U+1F41B BUG [So] (🐛)
TimToady looks like a centipede here...
18:05 jvcakg joined
TimToady or maybe a decipede... 18:05
18:06 sftf left
AlexDaniel yeah, looks like a centipede here too… I was hoping that authors of other fonts are a bit less radical when it comes to drawing bugs 18:06
RabidGravy well it's an indistict blob with maybe some leg things round the outside with my eyes
18:06 jvcakg left, Hor|zon left 18:07 Actualeyes left
TimToady actually, it appears to have 22 appendages in my font, though presumably two of those might be antennae 18:07
AlexDaniel “Guess what character is that” game: files.progarm.org/2016-01-15-20044..._scrot.png 18:08
RabidGravy I might add that beer may be a contributing factor in my inability to discern the character
18:09 leont left, ZoffixW joined
ZoffixW m: my \list1 = |"a".."h"; my \list2 = <x y>; say list1 »Z||» list2 18:09
RabidGravy TimToady, you either have a massive screen or a microscope
ZoffixW Fun, eh?
camelia rakudo-moar 3259ba: OUTPUT«(timeout)»
ZoffixW m: my \list1 = "a".."h"; my \list2 = <x y>; say list1 »Z||» list2 18:10
camelia rakudo-moar 3259ba: OUTPUT«This Seq has already been iterated, and its values consumed␤(you might solve this by addding .cache on usages of the Seq, or␤by assigning the Seq into an array)␤ in block <unit> at /tmp/uWQdUstN5O line 1␤␤»
ZoffixW Any way to make that result in <a x b y c d e f g h> ?
18:10 hankache left
TimToady RabidGravy: I just hit CTRL-+ till it's big enough to see 18:11
RabidGravy :)
ZoffixW is looking at some Python Stack Overflow answers and finds shorter Perl 6 versions stackoverflow.com/questions/3469273...rs-from-an
AlexDaniel m: my @list1 = |"a".."h"; say @list1 18:12
m: my @list1 = |("a".."h"); say @list1
camelia rakudo-moar 3259ba: OUTPUT«[a b c d e f g h]␤»
rakudo-moar 3259ba: OUTPUT«(timeout)»
Hotkeys Rip
AlexDaniel ZoffixW: ↑ here's your problem I think
ZoffixW m: |"a"
camelia ( no output )
ZoffixW AlexDaniel, it is my problem or a rakudo problem? 18:13
s/it is/is it/;
I guess even if it's wrong, it should show an error and not loop forever
ZoffixW rakudobugs
Oh wow 18:14
m: .say for |"a".."h";
AlexDaniel ZoffixW: it would be great to understand what is happening with it
camelia rakudo-moar 3259ba: OUTPUT«(timeout)1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤50␤51␤5…» 18:15
RabidGravy :-\
ZoffixW m: .say for |"g".."z";
camelia rakudo-moar 3259ba: OUTPUT«(timeout)1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤50␤51␤5…»
AlexDaniel m: .say for (|"g") .. "z" 18:16
skids m: .say for ('a',)..'h' # probably is what is happening
camelia rakudo-moar 3259ba: OUTPUT«(timeout)1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤43␤44␤45␤46␤47␤48␤49␤50␤51␤5…»
Hotkeys m: (|"a").perl.say
camelia rakudo-moar 3259ba: OUTPUT«slip("a",)␤»
Hotkeys Yeah 18:17
ZoffixW m: .say for |"g"..42;
camelia rakudo-moar 3259ba: OUTPUT«1␤2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤14␤15␤16␤17␤18␤19␤20␤21␤22␤23␤24␤25␤26␤27␤28␤29␤30␤31␤32␤33␤34␤35␤36␤37␤38␤39␤40␤41␤42␤»
Hotkeys skids++
?p6> (|"a").succ
Oops 18:18
Syntax
m: (|"a").succ
camelia rakudo-moar 3259ba: OUTPUT«Method 'succ' not found for invocant of class 'Slip'␤ in block <unit> at /tmp/jYy69ukVpK line 1␤␤»
Hotkeys Darn
skids makes a mental note to add a "precedence around ranges" item to the "traps" doc page.
AlexDaniel skids: yeah! perl6critic!
18:18 rurban1 left
ZoffixW m: .say for |10..5 18:19
camelia rakudo-moar 3259ba: OUTPUT«1␤2␤3␤4␤5␤»
ZoffixW ^_^
18:19 rurban joined
Hotkeys m: slip("a",).Int 18:20
camelia ( no output )
Hotkeys Why is it starting at 1
ZoffixW 1 item list 18:21
skids m: &infix:<..>.candidates>>.signature.say # Hrm it does not admit to coercion
camelia rakudo-moar 3259ba: OUTPUT«(($min, $max))␤»
nemo TimToady: yeah. terminals and unicode are kind of a problem
TimToady: that's why I pad my unicode terminal games for readability
AlexDaniel m: my @list1 = ‘a’..‘h’; my @list2 = <x y>; say flat @list1 Z @list2
camelia rakudo-moar 3259ba: OUTPUT«(a x b y)␤»
AlexDaniel ZoffixW: yeah, well. Z just stops when one of the lists ends 18:22
ZoffixW m: my \list1 = "a".."h"; my \list2 = <x y>; say (list1 Z|| list2)
camelia rakudo-moar 3259ba: OUTPUT«(a b)␤»
ZoffixW I thought I saw some sort of "zip" operator.. that looked something like Z||
m: my \list1 = 0, "a".."h"; my \list2 = <x y>; say (list1 Z|| list2) 18:23
camelia rakudo-moar 3259ba: OUTPUT«(x "a".."h")␤»
AlexDaniel ZoffixW: unless you make both lists equal in length I don't think that it is going to work
ah 18:24
ZoffixW Rakudobugged: rt.perl.org/Ticket/Display.html?id=127279
nemo TimToady: m8y.org/tmp/testcase353.xhtml one of the silly things we were screwing around w/ in terminals
TimToady: I never actually got this sort of thing to render right in anything *but* a terminal
18:25 deniska left, jme` left, dfcarpenterak left
ZoffixW AlexDaniel, there gotta be a way! :) 18:26
RabidGravy I think I just need to go back to using an actual vt220 or Wise-50 or something 18:27
ZoffixW m: my \list1 = "a".."h"; my \list2 = <x y>; say list1 Z list2[0..list1.elems].map: *//''
camelia rakudo-moar 3259ba: OUTPUT«Cannot call map(List: Whatever); none of these signatures match:␤ ($: Hash \h, *%_)␤ (\SELF: &block;; :$label, :$item, *%_)␤ (HyperIterable:D $: &block;; :$label, *%_)␤ in block <unit> at /tmp/jUCas_51NU line 1␤␤»
ZoffixW -_-
18:27 rurban1 joined, rurban left
ZoffixW m: my \list1 = "a".."h"; my \list2 = <x y>; say flat grep { .chars }, list1 Z list2[0..list1.elems].map: {$_//''} 18:28
camelia rakudo-moar 3259ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/whWNxSjg1k␤Missing comma after block argument to grep␤at /tmp/whWNxSjg1k:1␤------> 3t1 Z list2[0..list1.elems].map: {$_//''}7⏏5<EOL>␤ expecting any of:␤ postfix␤»
ZoffixW Missing comma? Another bug
RabidGravy I binned the last dumb terminal I had when I cleared my mum's house some ten years ago
TimToady you can't use Z there without parens 18:29
the left list will slurp up the block
ZoffixW Missing comma? LTA error 18:30
^_^
AlexDaniel m: my @l1 = ‘a’..‘h’; my @l2 = <x y>; say (|(@l1[$_], @l2[$_]) for ^(max +@l1, +@l2))
ZoffixW m: my \list1 = "a".."h"; my \list2 = <x y>; say flat grep { .chars }, (list1 Z list2[0..list1.elems].map: {$_//''})
camelia rakudo-moar 3259ba: OUTPUT«(a x b y c (Any) d (Any) e (Any) f (Any) g (Any) h (Any))␤»
rakudo-moar 3259ba: OUTPUT«(a x b y c d e f g h )␤»
AlexDaniel now how do I say “nothing or element” 18:31
18:32 rurban1 left, rurban joined
ZoffixW leaves to deal with a crisis 18:32
18:32 ZoffixW left, TEttinger joined
RabidGravy contemplates sacrificing some goats 18:33
18:33 leont joined, Dee22 is now known as AndyDee
AlexDaniel ah 18:35
there we go
m: 'my @l1 = ‘a’..‘h’; my @l2 = <x y>; say (|(@l1[$_] if @l1[$_]; @l2[$_] if @l2[$_]) for ^max +@l1, +@l2)
camelia rakudo-moar 3259ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7lVE6bOOrW␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/7lVE6bOOrW:1␤------> 3@l2[$_] if @l2[$_]) for ^max +@l1, +@l2)7⏏5<EOL>␤ expecting any of:␤ sing…»
AlexDaniel m: my @l1 = ‘a’..‘h’; my @l2 = <x y>; say (|(@l1[$_] if @l1[$_]; @l2[$_] if @l2[$_]) for ^max +@l1, +@l2)
camelia rakudo-moar 3259ba: OUTPUT«(a x b y c d e f g h)␤»
AlexDaniel “if” is a bit wrong though, it should be “if defined” or something 18:36
Hotkeys m: my \list1 = "a".."h"; my \list2 = <x y>; say roundrobin(list1, list2)
camelia rakudo-moar 3259ba: OUTPUT«((a x) (b y) (c) (d) (e) (f) (g) (h))␤»
AlexDaniel Hotkeys: ok…
Hotkeys m: my \list1 = "a".."h"; my \list2 = <x y>; say flat roundrobin(list1, list2)
camelia rakudo-moar 3259ba: OUTPUT«(a x b y c d e f g h)␤»
AlexDaniel .tell ZoffixW “roundrobin is very similar to zip. The difference is that roundrobin will not stop on lists that run out of elements but simply skip any undefined value:” (Hotkeys++) 18:37
yoleaux AlexDaniel: I'll pass your message to ZoffixW.
Hotkeys :D
Woo I'm helping
AlexDaniel Hotkeys: how did you find it? :) 18:38
18:38 kjs_ joined, lnrdo left
Hotkeys I looked at zip on docs.perl6.org :p 18:39
AlexDaniel
Hotkeys "If you just wish to skip missing entries in shorter sublists, use roundrobin instead"
I was actually looking for some kind of flag that could be passed to zip 18:42
But a whole other sub works too
18:42 espadrine left
AlexDaniel m: m: my \list1 = "a".."h"; my \list2 = <x y>; say flat list1.roundrobin(list2) 18:42
Hotkeys Like zip(@foo, @bar, :skip) or somethint
camelia rakudo-moar 3259ba: OUTPUT«Method 'roundrobin' not found for invocant of class 'Range'␤ in block <unit> at /tmp/0D4nLPjPr6 line 1␤␤» 18:43
AlexDaniel m: my \list1 = "a".."h"; my \list2 = <x y>; say flat list1.roundrobin(list2)
camelia rakudo-moar 3259ba: OUTPUT«Method 'roundrobin' not found for invocant of class 'Range'␤ in block <unit> at /tmp/0TGrkIPPDF line 1␤␤»
Hotkeys It isn't a method its a sub
AlexDaniel m: my \list1 = "a".."h"; my \list2 = <x y>; say flat list1.zip(list2)
camelia rakudo-moar 3259ba: OUTPUT«Method 'zip' not found for invocant of class 'Range'␤ in block <unit> at /tmp/XnHgBR7HS_ line 1␤␤»
AlexDaniel Hotkeys: sure. Why?
Hotkeys Idk
I didn't make it
:p
m: ("a".."h") R <x y> #I wish this would work as an alternative to Z 18:45
camelia rakudo-moar 3259ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/buEowbFsMO␤Missing infix inside R␤at /tmp/buEowbFsMO:1␤------> 3("a".."h") R7⏏5 <x y> #I wish this would work as an alt␤ expecting any of:␤ infix␤ infix stopper␤»
AlexDaniel Hotkeys: R is a different thing :) 18:46
Hotkeys Is it? 18:47
Apart from the language
AlexDaniel m: say 42 R, 69
camelia rakudo-moar 3259ba: OUTPUT«(69 42)␤»
Hotkeys Oh
What does it do
AlexDaniel reverses things 18:48
_nadim I see this behavior: I have a module, installed with panda install .; and a scrip using the module. I make a change to the module and do a panda --force install . ; the old module is still used by the script!
Hotkeys ah
_nadim I generate an exception in the modules sub, still does the old behavior.
AlexDaniel m: say 2 R** 8
camelia rakudo-moar 3259ba: OUTPUT«64␤»
_nadim tadzik: ^^. 18:49
18:52 _Vi left
Hotkeys AlexDaniel: that be crazy 18:57
18:57 cdg left
AlexDaniel Hotkeys: ? 18:57
Hotkeys I like the reverse meta op
That's all
AlexDaniel yeah, I even used it a couple of times :) 18:58
mainly when I didn't like the order of arguments…
Hotkeys m: 2, 3, * R** * ... * > 1000
camelia ( no output )
18:58 kjs_ left
Hotkeys Aw 18:58
What'd I do wrong 18:59
Oh
nine _nadim: does the module have a proper version? Does the script load a precise version of the module?
AlexDaniel m: say 2, 3, * R** * ... * > 1000
camelia rakudo-moar 3259ba: OUTPUT«(2 3 9 729 58149737003040059690390169)␤»
AlexDaniel m: say 2, 3, { $^b ** $^a } ... * > 1000
camelia rakudo-moar 3259ba: OUTPUT«(2 3 9 729 58149737003040059690390169)␤»
Hotkeys That's neat
Yeah 19:00
I knew the gross looking version
AlexDaniel so now that's a “gross looking version” :)
19:00 hankache joined
Hotkeys Yeah look at how nice * R** * looks 19:00
It's almost as nice as
TimToady .tell nine rather than just ignoring the order of arguments, I think it would be more powerful to allow for cascaded MAIN-like things, so that we can differentiate the options before a command from the options after 19:01
yoleaux TimToady: I'll pass your message to nine.
AlexDaniel as?
Hotkeys m: say 1, 2, * * * ... * > 50
camelia rakudo-moar 3259ba: OUTPUT«(1 2 2 4 8 32 256)␤»
Hotkeys Sorry I'm on my phonr
AlexDaniel what about this
m: say 2, 3, -> $a, $b { $b ** $a } ... * > 1000
camelia rakudo-moar 3259ba: OUTPUT«(2 3 9 729 58149737003040059690390169)␤»
Hotkeys Oh no
Not anonymous functions
Am I using the right term 19:02
I'm bad at terminology
_nadim nine: the script doesn't load a specific version. I even reinstalled the module with a new version, the script still uses an old version
AlexDaniel m: say 2, 3, sub ($a, $b) { $b ** $a } ... * > 1000
camelia rakudo-moar 3259ba: OUTPUT«(2 3 9 729 58149737003040059690390169)␤»
AlexDaniel Hotkeys: I think that this is anonymous function ↑
and the previous one was a clojure or something 19:03
though I usually don't care about the terminology, I just want it to dwim
Hotkeys Hmm
I just assumed pointy blocks were essentially lambdas on their own 19:04
AlexDaniel m: say 2, 3, sub hello-there($a, $b) { $b ** $a } ... * > 1000
camelia rakudo-moar 3259ba: OUTPUT«(2 3 9 729 58149737003040059690390169)␤»
Hotkeys Which they seem to be
AlexDaniel hm, what happens if you put a restriction there
Hotkeys It'll probably get mad if the type doesn't match
AlexDaniel m: say 2, 3, sub hello-there($a where * > 5, $b) { $b ** $a } ... * > 1000 19:05
camelia rakudo-moar 3259ba: OUTPUT«===SORRY!===␤Constraint type check failed for parameter '$a'␤»
Hotkeys Yeah
AlexDaniel LTA
Hotkeys LTA?
AlexDaniel yeah, no line number
TimToady and it could mention '* > 5' if it wanted to get fancy 19:06
it could conceivably even mention the 2 19:07
while we're at it, let's make backtraces print all the arguments to all the routines... 19:09
well, the short ones, anyway
AlexDaniel TimToady: oh, again!
I remember that
nine TimToady: sounds like a bit of a redesign of the whole MAIN mechanism to gain proper support for subcommands. I'd be fine with that :) I just don't feel qualified to do that. 19:10
yoleaux 19:01Z <TimToady> nine: rather than just ignoring the order of arguments, I think it would be more powerful to allow for cascaded MAIN-like things, so that we can differentiate the options before a command from the options after
TimToady Hotkeys: Less Than Awesome
nine TimToady: OTOH I would still like to make it easier for plain normal CLI programs. Lots of tools don't care where the named arguments are in the command line and as a user I like that very much as it sames a lot of moving on the command line. Like "ack foo" -> "ack foo -A 5" 19:11
_nadim: what system are you on? 19:12
19:12 sena_kun joined
TimToady we can make option movement easy, but I wouldn't want it to be the default 19:12
hankache Hotkeys AlexDaniel it is called a "pointy block" or an "anonymous function" or a "lambda". Pointy block being the most perl6ish 19:13
TimToady actually, option movement can easily be done with a preprocessor on @*ARGS before we call MAIN
AlexDaniel hankache: ok, pointy block. Thanks!
hankache AlexDaniel yw 19:14
TimToady similarly, subcommands could be done by preprocessing into an array of captures, with one capture shifted off at each level 19:15
captain-adequate TimToady: At the risk of sounding like a dumb dumb... Are you by any chance Larry Wall? 19:17
mst right, making option movement the default has some serious disadvantages
esp. with subcommands
19:17 _nadim left
RabidGravy speaking of MAIN() is it just a "normal" sub in the top level package? and is it called like some normal multi by some code in the core? 19:17
mst captain-adequate: he certainly claims to be.
TimToady captain-adequate: which one do you mean? last I looked, there were 137 Larry Walls in the U.S., and I'm only two of them....
RabidGravy I have my doubts 19:18
captain-adequate Awesome!!
mst I'd verify it via email, but he never actually replies to that
and I'm not sure it counts if I get his wife to vouch instead ;)
19:18 azawawi joined
RabidGravy he looks like him, but there are all these clues as to his real identity 19:18
azawawi hi
DrForr: ping 19:19
hankache if it walks like Larry and Talks like Larry.......
TimToady my mom claims that's my name, but she's 91 now, so maybe she's starting to lose it :)
DrForr azawawi: aroo?
TimToady (actually, she's still quite sharp for 91)
azawawi DrForr: hi
19:19 _nadim joined
_nadim nine: suse 19:20
captain-adequate I'm hoping for happy crazy by the time I'm 91.
AlexDaniel it seems like TimToady is not identified by NickServ right now, so that could be anyone
azawawi DrForr: looking at the IRC logs, you were doing some OpenCV bindings... any update?
RabidGravy it's the white cat and bald head and threatening up secret agents wiith lasers that gave him away 19:21
DrForr Hrm. I can push what I have to github...
azawawi cool
DrForr Though it probably won't pass tests because it predates NC changes. 19:22
azawawi DrForr: any luck with c++ api... or just c api for opencv?
DrForr Just the C stuff at the moment.
Running the test suite right now, seems to be in a bit of flux. 19:23
azawawi DrForr: been trying to make it work for a couple of days... I am thinking of just wrapping the JNI Java shared lib
RabidGravy what is opencv anyway?
awwaiid RabidGravy: an open-source computer-vision library 19:24
19:24 bowtie left
DrForr I've got to get this done for my OSCON talk anyway, assuming I'm giving it. 19:24
awwaiid RabidGravy: has a bunch of image/video algos that you can compose together and do neat things
19:24 TimToady left
azawawi RabidGravy: basically a ton of video & image processing algorithm functions :) 19:25
awwaiid RabidGravy: individually the algos aren't super interesting
RabidGravy oh right, is that the thing that google acid trip thing uses?
DrForr Let me move to the kitchen table and I'll push what I have.
19:25 bowtie joined
azawawi DrForr: thanks 19:25
sena_kun Hi, guys. I have a C call and an 'if' statement. When I do something like "If $var { call }" I got an "unhandled kind 1" error. If I remove if statement code will be completly okay. Is it a known bug?
azawawi DrForr: Haskell is plagued with the same problem we have for NativeCall ... C++ interop... Please take a look at this github.com/arjuncomar/opencv_contr...es/haskell 19:26
19:26 TimToady joined 19:27 TimToady left, TimToady joined
azawawi DrForr: detailed description is in this pull github.com/Itseez/opencv/pull/1600/ 19:27
RabidGravy the C++ interop sort of works, maybe the mangling needs some love but it basically works
alpha123 50% of the time, C++ interop works all the time 19:28
azawawi RabidGravy: even if it works, you cant use c++ objects... you need to re-wrap them in a sane p6 class
RabidGravy isn't that a "feature" ? ;-) 19:29
azawawi RabidGravy: also Str -> std::string may need special handling :)
RabidGravy dive in and fix the mappings, I added a load last week 19:30
azawawi RabidGravy: doing the c part is easy given that opencv has a python script that generates opencv function signature headers
DrForr Currently pushed as github.com/drforr/perl6-OpenCV2 - The test suite doesn't currently work, but it's got basic Array, Matrix, Scalar and Size interface classes. 19:31
azawawi DrForr++
19:31 jshy joined 19:32 sena_san joined, perl6newbee left, sena_san left, sena_kun left, sena_san joined
azawawi DrForr: the reason i asked for this earlier is that i do not want to duplicate development efforts 19:32
19:32 FROGGS left 19:34 zakharyas joined, Zero_Dogg left
DrForr Ah. Well, take a look at what's there, I'll take a few minutes now to see if what's broken is easily fixable. 19:34
19:34 Zero_Dogg joined
RabidGravy azawawi, if you're bored and liking NC stuff you could pick up the GDBM thing I couldn't get to work 19:35
azawawi well im bored that's for sure 19:36
geekosaur *everyone* has C++ interop problems
mspo skip GDBM and go straight to symas.com/mdb/
azawawi RabidGravy: i ordered the Arduino kit but did not get the soldering iron :( 19:37
RabidGravy: so now i have two Arduino Uno-s, an Ethernet shield (addon), and 433 Mhz transmitter/receiver along with a couple of sensors :) 19:38
19:39 yqt joined 19:40 muraiki joined
azawawi geekosaur: i noticed. C is way better in that aspect. 19:40
muraiki is there a good way to use Proc::Async with react blocks? the problem lies in the need to call $proc.start...
geekosaur C is only better because it doesn't try. you do interop from the C++ side, export "C" ...
RabidGravy mspo, please feel free to contribute a binding to that to the ecosystem :) 19:41
geekosaur (and those will be perfectly FFI-able, from any other language that has C interop)
19:41 jevin joined
mspo RabidGravy: it is the best k:v 19:41
RabidGravy: it would be fun to try making a PP version that used similar methods (COW, etc) 19:42
RabidGravy as I say, carry on and make the binding and I'm sure it will be groovy
mspo RabidGravy: once I can get any module to install I might try :) 19:43
RabidGravy slacker
mspo I guess I'm on an esoteric platform (netbsd)
RabidGravy not particularly esoteric
mspo RabidGravy: slacking is definitely something I do
19:44 jme` joined
mspo I like to spend my free time reading LOTR to my infant son ;) 19:44
I think he's liking it so far
azawawi DrForr: so which version are we going to be targeting 2.4.x or 3.x? :)
DrForr Well, in my case OpenCV2 should be a good hint there :) 19:45
nemo mspo: ah, captive audience ☺ yeah, I read Le Petit Prince to my daughter but that only worked until age 2 or so ☺ 19:46
now even the occasional pictures isn't enough
19:47 _Vi joined
DrForr Pushed fixes, the compile test passes. FWIW I don't mind working on both in parallel though once I see the C++ bindings I might change my mind :) 19:47
mspo nemo: yeah I read hitchicker's guide to my daughter until she could complain about it
nemo: now I'm lucky to read the grinch for being "plot driven"
nine sena_san: I fear we're gonna have to see some more code to help you
nemo mspo: probably the most complex text she's willing to listen through in its entirety (repeatedly) is Horton Hears a Who 19:48
nine oops...stale backlog
nemo mspo: but I think that's due to the silly voices dad does
DrForr I'd probably make a horrible parent, as my first thought would be "Fear and Loathing in Las Vegas" :)
nemo
mspo nemo: same; I'm waiting until I can move onto winnie the pooh
RabidGravy luck be on you with the opencv thing, looks enormous with loads of namespaces 19:49
nemo DrForr: you know, it's weird what kids like. she looooves www.youtube.com/watch?v=4voeUXDWKL0
sena_san nine, I already rewrite that part in different manner. I can't reproduce it in a small piece of code now, so I'll try to reproduce this error tomorrow and paste here a gist. 19:50
DrForr Of course I've got the Rifftrax version of The Hunger Games running in the background...
RabidGravy y'see I think all kids should be brought up on a constant diet of minimal techno www.youtube.com/watch?v=le-T9UDqOZw
DrForr RabidGravy: Nod, a lot of my time was spent tearing apart the existing .h files into different classes. 19:51
sena_san s/rewrite/rewrote/
nemo mspo: I get the feeling our kids are roughly the same age btw 19:52
19:52 bowtie left, hankache left
leont Is there any advantage to declaring a return type to subs and methods? 19:53
DrForr Future optimization?
RabidGravy and introspection
rjbs Are those not checked? 19:54
_nadim leont: may be useful when multis return differnt types
TEttinger RabidGravy: raise your kids on a healthy diet of ziltoid the omniscient
RabidGravy yes
leont I think they're checked, but that's not much of an advantage most of the time since I know what I'm returning
rjbs It is checked.
nine Today I finally decided to move from rekonq to chromium. I dearly miss rekonq already :/
rjbs Heh, it's an advantage for me, because I make mistakes in return types once in a while.
RabidGravy m: sub foo() returns Bool { return class Foo {} }; foo() 19:55
camelia rakudo-moar 3259ba: OUTPUT«Type check failed for return value; expected Bool but got Foo␤ in sub foo at /tmp/Rax83kJPqP line 1␤ in block <unit> at /tmp/Rax83kJPqP line 1␤␤»
rjbs I appreciate the compile-time checking of it in other languages.
runtime checking is somethin'
flussence nine: feels like I've used about a billion different browsers in the past few years. they all suck in unique ways :)
mspo I guess panda doesn't use a .packlist ? 19:56
AlexDaniel rt.perl.org is very slow today…
RabidGravy well, compile time checking of return types is possible I guess but only if the routine body evaluates to a constant value
mspo nemo: almost 3 years and almost 3 months
nine flussence: I think my whole history has been: Netscape 4 -> Mozilla M15 to Seamonkey -> konqueror -> rekonq -> chromium
nemo mspo: pretty close!
TEttinger I was a big Firefox fan until some set of "improvements" in a major update made it use massively more memory and also crash with no warning on gif-heavy pages
nemo TEttinger: huh... how long ago was that? 19:57
TEttinger years
nemo ah
TEttinger: 'cause these days the bloated one is chromium I think
mspo nemo: time for computer stuff outside of work is..... difficult :)
TEttinger this is known to crash FF tommyettinger.github.io/home/PixVox...sions.html
nemo TEttinger: blog.mozilla.org/nnethercote/2013/...k-117-120/ 19:58
TEttinger hm, when did I switch
nine _nadim: if the problem still persists, it would be cool if you could upload your rakudo/install/share/perl6 directory somewhere so I can have a look.
mspo yeah chrome isn't lightweight: groups.google.com/a/chromium.org/f...Z5ZK0K3gEJ
nemo TEttinger: usinga fair amount of memory but seems fine 19:59
leont TEttinger: yeah, FF memory usage is ridiculous nowadays :-(
TEttinger I had hundreds of tabs open in firefox regularly, and some update made it impossible to load my previous set of tabs
leont I remember when they switched from refcounting to GC
nemo TEttinger: but, since the memshrink project firefox has been super aggressive at slashing memory. It's the only browser than ran on my old android phone
mspo "In the course of optimizing SyzyASan performance, the Syzygy team discovered that nearly 25000 (!!) allocations are made for every keystroke in the Omnibox. "
leont If it goes into global GC and you're 2GiB into swap, good luck! :-(
19:59 dfcarpenterak joined
nemo TEttinger: anyway your page doesn't seem to be crashing *shrug* 20:00
TEttinger hm, might only be if memory is low
nemo TEttinger: must be really low
TEttinger I've had crash reports from a netbook running windows and on my own 12 GB RAM machine when most of that RAM is used
nemo TEttinger: used a total of 1.4GiB of ram
which is a lot
but nowhere near enough to crash even a 32 bit machine 20:01
flussence I knew people (plural!) who have upwards of 1000 tabs in either firefox and chrome(!)
TEttinger not the machine, just FF
nemo TEttinger: I know. didn't crash either
leont My FF regularly 3-4 GiB virt on a 2GiB RAM machine, deliberate crash and relaunch is sometimes faster than a GC run
nine flussence: you do know....strange people
nemo TEttinger: chrome is using 2GiB
and fair amount more CPU
weird. what the heck is that page doing? 20:02
20:02 bowtie joined
nemo I guess a ton of large images is all. RGBA pixmaps can get big 20:02
leont has seen it claim 20 GiB virt, that was "interesting"
TEttinger I'll check nmy response to you, nemo: i.imgur.com/qvglxXY.png
nemo TEttinger: the link to the about:crashes entry would be more helpful ☺
but yeah. seems fine here. dunno
TEttinger it also doesn't load all the gifs by default 20:03
nemo ah. that could explain the significantly lower memory usage
DrForr awwaiid: Huh. t/02-OpenCV-Mat.t actually passes, it might actually be creating matrices.
TEttinger if I scroll, it loads more, and then it crashes for me
nemo TEttinger: yeah, that's probably related to that memshrink blog post I linked you to 20:04
flussence somehow I ended up stuck with Vivaldi on my netbook - basically a buggy, heavyweight UI wrapper around chromium like those things that existed for IE6 in the early 2000's. I used to be able to compile chromium itself on that thing... :(
nemo TEttinger: ok. some of them aren't loading at all. says they contain errors
could be due to the size
TEttinger: I know Firefox is pretty aggressive about rejecting "zipbomb" images
TEttinger they don't contain errors.
they are large
nemo for example one of my Hedgewars maps doesn't load for that reason
mspo iirc chromium doesn't compile on 32bit machines
flussence it used to! 20:05
mspo like it's impossible to have enough memory to do the compile
nemo TEttinger: hg.hedgewars.org/hedgewars/raw-file...e/mask.png
TEttinger: that map "contains" errors but is just due to the dimensions
TEttinger: but I get why they are doing it
TEttinger loads fine in chrome
nemo I know
is just about sanity limits
$ file mask.png
mask.png: PNG image data, 2048 x 32768, 8-bit/color RGBA, non-interlaced
20:05 azawawi is now known as ziwix
nemo TEttinger: that image requires 256MiB of RAM to represent which is bordering zipbomb 20:06
ziwix Better now no confusion with awwaiid :)
dalek c: 20d8f52 | (Zoffix Znet)++ | doc/Type/Supply.pod:
C<> should be L<>
20:06 sivoais-ms is now known as sivoais
nemo TEttinger: and that's not even counting the poor vRAM 20:06
flussence mspo: Firefox had the same problem at one point; some of their official build machines were using a 32-bit version of win/osx. I think their workaround was to just update the OS instead of fixing the bloat... 20:07
nemo TEttinger: but yeah, try this congressoamericano.blogspot.com/p/f...o-iii.html in both - it was from the memshrink blog
some pathological site
flussence: I can tell you I compile Seamonkey still on my 32 bit machine w/ a whole gig of ram. it ain't fast tho 'cause it uses swap a fair amount ☺ 20:08
20:10 spider-mario joined
TEttinger nemo: it seems not to use more than 250 MB of RAM, hovering around 230 MB in chrome 20:11
hahaha
I opened firefox and it re-opened the explosions page and crashed immediately
nemo TEttinger: seriously. can you link to the about:crashes entry ? 20:12
TEttinger I didn't submit one that time, it happens so often
nemo TEttinger: link me to any one of them then 20:13
TEttinger it isn't even giving me a crash report dialog 20:14
this is exactly why I use chrome
nemo TEttinger: I opened that congressowhatever in chromium and it is using 500MiB of RAM
not terrible
rindolf nemo: wow. 20:15
nemo Firefox 335 20:16
20:16 darutoko left
nemo both measurements made w/ their own internal measurement tools 20:16
still a lot to be sure 20:17
20:17 arlenik joined
nemo TEttinger: you sent me a link to a crash report dialog? O_o 20:17
TEttinger: so about:crashes has nothing in it?
wonder if this is due to some extension or something 20:18
nemo tries TEttinger's page on his wimpier laptop
flussence
.oO( the only meaningful way to measure memory usage is to measure how much useful work a program gets done before it starts swap thrashing )
20:19
TEttinger crash-stats.mozilla.com/report/ind...cb42160115
arlenik noob here, how do i do 'generic' classes in Perl6? say I want a Point class parameterized over dimension and numeric type.
RabidGravy so when panda says that is can't install something due to already installed it says "Foo:ver<blah>:auth<blah>:api<blah>" but I can't find the api part decribed anywhere is it actually a thing?
20:20 sena_san left
RabidGravy arlenik, probably you want a parameterised role 20:20
nine RabidGravy: I'm not sure where that actually came from. I think there was some discussion in November about it
RabidGravy arlenik, doc.perl6.org/language/objects#Para...ized_Roles 20:21
nemo TEttinger: weird. I can't get it to happen on my laptop either. which obv has quite a bit less ram
and a wimpier gfx card
TEttinger no idea what causes it other than scrolling
there are larger gifs at the bottom
nemo 'course both are linux... hm *goes to coworker's desk* 20:22
yeah. I scrolled
RabidGravy nine, okay, it just sounds like a sensible thing given that one may want to alter the version for reasons of implentation details of something without changing the actual api 20:23
which is better than crude versioning
TEttinger under metadata there's a GraphicsCriticalError: 20:24
|[0][GFX1]: [D2D1.1] 4CreateBitmap failure Size(640,360) Code: 0x8899000c format 0|[96][GFX1]: [D3D11] 2 CreateTexture2D failure Size(16,16) Code: 0x887a0005|[92][GFX1]: [D3D11] 2 CreateTexture2D failure Size(16,16) Code: 0x887a0005|[93][GFX1]: [D3D11] 2 CreateTexture2D failure Size(16,16) Code: 0x887a0005|[94][GFX1]: [D3D11] 2 CreateTexture2D failure Size(16,16) Code: 0x887a0005|[95][GFX1]: [D3D11] 2 CreateTexture2D failur
seems like a DirectX thing
nemo TEttinger: strange. not crashing on coworker's crappy windows laptop, and he's running eclipse, oracle, IE and Firefox on that poor thing, not to mention AV
TEttinger it mentions D3D11
nemo hm 20:25
TEttinger might be my not-bad NVIDIA GPU
GTX 765M 2GB
20:25 arlenik left 20:26 lokien joined
nemo TEttinger: aaaanyway. since you have a windows machine + chromium - does m8y.org/tmp/testcase429.xhtml render smoothly these days now? 20:26
lokien heyy guys, firefox is great
nemo O_o
TEttinger to clojure with thee! 20:27
RabidGravy all browsers are crap, it's just some are more crap than others
TEttinger but perl 6 is pretty good
nemo: not totally
there's some bars
lokien perl6 is fun, but clojure is love and life
nemo TEttinger: ah. known 20:28
lokien firefox's getting a new engine, by the way, maybe it'll suck less
nemo TEttinger: hopefully should be fixed soon. The FF guys submitted a patch
TEttinger: I was wondering more about CPU
TEttinger i.imgur.com/nfDEv6X.png
nemo yeah. I ran into that 20:29
TEttinger: my issue was more the CPU usage really
MadcapJake how can I make an object callable like a function? 20:30
yoleaux 17:26Z <TimToady> MadcapJake: note that camelia has a lot of intentional asymmetry, in particular her left eye is not supposed to be quite centered; in addition to artistic reasons, there's a small pun on 'wall-eyed' there :)
17:37Z <TimToady> MadcapJake: I like the high-heel shoes, though :)
flussence MadcapJake: define «method CALL-ME», iirc 20:31
20:31 travis-ci joined
travis-ci Doc build passed. Zoffix Znet 'C<> should be L<>' 20:31
travis-ci.org/perl6/doc/builds/102680437 github.com/perl6/doc/compare/694dd...d8f522a3eb
20:31 travis-ci left
nine RabidGravy: or the other way round? Offer a module with two different APIs? 20:31
TEttinger nemo: yeah it starts at 50% (so maxing out 4/8 virtual cores), then quickly goes down to maxing out one including the GPU process
flussence has that page open, using about 137% CPU 20:33
lokien has that page open in firefox, 3% cpu, everything smooth 20:34
RabidGravy nine, indeed that could work :)
rindolf Hi all! panda install gives me this - www.shlomifish.org/Files/files/text...da-err.txt 20:41
dalek c: 00e10d5 | (Christopher Bottoms)++ | doc/Language/terms.pod:
Updated π/pi and added τ/tau
20:42
c: b322bf7 | (Zoffix Znet)++ | doc/Language/terms.pod:
Merge pull request #354 from molecules/patch-1

Updated π/pi and added τ/tau
osystem: 2dfc615 | Altai-man++ | META.list:
Bzlib2 bindings.
osystem: 74bd14f | (Zoffix Znet)++ | META.list:
Merge pull request #124 from Altai-man/master

Bzlib2 bindings.
20:44 dfcarpenterak left 20:46 domidumont left, domidumont joined
MadcapJake how come I can't seem to make a BUILD signature accept positional arguments? 20:49
muraiki doc.perl6.org/language/objects#Obje...nstruction 20:54
MadcapJake: scroll down to "The third implication"
masak MadcapJake: what are you trying to accomplish? (I've known people to give .new positional parameters, but not .BUILD)
rindolf can anyone help me?
muraiki and note why that's considered a poor practice
rindolf <rindolf> Hi all! panda install gives me this - www.shlomifish.org/Files/files/text...da-err.txt
20:55 lnrdo joined
mspo rindolf: you probably need to try reinstalling panda 20:55
rindolf: or getting your whole environment fixed up
rindolf mspo: ah.
mspo rindolf: after messing with it a bunch, last night I broke down and just used rakudobrew because that's what everyone in here uses
rindolf mspo: OK, let me see.
muraiki I also suggest simply using rakudobrew 20:56
rindolf mspo: I am using rakudobrew
mspo rindolf: rakudobrew build panda then :)
dalek c: f8fa69e | (Shlomi Fish)++ | doc/Language/5to6-nutshell.pod:
Fix tense due to pluralization
c: 1a269ee | (Steve Mynott)++ | doc/Language/5to6-nutshell.pod:
Merge pull request #355 from shlomif/shlomif--typos-corrections

Fix tense due to pluralization
20:56 domidumont left
rindolf mspo: OK. 20:58
nine rindolf: please upgrade your rakudo and panda. Then it should work.
rindolf: your rakudo is severely out of date
20:58 marmay_ joined
nine FWIW I've never used rakudobrew and also never had problems like that ;) 20:59
rindolf nine: OK. 21:00
21:04 revhippie joined
masak same here. 21:04
Zero_Dogg Does .lines on .out of a Proc-object (ie. created with run) return lines until EOF, ie. until the subprocess exits? 21:07
21:07 dfcarpenterak joined
masak Zero_Dogg: ...as opposed to what? only returning some of them? 21:09
Zero_Dogg masak: as opposed to only returning whatever was pending at the time 21:10
b2gills It's lazy if thats what you mean
Zero_Dogg nod, not quite what I meant. I've got a subprocess returning way fewer lines than it's suppose to, so just trying to figure out if the problem is in my code or the subprocess, sounds like the subprocess has some problem then if .lines reads until eof 21:11
21:11 cdg joined
revhippie In perl6 terms, "eager" is the opposite of "lazy"? 21:12
21:12 bowtie left
masak Zero_Dogg: I would expect .lines to read until eof, even if the lines haven't been produced yet. i.e. I'd expect .lines to block in that case. 21:12
Zero_Dogg masak: right, that's what I was wondering. Thanks
21:12 lokien left
masak Zero_Dogg: if you have a genuine case of it not doing that, then it sounds like we might want to report a bug :) 21:12
MadcapJake What am I doing wrong here: hastebin.com/uqujayovum.txt 21:13
I get "useless use of constant string" for my description of the test
Zero_Dogg masak: it could very well be the subprocess acting up, so I'll need to verify that before jumping to that :)
21:13 ziwix left
MadcapJake I get `Cannot call is(Str)` 21:13
masak revhippie: "eager" and "lazy" are two modalities among at least four. there's also "hyper", and "race" (both of which are "more eager" than eager)
MadcapJake: accidental semicolon at last line 21:14
MadcapJake: after the `$buffer.text`
MadcapJake ooph! haha
21:14 bowtie joined
MadcapJake masak: thanks! 21:15
21:16 linuxuser9000 joined
timotimo o/ 21:17
rindolf OK, after I did git clean -dxf on my rakudobrew install and rebuilt/reinstalled rakudo and panda, I am getting this again - www.shlomifish.org/Files/files/text...da-err.txt
zhmylove Is this a normal perl6 code to download args to 01.htm .. XX.htm ? : my $c = 1; for @ARGS {`curl -o $c++.fmt('%02d').htm $_.subst("'","\\'",:g)`}
rindolf zhmylove: Perl 6 should have an HTTP module.
timotimo rindolf: could it be you also have to nuke ~/.perl6/ ?
and also: how come these Download/unpack/... paths are in there? 21:18
rindolf zhmylove: and are you interested in capturing the output of the curl command?
timotimo: that's where I placed rakudobrew.
zhmylove rindolf: hmm, actually not. I'm going to read about perl6 http
timotimo rindolf: it could be that rakudobrew insists on ~/.rakudobrew, but i have no clue 21:19
masak zhmylove: that seems to have several errors in it.
rindolf timotimo: hmm...
masak zhmylove: have you actually tried running that?
zhmylove: there's no `` in Perl 6, for example.
rindolf timotimo: www.shlomifish.org/Files/files/text...da-err.txt - this is what I get after I nuke ~/.perl6
timotimo: fine, let me try with ~/.rakudobrew 21:20
timotimo :<
if it can't be found, how was panda able to get installed?
is "which perl6" the right one?
or "which panda" to be exact
zhmylove masak: nope, I hadn't tried this version. There was say "curl..." 21:21
timotimo (we're getting more and more fed up with rakudobrew causing difficulties, we may end up not recommending it any more in the future)
21:22 kjs_ joined 21:23 zakharyas left
mst do we have a list of failure modes? 21:23
it definitely doesn't have to be ~/.rakudobrew
rindolf: what exact command are you running?
timotimo OK
mst I mean, how did you 'rebuild everything' 21:24
you've not actually told us what you did yet, which makes debugging difficult
rindolf mst: I placed bin in my PATH, and did "rakudobrew build moar" and "rakudobrew build panda" and then "panda install Pod::To::HTML". 21:25
timotimo dinner time!
mst rindolf: please show me exactly what commands you ran. 21:26
describing what you did is still not helpful
21:27 linuxuser9000 left
rindolf mst: OK. 21:27
mst: I'll use "script".
masak zhmylove: you might want to try qqx[] instead of ``
mst pasting the shell session in full would also be fine.
masak zhmylove: but even then, you can't just do $c++ inside of it like you do, you'd need something like { $c++ } 21:28
21:28 kjs_ left, rurban1 joined 21:29 rurban left 21:30 sena_kun joined 21:35 azawawi joined
azawawi DrForr: finally it is working :) 21:35
21:36 bdmatatu joined
azawawi DrForr: github.com/azawawi/scripts/blob/ma...cv_test.p6 # C++ API wrapper for reading/showing images in OpenCV :) 21:36
21:37 dfcarpenterak left
mspo doc.perl6.org/language/variables.ht...Declarator should that be blank? 21:38
bdmatatu Hi folks: how can I print the Pod for a module from the command line (like perldoc module)? 21:39
tadzik p6doc may be what you want
bdmatatu I haven't been able to make it work..
stmuk_ p6doc only currently works with the core pod 21:40
bdmatatu I thought maybe I could look at $module.WHY in a one-liner..? 21:42
stmuk_ if anyone knows of any ecosystem modules which use pod that would help :)
bdmatatu DBIish for instance
skids Sum has exntensive POD, even if it is somewhat broken. X::Protocol has some POD as well, and is not broken (last time I checked) 21:44
MadcapJake how come I can't seem to access a fellow module? The name is properly matching the path, but it still says "Could not find '&Edit'" 21:46
should i be using `use lib 'lib'` 21:47
rindolf mst: [and all]: OK, now after I did a rm -fr rakudobrew and a fresh git clone , then I can run panda install fine.
mst rindolf: which leaves us no wiser as to what went wrong originally, but at least it's working now 21:48
21:50 linuxuser9000 joined
rindolf mst: yes, well, previously I had an old install of rakudobrew, and I did "git clean -dxf" there (which didn't delete the inner repositories) and then tried to run the build commands, as can be seen in the succeeding transcript here - www.shlomifish.org/Files/files/text...ipt.txt.xz . 21:50
21:53 cpage_ left, cpage_ joined
zhmylove masak: thank you very much! 21:54
21:55 skids left
MadcapJake anyone have any help for modules? I have two files «lib/Command/Buffer.pm6» and «lib/Command/Edit.pm6» and they are both classes. In my Buffer class, I call «Edit.new(...)» and I'm getting «Could not find symbol '&Edit'» 21:56
oops I call «Command::Edit.new(...)» 21:57
21:59 lnrdo left, sena_kun left 22:02 lnrdo joined
RabidGravy did you "use" the module? 22:08
MadcapJake yeah
22:08 bdmatatu left
nine How's Command::Edit declared? 22:09
RabidGravy does the Command/Edit actually define Command::Edit?
MadcapJake it's declared as `class Edit { ... }`
RabidGravy yeah, you need to fully qualify it
nine So it's called Edit, not Command::Edit
MadcapJake doh! Thanks nine RabidGravy! 22:10
RabidGravy except then it shoud be lib/Edit.pm
MadcapJake ok cool
sortiz \o #perl6
RabidGravy I've taken to doing everything in one file until such time as it becomes unfeasibly large
sortiz .tell mspo I'm working in a p6-LMBD 22:11
yoleaux sortiz: I'll pass your message to mspo.
MadcapJake RabidGravy: that's where I was and then I split the files and got really confused! :P
RabidGravy right
22:12 ely-se joined
leont tends to do a «unit package Foo;» at the top of compilation units with multiple classes 22:12
RabidGravy module works too 22:13
22:13 bzipitidoo joined
RabidGravy package however has the advantage of being able to be preent in multiple compilation units 22:14
22:15 perlawhirl joined, perlawhirl left, perlawhirl joined
perlawhirl hi perlers 22:16
o/
RabidGravy erp
perlawhirl was watching an old talk by lizmat which had 'rand.sleep', however that no longer seems to work and it seems it should 22:17
m: rand.sleep
camelia rakudo-moar 3259ba: OUTPUT«Method 'sleep' not found for invocant of class 'Num'␤ in block <unit> at /tmp/vaFDj5bSIY line 1␤␤»
RabidGravy no it doesn't not for a while
ely-se m: say set("a Str|b") === set("a", "b")
camelia rakudo-moar 3259ba: OUTPUT«True␤»
perlawhirl RabidGravy: but sleep rand works? so why not rand.sleep ? 22:18
RabidGravy m: say rand.WHAT
camelia rakudo-moar 3259ba: OUTPUT«(Num)␤»
flussence numeric objects don't have methods for OS-level sleep for the same reason they don't have a .listen method that sets up a UDP socket on the given port number
RabidGravy yeah 22:19
AlexDaniel similar question: why @a.zip(@b) is not there?
ely-se Z is an operator
perlawhirl ok, so i can't use .sleep as a method call at all? 22:20
ely-se @a Z @b
RabidGravy of course you can always make it yourself
AlexDaniel ely-se: oh really?
perlawhirl nah, all good... the reasoning makes sense... just wanted to make sure it wasn't a mistake
AlexDaniel m: .say for zip <1 2 3>, <a b c>;
camelia rakudo-moar 3259ba: OUTPUT«(1 a)␤(2 b)␤(3 c)␤»
ely-se AlexDaniel: yes! There's also X for cartesian product
RabidGravy m: role Boo { method sleep() { sleep(self) }; my $a = 1 but Boo; $a.sleep; 22:21
camelia rakudo-moar 3259ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/o1Gf6w9Uec␤Missing block␤at /tmp/o1Gf6w9Uec:1␤------> 3ep(self) }; my $a = 1 but Boo; $a.sleep;7⏏5<EOL>␤»
ely-se m: say(<1 2 3> Z~ <4 5 6>)
camelia rakudo-moar 3259ba: OUTPUT«(14 25 36)␤»
RabidGravy m: role Boo { method sleep() { sleep(self) }}; my $a = 1 but Boo; $a.sleep;
camelia ( no output )
RabidGravy etc
perlawhirl thanks =)
RabidGravy if something feels natural to you, just make it 22:22
AlexDaniel ely-se: well, the question is why we have ‘zip’ sub but no ‘.zip’ method
ely-se You can already use Z operator for infix notation
AlexDaniel ely-se: hm. Good point 22:23
perlawhirl there is such a thing as 'there are too many ways to do it' :)
revhippie don't you blaspheme in here
perlawhirl cowers
AlexDaniel cowers :D
ely-se cowards 22:24
sjn cow-has
(moo)
RabidGravy zip doesn't seem to fit easily as a method of one array on another, it's an operation on two arrays 22:25
PerlJam perlawhirl: we do have a .zip method ... on Supply :)
RabidGravy I want a zippidahdoodah method
sjn r: my method zippidahdoodah ($zippedid-dey) { ... }; # my-oh-my what a wonderful day 22:27
camelia ( no output )
ely-se
.oO(CowHOW)
22:30
22:31 cpage_ left, espadrine joined 22:32 marmay_ left 22:33 firstdayonthejob left 22:35 rindolf left, ssotka joined 22:38 perlawhirl left 22:44 espadrine left 22:45 espadrine joined
AlexDaniel “Ruby To Perl6 – Nutshell” hmmm… what about having “Perl 6 To Python – Nutshell” just for fun? :) 22:45
22:46 kaare_ left, firstdayonthejob joined, kaare_ joined 22:47 muraiki left, yurivish joined 22:48 kaare_ left, kaare_ joined
dalek p: 1d08541 | (Pawel Murias)++ | TODO:
Remove the nqp-js TODO, will be readded in a proper place once it's updated.
22:52
22:53 pmurias joined
pmurias [Coke]: do we have people who are intersted in adding new nqp backends but don't know where to start? 22:55
22:57 cpage_ joined
azawawi # Image de-noising is now working in Perl6 opencv prototype :) github.com/azawawi/scripts/blob/ma...cv_test.p6 23:00
num32 -> C float # Error: Cannot unbox to a native integer 23:03
23:07 pi1 left 23:12 pi1 joined, lnrdo left
dalek c: 22840f1 | (Jim Davis)++ | doc/Type/S (2 files):
typos/spelling errors
23:13
23:14 azawawi left 23:15 skids joined
Skarsnik what does opencv? 23:16
+do
23:16 espadrine_ joined
Skarsnik well hwhatever he is gone x) 23:16
23:16 espadrine left
timotimo computer vision stuff 23:20
MadcapJake how do you destructure a hash (but not in a signature)?
timotimo what do you mean? signatures is exactly what you use to destructure stuff, no? 23:21
MadcapJake but i want to destructure a hash into some variables
23:21 azawawi joined
MadcapJake i.e., «my (% (:$replacement, :$from, :$to)) = $other;» 23:21
azawawi Skarsnik: im back :) i switched my linux dev vm off
timotimo use := there 23:22
azawawi Skarsnik: if you want to take a video feed from your web camera, and do some face/object detection, then opencv is the thing is to use
Skarsnik Oh ok 23:23
MadcapJake timotimo: with that i get a positional arg error
Skarsnik Did you try gptrixie on this?
azawawi Skarsnik: basically it has tons of ready made image processing algorithms
Skarsnik but you will need to add ref type first on it x)
23:24 livyathan left 23:25 M-matthew is now known as Matth3w
timotimo ah 23:26
also use a % on the RHS
or perhaps \%$
azawawi Skarsnik: interesting stuff like this docs.opencv.org/2.4.11/
23:27 captain-adequate left
Skarsnik I have a look tomorrow x= 23:29
dalek c: 28d006b | (Jim Davis)++ | doc/Language/objects.pod:
Change sample value to possibly minimize confusion

It's not 100% clear with the `1, 2` example that `$!y` isn't being calculated from the `$!x`.
23:31
23:31 yurivish left
MadcapJake m: class Game { has $.team1-score = 0; has $.team2-score = 0 }; my $game = Game.new; my (% ($team1-score)) := $game; say $team1-score; 23:32
camelia rakudo-moar 3259ba: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in block <unit> at /tmp/QhEDc0LDqY line 1␤␤»
MadcapJake timotimo: can you show me what you mean, there's the pattern I'm looking for
azawawi timotimo: that's one of things Perl 5 does have... The Cv on metacpan is basically old C API and unmaintained since 2013. So if we can make this happen, maybe we can convince Chris Marshall (PDL - Perl Data language) to make a Perl 6 version 23:33
23:33 cdg left
RabidGravy Is PDL the one that also defines hundreds of different musical scales? 23:35
timotimo you forgot the : in there, MadcapJake
(% (:$team1-score))
m: class Game { has $.team1-score = 0; has $.team2-score = 0 }; my $game = Game.new; my (% (:$team1-score)) := $game; say $team1-score; 23:37
MadcapJake m: class Game { has $.team1-score = 0; has $.team2-score = 0 }; my $game = Game.new; my (% (:$team1-score)) := $game; say $team1-score;
camelia rakudo-moar 3259ba: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in block <unit> at /tmp/wtdIPwpymA line 1␤␤»
rakudo-moar 3259ba: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in block <unit> at /tmp/OC_An2wbxm line 1␤␤»
timotimo lol.
m: class Game { has $.team1-score = 0; has $.team2-score = 0 }; my $game = Game.new; my (% (:$team1-score)) := \$game; say $team1-score;
camelia rakudo-moar 3259ba: OUTPUT«Potential difficulties:␤ To pass an array, hash or sub to a function in Perl 6, just pass it as is.␤ For other uses of Perl 5's ref operator consider binding with ::= instead.␤ Parenthesize as \(...) if you intended a capture of a single var…»
timotimo m: class Game { has $.team1-score = 0; has $.team2-score = 0 }; my $game = Game.new; my (% (:$team1-score)) := $game.Capture; say $team1-score;
camelia rakudo-moar 3259ba: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in block <unit> at /tmp/5aiJtglWJq line 1␤␤»
timotimo m: class Game { has $.team1-score = 0; has $.team2-score = 0 }; my $game = Game.new; my (:$team1-score) := $game.Capture; say $team1-score;
camelia rakudo-moar 3259ba: OUTPUT«Unexpected named argument 'team2-score' passed␤ in block <unit> at /tmp/fv9qCGDHsp line 1␤␤»
timotimo m: class Game { has $.team1-score = 0; has $.team2-score = 0 }; my $game = Game.new; my (*% (:$team1-score)) := $game.Capture; say $team1-score; 23:38
camelia rakudo-moar 3259ba: OUTPUT«Unexpected named argument 'team2-score' passed in sub-signature␤ in block <unit> at /tmp/j4Dtd7Ho9E line 1␤␤»
RabidGravy I've got a thing down the back of the sofa that defines the classical modes but not having anything to use it for makes it pointless to release atm
timotimo seems to force you to put all of them in there
stmuk_ /me wonders why Distribution has 'ver' and 'version'
-" "
23:38 z8 joined
RabidGravy stmuk_, "too much crack" 23:39
timotimo verdammt!
23:40 rurban joined
RabidGravy maybe a *% to sip up the unwanted args 23:40
23:41 rurban1 left
MadcapJake RabidGravy: how would you do that? 23:41
RabidGravy m: class Game { has $.team1-score = 0; has $.team2-score = 0 }; my $game = Game.new; my (:$team1-score, *%) := $game.Capture; say $team1-score; 23:42
23:42 Zero_Dogg left
camelia rakudo-moar 3259ba: OUTPUT«0␤» 23:42
RabidGravy like that 23:43
23:43 Zero_Dogg joined
MadcapJake cool, so what's this Capture method? 23:43
neat, so it's like an argument list 23:44
RabidGravy m: class Game { has $.team1-score = 0; has $.team2-score = 0 }; say Game.new.Capture
camelia rakudo-moar 3259ba: OUTPUT«\(:team1-score(0), :team2-score(0))␤»
RabidGravy no, it exactly is an argument list
MadcapJake wow, that's really cool
RabidGravy I'm not sure it's that cool but it's possible 23:45
masak 'night, #perl6
azawawi night 23:46
MadcapJake RabidGravy: well it means you can destructure outside of signatures :P
how can i write to these variables? 23:47
23:47 azawawi left
MadcapJake m: class Game { has $.team1-score = 0; has $.team2-score = 0 }; my $game = Game.new; my (:$team1-score, *%) := $game.Capture; say $team1-score; $team1-score += 1; say $team1-score; 23:48
camelia rakudo-moar 3259ba: OUTPUT«0␤Cannot assign to a readonly variable or a value␤ in block <unit> at /tmp/nlEPmuKFXd line 1␤␤»
timotimo ah. may need "is copy" there? 23:49
RabidGravy or an is rw on the attribute
MadcapJake where though, it won't let me put it inside the parentheses or lhs before the bind, is it after the Capture call? 23:50
RabidGravy which gets you into "weird action at a distance" territory
m: class Game { has $.team1-score is rw = 0; has $.team2-score = 0 }; my $game = Game.new; my (:$team1-score, *%) := $game.Capture; say $team1-score; $team1-score += 1; say $team1-score; 23:51
camelia rakudo-moar 3259ba: OUTPUT«0␤Cannot assign to a readonly variable or a value␤ in block <unit> at /tmp/vd0QZQjpM6 line 1␤␤»
RabidGravy ah, okay false understanding
thank goodness
MadcapJake o_0 23:52
RabidGravy m: class Game { has $.team1-score is rw = 0; has $.team2-score = 0 }; my $game = Game.new; my (:$team1-score is rw, *%) := $game.Capture; say $team1-score; $team1-score += 1; say $team1-score;
camelia rakudo-moar 3259ba: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wbDFsPFncc␤Cannot use 'is rw' on an optional parameter␤at /tmp/wbDFsPFncc:1␤»
RabidGravy m: class Game { has $.team1-score is rw = 0; has $.team2-score = 0 }; my $game = Game.new; my (:$team1-score is copy, *%) := $game.Capture; say $team1-score; $team1-score += 1; say $team1-score;
camelia rakudo-moar 3259ba: OUTPUT«0␤Cannot assign to a readonly variable or a value␤ in block <unit> at /tmp/4K0vX4sFO5 line 1␤␤»
RabidGravy nope
faith restored 23:53
MadcapJake so this is not possible then?
AlexDaniel m: say ‘✋’; say <✊ ✋ ✌>.pick 23:54
camelia rakudo-moar 3259ba: OUTPUT«✋␤✌␤»
AlexDaniel awww
m: say ‘✌’; say <✊ ✋ ✌>.pick # ok let's try again
camelia rakudo-moar 3259ba: OUTPUT«✌␤✌␤»
AlexDaniel m: say ‘✊’; say <✊ ✋ ✌>.pick
camelia rakudo-moar 3259ba: OUTPUT«✊␤✋␤»
AlexDaniel camelia: :<
23:56 firstdayonthejob left