»ö« 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.
Zoffix perl6 -v prints the version 00:00
Zoffix pulls and builds newer rakudo
Success that's weird, perl6 -e 'say π' works just fine
v6.c v2018.06 00:01
Zoffix hm, lemme build 2018.06 and see
Zoffix might take a while.. network speed sucks for some reason :) 00:04
Success my network speed always sucks its nbd 00:04
vrurg m: sub foo( *@v where *.all ~~ Str ) { note "ok" }; foo( |<a b c> ) 00:12
camelia Constraint type check failed in binding to parameter '@v'; expected anonymous constraint to be met but got Array ($["a", "b", "c"])
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
vrurg m: sub foo( *@v where *.all ~~ Str ) { note "ok" }; foo( |<a b c> )
camelia Constraint type check failed in binding to parameter '@v'; expected anonymous constraint to be met but got Array ($["a", "b", "c"])
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
vrurg sub foo( *@v where {$_.all ~~ Str} ) { note "ok" }; foo( |<a b c> )
evalable6 ok
vrurg What is the difference between the two signatures? Why does it work with $_ but fails with Whatever? 00:13
Zoffix vrurg: because whatever doesn't close over the `~~` 00:19
So the difference is the first one is like `{ *.all ~~ Str }` I think there's a ticket somewhere to detect and complain about that case 00:20
m: sub foo( *@v where .all ~~ Str ) { note "ok" }; foo( |<a b c> )
camelia ok
Zoffix There's also WhereList module
eco: WhereList
buggable Zoffix, WhereList 'Simpler `where` constraints for items of lists': modules.perl6.org/dist/WhereList:gi...fix%20Znet
Zoffix Ticket is R#2086 00:21
synopsebot R#2086 [open]: github.com/rakudo/rakudo/issues/2086 [LTA][RFC] Maybe warn when thunking `*.foo ~~ $bar` constructs?
vrurg Zoffix: Thanks!
I would agree with the ticket: a warning would be helpful here. .all is perfectly ok with me. Though sub foo( Str *@v ) { ... } would do even better! ;) 00:22
TimToady m: say *.all ~~ WhateverCode
camelia True
TimToady that also wants to work
and you can't have both
Zoffix But that's not a thunk, is it? 00:23
TimToady sure it is, but * isn't a parameter for it 00:24
well, depends on how you define thunk, I guess
I can see calling it not-a-thunk too
Zoffix I mean were's not creating a thunk whose body is `*.all ~~ WhateverCode` 00:25
TimToady right
TimToady there's no deferred execution from the ~~ 00:25
the deferred execution is due to the where, which does make it a thunk
TimToady just as && and || thunkify their right sides 00:26
Zoffix So we can add a warning to the thunk-making in `where` clauses to warn if we see we're trying to thunk a QAST for `*.foo ~~ bar`
Zoffix m: 42 andthen *.all ~~ WhateverCode andthen .say 00:26
camelia True
Zoffix I guess not here tho,
oh wait, yeah here too 00:27
TimToady sometimes it's okay to warn about things that are almost certainly wrong but could conceivably be intended
when I do that, I'm always careful to mention a way to disable the warning 00:28
TimToady but yeah, it's like the double closure warning 00:28
m: my $x = { *.abs == 42 } 00:29
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed double closure; WhateverCode is already a closure without curlies, so either remove the curlies or use valid parameter syntax instead of *
at <tmp>:1
------> 3my $x = { *.abs == 42 }7⏏…
Zoffix yeah
TimToady so there's some prior art there 00:29
Zoffix Success: I built 2018.06 on Win10 and it works fine for me. Garbage print on default prompt. Proper output after setting chcp 65001 mode. 00:30
TimToady in fact, I see that we make that one fatal
Zoffix Success: I actually seen that error recently when doing something with `.close` and the code did not have any concurrency in it, so perhaps there is some compiler bug lurking in there. You could file a bug report with details of your system/perl6 and how to reproduce the bug: github.com/rakudo/rakudo/issues/new 00:31
Zoffix Seen that bug here: github.com/rakudo/rakudo/issues/22...-420632312 so you could mention that comment in your ticket, if you gonna file 00:34
Zoffix &
vrurg While I'm digesting the info about thunking... What eventually breaks thunking in my example: .all or ~~? My guess is .all. 00:35
vrurg m: sub foo( *@v where * ~~ Str ) { note "ok" }; foo( |<a b c> ) 00:37
camelia Constraint type check failed in binding to parameter '@v'; expected anonymous constraint to be met but got Array ($["a", "b", "c"])
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
vrurg Ok, its clearly .all
TimToady * is not a thunk, so I don't know what you mean by "breaking" 00:38
TimToady also, Whatever is treated differently from WhateverCode 00:39
TimToady m: say (* ~~ Str)("") 00:40
camelia True
TimToady m: say (*.self ~~ Str)("")
camelia No such method 'CALL-ME' for invocant of type 'Bool'
in block <unit> at <tmp> line 1
TimToady m: say (*.self ~~ WhateverCode)("") 00:41
camelia No such method 'CALL-ME' for invocant of type 'Bool'
in block <unit> at <tmp> line 1
TimToady m: say (*.self ~~ WhateverCode)
camelia True
TimToady m: say (* ~~ Whatever)
camelia { ... }
TimToady m: say (* ~~ Whatever)()
camelia Too few positionals passed; expected 1 argument but got 0
in block <unit> at <tmp> line 1
TimToady m: say (* ~~ Whatever)(*)
camelia True
TimToady so * "works" directly on the left side of ~~, but not via WhateverCode 00:42
you only get one level as currently spec'ed 00:43
it's just one of those spots where a WAT is hidden behind several DWiMs 00:44
vrurg Another concept to fit into my brain... TimToady, thanks for explanation! Could you, please, point me at the spec? I definitely need to understand these things by knowelege, not intuition. 00:46
Or is it a precedence thing? 00:47
Zoffix vrurg: it's a hardcoded list of things: github.com/rakudo/rakudo/blob/da64...9634-L9665 there's a yet-to-be-fixed docs Issues on the topic D#2017 00:54
synopsebot D#2017 [open]: github.com/perl6/doc/issues/2017 [docs] Docs on Whatever curry could be clearer / don't cover everything
Zoffix `*` is "Whatever" in those comments, and an already-closurised thing is a "WhateverCode". So, for example in `*.uc.lc` => `*` Whatever => the `.uc` is a `callmethod` op, and so we make a WhateverCode => we now get to `.lc`, since `callmethod` op is level `3` in that list, we continue closing over it and make `{.uc.lc}`-equivalent closure (without the new scope). But `&infix:<~~>` is level 1, so with `*.all ~~ 00:58
Blah` => `.all` is callmethod op, we curry it => we get to `~~` op with WhateverCode in hands, and since `~~` is level 1, we don't curry anymore. But with `* ~~ Blah` we have a Whatever, not WhateverCode, on LHS, so we do curry the level 1 `~~` op
vrurg Zoffix: pretty much clear. After 3rd time re-reading it. ;) Will need to play a bit with actual code to see it in action. 01:10
ToddAndMargo I forgot how to read a pipe the easy way. I am currently using 03:53
perl6.awk.txt
wrong paste, sorry
$ ls -al Win10_1803_English_x64.dd | p6 'my $x = slurp(); say $x.words[4]' 7927234560 03:54
lookatme_q Maybe using the -n option ? 03:56
ToddAndMargo ls -al / | perl6 -en 'say $_.words[4]' ===SORRY!=== Error while compiling -e Undeclared routine: n used at line 1 03:59
Demos[m] what do people use for logging / pretty output
ToddAndMargo $ ls -al / | perl6 -n 'say $_.words[4]' Could not open say $_.words[4]. Failed to stat file: no such file or directory 04:00
geekosaur swap them, -e is followed by an expressio, ou gave it "n"
ToddAndMargo That worked. Thank you! 04:01
$ ls -al /lin-bak/Win10_1803_English_x64.dd | perl6 -ne 'say $_.words[4]' 7927234560
Geth doc: 763b010d21 | (JJ Merelo)++ | doc/Type/Test.pod6
Adds flunk and is-approx-calculate

