»ö« 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:16
travis-ci joined
|
|||
travis-ci | Doc build errored. Will "Coke" Coleda 'Don't emit {}'s around type name | 00:16 | |
travis-ci.org/perl6/doc/builds/246910657 github.com/perl6/doc/compare/01a7c...c07f1575dc | |||
00:16
travis-ci left
00:24
travis-ci joined
|
|||
travis-ci | Doc build errored. Will "Coke" Coleda 'test examples, part of #1387' | 00:24 | |
travis-ci.org/perl6/doc/builds/246912082 github.com/perl6/doc/compare/fcc07...53fea13055 | |||
00:24
travis-ci left
00:29
travis-ci joined
|
|||
travis-ci | Doc build passed. Will "Coke" Coleda 'test examples, part of #1387' | 00:29 | |
travis-ci.org/perl6/doc/builds/246913089 github.com/perl6/doc/compare/ec53f...c904656500 | |||
00:29
travis-ci left
00:42
ChoHag joined
00:47
lookatme joined
|
|||
lookatme | morning | 00:48 | |
00:48
zapwai joined
|
|||
[Coke] | hio | 00:57 | |
samcv | hey [Coke] | 01:00 | |
i need to go from: my $a = (1,2,3), (5,6,6); my $b = (1,0); to: (1,2,3,1), (5,6,6,0) | 01:01 | ||
so each element of $a had each element of $b added to it | 01:02 | ||
m: my $a = $[[11673, 32, 2], [11697, 32, 2]]; my $b = $[0, 0]; say $a Z $b | |||
camelia | (([[11673 32 2] [11697 32 2]] [0 0])) | ||
samcv | this at least didn't work | ||
is there a builtin that can do this for me? | 01:03 | ||
MasterDuke | m: my @a = (11673, 32, 2), (11697, 32, 2); my @b = (0, 0); say (@a Z @b).map(*.flat) | 01:07 | |
camelia | (((11673 32 2) 0) ((11697 32 2) 0)) | ||
01:23
AlexDaniel left
|
|||
MasterDuke | m: my @a = (11673, 32, 1), (11697, 32, 2); my @b = (8,9); say @a.map({|$_, @b[$++]}) | 01:23 | |
camelia | ((11673 32 1 8) (11697 32 2 9)) | ||
samcv | cool. thanks | 01:30 | |
not bad | |||
01:36
bwisti left
|
|||
BenGoldberg | m: my $foo = "abc"; role Foo { has $.z = 42 }; $foo does Foo; use nqp; dd nqp::bindattr( $foo, Foo, '$!z', 42 ); | 01:44 | |
camelia | P6opaque: no such attribute '$!z' in type Foo when trying to bind a value in block <unit> at <tmp> line 1 |
||
BenGoldberg wonders what he's doing wrong. | |||
m: my $foo = "abc"; role Foo { has $.z = 42 }; $foo does Foo; use nqp; dd nqp::getattr( $foo, Foo, '$!z' ); | |||
camelia | P6opaque: no such attribute '$!z' in type Foo when trying to get a value in block <unit> at <tmp> line 1 |
||
01:45
ilbot3 left
|
|||
perigrin | m: my $foo = "abc"; role Foo { has $!z = 42 }; $foo does Foo; use npq; dd nqp::getattr( $foo, Foo, '$!z' ); | 01:46 | |
camelia | ===SORRY!=== Could not find npq at line 1 in: /home/camelia/.perl6 /home/camelia/rakudo-m-inst-1/share/perl6/site /home/camelia/rakudo-m-inst-1/share/perl6/vendor /home/camelia/rakudo-m-inst-1/share/perl6 CompUnit::Reposit… |
||
perigrin | m: my $foo = "abc"; role Foo { has $!z = 42 }; $foo does Foo; use nqp; dd nqp::getattr( $foo, Foo, '$!z' ); | ||
camelia | P6opaque: no such attribute '$!z' in type Foo when trying to get a value in block <unit> at <tmp> line 1 |
||
perigrin needs to mind his p's and q's | |||
BenGoldberg | Not Perlishly Q? | 01:47 | |
perigrin | Not Perigrin's Question | ||
01:48
ilbot3 joined,
ChanServ sets mode: +v ilbot3
|
|||
BenGoldberg | To have questions is human. To have only perfect questions would be divine. ;) | 01:50 | |
perigrin | divinity is more about having perfect answers I thought | 01:51 | |
well *being* perfect answers | |||
01:53
seatek left
|
|||
BenGoldberg | Man was created in god's image. Assuming we're talking brains, not bodies, then anything man does that's good, god must have done first. | 01:54 | |
I can't know what god's questions might be or have been, but one of them might have been "What happens if I were to say, Let there be light!" (or more generally, "What happens if I do *this*?") | 01:56 | ||
MasterDuke | the last question: "can entropy be reversed?" - multivax.com/last_question.html | 01:58 | |
[Coke] | -1 on the theology. | 02:02 | |
02:05
sufrostico joined
|
|||
BenGoldberg | Anyway, does anyone know why my nqp:: thingy above didn't work? | 02:09 | |
02:09
sufrostico left
|
|||
BenGoldberg | If I'm forced to, I'll fetch Attribute objects from the mop, but using getattr/bindattr would be so much faster for what I want. | 02:13 | |
02:15
mr-foobar left
|
|||
TEttinger | God does a pretty good interpretation of a random number generator | 02:15 | |
alternately, impression | |||
02:16
mr-foobar joined
|
|||
Geth | doc: 2c823b0e80 | (Will "Coke" Coleda)++ | 2 files test examples, part of #1387 |
02:19 | |
doc: 553bdad0aa | (Will "Coke" Coleda)++ | doc/Language/exceptions.pod6 Change "try blocks" heading to just "try" Add note about try with a statement. Closed #1284 |
|||
02:19
noganex_ joined
02:22
noganex left
02:25
Cabanossi left
02:28
Cabanossi joined
|
|||
[Coke] | \o/ I can finally install npm packages on this machine, which means I can build the docs again. | 02:28 | |
... except that somehow I still get the error about self signed certs when doc tries to install a package. :P | 02:34 | ||
02:40
pilne left
02:42
alpha joined
02:43
alpha is now known as Guest59871,
Guest59871 left
02:53
aindilis joined
|
|||
[Coke] | .tell samcv node-gyp is borked: github.com/nodejs/node-gyp/issues/...-310951976 | 02:53 | |
yoleaux | [Coke]: I'll pass your message to samcv. | ||
[Coke] | so I can run 'npm install ....' whatever, and it works with my cert situation. when it calls out to node-gyp, gyp is ignoring my cafile. | 02:55 | |
02:56
Cabanossi left
02:57
stmuk_ joined
02:58
Cabanossi joined
02:59
stmuk left
03:09
khw left,
travis-ci joined
|
|||
travis-ci | Doc build errored. Will "Coke" Coleda 'Change "try blocks" heading to just "try" | 03:09 | |
travis-ci.org/perl6/doc/builds/246937231 github.com/perl6/doc/compare/29c90...3bdad0aa51 | |||
03:09
travis-ci left
03:10
Cabanossi left
03:11
Cabanossi joined
03:14
mr-foobar left
03:21
khw joined
03:25
mr-foobar joined
03:27
wamba joined
03:38
Actualeyes left
04:14
mr-foobar left
04:16
mr-foobar joined
04:22
geekosaur left
04:24
geekosaur joined,
Actualeyes joined
04:32
khw left
04:41
Cabanossi left
04:42
Cabanossi joined
04:45
mr-foobar left
04:47
mr-foobar joined
04:49
curan joined
|
|||
samcv | eek [Coke] | 05:00 | |
so. this messes up the highlighter i'm guessing? | |||
05:10
Cabanossi left
05:11
skids left,
Cabanossi joined
05:21
lowbro joined,
lowbro left,
lowbro joined
05:23
lookatme left
05:41
Cabanossi left,
Cabanossi joined
05:51
xtreak joined
05:53
robertle left
06:13
wamba left
06:17
xtreak left
06:23
domidumont joined
06:27
xtreak joined,
domidumont left
06:29
domidumont joined,
mr-foobar left
06:30
BenGoldberg left,
mr-foobar joined,
xtreak left
06:39
Cabanossi left
06:41
Cabanossi joined
06:44
zapwai left
06:55
eliv joined
07:00
mr-foobar left
07:03
mr-foobar joined
07:04
wamba joined
07:09
Cabanossi left
07:10
ufobat joined
07:11
Cabanossi joined
07:16
zakharyas joined
07:28
espadrine joined
07:32
Actualeyes left
07:33
domidumont left
07:35
abraxxa joined
07:40
konsolebox left
07:41
konsolebox joined
|
|||
moritz | PSA: I'm currently updating the IRC log server (jessie -> stretch). Loss of availabilty or logging is possible. | 07:42 | |
07:43
rindolf joined
|
|||
tyil | lizmat (or anyone else dealing with the amsterdam p6 conf): unlimited is spelled wrong on the site | 07:43 | |
07:44
wamba left
07:48
KDr2__ joined
07:51
dogbert2 joined
07:52
konsolebox left
07:53
andrzejku joined,
dogbert17 left
07:57
ilbot3 left,
konsolebox joined
08:02
ilbot3 joined,
ChanServ sets mode: +v ilbot3
08:03
dakkar joined,
parv joined
08:04
jonas1 joined,
firstdayonthejob left
|
|||
andrzejku | hi people :) | 08:05 | |
parv | hola | ||
andrzejku | are here C++ developers? | 08:07 | |
08:09
Cabanossi left
|
|||
parv | don't look at me | 08:10 | |
08:10
andrzejku left
08:12
Cabanossi joined
08:16
andrzejku joined
08:18
domidumont joined
08:19
|oLa| joined
08:30
mr-fooba_ joined,
mr-foobar left
08:31
wamba joined
|
|||
zengargoyle skipped learning C++ back when C++ was just a pre-processor that turned 'C++' into plain 'C' code before comiling. | 08:37 | ||
08:42
konsolebox left
|
|||
parv | Whhattt? ;-O | 08:44 | |
08:47
mr-fooba_ left
08:50
TEttinger left
08:52
konsolebox joined,
mr-foobar joined
08:55
espadrine left
09:02
konsolebox left
09:04
rindolf left
09:09
Cabanossi left
09:12
Cabanossi joined
09:17
mr-foobar left
09:18
mr-foobar joined
|
|||
zengargoyle | the early C++ was something like a program called `cfont` IIRC. you wrote C++ of the era and ran cfont to generate C code which you then compiled normally. | 09:18 | |
this was back around the time when the NeXT came out and the other contender was Objective-C, which i thought was a better idea than just C + filtering magic. :) | 09:22 | ||
parv | how does C pre processor fit with cfont history? | 09:25 | |
xiaomiao | parv: independent | 09:26 | |
parv | hmm. ok. | ||
xiaomiao | CPP was a part of early C, cfront came a lot later | ||
09:32
lowbro left
09:40
Cabanossi left
09:42
Cabanossi joined
09:46
mr-foobar left,
eliv left
09:50
mr-foobar joined
09:57
parv left
|
|||
samcv | [Coke], so does this affect the highlighter? i'm not sure if highlights depends on node-gyp | 10:09 | |
10:10
donaldh joined
10:11
robertle joined
10:18
nattefrost joined
10:30
xtreak joined
10:31
astj left,
astj joined
10:34
astj left,
astj joined,
astj left,
astj joined
10:37
xtreak left
10:39
lowbro joined,
lowbro left,
lowbro joined
10:40
curan left
10:46
mr-foobar left
10:49
DeadDelta joined,
mr-foobar joined
10:55
ilbot3 left,
moritz left
11:02
Actualeyes joined
11:16
mr-foobar left
|
|||
DeadDelta | Jesus. A guy dug up my legal name from a TPF document from March and used it to list an article I wrote... As opposed to just using the name on the article, which appears like 3 times. | 11:17 | |
Maybe I'm in witness protection program. Go play Colombo elsewhere. ugh | 11:18 | ||
11:19
mr-foobar joined
11:23
mls_ is now known as mls
|
|||
lizmat | DeadDelta: fwiw, I try to use real names in P6W unless I know the authors are really against it | 11:25 | |
I know you are very much against it | |||
timotimo | quite | 11:27 | |
11:29
zakharyas left
11:30
KDr2__ left
|
|||
DeadDelta | The one time you used my "real" name on PW6 it wasn't even my real name. The only place it appears on is the TPF post and an old book I wrote. It'd take some effort to find it. For once, I wish people were lazier | 11:30 | |
DeadDelta doesn't understand why humans are so obsessed with identifying other humans. :/ | 11:31 | ||
Need to invent decentralized identities driven by blockchain :) | 11:32 | ||
jast | sounds like something the PGP web of trust could deal with | 11:35 | |
zengargoyle giggles... is on the p6 contributer list twice from an accidental git commit from $WORK machine. | 11:37 | ||
11:38
rindolf joined,
AlexDaniel joined
|
|||
timotimo | is that something keybase is trying to do? | 11:39 | |
zengargoyle | doesn't really care beyond $WORK email is no longer a thing. | ||
DeadDelta | dunno, but the first thing it does when I visit its site is try to have me install an app or register online without a shred of info on wtf it is :) | 11:41 | |
jast | I think keybase is a de-decentralized web of trust | 11:42 | |
DeadDelta | with "HEY. GET A JOB!" at the bottom lol | ||
Dunno how keybase would make it possible to commit to github | 11:43 | ||
Well. I mean that'd be one of my goals. To commit anonymously. | 11:44 | ||
jast | well, there *is* some kind of signature chaining to maybe validate all of the changes. but no, I don't think you're going to get any github-ness out of it... | ||
11:47
mr-foobar left
11:48
mr-foobar joined
|
|||
zengargoyle | it just takes to much work and tooling and is such a PITA to do. you could publish a ssh public key signed with a PGP that's trusted by whatever chain of authority. then that ssh key could be added based on the fact that there's a PGP signed version that is trusted. and you could submit TFP grant requests just by signing with that trusted PGP, but somebody somewhere still has to know where to send | 11:51 | |
the check. | 11:52 | ||
we sorta did this with eduroam and shibboleth for wireless access across .edu realms. sure, somebody somewhere could look up your 'username' but by and large the 3rd parties have no idea who you are. | 11:54 | ||
[Coke] | samcv: yes, 'make init-highlights' dies with the gyp error. I'm trying to see if I can find a solution. | ||
11:54
Cabanossi left
|
|||
samcv | ugh | 11:55 | |
thank you | |||
11:56
Cabanossi joined
|
|||
[Coke] | ... dammit. someone very kindly commented on the ticket about an env var, which I *swear* I used yesterday; re-tried it today, works fine. | 12:08 | |
12:17
mr-foobar left
12:18
mr-foobar joined
|
|||
[Coke] | perl6 htmlify.p6 --parallel=1 -> segv | 12:20 | |
2017.06-45-g86e7b2bd2 | |||
samcv: so, to be clear, the node-gyp stuff is resolved now, sorry for the scare. | 12:22 | ||
samcv | cool. you going to add that ENV to the makefile? | ||
[Coke] | no, it's for my config only | 12:23 | |
I only need it to interact with corporate certs. | |||
samcv | ah ok | ||
i think we should make the doc build not build highlights so it will actually finish | 12:24 | ||
well i tried to enable caching and it probably helped. but still it's not completing | |||
zengargoyle | so... i have this: say so Time::Spec::at::Grammar::At.parse( "1969-12-08"); --> True | 12:27 | |
12:28
jervo left
|
|||
zengargoyle | and this: say so Time::Spec::at::Grammar::At.parse( "1969-12-08", actions => Time::Spec::at::Actions::AtActions.new(:$now) ); --> *fails* Too many positionals passed; expected 1 argument but got 2 | 12:28 | |
but the test before is: $match = Time::Spec::at::Grammar::At.parse( "teatime", actions => Time::Spec::at::Actions::AtActions.new(:$now) ).made; --> *works fine* | 12:29 | ||
because actions doesn't have a 'date' method devined yet. :) | 12:31 | ||
12:31
nullcone left
|
|||
zengargoyle | somehow AtActions::date (missing) is getting passed on to the 'date' function??? | 12:32 | |
seems like matching a 'rule date {}' in a grammar when parsed with AtAction should only try to be finding AtAction::date and failing (or skipping since no defined action) but instead is hitting some other 'date' definition and croaking. | 12:35 | ||
12:35
zakharyas joined
|
|||
zengargoyle | if i put a 'method date ($/) {}' in AtActions, it doesn't croak. (it doesn't work yet, but it doesn't croak). | 12:37 | |
DeadDelta | zengargoyle: your Actions class is Any and is Mu, so it'd get all of their methods; though I don't recall having a "date" method in it | ||
m: say class {}.^methods(:all)».name.grep(/:i date/) | |||
camelia | () | ||
DeadDelta | Perhaps, it's inheriting from something else? | 12:38 | |
zengargoyle | gist.github.com/1c63e3e91d19920da5...69cbab2d9a | ||
DeadDelta: eell, no explicit inheritance. Grammar is just a bare grammar and AtActions is just a bare clase with no fancy inheritance. | 12:40 | ||
DeadDelta | zengargoyle: prove it | 12:41 | |
zengargoyle | class AtActions { | 12:42 | |
where am i inheriging a 'date' method that Grammar.parse would find? | |||
DeadDelta | Dunno, I haven't seen your code. | 12:43 | |
zengargoyle | the 'rule date {}' in grammar should try an AtAction::date and nothing else. | ||
DeadDelta | heh | 12:44 | |
12:48
mr-foobar left
12:49
mr-foobar joined
|
|||
zengargoyle | github.com:zengargoyle/p6-Time-Spec-at.git -- date-bork branch | 12:50 | |
12:50
sufrostico joined,
sufrosti1o joined
|
|||
DeadDelta | zengargoyle: you have an attribute called date: "has Date $.date is rw = Date.new( $!now );" | 12:50 | |
And without a defined method it's trying to call the default accessor | 12:51 | ||
zengargoyle | oh frak. | ||
DeadDelta | :) | ||
zengargoyle | and i even haven't used it yet. .... | ||
DeadDelta++ for me being stupid | |||
12:54
jonas1 left,
wamba left
13:00
wamba joined
13:04
ZofBot left,
ZofBot joined,
ChanServ sets mode: +v ZofBot
13:05
rba_ joined
13:11
xtreak joined
13:14
xtreak left,
xtreak joined
13:15
llfourn_ is now known as llfourn
13:18
mr-foobar left,
xtreak left
13:19
mr-foobar joined,
xtreak joined
13:21
mcmillhj joined
13:24
ctilmes joined
13:25
xtreak left
13:42
aborazmeh joined,
aborazmeh left,
aborazmeh joined
13:46
reino4477 joined
|
|||
reino4477 | hey, can I use an alias when I'm "use LongModuleName "? | 13:46 | |
13:47
melezhik joined
|
|||
reino4477 | something like "use LongModuleName as name1"? | 13:47 | |
jnthn | The typical way is just to constant name1 = LongModuleName; | ||
13:48
wamba left
|
|||
melezhik | HI. How can I run parallel proccesses in Perl6 and handle the exit code of the processes launched ? | 13:48 | |
reino4477 | use LongModuleName; | ||
name1 = LongModuleName; | |||
like this? | 13:49 | ||
llfourn | melezhik: checkout Proc::Async | ||
melezhik | llfourn: thanks | 13:50 | |
DeadDelta | reino4477: constant name1 = LongModuleName | ||
huggable: Proc::Async | |||
huggable | DeadDelta, Running process (asynchronous interface): docs.perl6.org/type/Proc::Async | ||
reino4477 | DeadDelta: and what did I say? | ||
DeadDelta | buggable: eco Proc::Q | 13:51 | |
buggable | DeadDelta, Proc::Q 'Queue up and run a herd of Procs': github.com/zoffixznet/perl6-Proc-Q | ||
DeadDelta | reino4477: you didn't have `constant` | ||
reino4477 | ahhh | ||
13:51
reino4477 left
|
|||
DeadDelta | Another satisfied customer! | 13:52 | |
NEXT! | |||
melezhik | Also I need to create simple daemonized programm, any sugesstions? | 13:57 | |
13:58
mr-fooba_ joined
14:00
mr-foobar left
|
|||
DeadDelta | Unsure | 14:03 | |
buggable: eco UNIX::Daemonize | |||
14:04
Ven joined
|
|||
buggable | DeadDelta, UNIX::Daemonize 'configurable daemonizing tool written in Perl 6': github.com/hipek8/p6-UNIX-Daemonize | 14:04 | |
Ven | Hi | ||
DeadDelta | Maybe give that a spin? ^ | ||
14:04
Ven is now known as Ven``
|
|||
DeadDelta | Hi | 14:04 | |
14:04
andrzejku_ joined
|
|||
Ven`` | .ask moritz It seems perlgeek.de is down, just in case you didn't get a thousand reports about it before :) | 14:06 | |
yoleaux | Ven``: I'll pass your message to moritz. | ||
14:07
andrzejku left
|
|||
DeadDelta | Ven``: it's being upgraded to new debian | 14:07 | |
14:08
aborazmeh left
|
|||
zengargoyle | hrm, i'm thinking i need more class state in my Actions, too many things are mutations which can be hit multiple times during the parse. | 14:15 | |
it's no good when TOMORROW gets hit twice. :P | 14:18 | ||
[Coke] | [doc segv] updated to nom-HEAD avoided that segv. | 14:20 | |
zengargoyle | is there an easy way to tell which alternation in a rule was the one that matched? | ||
14:20
lucasb joined
|
|||
zengargoyle guesses something like $<this>=[...] | $<that>=[...] and looking for this/that... tomorrow's quest i guess. | 14:22 | ||
14:23
cono_ is now known as cono
|
|||
DeadDelta | zengargoyle: you could use proto regexes | 14:25 | |
docs.perl6.org/language/grammars#Protoregexes | 14:26 | ||
14:40
skids joined
14:41
Cabanossi left
14:42
sufrosti1o left,
Cabanossi joined,
sufrostico left,
sufrostico joined
14:43
khw joined
14:44
moritz joined
14:46
rba__ joined
14:49
rba_ left
14:50
abraxxa left
14:52
mr-fooba_ left
14:53
lowbro left
|
|||
melezhik | buggable: thanks for infromation | 14:53 | |
14:53
sufrostico left
14:54
nightfrog is now known as culb
14:55
sufrostico joined
|
|||
zengargoyle | DeadDelta: i'll read up on that. i *think* the examples i saw always used <sym> in the body to match the same string as the definition, i guess maybe the body of the regex doesn't have to be <sym>... | 14:56 | |
DeadDelta | zengargoyle: no, <sym> is just a convenience | ||
zengargoyle | i guess i'll go and read the many docs i have available and start a 'planC' branch :) | 14:57 | |
most of the doc pages on Grammar stuff mostly use <sym> in the examples... i guess it's the most common case. | 14:58 | ||
14:58
abraxxa joined,
mr-foobar joined
|
|||
zengargoyle | i haven't looks at the synpses in a while. | 14:58 | |
DeadDelta | That's just to show that you can use it | 14:59 | |
m: grammar { proto token TOP {*}; token TOP:sym<foo> { A }; token TOP:sym<bar> { B } }.parse: actions => class { method TOP:sym<foo> ($) { say "tis an A!" }; method TOP:sym<bar> ($) { say "tis a B!" } }, "A" | |||
camelia | tis an A! | ||
DeadDelta | m: grammar { proto token TOP {*}; token TOP:sym<foo> { A }; token TOP:sym<bar> { B } }.parse: actions => class { method TOP:sym<foo> ($) { say "tis an A!" }; method TOP:sym<bar> ($) { say "tis a B!" } }, "B" | ||
camelia | tis a B! | ||
DeadDelta | It doesn't care what you're matching inside | ||
14:59
tokomer joined
15:00
sufrostico left
|
|||
zengargoyle | yeah, cool. :) maybe git history of my attempt will provide amusement. | 15:00 | |
15:00
nattefrost left,
sufrostico joined
|
|||
zengargoyle | there's a bunch of re-doing things when starting from just copy-paste of lex and yacc specs still to be donw. | 15:00 | |
15:01
sufrostico left
|
|||
zengargoyle figures by the time it works i'll know something. | 15:02 | ||
15:03
sufrostico joined
|
|||
zengargoyle | i'll probably go back and branch from 'the grammar parses' and factor things down a bit. | 15:03 | |
15:03
rba_ joined
|
|||
melezhik | I need an example. Say I have a bunch of processes which are independed and which I run asynchronosuly , in parallel . so the main program is endless cycle to run such a processes while (True) { my $p = Proc::Async.new(...) }; so the question is where should I handle processes wait? | 15:04 | |
zengargoyle | luckily i have quite a few tests to keep working. | ||
15:05
rba__ left
|
|||
moritz | melezhik: do you even have to manually wait for processes? | 15:06 | |
yoleaux | 14:06Z <Ven``> moritz: It seems perlgeek.de is down, just in case you didn't get a thousand reports about it before :) | ||
moritz | I kinda expect rakudo to do it for you | ||
15:07
ilbot3 joined,
ChanServ sets mode: +v ilbot3,
moritz left
|
|||
llfourn | melezhik: I think you .start the Proc::Asyncs, which returns a promise and await them when you're ready | 15:07 | |
15:07
moritz joined
|
|||
DeadDelta | melezhik: are you restarting the processes or what? I'm not following where the while(True) bit comes in | 15:07 | |
melezhik | I mean the best sceantio is I don't anything extra. However I am reading this - docs.perl6.org/type/Proc::Async and it have an example with - my $promise = $proc.start; and then await $promise; | 15:08 | |
ugexe | $promise.then({ $next thing }) | 15:09 | |
melezhik | no I just to run the processes and somehow to know theirs exit code | ||
that is it | |||
DeadDelta | melezhik: have you looked at Proc::Q? | ||
llfourn | so just start them and await a list of their promises | ||
ugexe | so await Promises.allof(@promises) | ||
DeadDelta | Man, too many cooks. | ||
15:10
DeadDelta left
|
|||
llfourn | ugexe: is allof different to awaiting an array of promises? | 15:10 | |
melezhik | this one - github.com/zoffixznet/perl6-Proc-Q probably seems closer to what I need, will read it deeply, thanks | ||
moritz | Ven``: (re perlgeek.de downtime) turns out the kernel in Debian Stretch names the interfaces quite differently than the one in Debian Jessie | 15:11 | |
so all that fancy config for eth0 is for naught | |||
... when the thing is now called ens32 or so | 15:12 | ||
15:13
iH2O joined
|
|||
jnthn | llfourn: Yes, Promise.allof(...) is just for sequencing, if any of the Promises fail you won't see any errors from them just from await Promise.allof(...) | 15:13 | |
llfourn: While await @promises will give you the errors | |||
llfourn | jnthn: ah k thanks | 15:14 | |
melezhik | indeed I probably need job queue or scheduller implimentation for lot of tasks ... | 15:15 | |
iH2O | how can I check if this failed: my Str $f=slurp('myfile') | ||
llfourn | iH2O: if it fails slurp will return a Failure object | 15:17 | |
which will be false if used in Bool contextx | 15:18 | ||
and not defined? | |||
m: Failure.new.defined.say | 15:19 | ||
camelia | False | ||
timotimo | melezhik: what's wrong with the built-in ThreadPoolScheduler? | ||
llfourn | so with slurp("myfile") -> $content { ... } else { say "failed" } # should do it | ||
melezhik | nothing, I just have not known about it before ))) | ||
I will gladly use any proper module ... | 15:20 | ||
llfourn | timotimo: I think the task is to schedule processes not threads | ||
melezhik | yeah. it's processes | ||
timotimo | you can "start" little tasks that each spawn a process and wait for it to finish | ||
15:20
hythm joined
|
|||
melezhik | an external programms | 15:21 | |
timotimo | but not under 6.d.PREVIEW, where "await" will let the code immediately grab another of those tasks | ||
anyway, doesn't Proc::Q handle what you need? | |||
melezhik | Proc::Q looks like gives me an abstaction I want ... | 15:22 | |
but I need to try it ... | |||
iH2O | why does this always output 'failed', whether myfile exists or not: my $f=slurp('myfile'); if ! $! { note 'failed'} | ||
llfourn | iH2O: $! is only set when you use "try" | ||
iH2O | im new to perl6, and i've not read the exceptions par yes | 15:23 | |
yet | |||
*exceptions part yet | |||
moritz | if not defined $f { note "failed" } | ||
or just use $f as a string | |||
and if the slurp failed, the usage of the string will throw the exception | |||
15:25
domidumont left
|
|||
melezhik | get an error when try to `zef install Proc::Q` - No compiler available for Perl v6.d.PREVIEW | 15:28 | |
llfourn | melezhik: what's you perl6 -v | 15:31 | |
your* | |||
melezhik | implementing Perl 6.c. | ||
llfourn | This is Rakudo version 2017.06-13-g6b634a3 #<--- this bit | ||
melezhik | This is Rakudo version 2016.12-256-g62f7027 built on MoarVM version 2016.12-71-g331a6b4 | 15:32 | |
llfourn | that's quite old :) | 15:33 | |
melezhik | yeah, I see | ||
will try upgrade | |||
llfourn | that should do it. Not sure when v6.d.PREVIEW was introduced | 15:34 | |
15:35
DeadDelta joined
15:36
seatek joined
|
|||
DeadDelta | melezhik: oh, sorry, I totally forgot Proc::Q requires bleeding edge stuff, to avoid bugs. It needs 2017.06 or newer | 15:36 | |
15:37
wamba joined
|
|||
melezhik | ok | 15:37 | |
15:38
alimon left
|
|||
DeadDelta | iH2O: IO stuff uses the Failure mechanism, so in general you don't need to do any failure handling. For example, your slurp would auto-fail due to Str type constraint, and without it, it'd fail when you try to stuff with it or sink it. But if you really want to handle it, you could use the `//` or `orelse` operators: my $x = "foo".IO.slurp orelse "Failed because {.exception.message}"; or my Str $x = | 15:40 | |
"foo".IO.slurp // "default str" | |||
or // die "No slurps!" | |||
huggable: Failure | |||
huggable | DeadDelta, Delayed exception: docs.perl6.org/type/Failure | ||
iH2O | thank you, i can use more solutions | ||
DeadDelta | orelse "... ... ".say I meant | 15:42 | |
Otherwise it's just a sunk string :) | |||
melezhik | DeadDelta: successfully installed Proc::Q for This is Rakudo version 2017.06-74-g62d54c7 built on MoarVM version 2017.06-13-g7405dfa | 15:46 | |
thanks | |||
15:47
robertle_ joined
15:48
xtreak joined
15:49
araujo joined,
araujo left,
araujo joined
15:51
Khisanth joined
|
|||
DeadDelta | melezhik: OK, but for the record you're using a minimally-tested, random dev commit. For all you know, it could have a bug that deletes all your files. Using releases is much saner. | 15:51 | |
melezhik | sure, I see | 15:52 | |
I am just taking it for a spin | |||
DeadDelta | If you're building that with rakudobrew, just specify the latest release tag: `rakudobrew build moar 2017.06; rakudobrew switch moar-2017.06; rakudobrew build-zef` | ||
With latest release tag visible when you run rakudobrew list-available (it's at the bottom, last dated tag) | 15:53 | ||
15:54
zakharyas left
15:56
alimon joined
15:57
greppable6 left
|
|||
melezhik | switched to the stable version ( moar-2017.06 ) | 15:58 | |
DeadDelta | yey | ||
huggable: release | |||
huggable | DeadDelta, nothing found | ||
DeadDelta | huggable: release :is: Don't use random dev commits! Build a release. With rakudobrew, run `rakudobrew list-available` to get latest release (it's at the bottom, last date-like tag). Then run, e.g. `rakudobrew build moar 2017.06; rakudobrew switch moar-2017.06; rakudobrew build-zef;` | ||
huggable | DeadDelta, Added release as Don't use random dev commits! Build a release. With rakudobrew, run `rakudobrew list-available` to get latest release (it's at the bottom, last date-like tag). Then run, e.g. `rakudobrew build moar 2017.06; rakudobrew switch moar-2017.06; rakudobrew build-zef;` | ||
15:59
greppable6 joined,
ChanServ sets mode: +v greppable6
|
|||
DeadDelta | I'm abandoning my fight against rakudobrew. It's hopeless. Going to get people to use releases instead. | 15:59 | |
15:59
greppable6 left
|
|||
DeadDelta | And to learn to install binaries right | 15:59 | |
15:59
greppable6 joined,
ChanServ sets mode: +v greppable6
16:00
wamba left
|
|||
DeadDelta | huggable: rehash :is: When you built your Perl 6 with rakudobrew, you need to update the shims whenever you install stuff that includes binaries. Run `rakudobrew rehash` to do so. | 16:00 | |
huggable | DeadDelta, Added rehash as When you built your Perl 6 with rakudobrew, you need to update the shims whenever you install stuff that includes binaries. Run `rakudobrew rehash` to do so. | ||
16:01
wamba joined
16:02
xtreak left
16:07
setty1 joined,
troys joined
16:08
greppable6 left,
Cabanossi left
16:12
Cabanossi joined
16:24
rba_ left,
|oLa| left
16:26
zapwai joined,
cdg joined
16:27
donaldh left,
cdg_ joined
16:31
jap6h left,
cdg left
16:39
Cabanossi left
16:42
Cabanossi joined
16:44
nowan left
16:45
pmurias joined
16:46
nowan joined
16:47
greppable6 joined,
ChanServ sets mode: +v greppable6
16:57
abraxxa left
17:04
wamba left
17:06
|oLa| joined
17:11
domidumont joined,
dakkar left
17:12
nullcone joined
17:21
zacts joined
17:30
dha joined,
mr-foobar left
17:35
mr-foobar joined
17:49
wamba joined
17:50
Alikzus_ left
17:55
Cabanossi left
17:57
Cabanossi joined
17:58
pilne joined
17:59
troys is now known as troys_
18:00
mr-foobar left
18:05
avarab is now known as avar
18:07
rouking joined,
lucasb left
18:09
mr-foobar joined
|
|||
rouking | Hello guys | 18:09 | |
What's the correct way to disable key buffering in perl 6? Same as the old way? | |||
18:09
zapwai left
|
|||
DeadDelta | rouking: what's key buffereing? | 18:11 | |
Oh, like on terminal. | 18:12 | ||
Yeah, should be the same, since the buffering is on the terminal | |||
rouking | with $|, right? | 18:14 | |
18:14
troys_ is now known as troys
|
|||
DeadDelta | rouking: no, we currently (almost currently) don't do any buffering in Perl 6 | 18:15 | |
rouking: what are you trying to do? Have a user press a key in terminal and immediatelly read it? | |||
rouking | Yes | ||
DeadDelta | Yeah, just disable buffering in your terminal. | 18:16 | |
rouking | I'm calling .getc on $*STDIN | ||
or | |||
$*IN sorry | |||
perlpilot | rouking: FYI, $| is for *output* buffering, not input. | ||
rouking | Ahh | 18:17 | |
right, it has been a while | |||
DeadDelta | In Perl 5, not Perl 6. | ||
perlpilot | yeah, in P5 | ||
rouking: If you `perldoc -f getc` and translate the calls to system(), into P6, that should work the same :) | 18:18 | ||
rouking | What I'm doing rn is $*IN.getc | 18:19 | |
which works correctly but only once I hit enter | 18:20 | ||
perlpilot | rouking: right, but that needs to be surrounded by some terminal twiddling | ||
rouking | yeah | ||
I'm wondering how to do the twiddling | |||
perlpilot | rouking: said twiddling is shown in `perldoc -f getc` for P5 | ||
rouking | oh okay | ||
thanks | 18:21 | ||
18:21
itaipu joined
|
|||
rouking | Hm. I wonder how I can query whether buffering is enabled or not? | 18:23 | |
So I can restore it before control returns to the caller | |||
DeadDelta | rouking: probably. `man stty` lists -a option that lists all current settings | 18:24 | |
buggable: eco stty | |||
buggable | DeadDelta, Nothing found | ||
DeadDelta | Really could use a module for this stuff :) | ||
geekosaur | better is -g because it returns something you can invoke stty on to restore it | ||
DeadDelta | Ah, cool | ||
skids | rosettacode.org/wiki/Keyboard_inpu...nse#Perl_6 rosettacode.org/wiki/Keyboard_inpu...ress_check Second one needs Perl entries. And if you figure out the restor-current-settings part, the first could use revision. | 18:25 | |
geekosaur | my $tty = qx{stty -g}; ... system "stty $tty"; | 18:26 | |
er, tat's run not system. | 18:27 | ||
my $tty = qx{stty -g}; ... run "stty $tty"; | |||
DeadDelta | run "stty", $tty | 18:28 | |
(or `shell`) | |||
rouking: this works for me: my $save = my $tty = qx{stty -g}; run «stty -icanon eol "\001"»; while ($_ := $*IN.getc) !=== Nil { .say }; run "stty", $save; | |||
rouking | why run and not system? | ||
DeadDelta | Well, "works". CTRL+D seems to stop working | ||
rouking: because there's no such thing as `system` | 18:29 | ||
rouking | heh | ||
geekosaur | because 'system' was p5-thhink leaking out | ||
zengargoyle really wishes a Grammar would only fire actions *after* the whole match has been filalized. it seems a bit odd to have actions fire multiple times during a parse. | |||
rouking | oh did that change between 5/6 | ||
Righto | |||
skids | Note several perl6 shell-out constructs dont wait for the thing to finish before returning control flow, unless you ask. | ||
rouking | I may make a nice library for terminal fiddlign then | ||
DeadDelta | rouking: yes, now `run` is the multi-arg `system` and `shell` is the one-arg system | ||
geekosaur | p6 is trying to be less "thin wrapper over Unixy C APIs" | 18:30 | |
18:30
mr-foobar left
|
|||
rouking | rn I am just working on some general cli user-interfacing utilities | 18:30 | |
DeadDelta | zengargoyle: they fire right when the token finished parsing. It's be odd to haul the entire tree all the way to the end to run something :D | 18:31 | |
rouking | Considered naming it clitools, but the first four letters are a bit questionable :) | ||
DeadDelta | But you can: just stuff codeblocks into, say, @!queue, and run them all in method TOP { ... } :) | ||
rouking | went with UITools instead | ||
DeadDelta | .oO( cliweapons ) |
18:32 | |
.oO( clutils [CLI Utils] ) |
18:33 | ||
perlpilot | DeadDelta++ that one is nice. | ||
18:34
mr-foobar joined
|
|||
zengargoyle | i think my brain works the other way. :P it's a shame to build heavy objects that might get destroyed and rebuilt multiple times before it's all over. i'm guessing lots of class state and a final "do it all in TOP" or something. | 18:34 | |
perlpilot | zengargoyle: firing all of the actions at once at the end of a parse makes it harder to use the actions to exchange information that may affect the parse :) | 18:35 | |
DeadDelta | More importantly: harder to make them reusable/pluggable/extendible | 18:36 | |
18:36
devmikey joined
|
|||
DeadDelta | perl6-debugger just mixes its grammar into the main Perl 6 grammar. It doesn't have to know about "do it all in TOP" machinery to do its thing | 18:37 | |
AlexDaniel | and after all, you can traverse the parse tree anyway if you wish? | ||
DeadDelta | zengargoyle: also why is it creating heavy objects that might get destroyed in the first place? Don't let it successfully parse in such cases | 18:38 | |
zengargoyle | i think it's probably the ws thing and longest match that's getting me. too many of my actions can fire multiple times and are not idempotent.... | ||
DeadDelta | m: grammar { token TOP { "A" <?{ rand > ½ }> } }.parse: 'A', actions => class { method TOP ($) { say "parsed!" } } | 18:39 | |
camelia | parsed! | ||
DeadDelta | m: grammar { token TOP { "A" <?{ rand > ½ }> } }.parse: 'A', actions => class { method TOP ($) { say "parsed!" } } | ||
camelia | ( no output ) | ||
DeadDelta | Sprinkle in some dynamic vars and you can do things | ||
zengargoyle | my <date> has 14 variations.... | ||
DeadDelta | zengargoyle: token quote has a bagillion variations :) | 18:40 | |
perlpilot | zengargoyle: where is your grammar? | ||
DeadDelta | perlpilot: github.com/zengargoyle/p6-Time-Spec-at | ||
rouking | Aha, it is working now. Thanks everyone | ||
perlpilot | danke | 18:41 | |
iH2O | why does this fail, how can I pass an empty array: | ||
zengargoyle | perlpilot: yeah, there, not sure if i've pushed since adding some proto's in though.... | ||
iH2O | m: sub f(Int @i){}; f([]) | ||
camelia | Type check failed in binding to parameter '@i'; expected Positional[Int] but got Array ($[]) in sub f at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
DeadDelta | github.com/rakudo/rakudo/blob/nom/...3672-L3696 | ||
iH2O: because you asked for a parametarized array, and passing one that isn't | |||
m: sub f(Int @i){}; f(Array[Int].new) | |||
camelia | ( no output ) | ||
DeadDelta | m: sub f(@i where .all ~~ Int){}; f([]) | ||
camelia | ( no output ) | ||
iH2O | oh. good | 18:42 | |
DeadDelta | m: sub f(@i where .all ~~ Int){}; f([42]) | ||
camelia | ( no output ) | ||
DeadDelta | m: sub f(@i where .all ~~ Int){}; f([]) | ||
camelia | ( no output ) | ||
DeadDelta | m: sub f(@i where .all ~~ Int){}; f(["foo"]) | ||
camelia | Constraint type check failed in binding to parameter '@i'; expected anonymous constraint to be met but got Array ($["foo"]) in sub f at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
DeadDelta | Sorry for spam :) | 18:44 | |
zengargoyle | perlpilot: just pushed to branch 'planc' -- i'm totally going at this in a haphazard way. | ||
to some extent, playing is more fun than reading docs and thinking. :P | |||
DeadDelta | iH2O: I meant to say (before I got distracted): Int @a means an Array parameterized with Int. Whereas @a where .all ~~ Int means any Array that contains only Int objects | ||
zengargoyle: you could make your own compiler! Practice with that :) | 18:45 | ||
perlpilot | zengargoyle: yeah, as long as you don't confuse yourself playing :) | ||
Juerd | Hm, I would have expected you could do "@i of Int" there | 18:46 | |
zengargoyle | and i'm sorta purposly sorta going from the lex and yacc specs and tweaking along the way.... | ||
DeadDelta | Juerd: you can. | ||
zengargoyle: here Day 1 course. Good for grammar stuff: edumentab.github.io/rakudo-and-nqp-...ls-course/ | 18:47 | ||
Juerd | DeadDelta: Not on my box... | ||
perlpilot | m: sub foo(@a of Int) { } | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot resolve caller trait_mod:<of>(Parameter, Int); none of these signatures match: (Mu:U $target, Mu:U $type) (Routine:D $target, Mu:U $type) at <tmp>:1 |
||
DeadDelta | Ah | ||
zengargoyle | so there's still some crazy "that's how they defined the grammar" things that are less than optimal.... | ||
DeadDelta | m: my @i of Int; dd @i | ||
camelia | Array[Int] @i = Array[Int].new() | ||
DeadDelta | s: &trait_mod<of> | 18:48 | |
huh. there's a `is hidden-from-USAGE` trait :) | 18:49 | ||
AlexDaniel | m: sub foo(Int @a) { } # ? | ||
camelia | ( no output ) | ||
zengargoyle | DeadDelta: pretty sure i read that at some point in the past. nqp scares me. :) | 18:50 | |
Juerd | AlexDaniel: Valid but doesn't do what most people would probably want it to | ||
18:50
espadrine joined
|
|||
AlexDaniel | yup | 18:50 | |
perlpilot | zengargoyle: don't let it! That course should make it less so | ||
DeadDelta | Juerd: I would guess it's just an oversight. The variable case is handled by Mu:U, Mu:U candidate, I'm guessing and the parameter one is receiving Parameter:D | ||
zengargoyle | i once wrote the $*data part of the POD6 spec but couldn't figure out how to get it working in the SETTING or whatnot. | ||
Juerd | AlexDaniel: And the thing everyone's looking for doesn't have nice error messages :| | ||
DeadDelta | zengargoyle: funny, I like it more than normal Perl 6 now. It's so neat and structured. Set 2-spec indent in your editor and it's just so, pleasant-looking | 18:51 | |
zengargoyle | too much boxing/unboxing weird NQP things just trying to bind a hash to a $*global-thingy. | 18:52 | |
Juerd | For that matter, deparsing simple anonymous constraints would be nice. I wonder if simple deparsing exists yet. | ||
DeadDelta | Juerd: which thing that is about? | ||
Juerd | DeadDelta: where .all ~~ Int results in error messages referring to an anonymous constraint, as opposed to something awesome about integers. | ||
DeadDelta | Ah | ||
Juerd: well, there's Subset::Helper for that | 18:53 | ||
Juerd: the other side of that coin is error messages leaking sensitive info. Which I believe we now shrugged off and done anyone in some error message or warning | |||
18:54
TEttinger joined
|
|||
Juerd | DeadDelta: All error messages may leak sensitive info. | 18:54 | |
DeadDelta | Not all | ||
Juerd | DeadDelta: Many | ||
rouking | Hm | 18:55 | |
DeadDelta | Juerd: like what? | ||
Juerd | DeadDelta: For example, which methods exist | ||
DeadDelta | Juerd: that's not at all what I'm talking about | ||
rouking | Is there any way to restore stty options in the same format as they are given in stty -g? | ||
Juerd | DeadDelta: What were you referring to then? | ||
DeadDelta | m: my $credit-card where /\d+\-\d+/ = "444444444" | ||
camelia | Type check failed in assignment to $credit-card; expected <anon> but got Str ("444444444") in block <unit> at <tmp> line 1 |
||
DeadDelta | ^ having actual credit card number spammed in some world-accessible error log for example | ||
Juerd | DeadDelta: Well, looks like the sensitive data is already in the error message, while the useful data (the regex) is not :) | 18:56 | |
DeadDelta | rouking: my last code example had that. | ||
rouking: my $save = qx/stty -g/; ... do your stuff...; run "stty", $save | 18:57 | ||
rouking | Doesn't work for me | ||
Juerd | DeadDelta: I have ideas about tainting data and lazy interpolation as a means for solving multiple security issues, but I don't have a clear mind, or the time, to write a proposal :( | ||
DeadDelta | Weird. No idea then | ||
rouking | stty just says its an invalid argument | ||
DeadDelta | rouking: what does $save contain? And does it work if you give that string to stty manually? | 18:58 | |
zengargoyle | i think i need a way to explode a DateTime|Date objec into a hash or something so i can go back and forth and twiddle bits in some places and use DateTime|Date smarts in other places. | ||
DeadDelta | m: dd DateTime.now.Capture | ||
camelia | \(:day(26), :daycount(57930), :formatter(Callable), :hour(20), :minute(58), :month(6), :second(33.6400952339172e0), :timezone(7200), :year(2017)) | ||
DeadDelta | m: dd DateTime.now.Capture.Hash | ||
camelia | {:day(26), :daycount(57930), :formatter(Callable), :hour(20), :minute(58), :month(6), :second(37.600133895874e0), :timezone(7200), :year(2017)} | ||
18:58
wamba left
|
|||
zengargoyle | it's hard when '+ 1 week' might fire multiple times during a parse. | 18:59 | |
geekosaur | 'Invalid argument' might also mean the syscall is failing. I don't see that one much but if you are using Windows or Bash-on-Windows then you might see it | ||
19:00
setty1 left
|
|||
DeadDelta | zengargoyle: FWIW, we have .later method you could call | 19:01 | |
m: DateTime.now.later(:week).say | |||
camelia | 2017-07-03T21:01:28.676745+02:00 | ||
DeadDelta | m: DateTime.now.later(:42weeks).say | ||
camelia | 2018-04-16T21:01:34.446391+02:00 | ||
DeadDelta & | |||
19:03
ufobat left
19:04
devmikey left
|
|||
zengargoyle | and graar i have so not internalized creating lists or seq or items or pairs or hashes and turning them into names arguments to a funcion call. :/ | 19:05 | |
19:07
setty1 joined
|
|||
zengargoyle | i sorta miss func(@args) or func(%opt) at the moment. | 19:07 | |
19:07
espadrine left,
rba_ joined
19:08
espadrine joined
19:15
wamba joined,
rba__ joined
|
|||
DeadDelta | Read up on Capture | 19:15 | |
huggable: Capture | |||
huggable | DeadDelta, Argument list suitable for passing to a Signature: docs.perl6.org/type/Capture | ||
DeadDelta | Make some classes with their own Captures. Play around, then it should click | 19:16 | |
m: class Foo { method Capture(--> Capture()) { <a b c>, :42foo } }; sub ($ (@, :$foo)) { dd "Foo is $foo" }(Foo.new) | 19:17 | ||
camelia | "Foo is 42" | ||
19:17
rba_ left
|
|||
DeadDelta | I guess that's not really it. Never mind :) | 19:20 | |
I don't get why `my %h = :42a; -> :$a {}(|%h)` works when &prefix:<|> does x.Slip, but `my %h = :42a; -> :$a {}(%h.Slip)` doesn't | 19:22 | ||
What's doing the magic? | 19:23 | ||
19:23
domidumont left
|
|||
geekosaur | special case in the grammar, iirc | 19:23 | |
%h.Slip is just an expression (and an escape hatch for when you wanted to pass a bunch of Pairs without them being turned into named params) | 19:24 | ||
DeadDelta | Seems to be just passed as a slip | 19:25 | |
m: my %h = :42a, :42b; -> $a, $b { dd $a }(%h.Slip) | |||
camelia | Too few positionals passed; expected 2 arguments but got 1 in block <unit> at <tmp> line 1 |
||
DeadDelta | m: my %h = :42a, :42b; -> $a { dd $a }(%h.Slip) | ||
camelia | Slip $a = $(slip(:a(42), :b(42))) | ||
19:26
iH2O left
|
|||
jnthn | DeadDelta: | inside of an argument list is handled specially by the compiler, where it means "flatten these things into the argument list" | 19:34 | |
In that case prefix:<|> isn't even called | |||
In fact, it wasn't until the GLR that prefix:<|> outside of an arg list was given a meaning | 19:35 | ||
DeadDelta | Thanks. Yeah, I just spotted it: github.com/rakudo/rakudo/blob/nom/...6195-L6208 | ||
m: use nqp; my %h = :42a, :42b; %h does role { method FLATTENABLE_HASH { nqp::hash } }; -> :$meow { dd [ $meow ] }(|%h) | 19:36 | ||
camelia | [Mu] | ||
DeadDelta | Cool. You can cheat the "unexpected argument passed" thing :) | ||
m: use nqp; my %h = :42a, :42b; %h does role { method FLATTENABLE_HASH { my $h := nqp::hash; nqp::bindkey($h, "meow", 42); $h } }; -> :$meow { dd [ $meow ] }(|%h) | 19:37 | ||
camelia | [42] | ||
DeadDelta | \o/ I've beat the system | ||
Actually, I can do one better... | |||
jnthn wonders if he needs to point out that this is decidedly in "implementation detail" territory :) | 19:38 | ||
DeadDelta | nah :) | ||
m: use nqp; my %h = :42a, :42b; %h does role { method FLATTENABLE_HASH { nqp::hash }; method FLATTENABLE_LIST { my $l := nqp::list; nqp::push($l, $_) for self; $l } }; -> $a, $b { dd [ $a, $b ] }(|%h) | 19:40 | ||
camelia | [:a(42), :b(42)] | ||
DeadDelta | haha :D a hash that slips in as positional pairs instead of named args :D | ||
19:43
itaipu left
|
|||
moritz | what could possibly go wrong :-) | 19:43 | |
DeadDelta | :) | ||
[Coke] | (2-space indent) you monster. | 19:45 | |
lizmat starts on the P6W | 19:46 | ||
timotimo | i used 2-space indent for python code for a long long time | ||
19:47
cpage_ left
|
|||
moritz | .oO( long long time monster ) |
19:48 | |
19:53
Alikzus joined
19:54
sufrostico left,
sufrostico joined
20:01
rba__ left
20:02
mr-foobar left,
mr-foobar joined
20:11
troys is now known as troys_
20:13
rouking left,
cpage_ joined
|
|||
[Coke] | ... we need a t-shirt that has "size_t XL;" on it. | 20:13 | |
(e.g.) | 20:14 | ||
timotimo | shirt_t? | ||
20:16
bjz joined
20:27
bjz_ joined
|
|||
zengargoyle | heh... so i have 'my $x= $/<HYPHENDATE>.made; dd $x; make $x;' and 'my $x= $/<DOTTEDDATE>.made; dd $x; make $x;' -- both display "Hash $x = ${:day(1), :month(1), :year(2017)}" as expected.... | 20:27 | |
the first: " | 20:28 | ||
20:28
cpage_ left
|
|||
zengargoyle | the first: "ok 2 - hyphendate 2017-01-01", the second: "Invalid Date string '01.01.2017'; use yyyy-mm-dd instead" | 20:28 | |
20:29
bjz left,
cpage_ joined
|
|||
zengargoyle | both hit: 'make DateTime.new: |$/<timespec>.made;' | 20:30 | |
20:31
mr-foobar left
|
|||
DeadDelta | sounds like in second case it's making the string, not the hash | 20:33 | |
20:33
bjz_ left,
bjz joined
20:34
cpage_ left
|
|||
DeadDelta | And your assumption both display as Hash is incorrect. Something get crossed that by the time it gets to timespec it's not a hash | 20:34 | |
zengargoyle | HYPHENDATE and DOTTEDDATE both make: make { year => +$/<year>, month => +$/<month>, day => +$/<day> } | ||
20:34
mr-foobar joined
|
|||
DeadDelta | What's the link to code, again? | 20:34 | |
20:34
cpage_ joined
|
|||
DeadDelta | m: DateTime.new: %(:year) | 20:36 | |
camelia | Cannot resolve caller new(DateTime: Hash); none of these signatures match: (DateTime $: \y, \mo, \d, \h, \mi, \s, :$timezone = 0, :&formatter, *%_) (DateTime $: :$year!, :$month = 1, :$day = 1, :$hour = 0, :$minute = 0, :$second = 0, :$timezo… |
||
DeadDelta | There's no DateTime.new candidate that takes a Hash | ||
zengargoyle | github.com:zengargoyle/p6-Time-Spec-at.git -- branch 'pland' | ||
20:36
ufobat joined
|
|||
DeadDelta | I suspext in both cases it's still a string | 20:37 | |
timotimo | fun data point: without spesh, the profiler can work | 20:38 | |
DeadDelta | chatlogs are ded again | ||
and can't copy-paste off weechat on my phone boooo | |||
20:40
devmikey joined
|
|||
DeadDelta | ah you slipping the hash, never mind | 20:40 | |
zengargoyle | DeadDelta: np, i seriously just tried to make HYPENDATE and DOTTEDDATE do a make { hash of year/month/day } and then just pass that up as directly as possible. | 20:41 | |
20:41
vendethiel joined
|
|||
DeadDelta | And that still has the problem? | 20:42 | |
zengargoyle | and make a DateTime at the end. one works, the other doesn't and seems to be a string.... | ||
hyphen works, dotted dies and has failure about 'Invalid Date string '01.01.2017'; use yyyy-mm-dd instead' -- i have no clue where the string is coming from..... | 20:43 | ||
and the 'dd' of the thing that gets 'make' in <date> is identical.... | 20:45 | ||
DeadDelta | Nothing jumps out by reading the code. If you're still having this issue when I get home in ~20m, I'll clone and find it :) | ||
Oh, there's Grammar::Tracer you could use to see what it's doing | 20:46 | ||
buggable: Grammar::Debugger | |||
buggable: eco Grammar::Debugger | |||
buggable | DeadDelta, Grammar::Debugger 'Simple tracing and debugging support for Perl 6 grammars': github.com/jnthn/grammar-debugger | ||
20:46
Ven joined
|
|||
DeadDelta | ^included in that distro | 20:46 | |
zengargoyle | DeadDelta++ i'll leave it alone, close to my & time. | 20:47 | |
DeadDelta | k :) | ||
20:47
Ven is now known as Guest27801
|
|||
zengargoyle a dd/print debugger with a inotivy running tests at every write sort of person. :P | 20:47 | ||
but man try the debugger's if they're working again. | 20:48 | ||
20:50
devmikey left
|
|||
DeadDelta | perl6-debug-m works on like 20 commits past latest release. The grammar debuuger should work fine | 20:52 | |
timotimo | i believe that at least the grammar tracer can change how regexes match or not | 20:53 | |
20:56
Guest27801 is now known as Ven```
20:57
Ven``` left,
Ven_ joined,
bjz left
20:58
casdr joined,
bjz_ joined
21:03
wamba left
21:08
skids left
21:10
mcmillhj_ joined,
mcmillhj left,
dwarring joined
21:11
TEttinger left
21:16
Ven_ left,
mcmillhj_ left
21:17
mcmillhj joined,
andrzejku__ joined
|
|||
DeadDelta | hm, I'm guessing zef misteriouslyt stopping without error after "Filtering" stage is the proc issue | 21:18 | |
Same issue as that person who was having travis issues, except happened locally | 21:19 | ||
re-running zef install Test::META worked | |||
zengargoyle: you gonna hate yourself :D | |||
21:20
andrzejku_ left
|
|||
DeadDelta | .tell zengargoyle the issue isn't actually with your grammar/actions, but with the Date you're creating in the test. You need to use proper format on line 42: github.com/zengargoyle/p6-Time-Spe...tion.t#L42 | 21:20 | |
yoleaux | DeadDelta: I'll pass your message to zengargoyle. | ||
zengargoyle | if i re-order the tests they fail in different ways. | ||
yoleaux | 21:20Z <DeadDelta> zengargoyle: the issue isn't actually with your grammar/actions, but with the Date you're creating in the test. You need to use proper format on line 42: github.com/zengargoyle/p6-Time-Spe...tion.t#L42 | ||
DeadDelta | None fail for me after i fix the Date.new() in the test | 21:23 | |
DeadDelta depars to feat on a home-made T-bone steak | 21:24 | ||
zengargoyle | lol -- me hates myself. | ||
21:25
mcmillhj left
21:29
dha left,
setty1 left,
cpage_ left
21:32
mr-foobar left
21:34
mr-foobar joined
|
|||
zengargoyle | DeadDelta++ -- me crawls into bed at 14:31 and 36℃ | 21:34 | |
21:35
cpage_ joined
21:46
pmurias left
22:05
avalenn left
22:06
avalenn joined,
dogbert2 left
22:18
vendethiel- joined,
mcmillhj joined,
rindolf left,
vendethiel left
22:23
mcmillhj left
22:24
Cabanossi left
22:25
|oLa| left
22:26
|oLa| joined
22:27
Cabanossi joined
22:33
troys_ is now known as troys
22:34
mcmillhj joined
22:36
espadrine left
|
|||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/06/26/...way-there/ | 22:36 | |
22:37
dogbert2 joined
22:38
mcmillhj left
22:46
bjz joined
22:47
bjz_ left
|
|||
DeadDelta | lizmat++ good weekly | 22:47 | |
And wow, tons of blogs/videos by names I don't recognize.... Looks like P6 is growing | 22:48 | ||
timotimo | actually, not many of the videos seem to mention perl6 at all | 22:49 | |
lizmat | well, some of them mention Perl 6 a bit | ||
timotimo | clearly i must travel to the next conference and have a talk of my own | ||
DeadDelta | timotimo++ yes, you should | 22:50 | |
22:50
mcmillhj joined
|
|||
lizmat | youtu.be/VbObDEH-jKY?t=1460 # Perl 6 part of Error handling across languages | 22:51 | |
timotimo | ah, nice! | ||
22:52
robertle left,
robertle_ left
|
|||
DeadDelta | ouch... it mentions resume :} | 22:52 | |
I think that's gone now | |||
m: say X::AdHoc.can: "resume" | |||
camelia | (resume) | ||
22:52
|oLa| left
|
|||
DeadDelta | m: say X::AdHoc.can: "resumable" | 22:53 | |
camelia | () | ||
DeadDelta | mc: say X::AdHoc.can: "resumable" | ||
committable6 | DeadDelta, ¦2015.12: «(resumable)» | ||
DeadDelta | Ah, that's what's gone. | ||
I wish Failures got more spotlight, but, hey. That was pretty good \o/ | |||
timotimo | my opinion on Failure has flipped and flopped at least once in each direction | 22:54 | |
DeadDelta | What does that mean? | ||
timotimo | i started out thinking they were cool, then i started thinking they're horrible, then i thought they were cool again | ||
maybe i went back and forth another time? | |||
DeadDelta | Heh | 22:55 | |
I never thought they were "cool". I always though, "nice, I don't have to type freakin' `try` all over the damn place" | |||
22:55
mcmillhj left
|
|||
DeadDelta | I think people who winge about Failures expect them to be more magical than they really are. | 22:55 | |
22:56
kyan left
|
|||
DeadDelta | They're just exceptions you can handle with conditionals. No more. | 22:56 | |
timotimo | mhm | ||
DeadDelta | well, slightly more in that they don't explode right away; only when you touch them | ||
timotimo | is brock wilcox actually on the irc sometimes/rightnow? | ||
oh that's awwaiid | 22:57 | ||
DeadDelta | \o | 22:58 | |
22:58
DeadDelta left
|
|||
timotimo | aha, the thing i wanted to point out was just then answered in the video, too | 22:58 | |
22:58
kyan joined
|
|||
lizmat | good night, #perl6! | 22:59 | |
timotimo | awwaiid: in the slide on "operators as methods" you have to put an & in front of the infix, prefix, postfix words | 23:00 | |
but the .:<++> syntax was new to me. neat. | |||
also, here's an ugly internal error: | |||
m: say 10.&:<++> | |||
camelia | ===SORRY!=== This type (QAST::WVal) does not support positional operations |
||
timotimo | that was a fun little talk | 23:02 | |
i would have loved for it to be 10 minutes instead of 5 so there would have been a few more words on the later slides | |||
23:02
mr-foobar left
|
|||
timotimo | (i also tend to put too many slides into my presentations) | 23:02 | |
23:03
mr-foobar joined
23:06
mcmillhj joined
23:15
mcmillhj left
23:20
TEttinger joined
23:26
mcmillhj joined
23:28
cdg joined
23:31
cdg_ left
23:32
mcmillhj left,
cdg left,
mr-foobar left
23:36
awwaiid left,
mr-foobar joined
23:37
awwaiid joined
23:40
bjz left
23:42
awwaiid left,
skids joined
23:44
mcmillhj joined
23:48
awwaiid joined,
mcmillhj left
23:52
awwaiid left
23:53
awwaiid joined
23:54
Cabanossi left
23:57
Cabanossi joined
23:59
ufobat left
|