»ö« 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.
00:04 leont left
ugexe Because ‘use lib’ changes the repo chain 00:06
00:23 raycatwhodat joined
raycatwhodat Could someone give me a rundown on when you'd use flip-flops? 00:24
00:24 patrickz joined
TreyHarris raycatwhodat: They're usually used in line-by-line processing to switch into and out of states. Like, to capture a HERE-doc 00:25
raycatwhodat Interesting. 00:27
Thank you.
00:27 patrickb left
b2gills raycatwhodat: Really the flipflops are from Awk and Sed 00:27
TreyHarris The loop { } construct in Perl 6 arguably makes it even less useful than it was in Perl 5, which was already "not very" 00:28
The freeform loop encourages you to stick exit and skip conditions wherever needed
raycatwhodat Gotcha. 00:29
SmokeMachine Some one could please comment on this?! I can’t decide if it’s a great idea or if I’m just crazy... github.com/FCO/Red/issues/15#issue...-476018889 00:42
yoleaux 24 Mar 2019 16:23Z <tbrowder> SmokeMachine: working PR has been pushed
00:44 MidCheck joined
SmokeMachine tbrowder: great! 00:45
00:47 netrino_ left 00:49 aborazmeh joined, aborazmeh left, aborazmeh joined 00:50 leont joined
AlexDaniel greppable6: fff 00:51
greppable6 AlexDaniel, 1026 lines, 110 modules: gist.github.com/5f2e4a5f5822649f1a...47d13382cc
AlexDaniel greppable6: \sfff\s
greppable6 AlexDaniel, 9 lines, 5 modules: gist.github.com/48430ffc160a1740e0...8197dc51bd
AlexDaniel greppable6: \sff\s 00:52
greppable6 AlexDaniel, 67 lines, 16 modules: gist.github.com/90f29f000a1c725e05...a1b3288ee4
AlexDaniel raycatwhodat: here's an example from the ecosystem: github.com/moritz/perl6-all-module...eam.pm#L36 00:53
00:56 w_richard_w joined 01:21 Khisanth left 01:34 Khisanth joined 01:57 aborazmeh left 02:13 SqrtNegInf left 02:30 zakharyas joined 02:47 patrickz left 02:52 zakharyas1 joined 02:55 zakharyas left 03:05 jaja left 03:08 zakharyas joined 03:09 zakharyas1 left 03:21 ufobat__ joined 03:25 ufobat_ left 03:26 Sgeo left 03:34 Sgeo joined
Geth doc: softmoth++ created pull request #2697:
Align Mu.so & Mu.not docs with design
03:36
03:40 zakharyas left 03:45 leont left 03:46 Sgeo_ joined 03:49 Sgeo left 04:14 MidCheck left 04:15 Sgeo__ joined 04:18 Sgeo_ left 04:36 Cabanoss- left 04:40 Cabanossi joined 04:49 brainbuz left 05:01 mowcat left 05:07 [Sno] left 05:52 curan joined, kurahaupo left 05:53 kurahaupo joined 05:58 kurahaupo left, kurahaupo joined 06:10 aindilis left 06:20 aindilis joined 06:30 robertle left 06:32 MasterDuke left 06:38 Sgeo__ left, Sgeo__ joined 06:41 jmerelo joined
Geth doc: 6782472238 | (Luis F. Uceta)++ | doc/Type/List.pod6
Revise examples in the intro to lists.

Also move sentence about .item immediately after code snippet where it's first used. refs #2679
06:47
synopsebot Link: doc.perl6.org/type/List
doc: d95a8e6b6a | (Luis F. Uceta)++ | doc/Type/List.pod6
Reword sentence in the intro to lists
doc: 6b2ed9d13f | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Type/List.pod6
Merge pull request #2691 from uzluisf/master

