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