»ö« 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.
tweakism Juerd: he probably wants to load the functions etc. defined and then interactively do stuff with them 00:00
ridthyself hats it
tweakism most REPLs let you do that, too
Juerd I don't know. I come from Perl 5 that doesn't even ship with a usable repl
It's not part of my work flow, or even the way I experiment.
ridthyself right, that's what I was after -- I have a lot functions that i want to test with various inputs 00:01
Juerd Is there any reason why you don't want to turn that into a module? 00:02
It's not hard
doc.perl6.org/language/modules
ridthyself lack of skill, mostly
if I turn it into a module, how would I interact with it for testing purposes 00:03
Juerd You could then start the repl and type "use MyModule;"
Or even start the repl with "perl6 -MMyModule" 00:04
00:04 DoverMo joined
ridthyself what is the difference between a .p6 file and module 00:05
Juerd Put everything in a file called MyModule.pm, have "unit module MyModule;" on the first line, and turn every "sub foo { ... }" into "sub foo is export { ... }", if you want the function to be exported (callable by whatever 'use's the module)
The way you use it
Modules (.pm6 or .pm) are loaded with 'use' and use namespaces. Programs (.p6 or .pl, or anything you like) are run from the command line. 00:06
ridthyself wow, so like function within a function
[Coke] do we have anyone attending yapc::na and if so hackathon before or after?
Juerd Typically, anything that isn't a full program, should be a module.
[Coke] Trying to budget the trip and more days are 'spensive. 00:07
00:07 johndau joined
Juerd ridthyself: I don't understand the 'function within a function' comment. You can have functions within functions, but I don't see how that's relevant here :) 00:07
ridthyself what I mean is composing a program out of modules made of functions might be the way to go for me 00:08
thanks for your help, now I have something fun to play with. 00:09
00:09 SCHAAP137 left
Juerd One last thing: you need to tell perl6 where your modules are. There are several ways to do this. You can use "-I path" on the command line, the PERL6LIB environment variable, or "use lib 'path';" in your program. 00:10
ridthyself okay 00:11
00:12 firstdayonthejob left, TEttinger1 is now known as TEttinger
ridthyself so perl6 -I /path/to/file.pm 00:13
Juerd Sure, or a relative path
I often use perl6 -Ilib for quick one-off tests
That'll use the directory called 'lib' in the current working directory
Or if I'm too lazy even to create a directory for a quick hack, I'll just use -I. and use the current working directory itself. 00:14
skids perl6 -I /path/to/ and then "use file" either in the repl or in the -e
Juerd Yes, or perl6 -Ipath -Mmodule
Note that the filename and the name you use with 'unit module' should be the same thing (except that the filename has a .pm or .pm6 extension), and it's case sensitive. 00:15
If you want to create a hierarchy, the module name Foo::Bar corresponds to Foo/Bar.pm
Many modules from the ecosystem use that: modules.perl6.org/ 00:16
afk 00:17
ridthyself okay i just have to make my methods public and I'm set
00:17 solarbunny joined
ridthyself or make my "subs" um... exportable? 00:17
00:18 JRaspass left
ridthyself perl is weird fun, i've been missin out. thanks again everyone! 00:18
00:19 ridthyself left 00:20 pnu joined 00:23 spider-mario left 00:25 patrickz left
sortiz .tell lizmat I bisected the regression reported (20x Buf.list to slurpy arg) to github.com/rakudo/rakudo/commit/f2...cffbe9c3be , updated bench details in gist.github.com/salortiz/4ef300b4d7f2e9738024 00:34
yoleaux sortiz: I'll pass your message to lizmat.
00:34 kid511 left, cdg left 00:35 kid51 joined, cdg joined 00:40 cdg left 00:44 d4l3k_ joined 00:45 yeahnoob joined 00:46 kipd_ joined
[Coke] decides against yapc::na. 00:46
perigrin :( 00:47
00:47 nadim joined
perigrin [Coke]: Orlando loves you. That said I'd only be here for one day anyway so don't let my sadness make you re-consider too hard. 00:48
00:48 DrForr_ joined, Brock joined 00:49 xxpor left, kipd left, huggable left, timotimo left, tweakism left, renormalist left, DrForr left, mephinet left, DoverMo left, skids left, dalek left, xinming_ left, hacst left, _nadim left, awwaiid left, riatre left, bpmedley left, nowan left, xinming joined, DoverMoo joined, nowan_ joined, d4l3k_ is now known as dalek, ChanServ sets mode: +v dalek, riatre joined, timotimo joined, kipd_ is now known as kipd, BenGoldberg joined 00:50 tweakism joined, DoverMoo is now known as DoverMo 00:51 mephinet joined, skids joined, kipd left, hacst joined, JRaspass joined
John[Lisbeth] rakudobrew build moar take to in progress. The patient seems lively and responsive. 00:53
00:53 xxpor joined 00:56 kipd joined 00:57 DoverMo left 01:01 dj_goku joined
John[Lisbeth] Sometimes it lags for a bit I get real nervous, then it reassures me with it's verboseness. 01:01
01:06 John[Lisbeth] left 01:10 adu joined
Brock [Coke]: pong :) 01:11
01:11 Brock is now known as awwaiid 01:12 Actualeyes joined, kid51 left 01:13 colomon left, kid51 joined, colomon_ joined
ugexe darn, i hope some perl6 talks got submitted 01:13
01:14 sufrostico left 01:19 grassass left 01:21 adu left 01:24 John[Lisbeth] joined
John[Lisbeth] My machine didn't like it and now somehow I have alot of latency although it could be because of network issues and not because of anything to do with my machine. I am in a coffee house and there is an asian kid with a mac in front of me so perhaps he is running some intense shit i have no idea probably league or something. 01:25
I suspect it could have been because I was running rakudobrew from within a bash shell within emacs, and it might not have been able to handle the text streams. 01:26
timotimo if your machine doesn't have a whole lot of ram, maybe it ran out while compiling rakudo 01:27
compiling rakudo takes at least one gigabyte of free ram, i'm guessing
John[Lisbeth] oh snap bro I don't have the funds for that
Perhaps I can add some kind of virtual swap 01:28
dump the ram into a file someplace
let it churn for a few weeks or so
till it's nice an done
Just like slow cookin'
I also have the ability to clone my os, open a virtual machine of whatever size I'd like, then plop the install onto the new machine, as this is done with a mouseclick in azure. So I could switch to a more powerful machine for a few hours at least and then switch back, incurring only a little extra cost. 01:30
[Coke] awwaiid: I think I'm set. I might be able to come up with a tutorial or something. 01:31
awwaiid [Coke]: that would be cool. I was thinking of running an intro-to-perl6 tutorial, and I was also thinking of runing a Randori session. But I probably shouldn't do both. I could also do the Randori (or an additional one) on the second day (Hackathon Day) 01:32
timotimo you can definitely have a swap file; it'll likely become ridiculously slow, and if you have the swap file on the SSD, better be sure the SSD has plenty of space to shuffle things around
otherwise, get a cheap SD card with like a gigabyte of space and use that for a swap file %)
01:33 JRaspass left
ugexe it took days to compile a jvm rakudo on a rpi running netbsd about a year ago. that was after 3-4 days to compile a jdk 01:33
timotimo well, to be fair, the rpi is also packing a ridiculously underpowered CPU 01:34
ugexe i was amazed any of it worked
but soon after the 2gb of ram wasnt enough to compile a jvm rakudo anymore
01:34 itaipu joined
timotimo goes to bed 01:36
awwaiid m: -> ::T $x, T $y { say $y.VAR.WHAT; $x ~ $y }("fish", "food").say; 01:37
camelia rakudo-moar 59adbe: OUTPUT«(Str)␤fishfood␤»
awwaiid m: -> ::T $x, T $y --> T { say $y.VAR.WHAT; $x ~ $y }("fish", "food").say;
camelia rakudo-moar 59adbe: OUTPUT«(Str)␤Type check failed for return value; expected T but got Str ("fishfood")␤ in block <unit> at /tmp/OHuneW3goE line 1␤␤»
awwaiid So I can say param 2 must be the same type as param 1, but that doesn't work on the return type. That by design, or NYI? 01:38
gfldex NYI and there is a RT for that already
awwaiid Gracias 01:39
01:47 TimToady left 01:49 TimToady joined 01:50 bpmedley joined
awwaiid I added Perl 6 to en.wikipedia.org/wiki/Dependent_ty...ent_types, we'll see if I am technically wrong :) 01:53
Hmm. But maybe they don't count since it doesn't happen at compile time? 01:54
TEttinger hehe I wonder who brought that to the attention of #perl6 :) 01:56
awwaiid hehe
TEttinger glad it's on there though
01:56 yqt left
awwaiid Now I'm trying to decide if I should add a talk entry saying that I'm not sure Perl 6 qualifies, or try to fly under the radar 01:56
TEttinger make it saying "I'm not sure perl 6... or <insert existing entry on list that is just as dubious>... qualifies" 01:58
awwaiid Good idea. Sage is a hybrid which does some compile-time and some run-time checks ... and specifically for complex cases with dependent types does it at runtime. Great idea! 02:01
02:02 adu joined
awwaiid So if I do my Int $x where * > 5; Is there any way to ask $x what it is and get some indicatory that it is a subtype/constraint of Int? 02:06
02:08 zpmorgan left
TEttinger hides between the couch cushions 02:11
02:14 kalkin-- joined, itaipu left
Juerd awwaiid: $x still is an Int, according to $x.WHAT 02:18
02:18 kalkin- left
awwaiid $x.WHAT tells you what the type of the value of $x is, I think 02:21
m: my Int $x where * > 5; $x.WHAT.say; $x = 10; $x.WHAT.say
camelia rakudo-moar 59adbe: OUTPUT«(<anon>)␤(Int)␤»
awwaiid When it is an undefined value it seems to kinda know that it isn't quite Int
02:22 skids left, Roamer` left 02:23 skids joined 02:24 colomon_ left 02:25 zpmorgan joined
Juerd I guess you could check for $x.HOW ~~ Perl6::Metamodel::SubsetHOW 02:26
Oh, that doesn't work
02:27 skids left
Hotkeys there's a .constraints method documented 02:28
but I have no idea how it's used
Juerd I think that's for parameters
Hotkeys ah
Juerd For subsets there's $x.^refinement 02:29
But I don't know any good way to test that.
No .^can or .can('^...'), no .^? (or would that be .?^ perhaps?) that works
02:30 colomon joined
awwaiid those are things you tried that don't work you mean? 02:30
02:30 kid51 left
Juerd Yes. 02:31
m: my Int $x where * > 5; say $x.^refinement
camelia rakudo-moar 59adbe: OUTPUT«{ ... }␤»
Juerd m: my Int $x; say $x.^refinement 02:32
camelia rakudo-moar 59adbe: OUTPUT«Method 'refinement' not found for invocant of class 'Perl6::Metamodel::ClassHOW'␤ in block <unit> at /tmp/e5KE7Lw_Rq line 1␤␤»
Juerd Except for 'try' I don't know how to use this :)
Hotkeys I'm confused about p6weekly.wordpress.com/2016/03/07/...-enchante/ 02:33
Juerd m: my Int $x where * > 5; say $x.^refinement.($_) for <1 3 5 7 9>;
camelia rakudo-moar 59adbe: OUTPUT«False␤False␤False␤True␤True␤»
Hotkeys for example what does Lamdu have to do with p6
awwaiid Juerd: huh. interesting
This doesn't matter too much to me other than defending it if wikipedia removes Perl 6 from the Dependent Types page :) 02:34
02:36 Roamer` joined
Hotkeys or a better question 02:37
what is 'the backlog'
02:38 [particle] left, [particle] joined 02:43 aindilis` left 02:45 ilbot3 left 02:47 ilbot3 joined
awwaiid Hotkeys: I believe 'the backlog' are links from this week but in previous years; not sure how they are mined 02:50
Hotkeys ah
02:56 johndau left 02:57 johndau joined 02:58 mattp_ joined 02:59 mattp__ left 03:03 bjz joined 03:04 bjz left, bjz joined 03:05 itaipu joined 03:16 grassass joined 03:17 PerlJam joined 03:44 noganex_ joined 03:46 noganex left 04:05 BenGoldberg left 04:29 kent\n joined, kent\n left, kent\n joined 04:57 khw left 05:01 skids joined 05:23 bjz left, wamba joined 05:25 bjz joined 05:30 skids left 05:32 vendethiel joined, adu left 05:40 dalek left, pnu left, solarbunny left, abaugher left, baest left, _notbenh left 05:46 dalek joined, pnu joined, solarbunny joined, abaugher joined, baest joined, WAAEBUL joined, leguin.freenode.net sets mode: +v dalek 05:54 Cabanossi left 05:55 Cabanossi joined 05:56 vendethiel left 06:01 adu joined 06:02 dalek left, pnu left, solarbunny left, abaugher left, baest left 06:08 dalek joined, pnu joined, solarbunny joined, abaugher joined, baest joined, WAAEBUL joined, leguin.freenode.net sets mode: +v dalek 06:14 [Coke] left, [Coke] joined 06:22 bjz_ joined 06:24 bjz left 06:33 dakkar joined, quester joined 06:38 AlexDaniel left 06:43 musiKk_ joined 06:45 dakkar left 06:48 vendethiel joined 06:51 domidumont joined 06:55 domidumont left 06:56 geraud left, domidumont joined 06:58 FROGGS[mobile] joined 07:06 firstdayonthejob joined 07:09 vendethiel left, CIAvash joined 07:18 orbus left 07:19 domidumont left 07:21 orbus joined 07:25 [Sno] joined, mohae left 07:28 |Sno| left, domidumont joined 07:30 nakiro joined 07:35 domidumont left 07:36 domidumont joined, darutoko joined 07:37 domidumont left 07:38 domidumont joined 07:39 domidumont left, JRaspass joined 07:40 LazyJoe joined
LazyJoe Hello. Is there anything like "Perl6 for a Perl5 programmer"? 07:42
tadzik perlgeek.de/en/article/5-to-6 is what you're after, LazyJoe :) 07:43
TEttinger under a minute, wow
LazyJoe Thanks!
tadzik TEttinger: really? I thought the latency on my client is higher than that... :P
LazyJoe: for the record, it's listed at perl6.org/documentation/ too :) 07:44
07:44 domidumont joined
LazyJoe tadzik: Following Larry, and, as my nick indicates: I am a lazy person. :-) 07:44
tadzik :) 07:45
welcome to the party
masak the lazy party 07:46
masak .oO( we've been trying to get it going for three years )
07:46 [Sno] left 07:57 LazyJoe left
FROGGS[mobile] lizmat: the "Introducing Perl 6" flyer is awesome :o) 07:58
lizmat: but there is a blank missing on the backside, where the IRC channel is mentioned 07:59
08:00 abraxxa joined 08:03 notostraca joined 08:06 TEttinger left 08:07 notostraca is now known as TEttinger, rindolf joined 08:09 azawawi joined
azawawi hi 08:09
08:11 domidumont left 08:12 domidumont joined
azawawi github.com/azawawi/perl6-libzip/bl...rchive.pl6 # C-style libzip :) 08:16
Perl 6 rocks
08:18 JRaspass left 08:20 abraxxa left 08:22 quester left
masak :) 08:27
08:28 [Sno] joined, zakharyas joined
FROGGS[mobile] I dont understand the magic numbers in zip_source_file 08:29
08:29 brrt joined
lizmat Good *, #perl6 08:29
yoleaux 00:34Z <sortiz> lizmat: I bisected the regression reported (20x Buf.list to slurpy arg) to github.com/rakudo/rakudo/commit/f2...cffbe9c3be , updated bench details in gist.github.com/salortiz/4ef300b4d7f2e9738024
lizmat FROGGS[mobile]: alas, that's not the only thing wrong with the flyer... :-( the next one will be better 08:30
FROGGS[mobile] but I must admit that I also dont grok what zip_source_file is actually doing
sortiz \o lizmat
FROGGS[mobile] lizmat: it is still an awesome flyer :o) 08:31
lizmat :-)
08:32 abraxxa joined
dalek kudo/nom: 3c7ea05 | (Salvador Ortiz)++ | lib/NativeCall/Types.pm6:
Add non slurply candidate for method new to CArray

Much faster when creating from a List, Array, Iterables, Seq, etc.
08:33
kudo/nom: 72faf30 | lizmat++ | lib/NativeCall/Types.pm6:
Merge pull request #721 from salortiz/patch-1

Add non slurply candidate for method new to CArray
lizmat sortiz: I'm not sure if there'e something else that needs to be done now? 08:34
azawawi FROGGS[mobile]: man zip_source_file :)
FROGGS[mobile]: linux.die.net/man/3/zip_source_file 08:35
08:35 kipd left
azawawi im trying to make the memory-based data source work since it is the most useful to us 08:35
i.e. zip_source_buffer
08:36 Spot__ left, SmokeMachine____ left, jnap left, johndau`` joined, olinkl left, mithaldu_ left, peteretep left, mrsolo left, notbenh left, ashleydev left, pnu left 08:37 johndau left
FROGGS[mobile] azawawi: ahh, I thought your are exposing your own api 08:38
I see now
08:38 firstdayonthejob left
azawawi FROGGS[mobile]: it is a first step 08:38
FROGGS[mobile]: the $archive (handle) is going to be the class.... 08:39
FROGGS[mobile]: and that was deprecated File::Zip :)
FROGGS[mobile]: why reinvent the wheel
08:39 SmokeMachine____ joined, kipd joined
btyler ugexe: re perl6 talks at YAPC::NA, I submitted gist.github.com/kanatohodets/e7ab4...0b124a5556 ; if it gets accepted I'll be both excited and terrified :D 08:40
08:40 fireartist joined
azawawi btyler++ 08:41
brrt btyler++ looks cool
08:41 peteretep joined 08:42 jnap joined, pnu joined 08:43 Spot__ joined, ashleydev joined, olinkl joined, mithaldu_ joined
azawawi FROGGS[mobile]: $zip-archive.IO API to be exact is the thing im targeting over the weekend hopefully 08:44
08:44 PotatoGim joined, mrsolo joined, notbenh joined
lizmat sortiz: make test hangs for me :-( 08:46
sortiz I was waiting for travis... :-( 08:48
lizmat reverting makes make test pass again :-(
sortiz Weird, the change is trivial imo. :-( 08:49
Hotkeys can I use an array in a regex 08:50
lizmat yeah, that's why I merged it :-)
Hotkeys like to match the string to an item in the array
like $foo ~~ /:s baz qux any(@array) thump/ 08:51
I suppose I could match (.+) and then do {$0 eq any(@array)} 08:52
but is there a better way?
sortiz lizmat, I'm suspect nextsame is somehow looping.
lizmat yeah... but why is that in there anyway ? 08:53
08:54 johndau`` left
brrt ouch, /me has a huge memory leak on my hand in moar it seems 08:54
lizmat yuck... quickly, wash your hands! It may be contagious :-)
08:55 caasih joined, johndau joined
lizmat sortiz: taking out the nextsame doesn't make a difference 08:55
hangs at the same place
m: use NativeCall; my @a := CArray[num].new() # the hanging one 08:57
08:57 zakharyas left
camelia rakudo-moar 72faf3: OUTPUT«(timeout)» 08:58
sortiz lizmat, Dunno, seemed so simple.
lizmat perhaps we're tickling a bug :-)
brrt seems that way lizmat 08:59
a nasty one too
08:59 zakharyas joined
sortiz A bug that new() chooses the slurpy candidate! 08:59
lizmat sortiz: that's actually correct 09:00
testing a fix 09:02
sortiz Well, that can be solved by 'if(!@values) { nqp::create(self) } else { self.new(@values }' in that candidate.
lizmat or just adding a new() { nqp::create(self) } candidate
sortiz Where are one at the top! 09:03
Nop, sorry.
CIAvash Hotkeys: I think you can just use the array, it will do the alternation. Have you tried this: $foo ~~ /:s baz qux @array thump/ 09:04
sortiz Fingers crossed. 09:05
Hotkeys oh
dalek kudo/nom: 67e1ecc | lizmat++ | lib/NativeCall/Types.pm6:
Fix looping issue, sortiz++
Hotkeys I just tried that CIAvash
09:05 RabidGravy joined
Hotkeys didn't work 09:05
lizmat sortiz: with this out of the way, is there something else I should look at ?
sortiz lizmat, taking advantage of the question and based on your BlobbyIterator, I though why not make Blob/Buf does Iterable? 09:07
lizmat what would that give us ? 09:08
lizmat must not be quite awake yet :-)
[Tux] test 22.482 09:09
test-t 12.608
csv-parser 52.312
azawawi so i start my android studio today to work on it and it asks me to download 3.2 GB worth of updates... :(
tadzik new android release, eh?
sortiz For example: my @Buf := Buf.new; for @Buf { $_++ } 09:10
azawawi sucks right? like an IDE's whole purpose is to develop fast... and a 3.2 GB download is not my idea of fast :)
tadzik: :) 09:11
tadzik: i have some PRs for you since you popped up :)
sortiz lizmat, And all Any-iterable-methods
tadzik yeah, Shell::Command
azawawi tadzik: github.com/tadzik/Shell-Command/pull/10
sortiz lizmat, And its enough with removing the Seq.new in both .list methods, renaming them to .iterator and adding new list() { List.from-iterator(self.iterator) } :) 09:13
tadzik I was reluctant at first since it's a dependency of panda, but I now noticed that I don't neceserilly have to update panda's Shell::Command just yet :P
azawawi tadzik: the biggest problem as far as i see it
tadzik: Shell-Command's which is bad
tadzik: please at least remove the tests from it in panda version 09:14
tadzik: it is breaking appveyor windows builds constantly
tadzik I see
lizmat so where would the pull-one then live ?
tadzik honestly, I'm not sure if which() even belongs in Shell::Command
lizmat sortiz: because we need a dedicated one?
tadzik especially now that there's File::Which for it 09:15
azawawi remove it :)
please
tadzik that can certainly be arranged :)
azawawi tadzik++
tadzik can I easily pull in the rest of the changes from the PR?
azawawi wonders why "perl6 -Ilib -c script.pl6" creates a lib/.precomp
lizmat: is that a side effect or by design? 09:16
tadzik azawawi: well, people may rely on its existence now that it's there
brrt it is a designed side effect
azawawi brrt: :) 09:17
lizmat nine would be able to tell exactly, but the -Ilib creates a new REPO chain
tadzik so I can't just remove it, a deprecation notice maybe
azawawi tadzik: i see... at least remove the tests on windows?
tadzik azawawi: will they still not work if we use File::Which?
azawawi tadzik: they pass on File::Which 09:18
tadzik ok, perfect
09:18 tmch joined
sortiz lizmat, right now .list in Blob and .list in Buf uses an anon class that does BlobblyIterator + an specific pull-one 09:18
azawawi tadzik: but if you want to be conservative, deprecate it and make tests non-win32
tadzik: since File::Which is still missing tests 09:19
tadzik ah
azawawi: does File::Which work fine on Win32 (yet?)
azawawi tadzik: File::Which works on all :)
tadzik: but it is not 100% tested that is what im saying 09:20
RabidGravy plan 9? AmigaOS?
tadzik right, so if S::C uses that, when I merge the PR, everything is perfect
right
azawawi RabidGravy: MSDOS also
RabidGravy: :)
tadzik azawawi: may I ask you to split commits like this: github.com/azawawi/Shell-Command/c...07305eea7b into separate ones next time? :) 09:21
brrt tadzik: maybe my python impl of which might be of assistance
tadzik if we decide to only keep part of it
azawawi RabidGravy: also i still have the whence request from you to do :)
sortiz lizmat, A prof-of-concept: gist.github.com/salortiz/62085f61250f14a01ebd 09:22
brrt github.com/bdw/GridKit/blob/master...kit.py#L27
azawawi tadzik: sure
tadzik awesome
09:23 bjz_ left
azawawi tadzik: atomic commits programming mode enabled. :) 09:23
tadzik \o/
CIAvash m: my @a = 'a'..'d'; 'foo a bar' ~~ /:s foo @a bar/ 09:24
camelia ( no output )
CIAvash m: my @a = 'a'..'d'; say so 'foo a bar' ~~ /:s foo @a bar/ 09:25
camelia rakudo-moar 67e1ec: OUTPUT«True␤»
CIAvash m: my @a = 'a'..'d'; say so 'foo e bar' ~~ /:s foo @a bar/
camelia rakudo-moar 67e1ec: OUTPUT«False␤»
sortiz m-star: my @values := Buf.new(0 xx 100).list; 09:26
CIAvash Hotkeys: Maybe I misunderstood, but I thought this is what you wanted to do ↑ 09:27
sortiz star-m: my @values := Buf.new(0 xx 100).list;
camelia ( no output )
azawawi tadzik: please enable AppVeyor support on Shell-Command 09:28
tadzik: so it will have windows CI
sortiz m: my @values := Buf.new(0 xx 100).list; # This now don't work
camelia rakudo-moar 67e1ec: OUTPUT«Type check failed in binding; expected Positional but got Seq ((0, 0, 0, 0, 0, 0, 0,...)␤ in block <unit> at /tmp/OJlU0pJs7T line 1␤␤»
lizmat sortiz: I'm about to be away for a few hours: I'll kick off a build and a spectest with your changes and look at them when I'm back 09:29
sortiz Ok, thank you. CY later. 09:30
azawawi tadzik: ci.appveyor.com/project/azawawi/sh....0.2#L1061
tadzik: also travis CI travis-ci.org/tadzik/Shell-Command/builds 09:31
tadzik right, I have to do that 09:32
I never heard of appveyor before though, is that the only one that supports windows?
lizmat sortiz: Method 'pull-one' must be implemented by utf8 because it is required by a role :-(
09:32 bjz joined
lizmat afk& 09:34
nine azawawi: I'm gonna explain that in my talk at the German Perl Workshop this afternoon
09:35 brrt left
azawawi tadzik: yup 09:35
tadzik: www.appveyor.com/
nine: explain appveyor ci? 09:36
09:37 brabo left
nine Explain lib/.precomp 09:37
Starting at page 34: niner.name/talks/A%20look%20behind%...rl%206.pdf 09:38
09:39 wamba left
azawawi nine: cool 09:40
azawawi reads it
nine I've not even given this talk yet and it already becomes usefull :)
tadzik azawawi: ok, I think it's done 09:42
09:43 brabo joined 09:44 wamba joined
azawawi tadzik: ci.appveyor.com/project/tadzik/She...nch/master # build started :) 09:45
tadzik: appveyor queues them one at a time unlike travis ci
tadzik: now chicken and egg problem 09:46
tadzik: panda depends on shell-command which broken on win32
09:46 jack_rabbit left
nine azawawi: If you have comments or criticism for my explanation, there's still time to include your feedback in the talk ;) 09:46
tadzik azawawi: ah, so I do need to fix the bootstrap
azawawi nine: well perl6 -Ilib -c script.pl6 => create lib/.precomp is wrong imho 09:47
nine azawawi: is it wrong that we do that or is my description wrong?
azawawi nine: imagine who will be using -c syntax check... IDEs, editors... creating a folder there isnt is bad
nine: nah i skimmed through it... it explains a lot of information. thanks :) 09:48
nine azawawi: your argument could be phrased as "creating those .pyc files or .o files or .jar files is bad" because IDEs or editors will do it. 09:49
09:49 jack_rabbit joined 09:50 travis-ci joined
travis-ci Rakudo build errored. lizmat 'Merge pull request #721 from salortiz/patch-1 09:50
travis-ci.org/rakudo/rakudo/builds/115002708 github.com/rakudo/rakudo/compare/5...faf3090f29
09:50 travis-ci left, yeahnoob left
nine Actually we do already better than these others because we store the binaries in a single directory instead of scattering them around the source tree. 09:50
09:52 adu left 09:53 itaipu left
azawawi nine: perl6 -c is not javac :) 09:54
nine: the objective a of -c is to syntax check, not create side effects. That's what i meant
github.com/azawawi/perl6-libzip/bl...ve.pl6#L28 # add a zip entry from memory data source... finally :) 09:55
09:56 brrt joined
brrt is GPW today? 09:58
btw, the fosdem videos are now quite watchable :-)
timotimo wow, how did that happen?
tadzik today is the middle of gpw, yes
jnthn azawawi: fwiw, you can't very properly parse Perl 6 without doing side-effects anyway. BEGIN blocks, use statements, constant evaluations, etc. all need to happen during the parse if you want an accurate one (which you do for perl6 -c, though you can get away with a huge amount in a syntax highlighter).
timotimo the middl already? wow.
10:00 johndau left
jnthn lizmat, sortiz: Nooo, Buf should NOT BE Iterable! Just like Str and Uni should not. They're items. 10:01
tadzik nine: did you have a chance to look at Dancer importing issue? 10:02
sortiz jnthn, Ok.
jnthn If you want iterable + mutable + native, native arrays are The Thing 10:03
10:04 jack_rabbit left
RabidGravy Oh I hate APIs which do "if ret < 0 then error else if ret > 0 then maybe an error depending on what it is" 10:08
10:09 zpmorgan left 10:10 kalkin-- left 10:11 mspo left 10:13 donaldh joined
azawawi jnthn: yeah I agree. Anyway i will make my atom syntax check linter check for lib folder existence before doing a 'perl6 -Ilib -c' in the first place :) 10:19
timotimo it'd be great if CPUs had support for complex numbers
then you could return a complex number and the real part is "error?" and the imaginary part gives you other kinds of status information 10:20
RabidGravy well you could get yourself an FPGA or two and fake one up
timotimo it's a lot of work, though 10:21
10:21 mr-foobar left
RabidGravy they make little fpga shields for the RPi - I'm avoiding picking one up to avoid the inevitable blackhole of distraction 10:23
10:24 abaugher left 10:25 abaugher joined
RabidGravy Ooh just got a fabulous promo from David Meiser, that'll get the day off to a good start 10:27
llfourn does anyone know what "token finishpad { <?> }" does in p6 grammar? 10:28
jnthn llfourn: <?> just means "always match" 10:31
llfourn jnthn: ah so it's like a marker? 10:32
jnthn llfourn: Well, and it triggers an Action method, which does the interesting stuff
llfourn ah right yep makes sense
thanks!
10:40 maybekoo2 joined 10:49 cognominal left
llfourn RabidGravy: what do you do with your RPi? 10:54
10:56 mr-foobar joined 10:59 azawawi left 11:04 espadrine_ joined
nine tadzik: not yet. Everything will be better once my talk is over :) 11:06
11:06 pmurias joined
tadzik oh :] 11:06
understood
11:09 tmch left
timotimo github.com/HackerFantastic/Public/...16-1531.sh - whee! 11:11
11:14 nakiro left 11:15 pmurias left 11:17 nakiro joined 11:19 pmurias joined
pmurias awwaiid: re precompiling when checking -c, it's actually something you should want. There is no need to syntax check something again when it's already checked 11:21
RabidGravy llfourn, well they just sit there occasionally blinking a light or two at the moment 11:23
11:23 tmch joined
psch .tell skids the rw-ness regression from yesterday is in commit fdd37a9e0bef16eb3e4bb24ddd59247e379b5038, fyi 11:23
yoleaux psch: I'll pass your message to skids.
11:23 kjs_ joined
RabidGravy really need to make the PiLite interface at some point 11:24
llfourn RabidGravy: Do you have any cool plans? I'm thinking of getting one but not sure what to do yet. 11:25
I think I want to try it out as a classic console emulator
timotimo is PiLite about light or about being the "lite" version of something else?
RabidGravy it's a small board with 64 leds in a grid 11:26
so loadsalights
timotimo ah, ok
RabidGravy llfourn, medium term plan is make a "live streaming appliance" 11:27
llfourn for your TV?
RabidGravy nah, for real live music
llfourn oh cool. 11:28
ie it pushes the live stream?
RabidGravy so you're a DJ or a musician and you're doing a gig and you want to stream to the internet live, plug one end into the internet, plug audio in the other and away you go
dalek p: 78e5fe9 | (Pawel Murias)++ | src/vm/js/nqp-runtime/ (2 files):
[js] Don't name js functions _ as we don't walk the js call stack anymore.
11:29
p: 359fa7c | (Pawel Murias)++ | src/vm/js/RegexCompiler.nqp:
[js] Set $¢ when entering a QAST::Regex.
p: 8966cfd | (Pawel Murias)++ | src/vm/js/ (2 files):
[js] Eval freshly produced js code when nqp-js is running on top of JavaScript.

This allows nqp-js-on-js to pass test 49 where regexes are compiled at runtime.
llfourn hmm yeah sounds sweet.
llfourn what is nqp-js-on-js? 11:30
RabidGravy a couple of manufacturers make these kind of things but they're fairly expensive or built in to expensive digital mixers or it's built in to DJ software like Traktor
pmurias llfourn: nqp-js compiled to js (and running on node.js) 11:31
as opposed to nqp-js running on MoarVM and emitting js (which is then passed to node.js) 11:32
llfourn pmurias: cool. 11:33
I didn't know there was a like a js transpiler and then a JS backend
I thought that all the work was in the backend 11:34
RabidGravy: I would be interested to know how people make configurations available for RPi
jnthn Well, NQP is written in NQP, so once you get a sufficiently good NQP to JS compiler, you can use it to compile NQP itself. :)
11:34 FROGGS[mobile] left
llfourn so lets say you want to create a new RPi streamer for your friend or w/e is there a way you can auto deploy your thing as script? 11:35
jnthn: self-bootstrapping compilers sorta blow my mind :) 11:36
11:37 FROGGS[mobile] joined, kalkin- joined
lizmat jnthn: message received 11:37
11:38 buharin joined, RabidGravy left 11:39 TEttinger left
timotimo oh, wow 11:40
guess who spends 54% time inside get (IO::Handle:D:)? apparently, compiling SDL2::Raw ... ?!?! 11:41
11:58 brrt left 11:59 DarthGandalf left 12:00 buharin left 12:02 Skarsnik joined 12:03 kid51 joined 12:10 labster left 12:18 DarthGandalf joined
awwaiid pmurias: I think the -c question was from someone else 12:19
I didn't know NQP was self-hosting! neat 12:21
12:24 FROGGS joined 12:26 timrs2991 left 12:27 kaare_ joined
timotimo of course it is! :) 12:30
12:32 kjs_ left 12:34 erez joined 12:35 musca left
erez Hey all, anyone had a chance to attempt to build a website on p6 Web::App or any other p6 module? 12:36
DrForr_ erez: Well, I'm working on getting github.com/drforr/perl6-App-prancer into fighting shape, especially since I'm giving what'll probably be 3 talks on it. 12:37
FROGGS erez: I did a Bailador website once
12:37 musca joined
DrForr_ It's not quite ready for prime time, but what's in github should give you an idea of its flavor. 12:38
FROGGS erez: but this was more than a year ago
erez I want to try this as a learning experience, and wonder how much would I need to wrestle with the modules... 12:41
dalek line-Perl5: 7d648a9 | (Stefan Seifert)++ | / (3 files):
Fix calling imported functions that don't exist in the source package

When a loaded module exported a symbol that doesn't exist in the module itself because it was for example generated at runtime or pulled from some other module, the call would fail because we always looked in the loaded module directly. Just call the imported function instead.
This fixes Dancer2's DSL.
Thanks to tadzik++ for pointing this out!
llfourn is there a way to automatically throw a failure returned from something wihtout having to check the value returned is a failure? 12:42
psch m: use fatal; sub f { fail "foo" }; my $x = f(); say "alive" 12:43
camelia rakudo-moar 67e1ec: OUTPUT«foo␤ in sub f at /tmp/vau18m98hZ line 1␤ in block <unit> at /tmp/vau18m98hZ line 1␤␤»
psch m: sub f { fail "foo" }; my $x = f(); say "alive"
camelia rakudo-moar 67e1ec: OUTPUT«alive␤»
llfourn psch: hmm cool thanks
hopefully that's lexical?
dalek kudo/nom: b2324ed | lizmat++ | lib/NativeCall.pm6:
Make signed_ints_by_size lookup faster
12:44
kudo/nom: 9aa0144 | lizmat++ | lib/NativeCall.pm6:
Streamline type and REPR lookups / mapping

Also alphabetize lookup maps for easier maintenance
psch yeah, use is lexical
tadzik nine++ \o/
ermagherd, I can't wait to try it
timotimo lizmat: wow, did that actually make a noticable difference? impressive 12:46
12:47 buharin joined
lizmat timotimo: took a few secs off of make test 12:47
timotimo OK, that's impressive 12:48
well done :)
tadzik nine: you didn't increase the version number and now it doesn't install :P 12:49
12:49 kid51 left
dalek kudo/nom: f0a21b6 | FROGGS++ | src/core/Env.pm:
push environment variable values through val()

This fixes the issue where `FOO=0 perl6 -e "say so %*ENV<FOO>"` said True.
12:52
line-Perl5: 78e1f44 | (Stefan Seifert)++ | META.info:
Version 0.5

Changes:
  * Fix calling imported functions that don't exist in the source package
  * Fix examples in the README
  * Fix calling inherited package methods of Perl 5 packages
12:54
12:55 CIAvash left 12:57 FROGGS left
timotimo tadzik: i'm working on some changes to the profiler's output right now that'll make profiles smaller, but the format changed a bit from what the qt profiler expects 12:57
remind me how much was the arbitrary limit for our json parser there? 12:58
13:00 FROGGS joined
nine m: my &foo = sub { say "foo!"; }; &foo(1); 13:00
camelia rakudo-moar 9aa014: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤ in sub at /tmp/ZlZ23cCDtT line 1␤ in block <unit> at /tmp/ZlZ23cCDtT line 1␤␤»
nine Why are we so picky here?
moritz we're always picky with subs 13:03
it's just that blocks get an implicit, optional argument, which is why it looks less picky
nine I thought not declaring any signature at all would give you the same semantics as perl 5
psch nine: only when you actually use @_ 13:04
tadzik timotimo: about the size of CORE.setting profile I think :P
moritz only if @_ is actually used in the body
psch m: my &foo = sub { @_; say "foo!"; }; &foo(1);
camelia rakudo-moar 9aa014: OUTPUT«foo!␤»
tadzik nine++! \o/
timotimo tadzik: let me have a look what the core setting profile is with the new changes
tadzik right, it might suddenly be small enough 13:05
timotimo: does the format change impact qt profiler but not the angular profiler?
timotimo it affects both
i've already changed the angular profiler, though
gist.github.com/timo/2d4bf518f27465cd7a51 <- tadzik 13:07
tadzik ah
13:08 bjz left
tadzik so it doesn't repeat strings anymore, that's the idea? 13:08
wait, no 13:09
13:09 bjz joined
timotimo the repetitions it kicks out are names of types in allocations and filename, line number and routine name in the callgraph 13:10
13:10 telex left 13:12 telex joined
tadzik nine: sooooo, what are the hopes of passing regexes to Dancer routes? :D 13:13
timotimo: right, makes sense
DrForr_ Prancer will support REs :) 13:14
pmurias Prancer? 13:15
DrForr_ github.com/drforr/perl6-App-prancer
garu hi everyone! quick question: I have %hash = (a => 'foo') and @array = (42, 'bla'). What's the most idiomatic way of turning %hash into (a => ('foo', 42, 'bla'))?
pmurias why use 'prance;' instead of 'start;'? ;) 13:16
jnthn For one, start is a built-in
ilmari m: my %hash = (a => 'foo'); my @array = (42, 'bla'); %hash<a>.push: @array; say %hash 13:17
camelia rakudo-moar f0a21b: OUTPUT«Cannot call push(Str: Array); none of these signatures match:␤ (Any:U \SELF: |values is raw)␤ in block <unit> at /tmp/lHe7JUIgCG line 1␤␤»
pmurias jnthn: that's a good reason ;)
13:17 buharin left
DrForr_ No really good reason, it just sounded decent. 13:18
garu ilmari: that's where I'm stalled... no idea how to treat Str as the first element of an array :(
psch m: my %hash = (a => 'foo'); my @array = (42, 'bla'); %hash<a> = (|%hash<a>, |@array); say %hash
camelia rakudo-moar f0a21b: OUTPUT«a => (foo 42 bla)␤»
timotimo m: my %hash = (a => 'foo'); my @array = (42, 'bla'); %hash.push(a => @array); say %hash.perl 13:19
camelia rakudo-moar f0a21b: OUTPUT«{:a("foo")}␤»
timotimo m: my %hash = (a => 'foo'); my @array = (42, 'bla'); %hash.push(a => |@array); say %hash.perl
camelia rakudo-moar f0a21b: OUTPUT«{:a("foo")}␤»
timotimo m: my %hash = (a => 'foo'); my @array = (42, 'bla'); %hash.push((a => |@array)); say %hash.perl
camelia rakudo-moar f0a21b: OUTPUT«{:a($["foo", 42, "bla"])}␤»
timotimo there we go.
psch yeah, that's neater
garu thanks!
13:19 buharin joined 13:20 buharin left
timotimo tadzik: a core setting profile just got sigkilled :( 13:20
13:20 buharin joined
tadzik that's harsh 13:21
timotimo maximum effort.
i think i just have to free up some ram so it can finish 13:24
nine tadzik: get '/' => { 'Hello World' }; # you don't need a sub there :) 13:25
tadzik :o
correct!
DrForr_ And in Prancer, sub GET( '/' ) is route { 'Hello World' } 13:27
garu okay, looks like it worked! but Test's "is-deeply" is failing, claiming I got ${:bar($["12", "13", "14"]), :foo("42")} and expected $(:foo("42"), :bar(("12", "13", "14"))). my test is is-deeply( $data, (foo => '42', bar => ('12', '13', '14' ))). What am I doing wrong? 13:28
nine, tadzik: are you talking about bailador? or something else? 13:30
tadzik garu: better. Stay tuned :)
garu hahaha
tadzik: I'm asking because I'm doing a project in bailador and it's extremely incomplete 13:31
this very question is from a PR I'm making
timotimo is freeing up even more ram 13:32
13:32 pmurias left
garu I already sent a minor PR yesterday, but now I'm adding several missing methods to Bailador::Request 13:32
this particular question (turning an Str value into an array is because current Bailador doesn't suppoort "?foo=bar&foo=baz" 13:33
tadzik: should I skip those PR's and just wait for whatever it is you're cooking? :)
dalek kudo/nom: 3bb8b2f | lizmat++ | lib/NativeCall.pm6:
Streamline string_encoding_to_nci_type

Also make "ascii" the second one to test, as I feel it's more likely to match than "utf16". But of course, YMMV.
13:34
tadzik garu (IRC): I'm gonna give you a spoiler :)
timotimo Unhandled exception: Cannot find method 'handle-exception' 13:35
wtf. 13:38
now i can't open the source file, because vim gives an error and then segfaults
[Coke] awwaiid: how does a tutorial differ from a presentation, btw? :) 13:39
tadzik m: { our sub bar { say "ok" } }; bar()
camelia rakudo-moar f0a21b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KEt34MfWXH␤Undeclared routine:␤ bar used at line 1. Did you mean 'VAR', 'bag'?␤␤»
tadzik what did I forget about?
awwaiid [Coke]: Longer. You may invite people to bring laptops. The focus is on learning to DO something rather than learning ABOUT something. But mostly longer. 13:40
psch tadzik: scopes are not packages?
tadzik bah
psch m: package Foo { our sub bar { say "ok" } }; Foo::bar() 13:41
camelia rakudo-moar f0a21b: OUTPUT«ok␤»
timotimo why wouldn't that land in the scope of the unit?
psch m: { our sub bar { say "ok" } }; say OUR::.keys
camelia rakudo-moar f0a21b: OUTPUT«(&bar)␤»
psch m: our sub bar { say "ok" }; bar 13:42
camelia rakudo-moar f0a21b: OUTPUT«ok␤»
psch m: our sub bar { say "ok" }; say MY::.keys
camelia rakudo-moar f0a21b: OUTPUT«($=pod !UNIT_MARKER EXPORT $_ $! ::?PACKAGE GLOBALish $¢ &bar $=finish $/ $?PACKAGE)␤»
psch m: { our sub bar { say "ok" } }; say MY::.keys
camelia rakudo-moar f0a21b: OUTPUT«($=pod !UNIT_MARKER EXPORT $_ $! ::?PACKAGE GLOBALish $¢ $=finish $/ $?PACKAGE)␤»
psch so we don't look through OUR:: for name resolution..? 13:43
timotimo apparently not
psch i think don't i know enough about how it should work to say whether that's as it should be :) 13:44
jnthn Sub calls always look in the lexical scope only 13:45
psch m: { our &f = sub { say "ok" } }; &f()
camelia rakudo-moar f0a21b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WyVTR6UDDq␤Undeclared routine:␤ f used at line 1␤␤»
psch vOv
jnthn So, that error is correct 13:46
psch m: { our $f = "foo" }; say $f
camelia rakudo-moar f0a21b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/g6CSxJHC8t␤Variable '$f' is not declared␤at /tmp/g6CSxJHC8t:1␤------> 3{ our $f = "foo" }; say 7⏏5$f␤»
jnthn In fact, if we had to factor in package scopes, we couldn't do any compile-time checking of sub calls
Or variables
Because the set of symbols in a package can change at any time, but the set of symbols in lexical scope is fixed by CHECK time 13:47
timotimo profiling the core settings' compilation takes almost as much ram as i have
13:47 buharin left
psch jnthn++ 13:47
i would've been fine with "yeah it's supposed to be like that", but i enjoy learning about the reasons :)
dalek kudo/nom: 79589da | lizmat++ | lib/NativeCall.pm6:
Use the temporary variable that is available
13:48
13:50 molaf joined
tadzik star: use HTTP::UserAgent: simple; # LTA error message 13:55
camelia star-m 2015.09: OUTPUT«===SORRY!===␤Could not find HTTP::UserAgent in any of:␤ file#/home/camelia/.perl6/2015.09/lib␤ inst#/home/camelia/.perl6/2015.09␤ file#/home/camelia/star-2015.09/share/perl6/lib␤ file#/home/camelia/star-2015.09/share/perl6/vendor/lib␤ file#/ho…»
tadzik booo!
it actually says "Confused"
13:59 skids joined
psch m: use Test: foo; 13:59
camelia rakudo-moar 3bb8b2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/E6SlNLtLf4␤Confused␤at /tmp/E6SlNLtLf4:1␤------> 3use Test7⏏5: foo;␤»
14:03 buharin joined
dalek kudo/nom: cacb874 | (Steve Mynott)++ | src/Perl6/Compiler.nqp:
display REPL exit instructions as requested on perl6-compiler@
14:04
kudo/nom: f93babf | lizmat++ | src/Perl6/Compiler.nqp:
Merge pull request #722 from stmuk/nom

display REPL exit instructions as requested on perl6-compiler@
lizmat afk for a few hours again&
14:06 maybekoo2 left
[ptc] specifying version numbers for moar/nqp/rakudo and panda in travis-ci now works again :-) 14:12
14:14 sftp left 14:15 sufrostico joined 14:17 pmurias joined 14:18 sftp joined
hoelzro o/ #perl6 14:25
pmurias hoelzro: \o
hoelzro is there anyway to suppress dalek messaging about a set of commits? I have a bunch of stuff I want to push up but I don't want to flood the channel
o/ pmurias
skids hoelzro: Maybe if you do them all at once dalek will get kicked/rejoin and problem solved? 14:29
yoleaux 11:23Z <psch> skids: the rw-ness regression from yesterday is in commit fdd37a9e0bef16eb3e4bb24ddd59247e379b5038, fyi
hoelzro heh
skids
.oO(Huh. Strange. I could have sworn I was running a version before the accessor changes and was seing that locally.)
14:31
14:31 musiKk_ left
garu [ptc]: how can I say in travis.yml that I want to test against 'v6.c' and the latest version (blead? latest? head?) 14:31
psch i'm fairly sure i bisected correctly, fwiw
14:32 RabidGravy joined
garu [ptc]: asking because of github.com/travis-ci/travis-ci/iss...-194810199 14:32
14:32 kjs_ joined
skids psch: I'll file a bug, if you haven't. Thanks. 14:33
14:41 buharin left 14:42 cdg joined
dalek Heuristic branch merge: pushed 16 commits to rakudo/repl6 by hoelzro 14:44
hoelzro oh, that wasn't so bad. 14:45
[ptc] garu: I think using "6.c" inside the "perl6:" list should work 14:50
14:50 edehont joined
garu [ptc]: it does! (actually, it's 'v6.c', '6.c' fails) Question is, if I specify nothing it tests against blead. But how can I specify "this version, that version, and blead"? 14:55
14:56 prammer joined, buharin joined, kjs_ left
garu apparently rakudobrew doesn't know what 'latest' is so if you need panda to install deps then 'rakudobrew build-panda' should be 'rakudobrew build-panda $VERSION' 14:58
only in blead perl6 it should be only 'rakudobrew build-panda'
which leads to a bad looking setup like the one in github.com/travis-ci/travis-ci/iss...-194810199 14:59
15:01 sufrostico left
nine tadzik: seats are for free btw 15:02
garu tadzik: should 'rakudobrew build-panda' build the panda tagged with the same version as the active perl6 from rakudobrew itself? 15:03
[ptc] garu: just extend the list: "perl6:\n- latest\n- v6.c\n 2015.09\n"
garu: hopefully you understand what I mean!
garu: also cool to know that it works with 'v6.c' :-)
garu [ptc]: I do, that's not really my point though. Nevermind :)
[ptc]: it is, right? I loved it
15:03 buharin left
tadzik nine: ...oh 15:04
[ptc] garu: the 'rakudobrew build-panda $VERSION' thing actually looks like this: $([ "$TRAVIS_PERL6_VERSION" == "latest" ] && echo "" || echo $TRAVIS_PERL6_VERSION) 15:05
garu: I worked it out today :-) See also github.com/travis-ci/travis-ci/iss...-147107862 if you're insterested
garu: of course the code could be improved, but one would have to get rakudobrew to use blead when it doesn't know what the version is 15:07
skids psch,JRasPass: Filed ticket #127686 about the rw-ness issue. 15:11
garu [ptc]: I... I... I know, I'm the garu in that thread :D
[ptc]: >> 14:32 < garu> [ptc]: asking because of github.com/travis-ci/travis-ci/iss...-194810199
[ptc]: >> 14:58 < garu> apparently rakudobrew doesn't know what 'latest' is so if you need panda to install deps then 'rakudobrew build-panda' should be 'rakudobrew build-panda $VERSION' 15:12
[ptc]: >> 14:59 < garu> which leads to a bad looking setup like the one in github.com/travis-ci/travis-ci/iss...-194810199
stmuk [ptc]: github.com/tadzik/rakudobrew/pull/75 did build the last release!
garu [ptc]: my point is just "I wish there was a better way to do this" :P
tadzik garu: should, yeah 15:13
that'd make sense :)
garu tadzik: can I interest you in PR then? I'll try to cook something up sometime this weekend
tadzik garu: lovely 15:14
dalek pan style="color: #395be5">perl6-examples: 1b86ca0 | Nic++ | categories/tutorial/01-word-wrap.pl:
Fixed skipping the last word

This would originally skip the last word in the line without printing it to the next line.
15:15
pan style="color: #395be5">perl6-examples: 96af943 | paultcochrane++ | categories/tutorial/01-word-wrap.pl:
Merge pull request #41 from nicqrocks/patch-1

Fixed skipping the last word
garu [ptc]: your patch works remarkably well, btw, thanks! [ptc]++
stmuk [ptc]: I don't think it applies cleanly anymore though and it should be "rakudobrew build release" now I guess
garu (by patch I mean workaround on travis)
15:16 perl6newbee joined 15:19 dakkar joined 15:23 dakkar left 15:29 FROGGS left
dalek kudo/nom: 04c46cc | (Stefan Seifert)++ | src/core/CompUnit/RepositoryRegistry.pm:
No longer tie modules in the home repo to rakudo versions

Since we can actually share modules between rakudo versions, there's no point in keeping the version directories in the home repo (~/.perl6). So safe the user from having to install the same dists again after upgrading rakudo.
15:34
rudi_s m: my %x; %x<a> = <1 2 3>; for %x<a> { .say }
camelia rakudo-moar f93bab: OUTPUT«(1 2 3)␤»
rudi_s Is there a simple way to get the for loop to iterate over each element in the array?
m: my %x; %x<a> = <1 2 3>.Slip; for %x<a> { .say } # works, but I don't know if this is the best way 15:35
camelia rakudo-moar f93bab: OUTPUT«1␤2␤3␤»
jnthn m: m: my %x; %x<a> = <1 2 3>; for %x<a>.list { .say }
camelia rakudo-moar f93bab: OUTPUT«1␤2␤3␤»
jnthn m: m: my %x; %x<a> = <1 2 3>; for @(%x<a>) { .say }
camelia rakudo-moar f93bab: OUTPUT«1␤2␤3␤»
jnthn m: my %x; %x<a> = <1 2 3>; %x<a>.map: { .say } 15:36
camelia rakudo-moar f93bab: OUTPUT«1␤2␤3␤»
rudi_s jnthn: Thanks, but I want to get the effect without modifying the for loop. 15:37
I find the current behavior in perl6 not very intuitive that I can't just iterate over an array in a hash table. I know it was that way in perl5 too, but it still feels weird in perl6. 15:38
jnthn rudi_s: Oh, then the sensible way is just to bind to the hash, not assign 15:41
m: m: my %x; %x<a> := <1 2 3>; for %x<a> { .say }
camelia rakudo-moar f93bab: OUTPUT«1␤2␤3␤»
jnthn The "current behavior" won't be changing, so better to get used to it. :) 15:42
We've already been though 7-8 different lists implementations and the more things you make DWIM, the more overall confused everyone is.
rudi_s jnthn: Hm. Maybe I'll just use .list in the for loop. Makes it more clear to the reader. - Yeah, I know. 15:43
jnthn Yeah, I prefer to make sure of it at the point of the iteration
nine I have to admint however that this use case was complicated to make for $@arr { } iterate only once which is...disputable 15:44
jnthn nine: Yeah, I think there was a reason we ended up insisting on that... 15:45
nine I don't remember anyone mentioning the auto-itemization of Array and Hash in the discussion. It certainly surprised me just now. 15:46
Well it's moot now anyway :) 15:47
jnthn: would you object to me completely redesigning CompUnit::PrecompilationStore without regards for backwards compatibility? It's undocumented, untested, has only one user and I'm certain noone ever did anything with it outside the core. 15:49
RabidGravy someone be a love and make an MP3 decoder
15:55 gregf_ left
jnthn nine: If it's not covered by the tests, it's not part of 6.c :) 15:55
15:55 nakiro left
jnthn nine: Has one user? :) 15:55
An in-core one?
RabidGravy I should have done it when I made the encoder 15:56
16:00 adu joined 16:01 erez left
nine jnthn: yes, only PrecompilationRepository even interacts with it 16:03
jnthn nine: OK. Then sounds like you're not going to cause any trouble by doing so.
nine tadzik: that was just awesome! You really should do the talking about Inline::Perl5 from now on :) 16:04
tadzik :D
I think I'll turn that into a blogpost, in which I don't forget some other motivational slogans I made up :P
nine I'm glad that I decided to fix the Dancer bug instead of overpreparing my talk :) 16:05
tadzik :) 16:06
16:10 fireartist left, Actualeyes left
[Coke] boggles at a j2ee context root oddity. 16:11
RabidGravy boggles at the portaudio designers using a double for "samplerate" when it would be better as a long 16:16
16:16 prammer left 16:17 prammer joined
perlpilot wonders what tadzik did that was so awesome 16:19
16:22 wamba left 16:24 Actualeyes joined 16:25 gregf_ joined
rudi_s perlpilot: Did you have a look at my comment to the Tempfile bug report? Your fix introduces a race condition. 16:26
16:26 bioexpress joined, edehont left 16:27 wamba joined 16:28 bioexpress left 16:29 Houl joined
perlpilot rudi_s: Looked just now :) 16:31
I didn't realize that open/mkdir had a :mode option that had the same capability as chmod 16:33
timotimo can someone tell me what happened to my system here and what status my system is now in? gist.github.com/timo/fb96aabfc67ea1df96c5
16:35 domidumont left, khw joined
perlpilot And looking at the source, mkdir's mode does, but it doesn't look like open's mode can do fine grained permissions. 16:37
tadzik perlpilot: I loaded Dancer2 from Inline::Perl5 and presented a port of perldancer.org/ to Perl 6, running on stage :)
perlpilot tadzik: sweet! 16:38
tadzik I think I'll turn it into a blogpost to reach some broader audience :) 16:40
16:41 prammer left 16:42 prammer joined 16:43 pmurias left 16:44 pmurias joined
RabidGravy timotimo, :-\ It shouldn't have broken anything it failed to install, and it will have failed any that the dependencies didn't go in, I'd go with running dnf upgrade again and see what happens 16:44
timotimo doing so now
but wth happened >_> 16:45
RabidGravy run out of disk space?
timotimo only if 20 gigabytes free isn't enough for a bunch of updates
(i've heard of xml being verbose, but *this* takes the *cake*!)
geekosaur reminded of a game patch that used over 50GB working space 16:46
timotimo oh my, that's pretty bad
RabidGravy is it one big filesystem, it may use /var /boot /tmp
timotimo it's two btrfs subvolumes 16:47
one is / and the other is /home
this time it run through to completion
(potentially because i moved a few more gigabytes from the ssd to the hdd)
i guess i'm saved
RabidGravy aooo 16:48
timotimo let's boot into the new kernel and see how that breaks!
RabidGravy I'm running that kernel and it works fine for me 16:49
dalek p/profile-jvm: b9ab366 | donaldh++ | / (19 files):
Add moar compatible --profile to JVM backend
16:50
p/profile-jvm: 265e780 | donaldh++ | / (2 files):
Temporarily borrow the moar profiler template.html
timotimo well, it still came up
4.4.3-300?
16:54 ptolemarch joined 16:56 adu left
perlpilot rudi_s: I reopened the issue and fixed it for mkdir. I didn't see a good way to do it with open since the $mode parameter only seems to take a string like "ro" or "wo" etc, and not full permissions. 16:57
rudi_s: if you want to patch nqp + rakudo so that you can pass permissions like mkdir, that would be awesome :)
rudi_s: keep in mind about language compatibility though 16:58
17:04 araujo_ joined
rudi_s perlpilot: Thanks. I've to admit I only checked if perms was there, not if it was sane :-/ 17:05
dalek pan style="color: #395be5">perl6-examples: 7381d5d | paultcochrane++ | categories/tutorial/01-word-wrap.pl:
[tutorial] allow filename def on command line
17:06 araujo_ left, araujo_ joined
rudi_s I've to admit I'm disappointed. Neither nqp + rakudo seem to be able to either set umask or allow passing the mask to open. 17:07
So nobody thought about having to create files which are not public.
17:07 araujo left 17:09 pmurias left 17:11 FROGGS[mobile] left
rudi_s Wow. It seems to use the stupid string args even throughout nqp ... looks like that's a major overhaul. 17:12
I've really expected more from the successor of perl5.
RabidGravy timotimo, actually no it appears 4.4.3-201
17:13 domidumont joined, zakharyas left
rudi_s perlpilot: There are two solutions I can think of. Either use nativecall and umask to restrict the umask during creation or create the file in a temporary directory with the correct permissions. 17:13
17:13 FROGGS[mobile] joined 17:14 MadcapJake joined
MadcapJake Skarsnik, I've tried gptrixie on a couple header files but I keep getting this error: «'--castxml-gccxml' does not work with c11» 17:15
Skarsnik you have cast not gccxml 17:16
MadcapJake oh, how do i fix that?
Skarsnik cast is something that supposed to replace gccxml (it use clang) but it does not like c99 or highter
hm, I don't remember, I think a gccxml binary is installed aside it on some distrib 17:17
with another name
tweakism about the topic from yesterday: pbs.twimg.com/media/CdMNh8DWIAATwKU.jpg 17:18
perlpilot rudi_s: If you make a patch I'll consider it. Though, adding open mode to NQP might not be too onerous; then you'd just have to figure out how to expose it in rakudo
MadcapJake Skarsnik, «gccxml -v» says that it's available as `gccxml.real` how do i make gptrixie use that?
rudi_s perlpilot: I don't have any knowledge of nqp and a short look revealed that the mode seems to be always a string even in nqp. 17:19
Skarsnik edit the script or replace gccxml with gccxml.real?
I should probably add something to be able to change the binary used 17:20
tadzik argh, of course I can't grep for Inline::Perl5 code in the profiler outupt 17:22
the name is actually mangled :/
perlpilot rudi_s: aye, it's a special string, but NQP is a little more malleable than rakudo, so you can add a routine or parameter or whatever is needed
tadzik or so I think
rudi_s perlpilot: Well, but I don't know how the nqp interface to moarvm/jvm (everything I found looks like it passes strings as well to moarvm/jvm) and that must be adapted as well. 17:24
dalek pan style="color: #395be5">perl6-examples: 549c81a | paultcochrane++ | categories/tutorial/01-word-wrap.pl:
Replace self-built words() with .words builtin
pan style="color: #395be5">perl6-examples: ac38395 | paultcochrane++ | categories/tutorial/01-word-wrap.pl:
Remove useless count variable

  ... it wasn't doing anything
pan style="color: #395be5">perl6-examples: f69f12f | paultcochrane++ | categories/tutorial/01-word-wrap.pl:
Rename 'lines' sub to 'wrap'

  "at least that isn't quite so confusing"
   -- nine++
pan style="color: #395be5">perl6-examples: 329d4a6 | paultcochrane++ | categories/tutorial/01-word-wrap.pl:
Get file lines directly from IO object
perlpilot lunch & 17:25
MadcapJake Skarsnik, how can I tell gptrixie to use gccxml.real *without* changing the script? 17:26
17:26 prammer left
tadzik nine: hey, I managed to segfault stuff :P 17:26
nine: gist.github.com/tadzik/48b9886ed9d5357b8ccd 17:27
hoelzro what's the proper way to make sure attributes provided by a role are initialized when a consuming class is instantiated? if I provide BUILD in the role, it may be excluded by a BUILD in the consuming class 17:28
(the role I'm talking about: github.com/rakudo/rakudo/blob/repl...PL.pm#L88)
MadcapJake Skarsnik, aliasing in shell (in a shellscript or directly) doesn't seem to do it 17:29
geekosaur maybe in .bash_aliases. in the script itself won't work (aliases do not take effect in the file in which they are defined, to avoid loops) 17:32
MadcapJake geekosaur, oh never knew that, i tried bashrc but not bash_aliases
arnsholt Making a script with the same name and adding the directory it's in to the front of $PATH should work too
ugexe m: for 1,2,3 { once &say(1); once &?BLOCK(1); } # is this a bug? (&?BLOCK thinking its inside a `once` block) 17:33
camelia rakudo-moar 04c46c: OUTPUT«1␤Too many positionals passed; expected 0 arguments but got 1␤ in block at /tmp/lY5d6qAnmn line 1␤ in block <unit> at /tmp/lY5d6qAnmn line 1␤␤»
MadcapJake arnsholt, sneaky :P
jnthn ugexe: I think so, yeah 17:35
ugexe: Probably something not marked as a thunk that should be
garu nine++ # DBIx::Class on Perl 6! 17:37
rudi_s I'm not sure if I already asked this. But what is the shortest/best way to do if %foo<bar>{$baz}:exists { say %foo<bar>{$baz}; } without duplicating the access?
garu tadzik++ # Dancer2 on Perl 6!
tadzik it's all nine's work, don't praise the messenger :P 17:38
17:40 vendethiel joined
MadcapJake Skarsnik, i get an error when I try to add "-I /another/include/path" after the header file 17:43
oops nvm :P thought it was an l but it was an I (github's font misled me) 17:44
ugexe jnthn: i see. i shall RT it
17:45 Houl left
MadcapJake hmm, still doesn't want to find these header files 17:46
Skarsnik some header want a lot of -I
MadcapJake most of them are in /usr/include/glib-2.0 but when i `-I` that folder, it doesn't locate them 17:47
timotimo morepypy.blogspot.de/2016/03/pypy-5...eased.html - cool
17:48 lostinfog joined 17:50 Actualeyes left
Skarsnik oh the glib? it's quite tricky 17:50
17:50 dhunt joined
Skarsnik there could have stuff in /usr/lib/include for some glib/gtk stuff 17:51
like the gsk-conf.h I think
ilmari pkg-config --cflags glib-2.0
17:52 SCHAAP137 joined
dhunt Hi folks. My name is Doug Hunt. I work at UCAR, an atmospheric research institute in Boulder, CO. I've been using perl5 for around 20 years now. 17:52
mst well, welcome to the other awesome perl :D
dhunt We have build up a large production system for processing weather satellite data using perl5 and PDL that is currently being put into operation
timotimo hello doug hunt!
dhunt for a NOAA satellite program.
As part of looking into future directions for our system, I'm looking into perl6! 17:53
mst I suspect quite a few of us are expecting a future where we end up with both perl5 and perl6 in production 17:54
(and given Inline::Perl6 for perl5 and Inline::Perl5 for perl6 quite possibly 'both in the same process' in some cases ;)
dhunt In an effort to painlessly start integrating perl6 functionality into our system, I'm trying to get Inline::Perl6 working. 17:55
mst have you already got a rakudobrew-ed moar install built and setup and confirmed working? 17:56
dhunt Yes.
MadcapJake Skarsnik, all my include errors are gone, but i still get this: hastebin.com/gocesanigi.txt
ugexe m: my $a := gather for 1,2,3,4 { take $_; say "xxx"; }; say $a[0]; # hmm i'm just now noticing this. i would have expected it to say 'xxx'
camelia rakudo-moar 04c46c: OUTPUT«1␤»
mst right, so, I guess the next thing is going to be to show us make/make test logs for Inline::Perl6 17:57
assuming that's where it blows up
dhunt Here is my trouble: cat test62.pl shows this: use Inline::Perl6; $p6 = Inline::Perl6->new; $p6->run('say "hello from perl 6"');
Skarsnik MadcapJake, Oh I get the same error when playing around with glib stuff, sadly I am not sure how to solve this, it's probably a gcc tag?
dhunt This takes 13 seconds to run! time perl test62.pl; hello from perl 6\nreal0m13.690s 17:58
ugexe m: my $a := gather for 1,2,3,4 { take $_; say "xxx"; }; say $a[4];
camelia rakudo-moar 04c46c: OUTPUT«xxx␤xxx␤xxx␤xxx␤Nil␤»
ugexe m: my $a := gather for 1,2,3,4 { take $_; say "xxx"; }; say $a[3];
camelia rakudo-moar 04c46c: OUTPUT«xxx␤xxx␤xxx␤4␤»
dhunt Is this normal? Or perhaps something is wrong with my installation? 17:59
mst I wouldn't be surprised if it's basically because Inline::Perl6 is embedding MoarVM even though MoarVM isn't really designed for that yet and then things like precompilation may not kick in for the weird setup approach 18:00
Skarsnik dhunt, 13 sec seems like a lot, can you add stuff in the p5 script to see where all the time is lost?
mst basically, I would *suspect* it's "normal", for values of "normal" involving nobody having tried to optimise it yet
but I would be hopeful that most of the time is spend in init, i.e. the ->new step 18:01
18:01 firstdayonthejob joined, SCHAAP137 left, vendethiel left
ugexe i see that is indeed how its supposed to work. now to figure out how to use this to my advantage 18:02
MadcapJake Skarsnik, apparently it has to do with gcc version less than 4.5 but i'm using 5.2.1 o_O 18:03
18:03 Actualeyes joined, donaldh left
dhunt You are right! When I run this through a perl5 debugger, ~13 seconds is spent on the 'new' line. The 'run' line is instant. 18:03
Skarsnik MadcapJake, gccxml is supposed to be 4.9 x)
18:04 domidumont left
mst dhunt: right, so, basically, the awesome lunatic who wrote Inline::Perl6 (nine) has waaayy too many projects and has been focusing on other things, but I'm sure that's 'unoptimised' rather than 'unoptimisable' 18:04
ilmari $ time perl6 -e 'use Inline::Perl5' 18:05
real0m6.896s
TimToady ugexe: in general, using laziness to intentionally trigger side effects is going to be a bit dicey, since we might optimize some laziness into batches
ilmari dhunt: how long does that take on your machine?
MadcapJake c programming tools are so confusing
dhunt [dhunt@fox src]$ time perl6 -e 'use Inline::Perl5'; real0m12.635s 18:06
timotimo dhunt: is that only on the first try or also on later tries?
MadcapJake Skarsnik, the irony is, i'm trying to use gptrixie to extract an api for libgirepository that extracts an api for .gir xml files :P 18:07
dhunt All tries. Caching does not help :-(
MadcapJake well technically it libgirepository works on .typelib files generated from .gir xml files xO
ugexe TimToady: i thought for some reason that each lazy iteration would complete the entire gather block (so i've been doing things like `take $a; ... take $b;` and expecting both to happen in the same iteration. again im not sure how i came to this conclusion) but it makes sense now 18:08
timotimo MadcapJake: omg, you're going to build something for gir? thank you so much!
MadcapJake trying to
timotimo maybe you can build something better than GTK::Simple on top of that :) 18:09
Skarsnik MadcapJake, damn I think gccxml is using a 'profil' based on gcc 4.2 4.5
MadcapJake Skarsnik, yeah that's why then 18:10
TimToady ugexe: yes, each take is its own yield-point
you can take $a, $b to get two things at once, of course 18:11
might have to slip it though
dhunt Does anyone know the best way to try to optimize Inline::Perl5? Should I contact nine? Or is there some other way to get perl6 functionality when using many perl5 libraries?
MadcapJake timotimo, my plan is to try and make it all happen programmatically. so all you'd have to do is «use GIR; import('GTK-3.0')» and the GIR library will use the .gir xml files to build out the classes for you 18:12
18:12 domidumont joined
mst dhunt: the question becomes, how long does perl6 -e 'say "hi"' take? 18:12
timotimo dhunt: this year is all about improving performance; Inline::Perl5 relies on NativeCall, which is currently plagued by not-so-great performance.
dhunt time perl6 -e 'say "hi"'; real0m0.274s 18:13
Not long...
TimToady hmm, with a fresh recompile, the first time of I::P5 takes 8 seconds, the second one takes 4 seconds
Skarsnik well I:p5 should be fast enought if you don't run small thing
ugexe first run it precompiles
Skarsnik i:p5 is not precompiled
mst dhunt: my basic plan was to have a separate hybrid process running as a daemon attached to a unix socket and talk Object::Remote to it 18:14
ilmari huh, if I've got a perl6 repl with Inline::Perl5 loaded, starting another one hangs
Skarsnik MadcapJake, try to find how to compile with gcc 4.5? it's maybe just a define to have or something
mst that's probably the locking bug of doom that we've been trying to beat with a shovel for a while
ugexe it precompiles. it just doesnt precompile everything 18:15
mst is hoping YAPC::NA accepts his 'raptor and the butterfly' talk so he has an excuse to dig into this from both ends
dhunt mst: We use 'persistentperl' in a similar way for cases when the compilation start-up is a problem. Is something similar available for p6?
mst I always found that to be a fragile hack and stick to things that attach themselves to unix domain sockets 18:16
see for example p3rl.org/App::Procapult for the sort of pattern I use in perl5
ilmari mst: the second one hangs trying to write-lock precomp/.lock
mst there we go 18:17
18:17 zpmorgan joined
MadcapJake why has CastXML succeeded GCC-XML if it only works on old C files... 18:17
Skarsnik No idea
ilmari the same happens with just NativeCall, no Inline::Perl5 required
Skarsnik I try it first and it was like "no C99" and I was like, what the point? 18:18
MadcapJake lol
Skarsnik MadcapJake, maybe try to compile the last castxml from the github? I give up trying to compile stuff that involve libclang/libllvm 18:19
MadcapJake oi yeah that sounds like an afternoon of grinding my teeth
ugexe has nightmares of having to use C89 to pass ActivePerl PPM build matrix
MadcapJake honestly i was trying to use gptrixie to avoid reading libgirepository :P it might be complicated enough that even if i get it working i'll have to dig in and read it anyways :P (no docs available for some ungodly reason) 18:20
timotimo MadcapJake: you saw this? wiki.gnome.org/action/show/Project...rospection 18:21
MadcapJake i'm heading dangerously into yak shaving territory
timotimo, yeah i've read that whole thing a few times but there's no API to libgirepository in there anywhere
just a few tutorials from like 15 years ago and most of them skip over anything good in favor of just discussing how to use gjs 18:22
timotimo right
gjs?
18:22 mohae joined
MadcapJake gnome javascript 18:22
timotimo ah, right
18:23 patrickz joined 18:26 prammer joined
dhunt OK, I'll look into p3rl.org/App::Procapult and Object::Remote if I have time. Perhaps just waiting for performance improvements in NativeCall would also be in order. 18:27
mst dhunt: assuming my YAPC::NA talk gets accepted I'll hopefully have some pre-pack stuff doing what I describe by summer
for the moment, what you might consider is the simple way 18:28
which would basically be 'open a perl6 process with IPC::Open2 and talk JSON strings over the wire to it'
MadcapJake 90% of the libgirepository GTK-Doc blocks just say "TODO" :P
18:28 Azry joined
timotimo ugh 18:28
[Coke] squees at the new captain america trailer.
timotimo well, the target audience for working with girepository is tiny 18:29
it's like one person per programming language
MadcapJake lol this is true
18:29 vendethiel joined
timotimo hmm. is "madcap" a bit similar to "the mad hatter"? 18:30
MadcapJake timotimo, yeah it's an old phrase for a crazy person :)
18:30 SCHAAP137 joined
timotimo oh 18:31
MadcapJake mad hatter came from hat makers going crazy due to mercury
timotimo right, that part i know
wasn't it similar with shoe makers?
MadcapJake madcap was because `cap` used to mean `head` so it was just like saying `mad brain`
timotimo ah
MadcapJake timotimo, not sure, people used to use mercury for so many things :P 18:32
timotimo fwiw, mercury is super cool 18:33
pretty poisonous, but still super cool
MadcapJake yeah it's quite fascinating 18:34
18:34 dhunt left 18:35 dhunt joined
dhunt OK, mst, I'll look for it! Any other ideas on speeding up I::P6? 18:36
18:38 sufrostico joined
Skarsnik if you don't do small call it should be fast enough 18:38
dalek p: fcdb29f | timotimo++ | src/vm/moar/ (2 files):
deduplicate filename/lineno/routine name and type names in profile
18:40
Azry Hi, I'm new to p6 and irc, Is this the place for some help on building a good p6 class ? (can't wrap my head around build/buildall/new/callsame ...) =) 18:42
dhunt Skarsnik: What is small call?
ugexe sure. go ahead and ask away
Skarsnik like if you spam stuff like $p6->run('say hello'); but if you launch a huge process the overhead should be very irrelevant 18:43
dhunt OK, I see. I don't think the overhead on 'run' was a concern. It was more the 'init' overhead which causes a problem. 18:46
18:49 buharin joined
perlpilot Azry: yes, this is the place. (in case it didn't register that ugexe was talking to you :) 18:50
18:50 buharin left
Azry thanks, i'm just trying to sort my thoughts right now :D 18:50
18:50 vendethiel left
perlpilot Azry: have you used Perl 5? 18:51
Azry yes i liked it until this week :P
perlpilot What happened this week?
Azry well i discovered p6 =)
A pastbins ok here ? 18:52
perlpilot sure, as long as it's not obnoxious :) 18:53
18:53 zakharyas joined, captain-adequate joined
perlpilot I usually use gist myself 18:53
18:56 maybekoo2 joined
perlpilot Azry: btw, note that Perl5 and Perl6 are separate languages with separate evolutionary paths. You can learn both (and you will probably continue to wish Perl 5 was more like Perl 6) 18:57
18:57 dhunt left 18:58 prammer left, vendethiel joined, domidumont left
Azry well, i still like perl5, i just don't use it much for educational purposes anymore, p6 seems better to write cleaner code 18:59
18:59 buharin joined, domidumont joined 19:00 prammer joined
perlpilot Azry: yep. 19:00
Azry i'm trying to port IO:: Pty to p6 as an exercise, pastebin.com/BC4Sgjp9 but i don't know how to build my constructor so that it returns a IO::Pty with attributes initialized the same as IO::Handle plus a few others
here is the pastebin pastebin.com/BC4Sgjp9
19:02 prammer left
Azry the nativecall subs work well, but i don't understand how you should use the objects initialisation to use "IO:: Pty.new.allocate" while keeping IO::Handle as a inherited class 19:05
19:06 espadrine_ left 19:08 prammer joined
perlpilot Azry: have you seen doc.perl6.org/language/classtut ? 19:08
19:10 prammer left 19:13 kjs_ joined 19:16 buharin left
Azry yes, i understand how classic classes are initialized, but i don't fully get how inherited constructors are used i feel like "inheritance" in p5 was easier to understand 19:18
i'll keep reading it tho, thanks
19:19 prammer joined, prammer left
perlpilot Azry: did you use Moose or Moo in Perl 5? 19:20
Azry no, i used only bless/isa
(should i use your name before answering you :D ?) 19:21
perlpilot whatever :)
It *might* help if you played with Moose or Moo in Perl 5 first. I dunno.
ugexe Moose/Moo never clicked with me until i got into perl6. Now my perl5 code gets better the more perl6 i learn
mst right, because perl6's current metamodel is inspired by Moose which was inspired by perl6's previous metamodel, roughly 19:29
19:32 buharin joined
Azry ok i didn't know that. I worked a little on a project written with Moo. bad memories =D Maybe i'm more accepting of it because it's a whole new language 19:33
19:35 bioexpress joined
perlpilot If you've got bad memories of Moo, then either you were doing it wrong, or ... no, you were just doing it wrong :) 19:36
Azry =) 19:37
bioexpress Hello, when I use the `NCurses` I cannot print correctly strings with wide-charaters. I guess this is because there is no Perl6 type for the Native Calling Interface which matches `const wchar_t *wstr`. Is it planned to add such a type?
nadim I am a bit puzzled, I have "$d1.get_element_glyphs(%glyphs1, ..." %glyph1 is a hash, i dumpit to check but then I get this error: Type check failed in binding %glyphs; expected Associative but got List ($(3, "|- ", "| ", "|...)
In which case do a hash, called %hash, become a List? 19:38
perlpilot nadim: show the code? 19:41
[Coke] m: my %hash = (1,2,3); say %hash.WHAT; # just checking 19:42
camelia rakudo-moar 04c46c: OUTPUT«Odd number of elements found where hash initializer expected␤ in block <unit> at /tmp/OY443ef1eU line 1␤␤»
19:42 prammer joined
skids nadim: Especially what are the signatures of get_element_glyphs? 19:42
nadim method get_element_glyphs(%glyphs, Bool $is_last) 19:43
Skarsnik bioexpress, wchar_t is a mess up type x) 19:44
nadim that function is used elsewhere and doesn't show any problem there
the hash i pass to it transits via a variable inside another hash, that's the only difference I can see
but as I wrote I dumped it and it is a hash 19:45
19:46 molaf left
nadim I justchecked wwith a dumper that is not mine, just in case 19:46
bioexpress Skarsnik: is my guess right, that lack of a wchar_t data-type is the reason why wide-charaters with NCurses don't work?
19:47 prammer left
Skarsnik I don't think so 19:47
skids m: sub a (%h, Bool $) { %h.perl.say }; my %g = :a({:a(1)}); my %f = %g<a>; a(%f, True) # no luck reproducing so far.
camelia rakudo-moar 04c46c: OUTPUT«{:a(1)}␤»
nadim skids: I golfed it and then it worked just fine
19:47 kaare_ left
skids nadim: go back to the tee and golf less agressively, I guess :-) 19:48
bioexpress Skarsnik: Is my statement, that wide-characters don't work with NCurses right? 19:49
Skarsnik I have no idea. I never tried this binding
nadim skids: it's a big chunk, not easy to gold but here is the context nopaste.linux-dev.org/?992322 19:50
bioexpress Skarsnik: thx 19:51
19:51 bioexpress left
Skarsnik what function use wchar? 19:52
geekosaur the unicode-enabled version of ncurses 19:53
(which is the default on OS X)
Skarsnik Not sure if we want the wchar type on NC, are they standadized? 19:54
geekosaur yes, it's ANSI C 19:55
Skarsnik The width of wchar_t is compiler-specific and can be as small as 8 bits. Consequently, programs that need to be portable across any C or C++ compiler should not use wchar_t for storing Unicode text. The wchar_t type is intended for storing compiler-defined wide characters, which may be Unicode characters in some compilers. 19:57
hm
probably not that easy to solve
19:58 prammer joined, zpmorgan left
geekosaur also note that wchar_t in C++ (a distinct basic type) is different from wchar_t in C (a typedef to some other basic type) 19:59
19:59 perl6newbee left 20:00 sufrostico left, jjido joined 20:01 perl6newbee joined, sufrostico joined 20:02 musiKk_ joined 20:07 domidumont left 20:08 labster joined 20:13 zakharyas left 20:14 JRaspass joined 20:15 darutoko left 20:19 jjido left 20:21 jjido joined
Azry is it ok in a p6 module to have to write my own C library for portability purposes ? I don't know how else i could make my module run on both my debian and freebsd 20:22
mst how so? can't you NativeCall whichever bits of the OS you need, and just set up the NativeCall stuff based on the OS you're on? 20:23
hoelzro if Azry is making pty bindings and that needs fcntl, the flags for fcntl may have different values on different OSes
skids Azry: some modules already do have C components.
Azry okay 20:24
hoelzro I do this with Linenoise
github.com/hoelzro/p6-linenoise/bl...nstants.pl
nadim Is there a Z operator that doesn't stop when the first list stops? EG: returns Nils for the short side.
skids And... there's a utility module of some sort which name escapes me.
hoelzro github.com/hoelzro/p6-linenoise/bl....pm.in#L11
skids nadim: There's one that repeats the last element IIRC. It's an adverb on Z. 20:25
jnthn m: say 1, 2, 3 Z 4, Nil, * 20:26
camelia rakudo-moar 04c46c: OUTPUT«((1 4) (2 Nil) (3 Nil))␤»
nadim thanks, I didn't find the Z adverbs (I suspected it was something like that), must dig more in the docs
jnthn m: say 1, 2, 3, 4, 5 Z 7, Nil, *
camelia rakudo-moar 04c46c: OUTPUT«((1 7) (2 Nil) (3 Nil) (4 Nil) (5 Nil))␤»
jnthn nadim: ^^
nadim jnthn: pretty nice 20:27
m: say 1, 2, 3, 4, 5, * Z 7, Nil, *
camelia rakudo-moar 04c46c: OUTPUT«((1 7) (2 Nil) (3 Nil) (4 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (5 Nil) (…»
nadim m: say 1, 2, * Z 7, 8, * 20:28
camelia rakudo-moar 04c46c: OUTPUT«((1 7) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 8) (2 …»
20:28 JRaspass left
jnthn Ah, you want on either side 20:28
nadim yes, actually it is a double Z on the line 20:29
and yes on both sides
the result of the above is a little surprising
jnthn Not really, * just means "keep repeating the last item"
And Z is lazy and infinite 20:30
You could combine it with a termination construct
nadim right, I didn see the elipsis at the end
jnthn m: say (1, 2, 3, 4, 5, Nil, * Z 7, 8, Nil, *) ...^ * ~~ (Nil, Nil)
camelia rakudo-moar 04c46c: OUTPUT«((1 7) (2 8) (3 Nil) (4 Nil) (5 Nil))␤»
jnthn m: say (1, 2, Nil, * Z 7, 8, Nil, *) ...^ * ~~ (Nil, Nil)
camelia rakudo-moar 04c46c: OUTPUT«((1 7) (2 8))␤»
20:31 maybekoo2 left
vendethiel cute 20:31
jnthn Probably worth factoring out 20:32
If using it more than once :)
But yeah, using ...^ to lop the end off things once you match a certain point is kinda cute.
20:33 perl6newbee left
nadim I think that needs to be expained in lengths, I am still thinking 20:33
20:33 jjido left 20:34 spider-mario joined
jnthn nadim: ... is the sequence operator, the thing on the right of it says how to know when you've reached the end of the sequence, and ...^ is a form of it that means "and don't include the final value", just like 1..^5 means 1..4 in ranges 20:35
dalek kudo/nom: 84a84f2 | lizmat++ | lib/NativeCall.pm6:
Streamline param_list_for
20:40 buharin left
nadim m: say (1, 2, * Z 7, 8, 9, *) ...^ * ~~ (Nil, Nil) 20:44
meh!
jnthn Those'll last forever
nadim of course
camelia rakudo-moar 04c46c: OUTPUT«(timeout)»
nadim 2 is repeated, Nil never comes
it's cute but it foces one to add Nils, could be worth it. I will try tomakealine with the two Zs, it will probably need to be factor out as you said :) 20:45
jnthn: Could you please have a look at this nopaste.linux-dev.org/?992495? I think it is a Bug but don't want to report it if I am just being blind. 20:55
one compile, and run, the other one not, only difference is that I move two lines in a loop. IMO it should work the same
20:57 geraud joined
jnthn Well, something odd's going on, but hinges on what diff_data is doing 20:58
(As in, it's really interesting you're inside an iteration of it, when you see the behavior difference.) 20:59
nadim It's made me crazy all evening. 21:00
if I dump the variable just before using it, it says it is a hash but when it gets to the function it's a list 21:01
skids Try dumping $%glyphs 21:02
Or wait, you never have an opportunity I guiess.
nadim dumping %glyphs isn't good enough? 21:04
21:05 Sqirrel joined
skids Dempends on what the signature of the sumper function is. 21:06
*dumper
a: sub dump (*@_) { @_.perl.say }; my %g = :a, :b; %g.perl.say; dump(%g); 21:08
m: sub dump (*@_) { @_.perl.say }; my %g = :a, :b; %g.perl.say; dump(%g);
camelia rakudo-moar 84a84f: OUTPUT«{:a, :b}␤[:a, :b]␤»
skids obviously should give up typing for the day
21:10 prammer left 21:11 yqt joined 21:14 prammer joined
timotimo thankfully, you can have perl6 without typing if you want 21:14
dalek kudo/nom: 69426bd | lizmat++ | lib/NativeCall.pm6:
Streamline CALL-ME

Shaves off a few % CPU
21:15 colomon left
TreyHarris Say I have: my %h6; %h6<true half-true half-false false> = ((True, False) X (True, False)) 21:16
m: my %h6; %h6<true half-true half-false false> = ((True, False) X (True, False))
camelia ( no output )
TreyHarris m: my %h6; %h6<true half-true half-false false> = ((True, False) X (True, False)); say %h6.perl
camelia rakudo-moar 84a84f: OUTPUT«{:false($(Bool::False, Bool::False)), :half-false($(Bool::False, Bool::True)), :half-true($(Bool::True, Bool::False)), :true($(Bool::True, Bool::True))}␤»
TreyHarris How can I slice across it? Like, %h6{mumble}[0] to get "True, False, True, False"? 21:17
I mean, aside from doing it directly with a map or loop? 21:18
timotimo m: my %h6; %h6<true half-true half-false false> = ((True, False) X (True, False)); say %h6{*}>>.[0].perl
camelia rakudo-moar 84a84f: OUTPUT«(Bool::False, Bool::True, Bool::False, Bool::True)␤»
timotimo m: my %h6; %h6<true half-true half-false false> = ((True, False) X (True, False)); say %h6>>.[0].perl
camelia rakudo-moar 84a84f: OUTPUT«{:!false, :!half-false, :half-true, :true}␤»
timotimo oops
m: my %h6; %h6<true half-true half-false false> = ((True, False) X (True, False)); say %h6.values.[0].perl
camelia rakudo-moar 84a84f: OUTPUT«$(Bool::False, Bool::True)␤»
timotimo m: my %h6; %h6<true half-true half-false false> = ((True, False) X (True, False)); say %h6.values>>.[0].perl
camelia rakudo-moar 84a84f: OUTPUT«(Bool::False, Bool::True, Bool::False, Bool::True)␤»
timotimo hm. 21:19
TreyHarris yeah, I was driving myself crazy with all of those
21:20 musiKk_ left, [Sno] left
TreyHarris m: my %h6; %h6<true half-true half-false false> = ((True, False) X (True, False)); say %h6<true half-false false half-true>.values>>.[0].perl 21:21
camelia rakudo-moar 84a84f: OUTPUT«(Bool::True, Bool::False, Bool::False, Bool::True)␤»
timotimo oh, hooray, i was able to improve the framerate of this script by almost 2x by turning profiling ... on
RabidGravy psch, I can confirm that Audio::PortAudio can output fine to a jackd using alsa as a backend, I'm feeling a bit slack to hook up a multi-channel sound card on firewire 21:22
timotimo now i turned it off again and it's even faster than it was
21:23 TheCoder joined
RabidGravy timotimo, just upgraded the other computer to fc23 BTW, so now I am running the same kernel ;-) 21:23
timotimo mhm 21:24
TheCoder Hello
RabidGravy erp
timotimo hi
TheCoder I am also running Fedora 23
21:25 TheCoder left
RabidGravy well this laptop is still on 22 'cause I'm always half way through something 21:26
timotimo :)
TreyHarris how would I express "all the elements of this list are equal to each other"? I can do "so all(@l) == all(@l)" or "so all(@l) == @l[0]", but is there a better way? 21:29
perlpilot I'd probably use [==] @stuff 21:30
jnthn What perlpilot said; it should short-circuit and be cheaper 21:31
21:32 colomon joined 21:33 bjz left
skids m: my %h6; %h6<true> := { 0 => True, 1 => True }; %h6<half-true> := { 0 => True, 1 => False }; %h6{*;"0"}.say; %h6{*;"1"}.say; # TreyHarris 21:33
camelia rakudo-moar 69426b: OUTPUT«(True True)␤(True False)␤»
TreyHarris I forgot about the reduction [ ] operators
RabidGravy so, next up let's get audio data into a program 21:34
lizmat m: say Version.new # should we even allow this ? 21:37
camelia rakudo-moar 69426b: OUTPUT«v␤»
perlpilot m: my $x = Version.new; $x++; say $x;
camelia rakudo-moar 69426b: OUTPUT«Method 'succ' not found for invocant of class 'Version'␤ in block <unit> at /tmp/L6hqeX2w4l line 1␤␤»
perlpilot lizmat: if that worked it *might* be useful 21:38
21:38 vendethiel left
perlpilot lizmat: but right now, I'm leaning towards "no" :) 21:38
jnthn abstains :)
lizmat perlpilot: but but, Versions are supposed to be immutable, no ?
jnthn Int is immutable too
It's the Scalar that ain't
skids
.oO(It should default to v11.5 to remember the 5th of November :-)
21:39
jnthn :D
You can burn that thought with fire :P
lizmat m: my $v = v1.2.3.4; $_++ for $v.parts; dd $v #hmmm....
camelia rakudo-moar 69426b: OUTPUT«Version $v = Version.new('2.3.4.5')␤»
TreyHarris skids: but that only works because it's associative-of-associative. i was specifically asking about associative-of-array. And "%h6{*;0]" is a syntax error :)
lizmat jnthn: opinions on that one ?
jnthn lizmat: That doesn't look too immutable... 21:40
lizmat indeed :-(
not sure if that is an implementation detail or not
jnthn We should maybe nail that one down :)
lizmat so make it immutable ?
jnthn I'm sure we have no spectests preventing us from doing so...
Yeah
Just a .List in the build or something
lizmat ok, will do so 21:41
yeah... found that versions quite heavy on the NativeCall stuff...
21:41 vendethiel joined
jnthn NativeCall uses versions stuff? 21:42
lizmat finding libraries
jnthn ah 21:43
vendethiel m: multi sub sayit(Str $n){say "String";} multi sub sayit(Int $n){ "Int $n"; }; sayit(True);
camelia rakudo-moar 69426b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/32UhAVJEnL␤Strange text after block (missing semicolon or comma?)␤at /tmp/32UhAVJEnL:1␤------> 3multi sub sayit(Str $n){say "String";}7⏏5 multi sub sayit(Int $n){ "Int $n"; }; s␤ expecting any …»
vendethiel m: multi sub sayit(Str $n) { say "String";} multi sub sayit(Int $n){ "Int $n"; }; sayit(True);
camelia rakudo-moar 69426b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/7_eWpuL5tq␤Strange text after block (missing semicolon or comma?)␤at /tmp/7_eWpuL5tq:1␤------> 3multi sub sayit(Str $n) { say "String";}7⏏5 multi sub sayit(Int $n){ "Int $n"; }; s␤ expecting an…»
jnthn But that should be one-off, not each call, I hope?
vendethiel m: multi sub sayit(Str $n) { say "String";}; multi sub sayit(Int $n){ "Int $n"; }; sayit(True);
camelia ( no output )
vendethiel ...what?
jnthn m: say Bool ~~ Int
camelia rakudo-moar 69426b: OUTPUT«True␤»
vendethiel ???
jnthn vendethiel: As a result of Bool being an enum
Enum values take on their base type
lizmat jnthn: yeah, but it came out quite high in my profile of a nativecall test file 21:44
jnthn m: enum Coin <Head Tail>; say Head.^mro
camelia rakudo-moar 69426b: OUTPUT«((Coin) (Int) (Cool) (Any) (Mu))␤»
jnthn lizmat: OK, phew, and thanks for looking into making it cheaper. :)
vendethiel that's still very surprising. looks like an implicit conversion upfront
perlpilot bets that ends up in a FAQ somewhere
vendethiel (when really it's upcasting)
m: my Int $a = True;
camelia ( no output )
vendethiel :(
the explanation makes sense though, thanks 21:46
jnthn Can't win 'em all... :) 21:47
21:48 aindilis joined 21:52 Actualeyes left
nadim jnthn: I found the source of the problem, not a bug, there was a side effect and the same hash entry contains a hash some time and a list other. 21:54
perlpilot vendethiel: if you wanted it to be strictly Int, you could do something like multi sub foo($n where $n.WHAT eqv Int) { ... }
vendethiel ECUREWORSETHANTHEDISEASE :P 21:55
perlpilot vendethiel: aye.
vendethiel
.oO( ECUREISACURSE )
perlpilot When you give your multi the wrong type, you get a helpful message that says "none of these signatures match: ($ where { ... }) (Str $)" ;) 21:56
.oO( so, I have to pass it a Str or a ... something )
21:57
skids
.oO(A flag to pull .WHYs into error messages)
vendethiel Lol, did github really just add reaction to comments? 21:58
21:58 skids left
jnthn nadim: Phew :) 21:59
nadim: Mixing laziness and side-effects is a recipe for headache... :) 22:00
lizmat jnthn: is Version.new(""), '', "can we handle empty string versions";
so it is spectested
jnthn m: say Version.new("").Str
camelia rakudo-moar 69426b: OUTPUT«␤»
jnthn lizmat: OK, then guess it can stay
lizmat: I don't really see it as a big issue
lizmat: The accidental mutability is much more of a problem 22:01
lizmat yeah, fixing that now
jnthn lizmat++
Glad the profiler is helping find stuff
Today I started work on another profiling tool (heap snapshots) 22:02
Well, technically I started on it yesterday on paper, but tonight translit'd those thoughts into data structures :)
It should help us understand where memory actually goes, anyways.
22:03 cpage_ joined
TreyHarris m: multi sub foo (Str|Bool $x) { say $x.WHAT } 22:05
camelia rakudo-moar 69426b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cK8wSxszkZ␤Malformed parameter␤at /tmp/cK8wSxszkZ:1␤------> 3multi sub foo (Str|Bool7⏏5 $x) { say $x.WHAT }␤ expecting any of:␤ constraint␤»
TreyHarris I thought this was possible... is there a different syntax for that?
ugexe where Str|Bool
TreyHarris riiight
nadim jnthn: I could have at least used two different names and let the compiler catch it
the funny part is that it is almost the same contents 22:06
tomorrow I'll have a Data::Dump::Tree than can display diffs I hope
jnthn ooh :) 22:08
mst jnthn: you may find leonerd's Devel::MAT interesting as prior art for memory dump analysis 22:09
nadim jnthn: imgur.com/yE9a6il I need to integate the Nil,* ^ ... (Nil, Ni) thingy you posted earlier 22:10
jnthn
.oO( Does Devel::MAT sound like Русский::Мат? )
TreyHarris I can't find the perl6/docs page where that form of "where" is discussed directly. It's mentioned in passing in language/functions#Defining_Operators but I don't see a full explanation... It's in the synopsis though. 22:11
mst wat
hoelzro hehe
TreyHarris: doc.perl6.org/type/Signature might help 22:12
jnthn mst: Will take a look at that, thanks. :) 22:13
mst jnthn: admittedly, I do most of my memory debugging with Devel::Gladiator's arena_table and diff
TreyHarris jnthn: no, /dəvel/ sounds nothing like /ruːski/ ;-) 22:14
jnthn :D
mst but I'm sure you've already internalised "given a selection of tools, mst will usually pick the one closest to the metal that provides useful console output" so
22:14 colomon left
jnthn mst: Yeah...what I'm doing is somewhat inspired by the v8 heap profiler 22:15
TreyHarris hoelzro: thanks, my eyes slid over that when i was grepping
jnthn mst: I might well write a console app for analyzing the data first. 22:16
hoelzro jnthn: sometimes developing makes me want to use мат =P
b2gills .tell bioexpress You will probably need to convert from a Str to a Buf to work with wchar_t functions 22:17
yoleaux b2gills: I'll pass your message to bioexpress.
jnthn I didn't figure I'd write the heap profiler so soon, but ran into a problem where buliding the tool to let me figure out what the heck is going on quickly might well beat the time it takes figuring it out ad-hoc anyway. 22:18
22:18 TEttinger joined
mst I know that feeling 22:18
jnthn I also hold this hope that if I build the guts to get the raw data out, others might be willing to help build shiny visualization etc. for it. :) 22:19
mst one of the reasons I mentioned Devel::MAT is because it comes with a gtk introspector thing that I was hoping you might be able to use to give other people ideas 22:20
since there seem to be a bunch of people doing gtk stuff already
jnthn Ah, cool
mst after all, shouting "well volunteered" is not a restricted skill ;) 22:21
jnthn ;)
22:25 FROGGS[mobile] left, pdcawley left
timotimo what does the MAT do? 22:29
22:29 pdcawley joined 22:32 colomon joined 22:34 prammer left
mst timotimo: memory allocation tracker, lets you dig through everything your perl5 code allocated to see where things came from 22:35
22:35 prammer joined 22:36 colomon_ joined, colomon left, colomon_ is now known as colomon 22:38 pdcawley left
geekosaur (CyberMAT?) 22:47
22:48 vendethiel left 22:49 [Sno] joined
jnthn 'night, #perl6 22:49
timotimo gnite jnthn 22:51
22:52 ptolemarch left 22:55 Skarsnik left, wamba left
[ptc] is it possible to match a Num in a regex? In other words, match numbers such as 1234.567 and 1234/56? 22:59
dalek pan style="color: #395be5">perl6-examples: a9fda07 | paultcochrane++ | t/categories/cookbook/09directories.t:
Accept Rat-like strings in filetime output
23:12
timotimo 1234/56 isn't a num, it's a Rat :)
and no, you'll have to build that rule yourself, i'm afraid :(
well, perhaps it's possible to call the rule in question from Perl6::Grammar or somethin 23:13
23:14 kid51 joined 23:18 lostinfog left 23:20 skids joined 23:23 Actualeyes joined
nadim I want to send arrays into a sub, a variable amount, and I want to get, in the sub, an array of those arrays. I can quite get the signature right 23:24
23:24 Sgeo_ joined
nadim do_x(@a1, @a2, ...) ; sub do_x(*@all); puts all the contents in @all but Iwant references 23:25
to each array
skids sub a (**@s) { @s.perl.say }; a((1,2),[3,4],5,6);
lizmat if you are sure there are at least 2 arrays, you could use the + signature?
skids m: sub a (**@s) { @s.perl.say }; a((1,2),[3,4],5,6);
camelia rakudo-moar 69426b: OUTPUT«[(1, 2), [3, 4], 5, 6]␤»
lizmat or that :-)
23:26 Sgeo left
nadim perfect, thanks both, I didn't tink about the ** and I didn't find it anywere documented 23:27
23:28 patrickz left
lizmat is getting too tired 23:30
good night, #perl6!
nadim night :)
skids o/ 23:31
23:31 jack_rabbit joined 23:32 kjs_ left 23:35 sufrostico left 23:36 sufrostico joined
RabidGravy right, off to bed. toodles! 23:54
23:54 SCHAAP137 left 23:56 tmch left
rudi_s Hi. Is it expected that my $p = run @cmd, :in; $p.in.native-descriptor returns -1 ? 23:57
23:57 spider-mario left
ugexe what makes method(@foo) faster than method(*@foo)? 23:58
rudi_s (My plan was to use a C library to write to stdin of the command but without native-descriptor that won't work.)
23:59 RabidGravy left