The first had been left out accidentally, the second was missing. Closes #2330.
05:56
synopsebot Link: doc.perl6.org/type/Test
doc: ca7cb599b0 | (JJ Merelo)++ | htmlify.p6
Changes type graph message

Closes #2332
06:02
ToddAndmargo in the following `multi method words(Str:D $input: $limit = Inf --> Positional)`, I am trying to find what an `Inf` is in the documentation. Anyone have a link to it? 06:24
El_Che docs.perl6.org/type/Num#index-entr...ion%29-Inf 06:27
El_Che first entry in the search box 06:27
ToddAndmargo Thank you! 06:39
ToddAndmargo Question: is `Str:D $input:` written correctly? I have only seen it writter as `Str:D:` before. 06:40
El_Che I don't use that in my signatures :) 06:43
TimToady but sure, that's fine if you want to name the invocant something other than 'self'
El_Che type and a default is good enough for me 06:44
TimToady it's just a normal parameter, which can have a type and a variable name
it's only the : at the end that magically makes it an invocant
ToddAndmargo So the writer is using the `$input` name in `multi method words(Str:D $input: $limit = Inf --> Positional)` to make it more readable? If so, it worked 06:45
Geth doc: threadless-screw++ created pull request #2333:
Fixed bad URL
07:22
Geth doc: 4217af78d8 | Alexander++ (committed using GitHub Web editor) | doc/Type/Signature.pod6
Fixed bad URL (#2333)
07:42
synopsebot Link: doc.perl6.org/type/Signature
Geth doc: 7bcfa418be | (JJ Merelo)++ | assets/sass/style.scss
Centers graph caption, refs #2332
08:15
lizmat drops a pin 10:22
moritz catches it before it hits the ground 10:26
lizmat
.oO( thank heavens for slo-mo :-)
10:31
moritz and here I thought I was fast-mo :-) 10:36
ilmari 4 minutes is quite a long time for a pin to drop 10:37
no, I'm not going to work out how high it wuld have to be dropped from without slow-mo
leont That would definitely require calculating its terminal velocity, which is non-trivial 10:40
moritz micro gravity ftw 10:41
leont Didn't know you and lizmat were on an astroid :-p 10:41
moritz I'v been playing way too much taustation.space/ :-) 10:41
pmurias github.com/MoarVM/MoarVM/issues/521 # do we want to change the <alpha> behavior? 11:11
timotimo there's a new interesting breed of spam 12:25
timotimo where they join, spout a bunch of binary garbage, then disappear again a bit later 12:25
diakopter fuzzing the ircd? 12:26
huf or one of the clients has a bug?
cognominal-p6 m: sub c(@t, str $s where $s.chars == 3 ) { say 3 }; c(['a', 'b'], '(,)') 12:30
camelia 3
cognominal-p6 m: multi infix:<~~~>(@t, str $s where $s.chars == 3 ) { say 3 }; ['a', 'b'] ~~~ '(,)' 12:31
camelia Cannot resolve caller infix:<~~~>([a b], (,)); none of these signatures match:
(@t, str $s where { ... })
in block <unit> at <tmp> line 1
cognominal-p6 &c and infix:<~~~> having the same signature, I would expect to work the same. What did I miss ? 12:32
timotimo m: multi infix:<~~~>(@t, str $s) { say 3 }; ['a', 'b'] ~~~ "(,)" 12:36
camelia Cannot resolve caller infix:<~~~>(Array, Str); none of these signatures match:
(@t, str $s)
in block <unit> at <tmp> line 1
timotimo m: multi infix:<~~~>(@t, Str $s) { say 3 }; ['a', 'b'] ~~~ "(,)"
camelia 3
timotimo the native string is a problem it seems like 12:37
Geth doc: ce54d64eb8 | (Will "Coke" Coleda)++ | doc/Language/testing.pod6
whitespace
13:12
synopsebot Link: doc.perl6.org/language/testing
cognominal-p6 timotimo: thx, how come it works differently for operators and functions ? Under the syntactical hood, it is supposed to be the same thing 13:13
cognominal-p6 afk& # will read any answer this evening or tomorrow. Thx for any feedback 13:14
Zoffix .tell cognominal-p6 in the sub, you're defining an `only`, but in the op you're defining a `multi`. Native types don't get auto-unboxed in multi dispatch, so you either need to give it a native `str` as argument or change to take a Str arguemnt or define a second multi that takes a `Str` argument. m: multi infix:<~~~>(@t, str $s where $s.chars == 3 ) { say 3 }; ['a', 'b'] ~~~ my str $ = '(,)' 13:35
yoleaux Zoffix: I'll pass your message to cognominal-p6.
Zoffix Thank you, robot. 13:36
Zoffix m: multi z(str $s) { say 3 }; z '(,)' 13:37
camelia Cannot resolve caller z(Str); none of these signatures match:
(str $s)
in block <unit> at <tmp> line 1
Zoffix hmmm
Zoffix tries to remember what the deal is with literals, but now I think that was for auto-unboxing into `only` subs. 13:38
Zoffix Yeah. I recall there a test going in, so it should be working right even if I don't exactly remember what it was :) 13:42
Geth ecosystem: d6a93e7a4b | tony-o++ (committed using GitHub Web editor) | META.list
Add Inter-Process Event::Emitter to module listing

