»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
buggable New CPAN upload: AttrX-Mooish-v0.2.7.tar.gz by VRURG modules.perl6.org/dist/AttrX::Mooish:cpan:VRURG 02:32
perlawhirl hi perlers 04:30
anyone awake?
lookatme_q o/ perlawhirl 04:43
perlawhirl I didn't wanna raise a bug yet for what might be a misunderstanding on my part 04:46
gist.github.com/0racle/468e3272852...e11e51d090
for those backlogging ... (&f ∘= &g) does not act the same as (&f = &f ∘ &g) 04:48
not sure if a bug or not
lookatme_q Can not access gist here
:/ oh many spaces
perlawhirl m: my &f = *.elems ∘ *.words; say f 'this is a test' # WORKS OK
camelia 4
perlawhirl m: my &f = *.elems; &f = &f ∘ *.words; say f 'this is a test' # ALSO WORKS OK 04:49
camelia 4
perlawhirl m: my &f = *.elems; &f ∘= *.words; say f 'this is a test' # DOESN'T WORK RIGHT
camelia 1
lookatme_q m: my &f = { $_.elems } ∘ { $_.words }; say f 'this is a test' # WORKS OK 04:51
camelia 4
lookatme_q looks interesting 04:51
I am not using this ops yet
perlawhirl, The operator ∘= not found in documents 04:53
perlawhirl function composition 04:54
but you have hit upon something... work fine without using whatevercodes
lookatme_q yeah ∘ is in the documents, I see
perlawhirl m: my &f = {.elems}; &f ∘= {.words}; say f 'this is a test' # NOW IT WORKS 04:54
camelia 4
lookatme_q maybe it's about the whatevercode 04:54
lookatme_q m: my &f = *.elems; &f o= *.words; say f 'this is a test' # DOESN'T WORK RIGHT 04:55
camelia 1
lookatme_q m: my &f = *.elems; &f o= { .words }; say f 'this is a test' 04:56
camelia 4
lookatme_q yeah, without the * works right, thought it is not documented
though
m: my &f = o *.elems; say f 'this is a test' 04:57
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
o used at line 1
04:58
lookatme_q m: my &f = [o] *.elems; say f 'this is a test'
camelia 1
perlawhirl that last one is just elems, I think you mean `my &f = [∘] *.elems, *.words` which works fine, btw 04:59
lookatme_q oh, I see, just a test 05:00
perlawhirl it's only pairing the function composition assigment expression (∘=) with WhateverCode that seems to be the issue
still curious if it's a bug. I will update my gist
lookatme_q & 05:06
&&&
Geth doc: kjpye++ created pull request #2274:
Update control.pod6
05:08
ZzZombo WTF, stupid Github. I wanna see the whole file at this revision, not just this tiny snippet from the diff! 06:03
AlexDaniel ZzZombo: just click “View” ? 06:13
ZzZombo AlexDaniel: great, now I have to manually scroll down to the edited part in this tiiiiny file. 06:40
buggable New CPAN upload: Trait-Env-0.1.1.tar.gz by SCIMON modules.perl6.org/dist/Trait::Env:cpan:SCIMON 06:52
masak ZzZombo: rumor has it there's a way to edit files outside of Github. the secret, passed down by word-of-mouth through the generations, is somewhat of a legend in IT circles. 07:15
ZzZombo Yeah, tell me more. What are you saying is that somehow if I ever need to review a change done by somebody ELSE, I can just clone the repo, _quickly_ jump to the changed file locally and review the change, as opposed to simply opening the file in question via the web interface and doing it here? 07:18
masak ZzZombo: :) it's a chore when neither of two alternatives is perfect in every way. tradeoffs everywhere. 07:47
it's not that long ago that you couldn't do the Github editing at all. 07:52
scimon Firstly it would appear that if you want to use a live Supply created by a Supplier then in the whenever you need to use whenever $supply.Supply -> $v {} not just whenever $supply -> $v {} which is what I'd expect. 08:00
scimon Wait... a sec.... 08:01
scimon Ah. I think it's a binding / assignment thing. If I do my $supplier = Supplier.new(); my $supply := $supplier.Supply; I don't need the .Supply in the whenever. 08:02
masak as opposed to what? 08:03
scimon $supplier = Supplier.new(); my $supply = $supplier.Supply;
Geth doc: fc3e873ac5 | kjpye++ (committed using GitHub Web editor) | doc/Language/control.pod6
Update control.pod6
08:04
doc: e0443c7103 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/control.pod6
Changes to using the same variable in the two places

