»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:00
bjz joined,
bjz left
|
|||
haxmeister | learned simple subs, file IO and some methods, regex implementation... I'm liking it so far | 00:00 | |
00:00
rindolf left
|
|||
AlexDaniel | haxmeister: does not look bad at all | 00:01 | |
haxmeister | it works.. I'm gonna add some stuff to it | ||
I need it to not look in certain directories there.. will need to figure out the method for figuring out the folder name | 00:02 | ||
00:03
Geth joined,
ChanServ sets mode: +v Geth
|
|||
haxmeister | does .basename return the folder if it's not a file? | 00:03 | |
00:04
nadim joined
|
|||
nadim | Hi, just got the latest rakudo, I was 571 commits back, | 00:05 | |
I have ::("Terminal::ANSIColor::EXPORT::ALL::&color") fail when it worked before, what has changed | |||
AlexDaniel | nadim: maybe this? rakudo.org/2017/03/18/lexical-requi...rade-info/ | 00:08 | |
timotimo | timo@schmand ~> perl6 -e 'require ::("Terminal::ANSIColor"); say ::("Terminal::ANSIColor::EXPORT::ALL::&color")' | 00:14 | |
sub color (Str $what) { #`(Sub|77895256) ... } | |||
this is on my latest rakudo right now | 00:15 | ||
nadim | that also works for me, and the version I have is 2 hours old | 00:16 | |
timotimo | hm, so we'll need to look at a bit more context for the case where it doesn't work | ||
00:17
kurahaupo left
|
|||
gfldex | haxmeister: that's how I would write it: gist.github.com/gfldex/9bf8ed50c2c...6cbef83f9c | 00:17 | |
nadim | nopaste.linux-dev.org/?1123980 | 00:18 | |
timotimo | haxmeister: doing regex matches for a very simple thing like "ends in .log" is a whole lot of unnecessary overhead; try something like $thepath ~~ *.ends-with(".log") instead | ||
00:19
stmuk joined
|
|||
timotimo | well, yeah, that can't work | 00:19 | |
didn't i have a pull request for you a couple days ago? where did that disappear to ... | |||
nadim | I merged it manually | 00:20 | |
timotimo | okay, then you missed the most important bit | ||
nadim | lol! | ||
timotimo | yes, indeed | ||
00:20
stmuk__ left
|
|||
nadim | the if (try require ::Terminal::ANSIColor) !=== Nil { $is_ansi = True } is certainly your | 00:20 | |
timotimo | when you require ::Terminal::ANSIColor like that in method new, it'll only be visible inside the new method | 00:21 | |
that's why i stashed away the &color sub in an attribute | |||
if you apply that part of my patch again, things should work again | |||
i think i'll go to bed now | 00:22 | ||
have a good one! | |||
nadim | I found what I did here: * 7ba0dd8 FIXED: lexical require, patch by timo (3 weeks ago, Nadim Khemir) but since it was by hand I probably missed a bit as you said | ||
timotimo | yeah, i looked at that | ||
nadim | I guess I will find it in your repo od Data::Dump::Tree | 00:23 | |
timotimo | by moving the self.bless at the end my patch also enables us to turn &.ansicolor into &!ansicolor so it's no longer visible to the outside. that'll require a submethod TWEAK(:&!ansicolor) { } though | ||
github.com/nkh/P6-Data-Dump-Tree/c...9a016089cc | |||
that was my patch | |||
why it's inside nkh/P6-Data-Dump-Tree instead of my own fork of it i'm not sure | 00:24 | ||
nadim | thanks and good night :) | ||
timotimo | you're welcome :) | ||
00:26
Cabanossi left
00:27
Cabanossi joined
00:28
Rawriful left
|
|||
gfldex | brrt++ # brrt-to-the-future.blogspot.de/2017...-mean.html | 00:30 | |
00:36
k-man joined
00:46
dj_goku joined
00:51
dj_goku left,
ponbiki joined
00:53
Praise joined,
Praise left,
Praise joined
00:55
astj joined
00:56
Praise left
00:57
Praise joined,
Praise left,
Praise joined
00:58
Zoffix joined
01:01
Voldenet left
|
|||
Zoffix | haxmeister: your script has a bug. You're not exhausing output of `dir` call before recursing into other dirs, so it'll crash when you recurse over enough dirs to reach maximum per-process open files. gfldex's version has it as well, except it hides the bug behind the `try` | 01:04 | |
haxmeister: the docs have an example of recursive search without that bug. Note how it's pushing all the dirs to look at into an array instead; this lets it open and close each dir 1 at a atime: docs.perl6.org/routine/dir | 01:05 | ||
haxmeister: better yet, just use File::Find module. It can take a regex for the filename to look for: github.com/tadzik/File-Find | 01:06 | ||
haxmeister | tyvm Zoffix .. hopefully the page doesn't have features I haven't learned yet | 01:07 | |
01:07
Voldenet joined,
Voldenet left,
Voldenet joined
|
|||
samcv | in grammars, is there a method that gets hit at the very end of parsing? | 01:07 | |
and only hit once | |||
01:08
Zoffix left
|
|||
samcv | action classes i mean | 01:09 | |
AlexDaniel | samcv: what about using method TOP? :) | 01:10 | |
samcv | it gets hit many times | 01:11 | |
AlexDaniel wonders under what conditions this could happen | 01:12 | ||
samcv | i thkn | ||
err | |||
maybe. hm | |||
01:13
stmuk_ joined
|
|||
Geth | doc: c991862cf9 | (Zoffix Znet)++ | doc/Type/IO/Path.pod6 [io grant] Add warning to dir about... ...exhausting open files limit due to not exhausing the iterator of the Seq the routine returns. |
01:13 | |
haxmeister | ugh | 01:14 | |
01:15
stmuk left
01:16
espadrine left
|
|||
haxmeister | so I should push what I get from dir() into an array and iterate the array because dir() holds the directory open wating for the recursive call? | 01:16 | |
and gfldex I have no idea what .&?ROUTINE is yet..lol | 01:17 | ||
gfldex | haxmeister: &?ROUTINE referes to the current sub (or method) | 01:19 | |
haxmeister: and .& means $_.&(some-sub-or-method-here) | 01:20 | ||
haxmeister | that's hard to remember | ||
01:20
idyll joined
|
|||
haxmeister | but I have difficulty with understanding when we are not addressing $_ explicitly.. took me a minute looking at yours to get it | 01:22 | |
AlexDaniel | haxmeister: wait, what's hard to remember? | 01:24 | |
haxmeister | gfldex: could you have put parenthesis in your logic ... (.f) && (.basename ~~ $build-log-regex) ? | ||
AlexDaniel: .&?ROUTINE | 01:25 | ||
AlexDaniel | haxmeister: well, $_. can always be shortened to . | ||
01:25
Cabanossi left
|
|||
AlexDaniel | but to be honest it's the first time I see &?ROUTINE :D | 01:26 | |
haxmeister | AlexDaniel: maybe I should just make an explicit call for now.. lol | ||
01:26
Cabanossi joined
|
|||
haxmeister | when I'm a perl6 badass.. then I'll do .&?ROUTINE ..lol | 01:27 | |
AlexDaniel | haxmeister: sure, why not. You'll quickly get tired of it anyway :P | ||
gfldex | for advanced players, there is &?BLOCK | ||
haxmeister | AlexDaniel: yeah but by that time I won't be trying to remember all kinds of other new stuff in my head | ||
gfldex | see docs.perl6.org/language/variables#...26%3FBLOCK | 01:28 | |
AlexDaniel | gfldex: interestingly, &?ROUTINE is broken | ||
gfldex: oops, in the docs I mean | |||
it points here docs.perl6.org/syntax/&?ROUTINE but it is 404 | |||
it should probably point here docs.perl6.org/language/variables#&?ROUTINE | |||
01:29
curt_ left
|
|||
samcv | AlexDaniel, nope top is being called twice | 01:29 | |
i wasn't crazy | |||
01:29
idyll left
|
|||
AlexDaniel | samcv: alright. Why? | 01:30 | |
samcv: I mean, that would mean that TOP actually matched twice | |||
samcv | the cations class | ||
actions class | |||
i don't mean the grammar | |||
AlexDaniel | yes? | ||
samcv | it gets hit three times | 01:31 | |
and it's messing things up | |||
i need something that's only called once at the end not 3 times | |||
gist.github.com/c9ffe206206648e7e9...ffae69a37b | 01:32 | ||
three times :( | |||
AlexDaniel | well, do you match TOP recursively? | ||
01:33
yqt left
|
|||
AlexDaniel | hm… probably not… | 01:33 | |
samcv | how would i do that | ||
AlexDaniel | like rule TOP { <TOP> } | 01:34 | |
samcv | nope | ||
AlexDaniel | code? | 01:35 | |
samcv | ok it's not doing it i forget what i changed. trying something else here | 01:39 | |
not sure what was going on. but. will get back to you | |||
01:40
dj_goku joined,
dj_goku left,
dj_goku joined
01:43
labster left
01:45
ilbot3 left
01:46
AlexDaniel left
01:48
ilbot3 joined,
ChanServ sets mode: +v ilbot3
|
|||
samcv | oh ok changing TOP from regex to a token makes it only run once | 01:52 | |
but also breaks the world | |||
Geth | Swapped META.info → META6.json in 1 dists in github.com/perl6/ecosystem/commit/ce13941798 | 01:57 | |
samcv | i'm trying to get this code to only run once github.com/samcv/SPDX-Parser/blob/...m6#L78-L84 | ||
and only at the end of it. if there aren't any $<compound-expression> matches found in the grammar | 01:58 | ||
then i need to make sure to push the <simple-expression> matches since they won't be pushed inside the complex expression ones | |||
02:32
adu joined
02:47
poohman joined
02:53
nadim left
03:04
poohman left
03:16
eater joined
03:24
Cabanossi left
03:26
Cabanossi joined
03:30
adu left
03:31
BenGoldberg left
03:37
pierre_ joined
03:38
labster joined
03:40
adu joined
03:41
adu left
03:44
pierre_ left
03:46
Actualeyes left
03:59
aborazmeh joined,
aborazmeh left,
aborazmeh joined
04:01
wigner joined
04:03
adu joined
04:13
CIAvash joined
04:25
Cabanossi left
04:26
Cabanossi joined
04:32
aborazmeh left,
adu left
04:42
ChoHag left
04:45
poohman joined,
poohman left,
poohman_ joined
04:52
wigner left
05:05
khw left
05:09
Cabanossi left
05:11
Cabanossi joined
|
|||
moritz | \o | 05:19 | |
05:34
skids left
|
|||
sammers | hi moritz | 05:39 | |
05:39
Cabanossi left
05:41
Cabanossi joined
05:43
Actualeyes joined
05:48
sena_kun joined
05:51
poohman_ left
05:54
gdonald left
|
|||
samcv | \o | 05:56 | |
sena_kun | o/ | 05:57 | |
samcv | anybody can help me? | 05:58 | |
TOP is called multiple times in the action class for my grammar and i need a method called on the | |||
sena_kun | samcv, don't ask to ask. :) It depends on your problem. | ||
samcv | only once and at the end | ||
sena_kun | hmmm. it is too complex to phasers as it seems. | 06:00 | |
FIRST and LAST works only on loops, afaik. | |||
you can recognize first method call with inner state variable, but I am not sure you can guess where the last call would be. | 06:01 | ||
if you don't want to explicity call it from TOP, perhaps there are some magical grammar methods that can be overloaded. | 06:05 | ||
samcv | hm | 06:09 | |
yeah | |||
i need a like DONE method or something | |||
to be called at the very end of the action parse | |||
sena_kun | as an ugly alternative, cannot you wrap(change?) your result up(if you want to do it) outside of `parse`? I mean, after `parse` you get a tree and you can customize it by hands in the worst case. | 06:11 | |
moritz | samcv: you can do something like regex TOP { your regex goes here <.finish_marker> } | 06:12 | |
samcv | ooo | ||
moritz | samcv: token finish_marker { <?> } | ||
samcv | and have it be zero width? | ||
nice | |||
thank you moritz :) | |||
moritz | method TOP { return unless $<finish_marker> } | 06:13 | |
or if TOP is supposed to match the whole string, you can do return unless $/.to == $/.orig.chars; | |||
samcv | also how to call the autogenerated USAGE sub | 06:16 | |
yourself i mean | |||
USAGE() isn't working | |||
moritz | m: sub MAIN() { say $?USAGE } | 06:21 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '$?USAGE' is not declared at <tmp>:1 ------> 3sub MAIN() { say 7⏏5$?USAGE } |
||
moritz | :( | ||
m: sub MAIN() { &::('USAGE')() } | 06:22 | ||
camelia | No such symbol '' in sub MAIN at <tmp> line 1 in block <unit> at <tmp> line 1 Actually thrown at: in sub MAIN at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
samcv | hm | ||
moritz | looking at src/core/Main.pm, it looks like USAGE is pretty well encapsulated | 06:23 | |
samcv | :( | ||
moritz | and the specced ways to access it aren't implemented | ||
samcv | suprised there's not a USAGE you can call | ||
that's what i assumed. and that you would override it if you defined it yourself | |||
moritz, the finish_marker gets called first | 06:48 | ||
06:50
wamba joined
06:51
parv joined
06:54
Cabanossi left
06:56
Cabanossi joined
06:57
pierre_ joined
07:03
TEttinger left
07:04
espadrine joined
07:09
gdonald joined
07:17
Actualeyes left,
wamba left
07:30
jeek left
07:37
wamba joined
07:39
Actualeyes joined
|
|||
Geth | Inline-Perl5: f1594f9fb6 | (Stefan Seifert)++ | META6.json Fix installed Inline::Perl5 not finding all the sub-modules Add missing keys in "provides" in META.json |
08:00 | |
samcv | making major progress now on SPDX parser | 08:13 | |
not bug free. but over a lot of the issues | 08:14 | ||
weird error though | 08:15 | ||
===SORRY!=== | |||
Cannot find method 'has_compile_time_value' on object of type NQPMu | |||
08:19
rindolf joined
08:21
Actualeyes left
08:27
pierre_ left
08:38
ufobat joined
08:45
rogbro joined,
rogbro left
08:47
rogbro joined,
Ven joined
08:48
Ven is now known as Guest85461,
rindolf left
08:51
rindolf joined
08:57
jjones-jr joined
09:01
rogbro left
09:02
rogbro joined
09:05
nadim_ joined
09:09
Cabanossi left
09:11
Cabanossi joined
09:13
Guest85461 left
09:19
pmurias joined,
rogbro left
|
|||
pmurias | do we want nqp::sprintf("%d", ["not a number"]) to work? | 09:20 | |
09:20
rogbro joined
09:22
Ven joined,
Ven is now known as Guest91537,
rogbro left
09:23
Guest91537 left
09:26
Ven_ joined,
pierre_ joined,
CIAvash left
09:27
pierre_ left
|
|||
samcv | hmm pmurias not sure but if a string has a number in it. hm | 09:28 | |
maybe that's why it works? | |||
a bit odd though. but | |||
bbl | |||
09:28
jjones-jr left
09:32
darutoko joined
09:33
rogbro joined,
rogbro left
09:36
rogbro_ joined
09:39
wamba left
09:51
rogbro_ left,
parv left
09:52
rogbro joined
10:04
pierre_ joined
10:09
pierre_ left
10:10
rogbro left
10:12
rogbro joined
10:13
Rawriful joined
10:15
labster left
10:16
Ven_ left
10:19
Ven joined,
Ven is now known as Guest98432
10:21
eliasr joined
10:22
rogbro left
10:31
laouji joined
10:38
Cabanossi left
10:41
Cabanossi joined
10:45
notbenh joined
11:06
Guest98432 left
11:10
Cabanossi left
11:11
Cabanossi joined
11:15
Ven_ joined
11:26
laouji left,
bjz joined
11:28
freesoftwarejoe left
11:29
laouji joined
11:31
wamba joined,
Ven_ left
11:34
Ven joined,
Ven is now known as Guest9182
11:40
AlexDaniel joined
12:06
pierre_ joined,
rindolf left
12:10
pierre_ left
12:22
laouji left
12:38
laouji joined
12:40
zakharyas joined
12:42
rindolf joined
12:58
mcmillhj joined
12:59
zakharyas left
13:06
cdg joined
13:07
zakharyas joined
13:09
Cabanossi left
13:11
Sound joined,
Cabanossi joined,
Sound is now known as Guest71992,
Guest71992 left
13:12
Sound_ joined
13:16
pierre_ joined,
sammers left
13:18
laouji left
|
|||
[Coke] | $dayjob question - anyone ever have to provide proof of relationship for medical benefits? (US or not) | 13:23 | |
(I have to dig up the marriage & birth certs for new job) | 13:24 | ||
colomon | I’m on my wife’s benefits, and I don’t remember providing proof | ||
only changed a couple of years ago | 13:25 | ||
Voldenet | [Coke]: Well, you have to provide it now, so yes, but I don't remember providing anything like that in Poland | ||
perl6-related question: what's the best way to say "the argument $x needs to have method y" in a signature? | 13:26 | ||
13:27
drrho_ left
|
|||
timotimo | m: say Str.^can("uc") | 13:27 | |
camelia | (uc uc) | ||
timotimo | m: say Str.^can("not_this_though") | ||
camelia | () | ||
timotimo | so you could 'where *.^can("methodname")' | ||
DrForr | That's no guarantee though that the method is going to do what you expect when you call it, though. Maybe you're after a class instead? | 13:28 | |
Voldenet | m: sub do-stuff($x where { $x.^can("u"); }) { say $x.u; }; do-stuff(class { method u {} }.new()) | 13:31 | |
camelia | Nil | ||
Voldenet | m: sub do-stuff($x where { $x.^can("u"); }) { say $x.u; }; do-stuff(class { }.new()) | ||
camelia | Constraint type check failed in binding to parameter '$x'; expected anonymous constraint to be met but got <anon|51954672> (<anon|51954672>.new) in sub do-stuff at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
Voldenet | Perfect. | ||
DrForr | class MyStr is Str { method do-stuff { } }; my $x = MyStr.new; sub foo( MyStr $x ) { } | ||
Voldenet | but then your object must be of type MyStr | 13:32 | |
Basically, though I want to pass an implementation to the given protocol (java style anonymous class) | |||
DrForr | True, but you also know that the do-stuff() method accepts the arguments you want because you created it that way. And it's also still a Str. | ||
Voldenet | is there any better way to do what I want? | ||
DrForr | If you can accept it being that generic, then I'd go for it. Otherwise I'd probably have to see the code and scratch my head for a bit. | 13:33 | |
[Coke] | use a role, but also allow specific core classes that you know do what you want? | 13:34 | |
DrForr | I would've suggested a role as well but I wasn't sure if those would play well with whatever hierarchy that he's established. | 13:35 | |
I do something similar in Perl6::Parser, a combination of roles to restrict the things classes can do, and a simple, nearly empty class hierarchy that people can do ~~ conparisons on. | 13:36 | ||
Voldenet | m: role Anon { method u { ... } }; sub do-stuff(Anon $x) { $x.u; }; do-stuff(class X does Anon { method u {} }.new()) | 13:37 | |
camelia | ( no output ) | ||
Voldenet | m: role Anon { method u { ... } }; sub do-stuff(Anon $x) { $x.u; }; do-stuff(class X does Anon { }.new()) | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Method 'u' must be implemented by X because it is required by roles: Anon. at <tmp>:1 |
||
Voldenet | Yeah, the error message is a lot better. | 13:38 | |
+ it's compile-time | |||
DrForr | You can also declare method foo {!!!} to state that the method must exist in child classes. | 13:39 | |
Voldenet | I wish I could get rid of class name inside of "do-stuff(class X does Anon { }.new)" though, hm | 13:40 | |
13:40
skids joined
13:41
drrho_ joined
|
|||
Voldenet | m: role Anon { method u { !!! } }; sub do-stuff(Anon $x) { $x.u; }; do-stuff(class { also does Anon; method u {} }.new) | 13:42 | |
camelia | ( no output ) | ||
timotimo | but then your objects have to cooperate | 13:43 | |
13:44
laouji joined
|
|||
MasterDuke_ | m: role Anon { method u { ... } }; sub do-stuff(Anon $x) { $x.u; }; do-stuff(class :: does Anon { }.new()) | 13:44 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Method 'u' must be implemented by <anon|54615424> because it is required by roles: Anon. at <tmp>:1 |
||
Voldenet | that looks... better :) | 13:45 | |
13:47
poohman joined
13:52
poohman left
13:54
Cabanossi left,
bjz left
13:55
ufobat left
|
|||
haxmeister | can't figure out why I get an error on my while loop.. pastebin.com/G8gX8uDX | 13:55 | |
says missing block while ⏏@listing { | 13:56 | ||
13:56
Cabanossi joined
|
|||
AlexDaniel | haxmeister: did you mean for ? | 13:58 | |
ah no, probably not | 13:59 | ||
haxmeister | was trying to change to push and pop.. the example uses while | ||
don't want to use the example.. want to understand the example | |||
13:59
cdg left
|
|||
AlexDaniel | e: pastebin.com/raw/G8gX8uDX | 13:59 | |
evalable6 | AlexDaniel, Successfully fetched the code from the provided URL. | ||
(exit code 1) 04===SORRY!04=== Error while compiling /tmp/GGd2uf91Kv Missing block at /tmp/GGd2uf91Kv:17 ------> 03␉while 08⏏04@listing { |
|||
13:59
cdg joined
|
|||
AlexDaniel | c: HEAD pastebin.com/raw/G8gX8uDX | 14:00 | |
committable6 | AlexDaniel, Successfully fetched the code from the provided URL. | ||
AlexDaniel, ¦HEAD(eb1ce41): «04===SORRY!04=== Error while compiling /tmp/3MrG7lPnwCMissing blockat /tmp/3MrG7lPnwC:17------> 03␉while 08⏏04@listing { «exit code = 1»» | |||
AlexDaniel | haxmeister: probably needs a space after dir($start-dir) | 14:01 | |
haxmeister | that was it | 14:04 | |
dug out a few other errors.. but now the proggy runs with no response | |||
AlexDaniel | \o/ | ||
haxmeister | the error messages are tricky sometimes..lol | ||
AlexDaniel | haxmeister: mostly, we consider less than awesome error messages as bugs, so feel free to submit tickets | 14:05 | |
haxmeister | ah man.. I dunno I'm pretty noobish, that might get irritating sorting through my tickets to find the ones that are not just my ignorance | 14:07 | |
AlexDaniel | haxmeister: I doubt that would be a problem | 14:10 | |
and you can always ask here beforehand ;) | |||
you'll have to golf it down to 1-2 lines of code though | |||
haxmeister | where is the bug reporting page at? | 14:12 | |
MasterDuke_ | huggable: rakudobug | 14:17 | |
huggable | MasterDuke_, Report bugs by emailing to [email@hidden.address] | ||
MasterDuke_ | haxmeister: ^^^ | ||
haxmeister | kk | 14:18 | |
ty | |||
now I have no errors but my code seems to loop infinitely without producing anything..lol | 14:20 | ||
pastebin.com/UU2nf1Di | |||
MasterDuke_ | this isn't the problem, but you could simplify `my @listing; for dir($start-dir) {@listing.push($_);}` to just `my @listing = dir($start-dir)` | 14:25 | |
14:26
ggoebel left
|
|||
haxmeister | yes MasterDuke_ that is how I had it before.. I changed it to long hand while trying to root out an error I had.. thank you for the advice | 14:27 | |
14:28
TimToady left
|
|||
haxmeister | I just am not seeing how this isn't working.. I feel so noobish lol, I would have nailed it the first time in lisp ;-P | 14:29 | |
14:29
TimToady joined
|
|||
MasterDuke_ | you're popping@listing, but if $item is a directory that doesn't match the regex, you're putting it right back in @listing | 14:31 | |
Geth | ecosystem: bfec6ee8e3 | (Stefan Seifert)++ | META.list Switch to versioned releases on CPAN for Inline::Perl5 |
||
MasterDuke_ | haxmeister: i.e., it's just testing the same directory over and over again | 14:33 | |
pmurias | Voldenet: re java style anonymous class, you are aware that Perl 6 has closures? | ||
haxmeister | MasterDuke_: having to stare at it a minute.. I'm not seeing it yet | 14:35 | |
pmurias | Voldenet: so that you can do something like $foo.foo(-> {"do some stuff here"}) | 14:36 | |
haxmeister | MasterDuke_: if it's a directory who's basename is not "work".. push it back on the stack.. that's what I'm intending | ||
I've never used a while loop on a stack that while block is changing.. that's different to me | 14:38 | ||
MasterDuke_ | m: my @a = <a b c>; while @a { my $i = @a.pop; say $i; if $i ne "c" { @a.push($i) }; } | ||
camelia | (timeout)c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b… |
||
14:38
evalable6 left
|
|||
haxmeister | lol | 14:39 | |
14:39
ChoHag joined
|
|||
MasterDuke_ | that's what's happening | 14:40 | |
14:41
ggoebel joined
|
|||
Voldenet | pmurias: but the interface looking like that: (&fn1, &fn2, &fn3) isn't very descriptive when you're reading code | 14:41 | |
erm, sub (&fn1, &fn2, &fn3) | |||
14:44
alimon joined
|
|||
Geth | Inline-Perl5/release-0.26: aa06e66e93 | (Stefan Seifert)++ | META6.json Point to the source tar ball in META6.json |
14:45 | |
14:46
ggoebel left
14:47
pierre_ left,
mr-foobar left
|
|||
pmurias | Voldenet: you can pass named arguments | 14:49 | |
14:50
Rawriful left
|
|||
Geth | ecosystem: eeac110f08 | (Stefan Seifert)++ | META.list Fix Inline::Perl5 versioned releases Thanks to ugexe++ for explaining, how this is supposed to work. |
14:50 | |
Voldenet | pmurias: ah, right, hm, I might reconsider | 14:51 | |
pmurias | there is nothing wrong with requiring a role and passing an class instance that's implement it btw | 14:52 | |
but from my limited java experience they use anonymous class with a method or two mostly to make up for the lack of closures | 14:53 | ||
15:09
Cabanossi left
15:10
st_elmo joined
|
|||
Voldenet | pmurias: yes, however more modern java has the option to "autoimplement" the anonymous inner class with a lambda, which pretty much does the same | 15:11 | |
15:11
Cabanossi joined
|
|||
Voldenet | except the consumer can think of interfaces, still | 15:11 | |
15:17
domidumont joined
15:31
nhywyll joined
15:32
mr-foobar joined
15:35
laouji left
|
|||
stmuk_ | rakudo.org/2017/05/01/announce-raku...e-2017-04/ | 15:35 | |
15:39
setty1 left,
ChoHag left
15:42
khw joined
15:43
laouji joined
|
|||
Geth | perl6.org: 8580a455a8 | (Steve Mynott)++ | source/downloads/index.html R* 2017.04 |
15:46 | |
nadim_ | hi all, I'd rather not optimize code like an idiot, but I also prefer to not have completely silly code. I am trying to make Data::Dump::Tree better but speed is still a problem. I have profiles it (and not got must smarter in the move) done reviews. .. now I am asking if there is someone who would like to have a look at it. Maybe I am missing something or I am using something that I should not. Help pointing at what to do is appreciated. | 15:47 | |
haxmeister | MasterDuke_: got it working.. so happy.. works plus I understand it with my limited syntax knowledge | 15:49 | |
MasterDuke_: thanks for help | |||
MasterDuke_ | np | 15:50 | |
haxmeister | MasterDuke_:this does prevent dir() from remaining open on recursion as far as I can tell pastebin.com/5d89hbxF | 15:51 | |
MasterDuke_ | haxmeister: fyi, `for dir($listing) { @stack.push($_); }` could be `@stack.append(dir($listing))` | 15:53 | |
haxmeister | append would put it on bottom right? | 15:55 | |
more appropriate on bottom actually | 15:56 | ||
makes me wonder why the loop doesn't stop prematurely when I'm pushing on top | |||
MasterDuke_ | append is the same as push, but it essentially flattens what it's pushing | 15:57 | |
m: my @a = <a b c>; my @b = <d e f>; @a.append: @b; say @a; my @c = <a b c>; @c.push: @bl say @c | 15:59 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '@bl' is not declared at <tmp>:1 ------> 3 @b; say @a; my @c = <a b c>; @c.push: 7⏏5@bl say @c |
||
haxmeister | so append could prevent me from accidentally putting the whole list in a single stack item | 16:00 | |
MasterDuke_ | m: my @a = <a b c>; my @b = <d e f>; @a.append: @b; say @a; my @c = <a b c>; @c.push: @b; say @c | ||
camelia | [a b c d e f] [a b c [d e f]] |
||
MasterDuke_ | exactly | ||
16:00
laouji left
|
|||
haxmeister | in the case of what I have written.. I avoided the problem by chance yeah? | 16:00 | |
MasterDuke_ | kind of. depends if you knew how push treats lists as arguments | 16:01 | |
if you're familiar with Perl 5, it automatically flattens much of the time. Perl 6 usually treats them as single entities, and you have to explicitly flatten them if you want that | 16:02 | ||
s/flattens/flattens lists/ | |||
haxmeister | I don't honestly.. but from now on when I want to be sure to extend the stack, I will use append so as not to get lost in my own logic | 16:03 | |
perl having lists and arrays both is interesting to me, but at the same time can be confusing when it's not apparent what the functional differences might be | |||
16:05
laouji joined
16:18
st_elmo left
16:24
mcmillhj left
16:25
laouji left,
laouji joined
|
|||
haxmeister | at first I thought it was irritating that dir() returned IO objects.. but now I love it.. absolutely well thought out | 16:27 | |
16:30
st_elmo joined,
Guest9182 left
16:32
zakharyas left
|
|||
haxmeister | so this will always flatten properl? my @stack = dir($start); | 16:33 | |
16:33
Ven joined,
nebuchad` joined,
Ven is now known as Guest61766
16:34
mcmillhj joined
16:36
laouji left
16:37
ambs_ joined
16:38
mcmillhj left
16:41
eliasr left,
rodarmor left,
xfix left,
lucs left,
nebuchadnezzar left,
ilmari left,
emeric left,
laouji joined
16:42
incredible joined,
ilmari joined,
rodarmor joined
16:43
setty1 joined
16:44
lucs joined,
mcmillhj joined
16:48
emeric joined,
BuildTheRobots joined
16:49
TreyHarris joined
16:50
kurahaupo joined
|
|||
moritz | yes | 16:50 | |
16:51
eliasr joined
16:59
zakharyas joined
17:02
laouji left
17:03
kurahaupo left
17:06
kurahaupo_ joined
17:11
TEttinger joined
17:12
poohman joined
17:18
laouji joined
17:20
alimon left
17:21
ChoHag joined
17:24
poohman left
17:33
alimon joined,
Guest61766 left
17:35
nebuchad` is now known as nebuchadnezzar
17:44
nhywyll left
17:51
poohman joined
|
|||
poohman | hello was playing with win32 api native calling today and came across a function to get the machine name. It was returned in a pointer. Can I access the name using the pointer or can only use pointers to pass to other functions say as handles? | 17:54 | |
17:55
Cabanossi left
17:56
Cabanossi joined
17:57
poohman2 joined
|
|||
awwaiid | poohman: is it a pointer to a string? It might work like magic to say it is an Str | 17:59 | |
poohman: link us to the function call definition | |||
18:01
poohman left
|
|||
poohman2 | will switch over to pc - give me a moment | 18:04 | |
18:05
poohman joined
18:07
poohman_ joined
|
|||
poohman_ | BOOL WINAPI GetComputerName( | 18:07 | |
_Out_ LPTSTR lpBuffer, | |||
_Inout_ LPDWORD lpnSize | |||
); | |||
18:08
xfix joined
|
|||
poohman_ | sorry had to switch over from mobile to laptop - for example - if I want to dereference lpBuffer and get the name - how can I do it? | 18:08 | |
18:10
poohman_ left
|
|||
moritz | what's LPTSTR? | 18:10 | |
18:10
poohman left
18:11
cdg left,
poohman_ joined
|
|||
poohman_ | lpBuffer [out] | 18:11 | |
A pointer to a buffer that receives the computer name or the cluster virtual server name. The buffer size should be large enough to contain MAX_COMPUTERNAME_LENGTH + 1 characters. | |||
18:11
zakharyas left
18:12
poohman joined
|
|||
moritz | so a char* ? | 18:12 | |
poohman_ | ja | ||
moritz | then just declare it as "returns Str", and it should work | 18:13 | |
18:14
poohman2 left
|
|||
moritz | sub GetComputerName(uint16) returns Str is encoded('utf8') is native('yourlibrary'); | 18:15 | |
something like that | |||
poohman_ | hmmm ok will try it tomorrow in my windows machine - but why do you expect it to dereference it considerings its an opaquepointer - because its a String?? | 18:16 | |
moritz | well, if it's a char*, you can just declare it as Str, no need to treat it like an opaque pointer | 18:17 | |
geekosaur | isn't it utf16? | 18:18 | |
jnthn | Hm, but BOOL is the return type, and LPTSTR is a pointer to a string | ||
And a string is already a pointer | |||
moritz | oh | ||
so it's Str $out is rw? | |||
jnthn | If that works, then yes :) | ||
And also the second parameter would be Int $foo is rw | |||
Otherwise there's the good old CArray of length 1 trick :-) | |||
Uh, not Int, but int32 | 18:19 | ||
Since it seems it takes the buffer length and then updates it with how much stuff is in the buffer after | |||
poohman_ | its LPTSTR it says in the documentation | ||
jnthn | Yeah, I think that means "long pointer to string" or some such :) | 18:20 | |
geekosaur | I was thinking that means you need a preallocated Buf? | ||
jnthn | Right :-) | ||
And then to decode it yourself | |||
I'm rusty on Win32 API but my guess is there's a GetComputerNameW that returns wide (utf-16) | 18:21 | ||
And GetComputerName would return...something but not likely utf-8 on Windows. :) | 18:22 | ||
poohman_ | if tis utf-8 then can get it directly as Str but not if utf-16 - have I understood that correctly? | 18:23 | |
geekosaur | windows doesn't do utf8, at least not in its APIs | 18:24 | |
poohman_ | ok | ||
18:24
mscha joined
|
|||
geekosaur | normally the answer would be "code page" but Windows is usually pretty good about making that specifically an I/O device attribute | 18:25 | |
mscha | It would be nice if the Windows version of Rakudo Star 2017.04 would work if you're not called “Steve”. 😋 | ||
18:25
nhywyll joined
|
|||
mscha | perl6.bat: @ "C:\Users\steve\temp\rakudo-star-2017.04\install\bin\moar" ... | 18:25 | |
geekosaur | loooovely | 18:28 | |
"NetBIOS names consist of up to 15 bytes of OEM characters including letters, digits, hyphens, and periods. Some characters are specific to the character set. NetBIOS names are typically represented in the OEM character set. The OEM character set depends on the locale. Some OEM character sets represent certain characters as two bytes. NetBIOS names, by convention, are represented in uppercase where the translation algorithm from lowercase to uppe | |||
rcase is OEM character set dependent." | |||
18:28
leah2 left,
leah2 joined
|
|||
geekosaur | so, basically undefined as to what it represents | 18:29 | |
lizmat starts on the P6W | |||
geekosaur | MSDN suggests GetComputerNameEx which handles Unicode, DNS, and other aspects of modern reality | ||
lizmat | so let me know if you think I missed something in the past week | ||
geekosaur | msdn.microsoft.com/en-us/library/w...s.85).aspx | ||
("Computer Names" which documents legacy interfaces such as the NetBIOS stuff) | 18:30 | ||
poohman_ | was just going through a win32 api and was trying to get things working in perl6 - will have to try the GetComputerNameEx and see how it goes | 18:31 | |
18:31
z joined,
z left
|
|||
poohman_ | win32 api tutorial I meant | 18:31 | |
will try tomorrow and ask for help again if I get stuck | 18:32 | ||
thanks for the help | |||
goodnight people | 18:33 | ||
18:37
poohman_ left
18:42
ggoebel joined
18:45
avalenn joined
18:46
ufobat joined
18:48
zakharyas joined,
darutoko left
18:49
nhywyll left
18:51
eliasr left
18:52
labster joined
18:53
nhywyll joined
18:55
alimon left
19:01
domidumont left
|
|||
Geth | doc: 80165120fe | (Zoffix Znet)++ | doc/Type/Signature.pod6 Point out difference in where clause... ...between block and non-block versions. RT#131239: rt.perl.org/Ticket/Display.html?id=131239 |
19:02 | |
synopsebot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=131239 | ||
19:05
j joined
19:06
j is now known as Guest27167,
Guest27167 is now known as j2,
j2 is now known as j3,
j3 is now known as jkh,
jkh is now known as jaush
|
|||
jaush | hi. i just installed rakudo star 2017.04, and there seems to be a problem: perl6.bat starts as follows: | 19:07 | |
@ "C:\Users\steve\temp\rakudo-star-2017.04\install\bin\moar" | |||
19:09
ChoHag left
|
|||
[Coke] | (I am surprised, as I thought everything was installing into C:\rakudo still) | 19:09 | |
TimToady | I assume your name is not steve :) | ||
jaush | it is not ;) | 19:10 | |
by contrast, for 2017.01 the perl6.bat begins: @ "C:\rakudo\bin\moar" | |||
TimToady | stmuk_: ^^^ | 19:11 | |
19:12
rub_ixCube joined
|
|||
rub_ixCube | hey, is it possible to use multiple queries in a when statement, i.e `when "x" "X" { say "x"; }`; | 19:13 | |
19:14
Zoffix joined
|
|||
Zoffix | rub_ixCube: \o :) Glad to see you made the right choice (saw your reddit post) :P | 19:14 | |
rub_ixCube | :) | 19:15 | |
Zoffix | rub_ixCube: yeah, you can use when "x" | "y" to mean (when x or y) | ||
huggable: Junction | |||
huggable | Zoffix, Logical superposition of values: docs.perl6.org/type/Junction | ||
[Coke] | oh. maybe steve pushed a test build, oops. | ||
Zoffix | rub_ixCube: a post on Junctions: perl6.party/post/Perl-6-Schrodinge...-Junctions | ||
rub_ixCube | thnx | ||
Zoffix | m: $_ = 'foo'; when { 'foo' or 'bar' } { say "hi!" } | ||
camelia | hi! | ||
Zoffix | rub_ixCube: or you can use a block (or sub). If it returns a truthy value, the when clause will run | 19:16 | |
19:18
alimon joined
|
|||
Zoffix | haxmeister: in `my @stack = dir($start);` there's nothing *to* flatten, as dir returns a flat Seq. | 19:18 | |
MasterDuke_ | m: $_ = 'abc'; when { 'foo' or 'bar' } { say "hi!" } | ||
camelia | hi! | ||
Zoffix | haxmeister: the functional difference between Lists and Arrays is Arrays are mutable, while Lists aren't. | 19:19 | |
MasterDuke_: ah, right, need an eq there :P | |||
19:20
yqt joined
|
|||
Zoffix | haxmeister: Arrays *are* Lists; they're a subclass. There's also Slip (also a subclass of List) which is like list but automatically flattens into outer iterables. Lastly, there's Seq. It's similar to a List but its point is that it doesn't keep around values it already produced and in many cases it actually failsover to be a List under the hood, caching values it generated. That's pretty much the 4 main Perl | 19:21 | |
6 list-like things. | |||
m: $_ = 'abc'; when { $_ ~~ 'foo' | 'bar' } { say "hi!" } | |||
camelia | ( no output ) | ||
Zoffix | m: $_ = 'abc'; when 'foo' | 'bar' { say "hi!" } # same | 19:22 | |
camelia | ( no output ) | ||
Zoffix | m: $_ = 'abc'; when -> $v { $v eq 'foo' or $v eq 'bar' } { say "hi!" } | ||
camelia | ( no output ) | ||
Zoffix | m: $_ = 'bar'; when -> $v { $v eq 'foo' or $v eq 'bar' } { say "hi!" } | ||
camelia | hi! | ||
rub_ixCube | i mostly chose Perl6 because Perl 5 is slowly dying. | ||
Zoffix | rub_ixCube: yup | ||
haxmeister | Zoffix: thank you | 19:23 | |
Zoffix | Recent survey showed only 16% of Perl 5 users started using it in the past 5 years. | ||
Survey: blog.builtinperl.com/post/perl-deve...s---part-1 | 19:24 | ||
19:24
Cabanossi left
|
|||
haxmeister | I almost went to perl5 because I have 2 books at home .. but I like the lispy feel of perl6 and the fancy editions to regex and other things.. | 19:25 | |
Zoffix: perl5 will decline but not disappear.. perl6 will only have slow gains as python reaches it's pinnacle | 19:26 | ||
19:26
ttkp6 joined
|
|||
haxmeister | IMO anyway | 19:26 | |
19:26
Cabanossi joined
|
|||
haxmeister | perl6 is still not implemented properly on gentoo/funtoo linux.. there is some issue with getting modules squared away with our package manager | 19:27 | |
Zoffix | haxmeister: sounds about right. | ||
haxmeister | I started to tinker with python just a few weeks ago.. I just can't squeeze how I think into a box that wooden.. lol | 19:29 | |
19:32
laouji left,
g0d355__ joined,
laouji joined,
ggoebel left
|
|||
samcv | Ambiguous call to 'infix:<cmp>'; these signatures all match: | 19:35 | |
:(Int:D \a, Rational:D \b) | |||
:(Str:D \a, Str:D \b --> Order:D) | |||
how do i fix this? | |||
argh | |||
the line that gives the error is: for %secs-per-unit.sort(*.value) | 19:36 | ||
Zoffix | m: <1.5> cmp <4> | ||
camelia | WARNINGS for <tmp>: Useless use of "cmp" in expression "<1.5> cmp <4>" in sink context (line 1) Ambiguous call to 'infix:<cmp>'; these signatures all match: :(Rational:D \a, Int:D \b) :(Str:D \a, Str:D \b --> Order:D) in block <unit> at <tmp>… |
||
Zoffix | oops | ||
samcv: for your script, I'm guessing %secs-per-unit.sort(*.value.Numeric) | 19:37 | ||
For Perl 6 | |||
Zoffix looks into it | |||
19:37
rub_ixCube left
|
|||
samcv | i will add that in and hopefully will at least unbreak my irc bot :X | 19:37 | |
19:38
sena_kun left
19:40
laouji left
|
|||
robertle | is it just me or are all HTTP related modules currently a bit underwhelming? | 19:40 | |
Zoffix | What you talking aboot! WWW is the most overwhelming module! | 19:41 | |
buggable: eco WWW | |||
buggable | Zoffix, WWW 'No-nonsense, simple HTTPS client with JSON decoder': github.com/zoffixznet/perl6-WWW 4 other matching results: modules.perl6.org/#q=WWW | ||
Zoffix | :) | ||
robertle: but yeah :) HTTP::UserAgent is most-working from my experience, but it still needs to implement some bits IIRC | 19:42 | ||
samcv still doesn't know the easiest one to use and just does qqx{curl -s '$var'} | 19:43 | ||
if there's one that is super simple would be nice to know | 19:44 | ||
Zoffix | samcv: one word: WWW | ||
HTTP::Tiny is a wrapper around curl FWIW | |||
samcv | thanks | ||
robertle | a http client that uses futures rather than blocking would be good | ||
samcv | that's three words though Zoffix :P | ||
robertle | and then the server side... | ||
Zoffix | robertle: why does it need futures? If you want it non-blocking, put `start` before it. | 19:45 | |
samcv | start returns a Promise so you can do whatever you wnat with that | 19:46 | |
robertle | does that not just block a different thread? | ||
Zoffix | use WWW; start { get 'perl6.org' }.then: { .say }; some-other-stuff-while-we-wait | ||
*.say even | |||
m: start { say "Simulating WWW request"; sleep 2; 42 }.then: *.result.say; say "meow meow meow"; sleep 3 | 19:48 | ||
camelia | Simulating WWW request meow meow meow 42 |
||
19:49
ggoebel joined
|
|||
robertle | seriously, does the "start" method not limit me to RAKUDO_MAX_THREADS concurrent requests? | 19:50 | |
if it doesn't I'm sold! | |||
19:51
Sound_ left
|
|||
b2gills | start doesn't create a thread it creates a Promise that will be done on a thread, at some point in the future. It does not create a thread. | 19:52 | |
jnthn | Yeah, but the thread comes from a pool, which you can exhaust. | 19:54 | |
Zoffix | But it'd just get cued up, right? | ||
jnthn | Yes | ||
I wrote an answer on this topic on SO recently that has quite a few details :) | 19:55 | ||
Zoffix | m: await ^32 .map: { start { sleep 2 } }; say now - INIT now | ||
camelia | 4.0061557 | ||
Zoffix | yup | ||
jnthn | m: use v6.d.PREVIEW; await ^32 .map: { start { await Promise.in(2) } }; say now - INIT now | ||
camelia | 2.0140311 | ||
jnthn | :) | ||
Zoffix | :D | ||
robertle | ..but it will only get queued for a short period of time, then activated, and then it will block on the socket for a long time. right? so essentially you are just blocking a thread when intertnally the IO is async anyway -- sounds weird | ||
so alternatively the HTTP client could just use async IO and return a promise right away, never blocking | 19:56 | ||
jnthn | That would be preferable, yes :) | ||
19:56
nhywyll left
|
|||
jnthn | Then you could have a hundred active requests and just a handful of threads. | 19:56 | |
robertle | turning this into blocking modde is far simpler and less intrusive than the other weay around | ||
19:57
Ven joined,
Ven is now known as Guest7768
|
|||
robertle | basically what I am wondering is whether it would not be better to do any such modules async-by-default? | 19:57 | |
jnthn | Well, with the caveat that such modules are a bit more challenging to develop, and it's up to the people making modules to decide how to do them. :-) | 19:58 | |
Zoffix | m: dd <42> eqv <1.5> | ||
camelia | Ambiguous call to 'infix:<eqv>'; these signatures all match: :(Numeric:D \a, Numeric:D \b) :(Str:D \a, Str:D \b) in block <unit> at <tmp> line 1 |
||
jnthn | Certainly when I wrote SSH::LibSSH I decided to just go directly to writing an async binding | ||
robertle | sure, i'm not criticising at all! just wondering whether there is something that I do not understand... | 19:59 | |
Zoffix | m: dd <42> === <1.5> | ||
camelia | Bool::False | ||
jnthn | I think it's simply that the async primitives have only fairly recently reached the point where they can be relied on. | ||
robertle | yeah, noticed that as well when playing around... | 20:00 | |
and profiler + async is still wonky? | |||
jnthn | profiler + anything with more than one thread | ||
Zoffix | So what does it mean that it'll block on a socket? One core will be busy until it downloads all the things? | ||
jnthn | Zoffix: The core won't be busy, the thread just won't be able to take on another task. | 20:01 | |
robertle | not busy, but the thread is blocked, and there are only so many of these... | ||
Zoffix | Ah OK. Thanks. | ||
Guest7768 | m: getc | 20:02 | |
camelia | read string requires an object with REPR MVMOSHandle (got Scalar with REPR P6opaque) in block <unit> at <tmp> line 1 |
||
jnthn | I recently got an IO::Socket::Async::SSL mostly together (a few things outstanding still), which will hopefully make more async networking stuff possible :) | ||
20:02
Guest7768 is now known as Ven`,
Ven` is now known as Ven``
|
|||
DrForr | I don't suppose Unicode filenames are allowed - I find myself in the position of being able to legitimately write a file called Dōbutsu.pm6 here. | 20:02 | |
MasterDuke_ | jnthn: timotimo was musing about how to get the profiler to support more than one thread, but i don't think he ended up with something definite | ||
Zoffix | buggable: eco ווו | 20:03 | |
buggable | Zoffix, ווו '666th module in the Perl 6 Ecosystem is properly Evil!': github.com/zoffixznet/perl6-666 | ||
MasterDuke_ | is it possible, just requires some grunt work? or tricky even to figure out if possible? | ||
Zoffix | DrForr: ^ At least that works | ||
jnthn | MasterDuke_: So far as I recall, I made the collection data structures per-thread, so collecting the data should be fine. What I didn't do was sort out stopping profiling across all threads and safely collecting all the data. | 20:04 | |
Zoffix | s: &getc, \() | ||
DrForr | Thanks, I'll give it a shot, I suppose. | ||
jnthn | MasterDuke_: So in theory it's not a huge amount of work | ||
MasterDuke_ | yeah, that's the part he was talking about | ||
jnthn | MasterDuke_: Though we then have the problem of presenting said results | ||
I've also been pondering a sampling profiler | 20:05 | ||
Which would provide less accurate, but also far less intrusive, measurement, and a lot less data | |||
Zoffix | Ven``: getc not implemented yet on ArgFiles; will be by end of the month as part of IO grant | ||
MasterDuke_ | he's been working on a text ui for profiler results, i don't know how "production-ready" he plans on taking it | ||
Ven`` | Zoffix: thank you :) | ||
MasterDuke_ | jnthn: is there any way of annotating the perl6 code such that perf could report on it as a stop-gap measure? | 20:06 | |
jnthn | I don't know perf or its workings well enough to know, sorr. | ||
*sorry | |||
Ven`` | Zoffix: I had a question about your "will-close" module, why so many nqp::callerctx? | ||
20:07
Khisanth left
|
|||
timotimo | jnthn: how hard would it be to have a value for the gc status that would allow me to communicate to other TCs "stop what you're doing as soon as you can and tell me when you're stopped" that would also deal properly with blocked threads and such? | 20:07 | |
that's what i think i'd need to have the profiler spit out the data from other threads | |||
Zoffix | Ven``: 'cause it needs to go up from where the trait is evaluating it. I most of the code from some core trait | 20:08 | |
Ven``: why, is there a way to write that simpler? | |||
20:09
Cabanossi left
|
|||
Zoffix | s/I most/I stole most/; | 20:09 | |
.oO( someone stole my 'stole'! ) |
|||
Ven`` | Zoffix: I have no idea, it just looked really more complex than a "will leave {.close}" (and requires to know how many stackframes there are I guess) | ||
Zoffix | Ven``: looks pretty much as complex as `will leave {.close}` that ends up calling Variable.willdo, which is this: github.com/rakudo/rakudo/blob/nom/...ble.pm#L24 | 20:11 | |
20:11
cdg joined,
Cabanossi joined
|
|||
Ven`` | Zoffix: oh, of course, but that's core code – when such impl. details change, it'll be updated "by definition" – that's what I meant | 20:11 | |
jnthn | timotimo: Not sure, I thought about it the other day and first thing "oh it's easy" followed by "oh, it's not" :P | 20:12 | |
s/thing/thought/ | |||
Ven`` | m: my $s = 'one from the beginning'; say $s.substr(*-3) ~ $s.substr(3); | 20:13 | |
camelia | ing from the beginning | ||
Ven`` | m: my $s = 'one from the beginning'; say $s.substr(*-3) ~ $s.substr(0, *-3); | ||
camelia | ingone from the beginn | ||
20:17
Zoffix left
20:18
Ven`` left
|
|||
AlexDaniel | m: my $s = ‘one from the beginning’; say $s.comb.list.rotate(-3).join | 20:19 | |
camelia | ingone from the beginn | ||
20:20
Ven_ joined
|
|||
Ven_ | m: my @a = 1..10; say @a[(1..10).map(* + 3).map(* % 10)]; | 20:20 | |
camelia | (5 6 7 8 9 10 1 2 3 4) | ||
AlexDaniel | Seq can probably have a .rotate too | 20:21 | |
20:21
Khisanth joined
20:36
geekosaur left
|
|||
moritz | lol I blogged: perlgeek.de/blog-en/perl-6/2017-01...pdate.html | 20:36 | |
lizmat | moritz: congrats | 20:37 | |
and good to see more than one mainline publisher is now on the Perl 6 bandwagon :-) | |||
moritz | tl;dr: apress.com will publish my book | ||
20:38
geekosaur joined
|
|||
moritz | lizmat: thanks | 20:38 | |
jnthn | moritz: Cool! Congrats. :) | 20:40 | |
AlexDaniel | awesome cover, by the way | 20:41 | |
20:41
rindolf left
|
|||
AlexDaniel | “($upper - $lower )” :S | 20:43 | |
lizmat | www.apress.com/gp/book/9781484228982 | 20:44 | |
20:47
zakharyas left
|
|||
moritz | lizmat: oh, nice. I wasn't aware of that :-) | 20:47 | |
20:47
xfix left
20:49
xfix joined
|
|||
timotimo | moritz: \o/ | 20:50 | |
20:52
xfix left
20:53
xfix joined
20:56
nadim_ left
20:59
alimon left
|
|||
haxmeister | moritz: can't purchase ebook yet? | 21:03 | |
21:04
ChoHag joined
21:07
skids left
|
|||
haxmeister | www.amazon.com/Perl-Fundamentals-E...1484228987 | 21:07 | |
moritz | haxmeister: no, it's still a work in progress | 21:08 | |
21:10
wamba left
21:13
geekosaur left
21:14
geekosaur joined
|
|||
stmuk_ | stmuk-- # I'll delete the 2017.04 MSI and release (probably in about 24 hrs time) | 21:14 | |
I must have missed a "make clean" | 21:15 | ||
21:18
pmurias left,
Ven_ left
21:20
pmurias joined
|
|||
haxmeister | moritz: a perl6 noob like me could use a book like that :).. I may be your first customer | 21:21 | |
21:23
st_elmo left
21:24
Cabanossi left
21:26
Cabanossi joined
|
|||
Geth | perl6.org: 293c3528eb | (Steve Mynott)++ | source/downloads/index.html Curse of 2017.04 infects MSI. Document its deleted with a replacement to follow |
21:29 | |
21:34
setty1 left
21:47
mcmillhj left
21:56
dct joined
22:07
mscha left
22:22
kent\n left
22:23
Cabanossi left
22:24
kent\n joined
|
|||
grondilu | m: sub { push @_, pi }(my @a); say @a; | 22:24 | |
camelia | [] | ||
grondilu | m: sub (@x) { push @x, pi }(my @a); say @a; | ||
camelia | [3.14159265358979] | ||
grondilu | ^not sure this is normal | ||
m: sub (@_) { push @_, pi }(my @a); say @a; | |||
camelia | [3.14159265358979] | ||
grondilu | m: { push @_, pi }(my @a); say @a; | 22:25 | |
camelia | [] | ||
grondilu | m: { push @^_, pi }(my @a); say @a; | ||
camelia | [3.14159265358979] | ||
grondilu | if it's normal, it's subtle | ||
22:26
Cabanossi joined
22:28
mcmillhj joined
22:30
yqt left
22:32
skids joined,
dct left
22:35
mcmillhj left
|
|||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/05/01/...tarbright/ | 22:39 | |
22:47
mcmillhj joined
22:52
mcmillhj left
22:55
Cabanossi left
22:56
Cabanossi joined,
pmurias left
23:09
Woodi left
23:11
espadrine left
23:14
cdg left
23:15
Woodi joined
23:23
adu joined
23:27
ChoHag left
23:35
mcmillhj joined
23:41
mcmillhj left,
majensen joined
23:46
ufobat left
23:54
Cabanossi left
23:56
Cabanossi joined
|
|||
majensen | samcv: I am yr TPF grant manager | 23:56 | |
Pls have a look at it email, thx | 23:57 | ||
s( it )( yr) | 23:58 | ||
23:58
majensen left
|