Revise examples in the intro to lists. Thanks!
06:51 MidCheck joined 07:02 kurahaupo left 07:03 kurahaupo joined 07:06 domidumont joined 07:09 Sgeo_ joined 07:10 abraxxa joined 07:12 Sgeo__ left 07:29 jmerelo left 07:38 reach_satori left 07:39 reach_satori joined 07:44 sena_kun joined 07:47 abraxxa left 07:48 abraxxa joined 07:52 abraxxa left 08:07 abraxxa joined 08:27 rindolf joined 08:28 renormalist joined 08:36 robertle joined 08:44 Sgeo__ joined 08:47 Sgeo_ left 08:54 MidCheck left 09:00 dakkar joined
moritz cd 09:01
sorry, wrong window 09:02
El_Che moritz: we upgrade to blueray some time ago :) 09:03
masak moritz: too late, you're now in your home directory here on #perl6 :P 09:13
masak .oO( it's pitch black. you're likely to be eaten by a ~/.grue )
El_Che A group of trolls awakes and yells at you: "Perl is dead! Dead we tell you!" 09:15
SmokeMachine Some one could please comment on this?! I can’t decide if it’s a great idea or if I’m just crazy... github.com/FCO/Red/issues/15#issue...-476018889 09:19
09:21 patrickb joined 09:32 netrino joined, w_richard_w left
moritz SmokeMachine: I've added a comment; I hope I haven't made things more confusing for you :D 09:41
09:43 Brilpikk3wyn joined 09:44 Brilpikk3wyn left
SmokeMachine moritz: thanks! 09:52
moritz: the steps you describe are the same as I did, right? the difference is that its not the ORM that do that, right? 09:53
09:53 netrino_ joined
moritz SmokeMachine: at least the "change the code" part isn't done by the ORM 09:55
09:55 netrino left
moritz but rather by explicitly deploying a new software version 09:55
(which might or might not have been how you've thought about it)
SmokeMachine moritz: the ORM would "change the code" because it would change the if clause on the code... sou would run another branch... 09:56
moritz: oh I got it! sorry, my English is terrible...
moritz SmokeMachine: it's probably a valid tradeoff. I've spent some effort into automating deployments, so if I can keep the code simpler by doing more deployments, I generally do that 09:57
SmokeMachine: I realize that others might be in very different situations
SmokeMachine moritz: I think the ORM giving you some information of how your migration is going could help to a non downtime migration... 09:59
moritz SmokeMachine: agreed 10:09
SmokeMachine moritz: so, do you think that having it would be good to Red? 10:10
moritz SmokeMachine: yes 10:12
SmokeMachine :) 10:13
10:14 Black_Ribbon left 10:17 netrino joined 10:20 netrino_ left 10:22 MilkmanDan left
patrickb o/ 10:25
Is it possible to create continuation lines in heredocs?
10:26 MilkmanDan joined 10:34 renormalist left, renormalist joined
sena_kun m: my $a = $[Buf.new(12,3,67,97,114), Buf.new(12,3,71,80,83)]; say $a[0] ~ $a[1]; say [~] $a; 10:45
camelia Buf:0x<0C 03 43 61 72 0C 03 47 50 53>
Cannot use a Buf as a string, but you called the Str method on it
in block <unit> at <tmp> line 1
sena_kun shouldn't it work?
ah, I see
m: my $a = $[Buf.new(12,3,67,97,114), Buf.new(12,3,71,80,83)]; say $a[0] ~ $a[1]; say [~] |$a;
camelia Buf:0x<0C 03 43 61 72 0C 03 47 50 53>
Buf:0x<0C 03 43 61 72 0C 03 47 50 53>
10:52 reach_satori left, reach_satori joined
sena_kun m: say |Buf.new(1,2,3) 10:55
camelia 123
11:06 netrino_ joined 11:08 netrino left 11:15 kst left 11:23 domidumont left 11:24 leont joined 11:44 epony left 11:45 Kaiepi left 11:49 SCHAAP137 left 11:50 Sgeo_ joined 11:53 Sgeo__ left 11:57 SCHAPiE joined
tbrowder SmokeMachine: working on queries now with success, but have discovered a change needed in relationships to work with both create and query. i will get to a good state for all 4 models, load and bulk query, and will push to PR. it will be a while before i can finish. 12:36
.tell SmokeMachine ^^ 12:38
yoleaux tbrowder: I'll pass your message to SmokeMachine.
12:47 SergiusUA joined 12:50 SergiusUA left 12:51 SergiusUA joined 12:53 domidumont joined 12:56 SergiusUA left 12:58 SergiusUA joined 12:59 imcsk8 left 13:01 imcsk8 joined
SmokeMachine . 13:18
yoleaux 12:38Z <tbrowder> SmokeMachine: ^^
SmokeMachine tbrowder: great to here its working!
13:20 discord63 joined 13:22 ExtraCrispy left, discord6 left, ExtraCrispy joined 13:23 discord63 is now known as discord6 13:32 Guest27580 left 13:36 mowcat joined 13:49 netrino joined, netrino_ left
AlexDaniel ooof github is having some hard time 14:10
14:30 woolfy left 14:31 woolfy joined 14:32 netrino left 14:33 netrino_ joined 14:41 SqrtNegInf joined 14:51 curan left
leont Where can I make GSoC propose again? GIR should definitely be on there 14:52
jnthn GIR?
leont GObject introspection 14:54
It creates XML files that describe C interfaces. 14:55
So if you combine that with NativeCall, you can load the GIR to automatically generate bindings for anything that uses gobject: gtk, gnome, gio, gstream, etc… 14:56
(or at least that's the idea, I don't really know how integrating eventloops would work TBH) 14:57
jnthn Ah, I see :) 14:59
leont If you're on debianish, «apt search --names-only gir1.2» should give you some idea of what's available 15:05
It's 238 libraries on my machine 15:08
El_Che that would be cool 15:12
Xliff leont: Do you know how to take .gir files and convert them back to .xml? 15:13
Or better yet, the internal format for .gir? 15:14
After a bit of research, the .xml is only the intermediate step. If you want to use GIR, you need to load the .gir files directly.
15:18 xq joined
xq is "raku" name for perl 6 officially adopted/approved? 15:18
I don't see it on perl6.org
leont Xliff: it seems you need to use the binary file instead, though gobject-introspection 15:19
through
tadzik xq: depends on your definition of "officially" 15:21
but the person who announced it left the project over name disagreements, to my understanding
xq I see marketing.perl6.org/id/1541379592/pdf_digital says it is Larry 15:22
tadzik basically, they made their decision pretty much by themselves, without prior consultation, which led to conflicts and all
xq Larry left?
tadzik no, no
leont Xliff: developer.gnome.org/gi/stable/
tadzik Larry's words and opinions were slightly overreacted to, imho 15:23
which led to the announcement and the brochure you linked
SmokeMachine tadzik: Larry made the decision...
tadzik I know he did :)
but a single line on IRC that picked the preffered alternative name is hardly equivalent to renaming the language 15:24
which is very much how this was advertised
discord6 <Rogue> A lot of people were asking for an alias, so Larry decided to go ahead and come up with one to avoid having multiple hanging around
El_Che the single line was the single presence he had 15:25
SmokeMachine I was reding it when he did... and hoping to he choose ofun (my preferred option...)
El_Che so you can't blame zoffix for that
discord6 <Rogue> Zoffix was in favor of raku?
ugexe there could have been 0 lines if he hadnt been forced to a deadline
tadzik Rogue: yeah 15:26
El_Che Rogue: Zoffix was in favour of an alias, whatever it was
SmokeMachine tadzik: no... it was advertised as a alternative name... as (at least me understood) Larry was saying it should be...
discord6 <Rogue> I'd like to avoid explaining that Perl 6 is not like Perl 5 as much as the next guy, but aliasing the thing will just lead to awkward questions down the road
<Rogue> for me it's full rename or bust, and obviously there isn't going to be enough support for a full rename 15:27
15:27 yoloi joined
yoloi hi 15:27
my nm's yolo
El_Che Rogue: it's a pretty much "better than nothing" logic
yoloi el chepe
xq well, confusion achieved
discord6 <Rogue> I was trying to push for use of the alias on this discord server, but I gave up on that
yoloi donde estas mi coca
SmokeMachine hw wasn't forced for a dead line...
ugexe yes, he was 15:28
yoloi where r huckrs
i lk 4 huckers
xq why is an alias better than nothing?
15:28 yoloi left
discord6 <Rogue> There are/were a number of reasons for wanting some other name 15:29
Xliff leont: Ah, great! This is useful! Thanks!
SmokeMachine ugexe: he would be forced if someone have said to him "Give me a alternative name until XX/YY/ZZZZ or I will AAAAAAAAAA"
ugexe thats exactly what happened though?
discord6 <Rogue> a. people get tired of explaining the distance in the relationship between classic Perl and Perl 6 15:30
xq I can possibly see a reason in unconfusing various search engines
discord6 <Rogue> b. the name is presumably blocking Perl 5 from its next major version (but I personally don't think Perl 5 needs a next major version)
xq but not sure if that matters enough
discord6 <Rogue> also searchability 15:31
<Rogue> although I generally search "perl6" and get fairly good results
xq yeah
SmokeMachine ugexe: no, was more like: "You said that would choose an alternative name, so, could you please choose it before the date xx/yy/zzzz to give time to make the brochures before "something I forgot"?"
discord6 <Rogue> Probably before the 6.d release? 15:32
ugexe no, if the name wasnt chosen by such and such date then it was stated the community would vote on one. also larry even said soemthing along the lines of "hey i dont appreciate being rushed" aftering being badgered about the timeline towards the end 15:33
xq ok, thanks for the info, I sorta see the picture now
discord6 <Rogue> I just hope this naming kerfuffle doesn't turn into a community disaster
xq my main reason for asking is that I don't really like this name and I am seeing/checking if I can just pretend it doesn't exist and keep using perl 6 name
ugexe i am surprised people are not aware of this. none of this happened in secret
xq from what I've learned I guess I can
SmokeMachine that was because he asked again... 15:35
discord6 <Rogue> ugexe - well, there's no one official channel through which news is propogated
jnthn xq: Yes, lots of folks have just continued calling it Perl 6, and it was made very clear when the alias was selected that anyone wanting to simply call the langauge Perl 6 could do so.
discord6 <Rogue> and possibly the most official site, perl6.org, does not mention the alias on the homepage whatsoever
xq alright
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2019/03/25/...ool-truck/ 15:39
ugexe SmokeMachine: colabti.org/irclogger/irclogger_lo...8-10-18#l6 <-- proof of a deadline, proof of a stipulation, proof of a community vote if he didnt decide 15:40
SmokeMachine ugexe: with that sentence... do you really think he is being forced to do anything? 15:42
lizmat "I don't entirely appreciate this nudging the timeline up" feels to me that TimToady felt he was being asked to do something sooner rather than later 15:43
ugexe no. but im not going to dig up tons of irc logs to prove various points when that one line summarized everything nicely 15:44
Xliff If you have class A { also does Positional; also does Iterator; has @!a handles «pull-one iterator elems AT-POS EXISTS-POS join :p6sort('sort')» ... };
ugexe no in that he isn't being forced with a gun to his head
Xliff Is there a way that A can still wrap calls to those methods handled by @!a?
15:48 dogbert joined, dogbert is now known as Guest5277
sena_kun lizmat, "Missing math/statistics functions" <- a link won't hurt, otherwise "Comments welcome" statement is lonely. :) 15:50
lizmat++ # weekly
lizmat sena_kun: the link was there, but missed a " :-( fixed now 15:52
15:52 robertle left
sena_kun \o/ 15:52
thanks!
El_Che Rogue: I wrote this at the time. nxadm.wordpress.com/2018/11/08/quo-vadis-perl/ (not too optimist about the name thing, and very negative about the status quo) 15:53
AlexDaniel leont: not sure if anybody answered yet: github.com/perl-gsoc-2019/ideas 15:54
16:02 MidCheck joined
SmokeMachine lizmat: yes... and he would do it anyway... (that's how I read it...) 16:04
tbrowder SmokeMachine: some interesting bits in p6 weekly about another p6 orm 16:06
DB::Xoos 16:07
SmokeMachine yes... I had read that post...
I should write something like that for Red... 16:10
16:16 jmerelo joined 16:20 kurahaupo left, sno joined, sno left, sno joined, kurahaupo joined 16:24 vrurg left 16:27 vrurg joined 16:34 patrickb left
tony-o tbrowder: been out for a while, just haven't written any blogs since last PTS >.< 16:35
yoleaux 23 Mar 2019 07:00Z <jmerelo> tony-o: great! Thanks!
tony-o there's also Quicky for rapid prototyping 16:45
github.com/tony-o/perl6-db-orm-quicky 16:46
16:50 robertle joined 16:51 guifa joined, chrom joined
chrom howdy - does anyone can provide a link to samples build with Cro - especially small webservers? 16:51
p6: say 4 16:53
camelia 4
16:54 chrom is now known as wahnberger 16:55 wahnberger left, wahnberger_ joined
ugexe cro.services/docs/intro/getstarted ? 16:56
wahnberger_ nah.. i am already using cro for some client stuff...but i didn't dig into the server side :/ 16:57
16:57 kurahaupo left 16:58 kurahaupo joined
wahnberger_ for running internal websites..cro instead of using cgi over httpd/nginx etc.. 16:58
tony-o are you looking for how to configur nginx as a reverse proxy to cro ?
wahnberger_ no - just some samples how to use Cro on websites..with formulars, database stuff and so on 16:59
not "on" websites..i mean Cro::HTTP::Server 17:00
tony-o that getstarted doc ugexe linked to has how to get cro up and running using Cro::HTTP::Server
wahnberger_ i know how to route etc. and all the samples work very well..at leats I am a "need a sample" Guy :D
sena_kun considering Cro::HTTP is not a web framework, but something that delivers stuff for you, you have to write templating, database access for yourself. 17:01
wahnberger_ yes - but how do I integrate my own templates or hand made sites into the Cro code 17:02
sena_kun or more of "wire it in", of course, there are modules for templating and databases stuff. :)
tony-o ah 17:03
wahnberger_ cro.services/docs/reference/cro-http-server
17:03 kurahaupo left
wahnberger_ in the samples ..the code after a route like the "get" is directly append to this route 17:04
17:04 kurahaupo joined
wahnberger_ but for "real" sites i need to write all that stuff not there but in diffrent file setc.. 17:04
tony-o something here might help cro.services/docs/reference/cro-ht...erializers 17:05
for templating
sena_kun wahnberger_, you surely can do it, write a subroutine somewhere, import it, then call it.
Xliff Are there any templating systems out there for Perl6 ala Template Toolkit?
sena_kun get 'foo', $id -> { handle-foo-request($id) } 17:06
or something around that.
tony-o Xliff: there was moustache and one i wrote a long time ago out there, not sure either still work
sena_kun Xliff, modules.perl6.org/search/?q=template <-
and Cro::WebApp. ;) 17:07
wahnberger_ yeah sena_kun, thats exactly what i mean
jnthn wahnberger_: See cro.services/docs/structuring-services on how to structure and compose larger systems
wahnberger_ has anyone here used Cro for websites? :) 17:08
tony-o yes
sena_kun yes 17:09
wahnberger_ i wass searching around and found that there is nothing out there beside the well known clips and short docs
sena_kun not that it's open sourced. :| 17:10
wahnberger_ yeh.. probably i takes a while 17:11
ok, last question :) is there some other documentaion about using Cro that the Docs on cro.services you would suggest? 17:14
*than
Xliff Actually, for websites, I wonder if it might be better to use Bailador. I will have to evaluate both that and Cro, TBH 17:20
jmerelo wahnberger_: there might be something on the latest advent Calender
El_Che is bailador's development active? 17:21
jmerelo El_Che: yep, they released a new version a short time ago.
El_Che: ufobat is working on it, I think.
El_Che good to hear
sena_kun Xliff, it may be, though not sure what it's status. I'll be really excited to see an actual web framework built on top of Cro::HTTP.
jmerelo El_Che: github.com/Bailador/Bailador 0.0.18 just released 3 weeks ago. ufobat is making an excellent job there. 17:22
tony-o there is a yaml router module for cro that makes it nice for handling a lot of endpoints, am not recalling the name of it atm 17:23
17:25 epony joined
wahnberger_ Uhm..Bailador looks comfortable for small internal websites 17:25
El_Che ah, nice. ufobat__++ 17:26
tony-o does look really easy
wahnberger_ yep
and they provide lots of samples to figure out how it can be used :D
for guys like me 17:27
17:29 Black_Ribbon joined 17:30 natrys joined
wahnberger_ for me the concept looks very similar..but Cro says its NOT a framework while Balidors says it is 17:30
oh..ok ..baile() 17:31
sena_kun well, Cro is not a "Web Framework" for sure. A framework for building services using supplies - yes. :)
17:33 dakkar left
tony-o why do you not consider cro a framework? 17:35
ugexe Cro is not a framework§ 17:36
Cro is a set of tools and libraries, rather than a framework.
wahnberger_ thats what the Cro guys says
tony-o yes but it does a lot of the things frameworks say, in spite of what is written in the docs
s/say/do/
wahnberger_ cro.services/docs/structuring-serv..._framework 17:37
ugexe The docs also go over why the distinction is mostly academic
tony-o just lack of complete MV* ?
wahnberger_ its about control flow i guess
sena_kun tony-o, it is rather a tool for building chain of supplies made easy, with state, conditionals and other goodies. Other modules are "merely" examples of the approaches that happen to be useful.
tony-o, thus as one of Cro authors, I do not consider it to be a pure "Web Framework". In my own opinion(which may differ from public Cro team opinion, of course ;) ), Cro is potentially a much more powerful thing. Suggesting it as a web framework makes people think "Oh, I know this stuff, routes and get templates, right?", so they forget/don't know about what lies underneat. 17:39
right now, I am implementing LDAP protocol using Cro. Can I do it using Dancer/Mojolicious/Django/Whatever in the same way? :) 17:40
tony-o that seems like the intention in not calling a framework there is to avoid the connotation of frameworks in general :-)
jnthn The real point is that frameworks often try to own the overall application structure, while Cro is more like "I'll just do the stuff you need, but your application structure is yours" 17:41
kawaii When I think of web framework I think Dancer, Catalyst and such
sena_kun tony-o, I am against only "_WEB_ framework" thing. I am totally ok with "framework" word.
tony-o got it
jnthn Since in many cases, the web API or application is just one small corner of something much larger.
jmerelo jnthn: you have mail from Google Summer of Code :-) 17:44
Xliff m: role A[::T] { method a { given T { when uint8 | uint16 { say "Hello!"; }; }; }; my $a = 1 but A[uint8]; $a.a 17:46
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3"; }; }; }; my $a = 1 but A[uint8]; $a.a7⏏5<EOL>
expecting any of:
statement end
statement modifier
statement modifier loo…
Xliff m: role A[::T] { method a { given T { when uint8 | uint16 { say "Hello!"; }; }; }; |; my $a = 1 but A[uint8]; $a.a 17:47
camelia 5===SORRY!5=== Error while compiling <tmp>
Prefix | requires an argument, but no valid term found
at <tmp>:1
------> 3int8 | uint16 { say "Hello!"; }; }; }; |7⏏5; my $a = 1 but A[uint8]; $a.a
expecting any of:
prefix
Xliff m: role A[::T] { method a { given T { when uint8 | uint16 { say "Hello!"; }; }; }; }; my $a = 1 but A[uint8]; $a.a
camelia Hello!
Xliff m: role A[::T] { method a { given T { when uint8 | uint16 { say "Hello!"; }; }; }; }; my $a = 1 but A[Int]; $a.a
camelia ( no output )
Xliff I am getting this error: Cannot resolve caller ACCEPTS(Bool:U: T); none of these signatures match: 17:55
17:56 kerrhau joined
tony-o where? 17:58
Xliff m: my $A = CArray[uint8].new; $a[0] = 16; my $B = nativecast(Pointer[uint8], $a); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer[T], $a).deref }; }; }; }; my $a = $A but a[uint8]; $a.a 17:59
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$a' is not declared. Did you mean '$A'?
at <tmp>:1
------> 3my $A = CArray[uint8].new; 7⏏5$a[0] = 16; my $B = nativecast(Pointer[u
Xliff m: my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $a); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer[T], $a).deref }; }; }; }; my $a = $A but a[uint8]; $a.a
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$a' is not declared. Did you mean '$A'?
at <tmp>:1
------> 3 16; my $B = nativecast(Pointer[uint8], 7⏏5$a); role A[::T] { method a { given T {
Xliff m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer[T], $A).deref }; }; }; }; my $a = $A but a[uint8]; $a.a 18:00
camelia ===SORRY!===
Cannot resolve caller ACCEPTS(Bool:U: T); none of these signatures match:
(Bool:D: Mu \topic, *%_)
(Bool:U: \topic, *%_)
Xliff ^^ Why is that error getting thrown?
m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer[T], $A) }; }; }; }; my $a = $A but a[uint8]; $a.a 18:01
camelia ===SORRY!===
Cannot resolve caller ACCEPTS(Bool:U: T); none of these signatures match:
(Bool:D: Mu \topic, *%_)
(Bool:U: \topic, *%_)
Xliff m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer, $A) }; }; }; }; my $a = $A but a[uint8]; $a.a
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
a used at line 1
Xliff m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer, $A) }; }; }; }; my $a = $A but A[uint8]; $a.a
camelia CArray representation requires a typed array
in block <unit> at <tmp> line 1
Xliff m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer, $A) }; }; }; }; my $a = $A but A[uint8];
camelia CArray representation requires a typed array
in block <unit> at <tmp> line 1
Xliff m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer[T], $A) }; }; }; }; 18:03
camelia ===SORRY!===
Cannot resolve caller ACCEPTS(Bool:U: T); none of these signatures match:
(Bool:D: Mu \topic, *%_)
(Bool:U: \topic, *%_)
Xliff ^^ That is the error.
Looks like it is triggered by the presence of Pointer[T]
m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer[::T], $A) }; }; }; }; 18:04
camelia ===SORRY!===
Cannot resolve caller ACCEPTS(Bool:U: T); none of these signatures match:
(Bool:D: Mu \topic, *%_)
(Bool:U: \topic, *%_)
Xliff m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer, $A) }; }; }; };
camelia ( no output )
Xliff Because ^^that works
jnthn jmerelo: Uff, I'm quite behind with mail. Will try and dig it out tonight.
dinner; bbl
sena_kun m: my $a = "FooBar"; $a.subst(/(\w+)/, { $0.lc }, :1st).say;
camelia foobar
jmerelo jnthn: thanks!
sena_kun why is it not "fooBar"?
d'oh 18:05
Xliff m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer[uint8], $A) }; }; }; };
camelia ( no output )
sena_kun m: my $a = "FooBar"; $a.subst(/(\w)/, { $0.lc }, :1st).say;
camelia fooBar
Xliff OK. So better question. How can I apply a role parameter to another role parameter? I think that's the problem I am running into 18:06
tony-o do you just want to apply a role to it after it's been instantiated?
Xliff m: role A[::T] { method a { say T; }; }; role B[::S] { also does A[S]; method b { self.a; }; };
camelia ( no output )
Xliff m: role A[::T] { method a { say T; }; }; role B[::S] { also does A[S]; method b { self.a; }; }; my $a = 1 but B[Int] $a.a 18:07
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3 b { self.a; }; }; my $a = 1 but B[Int]7⏏5 $a.a
expecting any of:
infix
infix stopper
postfix
statement en…
Xliff m: role A[::T] { method a { say T; }; }; role B[::S] { also does A[S]; method b { self.a; }; }; my $a = 1 but B[Int]; $a.a
camelia (Int)
Xliff m: role A[::T] { method a { say T; }; }; role B[::S] { also does A[S]; method b { self.a; }; }; my $a = 1 but B[Int]; $a.b
camelia (Int)
sena_kun .oO ( should I write a LDIF module or not ) 18:08
18:08 rindolf left
tony-o m: role X { method x { say "x"; } }; role Y { method y { say "y"; } }; my $a = 5; $a does X; $a does Y; $a.x; $a.y; 18:08
camelia x
y
tony-o can also write it: ($a does X) does Y; 18:10
and probably 30 other way
18:11 domidumont left, rindolf joined
Xliff m: use NativeCall; my $a = Pointer[uint8].new; $a.deref = 9; 18:13
camelia Can't dereference a Null Pointer
in method deref at /home/camelia/rakudo-m-inst-1/bin/../share/perl6/sources/8660F65A7B3492675BB3B2058DB30E411A4C4E54 (NativeCall::Types) line 58
in block <unit> at <tmp> line 1
Xliff WTF? If I've instantiated a Pointer, how can it be null if derefed?
18:19 domidumont joined
timotimo you've created a pointer, which has a memory location that can point to somtehing ... i think? 18:23
but you don't have the memory location to store stuff at yet 18:24
Xliff m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer[T], $A) }; }; }; };
camelia ===SORRY!===
Cannot resolve caller ACCEPTS(Bool:U: T); none of these signatures match:
(Bool:D: Mu \topic, *%_)
(Bool:U: \topic, *%_)
timotimo you'll usually want a CArray for that
18:24 sauvin left
Xliff timotimo: ^^ Why the error? 18:24
timotimo does the --ll-exception look like you'd expect if it happens inside method a? 18:25
Xliff m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer, $A) }; }; }; }; 18:26
camelia ( no output )
Xliff The problem is the "Pointer[T]"
timotimo i'm not seeing role A be used anywhere
Geth doc: b694b90752 | (JJ Merelo)++ | doc/Language/modules.pod6
Updates to current version of the language, closes #2698
synopsebot Link: doc.perl6.org/language/modules
Xliff role A doesn't need to be used to generate the error.
timotimo oh, so it's compile-time?
Xliff Yes. 18:27
Would this be a legitimate solution:
m: use NativeCall; my $A = CArray[uint8].new; $A[0] = 16; my $B = nativecast(Pointer[uint8], $A); role A[::T] { method a { given T { when uint8 | uint16 { say nativecast(Pointer[::(T)], $A) }; }; }; };
camelia ( no output )
Xliff All I see is that pushing the error from compile-time to run-time. 18:28
El_Che sena_kun: what do you do with ASN1 data? Planning on releasing that as a different module?
sena_kun El_Che, I have a MOP-driven type generator as a released module. :P
timotimo ok so it's exploding in parameterize inside nativecalll::types called by World's parameterize_type_with_args 18:29
maybe Pointer just needs to learn about this
sena_kun El_Che, so in my module I am doing, basically, "use ASN::META <file docs/ldap.asn plugin resources/asn-plugin>;" <- boom, I have all types created for me.
I am now adding operations like add/modify and so on, and fixing the issues with the whole stack along the way. 18:30
timotimo m: role Foo[T] { method a { Pointer[T] } }
camelia 5===SORRY!5=== Error while compiling <tmp>
Invalid typename 'T' in parameter declaration.
at <tmp>:1
------> 3role Foo[T7⏏5] { method a { Pointer[T] } }
sena_kun once I'll have something more or less useable as client, I'll ping.
timotimo m: role Foo[::T] { method a { Pointer[T] } }
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
Pointer used at line 1
timotimo m: use NativeCall::Types; role Foo[::T] { method a { Pointer[T] } }
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
Pointer used at line 1
timotimo m: use NativeCall; role Foo[::T] { method a { Pointer[T] } }
camelia ===SORRY!===
Cannot resolve caller ACCEPTS(Bool:U: T); none of these signatures match:
(Bool:D: Mu \topic, *%_)
(Bool:U: \topic, *%_)
timotimo mhm 18:31
Xliff There it is.
timotimo m: use NativeCall; role Foo[::T] { method a { BEGIN say T.REPR } }
camelia Uninstantiable
sena_kun afk
18:32 MidCheck left
timotimo so the first thing that code does is try to ~~ the value against Int|Num|Bool 18:32
which it doesn't like very much
ugexe doesnt ACCEPTS(Bool:U: T) actually match (Bool:U: \topic, *%_) though? 18:33
El_Che sena_kun: impressive 18:34
Xliff timotimo: So wouldn't pushing that check to run-time fix the issue? 18:35
timotimo ugexe: it probably should, though perhaps that has to have a Mu in there? 18:36
m: use NativeCall; role Foo[::T] { method a { BEGIN say T ~~ Bool } }
camelia 5===SORRY!5=== Error while compiling <tmp>
An exception occurred while evaluating a BEGIN
at <tmp>:1
Exception details:
Cannot resolve caller ACCEPTS(Bool:U: T); none of these signatures match:
(Bool:D: Mu \topic, *%_)
(B…
timotimo m: use nqp; use NativeCall; role Foo[::T] { method a { BEGIN say nqp::istype(T, Bool) } }
camelia 0
timotimo or just do this, but then you'll get the exception it's supposed to throw when that check fails
which is "you can only use ints or strings or carray/cpointer/cstruct/cppstruct/cunion into a pointer" 18:37
Xliff OK, so nqp::istype(T, <type>) will NOT throw an error at compile time. 18:38
timotimo right
Xliff Still, that makes it so the code is more klunky. If I can push it to run-time and not mess with code, I will do that.
Thanks! # timotimo++
timotimo you may have to create that Pointer[T] manually by using Pointer.^parameterize 18:39
Xliff How would that be done? Are there write-ups for that online? 18:40
Or something in the code?
timotimo m: use NativeCall; role Foo[::T] { method doit { say Pointer.^parameterize(T).perl } }; Foo[uint8].doit 18:41
camelia NativeCall::Types::Pointer[uint8]
Xliff nativecast(Pointer[::(T)], $n.data) <- I will try this at run-time to see if it blows up.
timotimo use my code, that ought to do the trick
Xliff OK. Will try. 18:42
Gotta wait for the full recompile and add stats for AlexDaniel. :)
I shouldn't need the .perl though. Right?
timotimo no, that's just for show 18:43
AlexDaniel stats for me? 🎉🎉🎉
timotimo the Pointer.^parameterize(T) goes directly into the nativecast as first argument, or via a variable should also be fine
AlexDaniel but what are we talking about? :)
timotimo maybe stats about compilation speed or something? 18:44
Geth doc: a2254ac37c | (JJ Merelo)++ | 2 files
Eliminates grammar, moves to Cool, closes #2685
18:47
AlexDaniel I hope it's about malloc_trim
( github.com/MoarVM/MoarVM/pull/1072 ) 18:48
timotimo do note that "many small objects" don't necessarily go via malloc at all; only if they have some "unmanaged data" to them, like a CArray would 18:51
though i believe we use malloc for both hashes and arrays
AlexDaniel timotimo: yeah, any idea on how to benchmark this? 18:52
timotimo has anybody tried getting that visualizer to work from that ruby performance blog post about malloc_trim? 18:53
AlexDaniel I'd love to see something like a worst case scenario, when a looot of small objects need to be gc-ed
I don't think so…
timotimo AFKBBL 18:56
it'd be great if someone would try it; even if no success, a quick write-up of potential trouble would be helpful
18:57 domidumont left
AlexDaniel hides 19:04
19:04 lucasb joined 19:25 zachk joined
Geth whateverable: 9392cbb3fb | (Lucas Buchala)++ (committed using GitHub Web editor) | xbin/Releasable.p6
Update GitHub blocker label
19:34
jmerelo Is there a way to type Unicode characters in comma? 19:35
sena_kun jmerelo, I don't think there is. We had a ticket to make it auto-convert operators to Unicode, but I honestly don't remember its state, likely it wasn't implemented enough to be merged. And it was like half of year ago or so iirc. 19:37
jmerelo sena_kun: thanks! I have been looking for a jetbrains plugin that does it, but the one there is seems outdated... 19:39
19:43 a3f left 19:45 a3f joined
AlexDaniel lucasb: why was it renamed, btw? 19:45
not objecting, just wanna know the reasoning 19:48
lucasb AlexDaniel: sorry, I guess I did it out of personal taste to match the other labels. I can rename back to the previous state
unicodey char was distracting :D 19:49
but I guess I liked it. Really, I can rename back if you wish :)
AlexDaniel no it's fine, I remember someone saying that it looks too urgent
lucasb *but I guess you liked it (the unicode char)
AlexDaniel yeah I loved it xD
leave it as it is now 19:50
19:51 domidumont joined 19:52 domidumont left
lucasb BTW, all the other renamings I did was out of experiment. The labels naming can be further tunned to better describe the issues they label. 19:52
AlexDaniel lucasb: ah yes, I renamed one of the new labels, I think 19:53
it was an acronym and even I didn't know what it meant 19:54
lucasb yeah, MMD :)
20:03 zachk left, zachk joined 20:06 cjkinni left 20:07 jmerelo left 20:08 cjkinni joined 20:09 wahnberger_ left 20:21 pecastro joined 20:38 netrino joined 20:40 netrino_ left 20:43 lembark joined
lembark Q: Should $*PROGRAM be computed at compile time or runtime? 20:54
For example: "constant BIN_FROM = ... $*PROGRAM" created in a moule us showing up as "/path/to/lib/FindBin.pm6" not the executable path at runtime. 20:56
Obvious fix: "my $bin_from = ... $*PROGRAM" but I'd have expeced $*PROGRAM in v6.d to mimic "$0". 20:57
masak lembark: when you use `constant`, you get `BEGIN` semantics; the rhs evaluates at compile time 20:58
lembark Odd because "constant IS-INTERACTIVE = $*PROGRAM-NAME eq '-e' | '-' | 'interactive';" is evaluated at runtime. 21:00
i.e., I get different results from perl -MFindBin -e 'say IS-INTERACTIVE and the same thing in a test that uses the module. 21:01
masak m: say "runtime"; constant G = say "constant"; BEGIN say "compile time"
camelia constant
compile time
runtime
masak ^ constant evaluates at compile time
lembark Q: Why would defining a constant on $*PROGRAM behave differently than $*PROGRAM-NAME? 21:02
masak it... wouldn't? :)
lembark Example: Tests based on IS-INTERACTIVE display the correct thing when run from different directories using perl -M and #! code. 21:03
I can almost wrap my mind around $*PROGRAM being the path to the specific .pm6 file (vs. the executable that invoked the compilation t/01-setup.t). 21:04
gfldex lolibloggedalittle: gfldex.wordpress.com/2019/03/25/i-...kudo-100x/ 21:07
21:14 SergiusUA left
AlexDaniel gfldex: ummm… 21:17
gfldex: what about gist.github.com/AlexDaniel/88b38af...3df31dd431 21:18
gfldex: lets you use whateverable to bisect things locally 21:21
21:22 lembark left
gfldex AlexDaniel: at the top it says: AlexDaniel/bisect.p6 Secret 21:24
AlexDaniel: I didn't implement it in Perl 6 to make it easy to set up or clone a VM and start testing. 21:26
Otherwise I would have borrowed code from bisectable. 21:27
21:30 vrurg left 21:31 abraxxa left
AlexDaniel also, you *can* use bisectable, just need to specify paths to all the modules 21:34
21:34 Xliff left
AlexDaniel gfldex: oh, and Blin is also using Whateverable, but it runs `zef test` to test things. Perhaps we can tweak it so that you can provide a custom script to test stuff 21:40
I filed this ticket: github.com/perl6/Blin/issues/11 21:43
actually, let me try to implement that real quick… 21:45
eh, how can I use :@foo in MAIN? 21:49
c: run <perl6 -e>, 「sub MAIN(:$foo) { say $foo }」, <--foo=42 --foo=50> 21:50
committable6 AlexDaniel, ¦run: «Cannot find this revision (did you mean “all”?)»
AlexDaniel e: run <perl6 -e>, 「sub MAIN(:$foo) { say $foo }」, <--foo=42 --foo=50>
evalable6 [42 50]
AlexDaniel this works but it's stupid
I want to slap an IO() coercer on it 21:51
e: run <perl6 -e>, 「sub MAIN(:@foo) { say @foo }」, <--foo=42 --foo=50>
evalable6 [42 50]
AlexDaniel o_o
ok nevermind
well, actually… 21:52
e: run <perl6 -e>, 「sub MAIN(Str :@foo) { say @foo }」, <--foo=42 --foo=50>
evalable6 (exit code 1) Usage:
-e '...' [--foo=<Positional[Str]>]
The spawned command 'perl6' exited unsuccessfully (exit code: 2)
in block <unit> at /tmp/z4gws0rAWF line 1
AlexDaniel gfldex: actually, I think it's going to be pretty cool! Gimme an hour 22:05
gfldex++
lizmat weekly: gfldex.wordpress.com/2019/03/25/i-...kudo-100x/ 22:07
notable6 lizmat, Noted!
AlexDaniel doodled something 22:12
let's see if it works…
22:21 sena_kun left 22:28 rindolf left
AlexDaniel oooooooooooooooooooooooh 22:28
e: run <perl6 -e>, 「sub MAIN(:@foo) { say @foo }」, <--foo=42 --foo=50> 22:29
evalable6 [42 50]
AlexDaniel e: run <perl6 -e>, 「sub MAIN(:@foo) { say @foo }」, <--foo=42>
evalable6 (exit code 1) Usage:
-e '...' [--foo=<Positional>]
The spawned command 'perl6' exited unsuccessfully (exit code: 2)
in block <unit> at /tmp/OUsu1YzwBC line 1
AlexDaniel so you must provide more than one…
22:29 rindolf joined
AlexDaniel e: run <perl6 -e>, 「sub MAIN(:@foo) { say @foo }」 22:33
evalable6 []
AlexDaniel hah, so zero is fine, two is fine, one is not?
github.com/rakudo/rakudo/issues/2797 22:35
ugexe the most Perl6 solution would be to tell the user to use --foo=42, 22:48
AlexDaniel hah 22:49
but the funny thing is that you can use :$foo, and that works… and that's very perl5 :) 22:50
ugexe but you can't type a list 22:51
m: sub MAIN(Str :$foo) { say $foo }; BEGIN @*ARGS = <a b>; 22:52
camelia Usage:
<tmp> [--foo=<Str>]
AlexDaniel ugexe: not sure I understand… can you type a list with @ ?
ugexe i thought so but apparently not 22:53
m: sub MAIN(Str :@foo) { say @foo }; BEGIN @*ARGS = <a b>;
camelia Usage:
<tmp> [--foo=<Positional[Str]>]
ugexe oh duh im using args wrong
not that it matters 22:54
m: sub MAIN(Str :@foo) { say @foo }; BEGIN @*ARGS = <--foo=a --foo=b>;
camelia Usage:
<tmp> [--foo=<Positional[Str]>]
23:03 natrys left 23:09 Celelibi left
Geth whateverable: c535eee829 | (Aleks-Daniel Jakimenko-Aleksejev)++ | lib/Whateverable/Bisection.pm6
Avoid LAST to work around some weird issue

