»ö« 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
|