Also standardizes output.
synopsebot_ Link: doc.perl6.org/language/control
doc: 7a79c63d73 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/control.pod6
Merge pull request #2274 from kjpye/patch-1

Thanks a lot all! I think it's better now.
scimon If I then do react { whenever $supply -> $v { "Say $v" } } I would expect that to react to an emit on the supplier. 08:04
Geth doc/revert-2274-patch-1: 9aa80330ec | ZzZombo++ (committed using GitHub Web editor) | doc/Language/control.pod6
Revert "Update control.pod6"
doc: ZzZombo++ created pull request #2275:
Revert "Update control.pod6"
masak m: my $supplier = Supplier.new; my $supply = $supplier.Supply; react { whenever $supply -> $v {} } 08:05
scimon: the above worksforme (but times out)
camelia (timeout) 08:05
masak scimon: not sure I see the problem with assignment (instead of binding) 08:06
Geth doc: ed1df4c1e1 | ZzZombo++ (committed using GitHub Web editor) | doc/Language/control.pod6
Revert "Update control.pod6" (#2275)
08:07
synopsebot_ Link: doc.perl6.org/language/control
scimon I'll keep investigating. 08:08
Geth doc/revert-2275-revert-2274-patch-1: e9cac0dad9 | ZzZombo++ (committed using GitHub Web editor) | doc/Language/control.pod6
Revert "Revert "Update control.pod6" (#2275)"

This reverts commit ed1df4c1e1c0a09d495f81750ae40ab56535d163.
08:13
doc: ZzZombo++ created pull request #2276:
Revert "Revert "Update control.pod6""
08:15
doc: 2b9cbcf965 | ZzZombo++ (committed using GitHub Web editor) | doc/Language/control.pod6
Revert "Revert "Update control.pod6" (#2275)" (#2276)

This reverts commit ed1df4c1e1c0a09d495f81750ae40ab56535d163.
synopsebot_ Link: doc.perl6.org/language/control
jmerelo releasable6: status 08:32
releasable6 jmerelo, Next release will happen when it's ready. 3 blockers. 446 out of 478 commits logged (⚠ 1 warnings)
jmerelo, Details: gist.github.com/6bee8688802f65fbe9...e7e0e69060
Geth doc: 0d62665359 | (JJ Merelo)++ | doc/Language/control.pod6
Reflow and correcting some hashrefs
08:51
synopsebot_ Link: doc.perl6.org/language/control
lizmat sight seeing& 09:07
pmurias what are your most favourite in browser repls? I'm thinking about options to use for rakudo.js 09:16
El_Che_ morning 09:27
jmerelo Hi! 09:28
scimon lizmat: Are you still in Scotland?
pmurias any Perl6ers planning to attend the London Perl Workshop? 09:54
ilmari pmurias: I expect scimon will be there 10:03
he mentioned something about a talk in the pub last night
ZzZombo pmurias: repl.it. 10:20
Ulti pmurias: are cloud 9 workspaces a thing thats open and easily created? 11:01
jmerelo Ulti: last time I checked, I think they needed a credit card. 11:06
So really I don't know.
Ulti its free for public workspaces and one private one 11:09
I haven't put in a credit card, but yeah that doesnt make it "open" 11:13
but yeah I guess they are perhaps more VM rather than browser based
pmurias Ulti: I haven't used a cloud 9 workspace 11:41
Ulti: the cloud 9 ide doesn't seem to be open source 11:43
Geth doc: 96876cf9a8 | (JJ Merelo)++ | doc/Type/Str.pod6
I haven't found any effect of locale whatsoever

Either tested in roast, or in rakudo, or in the synopsis or in NQP. If it exists, it's not specced. This closes #2278, unless @tbrowder wants to clarify what he meant with the comment.
I have simply eliminated the TODO and added some explanation for the skip-test.
11:45
synopsebot_ Link: doc.perl6.org/type/Str
masak pmurias: where can I read about the status of rakudo.js? 13:20
scimon pmurias: I punted the organisers a comment saying I'd be up for running a Perl6 workshop. Or do a talk. 13:57
Not got a clue what on yet.
timotimo nine: have you consedered inline.perl6 yet? i.e. Inline::Perl6 but for python? 14:10
pmurias masak: I'll write a status update when I get Perl 6 (not just NQP) to run in the browser, should be super soon 14:20
jast is "super soon" the new "real soon now"? :-) 14:21
seriously, though, it's great to see these cool things actually happen
timotimo no, it's more like "soon, it should be super"
jast super what, though? 14:22
timotimo just super 14:23
"where's my super blog!?" 14:24
pmurias jast: it's the "all the big pieces are there just needs a day or few for the annoying bits to hook it up, don't want to make exact promises" ;) 14:26
jast that's different, though, I'd take it to refer to a particularly bloggy blog
jast pmurias: yeah, I figured... just sillying up the IRC here, that's my mission :) 14:27
sarna o/ 14:28
pmurias \o
ufobat_ what is the "right" way to install perl6 on a mac? my wife has a macbook and i have no clue 17:27
ufobat_ i probably want to compile it, right? so where does i get a compiler? 17:29
Garland_g[m] Are you wanting the latest rakudo, or is rakudo-star fine? 17:30
Garland_g[m] The easiest install for mac is here: rakudo.org/files 17:31
ufobat_ usually i use rakudobrew 17:38
but i think not for the mac, native-call stuff works if i have the default gcc and this rakudo-star image?
ufobat_ there is no "zef" in rakudo-star from rakudo.org for mac 17:50
Garland_g[m] I think it should be in Rakudo/share/perl6/site/bin inside the dmg. 17:59
ufobat_ yeah right, i had a typo there, sorry 18:02
panicbit, since when are you here? :-)
panicbit ufobat_: a few days or so?
ufobat_: since th ecalamity started 18:03
Guest92962 oh ffs services 18:03
how the fuck am I supposed to identify to services in 30 seconds if services takes longer than 30 seconds to react? :'D
masak is unused to seeing people use crude language on here 18:05
masak pmurias: that's great news. I will stay, as they say, tuned! 18:05
panicbit2 masak: oh sorry
masak panicbit2: :) ah, no worries. just discordant, is all 18:06
we're more into hugging and autopuns
panicbit2 :P
masak on behalf of the services, I apologise for any inconvenience you may have suffered. 18:07
panicbit2 also, I found the answer to my question 18:08
you can pass a nick to identify
ufobat_ you might not remeber me but you was the one that helped me a lot in rust :)
panicbit2 I do remember you from #rust-de :)
services are really playing with my feelings right now tho "You are already logged in as panicbit." 18:09
masak ooh. panicbit2: maybe it's you I should interview about rust macros :D 18:10
panicbit2 masak: If you want to :3
masak s/interview/interrogate/
masak s/interrogate/intimidate/ 18:10
uhm.
some word startking with "in-" 18:11
panicbit2 inquery? 18:11
:P
panicbit inquiry* 18:13
ufobat_ has that anything to do with the Spanish Inquisition?
panicbit inquire was the word 18:14
I hope not
panicbit Is there any chance of being able to call into rakudo from other languages at some point? 18:15
masak thinks so
panicbit: Rust macros are hygienic, yes? something with symbols happens automatically? 18:16
panicbit masak: they are hygienic. I'm not sure what you mean with your second question
masak I mean the mechanism by which hygiene happens
masak .oO( hygiene doesn't happen on its own, you know! )
panicbit I'm not sure how the mechanism works internally 18:17
masak ah. too bad :/
panicbit however, not all macros are actually hygienic
masak that's good. :)
panicbit macro_rules or "Macros 1.0" are hygienic
masak oh!
timotimo the three hardest problems in computer science are hugging and autopuns 18:18
panicbit However, derive macros (and procedural macros in general) are not completely hygienic 18:18
masak thanks -- that gives me some threads to pull! 18:22
panicbit One prominent example of hygine is probably the fact that you can't simply use variables without passing their identifiers into the macro play.rust-lang.org/?gist=20f96a93f4...ition=2015 18:23
hygiene**
timotimo so a tiny bit like C++ lambdas that force you to mention everything you want to close over 18:25
panicbit yeah, I think so 18:26
note that this is not true for items. you can just use any module, function, const or static, without having to pass in paths or identifiers 18:27
panicbit And iirc, another part of hygiene is that a macro alwyas expands to either an expression or an item 18:29
timotimo is an item a bit like an atom?
panicbit you cannot do somthing weird like `); print("hacks"); foo(`
timotimo ah 18:30
panicbit timotimo: an atom? In Rust items are any decarations that can appear at the top level of a module
timotimo OK 18:31
panicbit that is functions, module declarations, functions, extern crate declarations etc
statics, consts...
timotimo in perl6 that can also be code statements, though
panicbit yeah, that is not the case in Rust
timotimo so i don't think there's something that corresponds to that
Voldenet rust macro rules are good, but at times overly verbose, compared to C macros 18:40
timotimo C macros aren't verbose? :) 18:42
you have to put so many parenthesises!
Voldenet Yes, but apart from that, you can do many funny things
Voldenet like generics :D 18:43
Voldenet in rust this makes little sense imo: play.rust-lang.org/?gist=b99946dc99...ition=2015 18:44
you can't use x, even if macro clearly should have x in scope
timotimo tbh i often use C macros when i have a crapload of places where some locals of the exact same name are in scope and have the same purpose and i don't want to repeat them over and over 18:45
Voldenet so, it removes part of verbosity
timotimo www.raylib.com/ - this could be a cool target for a perl6 binding 18:46
Voldenet macros in C make writing test libs or handling errors easier and less verbose
timotimo and can make debugging extremely tedious, and syntax highlighting b0rk 18:47
Voldenet Absolutely, apparently people dislike debugging convoluted mess of macros 18:48
timotimo my main problem is just that everything inside a macro becomes just a single line
and you can't step around inside it
in MoarVM we have macros that combine pushing and popping temporary roots, so it takes a block as "argument"
if you happen to have an idea for that ... :) 18:50
except maybe write our own C preprocessor
robertle ... in perl 6!
Voldenet That'd be actually cool
"You need perl6 to compile perl6"
timotimo there's already parts of the C code that we use perl6 to generate, but the results are checked into git since they also don't change often 18:51
Voldenet I agree that default C preprocessor might get better, but you can still annoy people 18:54
Something like this is better than the usual code ix.io/aRs 18:55
if I re-did that, I'd macro "return" as well 18:56
pmurias timotimo: re raylib binding seems like it should be possible to generate them from the cheatsheet: www.raylib.com/cheatsheet/cheatsheet.html
timotimo: passing structs by value might be problematic (I'm not a NativeCall expert) but that's nothing a wrapper can't fix 18:59
panicbit RE macro verbosity: Macros 2.0 will hopefully fix that ;P 19:03
masak is there a timeline for Macros 2.0? 19:13
or a plan, or a design document...?
panicbit: anyway, the play link you pasted above -- works the same in Perl 6. 19:14
panicbit masak: github.com/rust-lang/rust/issues/39412
masak: oh col
cool*
masak as Dylan says "the meaning of names is preserved" -- so `x` inside the macro is different from `x` outside it
ooh, a nice long github issue! ta <3 19:15
panicbit what annoys me a bit is that the RFC is basically only like "we'll have a new macro thingy" 19:16
it's a "placeholder RFC"
>.>
masak: The 2018 roadmap promises Macros 2.0 for this year 19:18
masak famous last words :) 19:25
panicbit I'm sceptical as always 19:31
But I'm happy that futures 0.3 finally has a compat layer for the 0.1 ecosystem 19:32
FINALLY.
masak :) 19:37
timotimo pmurias: yeah, call by struct *is* problematic :( 19:57
b2gills .tell uzl tio.run/##Tc5PC4JAEAXw@36KhyisIBIe...tZmFsWl6Aw 20:02
yoleaux b2gills: I'll pass your message to uzl.
b2gills The trick is to use parens `a ==> map( {…} ) ␤ ==> …` 20:04
m: 1..5 ==> say
camelia 5===SORRY!5===
Argument to "say" seems to be malformed
at <tmp>:1
------> 031..5 ==> say7⏏5<EOL>
Other potential difficulties:
Unsupported use of bare "say"; in Perl 6 please use .say if you meant to call it as a method on $_, …
b2gills m: 1..5 ==> say()
camelia 1..5
masak guten nacht, #perl6 20:06
timotimo gute nacht masak :) 20:10
Geth ecosystem: kawaii++ created pull request #406:
Add API::Discord to ecosystem
20:24
sena_kun 20:27
timotimo sena_kun: 20:32
lizmat waves from Newton Stewart, after having been to Oban 22:04
yoleaux 11:49Z <AlexDaniel> lizmat: can you fix S02-literals/quoting.t S03-operators/bag.t S03-operators/mix.t S03-operators/set.t ?
lizmat__ weekly: www.di.unipi.it/~nids/docs/linkedin...index.html 22:15
notable6 lizmat__, Noted!
lizmat .tell AlexDaniel S02-literals/quoting.t runs ok for me in either branch. I'm not sure if the other files should have their failing tests marked as todo or to check for changed semantics: marking as todo feels more correct to me 22:18
yoleaux lizmat: I'll pass your message to AlexDaniel.
AlexDaniel . 22:21
yoleaux 17:20Z <jnthn> AlexDaniel: I fixed #2235; verification welcome.
22:18Z <lizmat> AlexDaniel: S02-literals/quoting.t runs ok for me in either branch. I'm not sure if the other files should have their failing tests marked as todo or to check for changed semantics: marking as todo feels more correct to me
AlexDaniel lizmat: how do you run it? 22:28
lizmat make file.t 22:44
AlexDaniel Non-zero exit status: 1 22:46
Parse errors: No plan found in TAP output
lizmat AlexDaniel: which one? 22:48
AlexDaniel lizmat: t/spec/S02-literals/quoting.t 22:49
on 6.c-errata
lizmat with rakudo HEAD, right ? 22:50
AlexDaniel yes
lizmat works fine for me :-( 22:57
All tests successful.
Files=1, Tests=212, 3 wallclock secs ( 0.05 usr 0.01 sys + 4.92 cusr 0.63 csys = 5.61 CPU)
AlexDaniel lizmat: it's the todo() issue so I can fix that easily, no problem 22:59
but I'm still wondering how come the error does not appear on your side, hmm
Garland_g[m] Is there a way in NativeCall to store a Callable in a CStruct Pointer? I need to be able to store a Perl6 method inside a CStruct so that it can be called by C code later. 23:08
timotimo jnthn: ^ have you done this in one of the modules you've made recently-ish? 23:11
Garland_g[m] I did manage to create an ugly hack using a bit of C, but I'm not sure it will survive a GC run. gist.github.com/Garland-g/d50b46ec...478dc21ea7 23:15
jnthn timotimo: I don't think I've done that, no 23:15
I remember wanting it...
vrurg Is there a way to preserve attribute initialization from .new call when custom BUILD is defined? 23:28
TimToady use TWEAK instead? 23:29
yoleaux 18:12Z <tbrowder_> TimToady: any thoughts on treating pod formatted text downstream from rakudo’s treatment? i.e. rakudo treats the format chars as ordinary text and leaves treatment to the renderers.
vrurg Or put it other way around: is there a way to hook into object creation between BUILDALL and BUILD? 23:30
TimToady anything is possible if you try hard enough, but we can't promise not to break it if you make assumptions :) 23:31
vrurg TimToady: I'm replacing attribute containers with Proxy and wanna do it before they're initialized from constructor parameters 23:31
This I do understand. For that reason installing own BUILD or wrapping an existing one would do the trick to me. The problem is that I would have to initialze the attributes manually then. 23:32
But the target is to preserve as much of the original language functionality as possible.
Wrapping BUILDALL would be even better but this bug breaks everything: github.com/rakudo/rakudo/issues/2178 23:34