Sometimes when run-bisect runs from multiple threads at the same time I am getting Nil in string context warnings. To me that can only mean that `$result<output>` is not what it is supposed to be, so there's a bug in rakudo. Working around it because I want to move on right now. Please feel free to investigate.
23:14
AlexDaniel dogbert17, timotimo: ↑ if you're interested
23:16 hphhphhphhphhphh left 23:22 rindolf left
AlexDaniel greppable6: PREVIEW 23:25
greppable6 AlexDaniel, 66 lines, 14 modules: gist.github.com/1489b13cc240bdccea...3762472a07
AlexDaniel greppable6: d\.PREVIEW
greppable6 AlexDaniel, 58 lines, 11 modules: gist.github.com/239ab1d53f43662673...f0bd4df1fc
23:28 pecastro left 23:34 Celelibi joined
AlexDaniel gfldex: success!!! 23:36
it bisected it to this commit: github.com/rakudo/rakudo/commit/4f...d943651942
which is what you found too
23:43 aborazmeh joined, aborazmeh left, aborazmeh joined
Geth Blin: 6da7c3c36e | (Aleks-Daniel Jakimenko-Aleksejev)++ | 3 files
Add support for custom scripts

So that users can bisect arbitrary code. The code can depend on modules, in which case these have to be listed on the command line
  (e.g. for a script depending on WWW you should list WWW module,
dependencies will be detected automatically).
... (15 more lines)
23:46
AlexDaniel gfldex: \o/
23:48 SergiusUA joined
Geth Blin: 4db69d0289 | (Aleks-Daniel Jakimenko-Aleksejev)++ | README.md
Mention custom scripts in the README
23:55
kybr is there a shrtcut for Str.split('') ... string to list of chars? 23:56
SmokeMachine m: say “bla”.comb
camelia (b l a)
SmokeMachine kybr: ^^
Geth Blin: 9ca64bfcc4 | (Aleks-Daniel Jakimenko-Aleksejev)++ | README.md
Tweak README
23:57