»ö« 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.
cpan-p6 New module released to CPAN! Console::Blackjack (1.0.1) by 03GDONALD 01:02
Geth ¦ problem-solving: AlexDaniel assigned to jnthn Issue "Perl" in the name "Perl 6" is confusing and irritating github.com/perl6/problem-solving/issues/81 06:03
SmokeMachine Is there the Riga’s opening TimToady’s vídeo available anywhere I could watch? 06:28
integfred Hi, does anyone know if automake, openssl, and the linux kernel is able to build with rakudo perl? 06:38
i'm currently including perl5, but it uses cmd.exe to build using mingw, perhaps perl 6 is different in that it may be able to cross compile somewhat better, assuming it can build the above 06:41
uid9164 <code>perl5 -e "my @a = split(',', 'a,b,c,d'); print @a[0];" <output> a 06:46
<code>perl -e "my @a = split('\s', 'a b c d'); print @a[1];" <output> b 06:49
sorry
<code> perl5 -e "my @a = split('\s', 'a b c d'); print @a[1];" <output> b 06:50
<code> p6 -e "my @b = split('\s', 'a b c d'); say @b[1];" <output> (Any)
How should I write the split pattern to get @b[1] = 'b' in perl6? 06:51
It works in perl6 by typing "my @b = split(' ', 'a b c d'); say @b[1];" 06:53
OK, I just felt confusing. 06:55
tadzik SmokeMachine: it was a part of day1's '$' room livestream, but I think that video is down now for some reason 06:59
I assume it was live while it was... live, and now we'll have to wait for it to be uploaded as a separate video 07:00
otoh, room @ seems to be up
Geth whateverable: 3bba6abff0 | (Aleks-Daniel Jakimenko-Aleksejev)++ | xbin/Tellable.p6
Use :!g as a workaround for sub s issue
07:01
tobs integfred: Perl 6 is not a drop-in replacement for Perl 5. It won't be able to run these build scripts correctly. 07:07
ttobioetiker good morning all. I am preparing a docker image for a large perl6 project ... and I would like for it to be precompiled ... is there a way to just get everything precompiled, short of runnig the actuall application ? 07:08
cygx Hey, I'm famous: just got quoted in lizmat's keynote for calling Perl6 abysmally slow ;) 07:21
SmokeMachine tadzik: thanks! 07:22
AlexDaniel`: What mean "being involved on the project"?
cygx ttobioetiker: gist.github.com/cygx/9b2b8add4b8ce...f597b68999 07:30
it's not yet particularly user-friendly, but there's some related Google Summer of Code work being done right now 07:31
SmokeMachine m: say "a\n\tb\n\t\tc\n".subst: /\s+/, " " 08:05
camelia a b
c
SmokeMachine is that expected?
m: say "a\n\tb\n\t\tc\n".subst: /\s+/, " ", :g # Im too dumb... 08:08
camelia a b c
kawaii Is there anyone in the community doing Perl 6 streams at all? I haven't seen anyone doing it but figured it might have some interest. 08:20
As in like, livestream working on a project or module.
tadzik SmokeMachine: quoting the #yapc: That's a Google thing. Long streams take longer to process and move to viewable after stream stops. Give them time to churn the data 08:32
discord6 <Aearnus> kawaii: that could be a lot of fun 08:59
<Aearnus> I'd be down 09:00
kawaii Aearnus: well, I recently started using my Twitch channel, and had the idea of code-reviewing an old unfinished P6 project, and working on refactoring it on stream, could be interesting :) 09:03
discord6 <Aearnus> Yes! It's late here and I might not stick around tonight, but I'll shoot you a follow 09:04
AlexDaniel SmokeMachine: well, being on that list means that you'd have to give your opinion on every such issue 09:05
SmokeMachine: so if you're doing perl6 stuff and want to be involved in that, you qualify :)
kawaii: right, well, I haven't seen anybody doing perl 6 streams yet 09:06
eiro hello people. the download page of rakudo.org is probably outdated and i would like to add the guix package in the 3rd party. any repo for pull requests ?
kawaii I don't think the rakudo.org site is public. 09:07
AlexDaniel kawaii: I personally livestream sport events using pan-tilt-zoom cameras that are operated by perl6, but that's not what you were asking for :)
kawaii At least, I've never seen a repo for it
eiro neither did i
AlexDaniel github.com/perl6/rakudo.org
eiro AlexDaniel: thanks
i checked the rakudo namespace 09:08
SmokeMachine AlexDaniel: is that list alphabetically ordered 09:08
AlexDaniel yeah, it's also weird becase moarvm website is in moarvm org github.com/MoarVM/moarvm.org 09:09
kawaii AlexDaniel: haha, not quite but I think I'll schedule a date and time for doing a trial stream just to see how it works out, then I can thinly veil my requests for help without annoying the IRC too much ;)
AlexDaniel but that inconsistency is known and we'll probably move it soon
kawaii: sounds great
SmokeMachine:
SmokeMachine: yeat
yeah* 09:10
:)
SmokeMachine PRed
chloekek Oh cool, Rakudo in Guix. 09:12
eiro chloekek: yeah :) but i spot a bug in it: NativeCall don't find the .so files
very frustrating
AlexDaniel SmokeMachine: hmm, I can't see it yet? 09:13
Geth problem-solving: FCO++ created pull request #82:
Add my name to the list
chloekek eiro: That's a feature if the .so is not an input to the build description of the Perl 6 program in question.
eiro (there was the same on debian package and it's fixed now)
SmokeMachine sorry... I should have clicked on that button... :) 09:14
eiro a feature ? how so? my code just doesn't work anymore ... 09:14
kawaii all bugs are features 09:15
eiro (so i have 2 rakudo on my machine: the debian one (outdated) and the guix one (without NativeCall))
chloekek Depending on files being there without them being mentioned in the build script makes the build unreproducible. :)
But if NativeCall doesn't work at all then that's bad. 09:16
eiro kawaii: protecting myself from my own sins... like a big brother
chloekek I maintain a Nix package for Rakudo and NativeCall works just fine, what does the Guix one look like?
eiro well ... i just made guix edit rakudo to see it. i'm waiting for the source 09:17
please let me some seconds 09:18
chloekek eiro.seconds++
tadzik :P
Geth problem-solving: kawaii++ created pull request #83:
Adding kawaii to the reviewers list
09:19
Doc_Holliwood where do i find the sourcecode of the Promise module= 09:20
?
eiro chloekek: i'm talking with the maintainer right now on #guix
tadzik Doc_Holliwood: github.com/rakudo/rakudo/blob/mast...romise.pm6 I think
chloekek Doc_Holliwood: github.com/rakudo/rakudo/blob/mast...romise.pm6
AlexDaniel SmokeMachine++ kawaii++ 09:24
efraim hello everyone! 09:25
eiro chloekek: finally please give me some minutes :)
eiro people: efraim is the maintainer of the guix package 09:26
efraim: thanks for your work and thanks for joining
efraim no problem, I figured I should take a look at it
SmokeMachine \o/ 09:27
efraim here's the package I created from SDL2::Raw dpaste.com/1Z31KW1
and this is the build-system it uses git.savannah.gnu.org/cgit/guix.git...system.scm 09:28
Geth problem-solving: 6a52fafa65 | (Fernando Correa de Oliveira)++ (committed using GitHub Web editor) | README.md
Add my name to the list
problem-solving: 1b4a81e0c3 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | README.md
Merge pull request #82 from FCO/patch-1

Add my name to the list Welcome!
problem-solving/revert-82-patch-1: 10b7c14384 | (Aleks-Daniel Jakimenko-Aleksejev)++ (committed using GitHub Web editor) | README.md
Revert "Add my name to the list"
09:30
cygx masak's live... 09:31
efraim for completeness our rakudo package is here: git.savannah.gnu.org/cgit/guix.git...6.scm#n166 09:32
efraim and the bug report with my notes debbugs.gnu.org/cgi/bugreport.cgi?bug=36973 09:33
tadzik "Perl 6 Userspace Explorer" reminds me of the good old Perl 6 mmorpg 09:35
which of course is masak's: strangelyconsistent.org/blog/perl-6-is-my-mmorpg
Geth problem-solving: 4c72730d38 | (Aleks-Daniel Jakimenko-Aleksejev)++ | README.md
Revert "Merge pull request #82 from FCO/patch-1"

This reverts commit 1b4a81e0c31f3bb458347b3feab834bbca8d5ad5, reversing changes made to 164f37f841186a4b678ad2fbc524ea42b4cdae5b.
09:37
eiro meeting. have to leave
cya
Geth problem-solving/merge-mishap: 7af1dfc3f9 | (Fernando Correa de Oliveira)++ (committed by Aleks-Daniel Jakimenko-Aleksejev) | README.md
Add my name to the list
09:40
Geth problem-solving: AlexDaniel++ created pull request #84:
Add FCO to the list
09:44
AlexDaniel SmokeMachine: sorry for the noise :)
Doc_Holliwood I struggled all morning trying to find out how to add a timeout to my code from yesterday. But now the penny dropped. 09:52
pastebin.com/B3WpFfrg
I expected Promise.anyof( PromiseIn( $timeout ), $promise ) to return whatever Promise is kept first, which is bollocks of course 09:56
ugexe of course! 10:58
SmokeMachine AlexDaniel`: np! 11:05
Kaiepi how do you handle code examples that need to throw in the docs? 11:24
Kaiepi nvm, checked the exceptions page 11:29
Geth whateverable: dec2b50901 | (Aleks-Daniel Jakimenko-Aleksejev)++ | xt/tellable.t
Add normalization tests
11:34
El_Che hopefully yesterday video will be up soon. Saw half of jnthn's talk and want to see the rest :) 12:24
(there was a copyright complain so google took it offline. it will be up after shadowcat van chop the videos)
timotimo damn 12:25
tadzik ugh
timotimo i hope there will be a big shitstorm against google for this
El_Che tadzik's one is still hope 12:26
tadzik how many people can we rally up to make a peertube for this?
El_Che also saw half last night
tadzik because frankly, fuck google
El_Che some ranting about OO :)
timotimo i'm just now watching tadzik's talk about moose
www.youtube.com/watch?v=u12t4PiM7pQ&t=65s
El_Che at 1 am I decided that tadzik would forgive me if I watched the rest today and went to bed :)
(now starting liz talk) 12:27
tadzik El_Che: I will :)
in fact I already have! :P
El_Che :)
tadzik feel free to poke me about the details or whatnot
El_Che it was interesting so far
sound was sometimes less when your shirt touched the mic :) 12:28
next time use a mic like madonna or lady gaga :)
tadzik hehe 12:29
I heard some complaints about the audio, yeah
from what I've heard the provided microphones weren't stellar 12:30
timotimo there's some microphone-rubs-against-fabric noise, or maybe it's radio trouble 12:34
timotimo briefly rolls a "takes" syntax for perl6 around in his head
hmm, immootability 12:35
chloekek timotimo: What is takes? 12:37
timotimo one point in tadzik's talk is that people tend to abuse "has" to specify arguments to the constructor, even when the things that go there are not actually needed to be stored in the object 12:38
in a later slide he shows a "needs" syntax which is much like what i would have imagined "takes" to do 12:39
but in perl6, that's probably better done with multi submethod BUILD
damn
timotimo when tadzik says "i look like this, meet me in the hallway track if you have questions", he's outside the camera's view at that moment 12:40
so how do i know if tadzik looked any different in that moment
like, does tadzik have a physical manifestation for giving talks and one for haunting the hallways?
there's no way to know 12:41
chloekek I think a solution to this would be to better document new, bless, and BUILD. 12:42
chloekek I think the current design is ok but hard to grasp. It's not clear how to write custom constructors. 12:43
timotimo yeah, the difference between "how easy is it to use" and "how easy it is to understand" is surprisingly vast for this 12:44
chloekek Took me a long time to realize BUILD is called on each class in the hierarchy, with the fitting keyword arguments from bless. 12:45
timotimo right 12:49
sena_kun El_Che, o/ 12:50
sena_kun your wish was granted! (with some grammar mistakes alas) 12:51
El_Che sena_kun: how was it? looking forward to see it
(watching liz's talk)
sena_kun El_Che, dunno, but some people have said to me it was pretty fine for the first time for someone without much experience, I didn't run out of time (wow), and I hope the mistakes were not fatal to express things. :) 12:53
El_Che I am exited about your work, so I am sure it will be fine! 12:54
and not being a native english speaker I get the extra trouble
sena_kun El_Che, enjoy. :) 12:55
timotimo not everybody can have learned an excellent english like me did
El_Che ttps://www.youtube.com/watch?v=5035TY5RSpg <-- loved this scene 12:56
www.youtube.com/watch?v=5035TY5RSpg <-- loved this scene
timotimo ahaha
yes, that was fantastic
sena_kun timotimo, well, by now my written one is mostly fine or fine enough, but when it coems to speaking, it is like once in a year, lol, so my mouth just doesn't do right things. :S 12:57
timotimo that actor was actually german, wasn't he?
sena_kun s/coems/comes/
timotimo i used to spend time on voice chat regularly with english speakers, i haven't done that in a long while 12:58
tadzik tadzik.net/talks/perlcon-moose/ the last two slides show this 13:02
tadzik needs vs has 13:02
chloekek timotimo: what was this talk called? About needs.
tadzik I don't like publishing slides in general; I feel like if they're useful without the talk itself then I've become a writer, not a speaker and I should've just stayed home
chloekek: How Moose Made me a Bad Programmer, room @, day 1, first talk 13:03
jast well, the published slides might help those who attended the talk recall the key points more easily
I do agree with the general sentiment though
chloekek tadzik: Thanks! 13:04
tadzik good point; fair enough
chloekek never used moose, only bless and hashes
tadzik chloekek: re documenting things better: absolutely. But I'd also like for the better thing to be easier to write in general, even if you know what you want to do :) 13:05
so that you have to fight the tool if you want to do things wrong – not to do things right :)
tadzik timotimo: right; Perl 6 has way more resources to do this right, mostly by having really powerful subroutine signatures 13:13
perhaps in our case this is indeed a documentation/education problem :)
timotimo we need a formal docucation 13:14
cygx tadzik: not entirely
you still have to jump through hoops to make Point.new(3,4) work
tadzik cygx: well, you have to do more than with named arguments, yes 13:15
whether that's jumping through hoops? Not sure 13:16
timotimo but really you want special syntax for that: sub infix:<·>($x, $y) { Point.new(:$x, :$y) }
tadzik :>
El_Che lizmat++ 13:17
tadzik but from the top of my head, I'm not sure: should I write `method new(Int $x, Int $y) { self.bless(:$x, :$y) }` or `submethod BUILD(Int $!x, Int $!y) { }` 13:18
I'd rather write the first one because I think I actually got it right
timotimo correct, BUILD doesn't get positional args
tadzik wait, at all? 13:19
timotimo that's right
tadzik then I truly don't get it :P 13:19
timotimo positionals don't work well with the "call every BUILD in the object's hierarchy" thing 13:20
tadzik ah right
chloekek Also, kwargs that are not taken by any of the BUILDs are silently ignored, no error.
tadzik but yeah, default .new accepts slurpies anyway
slurpy nameds I mean
timotimo chloekek: there's actually a module in the ecosystem for that! \o/ 13:21
tadzik and when you rewrite it to handle positionals you don't need your own BUILD anymore
or two :P
github.com/tadzik/ClassX-StrictConstructor that's mine
Class Constrictor
chloekek coolio 13:22
jnthn
.oO( ClassX::StructConstrictor - disallows declaration of methods, so it's really a struct :) )
13:23
tadzik :D
chloekek BoaConstrictor 13:27
tadzik Imagine a `use Boa` that just puts more constraints on your code 13:29
timotimo "use Boa" is the new "use strict" 13:30
Geth doc: Kaiepi++ created pull request #2941:
Document missing Enumeration and Metamodel::EnumHOW methods
13:31
chloekek community service officer is written boa in Dutch
tadzik apt
chloekek use boa; for warnings and use police; for strict 13:32
timotimo "use bastards;" 13:32
"use pigs"? "use hogs"?
m: use hogs :amount(20..50); 13:33
camelia ===SORRY!===
Could not find hogs at line 1 in:
inst#/home/camelia/.perl6
inst#/home/camelia/rakudo-m-inst-1/share/perl6/site
inst#/home/camelia/rakudo-m-inst-1/share/perl6/vendor
inst#/home/camelia/rakudo-m-inst-1/share/perl6…
timotimo Raku Roll Musak 13:39
timotimo timezones be blessed. i thought i wouldn't get to see the game programming thing, but it's actually now 13:42
Kaiepi tadzik, ClassX::StrictConstructor doesn't check for attributes in any roles the class mixes in in .new when it probably should
harmil Okay, I really am going to TRY to stop tinkering with ajs.github.io/tools/your-regex-here/ -- I've already posted it to r/programming and I've cleaned up quite a bit. If anyone finds problems, though, please let me know.
Geth doc: cc6e4c820f | (Ben Davies)++ | doc/Type/Enumeration.pod6
Document missing Enumeration methods
13:43
synopsebot Link: doc.perl6.org/type/Enumeration
doc: b14a563aba | (Ben Davies)++ | doc/Type/Metamodel/EnumHOW.pod6
Document missing Metamodel::EnumHOW methods
doc: 52e20d5986 | (Juan Julián Merelo Guervós)++ (committed using GitHub Web editor) | 2 files
Merge pull request #2941 from Kaiepi/enum

Document missing Enumeration and Metamodel::EnumHOW methods
synopsebot Link: doc.perl6.org/type/Metamodel::EnumHOW
tadzik Kaiepi: huh, really? I thought it'd do that 13:45
can you send me a testcase that fails, if it's not too much of a bother?
Kaiepi m: role Foo {}; class Bar does Foo {}; say Foo.^parents
camelia No such method 'parents' for invocant of type 'Perl6::Metamodel::ParametricRoleGroupHOW'
in block <unit> at <tmp> line 1
Kaiepi er
m: role Foo {}; class Bar does Foo {}; say Bar.^parents 13:46
camelia ()
Kaiepi m: role Foo {}; class Bar does Foo {}; say Bar.^roles
camelia ((Foo))
timotimo tadzik: any interest in perl6 gamedev recently? :)
tadzik timotimo: I'm now on a talk from someone who writes a clone of Invisible Inc. to Perl
so: yes
I'm excited :) 13:47
timotimo is it josé joaquín atria's talk?
tadzik yes
timotimo i've just started watching at 1.25x
cygx m: role Constructor[*@params] { method CALL-ME(::?CLASS:U: *@args) { self.bless(|%(@params Z=> @args)) } }; class Point does Constructor[<x y>] { has $.x; has $.y }; say Point(1, 2) 13:47
camelia Point.new(x => 1, y => 2)
tadzik oooh 13:48
neato :)
Kaiepi m: use NativeCall; EXPORT::<long> := long; say EXPORT::<long> 13:50
camelia (long)
tadzik Kaiepi: aha, I see
Kaiepi can't believe i didn't think of a way to export symbols from other modules like that until now
tadzik Kaiepi: hmm github.com/tadzik/ClassX-StrictCon...02-roles.t 13:55
so this doesn't cover something?
ah, of course not. The attrs from roles are composed into the class so you don't need to check mro or whatever
Geth ¦ problem-solving: AlexDaniel self-assigned Update Travis configuration so that it does not compile Rakudo every single time. github.com/perl6/problem-solving/issues/85 13:56
tadzik so I think it is all good
Geth ¦ problem-solving: AlexDaniel assigned to jnthn Issue Core class version syntax github.com/perl6/problem-solving/issues/80
timotimo tadzik: bitbucket.org/gtkshooter/p6-gtk-sh...croller.p6 - did you see this? :) 13:59
tadzik I remember the name 13:59
timotimo it's a new thing basically
tadzik oh!
then no, I have not
timotimo now based on clutter, which has a scene graph
tadzik Clutter, huh
timotimo that file only has a starfield that uses clutter's easing features to scroll a background with depth layers
tadzik I'm not sure what Clutter is. Is it The New Gtk? 14:00
or is the QML of GTK
timotimo slightly, vaguely similar to "the QML of GTK" 14:01
but really a bit more like QSceneView i guess?
QGraphicsScene i think
tadzik nod nod
I'll need to read this :) 14:02
The Gaming JJ suggested a new Perl SDL Game Contest
timotimo oh, cool
tadzik perhaps there should be a perl 6 representation :)
timotimo i didn't see that, was it not in the presentation itself?
maybe i was a little too distracted by @stuff 14:03
tadzik there was a suggestion at the end
timotimo would it be only for SDL1?
Kaiepi tadzik, you could also write it as a subclass of Metamodel::ClassHOW and throw the code for attribute checking in its compose method before calling self.Metamodel::ClassHOW::compose, then throw it in EXPORTHOW::DECLARE::<strict-class> or something if you want it to have its own package declarator or EXPORTHOW::SUPERCEDE::<class> if you want it to override how regular classes work 14:04
since it's entirely dealing with the MOP
timotimo ah, it's the "community participation and events for visibility" 14:05
oh is that a samcv 14:06
timotimo ah, lightning talks, of course 14:07
timotimo ooh jesus the sound 14:12
that kind of sounds hella expensive 14:14
cygx role Constructor, a bit more polished: gist.github.com/cygx/23638f780f77b...00d8f7d2cd 14:18
is there a built-in way to dynamically deconstruct a capture based on a signature?
timotimo the %room stream starts in the middle of masak's talk =o
m: given \(1, 2, 3, :foo, :bar) { when -> $a, $b, $c, :$bar, :$foo { say "$a, $b, $c and $foo and $bar" } } 14:19
camelia 5===SORRY!5===
Expression needs parens to avoid gobbling block
at <tmp>:1
------> 3o { say "$a, $b, $c and $foo and $bar" }7⏏5 }
Missing block (apparently claimed by expression)
at <tmp>:1
------> 3o { say "$a, $b, $c and $foo a…
timotimo m: given \(1, 2, 3, :foo, :bar) { when (-> $a, $b, $c, :$bar, :$foo { say "$a, $b, $c and $foo and $bar" }) } 14:20
not quite
camelia 5===SORRY!5===
Expression needs parens to avoid gobbling block
at <tmp>:1
------> 3o { say "$a, $b, $c and $foo and $bar" }7⏏5) }
Missing block (apparently claimed by expression)
at <tmp>:1
------> 3 { say "$a, $b, $c and $foo a…
timotimo m: given \(1, 2, 3, :foo, :bar) { when :($a, $b, $c, :$bar, :$foo) { say "$a, $b, $c and $foo and $bar" } }
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$a' is not declared
at <tmp>:1
------> 3hen :($a, $b, $c, :$bar, :$foo) { say "7⏏5$a, $b, $c and $foo and $bar" } }
timotimo m: given \(1, 2, 3, :foo, :bar) { when :($a, $b, $c, :$bar, :$foo) -> $a, $b, $c, :$bar, :$foo { say "$a, $b, $c and $foo and $bar" } }
camelia Too few positionals passed; expected 3 arguments but got 0
in block at <tmp> line 1
in block <unit> at <tmp> line 1
timotimo *shrug* 14:20
timotimo m: given \(1, 2, 3, :foo, :bar) { $_ ~~ -> $a, $b, $c, :$bar, :$foo { say "$a, $b, $c and $foo and $bar" } } 14:25
camelia Too few positionals passed; expected 3 arguments but got 1
in block at <tmp> line 1
in block <unit> at <tmp> line 1
timotimo the important bit is that the variables have to be declared so they become usable
a signature literal by itself doesn't do that, i believe? 14:26
cygx there's nqp::p6bindcaptosig
I'll see if that leads anywhere
vrurg timotimo: when doesn't pass arguments to a pointy block. 14:27
cygx that requires lexicals with appropriate names being present :(
vrurg m: given \\(1, 2, 3, :foo, :bar) { when :($a, $b, $c, :$bar, :$foo) -> |c { say c.perl } }
camelia ( no output )
El_Che sena_kun: half of the day seems to be missing on the second room 14:28
% I mean
missing your talk for now :(
sena_kun El_Che, how so? I watched it just after Masak's talk. :o 14:29
El_Che, oh goodness... well, something was certainly removed. :( I have a feeling they'll edit and re-upload it then. 14:31
El_Che they certainly will 14:32
see this twitter chat between mdk and me: twitter.com/nxadm/status/1159193860070944769
(about the removal of the room 1 videos of the first day) 14:33
vrurg m: given \\(1, 2, 3, :foo, :bar) { when :($a, $b, $c, :$bar, :$foo) { -> |c { say c.perl }(|$_) }}
camelia ( no output )
vrurg m: given \(1, 2, 3, :foo, :bar) { when :($a, $b, $c, :$bar, :$foo) { -> |c { say c.perl }(|$_) }}
camelia \(1, 2, 3, :bar, :foo)
cygx what I need is a hash mapping parameter names to argument values so I can pass that to bless 14:35
the relevant logic can be found in Perl6/Metamodel/BOOTSTRAP.nqp, class Binder 14:38
cpan-p6 New module released to CPAN! Tomtit (0.1.1) by 03MELEZHIK 15:25
SmokeMachine there is no sound on Riga stream... 15:26
sena_kun El_Che, the stream is back, so you can laugh at auto-clapping all you want. ;) 16:08
sena_kun goes off
El_Che sena_kun++ 16:11
jdv79 looks like liz's keynote is not on the live video 17:16
anyone know if its available anywhere else? slides or other video?...
El_Che it was this morning 17:29
Google is being an ass it seems
chloekek Hmm 17:30
El_Che jnthn's talk is back, though
MasterDuke Elronnd: did you get rakudo-js to build in arch linux? 18:11
Elronnd MasterDuke: nope 19:16
I was told to ask pmurias about it, but they never seem to be on 19:17
veesh why is the name change getting pushed through now? 20:54
moritz is it? 20:56
veesh i asked the wrong question
i meant to say what did Larry say that started this discussion again 20:57
irced so, Oracle is changing its java license to commercial only? java is one of the few major langauges i know nothing about. does this affect the vm in which perl6 runs at all? 21:25
moritz irced: there's still an Open Source version of that JVM (OpenJDK), so we're good 21:28
this mainly affects enterprises that want commercial support
irced moritz: thank you for your input! 21:29
Xliff vrurg: How is 3075 looking? :) 21:34
vrurg Xliff: sorry, but 3113 is the priority for now. Though one problem is almost fixed. 21:40
Xliff OK. 21:49
Yeek! Good luck! Let me know if you need extra hands or something. 21:50
vrurg Xliff: thanks! 22:03
Xliff How would you do a conditional enum? 22:13
Say... so that the contents vary due to OS?
sena_kun Xliff, BEGIN { } or sub EXPORT a-a-a-and EnumHOW module. :) 22:14
Xliff LOL! Thought so.
sena_kun ;)
Xliff sena_kun++
I take it you've tried tackling this monster as well?
sena_kun tweaks slides for MOP talk rn 22:15
Xliff, erm, moster to be...?
Xliff Conditional enums... 22:16
sena_kun ah, nope
no usecase for me
Xliff I mean, C just uses an enum definition and constants.
sena_kun but I think it is _very_ doable in Perl 6
Xliff I just canme up with one.
sena_kun I mean, I don't see how it can _not_ work...
Xliff Enum with constants that vary due to OS
sena_kun and if it's not, that'd be a bug
Xliff Think low level IO.
And flags.
sena_kun I think the problem will be how can you use them conditionally 22:17
because afaik they are checked at compile time and must be present
Xliff I want to define them once... at compile time... based on OS.
So it looks like I'll have to create them in MAIN using the MOP. Yes? 22:18
That can get problematic really quickly.
sena_kun so you can't just write, e.g., "if $*OS is Foo { $a = FooParam } else { $a = BarParam }", the compiler won't listen to your "But this branch will never be executed at the place where it is not defined! Ignore it!"
it will say to you that either FooParam or BarParam is an unknown thing. :(
Xliff The problem with that is that it's not just $a. 22:19
sena_kun I think you can workaround that defining every possible enum value, leaving the meaningless ones without a value, say just -1 or something
Xliff Enums have ALL of its values exported to MAIN.
The enum names are the same, though. It's their value that changes.
sena_kun Xliff, why MAIN? `sub EXPORT`(just look it up in the docs) is executed at compile time, MAIN is not
Xliff I may just use Linux as a default and if OS changes, reassign via MOP.
sena_kun ah, if they are the same, just values are different, then you have no such issue. :) 22:20
give me a second...
Xliff I would rather NOT have to use sub EXPORT for just this one thing. In a file where I am exporting a LOT through the normal method.
If I can use EXPORT to help me special case stuff, then fine. 22:21
timotimo did you see that cute EXPORT<bleh> := Bloop::<bleh> trick?
sena_kun Xliff, then BEGIN block somewhere in this method if you have enough data there
Xliff timotimo: No. Where?
timotimo EXPORT::<bleh> i should have said
154915* Kaiepi ? m: use NativeCall; EXPORT::<long> := long; say EXPORT::<long> 22:22
sena_kun github.com/Altai-man/ASN-META/blob...TA.pm6#L75 <- EnumHOW is very neat, Kaiepi++
Kaiepi :) 22:23
Xliff Kaiepi: Have you been reading?
sena_kun returns to slides, there are 73 of them for 20 minutes
o/
Xliff Thanks, sena_kun++ 22:24
Kaiepi wdym
Xliff Say I have "our enum TheseChangeByOS ( a => 1, b => 2, c => 3, d => 4 ) # Linux"
But the values for a, b, c, and d change for Windows. 22:25
How would I do that in Perl6?
No matter what OS, I still want "a ~~ TheseChangeByOS" to be True
Kaiepi gimme a sec 22:26
Xliff 'k thanks!
Kaiepi something like this Xliff fpaste.scsys.co.uk/585646?tx=on 22:28
Xliff Ooooh! 22:29
Kaiepi++
Kaiepi er, add_value should be whatever the name for the meta-method for adding enum values is, it's in the docs for Metamodel::EnumHOW 22:30
Xliff add_enum_value. 22:32
Kaiepi yeah that
Xliff :)
Kaiepi i updated the docs earlier today to show an example of that and document the methods that were missing from Metamodel::EnumHOW's documentation 22:34
sena_kun folks, is e.g. "BEGIN block" a "(language) construction" or "(language) construct"? 22:44
sena_kun goes for "language construct" 22:47
japhb 'construct' sounds more natural to me, but it's a pretty fine difference between those two words, I think. 23:23
Kaiepi so you may have seen javascript code like this that's the stuff of nightmares: +((!![]+!![]+!!!![]+!!!![])+(!![]+!![]+![]+[])) 23:49
naturally i ported it 23:50
m: say (! ! !() + ! ! !() + ! ! ! ! !() + ! ! ! ! !()) ~ (! ! !() + ! ! !() + ! !() + ())
camelia 42