🦋 Welcome to Raku! raku.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: colabti.org/irclogger/irclogger_log/raku
Set by ChanServ on 14 October 2019.
Xliff SmokeMachine++ !! 00:01
But are you still going to allow ad-hoc joins?
Ad-hoc meaning joins that are possible, but not speficied by the model.
SmokeMachine Xliff: yes, probably... but not working on that yet... 00:04
Xliff What about left joins? 00:09
One thing you could do, looking at that example...
this from Ble --> has UInt $!bli-id is referencing( *.id, :model<Bli>, :optional ); 00:10
You could then use the :optional tag and anything with that could become a LEFT JOIN instead of a JOIN
SmokeMachine Xliff: very good idea! I've being wondering how to avoid `:left`, `:right`, etc... `:optional` is a very good idea! thank you very much! 00:22
Xliff yw!
SmokeMachine Xliff: I'm I asking too much if I ask you to add that suggestion on the join issue? github.com/FCO/Red/issues/345 00:29
Xliff Sure thing.
Done 00:31
SmokeMachine Thanks! 00:48
ZzZombo m: my $p = Proc::Async.new('ls');$p.stdout.tap { .say };$p.start 02:27
camelia 5===SORRY!5=== Error while compiling <tmp>
Unexpected block in infix position (missing statement control word before the expression?)
at <tmp>:1
------> 3$p = Proc::Async.new('ls');$p.stdout.tap7⏏5 { .say };$p.start
expecting any…
ZzZombo m: my $p = Proc::Async.new('ls');$p.stdout.tap({ .say });$p.start 02:32
camelia ( no output )
ZzZombo m: my $p = Proc::Async.new('ls');$p.stdout.tap({ .say });await $p.start
camelia Inline-Perl5
Perlito
backup
bin
dalek-queue
evalbot
evalbot.log
file.txt
hs_err_pid17361.log
lib
log
mbox
nqp-js
p1
p2
p6eval-t
oken
perl5
precomp
rakudo-j-1
rakudo-j-2
rakudo-j-inst
rakudo-j-inst-1
rakudo…
ZzZombo m: my $p = Proc::Async.new('command.com');$p.stdout.tap({ .say });await $p.start 02:39
camelia Unhandled exception in code scheduled on thread 4
Failed to spawn process command.com: no such file or directory (error code -2)
Geth_ ecosystem: c0513b95f7 | tony-o++ (committed using GitHub Web editor) | META.list
worker queue
05:46
xinming_ SmokeMachine: termbin.com/ohqq This will have error, I think we should have some arg check passed when we create the row? 08:43
xinming_ SmokeMachine: I don't think it's a bug, when I change `my @sub-category = %sub-category{$name};` to `my @sub-category := %sub-category{$name};` It fixes the problem. that takes a while to figure it out. So, I think, maybe we could convert it to string and pass to db? 08:46
SmokeMachine m: %a = a => <a b c>; my @b = %a<a>; my @c := %a<a>; dd @b; dd @c 08:49
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '%a' is not declared
at <tmp>:1
------> 3<BOL>7⏏5%a = a => <a b c>; my @b = %a<a>; my @c
SmokeMachine m: my %a = a => <a b c>; my @b = %a<a>; my @c := %a<a>; dd @b; dd @c
camelia Array @b = [("a", "b", "c"),]
("a", "b", "c")
SmokeMachine xinming_: the `my @sub-category = %sub-category{$name};` is creating an array with an list on the first position...
xinming_: ^^ 08:50
xinming_: I'm just curious, but why aren't you using something like: `Category::Test.^create(:$name, :children(%sub-category{$name}.map: { %( :name($_)) }))` 08:52
xinming_: how do you think this should be checked? 08:54
xinming_ SmokeMachine: I think that array should be converted to Str, and pass to db directly, and let the user check the data is wrong, so he has a clue where the problem is. 09:10
BTW, when we declare column with $column-name1 $column-name2 when we do create, `Model.^create: :column-name1<a>, :column-name2<b>, :column-name3<c>` <--- Should this succeed? 09:12
I'll try to narrow the problem. 09:17
xinming_ SmokeMachine: termbin.com/k2ri 09:32
SmokeMachine: Seems, It's a Pg driver issue, With SQLite, it worked, Not with Pg driver
SmokeMachine xinming_: but if the data aren't Str? 09:34
xinming_: what's the error?
xinming_ Too few positionals passed; expected 2 arguments but got 0 09:35
in method id-filter at /opt/xm.amd64/share/perl6/site/sources/C78729F9354A9D417A092C2F394E04C708112DC8 (MetamodelX::Red::Id) line 115
in method create at /opt/xm.amd64/share/perl6/site/sources/0A3152D387D23EDEB6D5DEA3B6D22EC77A7B7B1E (MetamodelX::Red::Model) line 404
SmokeMachine could you, please, show me the generated SQL? just set `my $*RED-DEBUG = True;` please 09:36
xinming_: ^^ 09:37
xinming_ termbin.com/k7fu 09:38
SmokeMachine I'll need to leave it to take a look at home... would you mind to open an issue for that, please? 09:40
xinming_: ^^
xinming_ SmokeMachine: termbin.com/k7fu 09:41
Seems I discovered quite a lot of small bugs. :-)
SmokeMachine :) 10:05
xinming_: would you mind to open an issue with that, please... I'll forget it otherwise... 10:09
xinming_ SmokeMachine: How do you think about adding the red-with('db', -> { });
SmokeMachine: Ok.
SmokeMachine xinming_: what's the difference between this and `red-do`? 10:10
xinming_ I have checked red-do much, But IIRC, red-do put the db as a named arg, Which I don't think it's right. 10:12
I mean not natural
SmokeMachine xinming_: red-do can work on different ways... `red-do :with<db>, { ... }` is one of those... you can also use: `red-do db => { ... }` 10:13
xinming_: you can even: `red-do db1 => { ... }, db2 => { .. }, <db2 db2> => { ... }` 10:14
xinming_ Ok, got it. Thanks. 11:17
SmokeMachine u: ⚛ 11:47
unicodable6 SmokeMachine, U+269B ATOM SYMBOL [So] (⚛)
SmokeMachine m: my atomicint $a = 0; for ^1000 { start $a⚛++ }; say $a 11:48
camelia 1000
daxim enwp.org/Atomic_(song) 11:54
xinming_ SmokeMachine: Can we do sub-select now? 12:06
hungryd27 Hello everyone,I need to do some math about matrices. 12:10
hungryd27 Does Perl6 provide some way to handle it? 12:11
sena_kun hungryd27, github.com/lichtkind/Perl6-Math-Matrix-Bundle <- can this help? 12:13
hungryd27 I will try it. sena_kun, thank you. 12:15
xinming_ SmokeMachine: We can't use junction in .grep 12:36
ResultSeq 12:37
SmokeMachine xinming_: like this? github.com/FCO/Red/blob/master/t/20-in-sql.t 12:52
tbrowder .tell tony-o thanks for the links 12:59
tellable6 tbrowder, I'll pass your message to tony-o
xinming_ So Ok, I can use 'in' ATM 13:15
SmokeMachine: termbin.com/0qbsz 13:17
The example code, The frist is try to use (<) doesn't work, it report termbin.com/unc2 13:19
the code after `exit;` also raise error, which is, it won't be able to find the column named 'name' 13:20
Or, If I'm wrong, tests are there, but feature is still WIP. 13:22
nine Also the tests do not show how one would write a correlated subquery 13:23
SmokeMachine xinming_: there is an error on the union... you can’t get different column numbers and types... 13:25
nine: why not? This is a sub query... github.com/FCO/Red/blob/master/t/2...-sql.t#L32 13:28
nine SmokeMachine: so are all subqueries correlated automatically by Red? How would I write a non-correlated one then? 13:29
SmokeMachine xinming_: sorry... I just saw the .map is on the return...
xinming_ SmokeMachine: What is the differences betweeh ^rs and ^all? 13:30
Are the the same when we first call it on model
SmokeMachine nine: I think I do not know what mean correlated query...
xinming_: none... .^all is an alias for .^rs
xinming_ SmokeMachine: correlated query is something like, SELECT x, (SELECT xxxx FROM inner WHERE inner.col = outer.col) as result FROM outer; 13:32
I just tried, subselect worked. But model.^all.grep: { .id (<) <a b c d> } doesn't 13:33
nine SmokeMachine: What I meant was something like "select * from foo where exists (select * from bar where bar.foo = foo.id)" or "select *, (select id from bar where bar.foo = foo.id) from foo", i.e. the subquery references the "current" row of the outer query. 13:34
xinming_ nine: I gave the example. ;-)
nine xinming_: yeah, thanks! I'm on a pretty slow connection on a not much faster train right now... 13:35
SmokeMachine Implemented is only sub query for in, yet... 13:37
xinming_ nine: Actually, These quite advaced features, If really a must, We can actually write view for it first.
That's why I try to rewrite my old app with Red, to see if it has all the required features, or, wether all these features have work-around 13:39
nine xinmingcardinal sin #1 when writing an ORM: thinking some features are advanced and not all that necessary. These features are actually precisely what needs to be considered in the initial design, because it's neigh impossible to add them later. Countless ORMs have come and gone because of this sin.
xinming_: ^^^
xinming_ SmokeMachine: After these feature-requests, Do you think it's still quite a lot of work to do. ;-)
nine If correlated subqueries are "advanced" what would common table expressions and SQL window functions be? 13:40
xinming_ nine: Common table expression / window functions should be implemented in view, and ORM map that view. 13:41
SmokeMachine I never thought it would be easy, or fast... but if other people helps, it will be easier/faster... 13:42
Doc_Holliwood ok, there is a serious flaw in the ecosystem 13:43
xinming_ In perl5 DBIx::Class, We can write virtual view, which will be common table expressions, If we want to write customized functions, We'll have to pass the SCALAR ref, which I feel quite a pain.
Doc_Holliwood or a bug in zef?
SmokeMachine But, just to let it clear: the goal for Red isn’t be possible to do all possible SQL... but make it easier to, with perl6 syntax, query the database...
Doc_Holliwood someone has published a module named LibGit2 which has a submodule Git::Config 13:44
nine xinming_: if you want to write yet another failed ORM, then sure. People will write basic CRUD applications with it, at some point hit those design limits and then start to question the ORM's value. And end up with writing SQL queries manually because at the end of the day it's easier than working around the ORM's restrictions.
xinming_ Yea, I do think we shouldn't do all possible SQL, But some features are really important, the correlated sql is one actually, I agree 13:45
Doc_Holliwood but there already is a Git::Config in the ecosystem. now when i want to install that (zef install Git::Config) zef gets confused and wants to install LibGit2
xinming_ And We never start trying grouping in Red yet.
nine Doc_Holliwood: then be more precise. You can tell zef to install a certain author's module 13:46
xinming_ nine: We'll have to wait, If Red fails, I believe still a long time to wait for ng ORM to be designed. 13:47
SmokeMachine xinming_: yes, correlated sub query will work... 13:48
But are not working yet...
I’m still workin on join...
Working
Doc_Holliwood nine: ok, mind telling me how? I'm looking at the usage info 13:49
but i see nothing
[Coke] anyone interested in a non-technical article related to news.perlfoundation.org/post/tpf-r...aku-rename ? 13:51
nine Doc_Holliwood: zef install 'Git::Config:auth<whoever>'
[Coke] (for advent 2019)
nine Doc_Holliwood: i.e. exactly how you write your use statements 13:52
SmokeMachine But something that would help is think of how the sql feature you want implemented would work on Raku syntax...
Doc_Holliwood ah, nice.
SmokeMachine xinming_, nine : ^^ 13:53
Doc_Holliwood ok. but this means one better specifys authors in the depends section of a meta6. otherwise your code can break just because someone adds something to the ecosystem 13:55
nine Doc_Holliwood: of course! Authors and versions. Otherwise you will end up with whatever the user has installed 13:57
And api if applicable
Doc_Holliwood fair. zef could still be better in that regard. it should prefer the distribution whichs name matches the installee name 14:02
or at least warn loudly it found multiple candidates. 14:03
SmokeMachine xinming_: with Red, SQL should always be implementation detail... 14:04
Doc_Holliwood ah, somebody already opened an issue for this 14:06
nine Doc_Holliwood: I disagree. That would only move the issue further down, because once zef guesses what you actually meanyou will still stumble ofver rakudo refusing to make any guesses. If you only give it the module's short name, rakudo will load the highest version, regardless of where it comes from 14:12
Kaiepi releasable6, status 14:34
releasable6 Kaiepi, Next release will happen when it's ready. 1 blocker. 248 out of 451 commits logged (⚠ 9 warnings)
Kaiepi, Details: gist.github.com/26bcdfea4af1a860c2...0474a02bf7
xinming_ SmokeMachine: I believe I have another bug, i'll try to narrow down 14:48
It'll results wrong sql generation
uzl[m] [Coke]: re non-technical article: I would, especially if it goes over the history of the language, the reasons for the rename and how everything played out. It'd be a good place to send folks interested in the history of the language to. Like racket-lang.org/new-name.html but it bit more extensive. 15:00
SmokeMachine xinming_: what’s the error? 15:03
[Coke] uzl[m]: that sounds nice, but beyond the scope of what I was thinking. 15:11
Geth_ doc: uzluisf++ created pull request #3077:
Clarify topic variable's status in for loop
15:32
tony-o tbrowder: i assume you mean in the READMEs, no problem, thank you for writing those mods 16:11
Geth_ doc: c685c58b83 | (Luis F. Uceta)++ | doc/Language/control.pod6
Clarify topic variable's status in for loop

