»ö« 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.
00:08 aborazmeh joined, aborazmeh left, aborazmeh joined
guifa Yeah, zef definitely requires a META.json file. They’re fairly simple to create and once you do it you won’t have update them unless you add new files to the module 00:13
raschipi As soon as he has a META6.json file his problem will be solved for now, so zef doesn't help in this case. 00:15
00:20 squashable6 left 00:22 aborazmeh left 00:25 squashable6 joined 00:31 [Sno] left
ToddAndMargo I'm, lost. This is over my head: github.com/gfldex/perl6-meta6-bin/.../README.md 00:52
00:54 Manifest0 left 00:57 leont left 01:00 lizmat joined, Manifest0 joined 01:02 lizmat left
guifa ToddAndMargo: how many files do you have in your module? 01:07
ToddAndMargo What do you mean? I have a p6lib directory with all my pm6 moduels in it. 01:10
$ ls -aF p6lib/ ./ FileVer.pm6* Raw.pm6 ../ Net.FTP.Inline.Perl5.pm6 RunNoShell.pm6* CheckSystemDependancy.pm6 Pause.pm6* X11Clipboard.pm6 CurlUtils.pm6* .precomp/ Xlib.pm6 eMailDate.pm6* PrintColors.pm6*
What does .precomp do?
guifa precomp holds precompiled data for you. Let’s say you run a script that references PrintColors.pm6. The first time you run it, it will compile PrintColors.pm6 and store the compiled data in precomp. Then the next time you run it — so long as you haven’t edited PrintColors.pm6 — it will start up much faster 01:11
ToddAndMargo This is the speed issue: $ perl6 --stagestats GetUpdates.pl6 ... Stage parse : 5.722 01:13
What does "Stage parse" do and why so slow 01:14
01:15 lichtkind left
guifa I haven’t done much with the stats on it but my guess is that is actually parsing the syntax of your file. Is it a particularly large file? 01:18
gist.github.com/alabamenhu/9c9ce6f...bb43a838f0
MasterDuke ToddAndMargo: stage parse is where the compiler parses your source code into an AST (abstract syntax tree) before turning the AST into bytecode. it uses rakudo's grammar engine, which isn't very optimized yet
guifa That’s what a META6.json will look like, and you can just fill in your information
MasterDuke ToddAndMargo: but you can get around that by turning your scripts into modules, and then you get the benefit of precompilation like guifa++ said
so instead of GetUpdates.pl6 containing lots of lines of sources code, you'd have GetUpdates.pm6 that has all the logic, and then GetUpdates.pl6 would just be something like 'use GetUpdates; GetUpdates.new' 01:20
ToddAndMargo I come from Modula2. I live and die by modules. I never write anything twice that is resued. It is the way I organize myself
GetUpdates.pl6 has lots of lines (~7000) as I can't repeat myself on what it is doing. 01:21
"which isn't very optimized yet" maybe it is as fgood as it gets for now? Eventually we will catch up with Perl 5? 01:22
01:24 lucasb left
guifa You can dump random subs into modules, by the way. There are lots of ways to sneak stuff out and put them into modules. If anything can reasonably be pulled out as a sub — even if it’s only used once or twice — for compile-time/start-up purposes, it can be beneficial to dump it into module. Plus for me personally it makes code look cleaner, but the extent to which you can do that will vary a bit with your projects 01:25
ToddAndMargo Oh I get it now. Sorry for being thick as a rock. My code has ~1200 lines (of 7123 lines) devoted to helper subs. Do you think dumping them to a module would help? 01:27
These subs are not reused in any of my other code, so I never put them in a module 01:28
guifa It would probably cut out about 15-20% of your compile time depending on the complexity of the different lines.
Also, for instance if you’re doing three things: (a) get data, (b) parse data, (c) display data, each of those stages could be pulled out into a module, so that your actual pl6 file just says “display-data(parse-data(get-data(@params)))”.
For me the first thing I do when I have a P6 project is immediately create a library structure. Unless there’s a burning reason for a class or sub to be in the main file, after they hit more than about 20 lines I tend to pull them out into a sub. That may be a bit overkill from my Java and OneClassPerFile background but it’s really helped me just on general organization, besides the performance benefits 01:30
01:31 netrino left
ToddAndMargo I like it! 01:32
MasterDuke there is definitely optimization that can be done to the grammar engine. the main problem (in my opinion) is that it's code that not a lot of people are used to optimizing, so it doesn't get as much work. however, jnthn++ has said he hopes to work on it, so we can hope for improvements over time 01:34
ToddAndMargo This programs goes out on the web and look for revisions of the ~62 programs I have to carry with me on a flash drive to customer's site (has a read only switch so I don't catch things from them). I have to have 62 separate subs for each site because their web pages are all different. But I sub the heck out of things where I can. If I really wanted to go nust, I'd put all 62 in separate modules. Maybe I am going overboard
MasterDuke if you want to speed up parsing then yeah, put them in a module (but one module would be faster than 62 separate modules) 01:35
good luck, i'm off to play some video games 01:37
ToddAndMargo One of the *few*, possiblly the only one, thing I like better about Perl5 is my abiliby to state which subs I am importing from a module: `use Term::ANSIColor qw ( BOLD BLUE RED GREEN RESET );`. It makes it a heck of a lot easier when I am trying to figure out where somethign came from. As a work around in Perl 6, I do `use PrintColors; # qw[ PrintRed PrintGreen PrintBlue PrintErr PrintRedErr PrintGreenErr PrintBlueErr ]`. 01:39
Please tell me you guys are going to implement this sometime soon? 01:40
guifa You actually can do that! 01:42
ToddAndMargo I am all ears! 01:43
guifa You actually get even more control than listing them individually
In the pm6 file, right now you probably list things that you want imported with
ToddAndMargo You have my undivided attention~
guifa sub foo is export { … }
ToddAndMargo pl6 or pm6? 01:44
guifa in the pm6 file
ToddAndMargo `sub foo is export` is how I do it. I am talking about the mail program (.pl6)
main nor mail
guifa Right, you have to do the work on both sides, because the feature is actually allows for a lot more than just choosing single items. 01:45
what you do is instead write
sub foo is export(:tag, :foo, :bar) { … }
if you want to mirror P5 behavior, just have the :tag be identical to the sub / class name 01:46
But what’s cool about is that you can use the same tag on multiple exported symbols
And then with a single keyword, import a group of things
Anyways, once you’ve done that, in your .pl6 file 01:47
you’ll say
use YourModule :foo, :another-foo, :something-else;
Any symbol with those tags will be imported.
ToddAndMargo Is there a write up in the doc's somewhere (that a newbie can understand)?
guifa docs.perl6.org/language/modules#Ex..._importing
raschipi If the tags match the symbols, you'll get the same behavior from P5. But they don't have to match in P6, you can get way more interesting behavior. 01:49
ToddAndMargo That is a nice refresheer for someone that already knows what he is doing and forgot this or that. Do you have a reference for dum-dum's? Examples would be great!
raschipi It's not much complicated than that, is export takes a list of tags and you can put those tags after use Module. 01:51
To get the same behavior of Perl5, put the name of the object as the tag. 01:52
ToddAndMargo sorry, still over my head. If I have `sub CurlGetWebSite( $Url ) is export {` and `sub CurlGetHeader( $Url ) is export {`, I put `:$Url`? I am lost. 01:56
raschipi is export takes arguments 01:58
so "sub CurlGetWebSite( $Url ) is export {" becomes "sub CurlGetWebSite( $Url ) is export(:CurlGetWebSite) {".
guifa ToddAndMargo: gist.github.com/alabamenhu/df1a965...23cfdab3db 01:59
take a look at tha
raschipi This way it will work the same way as Perl5
ToddAndMargo What is confusing me is my repeating of the variable `$Url` in several of my exported subs. I waht to state that I am importing a particular module. And how did `$` become `:`? 02:03
particular sub from a module
guifa :foo is short hand for foo => True 02:04
02:04 Manifest0 left
guifa there’s no problem using $url inside of several subs — variables are lexically scoped 02:05
your signatures will look like this: 02:07
sub CurlGetWebSite($Url) is export(:CurlGetWebSite) { … } 
sub CurlGetHeader($Url) is export(:CurlGetHeader) { … }  02:08
02:08 Manifest0 joined
guifa and then in your main script, you’ll say 02:10
use YourModuleName :CurlGetWebSite, :CurlGetHeader;
ToddAndMargo Oh. I think I am getting it. This `sub CurlDownloadFile( $Options, $Url, $FileName, $TimeOut, Int $ProgressBar ) is export {`
becomes `sub CurlDownloadFile( $Options, $Url, $FileName, $TimeOut, Int $ProgressBar ) is export(:CurlDownloadFile) {` 02:11
guifa exactly!
ToddAndMargo do I FINALLY understand?
raschipi Int $ProgressBar is a binary option? Either True or False? 02:13
guifa And if you tend to use them all together in the same scripts a lot, you might also want to add an extra :Curl to each of the is exports (so basically, “is export(:CurlDownloadFile, :Curl)”, so you can just say “use YourModuleName :Curl” and it will import all three.
ToddAndMargo and I import like `use CurlUtils :CurlDownloadFile`
guifa exactly!
(if you import more than one…
use CurlUtils :CurlDownloadFile, :CurlGetHeaders, :etc; 02:14
ToddAndMargo `Int $ProgressBar` is a booboo. It should be `Bool $ProgressBar`
02:14 ayerhart left
ToddAndMargo You even included the delimiter! Thank you! 02:14
Very very cool. Woopee!! Thank you! 02:15
raschipi Why not Bool :$ProgressBar? I.E. a named paramenter? 02:16
guifa As you use P6 more you’ll find there are some VERY cool features but it can take a while to find them. 02:17
I’m STILL finding new and cool stuff
02:17 ayerhart joined
ToddAndMargo p6, 1001 way to do everything. 02:17
guifa That’s really just the perl way :-) 02:18
how did someone put it once? Perl 6 is very much Perl. It’s just not Perl 5
raschipi Instead of having to bend your mind to fit the style of the language, have the language just accept any algorithm style you want. 02:19
ToddAndMargo Because I do not know what `Bool :$ProgressBar` does. $ProgressBar tells curl to print out its progress bar when downloading something. Otherwise it gets goobles up into StdErr:
if $ProgressBar { ( $ReturnStr, $ReturnCode ) = RunNoShell( $RunStr ); # Dump STDERR (Progress Bar) onto the Terrminal } else { ( $ReturnStr, $ReturnErr, $ReturnCode ) = RunNoShellErr( $RunStr ); }
guifa Right, so here’s an example of a cool Perl6-ism you can implement today 02:20
Instead of using
sub CurlDownloadFile( $Options, $Url, $FileName, $TimeOut, Int $ProgressBar )
you can use
sub CurlDownloadFile( $Options, $Url, $FileName, $TimeOut, Bool :$ProgressBar )
Declaring it as Bool is actually fairly optional here
Anyways 02:21
ToddAndMargo Why just the last passed variable?
guifa :$ProgressBar makes it named argument, rather than a positional one
So now when you call the sub, you only have to call 02:22
CurlDownloadFile $options, $url, $file, $time-out;
raschipi You can make all of them named.
guifa and $progress-bar will default to being undefined (which in an if statement evaluates to false)
if you want the progress bar, you can say 02:23
CurlDownloadFile $options, $url, $file, $time-out, :progress-bar;
err :ProgressBar (sorry I’m used to using kebab-case)
That will cause the variable $ProgressBar to be set to true 02:24
ToddAndMargo Okay, :$ProgressBar would make it an optional variable. I can see the utility of that, but from my Modula 2 background, I would kick my own a*** over doing that. Yes, I know `print` is one of those guys.
guifa You could make it mandatory if you wanted. :!ProgressBar would set it to false 02:25
Named arguments work nicely for creating more self-documenting code. Let’s say you made $TimeOut a named variable; 02:26
ToddAndMargo I use the Cap thing beacuse I can type and it tell me it is one of my variables and not soemone else's. It helps me mailtain things. (Hi Skool typing was one of the best courses I took.)
guifa sub CurlDownloadFile( $Options, $Url, $FileName, :$TimeOut, Bool :$ProgressBar )
now when you call the function, you would say
CurlDownloadFile …, …, …, :TimeOut(50), :ProgressBar; 02:27
You could also say
CurlDownloadFile …, …, …, :ProgressBar, :TimeOut(50);
(named arguments can go in any order)
ToddAndMargo Fascinating! Thank you!
raschipi You call them by name instead of position
ToddAndMargo: are you used to hav 02:29
having hashes/maps/dictionaries in programming?
guifa Oh, and I wasn’t judging you for PascalCasing things. Readability is a mostly subjective thing. But you’ll find most of us do use kebab-slash-skewer-case for variables 02:30
ToddAndMargo That will blow my mind! Coming from Modula 2 to Perl 6 is a real culture changer. Perl is said to be a "write only language". My response is "only is you make is so". Modula 2 give you no choice. Perl lets you write stream of conscience.
Oh no doubt. If have been dinbg the other way for so may years, if I see all lower case, it make me thing I imported someone elses code. 02:31
Oh and try and figure out s//\/\/\//\/\/. But I am now food at regex's and fid them kind of fun. 02:32
good nor food
not not nor
guifa That’s when variables make regexes pretty :-) 02:33
s/ $f-slash $b-slash $b-slash …
ToddAndMargo "only is you make is so" should be "only if you make it so". I am batting 1000 02:34
got's me a whole write up on variables in regex's. What blew my mind was how powerful look ahead regex's are. You guys must be in heaven writing this stuff! 02:35
One I never go past was stinking dollar sign in html code and calling Thunderbird with it and have it not mess everyone's mind up. Appartenly p6 `\$` worked, but the the shell did not liek that and removed the dollar sign and run without a shell, Thunderbird did not like it. Used teh HTML dollar sign and EVERYONE gripped. Swithed to "USD" 02:37
raschipi There's not much documentation written for Perl6 for people that aren't comming from Perl5 actually, they forget Perl5 also blows people's minds when they get into it for the first time and Perl6 has every interesting feature Perl5 has. And the most important of those is first-class Hashes.
ToddAndMargo That is my biggst grip with the docs. They are for those that already know what they are already doing. P5 has extrodinary perldocs that is written on a newbie level. 02:39
02:39 [Sno] joined
raschipi Perl programmers naturally think in term of hashes. Functional programmers think in terms of function, Scala and Java programmers thing about Objects, Perl programmers think in terms of Hashes. 02:39
ToddAndMargo Oh speakign of those of us coming from p5, would you please make it a hard and fast rule that perl 6 modules extensions are always "pm6". The latest Rakudo upgrade now reads "pm" first and "pm6" second. AAAAAAHHHHHHHHHHH!!!!!! 02:40
raschipi Don't mix Perl5 and Perl6 modules in the same place because of that. Devs won't budge on that. 02:41
ToddAndMargo Speakign of p5, soon as I got a load of p6's sub declaration, I dropped p5 liek a hot potato. I sill hvae some p5 code I still maintain.
guifa Beginner docs will come, but they do take time. One of the biggest things that has been lacking in P6 is the plethora of modules that P5 or Python or Java has, and generally the people who will write those wide audience modules already have a lot of P5 and a decent bit of P6 experience. I imagine once some of those bigger projects get done more people will have time to turn to doc writing. 02:42
raschipi And you didn't even get very far into it, using just very basic features.
ToddAndMargo it is a regression. I had to create separate directories from my p5 and p6 modules. Grep'ed my finger off looking for all my imports.
raschipi No one know how you got it to work in the first place. 02:43
ToddAndMargo The one p5 code I maintain call ftp a lot. P6's ftp module is corked, so I have to rewrite in p5.
I have two server to go fix things up on still. 02:44
Nice featrue would be to be able to specify the extension on the use line 02:45
raschipi Using modules from the file system isn't even encouraged. You shouldn't do that in production. 02:46
You already found out that it's very slow too.
02:48 molaf joined
ToddAndMargo I put them there because I want to knwo what it mine and what is yours. For instance, zef when foobar on me yesterday. I had to remove rakudo and rakudo-zef, then hunt down all perl6 and .zef directories and start over. I had used too many different versions of radudo and they had got all mixed up. Had I put my modules in usr/lib64/perl6, there would still be blue words in the stratosphere in the year 2040 02:50
raschipi Yeah, that's known to cause problems, that's why it's also not recommended to put into production. 02:53
ToddAndMargo on my customers computes, usually it is only one or two programs I havewritten for them. My own mahicne, I have all kinds of thigns written. I can't help myself 02:55
Oh and the zef thing spead up my program loads, buy 2/3 02:56
raschipi Do you still have things in the main program? If you put everything in modules, you can get maximum benefit from installing modules. 02:57
ToddAndMargo On my do to list! 02:59
03:05 kaare__ left, kaare__ joined
ToddAndMargo Wow! You guys really heped me on several front today. Thank you! 03:06
raschipi You're welcome. 03:07
ToddAndMargo Look what you guys have done to me!!!!! :-) 03:09
use CurlUtils :CurlDownloadFile, :CurlGetWebSite, :CurlGetHeader, :CurlExists, :CurlSendMail, :CurlGetRedirectUrl;
Very, very maintainable!
raschipi Put a ! after the ones that are mandatory. 03:19
And = 'Default' after the anos that can have defaults.
s/anos/ones/ 03:20
03:25 eythian left 03:37 zacts left 03:47 Manifest0 left 03:51 Manifest0 joined 03:52 Cabanossi left, Cabanoss- joined 03:57 mowcat left
ToddAndMargo Added ! to my notes. 03:58
04:05 raschipi left 04:09 molaf left 04:32 Manifest0 left 04:33 cpan-p6 left, cpan-p6 joined, cpan-p6 left, cpan-p6 joined 04:38 Manifest0 joined 04:43 kurahaupo left 04:49 mojca joined, mojca left, mojca joined 04:54 mojca left 05:02 ToddAndMargo left, zacts joined 05:03 mojca joined, mojca left, mojca joined 05:08 robertle left 05:15 jmerelo joined
jmerelo releasable6: status 05:17
releasable6 jmerelo, Next release will happen when it's ready. 2 blockers. 132 out of 252 commits logged (⚠ 2 warnings)
jmerelo, Details: gist.github.com/8e80d18ef7603534cf...6803398928
05:18 atroxaper joined
atroxaper hi, #perl6 ! 05:18
05:19 mojca left 05:24 Manifest0 left 05:28 Manifest0 joined
jmerelo atroxaper: hi! 05:29
atroxaper I have a question to native or well english speakers. I need words describes a "capable of being" trace, debug, info, warn and error. I think it is 'tracable', 'debugable', 'infable', 'warnable' and 'errorable'. Am I right?
jmerelo: o/
jmerelo atroxaper: trace-enabled and everything else 05:33
holyghost hello, I am working on the transition things of Game::Markov, e.g. for the hidden markov model code 05:34
atroxaper jmerelo: It is to long for my taste :)
jmerelo atroxaper: you can use -able (with the dash) as a suffix. trace-able, debug-able, info-able 05:35
atroxaper jmerelo: just thought about it! Thank you. Will do so.
El_Che traceble, debuggable, informational, warnings enabled, errors enabled
jmerelo atroxaper: but that's only shortening for using -enabled...
guifa El_Che: traceable*
El_Che informational is not as much being able to, but being, but it looks more appropiate 05:36
guifa: indeed, thx
atroxaper I'm looking one-type names for methods...
El_Che I don't think you declare things to be able to thrhow warnings and errors 05:37
so it depends on what you want to achieve
you seem to be describing roles more than methods
It looks like the typical UNIX/Syslog debug levels 05:38
in that case I would stick with the "official" names
guifa For a method I’d expect a verb more than anything else. get/set/enable/toggle <trace debug info warn error>
El_Che ^--- what guifa says 05:39
set-debug('TRACE');
atroxaper In Java I have something like: if (log.isDebugEnable()) { log.debug(....);}. I want $log.debugable?.log(...) or .debug(...) with $log.debugable;
El_Che it looks Java verbosable allright :) 05:40
jmerelo atroxaper: then -able is probably the way to go. Plus you can do that in Perl 6
El_Che I would log.debug take care of the log levels it can handle instead of testing eacht time 05:41
it will make everything to verbose
guifa Or adverbs!
El_Che imho, ymmv
s/to/too/
guifa $foo.log(blah) :debug; 05:42
atroxaper I want to handle a case when we need to do long-time-work to calculate data to logging. If log level in not allowed then we do not need the calculation
05:42 domidumont joined, rindolf joined 05:43 zacts left
jmerelo guifa: adverbs don't really work that way. Where would that adverb go? 05:43
guifa if $log.enabled(:debug) { $log.log($foo, :debug) }
05:43 zacts joined
jmerelo guifa: that's a different thing. Plus it's a named arg rather than an adverb 05:44
El_Che guifa: not too fond of adverbs in this usecase
.enabled suggest a boolean return value without side effects
atroxaper guifa: too long. I think ` .log($info) with $log.debug-able; ` better. .debug-able return special object with log() method with appropriate level 05:45
guifa atroxaper: If you really want to use that structure, I’d just make the $log.debug return a debug log, or Nil / (Any) 05:46
05:46 domidumont left
guifa so 05:46
.log($info) with $log.debug
El_Che I would implement the levels on all the loggers and when irrelevant, the logger would should log the same on all levels 05:48
atroxaper guifa: :) no. $log.debug($info); $log.debug-able?.log($info); .log($info) with $log.debug-able; I'm looking the short and good method names. I'm not sure about 'debug-able'.
guifa So if debug logging is turned off, what is the expected behavior of $log.debug($info) ? 05:50
atroxaper Then it returns Any.
guifa And if debugging is turned off, what’s the expected behavior of $log.debug-able?.log($info) ? 05:51
atroxaper We do not calculate $info. Do nothing.
s/?./.?/ 05:52
guifa Hrm. What about using “debug-on”. That’s short but also clearer and can be used for all of them 05:55
atroxaper guifa: Hm... I didn't think about. Does it sound like 'change level to debug'? 05:56
guifa: I like a variant with -on. 05:57
guifa I don’t think so. And in code if using a ? it will read quite nicely. $log.trace-on?.log($info) reads as “Yo, $log! Is your trace turned on? Cool, go log $info with it” 05:58
holyghost FWIW, use an error class in C++, maybe that helps out for perl6 05:59
atroxaper guifa: Great! Thanks all of you!
06:02 zacts left 06:10 domidumont joined 06:12 Summertime left 06:13 Summertime joined
tony-o_ 06:13
06:14 tiwi_ joined 06:15 tiwi_ left 06:18 Xliff joined
tony-o_ weekly: github.com/tony-o/perl6-json-path 06:20
notable6 tony-o_, Noted!
cpan-p6 New module released to CPAN! JSON::Path (0.1) by 03YNOTO 06:23
atroxaper tony-o_: hm... modules.perl6.org/dist/JSON::Path:cpan:JNTHN 06:25
06:28 jmerelo left 06:40 k-man left 06:41 tyil left, tyilanmenyn joined
El_Che bert: loko.be geeft een user/pass 06:44
tony-o_ atroxaper: doesn't handle [?()] filters 06:45
and, i wrote this for zef and figured i would release, this one is also about 75% faster (on my machine) 06:46
06:46 Manifest0 left
atroxaper tony-o_: It was JFYI :) I prefer to contribute into existed projects instead of make another one. Can you add information about differens between your module and jnthn. And how I should import it in case I installed both. 06:48
06:49 zacts joined
tony-o_ atroxaper: for sure, thank you 06:51
06:52 Manifest0 joined
tony-o_ atroxaper: i usually do that but when i write things for zef i usually do a rewrite because i'm mainly concerned more with keeping it depends-less and streamlined for use in that codebase 06:52
atroxaper tony-o_: fair enough 06:53
07:07 k-man joined 07:08 lizmat joined 07:11 lizmat left 07:13 [Sno] left 07:16 tyilanmenyn is now known as tyil 07:21 patrickb joined, masak joined
masak ahoy, #perl6 07:22
how come I'm no longer able to ssh into irc.p6c.org?
getting "host irc.p6c.org port 22: Connection refused" 07:23
07:24 eythian joined 07:29 patrickb left
moritz masak: its hardware is dead :( 07:29
masak oh
my condolences 07:30
anyway, that explains it 07:33
and I guess there's no "and here's the server we ssh into nowadays instead" side to it all... 07:34
07:35 patrickb joined 07:38 abraxxa joined
moritz nope :( 07:40
07:41 zacts left 07:43 zacts joined
tony-o_ atroxaper: updated the readme 07:44
the loading bit is slightly wonky because jnthn's META doesn't have "auth" so loading via :auth<jnthn> (or similar) isn't possible 07:45
atroxaper tony-o_: I see. Thank you :) 07:46
tadzik masak! \o/
yoleaux 21 Apr 2019 19:55Z <patrickb> tadzik: If possible, please revert rakudobrew for now. This breaks perl6 on travis. A PR was already committed, but may take days. I also pinged nine.
21 Apr 2019 20:13Z <patrickb> tadzik: Alternatively merging github.com/tadzik/rakudobrew/pull/135 is worth a try first.
22 Apr 2019 16:13Z <patrickb> tadzik: Can I get a rakudobrew commit bit? That'd help in situations like this one.
tadzik oh boy 07:47
masak tadzik: \o/
tadzik masak: if you need an ssh account to IRC from I can arrange that :)
atroxaper tony-o_: Maybe add ':auth<tonyo>' in README's example ?
masak moritz: anyway, sincerely, thank you. I've had a lot of use for that ssh account over the years.
tadzik: cool. yes, something that can hold a screen session would be very appreciated. 07:48
timotimo i'm going to miss hack.p6c.org for my "i want to run something for many hours" use case, mostly fuzzing
also, putting some files up to share with others quickly and easily
masak I'm willing to support new hardware with money if necessary. let me know.
patrickb tadzik: All done by now. 07:49
tadzik patrickb: alright, good work :)
I've had a busy few weeks
patrickb tadzik: Except for a commit bit which I would still find helpful in situations as we had. :-)
Also there is another (really small) PR.
masak suddenly dreams about a small, close-knit community, where people have small home pages and $HOME directories 07:50
patrickb tadzik: Calmer weeks ahead?
tadzik patrickb: somewhat :)
patrickb \o/
tadzik I'm still due for 30 work hours this month
it may be a bit of a stretch P:
masak counts on his fingers 07:51
...yes.
07:51 cpan-p6 left, zakharyas joined 07:52 cpan-p6 joined, cpan-p6 left, cpan-p6 joined 07:56 zacts left 08:08 Black_Ribbon left, masak left
Woodi hi today :) 08:09
08:09 masak joined
Woodi masak: re: small, close-knit community, where people have small home pages and $HOME directories 08:09
... this is what ppl get at universities... 08:10
masak *nod*
08:10 pecastro joined
Woodi so no one pays anything :) "amateurs" are in the worst situation... 08:11
masak I'd like for there to be a "pico-8 of web communities" 08:12
08:12 andrzejku joined 08:16 woolfy joined
tadzik web communities is something I thought a lot about recently 08:17
whether they're unix-related or anything else
one conclusion was that for an internet community to grow in a healthy way, hardcode gatekeeping may be a necessity 08:18
(relevant typo)
08:19 scimon joined
Woodi tadzik: what you mean by gatekeeping ? limits on enter, order management ? :) 08:19
tadzik Woodi: latter by the former, basically :) 08:20
Woodi heh
tadzik a relevant thought is about the uselessness of captchas, something that is a huge trouble at $work
telling humans from computers is not valuable. Distinguishing *individuals* is
and individuals are much less prone to toxicity and abuse when they're actual, irreplacable reputation is at stake 08:23
xinming_ m: my @h := [1..15]; my @x := @h.tail(10); @x.perl.say;
evalable6 (exit code 1) Type check failed in binding; expected Positional but got Seq ($((6, 7, 8, 9, 10, 11...)
in block <unit> at /tmp/rmw2W_mMET line 1
xinming_ What is the right way to bind a tail seq to the @x var?
m: my @h := [1..15]; my @x := |@h.tail(10); @x.perl.say;
evalable6 slip(6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
xinming_ With | it becomes slip
m: my @h := [1..15]; my @x := @h.tail(10)[]; @x.perl.say;
evalable6 (exit code 1) Type check failed in binding; expected Positional but got Seq ($((6, 7, 8, 9, 10, 11...)
in block <unit> at /tmp/YqJSkLm4vI line 1
xinming_ With [] postfix, It doesn't seem to return the list. 08:24
tobs xinming_: does x have to have the @ sigil?
my @h := [1..15]; my $x := @h.tail(10); $x.perl.say; 08:25
evalable6 (6, 7, 8, 9, 10, 11, 12, 13, 14, 15).Seq
xinming_ m: my @h := [1..15]; my @x := @h.tail(10).List; @x.perl.say;
evalable6 (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
xinming_ tobs: I just try to understand the relationship between these examples.
Xliff .tell holyghost New space added. New IP is 54.90.70.61 08:27
yoleaux Xliff: I'll pass your message to holyghost.
08:28 woolfy left
tobs m: sub f (@x) { @x.perl.say }; my @h := [1..15]; f @h.tail(10) 08:31
evalable6 (6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
tobs xinming_: the @ sigil is a type constraint for Positional, which Seq doesn't do (that's what the error tells you). If you coerce it into a List or a Slip (Slip is List), then it does Positional and works. 08:33
as for why it works with a sub call, this is mentioned in the docs on Seq and PositionalBindFailover 08:34
Though I was surprised that PositionalBindFailover only works when the "signature binder" does it and not when a mere mortal binds to a variable. 08:36
holyghost thanks Xliff, I'm logged in to second ip 08:37
yoleaux 08:27Z <Xliff> holyghost: New space added. New IP is 54.90.70.61
cpan-p6 New module released to CPAN! Game::Markov (0.1.13) by 03HOLYGHOST 08:40
holyghost Xliff, how much disk space is it in total ? 08:43
df -h does not work apparently
xinming_ tobs: Thanks for the explanation. 08:45
timotimo Woodi, masak, but this "tilde" websites thing is totally a growing thing right now 08:47
holyghost ugexe : about the usb stick, I better backup online :-)
timotimo : serverip/~user ? 08:48
timotimo yeah 08:50
holyghost which server ?
I upload to CPAN anyway
timotimo there's many different ones 08:51
holyghost coolness
timotimo it's, like, a growing cultural thing again
holyghost that's a good thing
timotimo tilde.club/ - here's an example
holyghost no more additions 08:55
I'll get back to that 08:56
I need the webspace
08:57 khisanth_ left 08:58 Manifest0 left
holyghost anyway, I'm going to drink a beer, I've programmed an hour on Game::Markov by putting in the start of the hidden markov model next to the markov strategies 08:58
timotimo holyghost: i don't think you'll be happily received at such a place when you sign up and offload 10 gigs of data
holyghost right as you say
I'm uploading to Xliff's server, just the 2 Gb tarball, I have to find space somwhere for my 20 Gb tarball 08:59
he was so friendly to just buy me some space
although I gave her lots of code though
I have this C++ formula based perl6 parser on there, the beginning of it, it should use rule firing for parsing 09:00
some sort of best-of 09:01
09:01 leont joined
holyghost hi 09:01
09:04 Manifest0 joined
holyghost is a bit afk 09:06
09:10 khisanth_ joined
holyghost .tell Xliff : I uploaded 2 home-X tarballs, you might take a look, it's mostly gnu game software 09:11
yoleaux holyghost: I'll pass your message to Xliff.
holyghost .tell Xliff let me know how much space there is in total on the server
yoleaux holyghost: I'll pass your message to Xliff.
09:22 ayerhart left 09:24 ayerhart joined
timotimo m: .perl.say for $*REPO.repo-chain 09:28
evalable6 CompUnit::Repository::FileSystem.new(prefix => "/home/bisectable/git/whateverable/sandbox/…
timotimo, Full output: gist.github.com/b148bfed1bde15a995...bb1c08068f
timotimo ^- CU::R::AbsolutePath, ::NQP, ::Perl5 all have a standard .perl which also outputs the next-repo 09:29
which makes the repo-chain look odd 09:30
10:09 ayerhart left 10:13 manemobiili joined, hankache joined 10:14 ayerhart joined
hankache hello #perl6 10:26
patrickb o/ 10:27
10:27 domidumont left
kawaii \o 10:39
hankache any news regarding the p6c server? 10:52
was anyone able to recover the drives? 10:53
timotimo moritz is the only one with potential access to the hardware itself; i'm not sure if the hardware resides in the datacenter still, or if it's been taken home 10:55
hankache hello timotimo 10:58
timotimo yo
hankache so what's the plan? 10:59
timotimo when i was still in charge, the plan was to flail around helplessly
github.com/perl6/problem-solving/issues/17 11:00
github.com/perl6/problem-solving/issues/9
hankache lol
ok
timotimo ^- that's the actual plan now
hankache timotimo++
11:03 gfldex left 11:04 gfldex joined, Manifest0 left 11:05 hankache left 11:09 Manifest0 joined
moritz I have the drives in my rucksack now, and will try to extract the data when I get home 11:11
timotimo yay
thank you for all the effort 11:12
moritz I have a single (s)ata-to-USB adapter at home, as well as a PC from which I could temporarily remove the hard disks and swap in the one from p6c.org 11:13
11:24 netrino joined
timotimo there's one for /home and one for /? 11:27
moritz no, it's a KVM setup 11:28
and I don't know if I have configured them as a raid back in the days, and if yes, as what kind of raid
so, my hope is that I was sane and created a mirroring raid, and I can just one in, and find separate image files for each of the VMs 11:29
timotimo mhm 11:30
11:31 zakharyas left 11:37 mowcat joined 11:47 kensanata joined 11:53 raschipi joined 12:13 Manifest0 left 12:14 domidumont joined 12:18 Manifest0 joined 12:27 atroxaper left
Xliff \o 12:39
yoleaux 09:11Z <holyghost> Xliff: : I uploaded 2 home-X tarballs, you might take a look, it's mostly gnu game software
09:11Z <holyghost> Xliff: let me know how much space there is in total on the server
Xliff Anyone know what this means: Unknown type NativeCall::Types::void used in native call.
I've never seen NativeCall::Types::void, before. 12:40
.tell holyghost I sent you an email with all the info. Please response. 12:42
yoleaux Xliff: I'll pass your message to holyghost.
Xliff *sigh*'
12:46 mowcat left 12:53 leont left 12:56 lucasb joined 12:59 zakharyas joined 13:03 skids joined 13:07 mowcat joined
Xliff Does anyone know why I am getting "Unknown type NativeCAll::Types::void" from rakudo? 13:08
moritz NativeCAll looks misspelled 13:13
a should be lower-case
13:17 gregf_ left 13:29 patrickb left 13:35 veesh joined, zakharyas left
Geth doc: 28f4ac137b | Coke++ | xt/words.pws
learn new word
13:40
Xliff moritz: No. The problem turned out to be an actual "void" in the NC def. 13:41
sub a(void) returns uint64 is native is export { * } 13:42
Thanks, though. The mispelling was me fat-fingering. :/
13:43 patrickb joined 13:47 ayerhart left, mojca joined, mojca left, mojca joined 13:50 ayerhart joined 13:51 mowcat left 13:56 mojca left 13:57 mojca joined, mojca left, mojca joined 13:58 veesh left, kameltreiber joined 13:59 mojca left, veesh joined, veesh left 14:00 veesh joined 14:02 kameltreiber left 14:04 zacts joined
Xliff m: my ($a, $b) = ^2; .VAR.name.say for $a, $b; 14:09
evalable6 $a
$b
Xliff m: my ($a, $b) = ^2; .VAR.name.substr(1).say for $a, $b;
evalable6 a
b
14:15 zacts left
kawaii What's an idiomatic way to delete undefined keys from a hash? 14:26
keys with undefined values 14:27
14:27 zakharyas joined
moritz my %h = a => 1, b => Any, c => Int, d => 3; %h{%h.grep({!.value.defined}).keys}:delete; say %h 14:29
evalable6 {a => 1, b => (Any), c => (Int), d => 3}
moritz my %h = a => 1, b => Any, c => Int, d => 3; %h{%h.grep({!.value.defined})>>.key}:delete; say %h 14:30
evalable6 {a => 1, d => 3}
moritz kawaii: ^^ ?
or easier to construct a new hash:
my %h = a => 1, b => Any, c => Int, d => 3; my %x = %h.grep({.value.defined}); say %x
evalable6 {a => 1, d => 3}
kawaii smort
%pokemon .= grep: { .value.defined }; 14:31
perl6 lol 14:32
moritz or even grep: *.value.defined
14:42 mojca joined, mojca left, mojca joined 14:51 mojca left 14:59 rindolf left 15:02 rindolf joined 15:15 mojca joined, mojca left, mojca joined 15:21 mojca left 15:25 atroxaper joined 15:27 mojca joined, mojca left, mojca joined
cpan-p6 New module released to CPAN! LogP6 (1.6.1) by 03ATROXAPER 15:30
15:31 jmerelo joined 15:32 leont joined
jmerelo squashable6: status 15:32
squashable6 jmerelo, ⚠🍕 Next SQUASHathon in 3 days and ≈20 hours (2019-05-04 UTC-14⌁UTC+12). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
jmerelo releasable6: status
releasable6 jmerelo, Next release will happen when it's ready. 2 blockers. 132 out of 252 commits logged (⚠ 2 warnings)
jmerelo, Details: gist.github.com/84e1af2ae53a52a46b...dee0e02485
15:35 mojca left
raschipi jmerelo: Do you have a plushie Camelia already? 15:36
jmerelo raschipi: of course :-) 15:38
A couple, maybe :-)
raschipi Can't have too many, am I right? 15:39
jmerelo raschipi: correct
raschipi: you?
raschipi Not yet
jmerelo raschipi: next squashathon is your ocasion 15:40
s/ocasion/occasion/
15:40 mojca joined 15:41 Geth left
raschipi I know, right, except it's my birthday and my family will keep me occupied. 15:41
jmerelo .tell raschipi happy birthday next weekend :-)
yoleaux jmerelo: I'll pass your message to raschipi.
jmerelo raschipi: you can always work from now to then :-) 15:42
15:42 Geth joined
raschipi $work was keeping me way too busy, just because performance measurement were wacky. But I came back top help you with the docs now that I have time. 15:43
yoleaux 15:41Z <jmerelo> raschipi: happy birthday next weekend :-)
raschipi thanks
jmerelo raschipi: that's great. $GOD knows we need help...
raschipi I think the 6.d issue should be split for the squashaton. 15:44
15:44 mojca left
jmerelo raschipi: some relatively big parts, or parts that also touched other issues, have been spun off 15:45
raschipi Because there's a recommendation that people should assign the issues to themselves.
jmerelo raschipi: ah, in that case we'll simply tell people to claim a part, or start with some part from the top or bottom
raschipi: or start randomly somewhere, I don't think it's a big chance they would clash 15:46
raschipi: in some cases it's done already, it's just a matter of checking it out.
15:50 zacts joined, mojca joined, mojca left, mojca joined 15:52 maettu joined, cpan-p6 left 15:53 cpan-p6 joined, cpan-p6 left, cpan-p6 joined 15:55 zakharyas left
Geth doc: 0c971d3b72 | (JJ Merelo)++ | doc/Language/5to6-perlvar.pod6
Suppressed reference to (non-existent) $?ENC

Which does not seem to have actually existed, or been needed. Maybe in Synopsis, together with $?TAINT; this document makes a reference to it: github.com/perl6/specs/blob/master...ctions.pod
However, it's not implemented (nor anything like that), so this closes #2724 and moves around the surrounding to say the same, although this needs to be restructured too.
15:59
raschipi Something like ${^ENCODING} would make no sense whatsoever in Perl6. 16:04
jmerelo raschipi: well, it's apparently in the Synopsis. No that everything that's there makes sense... 16:05
16:05 lucasb left 16:06 |oLa| joined
raschipi Yeah, that makes no sense either. 16:07
16:08 leont left 16:10 manemobiili left
moritz Hi all. So I've now connected the disks from the p6c.org server to my laptop, and this is what fdisk -l shows: perlpunks.de/paste/show/5cc722b2.c0b.300 16:14
Disk /dev/sdb: 1,8 TiB, 2000398934016 bytes, 488378646 sectors
that sounds like what I bought 4.5 years ago
but the two partitions, 238,4G and 14,3T, sound way too big 16:15
jmerelo moritz: the partition table is fritzed
kawaii fsck it and see what you get 16:16
raschipi fsck won't fix a fried partiton table 16:17
moritz so what do I do now? :/
skids
.oO(if possible dd the whole disk image somewhere as a backup first)
raschipi Can't check a filesystem if you don't even know where it is. 16:18
16:18 mojca left
moritz I don't have spare 4 TB here :/ 16:18
kawaii are you able to mount it at all?
moritz I have no idea how to mount it 16:19
skids Gotta find the starting block of each fs on it using signatures, I guess.
moritz trying to mount with -t auto doesn't work
kawaii moritz: `sudo mount /dev/sdb1 /tmp/mnt1`, create `/tmp/mnt1` first of course
raschipi parted has a feature to rescue partition tables
moritz kawaii: no dice :( 16:20
skids Do we know what fs was on it?
moritz skids: I suspect it was ext3 or ext4 16:21
rba moritz: this is linux softraid 16:23
yoleaux 27 Apr 2019 15:04Z <AlexDaniel> rba: very important message :)
rba moritz: cat /proc/mdstat
moritz: might need some more „mdadm“ command to
16:24 scimon left
moritz perlpunks.de/paste/show/5cc7254e.6a05.93 this is what testdisk has to say 16:25
16:25 mojca joined, mojca left, mojca joined
rba moritz: need to get the raid recognised. then usualy you can mount a /dev/md0 to /mnt. make sure you mount readonly then. 16:25
moritz it's still running its analyzer 16:26
rba: wouldn't cat /proc/mdstat tell me something about the host system, not the attached disk?
raschipi The partition table says the disk is bigger than 14,3TB, for a 1,8TiB disk. It's likely that the softRAID subsystem won't touch it while the partition table is invalid like that. 16:28
rba raid.wiki.kernel.org/index.php/RAID_Recovery 16:29
16:32 |oLa| left
nine moritz: are you sure it's a partition table and not a GPT? Is the disc partitioned at all or could it have been used as a single device? 16:32
moritz nine: I don't remember 16:33
I looked at the disks with fdisk -l because that's what I tend to do with disks that I don't remember much about
... and now my laptop has stopped recognizing the disks. I haven't done any write operation yet. 16:37
nine Did you get into the BIOS after removing the disks? 16:38
moritz perlpunks.de/paste/show/5cc7287a.39b3.338
nine: no
rba moritz: may you try "mdadm --examine /dev/sd[bcdefghijklmn]1 >> raid.status" 16:39
skids if the hardware is flakey I'd really recommend getting something to back up to and doing a nice slow dd. 16:40
rba moritz: Any information of raid levels configured using this four disk? 16:42
moritz rba: I don't remember. I hope raid 0.
rba moritz: I hop *NOT* raid0, as this would mean concat/stripes. And if one disk has read errors, you might not recover anything. 16:43
Elronnd any good way to generate random ints? 16:44
rba moritz: raid1 or raid5 would be more promising.
Elronnd (aside from generating a num and rounding it)
moritz erm, 1
m: say (1 .. 2**32-1).pick(20) # for Elronnd
evalable6 (3475554359 1428645025 3512710169 4114909967 3329650178 3460977714 3064735945 3920909449 2319169658 2550475827 3338878670 1022655831 1610203617 431373731 4119801249 1068729586 2914407449 343958400 470950730 1549731532)
rba moritz: depending on the raid, you might need to reattache all 4 disk and let mdadm assemple the riad again. 16:45
Elronnd moritz: that seems ugly though
rba to make a copy using dd you need same sitze or bigger disks. 16:46
16:46 mojca left, patrickb left
moritz m: say Int.pick(2) 16:46
evalable6 ((Int))
moritz hm
rba: only two disks, not four
anyway, I only have one SATA-to-USB adaptor 16:47
rba did you try examine?
moritz so the next thing I'll try is build them into my PC and boot it
rba: I did try. I had a USB deconnect before it ran, so the device vanished
rba moritz: uh. 16:48
moritz: you may try the other disk tough.
moritz: just curious, what linux distribution and version was the p6c server? 16:49
moritz rba: debian, originially installed as wheezy or jessie, upgraded to stretch 16:50
16:51 zacts left 16:54 robertle joined 16:57 patrickb joined 17:02 holyghost left 17:06 kensanata left 17:11 rindolf left
jmerelo hi, patrickb 17:11
checked out GSoC projects? Would like to help in one? 17:12
patrickb Hi!
jmerelo (the rest too, of course...)
El_Che hi jmerelo 17:14
jmerelo Hi, El_Che !
El_Che how is gsoc going?
jmerelo El_Che: well, we could always get more mentors
17:15 Black_Ribbon joined
jmerelo But it's now in the phase where projects have been selected and it's going to start the "community bonding" phase pretty soon. 17:15
We requested 4 slots, which happened to be all of them for Perl 6 projects
Two related to doc tooling, one proposed by brrt to create Perl 6 executables, another by samcv to include some Chinese encoding. 17:16
Eventually, no Perl5 project went through. There weren't many proposals, either.
El_Che mmm 17:17
exited about the p6 executables
sad about p5
happy about the doc ones
jmerelo El_Che: we have also applied for "Season of docs"
El_Che: we'll get the response tomorrow.
kawaii perl6 executables? as in cross-platform binaries?
patrickb jmerelo: I did! Thing is I'm not yet proficient in any of the areas the projects are about. So I'd not be much help as a mentor... 17:18
jmerelo kawaii: not sure, to tell you the through. Way above my pay grade.
17:18 rindolf joined
jmerelo patrickb: you could still help from the sidelines, check if they're developing using milestones, check a bit of code here and there... It will not hurt. 17:19
kawaii: but it could be something like that, kind of a .jar for perl6. That was brrt proposal
.seen brrt
yoleaux I saw brrt 13:53Z in #moarvm: <brrt> The main advantage of a linear IR is that every operation gets an (explicit) location
patrickb kawaii: No. It's about wrapping the moar bytecode in ELF or PE (that's the container format of executables on Linux / Windows).
jmerelo patrickb: you see? You know more about this than myself :-) Could lend a hand there. 17:20
17:20 sena_kun joined 17:21 eythian left, eythian joined
El_Che kawaii: that doesn't sound likely. Probably an exec per platform-os that includes the runtime with the application 17:22
that could be huge
17:22 zacts joined
El_Che a jar would be also nice (but less so :) ) 17:22
raschipi Saying ELF is the Linux executable format is an understatement, isn't it? I think only Windows and z/OS don't use it. 17:23
El_Che on it's ok 17:30
solaris does not use elf
17:31 [Sno] joined
El_Che nor aix 17:31
or other unices
nor macos
17:32 atroxaper left
jmerelo kawaii: did you see my comment to one of the blockers? 17:32
squashable6: status
squashable6 jmerelo, ⚠🍕 Next SQUASHathon in 3 days and ≈18 hours (2019-05-04 UTC-14⌁UTC+12). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
jmerelo releasable: status 17:33
releasable6 jmerelo, Next release will happen when it's ready. 2 blockers. 132 out of 252 commits logged (⚠ 2 warnings)
jmerelo, Details: gist.github.com/bbbef2d4d805108aa5...9985cec0d1
jmerelo notable: This weekend we have another documentation hackathon. If you have participated already, do it again. If you havent, do it now! github.com/perl6/doc/blob/master/w...HATHONS.md 17:37
notable6 jmerelo, Noted!
17:43 abraxxa1 joined 17:49 domidumont left
sena_kun jmerelo, o/ 17:53
jmerelo hi, sena_kun!
sena_kun just wanted to ask, I heard we have some participants for GSOC projects, is there a list somewhere what projects will be worked on?
17:54 MilkmanDan left, MilkmanDan joined, aindilis left
zacts "Perl6" is kind of confusing to me because it's such a different language. 18:01
it's not really meant to replace Perl5 from what I gather. 18:02
samcv jmerelo, should i notify my person myself, have they already been notified
timotimo that's true
samcv at least on the 1st (iirc)
should maybe prepare a congratulations email or something…
18:07 mowcat joined
jmerelo samcv: they will be notified by Google. If you want to tell them something, feel free. They may be fretting by now :-) 18:08
samcv: besides, in May it's the "community bonding phase" where they're supposed to get to know more about us, hang out here, check out some code... participate in squashathons (wink, wink) 18:09
samcv :) 18:19
18:23 sauvin left 18:24 domidumont joined
moritz ok, good news 18:25
I was able to boot into the disks extracted from master.p6c.org
and I found the qemu images from the KVM thingy
jmerelo moritz++ 18:26
moritz the downside is that I haven't managed to configure the network (it now runs on much different hardware, namely my very old PC)
I'm now trying to compress the image file of www at least, and transfer it to an external disk, and then to my laptop 18:27
I guess the data from hack isn't nearly as critical to anybody, right?
jmerelo moritz: I think it's pretty much a deployment from other places. 18:29
moritz: users and logs might be a good thing to have, but not a big deal.
sena_kun moritz++ 18:31
having installation images rescued will be a great help 18:32
18:32 aindilis joined, domidumont left
Xliff \o 18:44
moritz++: Any suggestions for cleaning up this grammar? github.com/Xliff/p6-GtkPlus/blob/m...mes.pl6#L8
Particularly, I'd like to convert it to rules so that it can pick up the \v*, but whenever I change it, things break. 18:45
jmerelo Xliff: you probably have used already Grammar::Trace to check why it breaks. 18:49
18:50 jmerelo left 18:57 holyghost joined, molaf joined
moritz Xliff: sorry, too distratced with other stuff right now 19:01
rba moritz: very good! 19:05
19:05 molaf left
rba moritz: Are you able to save away all the builds? 19:06
moritz rba: I'm currently making space on my external drives; then I'll very likely be able recover the builds 19:10
Xliff jmerelo: It's not breaking. Just want to know if it can be cleaned up. 19:11
moritz: Ah! I see. No worries, then! Good luck!
rba moritz: what else was only on this server? 19:12
19:21 zacts left 19:26 Cabanoss- left
moritz rba: three VMs: hack, www and irc 19:33
ufobat_ how do you state the action within the grammar itself? i failed to find an example in the docs
moritz on hack, dozens of people could log in
ufobat_: regex foo { <blerg> { make $<blerg>.ast + 5 } } 19:34
19:35 Cabanossi joined 19:39 daxim left 19:41 kaare__ left, kaare__ joined
ufobat_ why does this make an array not a list? 19:43
m: grammar { regex num { \d { make( +$/ ) } }; regex TOP { <num>+ % \s { make( ($/<num>>>.made) ) }} }.parse("1 2 3").made.WHAT.say
evalable6 (Array)
19:44 daxim joined
moritz m: say (1, 2, 3)».Int.^name 19:46
evalable6 List
El_Che great new moritz, thx
ufobat_ m: (( 1,2,3) >>+>> 3).WHAT.say
evalable6 (List)
ufobat_ make( (1,2,3) ) # makes a list not an array 19:47
jnthn m: grammar { regex num { \d { make( +$/ ) } }; regex TOP { <num>+ % \s { make( ($/<num>.list>>.made) ) }} }.parse("1 2 3").made.WHAT.say 19:48
evalable6 (Array)
jnthn Hmm
m: grammar { regex num { \d { make( +$/ ) } }; regex TOP { <num>+ % \s { say $<num>.WHAT; make( ($/<num>>>.made) ) }} }.parse("1 2 3").made.WHAT.say 19:49
evalable6 (Array)
(Array)
jnthn Ah, that's why, apparently
19:50 lichtkind joined
skids related to 'because you can stack up named captures into an array' probly 19:50
19:52 kurahaupo joined
ufobat_ why is $/<num> an Array? i would expect a Match 19:52
ah an array of matches! 19:53
moritz the quantifier in <num>+ makes it an array 19:54
ufobat_ ( <Array> ) == Arrray; so to be sure i need to `.List` it? 19:55
19:55 molaf joined
Juerd ufobat_: Because it has a quantifier (+) 19:57
I'd expect it to be a list rather than an array, tbh
ufobat_ because you would expect a match to be immutable? 19:59
sena_kun 6.c: say 15; 20:00
6c: say 15;
committable6 sena_kun, ¦6c (37 commits): «15␤» 20:01
sena_kun 6c: my %a is Setty;
committable6 sena_kun, ¦6c (37 commits): «»
sena_kun 6c: my %a is Setty; say %a.WHAT;
committable6 sena_kun, ¦6c (37 commits): «(Setty)␤»
Geth doc/hash-array-subclass-init: ed8aed5e72 | Altai-man++ | doc/Language/syntax.pod6
Show a non-coercing hash/array subclass init
20:05
doc: Altai-man++ created pull request #2726:
Show a non-coercing hash/array subclass init
20:07 ufobat__ joined
sena_kun 6c: sub foo(Int :$a) {}; &foo.signature.params[0].perl.say; 20:10
committable6 sena_kun, ¦6c (37 commits): «Int :$a␤»
20:10 ufobat_ left
rba moritz: do you think the server could be fixed with another 2 gb hard drive? 20:11
moritz rba: no. It's dead. 20:14
sjn what specifically died, btw? 20:15
moritz I don't know. I couldn't boot it up far enough to run any diagnostics 20:16
patrickb I just added github.com/perl6/problem-solving/issues/20 I think it should get the `language` label. I can't add that label myself though. 20:17
sena_kun .tell lizmat hi! I am looking for some clues to document things... 6.d changelog has the "Parameter.perl includes introspectable defaults" entry. From github.com/rakudo/rakudo/commits/m...ameter.pm6 I see your commits with some `.perl` mentions... Can you by chance explain the thing so it could be documented? It will be very appreciated.
yoleaux sena_kun: I'll pass your message to lizmat.
patrickb sena_kun: There are still two PRs in openapi-schema-validate and openapi-model open. Did you notice them? 20:20
sena_kun patrickb, one is merged now. sorry, I am running away from computer these days. :( 20:22
patrickb No worries.
sena_kun the second one is merged 20:24
patrickb \o/ Thank you! 20:25
sena_kun patrickb, thank you for your contributions!
m: CATCH { default { put .^name } }; my $, = 5; 20:26
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/6J0HydCzGi
Unsuppo…
sena_kun, Full output: gist.github.com/b53d86ed09cb2724ee...faa5241f82
sena_kun is it me or it doesn't look like a typed exception to me? 20:27
docs say that it should throw a typed X::Syntax::Perl5Var
X::Syntax::Perl5Var is clearly present in rakudo and I even see its usage... 20:28
kawaii awoo 20:32
sena_kun .oO ( senko, stop that. one more commit and I'm done, I promise ) 20:33
20:34 kurahaupo left
sena_kun .tell lizmat and hi again! Now the question is about "Default Hash.of returns a Str(Any) coercer type object". I see github.com/perl6/roast/commit/34ce...bae08c6e26 but it clearly tests `keyof` method. `Hash.new.of` returns me Mu, definetely not Str(Any). What is wrong with me^W^W here? 20:35
yoleaux sena_kun: I'll pass your message to lizmat.
20:38 raschipi left 20:41 Geth left
sena_kun 6c: say :𝟛math-three; 20:42
committable6 sena_kun, gist.github.com/5508fafe900ee5db5a...e6d93f58d7
sena_kun 6c: say (:𝟛math-three); 20:43
committable6 sena_kun, gist.github.com/90edc35e5c3b76b28f...3d4e0ee075
20:44 Geth joined
Geth doc/non-ascii-numerics-for-pair: f4b1705cf1 | Altai-man++ | doc/Type/Pair.pod6
Note non-ASCII numerics in Pair colonpair
20:45
doc/StrDistance-Str-method: df53123211 | Altai-man++ | doc/Type/StrDistance.pod6
Document StrDistance.Str
20:52
doc: Altai-man++ created pull request #2727:
Note non-ASCII numerics in Pair colonpair
20:53
doc: Altai-man++ created pull request #2728:
Document StrDistance.Str
20:54
sena_kun 6c: enum Foo <A B C>; say Foo.enums; say B.enums; 20:55
committable6 sena_kun, gist.github.com/2997ed5575ee01a6e4...9845810506
Geth doc/fix-enums-description: 5f679e95bb | Altai-man++ | doc/Type/Enumeration.pod6
Update enums method description
21:01
doc: Altai-man++ created pull request #2729:
Update enums method description
21:02
21:07 rindolf left 21:09 skids left
sena_kun 6c: my %a = a => b => 3; say %a<a><b>:exists; 21:12
committable6 sena_kun, ¦6c (37 commits): «True␤»
sena_kun 6c: my %multi-dim = 1 => { 2 => { 3 => 42 } }; say %multi-dim{1;2;3}:exists 21:16
committable6 sena_kun, gist.github.com/fccca30d057d69ff5d...8b04bede0e
21:18 JappleAck joined
sena_kun m: my %multi-dim = 1 => { 2 => { 3 => 42 } }; %multi-dim{1;2;3}:delete; 21:18
evalable6 (exit code 1) Unexpected named argument 'delete' passed
in block <unit> at /tmp/agDSktln2K line 1
sena_kun hmm...
21:18 rindolf joined 21:19 __jrjsmrtn__ joined 21:21 _jrjsmrtn left
Geth doc/multi-dim-exists-adverb: 5152acd274 | Altai-man++ | doc/Language/subscripts.pod6
Show multi-dim :exists adverb
21:22
doc: Altai-man++ created pull request #2730:
Show multi-dim :exists adverb
sena_kun m: enum A (gather { my $a = 'a'; for 1..3 { take $a++ => rand } }); say A.enums; 21:25
evalable6 Map.new((a => 0.3779912872296658, b => 0.7043671515614088, c => 0.1338762667314738))
Elronnd in python I can say something like for i, v in array: ... and have i = the index, v = the value. Is there something similar in p6?
sena_kun Elronnd, give me a second...
21:26 Cabanossi left
sena_kun m: for <1 2 3>.kv -> $i, $v { say "$i - $v" } 21:26
evalable6 0 - 1
1 - 2
2 - 3
sena_kun Elronnd, ^
Elronnd thx
sena_kun m: for <1 2 3> -> $a, $b { say "$a - $b" } 21:27
evalable6 (exit code 1) 1 - 2
Too few positionals passed; expected 2 arguments but got 1
in block <unit> at /tmp/jdL7ek3dPE line 1
sena_kun m: for <1 2 3 4> -> $a, $b { say "$a - $b" }
evalable6 1 - 2
3 - 4
21:27 Geth left 21:28 Geth joined 21:34 Cabanossi joined, kaare__ left, kaare__ joined
sena_kun if I have a file with two strings, `a 1` and `b 2`, and I am writing... 21:40
`enum ConfigValues ('config'.IO.lines.map({ my ($key, $value) = $_.words; $key => $value }));`
21:40 lichtkind left
sena_kun it is a "normal" use case I can think of for the feature, but I wonder if the code is beginner friendly enough... 21:40
Geth doc/dynamically-created-enum-example: 54c18ded0d | Altai-man++ | doc/Language/typesystem.pod6
Add example of dynamically created enum
21:44
sena_kun 6c: say enum a (gather { my $a = "a"; for ^3 { take $a++ => $_ } }); 21:45
committable6 sena_kun, gist.github.com/d70aebcd30719a3a90...5939349efb 21:46
Geth doc: Altai-man++ created pull request #2731:
Add example of dynamically created enum
21:47
doc/array-of-syntax: 68872b27f2 | Altai-man++ | doc/Language/list.pod6
Show typed array of syntax
21:52
21:53 Manifest0 left
Geth doc: Altai-man++ created pull request #2732:
Show typed array of syntax
21:53
sena_kun 6c: react { whenever Supply.interval(1) { next if .is-prime; say $_; done if $_ == 4 } } 21:56
b2gills .tell ToddAndMargo Instead of `s/\/\/\//\/\//` You could do `s/ '///' /{ '//' }/` 21:58
yoleaux b2gills: I'll pass your message to ToddAndMargo.
21:59 Manifest0 joined
committable6 sena_kun, gist.github.com/2019c59ffe891eb16f...7b3e70756d 21:59
moritz I have recovered about 1.8GB of nqp, rakudo and star downloads 22:01
can I upload them somewhere?
the newest being rakudo-star-2019.03.tar.gz 22:02
sena_kun moritz, I can give you keys to a new server
(backup one) 22:03
if I still have those around, heh, of course. then you can rsync or something
cpan-p6 New module released to CPAN! FindBin (0.2.10) by 03LEMBARK 22:05
New module released to CPAN! FindBin (0.2.9) by 03LEMBARK
moritz I really have to sleep now. I'm uploading them to somewhere where folks can mirror them as they want 22:06
sena_kun moritz, fair enough. Thanks for all the rescue work!
rba moritz++ 22:08
holyghost I slept all day ... I'll try to do something for perl6 tonight 22:09
yoleaux 12:42Z <Xliff> holyghost: I sent you an email with all the info. Please response.
Geth doc/next-in-whenever: 263ba422c9 | Altai-man++ | doc/Language/control.pod6
Add next in whenever example
22:19
22:19 netrino_ joined 22:21 Manifest0 left
Geth doc: Altai-man++ created pull request #2733:
Add next in whenever example
22:21
22:21 netrino left 22:22 gfldex left, gfldex joined 22:26 Manifest0 joined
discord6 <Tyler (Aearnus)> hey, what's the operator for "assign if nil" again? 22:28
22:42 zacts joined 22:45 rindolf left
sena_kun / 22:45
oops
///
ugh 22:46
gfldex sena_kun: why don
sena_kun m: my $a; $a =// 5; say $a;
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/LM8IDw4HzR
Null regex not allowed
at /tmp/LM8IDw4HzR:1
------> 03my $a; $a =//08⏏04 5; say $a;
gfldex sena_kun: why don't you take a deep breath :->
sena_kun m: my $a; $a //= 5; say $a;
evalable6 5
sena_kun gfldex, hmm?
gfldex sena_kun: you kinda rushed to the answer
sena_kun gfldex, can't deny that 22:47
22:47 lizmat joined
gfldex m: my $n := Nil; $n //= 42; 22:49
evalable6 (exit code 1) Cannot modify an immutable Str (Nil)
in block <unit> at /tmp/xG9JCo7ml0 line 1
gfldex I'm not entirely sure if Nil ~~ Str.
m: my Any $n := Nil; $n //= 42; 22:50
evalable6 (exit code 1) Cannot modify an immutable Str (Nil)
in block <unit> at /tmp/rzVZ1Npwgz line 1
gfldex odd
m: my $n is default(Nil) = Nil; $n //= 42; say $n; 22:51
evalable6 42
gfldex I think that is an assign if Nil. 22:52
22:55 patrickb left, woolfy joined
holyghost hi woolfy 22:56
discord6 <Tyler (Aearnus)> thx 22:57
22:57 aindilis left
discord6 <Tyler (Aearnus)> the docs seem lacking in listing all of the assignment operators 22:57
gfldex They are not written down individually because they are not really defined. = acts as a meta operator. You can use any infix in conjuction with = . 23:02
discord6 <Tyler (Aearnus)> didn't know that, perhaps it should be explicitly mentioned in the docs 23:08
<Tyler (Aearnus)> unless it's just mentioend somewhere I didn't see
gfldex it is: docs.perl6.org/language/operators#..._operators 23:09
discord6 <Tyler (Aearnus)> aha, very nice. thank you 23:10
gfldex The docs are quite big. Easy to miss stuff.
793 pages :) 23:13
A4 that is
23:14 kurahaupo joined 23:15 kurahaupo left 23:16 kurahaupo joined 23:17 kurahaupo left, kurahaupo joined 23:27 pecastro left 23:29 mowcat left 23:41 netrino_ left 23:46 abraxxa1 left 23:47 molaf left