»ö« 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.
Xliff_ m: class A { }; my $a = A.new; $a.^can('a').elems.say 00:20
camelia 0
Xliff_ m: class A { }; my $a = A.new; $a.^can('Int').elems.say
camelia 0
Xliff_ m: enum A (B C); my $a = B; $a.^can('Int').elems.say 00:22
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared names:
B used at line 1
C used at line 1
Xliff_ m: my enum A (B C); my $a = B; $a.^can('Int').elems.say
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared names:
B used at line 1
C used at line 1
Xliff_ m: my enum A <B C>; my $a = B; $a.^can('Int').elems.say
camelia 3
Xliff_ m: my $a = 3.14159; $a.^can('Int').elems.say 00:23
camelia 2
tbrowder__ lizmat: great p6 weekly, as usual! i was a bit disappointed to see info on comparison of maths between p5 and p6 (plus julia). is there going to be any progress in that for p6 in future? 02:06
to be clear, i’m not a mathematician, but one of the many selling points of p6 is math handling. 02:08
AlexDaniel not in the nearest future for sure, but it depends on what you mean exactly 02:12
in case of √2×√2 you're multiplying two irrational numbers, which I guess can be improved one way or another, but I haven't seen anybody suggest that it should be done 02:13
also if anybody really needs this kind of stuff, maybe it can be done in a module 02:15
tbrowder__ AlexDaniel: good points, thnx 02:26
Herby_ o/ 03:06
tison \o 03:18
jmerelo Hi 05:59
araraloren hi 06:00
jmerelo Guess everyone (or most) know that hacktoberfest is on; if you've got some Perl 6 project and want it to participate in it, use "hacktoberfest" as an issue tag: github.com/search?o=desc&q=lab...ype=Issues 06:06
We'll focus on that later on during the Squashathon, but there's no need to limit it to a single weekend... 06:07
Geth ecosystem: 2df72e4615 | (JJ Merelo)++ | 2 files
Completed hackathon guide
06:18
jmerelo .tell AlexDaniel the squashathon guide is completed: github.com/perl6/ecosystem/blob/ma...berfest.md I'll link it from the wiki. 06:19
yoleaux jmerelo: I'll pass your message to AlexDaniel.
jmerelo .tell AlexDaniel oh, well, I see you already did another one... github.com/perl6/ecosystem/blob/ma...berfest.md 06:20
yoleaux jmerelo: I'll pass your message to AlexDaniel.
squashable6 Webhook for JJ/p6-math-constants is now active! Half measures are as bad as nothing at all. 06:22
Geth ecosystem: cd6c210ce5 | (JJ Merelo)++ | docs/Hacktoberfest.md
Adds secret to make it correct
06:24
ecosystem: 66bd4339a4 | (JJ Merelo)++ | 2 files
Updated with secret, camelia and screenshot
araraloren jmerelo Hmm, I have some module, need I add it to Hactkoberfest ? 06:26
jmerelo araraloren: you can do the squashathon, hacktoberfest or both 06:27
araraloren what's the difference ?
buggable New CPAN upload: Getopt-Advance-1.1.2.tar.gz by ALOREN modules.perl6.org/dist/Getopt::Adva...pan:ALOREN
squashable6 Webhook for JJ/p6-algorithm-evolutionary-simple is now active! Non-blocking is better than blocking.
jmerelo araraloren: if you label issues with Hacktoberfest, someone might come up and help you even if you're not in the hackathon. The squashathon is going to take place only over the weekend, and in principle, you don't need to label anything. 06:28
araraloren oh
I think hacktoberfest is better for me :) 06:29
Looks great
jmerelo thanks
Geth ecosystem: fc6bc61a37 | (JJ Merelo)++ | docs/Hacktoberfest.md
Adds FAQ
06:30
jmerelo araraloren: I have added it as FAQ above
araraloren jmerelo And I notice the domain name is 6lang.org, is it mean something ?
Such as the language will rename to 6lang :) 06:31
jmerelo araraloren: it's just a domain we use for hosting stuff, programs, that kind of thing. Including whateverable bots.
araraloren Got it!
jmerelo araraloren: Don't think so. Plus I've always supported þerl
araraloren Haha
Xliff_ \w 07:27
Can someone give me some ideas as to why this error is occurring?
GTK::Roles::ColorChooser is not composable, so GTK::ColorChooser cannot compose it
Why would a role not be composable? Would it have anything to do with having attributes in a role? 07:28
araraloren Xliff_ Never seen this error :) 07:39
Xliff_ araraloren: Yeah. I figured it out. Was originally a class that I turned into a role. 07:40
Forgot to change "class" to "role", LOL!
araraloren ok
tadzik heh, my first thought was "sounds like it's not a role" :P 07:42
araraloren yeah, it should report something like that 07:43
what is composeable :/
tadzik a role is :) 07:44
or maybe something that has a Rolable role composed... 07:45
tadzik hides
Xliff_ tadzik: Never go to a rave. 07:52
Xliff_ hides.
lizmat clickbaits p6weekly.wordpress.com/2018/10/01/...-than-two/ 07:53
Xliff_ lizmat: WHOA! Lotsa good news, and a great writeup! :) 07:56
Xliff_ Does anyone here do any GTK programming? 08:02
scimon gist.github.com/Scimon/0d57fec9a6f...161d19ec36 : So here's something fun.
Any idea why pushing 1 million elements into an Array is noticeably slower than doing it with an Object that just happens to be an array? 08:03
(Like 10 times slower)
timotimo scimon: put the two for loops into subs perhaps 08:04
(if that helps, i can explain exactly why) 08:05
scimon I shall try it. 08:09
ufobat i am running "cro run" in a docker container. when i invoke it like this "docker run -ti vi-restapp:latest cro run" i get a "Usage" from cro, when i run /bin/sh in the container and run "cro run" on the shell it works
what am i doing wrong that cro or MAIN does get it wrong 08:10
timotimo maybe you need to pass the command and its arguments in quotes or something
ufobat my Dockerfile is like ENTRYPOINT ["/bin/sh", "-c"] and CMD ["cro", "run"] 08:11
thats what i actually want to start
scimon If that's you'r CMD then you just need "docker run -ti vi-restapp:latest"
timotimo oh, perhaps you were calling "cro run cro run" 08:12
timotimo "see cro run. run cro run" 08:12
ufobat if i provide a command in docker run i override the cmd, dont i?
ufobat providing no command, as you suggested scimon, same behaviour, i get the usage from MAIN 08:13
is my ENTRYPOINT wrong, maybe? 08:14
cause i needed to set the entry point because i wanted to override the perl6 entry point of jjmerelo/alpine-perl6
scimon Hmmm... yeah command args should override your CMD from the docker file. In my Cro app I'm using `perl6 -Ilib service.p6` but I've got a weird docker entry too. 08:17
timotimo: Moving to code into subs didn't make a difference.
timotimo well, that's interesting 08:18
ufobat scimon, a weired docker entry? what do you mean? 08:19
scimon My Cro system runs an entry point script that starts by using Amazon KMS to decode and populate some ENV vars and also creates a static config js file. (So it's a bit weird). 08:20
timotimo one of them isn't jitted for some reason 08:21
scimon (Heck the Dockerfile is two parts. First a VUE.js system that prerenders itself into static files then a secod Cro image that copies the static files in from the first.
looks like the array one (from the speed). 08:22
I would have expected the $a one to be slower than the @a one not the other way around. 08:23
timotimo what fun, List.pm6's is-lazy is being called two million times, too, and it takes 16.5% of total run time
araraloren oh 08:24
scimon (I should get more into the guts of things. Today is a day of meetings though)
Xliff_ m: sub a (Int() $a, Int() $b) { say $a; say $b; say $a.Int; say $b.Int; }; a(True, False); 08:30
camelia True
False
1
0
Xliff_ Shouldn't that output be 1,0,1,0? 08:31
timotimo scimon: pro tip: if you switch around versions one and two, the order of "fast, slow" stays the same
jnthn No, because Bool is an integer-based enumeration 08:32
yoleaux 1 Oct 2018 20:09Z <lizmat> jnthn: I wonder whether our approach in BUILDALL could be improved by also generating a custom new method with a dedicated signature
Xliff_ m: sub a (Int $a, Int $b) { say $a; say $b; say $a.Int; say $b.Int; }; a(True, False);
camelia True
False
1
0
Xliff_ jnthn: Wouldn't that make all enums integer based?
m: sub a (Int $a, Int $b) { say $a.^name; say $b.^name; say $a.Int; say $b.Int; }; a(True, False); 08:33
camelia Bool
Bool
1
0
timotimo Xliff_: no, you can have string based enums, too
Xliff_ Agh. I didn't think about that.
jnthn .tell lizmat No, custom `new` is too user-visible and we don't need to code-gen it to get more speedups (there's various tricks we can do in spesh) 08:36
yoleaux jnthn: I'll pass your message to lizmat.
lizmat . 08:36
yoleaux 08:36Z <jnthn> lizmat: No, custom `new` is too user-visible and we don't need to code-gen it to get more speedups (there's various tricks we can do in spesh)
lizmat ok :-)
lizmat jnthn: as that was the only real difference I saw between the original benchmark and Zoffix's version 08:38
scimon timotimo: Ok... now that's just.... WTF? 08:51
timotimo scimon: something is making spesh unhappy 08:52
scimon Yeah.
So the takeaway is that's there's actually not much in it between using @a or $a to hold an array speed wise. But I've found a new way to make spesh sad? 08:56
jnthn No, it's reasonably well known that if you put one hot loop after another then it'll only manage to do much with the first one. 08:57
(Well known to those of us working on spesh, at least) 08:58
timotimo jnthn: i still reproduce it if i put the for loop into two different subs and only call the subs 08:59
jnthn That's more interesting... 09:00
timotimo even when they're method calls and as such less obviously inlinable 09:01
ufobat timotimo, scimon, i reduced my problem to those 2 files here: github.com/ufobat/docker-cmd-helpme-pls - i would be happy if you could have a look at it 09:01
but i assume it isnt a perl6 issue 09:02
scimon ufobat: taking a quick look. 09:15
ufobat thank you 09:16
scimon Ahhhh. I remember this now. Basically docker run IMAGE './script.pl6 run' works. ... I think you need to look at medium.freecodecamp.org/docker-ent...c591c30e21 for a general idea. 09:22
If you update your ENTRYPOINT to ["./script.pl6", "run"] is works fine. 09:23
(For instance)
ufobat if i change my entrypoint from ['/bin/sh', '-c'] to [] it works Oo 09:25
scimon (Also see docs.docker.com/engine/reference/r...-defaults)
ufobat i have a look at your link in a few minutes. i am on the phone 09:26
scimon No probs.
El_Che entrypoint and cmd can be confusing 09:27
also because there are 2 syntaxes
entrypoint == cmd always run (can be overwritten with --entrypoint) 09:28
cmd == args for entrypoint
if entrypoint is empty, first in cmd is the command
[ ] syntax uses execv (no shell)
"" calls "sh -c" 09:29
e.g. if you use shell things like env vars, pipes, stdout redirection, etc
ufobat but i changed my entrypoint from ['sh', '-c'] to [] and that made it working 09:37
Skarsnik Hello 09:38
yoleaux 11 Aug 2018 19:28Z <AlexDaniel> Skarsnik: rt.perl.org/Public/Bug/Display.htm...xn-1573999
Skarsnik hm, anyone remember if a special Perl module was needed to build rakudo 2016.01.1? 09:39
Skarsnik nvm, it was Module::Install 09:42
AlexDaniel`, Interesting, could be worth checking debug trace when it crash
Skarsnik hm, it was not this module. I get /usr/bin/perl Configure.pl --optimize --prefix=/mnt/f/Project/Perl6/benchmark/rakudo-2016.01.1/install --make-install 09:45
Can't locate build/setup.pm in @INC (you may need to install the build::setup module)
Xliff_ Wow! 10:09
Over 35kloc and Perl6 takes almost 5 minutes to compile and run the whole thing. 10:10
Geth doc: MorayJ++ created pull request #2349:
Add credit to credits file
10:19
Geth doc: 5b975dedc4 | MorayJ++ | CREDITS
Add credit to credits file

Add name to CREDITS.MD
10:39
doc: 4336e4be80 | MorayJ++ (committed using GitHub Web editor) | CREDITS
Merge pull request #2349 from MorayJ/add-credit

Add credit to credits file
Skarsnik hm this error disapear in 2016.09 10:42
timotimo Xliff_: with --stagestats you could see what part of it is compilation and what part of it is running 10:46
that could be interesting
well, if it's one file, that is
Xliff_ timotimo: It's not. It's a ... large amount. 10:48
And I was using stagestats and time. ;)
timotimo OK!
Skarsnik fun rakudo compilation does not trigger the game mode of my cpu x) 10:51
jmerelo Skarsnik: my UPS starts to beep every time I do it... 10:56
jmerelo say <not there yet>.join("\n").lines.elems 11:42
evalable6 3
Geth doc: b62ad101f3 | (JJ Merelo)++ | doc/Type/Str.pod6
Improves lines with another example
11:58
doc: 81981bdc5a | (JJ Merelo)++ | doc/Language/subscripts.pod6
Some rewriting and eliminating a TODO
synopsebot Link: doc.perl6.org/type/Str
Link: doc.perl6.org/language/subscripts
doc: 4a03fe8015 | (JJ Merelo)++ | doc/Language/setbagmix.pod6
Trying to find out stuff about TODOs, refs #2277
synopsebot Link: doc.perl6.org/language/setbagmix
Geth doc: 14b911a64a | (JJ Merelo)++ | doc/Language/setbagmix.pod6
Eliminates 4-year old TODO
12:02
doc: 9464094a47 | (JJ Merelo)++ | doc/Language/setbagmix.pod6
Eliminates another TODO

It's 4 year old, most stuff after that has changed. It might need some revision, sinde some parts are 5 year old; for instance, including the signature of the operators, which now have many other multis (and we no longer include signatures here), but essentially it's changed a lot after that comment. Refs #2277
synopsebot Link: doc.perl6.org/language/setbagmix
AlexDaniel . 12:18
yoleaux 06:19Z <jmerelo> AlexDaniel: the squashathon guide is completed: github.com/perl6/ecosystem/blob/ma...berfest.md I'll link it from the wiki.
06:20Z <jmerelo> AlexDaniel: oh, well, I see you already did another one... github.com/perl6/ecosystem/blob/ma...berfest.md
AlexDaniel heh, now we have two guides :) 12:19
I forgot to delete the .md file when I moved it /o\
“If you host your module at GitLab or somewhere else, you can do this too” 12:22
can you?
are gitlab webhook payloads compatible with github payloads? 12:23
buggable New CPAN upload: WriteOnceHash-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz 12:27
buggable New CPAN upload: WriteOnceHash-0.0.2.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.2.tar.gz 12:47
buggable New CPAN upload: WriteOnceHash-0.0.3.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.3.tar.gz 13:07
leont What are \ arguments/variables called again? 13:31
jkramer sigilless
leont Thanks 13:33
pmichaud Re: issue #2338 -- I'm confused by the meaning of "is required" on a hash. 15:08
pmichaud is it intended to mean that the hash must be non-empty? 15:08
pmichaud Also, good morning #perl6 15:10
pmichaud or is it simply that it needs to be instantiated in BUILD instead of being auto-built? 15:13
s/instantiated/bound or initialized/
jnthn I believe the latter, though in reality the mechanism is "did the attribute get touched during instantiation" and so hangs off lazy allocation of attributes 15:15
And assignment causes the container to assign into being vivified 15:16
And the reason for 2338 is, I believe, that the lazy initialization thing can't work for any old type :/ 15:19
jnthn Those of us working on JIT/opt stuff are also grumpy about this particular mechanism, since it makes attribute access more costly than it should be (since it always has to do a vivification check) 15:20
Plus it doesn't behave sensibly for natives either
m: class C { has int $.x is required } 15:21
camelia ( no output )
jnthn m: class C { has int $.x is required }; C.new
camelia The attribute '$!x' is required, but you did not provide a value for it.
in block <unit> at <tmp> line 1
jnthn m: class C { has int $.x is required }; C.new(x => 42) 15:22
camelia ( no output )
jnthn m: class C { has int $.x is required }; C.new(x => 0)
camelia The attribute '$!x' is required, but you did not provide a value for it.
in block <unit> at <tmp> line 1
jnthn bah...why wasn't that just made a compile-time error :/
[particle]1 www.washingtonpost.com/politics/20...bde6e8cf94
AlexDaniel ? O_o 15:37
lizmat jnthn: should I be looking at QAST generating an alternative for attrinited ? 15:42
pmichaud personally, I'd be fine with "is required" <=> "you touched the thing during instantiation", but I'll leave it to other heads to figure out. :) Thanks for the clarification. 15:44
lizmat pmichaud: I'm going for that interpretation 15:45
for now, anyway
pmichaud BTW, the docs page on "is required" only mentions scalar variables, a hash or array example might be useful there.
jnthn lizmat: I've thought long and hard about how we can replae an alternative for attrinited, and didn't yet find a good one... 15:46
oops, refactor that sentence in either of the 2 ways that make it make sense :)
lizmat we would only need this for classes with attributes with default values or "is required" right ? 15:48
jnthn Correct
lizmat so any overhead would only apply to those classes
and we could lose the attrinited overhead for all others
pmichaud: perhaps make a doc issue ? 15:52
SmokeMachine is .HOW the best way to test if a type is an enum? 15:57
m: enum Bla <a b c d e>; say Bla.HOW ~~ Metamodel::EnumHOW
camelia True
SmokeMachine m: enum Bla <a b c d e>; say Bla.^can: "enum_values" 15:58
camelia ()
SmokeMachine m: enum Bla <a b c d e>; say Bla.HOW^can: "enum_values"
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
can used at line 1. Did you mean 'tan', 'cas'?
SmokeMachine m: enum Bla <a b c d e>; say Bla.HOW.^can: "enum_values"
camelia enum_values 15:59
Geth ecosystem: 21da251085 | (Fernando Correa de Oliveira)++ (committed using GitHub Web editor) | docs/Hacktoberfest.md
Update Hacktoberfest.md
16:10
squashable6 Webhook for FCO/Red is now active! Non-blocking is better than blocking. 16:14
Geth doc: 0707dbc0d7 | (JJ Merelo)++ | doc/Language/glossary.pod6
Eliminates note abour :rotate in example
16:49
doc: 148bfc97ab | (JJ Merelo)++ | doc/Language/subscripts.pod6
Eliminates a TODO refs #2277

Basically adds an example which shows the convenience of binding a hash value to a data structure, as requested by comment.
synopsebot Link: doc.perl6.org/language/glossary
synopsebot Link: doc.perl6.org/language/subscripts
buggable New CPAN upload: P5getpriority-0.0.5.tar.gz by ELIZABETH modules.perl6.org/dist/P5getpriorit...:ELIZABETH 16:57
El_Che lizmat is unstoppable 16:58
vrurg I've got a question which is too long to be asked here. Would very much appreciate any advices here: stackoverflow.com/questions/526130...indattr-vs 17:06
jmerelo vrurg: is there some reason why you want to use NQP? You can probably achieve the same using the meta-object protocol. 17:27
Xliff_ \o 18:14
I'm getting signed integers back from GTK and things work fine the first time around. However when I re-run the routine again, the signedness is gone. 18:15
My example code returns -6. I get -g the first time and then 4294967290 the second. 18:16
s/'-g'/-6/
jmerelo Xliff_: number precision overflow? 18:17
Xliff_ If force the scalar to a native int, like int32... things work like I expect.
jmerelo: I am hoping its something silly that I'm doing.
But I don't see how it's an overflow. More like the first time the signedness is communicated, and subsequent times it is not. 18:18
jmerelo Xliff_: well, that big number... Looks like a negative number is converted to unsigned along the way... not precision overflow, but wrong conversion, I guess. Some native thing... 18:19
Xliff_ m: 0b11111111111111111111111111111010.say 18:19
camelia 4294967290
Xliff_ ^^ That's negative 6 representation. 18:20
Xliff_ m: use NativeCall; my int32 $a = -6; my $b = $a; say $b; 18:21
camelia -6
jmerelo m: use NativeCall; my int32 $a = -6; my UInt $b = $a; say $b;
camelia Type check failed in assignment to $b; expected UInt but got Int (-6)
in block <unit> at <tmp> line 1
Xliff_ m: use NativeCall; my int32 $a = -6; my uint32 $b = $a; say $b;
camelia 4294967290
jmerelo m: use NativeCall; my int32 $a = -6; my UInt $b = 0+$a; say $b;
camelia Type check failed in assignment to $b; expected UInt but got Int (-6)
in block <unit> at <tmp> line 1
jmerelo Right
Xliff_ Yup... somehow it's turning unsigned and returning. 18:22
Should be same code path.
Weird. 18:25
I put the return value into a gint, rather than returning it directly and it works.
And I have no idea how I would golf this, and putting up my project and submitting a ticket would probably get the ticket..... delayed. 18:26
And rightly so.
Xliff_ Needless to say... that's a lot of fixing to do. :/ 18:27
jmerelo Xliff_: if it works.. leave it at that... 18:53
Xliff_ Yes. 18:56
For now.
buggable New CPAN upload: Sparrowdo-VSTS-YAML-Cordova-0.0.11.tar.gz by MELEZHIK modules.perl6.org/dist/Sparrowdo::V...n:MELEZHIK 19:07
buggable New CPAN upload: Sparrowdo-Cordova-OSx-Build-0.0.6.tar.gz by MELEZHIK modules.perl6.org/dist/Sparrowdo::C...n:MELEZHIK 19:17
Skarsnik hm, was that a know bug in 2017.10 19:41
--setting=NQPCORE --no-regex-lib --target=mbc \
--output=gen/moar/stage2/QASTNode.moarvm gen/moar/stage2/QASTNode.nqp
Segmentation fault (core dumped)
/mnt/f/Project/Perl6/benchmark/rakudo-2017.10/install/bin/moar --libpath=gen/moar/stage1 gen/moar/stage1/nqp.moarvm --bootstrap --module-path=gen/moar/stage2 --setting-path=gen/moar/stage2 \ 19:42
buggable New CPAN upload: PDF-Class-0.2.9.tar.gz by WARRINGD modules.perl6.org/dist/PDF::Class:cpan:WARRINGD 19:57
Skarsnik Is there a way to disable precompilation entierly to run a script? (so even dep are not precompiled) 20:11
Geth doc: ca198c7080 | Coke++ | doc/Language/glossary.pod6
fix compilation error
20:16
doc: 83ea8aedc1 | Coke++ | 2 files
whitespace
synopsebot Link: doc.perl6.org/language/glossary
[Coke] Skarsnik: pretty sure you can only disable it in a particular compilation unit; so you can 'no precompilation' in your own code, but if you're including a library, don't think so 20:17
Skarsnik My issue I have old code that was crashing rakudo already 2-3 years ago and it still does it now (crash before or after BEGIN phaser) and I think it's an issue with precomp 20:20
gist.github.com/Skarsnik/e16b07a32...a75c62a1c5 20:21
[Coke] out of curiosity, any nativecall in there? 20:23
Skarsnik nop
[Coke] if not (and maybe even if so) a golf showing the segfault would be very helpful in tracking it down. that's a pretty recent rakudo. 20:24
timotimo Skarsnik: shouldn't be terribly hard to put a "return false if nqp::getenvhash()<RAKUDO_IGNORE_PRECOMP_FILES>" in the right spot 20:25
Skarsnik (I don't rememnber much) but I was trying to add a type-eq operator to compare Class and it start segfaulting when adding github.com/Skarsnik/gptrixie/blob/...ss.pm6#L73 20:26
I tried using this file alone in a script, but I did not get any issue
SmokeMachine is there a way to make a file (a schema file) that you describe every file that it should use (one file can use types from the other and vice-versa) and it import both without circular loading and without problem of not existing a type not yet loaded? 20:56
buggable New CPAN upload: Sparrowdo-VSTS-YAML-Build-Assembly-Patch-0.0.3.tar.gz by MELEZHIK modules.perl6.org/dist/Sparrowdo::V...n:MELEZHIK 20:57
timotimo run-time loading with require perhaps :) 20:58
SmokeMachine heres an example: gist.github.com/FCO/4578d9935eb355...563d7e6ec6 21:02
SmokeMachine (there are 3 files on that gist) 21:02
timotimo hm, not sure how exactly the data will be organized at run-time, perhaps the schema would be fine loading the classes at run-time? 21:03
SmokeMachine timotimo: Sorry, I didnt get it... do you mean that meybe only `use`ing could make it work? 21:05
buggable New CPAN upload: Sparrowdo-VSTS-YAML-Build-Assembly-Patch-0.0.4.tar.gz by MELEZHIK modules.perl6.org/dist/Sparrowdo::V...n:MELEZHIK 21:07
timotimo i meant more like "require"
SmokeMachine timotimo: do you mean something like this? glot.io/snippets/f5cvyya8x6 21:14
timotimo kind of, but the other way around; the classes wouldn't be able to have a type constraint based on something "require"d, at least i don't think so 21:16
but if the main file that sets up the schema does the run-time require, that might be fine
Skarsnik hm, still no plan to support circular dependancies btw? or just too much work 21:25
timotimo i don't know of a plan, but i don't have the full perspective on this topic either
geekosaur afaik all there is is forward declarations 21:26
SmokeMachine timotimo: I tryed this, and its hanging... www.irccloud.com/pastebin/MIQsH4OL/ 21:28
Skarsnik I have 2 use case for circular depancies : 1/ Mapping C headers to perl 6 code (libxml) 2/ Discord/IRC type: an User is in a Channel and a Channel has a list of Users 21:34
SmokeMachine Red ORM table relationships is mine 21:35
[Coke] the support is there - but you need to have all self referential things in a single compilation unit. 21:41
ChoHag Circular _dependencies_ is usually a sign that you're doing something wrong. eg. in the IRC case the initial user doesn't 'own' the channel's user list so if it's a dependency, it's of a different sort. 21:47
Skarsnik we are not in database 21:49
class User { has Channel $.channel-ins} make sense
Skarsnik or @.channels-in 21:50