Issue: github.com/perl6/doc/issues/3075
16:29
doc: d930e88da1 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | doc/Language/control.pod6
Merge pull request #3077 from uzluisf/master

Clarify topic variable's status in for loop
tony-o .tell tbrowder i assume you mean in the READMEs, no problem, thank you for writing those mods 16:40
tellable6 tony-o, I'll pass your message to tbrowder
tyil I've been trying to get rakudo-star releasable as a GitLab CI job, but NQP doesn't seem to play nice with the existing tooling 16:50
tyil using 2019.07, the NQP stage fails with `Can't locate NQP/Config.pm` 16:50
tony-o tyil: for 6.e?
tyil nah, just *any* newer rakudo-star release, so that people can get newer rakudo stars 16:51
gitlab.com/tyil/rakudo-star/-/jobs/337605414
tony-o using a docker image or a build directly on gitlab ci?
tyil build directly on latest alpine
vrurg tyil: submodules are not updated
tyil ah
tony-o don't know if it has anything to do with it but that Configure script fails for me on OSX and i have to build moar, then nqp, then rakudo all separately
tyil there was something about that in the release guide 16:52
discord6 <kelly> currently where can we get latest build for linux 16:52
vrurg tony-o: how exactly does it fail?
tyil vrurg: I'm using the tarbal from NQP though, since that's what R* pulls in 16:53
tony-o vrurg: it fails with an error resembling that there is no moar executable found in path
vrurg tyil: there was a problem with tarballs because they did not include files from submodules. I think it was fixed lately.
tony-o i can get a log with the fresh repo if you'd like 16:54
tyil hmm
tony-o last time i'd built was two days ago
xinming_ SmokeMachine: termbin.com/fdf6n This script results error `The relationship '@!children' points to a column ('parent_id') that does not refer to any wher`
vrurg tony-o: try the latest HEAD if possible. There was a bug in MoarVM Configure which didn't report build failures back to usptream and NQP was thinking everything is ok.
tony-o will run now and gist it, tag you and anyone else? 16:55
vrurg tyil: it was depending on how tarball is created though. github was doing it incorrectly, AFAIR
tony-o: best is to have a ticket. I'll follow. 16:56
discord6 <kelly> is compiling from source the best way
vrurg tony-o: I'm totally confused though because macOS is my primary platform, it's where I test.
tyil vrurg: the makefile of r* pulls it from rakudo.perl6.org/downloads/nqp 16:57
tony-o where are we tracking that stuff now? we have too many repos + deprecating RT
vrurg kelly: it depends on what you need. For most people here it is the best way though. :)
tyil but it looks like those refer to github (at least for rakudo)
vrurg tony-o: rakudo/rakudo on github, sure.
discord6 <kelly> is nxadm.github.io/rakudo-pkg/ safe
tony-o it only happens when i remove the current moar executable from PATH 16:58
vrurg tyil: again, I don't remember the details, but there was a discussion about incomplete NQP. I was about to look into it but then it was reported that the problem is not there anymore. So, I guessed it's ok. 16:59
tyil vrurg: I'll try to look around a bit more then, thanks for your info
vrurg tony-o: with --gen-moar it must rebuild it then. 17:00
brass Hey I have a question, is there syntax to bind a key in a hash to an array? Or can you only do that in a separate operation
vrurg tyil: welcome!
brass: ??? What's wrong about @a[$i] := %hash<key>?
Oops, %hash<key> := @a 17:01
brass Like if I wanted to do %a<q> := [1, 2, 3]
tony-o vrurg: how long ago was that bug moarvm failure not bubbling fixed?
vrurg m: my @a := [1,2,3]; dd @a
camelia Array element = [1, 2, 3]
brass Oh because I want to do it in a single statement when I'm initializing the hash
vrurg m: my %h; %h<q> := [1,2,3]; dd %h 17:02
camelia Hash %h = {:q([1, 2, 3])}
tony-o m: my @a = 1,2,3; my %x; %x{a} := @a; @a.push: 5; say @a.gist;
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
a used at line 1
tony-o m: my @a = 1,2,3; my %x; %x<a> := @a; @a.push: 5; say @a.gist;
camelia [1 2 3 5]
brass Like so I could write my %a = {a := @b, b => "foo"}
vrurg brass: ah, no, there is no way. Only by assignment.
brass Got it, thanks! 17:03
vrurg tony-o: Last fix my PR was merged into moar
s/fix/week/
discord6 <kelly> is nxadm.github.io/rakudo-pkg/ safe
vrurg brass: But what's wrong about simple: 17:04
tony-o vrurg: that might explain why it's working now..are you running configure with sudo?
vrurg m: my %h = a => [1,2,3];
camelia ( no output )
vrurg m: my %h = a => [1,2,3]; dd %h
camelia Hash %h = {:a($[1, 2, 3])}
tony-o i think he's wanting to bind the hash key to an array elsewhere so if the original array is modified, so is the hash value 17:05
is that accurate brass ?
vrurg tony-o: No, I avoid that. Do everything under myself.
tony-o do you do --prefix=/usr/local ever or do you use perl6 in place? 17:06
brass Kind of, I actually create a new array, but I want to do it because I later iterate over the array and I got really messed up by having to remove the Scalar container and wanted to know if there was a better way
vrurg tony-o: I install into ~/perl6
brass So I could then write `for %a<q> {}` instead of `for %a<q><> {}` 17:07
vrurg tony-o: I don't need it system-wide.
tony-o m: my @a = 1; my %x = (a => \(@a)); say %x; @a.push: 2; say %x; #brass 17:08
camelia {a => \([1])}
{a => \([1, 2])}
vrurg brass: I would rather recommend using .list for the purpose. 17:11
tony-o ^^
vrurg brass: Or, flatten the argument
m: my %h<a> = <a b c>; for |%h<a> { .say }
camelia 5===SORRY!5=== Error while compiling <tmp>
Shaped variable declarations not yet implemented. Sorry.
at <tmp>:1
------> 3my %h<a>7⏏5 = <a b c>; for |%h<a> { .say }
vrurg oops ;) 17:12
m: my %h = a=> <a b c>; for |%h<a> { .say }
camelia a
b
c
vrurg tony-o: use of capture is such a funny trick. ;) 17:13
tony-o it's ugly, hah
binding is a lot cleaner looking but more lines
vrurg yep, it is. But still - funny. I never considered it from this point of view. 17:14
brass ah
brass I just found that .list looked a little cumbersome and wanted to know if there was a prettier way, that's all 17:15
vrurg kelly: BTW, what do you mean by 'safe'?
MasterDuke kelly: i believe a bunch of people use the repo. El_Che manages it and is pretty active here if you have questions
vrurg brass: then flattening is what you're looking for. Binding is a kind of thing one must use with care as it is prone to bad side effects. 17:16
brass Ok, got it 17:17
Better than removing the container too? 17:18
vrurg brass: To my view – it is. It fits into the logic for iteration better than deconting. 17:20
tony-o yes
brass Thenk 17:21
vrurg brass: jsut consider deconting as a low-level op.
tony-o for low brow people 17:25
rindolf hi all, sup? 18:02
xinming_ SmokeMachine: What does gambi mean in translate method? 18:33
SmokeMachine It’s a work around... 18:34
To avoid infinite loop...
sena_kun SmokeMachine++ # Red talk 18:36
SmokeMachine sena_kun: thanks! :)
xinming_ SmokeMachine: I try to fix the code in the Pg driver. I think I know why .^rs.grep: { .col (<) @array } doesn't work. It's because the values are not bound to @bind 18:38
SmokeMachine xinming_:That makes sense... that was the problem with the delete... 18:40
SmokeMachine xinming_: I have changed the way to bind not too long ago... it’s possible I’ve made some mistakes... 18:43
xinming_: github.com/FCO/Red/commit/3eea4a81...807c16c7e5 18:44
xinming_ SmokeMachine: When we try to use .^rs.grep: { .col (<) @array } if the @array is empty, What should be the correct behavior? return nothing, or we ignore the whole "grep" ? 19:16
I'll mean it returns nothing.. 19:17
SmokeMachine m: say 1 (<) [,] 19:26
camelia False
SmokeMachine Return nothing... 19:27
xinming_: it should always do what it would do with an array...
xinming_ Ok 19:28
xinming_ if you replied, please post again. :-) 19:33
Got it, ignore me 19:34
My first fix is done, Will post the patch 19:37
SmokeMachine: termbin.com/od3h <--- Please check this patch for Pg driver, if the logic is fine, I'll create a pull request for this. 19:38
SmokeMachine xinming_: maybe change the Array for Positional 19:40
xinming_: wouldn’t it be easier an PR?
xinming_ SmokeMachine: I actually think, that in the future, we may traverse the array to allow array to contain ResultSeq object. 19:41
But that'll complex logic a lot, So, I'll keep this simple, When I need, I'll change that. 19:42
SmokeMachine xinming_: make sense... but it would work wit Positional also, no?
xinming_ Yes. 19:43
So, change to Positional is ok?
I'll later create the PR 19:45
brass Does anybody here use Arch? The rakudo-star AUR build is giving me errors 20:50
timotimo brass: can you put the error log up on some paste site so we can have a look? 21:17
brass 0x0.st/zYv-.txt 21:28
timotimo oh, interesting, it's not able to install stuff to the global repo 21:29
i wonder if CompUnitRepo::Staging is the right tool for the job here 21:30
i think nine would know
Geth_ whateverable: a06ae49c07 | (Aleks-Daniel Jakimenko-Aleksejev)++ | lib/Whateverable/Config.pm6
Fix hash initialization (oops)
22:05
whateverable: 47d8d96c59 | (Aleks-Daniel Jakimenko-Aleksejev)++ | META6.json
Bump version
22:06
moon_child brass: I don't use arch anymore, but iirc there was one family of rakudo-related packages that was shitty and didn't work, and one that was great. Possibly the good ones were the -git ones? 22:31
brass The rakudo AUR package builds and installs alright, but the rakudo-star and zef ones are broken 22:41
It's not a big deal since zef can be installed once you have rakudo but it would be nice if the star package worked 22:42
Most places I've tried only have rakudo/moar without -star anyways
Except for MacOS for some reason, the rakudo-star in homeberw installs fine 22:43
Geth_ doc: 1cf3cfa69e | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | doc/Language/faq.pod6
Remove: can also be called "Raku"
22:47
lizmat weekly: blogs.perl.org/users/laurent_r/2019...chart.html 23:17
notable6 lizmat, Noted! (weekly)
SmokeMachine just 2 more tests for Red:api<2>! :) 23:43
if some one would like to help me to review and/or fix the errors... it's here: github.com/FCO/Red/pull/402 23:46