»ö« 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«FalseFalseFalseTrueTrue» | ||
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/KEt34MfWXHUndeclared 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/WyVTR6UDDqUndeclared 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/g6CSxJHC8tVariable '$f' is not declaredat /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/E6SlNLtLf4Confusedat /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«123» | ||
jnthn | m: m: my %x; %x<a> = <1 2 3>; for %x<a>.list { .say } | ||
camelia | rakudo-moar f93bab: OUTPUT«123» | ||
jnthn | m: m: my %x; %x<a> = <1 2 3>; for @(%x<a>) { .say } | ||
camelia | rakudo-moar f93bab: OUTPUT«123» | ||
jnthn | m: my %x; %x<a> = <1 2 3>; %x<a>.map: { .say } | 15:36 | |
camelia | rakudo-moar f93bab: OUTPUT«123» | ||
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«123» | ||
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«1Too 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«xxxxxxxxxxxxNil» | ||
ugexe | m: my $a := gather for 1,2,3,4 { take $_; say "xxx"; }; say $a[3]; | ||
camelia | rakudo-moar 04c46c: OUTPUT«xxxxxxxxx4» | ||
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/32UhAVJEnLStrange 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_eWpuL5tqStrange 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/cK8wSxszkZMalformed parameterat /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
|