»ö« 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.
tbrowder SmokeMachine: i'm trying to grok the code but it's too much for my brain, 00:01
how do i add a constraint to, say, ^create-table so it's a no-op if the table exists? 00:02
i need a high-level cookbook example for basic crud. 00:03
i'll go find your advent article!
00:05 kurahaupo left, kurahaupo joined 00:10 pecastro left 00:11 leont joined
tbrowder ah, that helps a lot. but i don't see how to tell red not to throw if a table exists 00:11
00:22 Sharparam left 00:23 aborazmeh left, Sharparam joined 00:25 zachk left 00:27 ufobat__ joined, kurahaupo left, kurahaupo_ joined 00:30 ufobat_ left 00:32 kurahaupo_ left, kurahaupo joined 00:39 _uzl joined 00:40 uzl left, _uzl left 00:45 mowcat left
timotimo you could literally just catch the exception if the table exists :) 00:46
00:46 netrino_ left 00:53 kurahaupo left, kurahaupo joined 00:58 w_richard_w joined 01:07 zacts joined, zacts left 01:10 Actualeyes left 01:12 aindilis left 01:14 Kaiepi left, aindilis joined, Kaiepi joined 01:18 jeromelanteri joined 01:25 Khisanth left
tbrowder yeah, but i'm almost positive there is some adverb or test to do the right thing, i just haven't found it yet. 01:29
01:38 Kaiepi left 01:39 Kaiepi joined, Khisanth joined 01:41 rindolf left 01:45 Kaiepi left, isomorphismes joined 01:47 Cabanossi left
tbrowder timotimo: you may be right, catching may be the norm... 01:47
01:47 Kaiepi joined 01:49 Cabanossi joined 01:58 mniip left
Geth doc: 627fa4e8e4 | cfa++ | 2 files
Spelling (whitelist).
02:05
02:14 kurahaupo_ joined 02:15 kurahaupo left 02:34 kst joined 02:43 w_richard_w left 03:09 mniip joined 03:22 zacts joined 03:53 leont left 04:12 zacts left 04:21 xinming_ joined 04:23 xinming left 05:13 sno left 05:15 MidCheck left 05:29 AlexDaniel joined 05:46 sauvin joined 05:51 curan joined 06:02 abraxxa left, abraxxa joined 06:12 ufobat__ left 06:24 vike left 06:25 abraxxa left, abraxxa joined 06:26 abraxxa left 06:27 abraxxa joined 06:28 sno joined 06:33 drclaw4 joined
SmokeMachine tbrowder: Red don’t do that yet... :( 06:34
06:35 drclaw3 left 06:37 vike joined, drclaw4 left
SmokeMachine tbrowder: would you mind to open a issue asking for it? 06:38
06:38 abraxxa left 07:04 cwilson1 joined, cwilson left 07:08 molaf joined 07:15 vike left 07:33 sno left 07:34 kurahaupo_ left, kurahaupo joined 07:45 sena_kun joined 07:48 domidumont joined 07:53 jeromelanteri left 07:59 MidCheck joined 08:05 jeromelanteri joined 08:21 isomorphismes left, molaf left 08:33 abraxxa joined 08:37 robertle joined 08:39 netrino_ joined 08:45 dakkar joined 08:53 antoniogamiz joined 09:00 kensanata joined, netrino_ left, w_richard_w joined, w_richard_w left 09:01 kst` joined 09:02 kst left 09:04 jeromelanteri left 09:05 pmurias joined 09:06 ravenousmoose left 09:15 domidumont left 09:16 ravenousmoose joined, jeromelanteri joined 09:17 domidumont joined 09:22 vike joined 09:24 scimon joined 09:26 jeromelanteri left 09:29 rindolf joined 09:37 netrino joined 09:39 jeromelanteri joined, pmurias left
antoniogamiz if I have a file called "a.pm6" in the same directory as another called "b.pm6" and I type in b.pm6 use lib <.> use a; 09:44
that should load the exported content in a.pm6 right?
09:45 netrino left
antoniogamiz oh I was in other directory that¡s why it didnt work... 09:50
09:50 kerrhau left
kawaii good morning 09:52
09:52 domidumont left
antoniogamiz o/ 09:52
09:56 dakkar left, dakkar joined
tbrowder .tell SmokeMachine wilco 10:02
yoleaux tbrowder: I'll pass your message to SmokeMachine.
SmokeMachine .
yoleaux 10:02Z <tbrowder> SmokeMachine: wilco
SmokeMachine tbrowder: sorry, what means wilco? 10:03
10:05 domidumont joined
tobs "will comply" 10:07
10:08 yqt joined 10:09 domidumont1 joined, molaf joined 10:11 domidumont left 10:12 pistacchio left, pistacchio joined 10:17 pmurias joined 10:35 bobby left 10:41 bobby joined
SmokeMachine tobs: thanks 10:44
10:58 john_parr left, john_parr_ joined 10:59 jeromelanteri left 11:01 Black_Ribbon left 11:13 molaf left 11:17 kurahaupo left 11:18 leont joined
tbrowder SmokeMachine: wilco == will comply (from two-way radio jargon). issue has been filed 11:20
SmokeMachine: if i define a method on a model is it called like "obj.^mymethod"? 11:22
SmokeMachine no, obj.mymethod 11:23
the database interacting methods are owned by the meta class...
but your model's methods is owned by your model, so you call it throw your model... 11:24
tbrowder oh! i would like to be able to update a column set by adding a new element somehow. and also the reverse: remove a single element, if it exists. 11:25
antoniogamiz how should I test a function that it's not exported?
SmokeMachine tbrowder: you can do a `method add($new-val) { $!msy-set-col (|)= $new-val; self.^save }`something like that? 11:28
tbrowder: I don't know if I got it...
tbrowder SmokeMachine: if i am using a persistent sqlite file, do i have to explicitly close the db after a series of crud ops? 11:29
11:29 daxim left
SmokeMachine tbrowder: I don't think so... 11:30
tbrowder same question for PostgreSQL (disconnect?)
SmokeMachine tbrowder: you'd you mind to share the code?
tbrowder no, not at all. but i'm right now just trying to get a very simple but useful db going to track attendees at a local tech expo. 11:32
11:33 leont left
tbrowder i have forked Red and will submit PR for it as example if i can make it work for my needs. i hate writing sql. 11:33
11:34 pistacchio left, pistacchio joined 11:35 daxim joined
SmokeMachine tbrowder: here is a example of something I think is useful done with Red... www.irccloud.com/pastebin/0Y60FiGe/ 11:53
antoniogamiz scimon: I've answered your comment 11:56
12:03 vrurg left 12:18 lizmat_ joined 12:20 lizmat left 12:26 antoniogamiz left 12:31 domidumont1 left 12:33 MasterDuke_ joined 12:35 MasterDuke_ left 12:36 kensanata left 12:37 mowcat joined, MasterDuke_ joined 12:41 MasterDuke_ left 12:47 pmurias left 12:58 domidumont joined 12:59 lizmat joined 13:03 lizmat_ left 13:17 vrurg joined 13:19 pmurias joined 13:31 yqt left 13:33 pmurias_ joined 13:34 pmurias left, pmurias_ is now known as pmurias
tbrowder SmokeMachine: yes, *very* useful! thnx 13:50
SmokeMachine tbrowder: :) 13:52
13:55 lizmat_ joined 13:56 lizmat__ joined 13:59 lizmat left 14:00 lizmat_ left, lucasb joined 14:02 uzl joined
uzl Hello everyone! Does anyone have any comment on this question colabti.org/irclogger/irclogger_lo...03-13#l706 ? 14:04
moritz github.com/perl6/mu/blob/master/mi...amelia.txt 14:05
uzl: ^^ might be relevant
14:09 MidCheck left 14:12 lichtkind joined
uzl moritz: thanks! From what I understand, then my changes fall under the license? 14:16
moritz IANAL, but I'd say yes 14:18
14:20 lizmat__ is now known as lizmat
uzl One last question, moritz. Is perl6/marketing open to submissions? The person in charged(?) seems to had been zoffix but I'm not sure what would the current guideline/procedure. 14:21
moritz uzl: sure, it's open to submissions
uzl moritz: Oh, great! 14:22
Thanks. Have a wonderful day!
14:22 uzl left
Geth perl6-lwp-simple: 46d3fdb698 | (JJ Merelo)++ | README.md
Documentation now is right
14:23
14:26 jmerelo joined, jmerelo is now known as jjmerelo
jjmerelo squashable6: status 14:27
squashable6 jjmerelo, Next SQUASHathon in 21 days and ≈21 hours (2019-04-06 UTC-14⌁UTC+12). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
14:27 dogbert joined, dogbert is now known as Guest4810
jjmerelo Well 14:27
We are like one week away from the start of the period where students request admission into the Google Summer of Code and interest so far has been zero 14:28
Or almost
I would say we need some hype drive during the next week about how great Perl 6 is 14:29
14:29 lichtkind left
jjmerelo We know that, you know that, people in general don't know that. And there are 200 different organizations admitted into GSoC, so we're not very likely to find prospects 14:30
14:30 Sgeo joined
jjmerelo What we need is blog posts, tweets, or whatever media you use (mastodon?) that are introductory to perl 6, with links to GSoC 14:30
We really need that
14:30 lichtkind joined 14:31 isomorphismes joined
jjmerelo We've got over the first hurdle, which is being admitted into GSoC. We need everyone to help us get over the next one, getting students to actually request joining the organization. 14:31
So who's in?
14:31 lizmat left
moritz I'll happily retweet stuff, if that's any help 14:32
@perl6org has 640 folloers
eseyman jjmerelo: FTR, twitter.com/mongueurs_perl/status/...0172002304
14:33 Sgeo_ left
kawaii I'd be happy to Tweet something too if someone can put together a somewhat generic message. 14:33
I think my $workplace would too, we do a lot of Perl 5 stuff already and sponsor various things.
jjmerelo eseyman: great! But keep doing it at least once a day :-)
kawaii: I'm no good at marketing, but something like "Perl 5 is alive and kicking and participating in this year's summer of code. Want to dive in? (URL to introductory tutorial) Want to participate (URL to GSoC page)" 14:35
kawaii Yeah I'll throw something together later
jjmerelo It would help if someone prepared presentations in local universities to the tune of "Want to get paid for developing some great software this summer? Join this presentation... " 14:36
tobs jjmerelo: I have no idea how GSoC works but I am a student in every conceivable way. Where do I look?
jjmerelo tobs: github.com/perl-gsoc-2019
tobs thanks :)
jjmerelo That's the repo for ideas, and there are links to the GSoC page 14:37
tobs that should get me started
Ulti_ is there an ordered hash builtin? 14:40
14:40 Ulti_ is now known as Ulti
timotimo there is not 14:40
Ulti okedoke
github.com/FCO/OrderedHash to the rescue I guess 14:41
jjmerelo tobs++ 14:42
.tell El_Che why don't you prepare a presentation about Perl & Google Summer of Code in your uni?
yoleaux jjmerelo: I'll pass your message to El_Che.
jjmerelo .tell AlexDaniel can you prepare a presentation about GSoC in your uni? 14:43
yoleaux jjmerelo: I'll pass your message to AlexDaniel.
jjmerelo and dot-tell everyone: Why don't we prepare a collaborative presentation and start to deliver it in local unis?
kawaii jjmerelo: how is this? usercontent.irccloud-cdn.com/file/...-43-04.png
jjmerelo kawaii: looks fine! 14:44
Kaiepi can someone familiar with nqp or the MOP tell me why this throws with "getstaticcode requires a static coderef" when i call ^add_method? hastebin.com/yatazodihi.rb
14:45 curan left
timotimo perhaps it needs a nqp::decont around the sub 14:45
it'd surprise me, but only a little
otherwise, you could gdb into moar, breakpoint the line that actually throws that exception, and output the MVM_6model_get_debug_name(tc, the_object_in_question) to see what kind of object it is 14:46
Ulti hmm actually OrderedHash despite the name is not what I might have expected 14:47
timotimo DESCRIPTION
OrderedHash is ...
tobs jjmerelo: I could do that, too. (Don't know if the computer science department will let me present somewhere sometime, but I'll check what kind of meetings they have.)
timotimo where does the confusion come from? :P
14:47 Cabanossi left
timotimo huh, it has a default :@keys of 0..9, A..Z, a..z 14:48
Kaiepi deconting the sub didn't work, but thanks for the pointer timotimo
14:49 woolfy left
jjmerelo tobs: that would be great 14:50
timotimo kawaii: why is cute.im down? :P
tobs jjmerelo: I prefer collborating on the presentation. You and others may have more experience at where to start than me. 14:51
jjmerelo m: my \hash = {}; my %hash = hash; say hash === %hash
camelia False
tobs I assume it should include some "flexing" to get people interested in Perl 6. I suspect most of them haven't seen it before.
jjmerelo m: my \hash = {}; my %hash := hash; say hash === %hash 14:52
camelia True
jjmerelo tobs: that's the problem. Most people I talk to say "But is Perl still a thing?"
tobs: I can brush up a repo with reveal.js 14:53
14:54 Cabanossi joined
Kaiepi timotimo the sub's REPR is P6opaque fsr? 14:58
Geth doc: eb00a7425d | (JJ Merelo)++ | doc/Language/js-nutshell.pod6
Fixes #2672, it was the example that was wrong
14:59 leont joined
kawaii timotimo: I've been meaning to put a site up there for a long time now, found Uzu recently so might make a static perl 6 blog or something 15:01
timotimo Kaiepi: oooh, you might have to nqp::getattr at its $!do attribute 15:02
15:11 kurahaupo joined 15:13 lizmat joined 15:15 lizmat left, lizmat_ joined 15:22 lizmat_ left 15:24 Xliff joined
Xliff \o 15:26
Does my subscription to Comma still work if I was in the supporter program?
jnthn Xliff: Yes 15:28
Xliff jnthn: How do I upgrade to the latest commercial package? 15:29
15:29 robertle left
jnthn Xliff: Just log in as before and download it 15:29
tbrowder SmokeMachine: i want to define my own unique key for a person and i don't define the id but the sql shows two UNIQUE(key) entries 15:30
i do not explicitly reference .person-id anywhere, always Person.key 15:31
SmokeMachine tbrowder: yes... that's a bug I have to fix... would you mind to open a issue, please?
tbrowder yes, will do in a short while 15:32
15:35 robertle joined 15:38 lizmat joined
Xliff m: $*PERL.compiler.version.say 15:39
camelia v2019.03.32.g.33.e.2.d.7.f.4.c
Xliff jnthn: Are there docs on how to set up Comma? 15:40
15:42 jjmerelo left
sena_kun Xliff, installation docs? Yes. 15:43
15:44 woolfy joined
Xliff sena_kun: How about docs for setting up a perl6 project? 15:48
Or docs on how to debug an existing one?
sena_kun Xliff, sorry, what do you mean by "setting"? Create? Open/import?
jnthn Xliff: commaide.com/docs/creating-project 15:49
Covers both new and importing existing code 15:50
Xliff jnthn++ # Thanks! 15:52
15:54 Black_Ribbon joined
AlexDaniel yes? 15:59
yoleaux 14:43Z <jjmerelo> AlexDaniel: can you prepare a presentation about GSoC in your uni?
AlexDaniel :o
16:01 sena_kun left
AlexDaniel .tell jmerelo I like the idea a lot, and I can totally do something like this… but maybe next year. I'm too busy working on my thesis 16:01
yoleaux AlexDaniel: I'll pass your message to jmerelo.
16:03 sena_kun joined, sena_kun left 16:04 sena_kun joined 16:13 reach_satori_ joined 16:15 ravenousmoose left, reach_satori left, clarkema joined 16:23 domidumont left 16:24 ExtraCrispy joined 16:25 mowcat left
tbrowder SmokeMachine: issue was filed 16:33
Kaiepi m: use nqp; enum A <B C D>; A.^lookup('CALL-ME').wrap(anon multi method CALL-ME(Str $key --> Int) { my %values := self.^enum_values; nqp::defor(nqp::atkey_s(%values, nqp::decont($key)), nqp::atkey_s(%values, ' ')) }); say A('B')
camelia MVMHash representation does not support native type storage
in method CALL-ME at <tmp> line 1
in block <unit> at <tmp> line 1
Kaiepi oh right
m: use nqp; enum A <B C D>; my $call-me := anon multi method CALL-ME(Str $key --> Int) { my %values := self.^enum_values; nqp::defor(nqp::atkey_s(%values, nqp::decont($key)), nqp::atkey_s(%values, ' ')) }; A.^lookup('CALL-ME').wrap(nqp::getstaticcode(nqp::getattr($call-me, Code, '$!do'))); say A('B') 16:34
camelia MVMHash representation does not support native type storage
in method CALL-ME at <tmp> line 1
in block <unit> at <tmp> line 1
Kaiepi no wait i'm thinking of when i was writing with the mro 16:35
SmokeMachine tbrowder: thanks! and what are you feeling so far?
Kaiepi fully with the mro i mean
16:35 pmurias left 16:36 st_elmo joined
Kaiepi but anyway the point i was trying to make is Enumeration.CALL-ME's signatures are both (|), which i think may be too loose 16:38
i'll test out making them stricter 16:39
16:40 leont left 16:41 st_elmo left 16:47 Cabanossi left
kawaii AlexDaniel: oh uhh, any sign of my CLA yet? 16:53
AlexDaniel hah sign 16:56
kawaii hah, unintended 16:57
tbrowder SmokeMachine: good so far. i now need to figure out how to update a row and to do some simple queries. 16:59
SmokeMachine tbrowder: to update a row, just change the object, than call `.^save` 17:00
tbrowder for the moment i have wrapped my table creation code with a try block and then pass $! to an err handing sub where i silently skip expected errors like table exists, etc. 17:01
17:02 Cabanossi joined
tbrowder ok, save makes sense, i thought it might be something to do with the physical db file. 17:02
AlexDaniel kawaii: ok, I've sent an email asking if it was received… 17:03
kawaii Hopefully :(
AlexDaniel kawaii: this process always takes some time, don't worry
I think mine was sent via snail mail 17:04
at least the first one… then I remember sending it via email
tbrowder i will need to handle tables with combined keys or two unique key fields.
AlexDaniel or maybe not, actually I'm not sure anymore :) 17:05
Kaiepi never mind, i was wrong 17:06
AlexDaniel jnthn: btw what's the reason to have the CLA hassle? I always wondered how this thing is justified
tbrowder got to go work on my "honey do list"...back to "red"ing later..
AlexDaniel it's not like a huge problem so I'm definitely not insisting that something should be changed, but I'd love to know why we're doing it 17:07
17:08 pistacchio left 17:09 pistacchio joined
SmokeMachine tbrowder: here's a example of how to update and create a query... 17:10
tbrowder: www.irccloud.com/pastebin/FHt6aPjc/
tbrowder: update only works with a primary key... 17:11
Xliff m: my $a = 'b'; my %b = ( $a => '1' ); %b.gist.say 17:14
camelia {b => 1}
Xliff m: my $a = 'b'; my %b = ( do $a => '1' ); %b.gist.say 17:15
camelia {b => 1}
Xliff m: my $a = 'b'; my %b = ( do $a => '1' if rand ); %b.gist.say
camelia {b => 1}
Xliff m: my $a = 'b'; my %b = ( do $a => '1' if rand ); %b.gist.say
camelia {b => 1}
Xliff m: my $a = 'b'; my %b = ( do $a => '1' if rand ); %b.gist.say
camelia {b => 1}
jnthn AlexDaniel: My understanding is that it's because TPF hold the "compilation copyright" 17:16
AlexDaniel jnthn: yeah but nqp and other repos?
jnthn AlexDaniel: I can't usefully explain what that means, alas; somebody involved with TPF probably can.
AlexDaniel: The folks who created those decided not to do things that way, pretty much. 17:17
That was my call for MoarVM; nobody from TPF ever asked me "hmm, shouldn't you..." 17:18
It may be worth finding out just how much value there is in the paperwork we're doing.
AlexDaniel kawaii: anyway, any questions so far? :)
tbrowder SmokeMachine: thanks 17:19
kawaii AlexDaniel: just one, is there a comprehensive list of all the IRC bot commands I need to use to see stuff? :P 17:20
AlexDaniel kawaii: see github.com/perl6/whateverable/wiki
kawaii releasable6: status
releasable6 kawaii, Release manager is not specified yet.
kawaii, Next release in ≈37 days and ≈1 hour. 7 blockers. 0 out of 32 commits logged 17:21
kawaii, Details: gist.github.com/9c67603f56a562b6a3...bd4d050008
AlexDaniel that first warning you'll be able to fix yourself once your CLA is received :)
kawaii: also join #whateverable to experiment with the bots
kawaii Alright, I think that's enough time between now and the next planned release for me to bug you enough to understand fully what is required. ;)
Who assigns 'blockers' to that list? Will more be added between now and then? 17:22
I assume 'blockers' are only for the most severe rakudo bugs that prevent a stable release? 17:23
AlexDaniel kawaii: you label tickets yourself here: github.com/rakudo/rakudo/issues
17:23 Hotkeys joined, Hotkeys left
AlexDaniel kawaii: yeah, that's correct 17:24
17:25 pistacchio left, pistacchio joined
AlexDaniel kawaii: so, as you'll be running the show, you'll decide these details yourself. But here's what I used to do 17:25
kawaii: before the release I'd run Blin github.com/perl6/Blin 17:26
17:26 pistacchio left
AlexDaniel kawaii: Blin simply takes two rakudo revisions (typically the previous release and the latest commit from master) and tests modules on them 17:26
17:26 pistacchio joined
AlexDaniel kawaii: by default I used to file a ticket for every module that no longer can be installed cleanly 17:27
here's an example: github.com/rakudo/rakudo/issues/2705 17:28
kawaii Ah right yes I understand
17:29 scimon left
AlexDaniel it doesn't necessarily mean that every single issue on that list is a blocker, but it was easier to file a ticket first and investigate later 17:29
… even doing that I managed to miss some things for way too long :) 17:30
kawaii I will most likely ask yourself or someone more knowledgeable which ones to submit as blockers until I'm comfortable doing it entirely myself :)
Lots of learning to do, but hopefully this will take some of the workload off yourself and others once I'm confident with the process 17:31
AlexDaniel I'd say if you see a serious issue but you're unsure, mark it as a blocker… and devs will complain about it if they disagree :) 17:32
in my time everything that made existing user code no longer work was a blocker
17:33 dakkar left
kawaii the `--new=2018.09` parameter of Blin... is this just an arbitrary label of what the next release is going to be called? I was of the understanding that it simply used `master` from `rakudo/rakudo`, if I interpreted you correctly. 17:33
17:33 pistacchio left
AlexDaniel and I was maybe too strict about it, as we ended up doing workarounds for some issues that were clearly bugs that just happened to be used by people 17:33
kawaii and that `-old=2018.06` will actually fetch that release of Rakudo to test against?
(because if I'm understanding this right, --new=blah doesn't exist yet) 17:34
17:35 zacts joined
AlexDaniel kawaii: that's a git commit or something that's like a commit 17:35
kawaii: so usually you'd use HEAD
for new
kawaii alright okay :)
AlexDaniel bisect: old=2015.12 new=HEAD say 42
bisectable6 AlexDaniel, On both starting points (old=2015.12 new=33e2d7f) the exit code is 0 and the output is identical as well
AlexDaniel, Output on both points: «42␤»
AlexDaniel same here
kawaii: for running Blin, I don't recommend that doing on an actual system you use 17:36
kawaii Doesn't seem like we have a `Dockerfile` for it, I can add that to my to-do list if you'd like? :)
AlexDaniel kawaii: google compute engine is nice, set it up with about 24 cores or so
that'd be awesome
but note that even with 24 cores it'll run for a bit more than an hour 17:37
kawaii: oh by the way, if somebody reports an issue with some particular module, you can ask blin to test just that module 17:38
it'll still test its dependencies, because it has to, but it won't be testing the whole ecosystem
kawaii It would simply install Blin, and take an environment variable for `--old=` and `--new=`, and a third variable for an array of modules.
That should be fine right? Basic, but fine?
AlexDaniel sounds about right, yes
kawaii Sounds like my weekend is planned then. :) 17:39
AlexDaniel kawaii: there's this problem that, well, it takes one idiot to upload malicious code to the ecosystem and you're guaranteed to hit it
so it should be isolated as hell, in theory, but then there's a tradeoff because a lot of modules actually use the internet for their tests 17:40
kawaii hmmm, so does Blin install the modules and run their tests too? Because simply installing the module could not be an attack vector unless there is code to run it, no?
AlexDaniel and you *want* to run as many tests as possible… sooo, sometimes you just can't win :) 17:41
kawaii: yes, it runs tests, that's sorta the point. But also just installing the module without running tests is dangerous too, I think, because people can stick some things into BEGIN blocks or such
kawaii ah right, understood 17:42
no problem, I'll create us a Dockerfile/image for it, and deploy a server at $work for running it :)
timotimo there's also BUILD.pm
AlexDaniel oh yeah
timotimo though there's also some build-replacement stuff for META6.json 17:43
AlexDaniel kawaii: if you don't have a google compute engine account yet, then it's probably better to do that
they offer some free credit that'll last you exactly one year (they take it away after one year anyway)
kawaii I'm an engineer at $work, I do have a GCE account I use for $personal-projects but why do that when I have an entire datacenter to play with? :) 17:44
17:44 a3f joined 17:45 sno joined, a3f left, a3f joined 17:47 Sgeo_ joined
AlexDaniel right, well. If we put potential kernel vulnerabilities aside… :) 17:48
kawaii: here's a partial list of dependencies that modules have: github.com/perl6/ecosystem-unbitrot/wiki 17:49
17:50 Sgeo left
AlexDaniel so highly recommended to install these on the system that will run blin 17:50
kawaii AlexDaniel: much appreciated, that'll come in handy 17:51
AlexDaniel kawaii: it's not updated regularly and I don't know any good way to do that… it'd be nice if modules had a way to let users know which native dependencies are required
and IIRC there was something for that 17:52
or at least something was proposed at some point, I don't remember
kawaii That'd be something I'd like to see in META6.json for sure, a split key for `apt` and `yum` since package names can differ.
17:53 zacts left
AlexDaniel greppable6: is native 17:53
Xliff kawaii: New maintainer? 17:54
AlexDaniel Xliff: rakudo release manager
Xliff For distros? kawaii++ !
greppable6 AlexDaniel, 6652 lines, 186 modules: gist.github.com/a01fdb97e1994950d0...6071a42810
AlexDaniel for rakudo itself!
Xliff AlexDaniel: Ooooh!
AlexDaniel a better me, hopefully :)
Xliff No one can be a better you than yourself. ;) 17:55
But seriously good to see new blood involved.
AlexDaniel: Frees up some of your time. Are you finally going to look into this neat new thing called "Rest" ?
;)
kawaii Hah, I don't think I'll meet those expectations for a long time AlexDaniel , but I'm happy to help out 17:56
Xliff kawaii: If you need semi-instantly draftable hands, I don't mind helping.
You get familiarized first.
kawaii Xliff: if you're just another person for me to bug when Alex isn't around, that'll work :)
Xliff Just don't call me "flunky" 17:57
kawaii: =D
17:58 robertle left
AlexDaniel kawaii: heh, I was hoping that greppable would give a nice list and we'd just extract library names from `is native(…)` 17:59
`is native( LIBREADLINE ) { * }` so wha's LIBREADLINE…
what's*
18:01 domidumont joined 18:03 ravenousmoose joined
Xliff m: class A { has %!a; method BUILD { %!a = ( a => 1 ); }; method a { %!a }; }; my %a = A.new; $a.a<a>.say; $a.a<a> = 2; $a.gist.say 18:08
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$a' is not declared. Did you mean '%a'?
at <tmp>:1
------> 3 }; method a { %!a }; }; my %a = A.new; 7⏏5$a.a<a>.say; $a.a<a> = 2; $a.gist.say
Xliff m: class A { has %!a; method BUILD { %!a = ( a => 1 ); }; method a { %!a }; }; my $a = A.new; $a.a<a>.say; $a.a<a> = 2; $a.gist.say
camelia 1
A.new
Xliff m: class A { has %!a; method BUILD { %!a = ( a => 1 ); }; method a { %!a }; }; my $a = A.new; $a.a<a>.say; $a.a<a> = 2; $a.a<a>.say
camelia 1
2
AlexDaniel kawaii: by the way, the output of Blin is also used to update issues in this repo: github.com/perl6/ecosystem-unbitrot/issues 18:09
Xliff What's the best way to make sure that %!a can be read, but not modified from the outside if exposed like that?
AlexDaniel kawaii: 220 open issues means that 220 modules have failing tests or other issues
Xliff m: class A { has %!a; method BUILD { %!a = ( a => 1 ); }; method a { %!a.clone }; }; my $a = A.new; $a.a<a>.say; $a.a<a> = 2; $a.a<a>.say 18:10
camelia 1
2
Xliff WTF? It doesn't change the clone? 18:11
18:13 domidumont left
tobs m: my %h; %h.clone<a>.say; %h.clone<a> = 2; %h.clone<a>.say 18:14
camelia (Any)
(Any)
tobs m: my %h = a => 1; %h.clone<a>.say; %h.clone<a> = 2; %h.clone<a>.say 18:15
camelia 1
2
18:15 domidumont joined
tobs Xliff: clone clones the scalar container 18:15
it's a shallow copy
Xliff Is there a way to return an immutable copy of a container? 18:17
Or a reference that doesn't allow any contents to be changed?
tobs I think Map is the immutable equivalent of a Hash 18:18
m: class A { has %!a; method BUILD { %!a = ( a => 1 ); }; method a { %!a.Map }; }; my $a = A.new; $a.a<a>.say; $a.a<a> = 2; $a.a<a>.say
camelia 1
Cannot change key 'a' in an immutable Map
in block <unit> at <tmp> line 1
Xliff tobs++ # That may work, for now.
tobs (I have no idea how costly that is)
Xliff Yes. That is the next worry.
What I am trying to accomplish: I want the contents of %!a available to callers, but I do not want the callers to be able to manipulate %!a. 18:19
So far it looks like %!a.Map is the easiest solution. 18:20
m: class A { has %!a; submethod BUILD { %!a = ( do ('a' + .) => . for ^(26) }; }; my $a = A.new; $a.perl.say; 18:23
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed postfix call (only alphabetic methods may be detached)
at <tmp>:1
------> 3a; submethod BUILD { %!a = ( do ('a' + .7⏏5) => . for ^(26) }; }; my $a = A.new; $a
Xliff m: class A { has %!a; submethod BUILD { %!a = ( do ('a' + $_) => $_ for ^(26) }; }; my $a = A.new; $a.perl.say;
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in parenthesized expression; couldn't find final ')' (corresponding starter was at line 1)
at <tmp>:1
------> 3{ %!a = ( do ('a' + $_) => $_ for ^(26) 7⏏5}; }; my $a …
Xliff m: class A { has %!a; submethod BUILD { %!a = ( do ('a' + $_) => $_ for ^26 ) }; }; my $a = A.new; $a.perl.say;
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5a' (indicated by ⏏)
in code at <tmp> line 1
in submethod BUILD at <tmp> line 1
in block <unit> at <tmp> line 1
Xliff m: class A { has %!a; submethod BUILD { %!a = ( do ("a" + $_) => $_ for ^26 ) }; }; my $a = A.new; $a.perl.say; 18:24
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5a' (indicated by ⏏)
in code at <tmp> line 1
in submethod BUILD at <tmp> line 1
in block <unit> at <tmp> line 1
18:26 molaf joined 18:30 molaf left
Xliff m: my @a = 'a'..'z'; class A { has %!a; submethod BUILD { %!a = ( do @a[$_] => $_ for ^26 ) }; }; my $a = A.new; $a.perl.say; 18:32
camelia A.new
Xliff m: my @a = 'a'..'z'; class A { has %!a; submethod BUILD { %!a = ( do @a[$_] => $_ for ^26 ) }; }; my $a = A.new; $a.a<b>.say
camelia No such method 'a' for invocant of type 'A'
in block <unit> at <tmp> line 1
Xliff m: my @a = 'a'..'z'; class A { has %!a; submethod BUILD { %!a = ( do @a[$_] => $_ for ^26 ) }; method a { %!a; }; }; my $a = A.new; $a.a<b>.say
camelia 1
Xliff m: my @a = 'a'..'z'; class A { has %!a; submethod BUILD { %!a = ( do @a[$_] => $_ for ^26 ) }; method a { %!a; }; }; my $a = A.new; $a.a<e>.say
camelia 4
Xliff Benchable: HEAD my @a = 'a'..'z'; class A { has %!a; submethod BUILD { %!a = ( do @a[$_] => $_ for ^26 ) }; method a { %!a; }; }; my $a = A.new; $a.a<b>.say 18:35
benchable6 Xliff, starting to benchmark the 1 given commit
Xliff, No new data found
Xliff Benchable doesn't know HEAD?
Benchable: HEAD my @a = 'a'..'z'; class A { has %!a; submethod BUILD { %!a = ( do @a[$_] => $_ for ^26 ) }; method a { %!a; }; }; my $a = A.new; $a.a<2> + 1 for ^10000 18:36
benchable6 Xliff, starting to benchmark the 1 given commit
Xliff, No new data found
18:39 lichtkind left
Xliff OK. Finally got my answer. 18:39
Without map... 0.11 seconds to do 10000 loops
With map... 0.7 seconds 18:40
Wow.
18:44 lichtkind joined
tbrowder SmokeMachine: in the last example, how do you add a new row? dump a table? 18:48
SmokeMachine tbrowder: this is creating a new row: `my $a = A.^create: :42a;`... and Red do not drop tables yet... 18:49
tbrowder when i said "dump" i meant show a complete table 18:50
SmokeMachine tbrowder: oh! sorry!
tbrowder my bad, too much "slang" 18:51
SmokeMachine tbrowder: I think the easier way would be: `.say for A.^all`
tbrowder ok, i'll try that...
18:56 domidumont left 18:59 lichtkind left 19:00 lichtkind joined
Xliff SmokeMachine: Why no drop tables, yet? 19:01
SmokeMachine Xliff: haven't done it yet...
Xliff Ah. OK! :)
19:09 lichtkind_ joined 19:10 lichtkind left 19:12 pecastro joined 19:15 robertle joined 19:17 lichtkind_ left 19:25 antoniogamiz joined
antoniogamiz Hi! :D 19:30
I'm making my first little module in perl6, you can check it here: github.com/antoniogamiz/Math-ConvergenceMethods 19:31
any feedback is very welcomed because I'm quite noobie hahaha
AlexDaniel kawaii: ah, also join these: #perl6-dev #moarvm 19:33
SmokeMachine I think its a comma bug: usercontent.irccloud-cdn.com/file/.../image.png 19:43
usercontent.irccloud-cdn.com/file/.../image.png 19:44
Xliff SmokeMachine: So would you create Red::AST::Drop and handle it that way? 19:49
SmokeMachine Xliff: Yes, I will...
Xliff SmokeMachine: OK. That's a neat design! :) 19:51
19:51 random_yanek left
SmokeMachine Xliff: thanks! 19:51
19:52 molaf joined
SmokeMachine Xliff: every thing you do with Red becomes a tree of AST (ok, Im being redundant) and the Red database's driver transform this AST into SQL... 19:54
Xliff Yep1 19:55
s/1/!/
19:59 Sgeo joined
Xliff What's the difference between QAST and MAST? 20:00
discord6 <Rogue> (I'm interested to know the answer to that question as wel :) 20:01
20:01 netrino joined
Xliff :) 20:02
20:03 Sgeo_ left
jnthn QAST is an abstract syntax tree that is backend-agnostic. MAST was a much lower-level AST for MoarVM, which was then fed to the VM for assembling into bytecode, but nowadays we produce the bytecode directly. 20:05
discord6 <Rogue> So we're now going straight from QAST to bytecode? Was there a good reason for the more specific MAST format before? 20:06
20:06 random_yanek joined
tony-o we'll have a nightly circleci/docker image available shortly..does anyone know if we have a `rakudo` user on docker.io's hub? 20:08
jnthn It was a bit easier to implement/debug it like that, especially since we started out cross-compiling. Mostly, we jsut didn't have decent/efficient binary writing stuff back when it was done that way. 20:11
tony-o if not then i'll reply to the github issue with my docker image %^
-%
discord6 <Rogue> thanks for the history lesson :) always interesting to see how implementation details have changed over time 20:12
20:25 pistacchio joined
tbrowder SmokeMachine: how does one get the column names of a given table A? i can get a row which is also an A object, so A.^columns? or comething like that? 20:31
20:32 pistacchio left, pistacchio joined
tony-o use xoos :p 20:34
SmokeMachine tbrowder: www.irccloud.com/pastebin/Czie5Fq0/
tbrowder A.^columns gives me a hash with col names, i'm getting there...
SmokeMachine tbrowder: not a hash, a Set...
tbrowder ah! thanks.
SmokeMachine tbrowder: I think ill add a `.^column-names` 20:35
tbrowder would be nice!
20:38 MilkmanDan left 20:39 ravenousmoose left 20:40 MilkmanDan joined 20:41 sena_kun left 20:42 andrzejku joined
SmokeMachine tbrowder: github.com/FCO/Red/blob/master/lib...el.pm6#L37 20:42
andrzejku tadzik, hej 20:43
what happen wit that project? www.youtube.com/watch?v=gd2nKxFtFMQ 20:44
tony-o circleci rakudo nightly available for those interested 20:54
or anyone else using docker, really
tadzik oh wow, young me :)
andrzejku: pretty much nothing :( 20:55
20:55 drclaw4 joined
tadzik that Space Invaders was about as fun as that project went, I think 20:56
soon-ish after I started working in Game Development and it murdered my passion for game development
20:58 |oLa| left
tadzik andrzejku: if you want to do that for GSoC I can be your mentor ;) 21:00
andrzejku tadzik, what you use for game dev?
SDL?
what's GSoC?
21:01 |oLa| joined
tony-o google summer of code 21:01
andrzejku aaa
I don't like google
El_Che andrzejku: google knows
yoleaux 14:42Z <jjmerelo> El_Che: why don't you prepare a presentation about Perl & Google Summer of Code in your uni?
andrzejku prefer duckduck.go
tadzik andrzejku: nothing anymore 21:07
21:07 |oLa| left, Kaiepi left
tadzik I just stopped making games :( 21:07
I merely play them now like a normie
21:09 Kaiepi joined 21:10 |oLa| joined 21:11 |oLa| left 21:13 andrzejku left
MasterDuke Xliff: fyi, benchable6 expects either multiple commits (separated by ',') and one chunk of code or one commit and multiple chunks of code (separated by '|||') 21:15
tony-o what was the command to add stuff to the weekly? 21:17
MasterDuke (however, the fact that it didn't report a time for a single commit and instead said 'No new data found' is a known issue)
tony-o articles, or whatever
MasterDuke tony-o: i think it's notable6: <foo> 21:18
tony-o tak
21:20 ravenousmoose joined 21:21 pmurias joined
AlexDaniel actually `weekly: foo` 21:25
or `notable6: weekly foo`
notable6: list
notable6 AlexDaniel, gist.github.com/5a1cad8b5d574362f3...88247e1274
AlexDaniel notable6: Atikon
notable6 AlexDaniel, 1 note: 2019-01-20T11:41:08Z <jmerelo>: is looking for Perl 6 programmers (in German) www.atikon.com/at/karriere/jobs/so...eisterung/
AlexDaniel weekly: missed note, I don't know if it's relevant: 1 note: 2019-01-20T11:41:08Z <jmerelo>: is looking for Perl 6 programmers (in German) www.atikon.com/at/karriere/jobs/so...eisterung/ 21:26
notable6 AlexDaniel, Noted!
AlexDaniel notable6: this
notable6 AlexDaniel, 1 note: 2018-12-31T15:34:48Z <lizmat>: is on High Sierra, not Mojave
AlexDaniel notable6: clear this 21:27
notable6 AlexDaniel, Moved existing notes to “this_2019-03-14T21:27:00Z”
AlexDaniel notable6: clear Atikon
notable6 AlexDaniel, Moved existing notes to “Atikon_2019-03-14T21:27:05Z”
tony-o AlexDaniel: i updated the github issue regarding a docker for rakudo nightly build
AlexDaniel I saw that! 21:28
I don't know if the issue is resolved now
tony-o i don't know either, haha 21:30
21:35 mowcat joined 21:36 drclaw4 left 21:42 |oLa| joined, |oLa| left 21:56 antoniogamiz left 22:01 avarab is now known as avar 22:06 clarkema left
Xliff SmokeMachine: How would you check if a table has a foreign key constraint? 22:11
SmokeMachine Xliff: www.irccloud.com/pastebin/dnCOnIIc/ 22:15
Xliff Ooh. Nice. Is there any tracking done between the models? 22:16
As in, does A know that B is referencing it?
Oh. Wait. That's exactly what that does. Nifty! 22:17
SmokeMachine Xliff: you can use relationships for that...
Xliff So you'd have to make a relationship in A for it to know that B is referencing it. Right? 22:18
SmokeMachine yes...
Xliff Can you update that paste to show how?
SmokeMachine Xliff: for example: github.com/FCO/Red/wiki/Time-Tracker
Xliff Yeah. OK. 22:20
SmokeMachine Xliff: www.irccloud.com/pastebin/gAVdZv4N/ 22:23
Xliff So a potential way to do .^drop would be something like this? 22:24
pastebin.com/fXqQDbuT
22:24 drclaw4 joined
SmokeMachine Xliff: www.irccloud.com/pastebin/8KXxMbQm/ 22:24
22:25 drclaw4 left, drclaw joined
SmokeMachine Xliff: is that what you expected? 22:28
Xliff Still working my head around how things work.
So just looking at examples and code.
SmokeMachine Xliff: there are some examples on dir "examples" and on the wiki... 22:29
Xliff: please, let me know if I can help with something... 22:30
Xliff Sure thing. 22:31
SmokeMachine Xliff: a small variation of that last example, but a bit more advanced would be:
Xliff: www.irccloud.com/pastebin/LV9qOiwq/ 22:39
22:39 isomorphismes left 22:51 leont joined 22:59 pmurias left 23:02 MidCheck joined 23:03 sno left 23:08 leont left 23:09 ravenousmoose left, sno joined 23:13 tobs left 23:18 netrino left 23:27 tobs joined 23:36 kerrhau joined 23:38 leont joined
tbrowder SmokeMachine: showing the tables with say seems to work fairly well, but i need to extract data by rows and columns to do other things with the values. I've tried several variants but haven't had any success yet. creating, filling, and updating table rows and columns seems fine so far. 23:58