»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
BenGoldberg wonders why Proxy is a class, instead of a punned Role. 00:04
ZoffixWin wonders what's the big difference between a role and a class 00:12
perlawhirl 'morning perl6 00:13
ZoffixWin: I was looking at your repo's... Evil has the README from MiddleMan 00:14
ZoffixWin perlawhirl, oh, Evil is a failed project. I was told it was impossible in the middle of working on it :)
it was meant to let you add methods to existing types and let those propagate to all the parents. 00:15
perlawhirl hah, ok... that's a shame cause yeah... that augment thing is a bit of a pain
BenGoldberg m: use NativeCall; sub getppid is native returns int64 { }; sub getpid is native returns int64 { }; say getpid, " ", getppid; 00:29
camelia rakudo-moar 6df7ff: OUTPUT«17035 20924␤»
BenGoldberg m: use NativeCall; sub getppid is native returns int64 { }; sub getpid is native returns int64 { }; say getpid, " ", getppid;
camelia rakudo-moar 6df7ff: OUTPUT«17037 20924␤»
ugexe m grammar Grammar::Foo { token TOP { <return> }; token return { .+ }; }; Grammar::Foo.parse(1)
BenGoldberg m: use NativeCall; sub kill(int64) is native returns int64 { }; sub getpid is native returns int64 { }; say kill(getpid); say 'alive';
camelia rakudo-moar 6df7ff: OUTPUT«0␤alive␤»
ugexe m: grammar Grammar::Foo { token TOP { <return> }; token return { .+ }; }; Grammar::Foo.parse(1)
camelia rakudo-moar 6df7ff: OUTPUT«Attempt to return outside of any Routine␤ in any !cursor_pass at /home/camelia/rakudo-m-inst-1/share/nqp/lib/QRegex.moarvm line 1␤ in regex return at /tmp/iCXVmSsDVO line 1␤ in regex TOP at /tmp/iCXVmSsDVO line 1␤ in block <unit> at /tmp/iCXVmS…»
BenGoldberg m: use NativeCall; sub kill(int32) is native returns int32 { }; sub getpid is native returns int32 { }; say kill(getpid); say 'alive'; 00:30
camelia rakudo-moar 6df7ff: OUTPUT«0␤alive␤»
ugexe dont name tokens `return`, or bug?
BenGoldberg m: use NativeCall; sub kill(int32,int32) is native returns int32 { }; sub getpid is native returns int32 { }; say kill(getpid, 1); say 'alive'; 00:32
camelia rakudo-moar 6df7ff: OUTPUT«(signal HUP)»
BenGoldberg I could, but will not, do that bit of code with 'getppid' instead of 'getpid'. Killing camelia would be wrong! :) 00:33
Why isn't NativeCall forbidden in the restricted setting, anyway? 00:34
skink Speaking of which 00:35
Xliff, Make any progress with that nonsense?
BenGoldberg m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode.list; say @$chs; 00:38
camelia rakudo-moar 6df7ff: OUTPUT«(104 101 108 108 111 32 119 111 114 108 100)␤»
BenGoldberg m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode; say @$chs; 01:26
camelia rakudo-moar 6df7ff: OUTPUT«(104 101 108 108 111 32 119 111 114 108 100)␤»
BenGoldberg m: use NativeCall; my CArray[uint] $chs .= new: "hello world"; say @$chs;
camelia rakudo-moar 6df7ff: OUTPUT«This type cannot unbox to a native integer␤ in method new at sources/51E302443A2C8FF185ABC10CA1E5520EFEE885A1 (NativeCall::Types) line 168␤ in method new at sources/51E302443A2C8FF185ABC10CA1E5520EFEE885A1 (NativeCall::Types) line 162␤ in block <u…»
BenGoldberg m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode; say @$chs;
camelia rakudo-moar 6df7ff: OUTPUT«(104 101 108 108 111 32 119 111 114 108 100)␤»
BenGoldberg m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode; say $chs;
camelia rakudo-moar 6df7ff: OUTPUT«NativeCall::Types::CArray[uint].new␤»
BenGoldberg m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode; say $chs; say map *.chr, @chs;
camelia rakudo-moar 6df7ff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jlNUbt8Bh0␤Variable '@chs' is not declared. Did you mean '$chs'?␤at /tmp/jlNUbt8Bh0:1␤------> 3world".encode; say $chs; say map *.chr, 7⏏5@chs;␤»
BenGoldberg m: use NativeCall; my CArray[uint] $chs .= new: "hello world".encode; say $chs; say map *.chr, @$chs; 01:27
camelia rakudo-moar 6df7ff: OUTPUT«NativeCall::Types::CArray[uint].new␤(h e l l o w o r l d)␤»
BenGoldberg m: use NativeCall; my CArray[uint] @chs .= new: "hello world".encode; say @chs; say map *.chr, @chs;
camelia rakudo-moar 6df7ff: OUTPUT«Type check failed in assignment to ; expected NativeCall::Types::CArray[uint] but got utf8 (utf8.new(104,101,108,...)␤ in block <unit> at /tmp/uzBpJ1fTZe line 1␤␤»
BenGoldberg m: use NativeCall; my @chs := CArray[uint].new: "hello world".encode; say @chs; 01:28
camelia rakudo-moar 6df7ff: OUTPUT«NativeCall::Types::CArray[uint].new␤»
BenGoldberg m: use NativeCall; my @chs := CArray[uint].new: "hello world".encode; say |@chs;
camelia rakudo-moar 6df7ff: OUTPUT«10410110810811132119111114108100␤»
BenGoldberg m: use NativeCall; my @chs := CArray[uint].new: "hello world".encode; say @@chs;
camelia rakudo-moar 6df7ff: OUTPUT«(104 101 108 108 111 32 119 111 114 108 100)␤»
BenGoldberg thinks that @@ looks vry strange. 01:29
Xliff skink: Yes. Thanks for asking. 01:39
skink Resolve the ***float thing? 01:41
Xliff Yup 01:42
BenGoldberg is reading some of moar's c source code. 01:43
Xliff gist.github.com/Xliff/11acc06d8e4c...5bbfe47329
Xliff skink: The key was using the binding op ":=" when using nativecast. 01:44
BenGoldberg I spy a bug in src/core/nativecall_dyncall.c, in MVM_nativecall_get_calling_convention: the line 'result = DC_CALL_C_X64_WIN64' will never be reached.
skink Ah! 01:45
Xliff, Like I said, you might wanna add that to the docs/examples 01:46
Given that it was so tricky
Xliff skink: I don't know how to do that. 01:47
Is there a repo that I can submit a PR against?
hoelzro BenGoldberg: nice catch; it looks like some copy pasting that made it through
BenGoldberg :)
hoelzro BenGoldberg: any idea what that string should be? 01:48
skink Woops, mashed the wrong keys 01:48
hoelzro other than stdcall?
skink Xliff, There is this github.com/perl6/perl6-examples/
BenGoldberg Alas, no, I've no clue :)
skink aaaand this github.com/perl6/doc
Herby_ ZoffixWin: I'm liking your fancy new search method 01:49
ZoffixWin \o/ 01:50
Herby_ I do have a question though, although its much more Perl 6 related 01:50
Xliff skink: Thanks. It looks like this is the way to go -> github.com/perl6/doc/blob/master/d...vecall.pod
Herby_ $t.search-tweets: 'Perl 6'; 01:51
Xliff skink: Remind me if I haven't gotten the PR done by Friday.
Herby_ do I assign that to a hash?
I'm not positive how to get info out of it
ZoffixWin Herby_, well, first, why are you using search-tweets instead of Twitter.search? What's missing in .search that .search-tweets provides? I really random-guessed how much info is needed to be kept there 01:53
skink Xliff, Will do. Speaking of PRs, do you have Visual Studio installed?
Herby_ ZoffixWin: I could be using it wrong by it looks like 'search' returns the user and their tweet. search-tweet looks like it returns a full set of data related to each tweet 01:54
by = but
ZoffixWin But to answer, you don't assign to it, you traverse it: my $res = $t.search-tweets: 'Perl 6'; my $tweet = $res<statuses>[0]; say "$tweet<text> by $tweet<user><screen_name>"
ZoffixWin Herby_, yeah, .search basically calls .search-tweets and throws out all the "useless" stuff. 01:55
Herby_ sweet, that works like a champ :) 01:56
ZoffixWin cool 01:57
Herby_ I don't know how fleshed out you plan on making the module but have you looked at the Stream api? dev.twitter.com/streaming/overview 01:57
where the script keeps an open connection and captures a constant stream of info
i was up late last night reading up on the twitter api but i unfortunately don't have the programming chops to create something useful 01:58
ZoffixWin ATM, I only looked at the REST API. I can pay more attention to the streaming API if there are users to consume it.... that'd be you :P 01:59
I'll take a look at it this weekend.
Herby_ hah I would definitely use it. As Perl 6 gets more popular, I'm sure the users would take off.
I don't think Perl 5 has a working module for stream capture either, so yours would stand alone
Xliff Grr... 02:01
gptrixie is bugged for really complex HPP files.
sortiz \o #perl6 02:06
skink hey sortiz 02:07
Herby_ sortiz: o/
BenGoldberg Herby_, perl5 is absolutely capable of capturing streaming data from a url.
Herby_ I probably phrased it wrong. I didn't find a twitter module that is currently working for streaming 02:08
they few I saw last night weren't using OAUTH, which I believe is required now
BenGoldberg Net::Twitter uses OAuth. 02:16
When I typed 'twitter' into search.cpan.org, that was the very first thing which came up! 02:17
BenGoldberg wonders how you overlooked it ;)
Herby_ lol I was using that last night!
i didn't see anyone for a streaming method
BenGoldberg I see support in Net::Twitter for REST APIs... hmm....... 02:19
Herby_ i'll take a fresh look at the module, it was a long day yesterday 02:20
ZoffixWin BenGoldberg, why are you still using S.C.O? metacpan.org is what the cool kids use! 02:24
BenGoldberg yeah yeah I know Zof ;) 02:25
ZoffixWin But... and that's based on Twitter's doc organization.... REST API is different from Streaming API
BenGoldberg Ok, I think I've got a solution. 02:37
Net::Twitter uses LWP. It keeps the LWP::UserAgent object in a moose-generated field called 'ua'. 02:40
perigrin Net::Twitter doesn't have a streaming API, the author sends people to metacpan.org/pod/AnyEvent::Twitter::Stream 02:42
s/have/support/
BenGoldberg If you my $nt = Net::Twitter->new(...), then $nt->ua->add_handler( response_data => sub { ... } ), then your sub will get called with each chunk of data.
AnyEvent? Yuck. 02:43
perigrin both semifor and miyagawa have their weird blind spots ...
sortiz BenGoldberg, I'm now digging the bug you found. 02:44
perigrin also if you were gonna green field a Twitter client in perl6 ... I'd work off of github.com/semifor/Twitter-API
rather than Net::Twitter 02:45
which is semifor's re-thought of the codebase after having lived with Net::Twitter for several years.
sortiz BenGoldberg, In the MoarVM context seems less serious 'cause on dyncall the mode/platform combination that don’t make sense are silently ignored, reverting to DC_CALL_C_DEFAULT. 03:00
skink attempts to cross-compile Windows libs again 03:10
MadcapJake Here's my basic sketch of what the high level API will be for HTML::MyHTML gist.github.com/MadcapJake/4f54af9...0078f694e3 03:48
skink Interesting. %?RESOURCES<argon2> looks for 'libargon2.{so,dylib}' yet 'argon2.dll' 03:49
nige1 .tell Coke thanks for your feedback on the SixFix feedback for question 1 - have tightened up the answer a little so it doesn't stray too far from the question 04:17
yoleaux 20 Apr 2016 15:54Z <[Coke]> nige1: your feedback on the first sixfix includes things that aren't in the code snippet, btw.
nige1: I'll pass your message to Coke.
ufobat is there anything wrong with github.com/ufobat/Bailador/blob/ma.../App.pm#L6 ? because i cant install it with panda.. thoug the travis installation works :/ 05:03
nopaste.me/view/5554656e 05:04
sortiz ufobat, Seems that your module Bailador::Exceptions should be in META.info provides, 'cus your are 'use'ing that, not the classes it includes. 05:11
ufobat i have 2 X::Bailador::... in Bailador/Exceptions.pm 05:11
how should it be in the meta
github.com/ufobat/Bailador/blob/ma...A.info#L23 05:12
sortiz Yep, but you has 'use Bailador::Exceptions', not 'use X::Bailador...'
ufobat then my use is wrong?
sortiz Nop, I think that the installer/loader uses the "provides" names, 'cus don't know nothing about the symbols in there, so in META.info replace both X::Bailador with one Bailador::Exceptions 05:14
ufobat obviously dont understand module loading and comp units so far 05:15
all right! i guess its the same for github.com/ufobat/Bailador/blob/ma...A.info#L14 because Bailador::Routing is in Bailador/Route.pm i would remove this line as well 05:16
sortiz Yep, I think so.
ufobat :D thank you for helping me! 05:17
sortiz YW
ufobat and it works perfectly! 05:28
moritz \o 06:55
RabidGravy harr! 06:56
sortiz \o 07:04
masak morning, #perl6 07:07
moritz \o masak 07:11
cschwenz \o #perl6 :-) 07:14
buharin hello my friend 08:05
:)
DrForr Morning. 08:08
buharin DrForr: got small gap
I stopped learning perl6 by last time :( 08:09
DrForr Nothing to say you can't pick it up again :) Or come out to OSCON Austin where I'm teaching it :) 08:15
tadzik I'm glad to see Bailador growing :) ufobat++ 08:36
garu o/ 08:43
DrForr +1 # I need to get back to my stuff... 08:44
RabidGravy yeah
DrForr Need to finish the tutorial first though.
RabidGravy MORE WEB FRAMEWORKS! 08:47
El_Che DrForr: your hitting the conference road hard. You also ask 100k $ for a talk like Hilary? :) 08:48
RabidGravy I on the other hand am having a momentary struggle with where to place the "cookie authentication" stuff for Sofa
DrForr I should, damnit. 08:51
dalek ecs: 73f566e | tadzik++ | S11-modules.pod:
[S11] Typo fix
09:38
tadzik hmm, who was it who used Pod declarator blocks but found them insufficient? Was it you, RabidGravy? 09:52
RabidGravy yeah
It does something really ugly with attributes, I may have another look at it at some point 09:53
tadzik I just read on S26 that the exact rendering of declarator blocks is supposed to be implementation dependent 09:54
so I'm looking for ways to improve it
since I clearly don't have to re-spec it :)
as in, I see no reason why the gunpowder tre^W^Wdeclarator blocks should be treated any differently from regular Pod paragraph lists 09:55
DrForr Remember, remember the POD of declarator. 09:56
masak .oO( remember, remember, the fifth instance member ) 09:58
RabidGravy yeah, it was the way that they were rendered by --doc that I didn't like, I'm sure it can be improved 09:59
DrForr masak: Yeah, having numbers felt like a cheat :)
masak .oO( of gunpowder treason and cheats ) 10:01
tadzik RabidGravy: it requires deeper digging, it seems. Rendering is one thing, but currently they're just made into a one big long string when they're being parsed 10:02
lucs m: class Foo { method postcircumfix:<{ }> ($s) { uc $s } } ; my $x = Foo.new; say $x<abc>; # How to get "ABC"? 10:07
camelia rakudo-moar a0a1e9: OUTPUT«Type Foo does not support associative indexing.␤ in block <unit> at /tmp/SLSwgnRiDf line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/SLSwgnRiDf line 1␤␤»
jnthn lucs: method AT-KEY($s) 10:08
timotimo right, the postcircumfix thing is a subroutine, not a method 10:09
used to be amethod iirc 10:10
lucs Aha, thanks.
timotimo half a year to one year ago that was changed
tadzik ooh, this is bad :| 10:17
I think I'll resort to post-processing it
naah
ZoffixWin m: class Foo { multi postcircumfix:<{ }> (Foo $before, $inside) is export { uc $inside } }; import Foo; my $x = Foo.new; say $x{'abc'} 10:43
camelia rakudo-moar a0a1e9: OUTPUT«ABC␤»
ZoffixWin lucs, just an example of a custom postcircumfix. Won't let you use <> tho 10:44
without quotes that is
lucs ZoffixWin: Thanks. 11:25
wilcov Hello #perl6 :) 12:26
lucs Wasn't able to golf this, but printing $?FILE.IO in a file named "Foo.pm6" shows something like ".../Foo.pm6 (Foo)"; where does that " (Foo)" come from? 12:29
lucs I saw this when trying to 'stat' the file, which fails with an error message like: 12:32
stat: cannot stat `⋯/Foo.pm6 (Foo)': No such file or directory ⋯ in method get-stat at ⋯/Foo.pm6 (Foo) line 40
(Yes, the file name is "Foo.pm6", not "Foo.pm6 (Foo)".) 12:33
nine_ lucs: oh, that's there to make backtraces more readable, despite using SHA hashes for the names of installed module files. 12:38
lucs Hmm... Yet, I can't stat the file :/ 12:39
jnthn Why do you want to? 12:41
lucs I happen to want to know the file's owner/group. 12:41
And what if I just want to print its name? Getting that extra " (Foo)" is unexpected. 12:42
nine_ Clearly a regression. The goal was to only change the annotations, not $?FILE 12:44
jnthn Yeah, though relying on $?FILE mapping to a path you can stat may still not be...well...reliable. I mean, if you have a CompUnit::Repo impl that pulls the files in other the network, or out of a fatpack, or something... :-) 12:46
jnthn I asked what the goal was mostly in case it was one of the questions %?RESOURCES answers, anyway :) 12:47
nine_ just loves %?RESOURCES 12:48
lucs goes back to his code to see why he needs to know the file ownership exactly. 12:49
lucs Turns out what I really want is 'getlogin' or something, currently unavailable iiuc. 13:04
lucs I'll need another way to work around the workaround :) 13:05
Um, cd 「perl6 specs」; ack RESOURCES # Nothing :( 13:09
Oh well, for now, roughly: return 'lucs.lucs' :) 13:14
nine_ lucs: niner.name/talks/A%20look%20behind%...rl%206.pdf page 31 13:18
lucs nine_: Hey, thanks. 13:19
takadonet morning all
nine_ lucs: you get extra points for submitting a pull request to github.com/perl6/doc for adding the docs to raw.githubusercontent.com/perl6/do...iables.pod 13:20
sena_kun Hi, perl6. Can someone with a bit of a free time check latest rakudo PR? 13:22
lizmat lucs: try RESOURCE (without the s) 13:27
somehow I specced %RESOURCE instead of %RESOURCES
or: v.v., nine implemented RESOURCES instead of RESOURCE :-) 13:28
nine_ And I don't actually know why...
Probably just misremembered and noone noticed ;)
lizmat yeah, I don't really have a preference for the name :-) 13:29
nine_ Yep. 25 years of coding experience and I still don't know if I prefer signular or plural for such names 13:30
jnthn Heh, that's 1 more year than I have. :) 13:31
I don't know either, and I guess 1 more year isn't going magically give me the answer. :-) 13:32
nine_ Maybe another 25 :)
jnthn I'm generally less inclined in Perl because the sigil implies plurality
nine_ And %?RESOURCE<foo> is one specific resource... 13:33
lizmat nine_ : and I think that was the reason I specced without the S 13:38
nine_ lizmat: we can fix it in Perl 7 ;) 13:39
.oO(RFC 1?)
lizmat as I said, no hare preference :)
lucs gets off the phone. 13:44
lizmat: Aha, yep, RESOURCE I see. 13:45
nine_: Do you mean a pull request adding the relevant parts of your PDF to variables.pod? 13:46
nine_ lucs: yes 13:48
El_Che I see lizmat on photo's while she's chatting here. I live in the future :)
lizmat: how is the qa?
lizmat there's photo's?
El_Che pbs.twimg.com/media/CgjUWJsW4AAwxXD.jpg 13:49
lizmat ah, that was during the intro... :-) 13:51
we're all hard at work now... :-) 13:52
jnthn heh, somebody's taking a photo of the person taking that photo :P 13:56
[Coke] begins the coffee cycle anew. 13:57
lizmat takes that as a cue to get tea 13:58
nine_ The picture makes me regret all the more that I couldn't join you this year :/ 13:59
jnthn oooh, tea :) 14:02
mst nine_: most disappointing, means I've not got anybody to borrow a robe and wizard hat from :P 14:06
El_Che oh, this is the working pic: pbs.twimg.com/media/CgjjIVaWwAAMUIG.jpg 14:07
[Coke] OOOOH, it's the best part of work today! 14:09
MadcapJake what event was that? 14:11
DrForr The end? 14:13
[Coke] close, payday. :)
tadzik MadcapJake: Perl QA Hackathon, currently happening :) 14:14
MadcapJake cool!
tadzik and they have hackathon laptop stickers! 14:15
best thing ever
MadcapJake nice! What does QA stand for?
ah Quality Assurance
tadzik yeah 14:16
tadzik imgur.com/SNSJniJ sticker <3 14:18
ilmari nice 14:19
MadcapJake sweeet
AlexDaniel Perl 7? Did somebody mention Perl 7? Yeah, that would be great! We can probably say that we will release it on centenary (… but we will not specify which one). 14:32
yoleaux 20 Apr 2016 18:08Z <teatime> AlexDaniel: ooo! I have new/interesting info re: our convo about unicode character names (e.g., U+2019) … help me remember to tell you.
AlexDaniel teatime: ↑
tadzik github.com/perl6/modules.perl6.org is "forked from masak/proto". That brings back memories <3 14:57
MadcapJake how can you uses the trusts keyword if your classes are in separate files? wouldn't that just cause a circular dependency? 15:18
tadzik m: unit class bass; metohd foo(Str() $arg) { ... } 15:26
camelia rakudo-moar fe2be6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vCd2fYYv61␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/vCd2fYYv61:1␤------> 3unit class bass; metohd foo(Str()7⏏5 $arg) { ... }␤ expecting any of:␤ in…»
tadzik m: unit class bass; metohd foo($arg) { ... }
camelia rakudo-moar fe2be6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/qxN0V735k9␤Variable '$arg' is not declared␤at /tmp/qxN0V735k9:1␤------> 3unit class bass; metohd foo(7⏏5$arg) { ... }␤»
tadzik these error messages seem a bit LTA; in the perfect world I'd prefer to see "There's no such thing as «metohd», did you mean «method»?" 15:27
but I have no idea how you'd detect that. Then again, I have no idea why do you get this sort of error messages :)
jnthn yeah...not sure what the best way to make that happen is...
tadzik I mean, it probably things metohd is a name of a sub that gets declared later on
jnthn Well, you get the second one becuase
m: foo bar($arg)
camelia rakudo-moar fe2be6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V35gqsR9uw␤Variable '$arg' is not declared␤at /tmp/V35gqsR9uw:1␤------> 3foo bar(7⏏5$arg)␤»
tadzik yeah 15:28
MadcapJake does trusts work for private variables or just private methods?
jnthn MadcapJake: Just private methods
MadcapJake: And no, it doesn't work across files short of augment. Personally I consider that a feature :P 15:29
MadcapJake oh! bummer :\
I have these modularized components but they have a "raw" nativecall layer underneath that I want to keep away from the users but I wanted to at least allow the other components to get at them 15:30
jnthn Just put the nativecall layer in a lexical class, import it into the other modules and use it? 15:31
And then it won't be exported to consumers of the top-level module(s) or visible in GLOBAL?
So they'd have to explicitly import the nativecall layer to see it
MadcapJake well it's stateful though, so I need the specific instance of the other components
jnthn How does its lifetime relate to the other components? 15:32
MadcapJake One of them is a Tree and the other is a Node and another is a Collection (of nodes). 15:33
jnthn And the stateful nativecall layer's state is scoped to...the tree? 15:34
Or something else?
MadcapJake yeah to the tree, the parser and the tree allow me to get pointers to the other bits but I am right now implementing the sugary outer-coating of this module :) so I wanted to keep my constructors minimal 15:36
jnthn So, what did you want to trust?
The nativecall layer from the tree/parser? 15:37
MadcapJake Collection trusts Tree (so that I can build Node instances inside Collection)
I'll just have to include extra named arguments in my constructor for the Tree 15:39
MadcapJake After rereading your comments, I think you're saying create a module that stores the pointers to the needed bits and then just include those into my sugary classes, right? 15:42
jnthn MadcapJake: Yeah, something like that 15:43
MadcapJake: And make it a "my" class so that it's not put in GLOBAL
jnthn So you hide it from those who aren't looking for it 15:43
MadcapJake and you can export a "my" class just the same? 15:45
jnthn yes 15:46
Just have to explicitly label it "is export"
MadcapJake Sweet! Didn't know that was possible! :)
teatime seems, sadly, to have missed AlexDaniel's most recent appearance. 16:08
MadcapJake what's this mean: Autovivifying object closures not yet implemented. Sorry. 16:16
mst I understand all of the words, but in the absence of code I can't guess exactly what it means 16:17
[Coke] MadcapJake: at one point we tried hard to throw nice NYI exceptions for things that we hadn't done yet. 16:17
MadcapJake «my $raw-col = do if Tag{$tag}⏏:exists {»
I've implemented EXISTS-KEY for the Tag class 16:18
jnthn MadcapJake: Tag{...} is reserved syntax 16:19
MadcapJake oh :\
jnthn MadcapJake: As is Tag[...] (parameterized type) and Tag(...) (coercion type)
Yeah, back to the "not enough bracket chars in ASCII" problem again
Tag.{$tag}:exists will force the interpretation you want 16:20
MadcapJake ohh! As in the postcircumfix on a class is reserved 16:21
jnthn Right 16:23
Xliff m: $v = 4.30221892377; $v.WHAT.say 16:27
camelia rakudo-moar fe2be6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ArT2m80NPr␤Variable '$v' is not declared␤at /tmp/ArT2m80NPr:1␤------> 3<BOL>7⏏5$v = 4.30221892377; $v.WHAT.say␤»
Xliff m: my $v = 4.30221892377; $v.WHAT.say
camelia rakudo-moar fe2be6: OUTPUT«(Rat)␤»
Xliff m: my $v = 4.30221892377; $v.WHAT.say; say $v.NUM
camelia rakudo-moar fe2be6: OUTPUT«(Rat)␤Method 'NUM' not found for invocant of class 'Rat'␤ in block <unit> at /tmp/11IkZR1Pgj line 1␤␤» 16:28
Xliff m: my $v = 4.30221892377; $v.WHAT.say; say $v.Num
camelia rakudo-moar fe2be6: OUTPUT«(Rat)␤4.30221892377␤»
Xliff m: my $v = 4.30221892377; sat $v ~~ Num;
camelia rakudo-moar fe2be6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jGqfgGwZ4d␤Undeclared routine:␤ sat used at line 1. Did you mean 'set', 'say'?␤␤»
Xliff m: my $v = 4.30221892377; say $v ~~ Num;
camelia rakudo-moar fe2be6: OUTPUT«False␤»
Xliff Hum.
How can I determine if a Rat is a valid Num? 16:29
tadzik numify it? :) 16:30
lizmat m: say (42/0).Num
camelia rakudo-moar fe2be6: OUTPUT«Inf␤»
tadzik m: (1/0).Num
camelia ( no output )
tadzik m: say (1/0).Num ~~ Num
camelia rakudo-moar fe2be6: OUTPUT«True␤»
tadzik I'm pretty sure it's always true :)
lizmat isn't Num a superset of Rat ? 16:31
Xliff m: my $v = 4.30221892377; say $v.Num ~~ Num; 16:32
camelia rakudo-moar 463e75: OUTPUT«True␤»
jnthn lizmat: No, that's Numeric 16:34
Rat ~~ Num will never be true; Num is floating point representation, Rat is rational 16:35
teatime notes that $some-num.Rat can easily fail, whereas I'm no sure $some-rat.Num ever would 16:38
although $some-rat.Num is can easily be very lossy.
TimToady conversion from Rat to Num usually loses information, so it usually loses enough info to not fail
teatime experience that exciting moment where you say something almost the same as someone smart ;) 16:39
ilmari m: say 2.sqrt.Rat
camelia rakudo-moar 463e75: OUTPUT«1.414213␤»
TimToady is not so smart; mostly he's just smartmouthed 16:40
ilmari how can $num.Rat fail given that any finite-digit number is rational 16:41
leont I'm looking into getting rid of the perl5 script involved in the build process. gen-version is trivially short, but rather complicated by needing to be written in NQP. Can anyone come up with a way to get the date (strftime-like) from NQP?
TimToady ilmari: at minimum, it can fail to give you back the original value :)
teatime TimToady: I'd like to clarify the intended behavior of operations on Duration objects via a patch for S02 & S32, to go along w/ operator implementations & test cases for same; any suggestions or desires in that regard? I have a PR sitting in rakudo right now that made a first stab at the operators, but gonna change some of the semantics slightly (and clean it up) 16:42
ilmari TimToady: yeah, but that's not what I thought teatime meant
jnthn leont: How do you get what you want in Perl 6?
TimToady teatime: I'm a bit leary of starting down the whole dimensional analysis road without a comprehensive design...
teatime hrm, perhaps I was just wrong ilmari 16:43
ilmari m: say 2.sqrt; say 2.sqrt.Rat
camelia rakudo-moar 463e75: OUTPUT«1.4142135623731␤1.414213␤»
teatime TimToady: I'm offerring free comprehensive design ;) tbh, it's not very complex, there are only a couple of interesting cases.
TimToady: I have put a lot of thought into it over the past couple of weeks :)
TimToady so you'll handle everything in the units file? :) 16:43
teatime TimToady: if you like, i can write up an executive summary of what I think the best semantics behavior
jnthn leont: (Then I can look how it does it and give you an NQP equivalent, I guess :)) 16:44
teatime heh... perhaps if I knew what the units file was?
leont jnthn: I'd probably use a Datetime.now.formatter, but I don't think that's available in nqp
teatime is there actually, like, a unit-tracking subsystem in P6? surely I haven't overlooked that..
TimToady: so anyway, yeah... I'd write up a brief but complete description of what I think Duration etc. should do, and let you yay/nay it. I beleive you will be happy/satisfied. 16:46
er *I'll
jnthn leont: ah, no, and that's probably a decent bit of logic 16:47
TimToady teatime: I mean a file like /usr/share/units/definitions.units on my system 16:50
that's what I think of when someone uses the word "comprehensive" :)
(well, in regard to dimensional analysis, anyway) 16:51
(I don't think of that file when someone says "comprehensive" wrt my car insurance...) 16:52
teatime well, almost all of the * and / and % operations on Durations naturally end up returning durations. a few naturally return a dimensionless numbers instead. one would a value in a mostly-meaningless dimension of time², but that operations is confirmed to be used sometimes, so shouldn't fail. and another wants to retun units we don't have (frequency). 16:54
tadzik hah, I tried the qt profiler with new profile and it dies with floating-point exception :D
timotimo: I think I remember you talking about updating it to a new format? 16:55
timotimo the what now? 16:56
oh
teatime my strategy is, 1) number (of seconds) should be accepted anywhere a Duration would be, 2) Duration should gracefully become a Rat etc. when used that way (as the spec already says), 3) operations on Duration that would naturally return a Duration or a unitless number do exactly that. less meaningful ones, just return numbers. Thanks to points 1 and 2, I believe this will make stuff Just Work, *and* you get
the dimensionally-correct return values in case you care.
timotimo yes, i've pulled out filename, line number and routine name into a separate lookup table, because they were repeated over and over and over and over again :) 16:57
teatime note: this strategy is not what is in my current PR, so I should prolly withdraw it. 16:57
timotimo and something else was changed in the same way, but i forgot what
should be easy enough for you to find the offending commit by blaming or historying the profiler .html file or HLL::Backend or what has it
(inside moar of course)
timotimo er. i mean in nqp, but in src/vm/moar 16:59
teatime TimToady: fwiw, there's a little contradiction (and lots of unspecified behavior) in the current S32/S02, and the present-day Duration in rakudo has some really undesirable behavior... like, ($dur1 / $dur2) passes through Num so randomly loses, rather than dividing Rat's. 17:00
teatime TimToady: if you think there's zero chance of getting such a change in, I won't bother, but if you're willing to srsly consider my final doc/test/rakudo diffs I'm more than happy to do it. it will be educational for me regardless. 17:02
TimToady well, fershure dividing two rationals should try to stay rational, though it's pretty easy to blow through a 64-bit denominator 17:06
and it really kinda depends on the practical use of the division, since Num has plenty of precision for most practical uses of durations
teatime well, for one thing, it greatly reduces the practically useful precision available in the Duration type 17:07
teatime iirc from something that should cover just about every possible use-case for durations of time (5 attoseconds or soemthing), to something closer to microseconds. 17:08
TimToady unless you're dealing with femto-seconds for some laserly reason 17:08
TimToady and for most E = mc² calculations you're gonna set c to 1 anyway :) 17:08
teatime but, the fact that the 2 rats don't do rat division was so disgusting to me that I never stopped to consider if it would ever actually practically matter, heh.
tadzik they don't? 17:12
jnthn This week's Perl 6 work blog post: 6guts.wordpress.com/2016/04/21/fra...e-problem/
tadzik yay 17:12
teatime (1 ÷ 2⁶⁴-1) is 5.42 × 10⁻²⁰, as seconds that's smaller than an attosecond (= 1 × 10⁻¹⁸ s), which is good because it means it covers pretty much every conceivable scenario (“As of May 2010, the smallest time interval uncertainty in direct measurements is on the order of 12 attoseconds (1.2 × 10⁻¹⁷ seconds), about 2.2 × 10²⁶ Planck times.” <from wikipedia> and it's not *so much* 17:13
overly-precise that it really wastes space.
TimToady (Int / UInt64) / (Int / UInt64) would turn into (Int / UInt64) * (UInt64 / Int), is my point, and multiplying the denominators is going to exceed 64 bits pretty quick, so even if we force it back into Rat (rather than FatRat) we'd have to approximate 17:13
teatime since you already have that for your Duration type, randomly-gimping it into microsecond-ish precision seems like an unfortunate thing to do.
TimToady just trying to make an argument for Num here, not against doing Rat when we can 17:14
teatime TimToady: not sure I tried it but I have every reason to beleive that dur * dur would go through the same .Num conversion and thus lose, in current rakudo
teatime notes that the figures above were already handy in his notes on this topic :) 17:15
Xliff Wow! 17:16
Prince died!
teatime oh, word? hrm, that's unexpected (to me)
Xliff sobs.
teatime my name is also Prince, so I've always felt a kind of connection, heh.
Xliff Now TMZs front page is 503 17:17
Ėveryone else is just saying that there "has been a death at Paisley Park"
teatime TimToady: is there like, a performance benefit to doing the operations on Num's rather than Rat's? 17:18
Xliff www.billboard.com/articles/news/734...rince-dead 17:19
Xliff 57. Way too young. 17:19
Xliff I wonder. If we get a computer that can accurately measure in planck seconds....would that be the Matrix? 17:21
leont_ is surprised to discover IO::Handle doesn't have a printf method 17:22
teatime Xliff: so, my recent research has revealed, that planck seconds don't actually have any particular significance 17:47
Xliff: it's not a fundamental limit on anything etc etc. in the same way the planck length is.
moritz what's the fundamental limit that a planck length imposes? 17:55
so far everything I heard about it sounded pretty much like speculation, not established theory/consensus
teatime my mistake moritz, you're right; IANAP 18:04
I thought it was like the theoretically smallest measurable distance or something
arnsholt Smallest distance something can move, I think? 18:05
moritz arnsholt: that's the speculation, yes. So like a space quantization
but that's it, speculation
it's not like there's a compelling theory where everything sudeenly made sense if only space was quantified
at least not that I know of
MadcapJake did you read the latest on the emdrive? There were some bits about quantization in there 18:06
moritz MadcapJake: no
MadcapJake www.technologyreview.com/s/601299/...-thruster/
Xliff teatime, so space can be quantized, but not time? 18:08
teatime fiik
Xliff ^_^
Well, it follows that if the planck length is the smallest measurable amount of distance, then the planck time should be the smallest measurable amount of time. 18:09
But there I go....attempting to inject logic where it has no business going (ie quantum physics)
Xliff is still bummed about Prince dying. 18:10
teatime I just know wikipedia and #physics told me it has no particular/especial significance, beyond, as wikipedia puts it, it "represents a rough time scale at which quantum gravitational effects are likely to become important."
MadcapJake planck time is the time it would take for a photon to travel (at speed of light) the distance of the planck length
teatime Xliff: I'm not even a fan or anything, my emotional reaction to this news is entirely rooted in the life-time of dumb jokes that have revolved around my last name being Prince.
Xliff MadcapJake, given that the speed of light is the fastest you can go, then it would follow that a planck second is the smallest measurable amount of time. 18:11
MadcapJake Xliff: righto
Xliff teatime: I am a huge Prince fan.
MadcapJake except apparently inside an emdrive :P
teatime the set of 'weird things Prince is doing or planning to do in my name' is no longer unbounded :/
Xliff 1999 was the album that changed my life. 18:12
timotimo ;(
Xliff teatime: Ah. I grok.
teatime considers changing his name to some unpronouceable symbol in homage.
Xliff Still....
<- depressed.
MadcapJake, emdrive? I saw a link about that, earlier.
Maybe I should read.
teatime sadly, the "unpronouncable" requirement eliminates every Unicode codepoint from consideration, since they all have well-established names. 18:13
... perhaps it could be an NFG grapheme, of particular complexity that would make it difficult to pin down a name for
MadcapJake Xliff: it's a propulsion device that shouldn't work but does
Xliff "Shouldn't work" because we just don't have the physics for it yet. 18:14
I am unimpressed....with the naysayers.
MadcapJake Xliff: no, because our model says it shouldn't work :P
Xliff But it does, right?
MadcapJake Xliff: right, it just requires that the speed of light can change and that photons have mass :P
Xliff Let me finish reading the article before I stick my foot in your mouth. 18:15
=)
MadcapJake haha
Xliff "The EmDrive, it seems, really does produce thrust." 18:16
And nope. No one is in there pushing the sides to do it.
MadcapJake hehe
Xliff "And last year, NASA conducted its own tests in a vacuum to rule out movement of air as the origin of the force. NASA, too, confirmed that the EmDrive produces a thrust. In total, six independent experiments have backed Shawyer’s original claims."
So...MadcapJake. Sounds like the model has a bug in it! 18:17
MadcapJake Xliff: more than a bug, a faulty spec :P
Xliff LOL!
"That’s an interesting idea. Shawyer’s EmDrive has the potential to revolutionize spaceflight because it requires no propellant, the biggest limiting factor in today’s propulsion systems. But in the absence of any convincing explanation for how it works, scientists and engineers are understandably wary." 18:19
o_O
MadcapJake isn't that crazy!? Sci-fi IRL! 18:20
Xliff www.technologyreview.com/s/601263/...-problems/ 18:21
The one below it is also .... dubious
Math-fi. IRL! That might be useful!
MadcapJake hopes that Math-fiction never becomes a thing... 18:22
Xliff You too can take DARPA's money.
So says Joseph Bates, cofounder and CEO of Singular Computing, a company whose computer chips are hardwired to be incapable of performing mathematical calculations correctly. Ask it to add 1 and 1 and you will get answers like 2.01 or 1.98.
MadcapJake Interesting quote in the HN comments: A scientific truth does not triumph by convincing its opponents and making them see the light, but rather because its opponents eventually die and a new generation grows up that is familiar with it. -- Max Planck 18:24
Xliff I would do it in perl6, but I would need to figure out a way of getting the proper infix:<+> to work inside my redefinition of infix:<+>
Xliff m: class FussyNum does Num {}; 18:27
camelia rakudo-moar 463e75: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oPQ3E_5XVe␤Num is not composable, so FussyNum cannot compose it␤at /tmp/oPQ3E_5XVe:1␤»
MadcapJake m: class FussyNum is Num {} 18:28
camelia ( no output )
Xliff Oh.
m: class FussyNum is Num {}; sub infix:<+>(FuzzyNum $a, FuzzyNum $b) { $a.Num + $b.Num + rand() ** rand() }; my FuzzyNum $a = 1; my FuzzyNum $b = 1; say $a + $b 18:30
camelia rakudo-moar 463e75: OUTPUT«5===SORRY!5=== Error while compiling /tmp/6z4ZpmtXJ_␤Invalid typename 'FuzzyNum' in parameter declaration. Did you mean 'FussyNum'?␤at /tmp/6z4ZpmtXJ_:1␤------> 3ssyNum is Num {}; sub infix:<+>(FuzzyNum7⏏5 $a, FuzzyNum $b) { $a.Num + $b.Num …»
Xliff m: class FuzzyNum is Num {}; sub infix:<+>(FuzzyNum $a, FuzzyNum $b) { $a.Num + $b.Num + rand() ** rand() }; my FuzzyNum $a = 1; my FuzzyNum $b = 1; say $a + $b
camelia rakudo-moar 463e75: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tKuxMlGQcH␤Unsupported use of rand(); in Perl 6 please use rand␤at /tmp/tKuxMlGQcH:1␤------> 3a, FuzzyNum $b) { $a.Num + $b.Num + rand7⏏5() ** rand() }; my FuzzyNum $a = 1; my F␤»
MadcapJake Xliff: rand is a bare term not a sub
Xliff Now the trick is figuring out how to initialize a FuzzyNum 18:32
Coz even though there is the "is Num"
MadcapJake FuzzyNum.new(1) and then in the infix you'll need to take the internal rep
Xliff Wow. 18:34
OUTPUT«Memory allocation failed; could not allocate 111088 bytes␤»
Xliff How do you get the internal rep? 18:34
Xliff And trying to coerce to num64 doesn't do as expected. "my num64 $ai = $a" ==> OUTPUT«Type check failed in binding $a; expected FuzzyNum but got Num (1e0)» 18:39
MadcapJake yeah not sure, closest i can get is: 18:41
timotimo RabidGravy: i'm now sitting in front of a keystation mini 32 by m-audio, and it's a surprising difference between piano-keys and keyboard-keys 18:42
the way you touch them alone; flat instead of from the top
MadcapJake my class BadNum is Num { has Int $.i; }; sub infix:<+>(BadNum $x, BadNum $y) { $x.i * rand + $y.i + rand }; my $one = BadNum.new:i(1.0); my $two = BadNum.new:i(2.0); say $one + $two
m: my class BadNum is Num { has Num $.i; }; sub infix:<+>(BadNum $x, BadNum $y) { $x.i * rand + $y.i + rand }; my $one = BadNum.new:i(1.0); my $two = BadNum.new:i(2.0); say $one + $two
camelia rakudo-moar 463e75: OUTPUT«Invocant requires an instance of type Num, but a type object was passed. Did you forget a .new?␤ in sub infix:<+> at /tmp/_SjrlMkUbk line 1␤ in block <unit> at /tmp/_SjrlMkUbk line 1␤␤»
MadcapJake m: my class BadNum is Num { has Num $.i; }; multi sub infix:<+>(BadNum $x, BadNum $y) { $x.i * rand + $y.i + rand }; my $one = BadNum.new:i(1.0); my $two = BadNum.new:i(2.0); say $one + $two 18:43
camelia rakudo-moar 463e75: OUTPUT«Invocant requires an instance of type Num, but a type object was passed. Did you forget a .new?␤ in sub infix:<+> at /tmp/Qp6aTh3qWM line 1␤ in block <unit> at /tmp/Qp6aTh3qWM line 1␤␤»
timotimo MadcapJake: if you want to have : and a pair, you'll need :: instead of :
MadcapJake m: my class BadNum is Num { has Num $.i; }; multi sub infix:<+>(BadNum $x, BadNum $y) { $x.i * rand + $y.i + rand }; my $one = BadNum.new::i(1.0); my $two = BadNum.new::i(2.0); say $one + $two 18:44
camelia rakudo-moar 463e75: OUTPUT«Cannot dispatch to method i on Failure because it is not inherited or done by BadNum␤ in block <unit> at /tmp/DZVJ2k9Hga line 1␤␤»
MadcapJake what a year for deaths of famous musicians :\ 18:47
RabidGravy timotimo, much better than playing on a PC keyboard, you can actually see the notes 18:49
cschwenz from blogs.perl.org/users/zoffix_znet/20...umans.html , "This can be useful to detect whether a method is called on the class or on the instance by having two multies with :U and :D on the invocant." where does said :U or :D get placed in the mulit method definition?
ZoffixW cschwenz, on the invocant 18:50
RabidGravy like: method(Foo:D: )
timotimo RabidGravy: i can almost see the notes on my keyboard :P
ZoffixW m: class Foo { multi method bar (Foo:U:) { 'class' }; multi method bar (Foo:D:) { 'instance' } }; say Foo.bar; say Foo.new.bar 18:51
camelia rakudo-moar 463e75: OUTPUT«class␤instance␤»
cschwenz aha
i was writing "multi method bar:U …"
thanks for the example :-) 18:52
ZoffixW No problem
timotimo RabidGravy: what's the simplest way i could stream my fumbling and foolishness to a friend? 18:57
RabidGravy icecast on some public server 19:00
timotimo i wonder if hack is a server i'd be allowed to put this onto. though i could also just put it onto my home desktop
RabidGravy if you can open a port then that would work 19:01
timotimo yes, i can
how best to get audio from sunvox to the icecast server? 19:02
RabidGravy normally you'd use a source client like darkice which takes some input then sends it to the icecast 19:03
typically the input would be from jack or pulseaudio 19:04
I think sunvox will output to jack 19:05
timotimo it will, yes 19:07
anything that's packaged in fedora that could pump my audio data to the icecast server?
"ices"? "ezstream"? 19:08
RabidGravy simplest way is to start jack with qjackctl, configure darkice tro use jack as an input, start sunvox, then use qjackctl to connect the output of sunvox to the darkice
timotimo i can't install darkice, it's not packaged
there is a copr, though 19:09
*sigh* i'll build it from source
RabidGravy ezstream definitely won't work 19:11
timotimo that would have been too ez 19:12
RabidGravy Hm I thought there was a package for darkice
if you install from source make sure you install jack-audio-connection-kit-devel first 19:13
timotimo yeah
i'm hunting all the dependencies already 19:14
RabidGravy ccrma.stanford.edu/planetccrma/soft...0000000000 may help, there is a 23 despite the page 19:15
timotimo well, darkice starts, but it tells me it needs a config and doesn't tell me anything about what that config is supposed to look at 19:16
look like*
the darkice website has nothing remotely like a manual 19:17
RabidGravy 'ang on
timotimo but an INSTALL file 19:18
oh, it's just the default one that comes with autotools or whatever
timotimo a manpage for the .cfg file exists 19:19
RabidGravy gist.github.com/jonathanstowe/c618...b11069bfc7 - you just need to adjust the server values in the icecast-2.0 section 19:21
timotimo do i configure for icecast or icecast-2?
RabidGravy icecast-2
timotimo TYVM
bah, mp3 stream :P 19:22
RabidGravy icecast can do vorbis, opus and webm as well - depends what you build the darkice with to what you can stream 19:23
oh and aac
timotimo opus would be interesting. can chrome receive that? 19:25
RabidGravy dunno
timotimo i'd probably have to stop pulseaudio? 19:26
i could probably get it to work with pulse, too
RabidGravy possibly, I've got a feeling the fedora build of jackd does something like stop the pulseaudio or the pulseaudio knows to give up the sound card or something 19:28
but yes jackd wants exclusive access to the sound card
though you can use the dummy driver or another soundcard or something 19:29
timotimo i want to hear stuff with my own ears, too, while playing 19:30
geekosaur pulseaudio can be configured to yield the audio device to something that accesses it directly, fwiw 19:34
timotimo i'm now trying to be able to both listen to and also record from the program ...
teatime .tell alexdaniel grr, missed you... remind me again, I don't want to forget ;) 19:36
yoleaux teatime: I'll pass your message to alexdaniel.
Xliff m: class FuzzyNum { has Num $.i; method new ($i) { self.bless(:$i) }; submethod BUILD(:$i){}; }; sub infix:<+>(FuzzyNum $a, FuzzyNum $b) { $a.i + $b.i + rand ** rand }; my FuzzyNum $a .= new: 1e0; my FuzzyNum $b .= new: 1e0; say $a.WHAT; say $b.WHAT; say $a + $b
camelia rakudo-moar 463e75: OUTPUT«(FuzzyNum)␤(FuzzyNum)␤Type check failed in binding $a; expected FuzzyNum but got Num (Num)␤ in sub infix:<+> at /tmp/k9BNKoOuXJ line 1␤ in sub infix:<+> at /tmp/k9BNKoOuXJ line 1␤ in block <unit> at /tmp/k9BNKoOuXJ line 1␤␤»
Xliff Hunh?
RabidGravy geekosaur, that'll be what it does on fedora then :) 19:37
dogbert2 o/ #perl6 19:39
anyone up for a documentation question or two? 19:40
perlpilot dogbert2: 42
:)
dogbert2 why is sprintf documented under Str and not Cool?
timotimo why is the error message so unhelpful? "Failure: Module initialization failed" >:( 19:41
[Coke] dogbert2: I wouldn't assume anything in docs layout is particularly intended.
tadzik Fwiw, neither does panda :)
(ignore that :))
dogbert2 Str.^methods does not show sprintf while Cool.^method does
perlpilot dogbert2: but the "s" in "sprintf" stands for "string" and people still associate it with strings. 19:42
timotimo oh, i could just leave the "sink" off and it's fine
perlpilot dogbert2: that's not a *reason* btw, but more of a rationalization.
dogbert2 perlpilot: true, it's just that it's not there 19:43
maybe it doesn't matter much but if I was to add docs for printf should I put it under Str as well?
cschwenz okay so, after putting kids to bed, i'm now trying to modify ZoffixW's example to allow the methods to accept named parameters. 19:45
p6: class Foo { has Str $.qux; multi method bar(Foo:U: Str :$qux = "wat" ) returns Foo:D { my $obj = self.new( 'qux' => "'$qux' was defined in Foo.bar()..." ); say "[[ Class ]] self.qux = '?' qux = '$qux'"; return $obj; }; multi method bar(Foo:D: Str :$qux = "yes" ) returns Foo:D { say "[[ Instance ]] self.qux = '$.qux' qux = '$qux'"; return self; }; }; Foo.bar( 'qux' => 'asdf' ); Foo.new( 'qux' => 'zxcv' ).bar( 'qux' => 'qwerty' );
camelia rakudo-moar 463e75: OUTPUT«Cannot call bar(Foo: Pair); none of these signatures match:␤ (Foo:U $: Str :$qux = "wat", *%_ --> Foo:D)␤ (Foo:D $: Str :$qux = "yes", *%_ --> Foo:D)␤ in block <unit> at /tmp/tmpfile line 1␤␤»
timotimo RabidGravy: we have lift-off!
RabidGravy yay!
cschwenz so i'm clearly am doing something wrong
RabidGravy radio timo
timotimo if i set the mode to vbr instead of cbr, will i get low outgoing traffic when it's silent? 19:46
RabidGravy cschwenz, no quotes in the named parameter
RabidGravy timotimo, possibly 19:46
dogbert2 from Cool.pm: sub printf(Cool $format, *@args) { print sprintf $format, @args } 19:46
cschwenz p6: class Foo { has Str $.qux; multi method bar(Foo:U: Str :$qux = "wat" ) returns Foo:D { my $obj = self.new( qux => "'$qux' was defined in Foo.bar()..." ); say "[[ Class ]] self.qux = '?' qux = '$qux'"; return $obj; }; multi method bar(Foo:D: Str :$qux = "yes" ) returns Foo:D { say "[[ Instance ]] self.qux = '$.qux' qux = '$qux'"; return self; }; }; Foo.bar( qux => 'asdf' ); Foo.new( qux => 'zxcv' ).bar( qux => 'qwerty' ); 19:47
camelia rakudo-moar 463e75: OUTPUT«[[ Class ]] self.qux = '?' qux = 'asdf'␤[[ Instance ]] self.qux = 'zxcv' qux = 'qwerty'␤»
cschwenz \o/
dogbert2 so print and sprint can have more or less the same documentation
cschwenz thanks RabidGravy!
dogbert2 s/int/intf/
perlpilot cschwenz: if that's not documented adequately, maybe you could make it more prominent or something. (It feels like a FAQ in the making to me) 19:48
dogbert2 ok, I'll add printf documentation to Str then (more or less a copy of the one for sprintf) :) 19:50
cschwenz to be honest, i could find no mention of how to use :U or :D on a method on perl6.org ZoffixW's blog post was the first time i ran across the possibility of that construct. 19:51
ufobat hey perl6 :-) 19:52
Xliff \oufobat
Er...
\o ufobat
ufobat :D
Xliff I think my space key hates me. I will just hate it back.
Xliff picks up his Lil' Slugger.
ufobat time for a new keyboard? 19:53
Xliff Oh yes. Soon.
ufobat my touchpad is broken :-/
Xliff :/
So what is wrong with this...
m: class FuzzyNum { has Num $.i; method new ($i) { self.bless(:$i) }; submethod BUILD(:$i){}; }; sub infix:<+>(FuzzyNum $a, FuzzyNum $b) { $a.i + $b.i + rand ** rand }; my FuzzyNum $a .= new: 1e0; my FuzzyNum $b .= new: 1e0; say $a.WHAT; say $b.WHAT; say $a + $b
camelia rakudo-moar 463e75: OUTPUT«(FuzzyNum)␤(FuzzyNum)␤Type check failed in binding $a; expected FuzzyNum but got Num (Num)␤ in sub infix:<+> at /tmp/GoLpWWKpO5 line 1␤ in sub infix:<+> at /tmp/GoLpWWKpO5 line 1␤ in block <unit> at /tmp/GoLpWWKpO5 line 1␤␤»
ufobat but i am lucky, i am still getting service from dell :-) i guess the will replace it monday 19:54
Xliff ufobat, Nice!
ufobat: Did you hear that Prince died, today?
WTF is going on with our musicians? They are dropping like flies.
ufobat are you kidding?
he wasn't that old, was he?
Xliff www.tmz.com/2016/04/21/prince-dead-at-57/ 19:55
Nope.
ufobat 57
:/
ufobat Xliff, your example works without + rand ** rand 19:59
ufobat ah wait wait 20:00
i was saying nonsense, i invoked the wrong file ;) 20:01
ufobat Xliff, ah! i've got it! add a say $a.perl; 20:05
your $.i is undef
its (Num)
MadcapJake m: class FuzzyNum { has Num $.i }; sub infix:<+>(FuzzyNum $a, FuzzyNum $b) { FuzzNum.new(i => $a.i + $b.i + rand ** rand) }; my FuzzyNum $a .= new: 1e0; my FuzzyNum $b .= new: 1e0; say $a.WHAT; say $b.WHAT; say $a + $b 20:06
camelia rakudo-moar 463e75: OUTPUT«5===SORRY!5=== Error while compiling /tmp/j4jtNXzUAp␤Undeclared name:␤ FuzzNum used at line 1. Did you mean 'FuzzyNum'?␤␤»
dogbert2 m: sprintf "%ld a big number, %lld a bigger number\n", 4294967295, 4294967296; # hmm
camelia rakudo-moar 463e75: OUTPUT«Directive ld a big number, %lld a bigger number␤ is not valid in sprintf format sequence %ld a big number, %lld a bigger number␤␤ in any at /home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm line 1␤ in any panic at /home/camel…»
MadcapJake m: class FuzzyNum { has Num $.i }; sub infix:<+>(FuzzyNum $a, FuzzyNum $b) { FuzzyNum.new(i => $a.i + $b.i + rand ** rand) }; my FuzzyNum $a .= new: 1e0; my FuzzyNum $b .= new: 1e0; say $a.WHAT; say $b.WHAT; say $a + $b
camelia rakudo-moar 463e75: OUTPUT«Default constructor for 'FuzzyNum' only takes named arguments␤ in block <unit> at /tmp/PeSgM2Homl line 1␤␤»
MadcapJake m: class FuzzyNum { has Num $.i }; sub infix:<+>(FuzzyNum $a, FuzzyNum $b) { FuzzyNum.new(i => $a.i + $b.i + rand ** rand) }; my FuzzyNum $a .= new(i => 1e0); my FuzzyNum $b .= new(i => 1e0); say $a.WHAT; say $b.WHAT; say $a + $b 20:07
camelia rakudo-moar 463e75: OUTPUT«(FuzzyNum)␤(FuzzyNum)␤Type check failed in binding $a; expected FuzzyNum but got Num (1e0)␤ in sub infix:<+> at /tmp/9sLVNaTam3 line 1␤ in sub infix:<+> at /tmp/9sLVNaTam3 line 1␤ in block <unit> at /tmp/9sLVNaTam3 line 1␤␤»
dogbert2 this was directly from the sprintf documentation 20:07
ufobat m: class FuzzyNum { has Num $.i; method new($i){ self.bless(:$i) }; submethod BUILD(:$i){}; }; my FuzzyNum $a .= new: 1e0; say $a.perl; 20:09
camelia rakudo-moar 463e75: OUTPUT«FuzzyNum.new(i => Num)␤»
ufobat submethod BUILD(:$i) vs BUILD(:$!i) 20:11
sena_kun Good evening, all! Day seemed busy, probably should re-ask. Please, someone who is in charge of rakudo PRs and free(or a bit free, at least), can you take a look at the latest PR? Just a few lines of code, minor change, tested, can't work further without it. I can discuss the details here, of course. 20:12
MadcapJake Xliff: we forgot the multi in front of the sub
Xliff: otherwise you're overloading ALL + operators :)
ufobat i've got a question as well.. is this idiomatic, wierd or okay? gist.github.com/ufobat/b526c0ed33e...3ec515ed40
teatime rejects his own p6 PR... will re-build it w/ more killer features and fewer sleeplessness-induced cosmetic damage.
ZoffixMobile RabidGravy, was it you the other day who had some Perl 6 script that generated music? Was it a module? 20:16
RabidGravy yeah, see examples of Audio::PortMIDI or EuclideanRhythm also psch's Music::Helpers 20:18
MadcapJake Xliff: gist.github.com/MadcapJake/1873f15...49ea6d7b3f
ZoffixMobile Cool.
m: gist.github.com/MadcapJake/1873f15...49ea6d7b3f 20:19
camelia rakudo-moar 463e75: OUTPUT«1␤1␤2.95748842341148␤»
ZoffixMobile neat
RabidGravy ZoffixMobile, at some point I'll dig out the thing that generates tunes from the mandelbrot set 20:24
Xliff m: class FuzzyNum { has Num $.i; method new ($i) { self.bless(:$i) }; submethod BUILD(:$i){}; }; sub multi infix:<+>(FuzzyNum $a, FuzzyNum $b) { $a.i + $b.i + rand ** rand }; my FuzzyNum $a .= new: 1e0; my FuzzyNum $b .= new: 1e0; say $a.WHAT; say $b.WHAT; say $a + $b 20:27
camelia rakudo-moar 463e75: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5kWYEnPDS4␤Missing block␤at /tmp/5kWYEnPDS4:1␤------> 3ethod BUILD(:$i){}; }; sub multi infix:<7⏏5+>(FuzzyNum $a, FuzzyNum $b) { $a.i + $b␤ expecting any of:␤ colon pair␤ quot…»
Xliff MadcapJake++ 20:29
Forgot about the multi.
ufobat but your submethod BUILD is not correct?
Xliff I would suspect extraneous. 20:29
timotimo RabidGravy: has tips for making lag less? a friend of mine is getting like 20 seconds 20:31
RabidGravy 20 seconds? 20:32
how fast is your connection to the internet? 20:33
Xliff m: gist.github.com/MadcapJake/1873f15...49ea6d7b3f
camelia rakudo-moar 463e75: OUTPUT«1␤1␤2.98893871552091␤»
MadcapJake perhaps the initial values should be fuzzed as well :) 20:34
RabidGravy icecast will try to 'help' "slow ckients" and if your icecast is on a slow connection then they are all slow
Xliff MadcapJake, Naw. It's close. I don't want the fuzziness to be > 1 20:35
However. It's been 2.9+ twice now. Odd.
RabidGravy the instrument -> jack -> darkice is likely to be in the tens of millisecods 20:36
Xliff Crap. I might as well replace the "rand ** rand" with just "rand"
RabidGravy encoding lag ~ 1 frame
[Coke] sena_kun: what's the PR #?
Xliff Yes, please!!! -- > <RabidGravy++> ZoffixMobile, at some point I'll dig out the thing that generates tunes from the mandelbrot set 20:37
sena_kun [Coke], just a sec... #752. 20:38
[Coke] commented on it for you, at least. 20:40
Xliff Oh, and BUILD can use the actual $! invocation as a named parameter? I didn't know that.
I'm sure that is documented somewhere... >.> 20:41
timotimo that doesn't have to be documented, it's just the natural effect of specifying a $!foo in the signature
when the signature gets bound, that variable gets the parameter's value bound to it
sena_kun [Coke], thanks!
timotimo and since it's an attribute, it ends up in the attribute :)
also important to note: the "self" is the right one at the point where BUILD runs 20:42
Xliff timotimo, for programmers of certain languages (most notably, C) attributes don't go in argument lists. Dummy assignment variables do.
I see where you are coming from, really.
But that bit was non-intuitive to me. 20:43
timotimo :) 20:44
right, it's definitely a neat trick
Xliff FWIW, that bit is non-intuitive, but useful. I just think it should be mentioned somewhere, explicitly.
I've got to make a PR against the per6-docs anyways. Maybe I will look at finding a suitable place to do just that. 20:45
That would make 2 forthcoming PRs and one in limbo.
teatime Xliff: out of curiosity, do you intend to be using blue, italicised text for emphasis, or is something weird w/ my rendering here ? 20:49
timotimo my comment about it "not having to be documented" was way too harsh 20:50
documenting it would indeed be nice
geekosaur teatime, those things are wrapped in ASCII GS control character (ctrl-_) which is a later extension to mirc control codes. 20:51
dogbert2 oops - *** Error in `/home/dogbert/.rakudobrew/moar-nom/install/bin/moar': double free or corruption (!prev): 0x14a53f88 ***
teatime geekosaur: how is it intended to display?
geekosaur italic or underline 20:52
geekosaur "blue" sounds to me like something is still using CGA rules >.> 20:52
teatime oh, no... I just have my terminal explicitly configured to make default-colored-but-italicised-text blue....
teatime tries to remember why.. possibly just because I could lol 20:53
MadcapJake Xliff: doc.perl6.org/language/classtut#Constructors 20:55
teatime will be back tomorrowish.
MadcapJake Xliff, timotimo what bit isn't documented? 20:56
timotimo being allowed to put $!foo into a signature (especially BUILD) and why it's useful to do 21:02
Xliff ^^ that
dalek c: b45c032 | (Jan-Olof Hendig)++ | doc/Type/Str.pod:
Added documentation for printf
21:11
MadcapJake but using it in BUILD's sig *is* documented 21:14
timotimo oh 21:15
MadcapJake Any twigil'd variable can be put as an adverb, the named part becomes the pair key and the value in the container becomes the value in the adverb pair 21:19
ZoffixWin Hm, no love with Audio::PortMIDI. Gives me an error.... 21:22
Or just no sound... Maybe it's because I'm running it in a VM :/ 21:26
RabidGravy yeah It needs an instrument attached to a sound card 21:31
ZoffixWin Like a physical instrument? 21:33
timotimo can be a program, too
just make sure the midi commands reaches something that'll cause sounds to happen
ZoffixWin I have a keyboard, but I can't be arsed finding any cables
timotimo and that the sounds that happen end up reaching your ear somehow
ZoffixWin Weeee \o/ Got sound. Had to install timidity 21:35
timotimo yeah, that's one of the simplest ways 21:37
i was piping my midi commands into sunvox, which was fu
fun
RabidGravy ZoffixWin, the synopsis example has a bug, i'll fix but also make it do something prettier when there isn't a timestamp 21:42
ZoffixWin That grammar you got in the amen example is really neat. Should be simple enough to make something that eats guitar tabs. 21:44
ZoffixWin feels an exciting blog post in the making
timotimo TuxGuitar eats guitar tabs
ZoffixWin Yeah, but it's not Perl 6 :D 21:45
dha But it *could* be. Because, you know, Perl 6.
RabidGravy I considered making it a module but wasn't motivated sufficiently 21:46
ZoffixWin dha, but I don't need it :) I have a lifetime subscription to ultimate-guitar.com and they have that fancy-pants player that plays them :) 21:47
But it is a neat way to show a power of grammars in a blog post 21:48
dha :-)
What does a subscription to u-g.com get you that not subscribing doesn't?
Herby_ Afternoon, everyone! 21:49
\o
sortiz \o #perl6
ZoffixWin dha, fancy pants quality tabs with a player. Their quality is often better and they include several instruments like the bass and the keys. Pretty handy if you play several instruments. 21:50
Herby_ o/
dha Ah. I'm mostly just playing guitar, so... *shrug*
ZoffixWin Oh god... 21:56
m: '𓂸'.unames.say
camelia rakudo-moar 463e75: OUTPUT«Method 'unames' not found for invocant of class 'Str'␤ in block <unit> at /tmp/KO_KZG2PpT line 1␤␤»
ZoffixWin m: '𓂸'.uninames.say
camelia rakudo-moar 463e75: OUTPUT«(EGYPTIAN HIEROGLYPH D052)␤»
ZoffixWin Someone actually adopted that character >_< 21:57
timotimo the phallus? 21:58
ZoffixWin Yeah 22:00
ZoffixWin When they approve the butterfly this summer, I propose we do a KickStarter to raise the $5000 to adopt it for Perl 6 (gold lets you include a URL and it shows up at the top of the list) 22:03
www.unicode.org/consortium/adopted-...cters.html 22:04
MadcapJake ZoffixWin++ # good idea! 22:16
timotimo how do people feel about raising some more money for the "jnthn makes everything so much better" fund? 22:22
dha Depends. How would we spend those funds? If I get a puppy, sure! ;-) 22:24
timotimo can a puppy be bred specifically to be as good at coding as jnthn is? 22:25
if that kind of breakthrough happens, we'll be sure to give dgthn to you so you can provide the right amount of food, shelter, bellyrubs, and beer 22:26
ZoffixWin timotimo, if it's specifically "jnthn makes everything so much better" fund and not a donation to TPF, I'm in.
dha Yay! 22:27
dha calls the genegineers.
timotimo hm, i think TPF does manage the fund, but it goes directly to paying jnthn for work hours 22:28
ZoffixWin Can't jnthn just start a kickstarter campaign himself? :P
ZoffixWin Last time I tried to donate at TPF, I had multiple issues if I'd not known better, I'd assume the website was a scam, because it was severely broken... They kinda pissed me off that day that I'm now not to keen on dealing with them. 22:29
timotimo www.perlfoundation.org/perl_6_core_...pment_fund - i think this is the one i'm thinking of. not sure if others have gotten money from that pool yet; like for the js work for example?
ZoffixWin And it's an outdated page referencing 2015, with no obvious way on how to contribute to that fund. See what I mean? 22:31
Oh, now I recall, there was no way to donate via PayPal. And when I did hand out my credit card, the form was broken and wouldn't process it, so I clicked on "contact us" but it was a 404, because they didn't update the domain 22:32
dha Sounds like Perl, actually... 22:33
*ducks*
ZoffixWin dha, so you're actually part of TPF? 22:52
dha Sorta, technically, kinda, maybe. :-)
ZoffixWin Good. Now I know whom to direct my complaints to :P 22:53
Like this 404 on the first link on this page: www.perlfoundation.org/ian_hague_pe...ent_grants 22:54
I'm curious what motivated that person to drop 200K on P6
dha That's a damn good question. FWIW, I'm technically the "Steering Committee Member At Large" for awards, and I haven't even done a whole lot in *that* area lately. I remember the existence of this grant, but I don't remember the motivation for it. 22:57
ZoffixWin Ah, the bug is hyphens were converted into underscores
This is the right link: news.perlfoundation.org/2008/05/tpf...on-in.html
dha Ah.
ZoffixWin (Ian Hague)++
dha I should probably shout at someone about that. There are.... weird historical issues occasionally with the TPF website. I think someone may be working on fixing that, but it probably isn't finished yet. 22:58
dha FWIW, I have shouted out to the steering committee about the bad link. 23:08
ZoffixWin dha++ 23:11
dha I do not promise, however, a solution. ;-) 23:12