Adding Event::Emitter::Inter-Process for inter-process "event::emitter"
14:29
buggable New CPAN upload: Getopt-Advance-1.0.4.tar.gz by ALOREN modules.perl6.org/dist/Getopt::Adva...pan:ALOREN 14:36
randc I have been looking into changing my comments to Pod documentation, but poking around other random modules it looks like the convention is to write all the Pod either before or after the code. Is there a way to do it inline... kind of like "javadoc comments" so I am not writing code comments & separate documentation comments? 15:03
geekosaur it's just convention. interleaving can have its own problems, mostly with respect to comprehension / breaking things up too much for readers 15:15
and usually the kind of comments you put inline like that want to be API documntation or code explanations, not necessarily end user /manual page 15:18
jmerelo randc: Yep, Perl6 has got several brief ways of doing that: docs.perl6.org/language/syntax#Mul...d_comments 15:19
randc: and it's better than javadoc, because you only need perl6 to produce the text. 15:20
Geth doc: 86fca8df94 | (Brad Gilbert)++ (committed using GitHub Web editor) | doc/Type/Str.pod6
Str.[split,lines,words,ords] returns Seq
15:28
synopsebot Link: doc.perl6.org/type/Str
[Coke] Google Search Console has automatically verified you as the official owner of: parrot.org/ 15:39
…Thanks? 15:40
moritz wow, I'm surprised that domain hasn't been lost to domain squatters long ago 15:47
maybe it's time to donate it to some bird lovers 15:48
timotimo they can have a talking worm instead
[Coke] "perl6 -v" "perl6 --v" both work, but "perl6 --ve" does not. wondering why --v is ok.
moritz probably it tries the one-char aliases even with -- 15:49
Demos[m] is it possible to build a moarvm perl6 with MSVC ABI and linked with msvcrt140? 16:13
moritz I think jnthn++ uses MSVC in his toolchain -- not sure about the ABI though 16:16
Demos[m] I mean tbh the C abi is pretty much the same betwene gcc and msvc 16:17
geekosaur only up to a point. language runtimes tend t blow past that point 16:20
buggable New CPAN upload: Getopt-Advance-1.0.5.tar.gz by ALOREN modules.perl6.org/dist/Getopt::Adva...pan:ALOREN 16:26
jnthn MoarVM will build with MSVC; it should handle it quite naturally if Configure is run with cl, link etc. on path 16:27
tony-o AlexDaniel: testing out json::fast integration with rakudo atm 17:02
vrurg m: class Foo { has @.a; }; my %p = a=><a b c>; Foo.new(|%p).a.perl.say 17:09
camelia [("a", "b", "c"),]
vrurg Is it possible to deconteinarize hash values to use it as named parameters? 17:10
Zoffix vrurg: isn't that what's happening above? The key `a`'s value got assigned into `a` attribute 17:11
Ah, I see what you mean
vrurg Zoffix: aha. 17:12
AlexDaniel tony-o: sounds awesome
Zoffix m: class Foo { has @.a; }; my %p = a=><b c d>; Foo.new(|%p.Map).a.perl.say 17:13
camelia ["b", "c", "d"]
vrurg Beatiful! ;) 17:14
Another thing I don't currently understand:
m class Foo { has @.a; }; my @p = a => <a b c>; Foo.new(|@p).a.perl.say
Zoffix m: class Foo { has @.a; submethod TWEAK(:$a) { @!a = $a<> } }; my %p = a=><b c d>; Foo.new(|%p).a.perl.say 17:15
camelia ["b", "c", "d"]
Zoffix another way
m: class Foo { has @.a; }; my @p = a => <a b c>; Foo.new(|@p).a.perl.say
camelia Default constructor for 'Foo' only takes named arguments
in block <unit> at <tmp> line 1
vrurg m: class Foo { has @.a; }; my @p = a => <a b c>; Foo.new(|@p).a.perl.say
camelia Default constructor for 'Foo' only takes named arguments
in block <unit> at <tmp> line 1
Zoffix vrurg: it sticks it in as a positional Pair object instead of a named arg
m: my @p = a => <a b c>; dd @p.Capture
camelia \(:a(("a", "b", "c")))
Zoffix ahg, no
vrurg TWEAK isn't good enough for me because I create objects using profiles in hashes. To many handwork then. 17:16
Zoffix Oh wait, yes
Capture ain't involved here.
m: class Foo { has @.a; }; my @p = a => <a b c>; Foo.new(|@p.Map).a.perl.say
camelia ["a", "b", "c"]
Zoffix Basically, same as with %hash
vrurg Ah, yes! I have understood that one yesterday. Of course...
.Map does it ideally. Thanks! 17:17
Zoffix nm
Zoffix flies away into the sunset
erana_ test 18:18
diakopter test successful!
erana_ freenode blurb 18:19
I just started working for the perl foundation, I just need another T shirt now 18:21
erana_ I can do games in sdl-perl on mandrake 18:22
then AI kits in perl6
1700 euros a month 18:23
jmerelo AI kits in Perl 6 ++ 18:24
erana_ my coworker does the SDL2::Raw games in perl6
My software will be available at shameen.ddns.net
yes ai kits are cool 18:25
[Coke] erana_: what are you doing for TPF?
erana_ programming
I am working on markov strategy Springer ver lag book
[Coke] cool.
erana_ I implemented 7 pages in objc 2800+ lines
[Coke] Is this via a grant? 18:26
erana_ contract
unlimited
erana_ It's also for the Belgian perl mongers company 18:27
erana_ The I have another contract at Amiga 18:27
where I also write games for
So lots of switching between amiga emulators :-) 18:28
Anyway, I am going to have lots of fun now 18:29
perl6 on the win64 machine, and I need to get a PowerPC amiga 18:30
where my performa and G4 still run here in the appartement
jmerelo erana_: cool. Good luck.
erana_ Thanks
[Coke] wonders if his college friend still has the Amiga 500 he lent him.
erana_ I have one 18:31
and an 2000 with a SCSI disk of 1.2Gb :-)
AmigaRexx
I have to write something here I can tool the floppy disks between linux and amigados 18:32
erana_ such as the amigaforever CDROM 18:33
erana_ the company I work for distributes the latest amgia os 18:33
another 1700 in a month 18:34
erana_ There a perl on that machine 18:34
I am going to buy a Mobo
erana_ with a PPC processor 18:35
then tool it into an amiga x500 or something
So if you need something for the perl foundation which has to do with games, I might manage 18:36
Larray just told me he could use decision theory, chaos and markov strategies for ai
erana_ which is the 3 books I have to read and impement 18:37
erana_ Then I work at the VUB as main lab assistent 18:40
So 3 jobs, but I can manage
erana_ The amiga forever cd is good, if you're into such kind of things 18:42
TimToady still has his Amiga 1000, and probably a 2000 and a 3000 somewhere in his garage... 18:45
erana_ if you don't need them, I can use a 1000 and a 3000
TimToady well, the 1000 is the first personal computer I ever bought, so I'm a bit sentimental about it :) 18:46
erana_ what about the 3000 ? 18:47
TimToady I'd probably have to clean my garage to find it, alas :)
erana_ ok
CDROMs on amigas are evil :-) 18:48
TimToady I actually had two 3000s at one point
because kids
erana_ well it's for writing games you know
there some example games of me for GNU at savannah 18:49
the user is erana
Then I have made a Secret of Mana II in kivy 1 18:50
it works on android
togheter with other kivy games
I am not really into Java for such things 18:51
My promotor held it for a simple OOP language 18:52
no continuations for example
pmurias erana_: re ai kits for Perl 6 is there a link to something we can read about it? 18:53
erana_ Springer series of statistics : 18:54
erana_ Markov strategies for scientific computing (game theory) 18:54
Desecion Theory limited first edition Berger 18:55
erana_ Chaos : a statistical perspective 18:55
Geth doc: cf116bb50e | (Will "Coke" Coleda)++ | 3 files
fix compilation issues
erana_ those 3 I am going to start with
erana_ for google : Hidden MArkov Model, forward backwrad pass 18:56
in Shapeir on htp:://shameen.ddns.net you find objc code of the first 30 pages 18:57
erana_ 2800+ lines for just exponential landscape engines and the classes need for them 18:57
erana_ you strip a landscape in 3D coordinates then exponentially distribute them and you truncate on a rambo game I ant to make 18:58
X and Y
thus the soldier moves on one line
erana_ then shoots from time to time 18:59
ith the landscape and chance calcs
per landscape, you sitch the behaviour 19:00
erana_ just as nethack generates rooms but ithout the shifting 19:00
pmurias erana_: shameen.ddns.net doesn't load 19:00
erana_ http:// 19:01
[Coke] "shameen.ddns.net refused to connect" 19:02
erana_ it works here
no secure line ?
[Coke] connection refused here, 80 & 443
erana_ it should connect on 80
could you interrogate the ddns dns ? 19:03
[Coke] get "no route to host" elsewhere.
217.136.35.
217.136.35.152
erana_ connect to my ip then
port 80 19:04
erana_ 217.136.35.152 19:06
right
[Coke] if I'm getting connection refused & no route to host, I'm not clear on how using the IP instead of the host will help. (didn't help)
erana_: who are you working with at the TPF?
erana_ the brussels perl mongers company in cooperation with a VUB ex-professr, ex-vice-rector 19:07
it's called ISIS I believe 19:08
[Coke] ah, that's not TPF, then, that's just the local PM group. 19:08
erana_ yes but I have contract from the perl foundation 19:08
erana_ I work on perl6, help larry out 19:09
erana_ and write ai for him 19:09
I know him personally
I've made some sound software too 19:10
TimToady where do you know larry from?
[Coke] as far as I know, TPF isn't funding anything like that right now. Just want to make sure someone didn't misrepresent themselves as the TPF to you. 19:11
erana_ talking with him, he admins my server
TimToady which server is that? 19:12
erana_ shameen.ddns.net 19:13
TimToady I don't think larry admins that server...
erana_ sure he does, I just manage the uplink
TimToady just to be clear, since "larry" is ambiguous here, you're saying larry wall admins you're server? 19:15
*your
erana_ yes, he's on it all the time 19:16
TimToady interesting 19:16
Zoffix grabs some popcorn and takes a seat :)
moritz is this some comedy of which I've missed the start?
TimToady where does he log in from?
erana_ his desk or home, I dunno, the Americs 19:17
I live in Belgium 19:18
Zoffix erana_: it's pretty cool that you get to talk to Larry Wall. He's like super famous, innit he? 19:18
erana_ He's my main man
Zoffix Fancy :) 19:18
erana_ He's one of the friendliest hackers I know 19:19
And he has 4 daughters, I have 2
TimToady hey, what else do you know about larry? we're curious to find out what else you know about him...
Zoffix Well, I hope I'll get to talk to him one day :)
erana_ You shoud go to the european YAPCs 19:20
Zoffix I thought he's in America somewhere? 19:20
TimToady I've been to one or two
Zoffix :)
moritz I've met that Larry guy in Pisa and Riga, iirc 19:21
timotimo TimToady: if you ever meet him, maybe tell us a bit about what he's like
TimToady well, I have met him, but I can't claim to understand him
erana_ I don't mail to him, we just talk over the wire
timotimo "over the wire" sounds so curious 19:22
moritz TimToady: understanding is a tall order for any human, let alone a Larry :)
TimToady wonders how many Larry Walls there actually are in America...
timotimo i imagine it'd have meant using the telephone just a "few" years ago
TimToady erana_: how do you know it's the real Larry Wall and not some other Larry Wall?
erana_ well, he do can admin my machine :-) 19:23
I have loads of crackers to deal with :-)
timotimo mhhh salty crackers 19:24
erana_ lol
I am going to port the whole perl thing to the Amigas of these days 19:25
tadzik oh boy, is it Hug o'clock?
sena_kun exactly. :]
erana_ then see what SDL-perl will look like
TimToady well, personally, I think you should probably do a traceroute on him to find out which Larry Wall he really is, because I have a slight suspicion that your Larry is not our Larry 19:26
tadzik if he deals with crackers on your server maybe that's Fire Wall 19:27
diakopter tadzik: rotfl 19:27
erana_ lol 19:28
moritz lol 19:28
diakopter maybe it's the -Warnings all?
tadzik :D
erana_ gcc
tadzik I can think of a warning chat could've prevented this funny situation 19:28
s/chat/that/
timotimo this larry is your larry, and this larry is my larry 19:29
from the yapc europe to the yapc asia
erana_ our ?
Zoffix plottwist: our larry isn't the real Larry :) 19:29
diakopter [Coke]: isn't there a Perl Foundation of Europe that's separate?
Zoffix erana_: one of the people you've spoke to here so far is The Larry Wall.
timotimo this larry was made for you and me
tadzik oooh 19:30
tadzik now it's like a murder mystery! 19:30
moritz Zoffix: well, if there are clones, I insist that all of them be considered The Real Larry
tadzik He could be in this very room!
erana_ ah
TimToady should go eat lunch now...
Zoffix :)
diakopter larrylunch++
timotimo walllunch
erana_ so diakopter is Larry ? 19:31
moritz let's all eat a [Larry the ]cucumber, shall we?
Zoffix erana_: yup
diakopter *cries
tadzik we have to play the Guess Who thing
moritz or maybe not? hard to tell
erana_ well, I think I owe an apology
diakopter erana_: no, TimToady is.. it's a pun on TIMTOWTDI
erana_ ok
moritz we're all a big collective, and our personalities sometimes smear out a bit :)
erana_ that's a point 19:32
Zoffix erana_: what kind of apology?
diakopter it's just the toadying of TimToady varies dramatically from time to time
timotimo "guess who" reminds me of that piece that combines a snippet from the burger scene of Pulp Fiction with a photo of two people playing "guess who" and one of them has samuel l jacksons head photoshopped onto his shoulders
erana_ well he doesn't accept my mails
Zoffix Ah :) 19:33
diakopter he gets a great many mails 19:33
erana_ but anyway diakfor managing my serv reopter thanks
tadzik timotimo: yes, I didn't want to quote it here :P
but same thing came to my mind
timotimo it uses, unsurprisingly, quite unsavoury language
do they speak english in #what?
tadzik classic Samuel
diakopter wait now I'm managing a server? 19:34
erana_ lol
tadzik I heard diakopter also pioneered writing perl 6 games for atari 19:34
tadzik ...as a service 19:34
erana_ that's what was in the contract
diakopter I can't even. right. just now.
diakopter not this diakopter 19:35
erana_ it's a nice server you know, macos x 10.5 standard webserver 19:36
Demos[m] any guidence on when to use roles vs inheratance? 19:36
moritz Demos[m]: prefer roles whenever possible 19:37
timotimo Demos[m]: the perl6 denizens tend to suggest roles for code re-use and inheritance for liskov-y things
Zoffix Liskov-y being: en.wikipedia.org/wiki/Liskov_subst..._principle
[Coke] diakopter: not to my knowledge.
timotimo i.e. if one thing is supposed to always be valid when the other also is, inheritance can be better
Demos[m] hmm OK
Demos[m] from reading the docs it seems the main difference is that roles have better checks for insanity 19:38
moritz aye
timotimo yes, it sometimes forces you to disambiguate
moritz and they can be parameterized (but don't exagerate that)
Demos[m] so why even bother with inheratance? 19:40
erana_ anyway thanks for adminning the server :-)
moritz erana_: I don't think anybody in here is aware of admining your server 19:40
Demos[m]: it can still be useful for specializing types
moritz Demos[m]: also, not everybody easily gets into the roles mindset (including myself) 19:41
Demos[m] hm 19:42
Demos[m] I guess I've always seen inhearatance and composition as pretty much the same, just from working in C a bunch. 19:43
is there a concrete diference in how the object ends up looking? 19:44
moritz the philosophy behind Perl 6 is more like "inheritance? sure, we can do that", and less like "YOU SHOULDN'T USE INHERITANCE!!!"
Demos[m] in memory/in the low level representation or whatever
moritz not really 19:45
timotimo "multiple inheritance? okay sweetie, be careful out there and call us if you're not coming home for dinner tonight" 19:54
Demos[m] hehe 19:55
so, do non-multi methods still use the same dispatch mechanisms as multis or is there a seperate vtbl
Demos[m] hm so one difference seems to be if I have roles that use other roles they can't have methods named the same as those other roles, which is probably a good thing 19:57
leont You should think of the method dispatching as a two stage process 19:58
First it finds the proto in the class, and then that delegates to the multis in that class
samcv i'm working on a blog post about my past work implementing various encodings on MoarVM and my current work on the one implementing UTF-16 20:06
leont samcv++ 20:11
cognominal-p6 zoffix++ for his answer on multis. 20:15
yoleaux 13:35Z <Zoffix> cognominal-p6: in the sub, you're defining an `only`, but in the op you're defining a `multi`. Native types don't get auto-unboxed in multi dispatch, so you either need to give it a native `str` as argument or change to take a Str arguemnt or define a second multi that takes a `Str` argument. m: multi infix:<~~~>(@t, str $s where $s.chars == 3 ) { say 3 }; ['a', 'b'] ~~~ my str $ = '(,)'
Demos[m] question on mixins: if I mix in a role that "does" another role that's already on the target object what's supposed to happen 20:20
in my code it seems a new role gets mixed in
jnthn Demos[m]: A runtime mixin effectively creates an anonymous subclass, composes the role in to that, and then changes the type of the object to that new anonymous type 20:29
Demos[m]: It's entirely possible to implement "the same" role at multiple levels of the inheritance tree
Demos[m] so I probably want any shared state to be a real base class (with is)? 20:30
jnthn Demos[m]: (Reason for "the same" is because roles are generic on the type they are composed in to, so actually what's composed is a concretization of the role)
Yes, if you have `role R { has $!state }; class C does R { }; class D is C does R { }` then you'd have a $!state in C and in D 20:31
Demos[m] but if I have `role R { has $state }; role X does R {}; class C does R {}; my $c = C.new(); $c does X? 20:33
diakopter [Coke]: maybe they're thinking of the YAPC Europe Foundation www.yapceurope.org/ 20:34
jnthn Demos[m]: Then that's two different $state attributes 20:36
Demos[m] ah OK so I /do/ want is in that case 20:39
diakopter domm: do you know anything about "the brussels perl mongers company in cooperation with a VUB ex-professr, ex-vice-rector" called "ISIS" doing work on "shameen.ddns.net" for the Belgian Perl Mongers and SDL2::Raw games and AI kits in Perl 6
tadzik ...for amiga? 20:40
diakopter I thought Belgium got rid of ISIS 20:41
tadzik more like ISN'TISN'T ☜(゚ヮ゚☜)
timotimo i'm so mad at the terrorist organization for giving the band such a bad name in the public 21:04
OK now the spammers are just sending random excerpts of one or multiple discussions to screw with me, aren't they 21:05
geekosaur to screw with the new spam flters, pretty sure 21:18
timotimo quite possibly, yeah 21:21
hadn't thought of that
would that also have caused the random bytes spam?
Demos[m] is anyone working on gobject-introspection for p6? 21:24
leont That would be quite valuable 21:26
There are gtk bindings, but I suspect they're written the old-fashioned way 21:27
timotimo yeah, they are hand-written
leont Having a GIR framework on top of NativeCall would quickly open up that entire ecosystem 21:28
timotimo i wish you didn't have to find the file on disk to properly interface with gobject introspection
timotimo well, it's a step up from parsing header files i guess 21:28
geekosaur timotimo, yes. tey're fishing for ways to break the filter 21:29
samcv post done: cry.nu/perl6/adding-and-improving-...in-moarvm/ 21:52
samcv if anyone notices any grammar or other improvements please let me know 21:52
notable6: cry.nu/perl6/adding-and-improving-...in-moarvm/
notable6 samcv, I cannot recognize this command. See wiki for some examples: github.com/perl6/whateverable/wiki/Notable
samcv notable6: please note cry.nu/perl6/adding-and-improving-...in-moarvm/
notable6 samcv, Noted!
AlexDaniel weekly: cry.nu/perl6/adding-and-improving-...in-moarvm/ 21:53
notable6 AlexDaniel, Noted!
AlexDaniel notable6: reset please
notable6 AlexDaniel, Moved existing notes to “please_2018-09-26T21:53:16Z”
timotimo heh. 21:55
"they may seem to some as horribly boring and bland" (but people who know them well enough, they are just horrible) 21:56
Demos[m] sorry for all the questions, but is there a quote operator for making IO::Paths 21:57
timotimo there is not, but you can just plop a .IO at the end of any string
jnthn m: say qp/foo/ 21:58
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing required term after infix
at <tmp>:1
------> 3say qp/foo/7⏏5<EOL>
expecting any of:
prefix
term
jnthn I think that was once speculated, but it didn't happen (yet :))
timotimo i'd assume it'd be pretty easy, maybe take :chomp as a template for "how to add some post-processing code to the string processing"
jnthn It's only one letter shorter than "...".IO though :)
timotimo jnthn: how likely would you enjoy information from the logged data to show up in the "Before" and/or "After" parts of the bytecode dump as well? 22:00
jnthn timotimo: Not quite sure I follow...you mean from the plan? 22:01
leont timotimo++ # horrible
timotimo some indication inline to the code where logged data was used or maybe where it couldn't be used 22:02
basically transplanting some data from the log section to the "Annotation: Logged" parts 22:03
jnthn timotimo: I'm not immediately sure I've missed having that 22:06
Though could try it of course and see how it looks 22:07
timotimo or just a little vim macro/function/whatever that jumps right from the code to the latest log data :)
maybe open it in a split window, even
samcv timotimo: lol @ " (but people who know them well enough, they are just horrible)
leont and utf-16 is probably worst outside of email that's still in common use 22:08
I mean, it has all the disadvantages of utf-8, all of the disadvantages of UCS-2, and then a new unique disadvantage that binary sort != codepoint sort 22:09
jnthn samcv++ # great post
Demos[m] wowah what's this community stuff?
some matrix magic?
timotimo i know not what you speak of, so it probably has something to do with matrix 22:10
samcv jnthn: thanks :) glad you liked it 22:15
Demos[m] yay! perl makes symlinks on windows with SYMBOLIC_LINK_FLAG_ALLOW_UNPRIVILEGED_CREATE 22:17
speaking of: How do I get the target of a symlink 22:19
on windows
and how can I tell if a path is a file symlink, a directory symlink or a junction 22:20
timotimo did you look at the single-letter methods on IO::Path?
those map to stat, but i'm not sure if everything's in there
Demos[m] erm... about stat 22:21
the MSDN docs are unclear about how stat works in this case? 22:23
it's also not clear how windows _stat actually deals with ACLs 22:24
Demos[m] I guess I can use resolve??? 22:29
timotimo perl6 tends to not put very OS-specific things into the language, like windows ACLs or linux filesystem extended attributes or something 22:31
that'd be something for modulespace
and a couple of modules for windows stuff would surely be welcome
Demos[m] Makes sense. I’m also thinking about how gobject introspection would work. Can you write custom reprs? 22:49
timotimo you can, indeed, but you may not have to 22:50
since you can just construct classes at run-time, for example of the CStruct repr
leont I'm not sure you need much of a custom repr, I though there were accessors and constructors for everything. 23:00
Demos[m] The one thing is gtk’s class init. Which is super important to support composite widget templates 23:07
Also for trying to export gir, but that’s a huge amount of work 23:08