»ö« 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:15 regreg left
mempko I haven't developed on Windows in a long time. My understanding was on NT, their TCP stack was taken from BSD. Windows used to have a hosts file deeply buried in the directory tree. 00:27
I don't think this is true anymore though...
00:34 TreyHarris left
geekosaur it still does, but it didn't come from bsd 00:37
Xliff jnthn: What do you think of va_list conversion to NativeCall? 00:39
.tell jnthn What do you think of va_list conversion to NativeCall? 00:40
yoleaux Xliff: I'll pass your message to jnthn.
00:43 aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh 00:47 TreyHarris joined, p6bannerbot sets mode: +v TreyHarris, perlawhirl left 00:48 perlawhirl joined 00:49 p6bannerbot sets mode: +v perlawhirl 00:51 lindylex joined 00:52 p6bannerbot sets mode: +v lindylex 00:53 Turandot3 joined 00:57 Turandot3 left 01:01 uzl joined 01:02 p6bannerbot sets mode: +v uzl 01:04 lindylex left
timotimo wakelift.de/p/cf10916e-dde4-4649-8...5413e9a8c/ - i'd love some feedback on this post. I'm afraid many parts of it aren't written very clearly, but it's bedtime for me now :) 01:05
also, surely i've been spelling some of the words wrong 01:09
01:09 thomas16 joined
timotimo referring? labelled? 01:09
benjikun those are both correct 01:10
you can also spell labelled labeled
UK vs US spelling
timotimo surely it's a great idea to switch between UK vs US for different words 01:12
benjikun meh
some people use UK spelling in the US lol
MasterDuke timotimo: you mention that the callees are sorted by inclusive time, as opposed to the general routines table which is sorted by exclusive, but not why either list is sorted the way it is 01:13
timotimo good point
MasterDuke "splits the number of objects", i would add a "which" before that, or change to "splitting"
timotimo i put an "and" in front, is that also ok? 01:14
MasterDuke yep
01:14 thomas16 left
benjikun "They are ordered by inclusive time, as opposed to the outer list which is ordered by exclusive time" 01:15
maybe the 'is' should be an 'are' in the second half of that sentence
well nevermind
it's referring to the outer list as a whole, ignore me
timotimo right, it's a bit awkward, i guess
benjikun This looks nice though, timotimo :) 01:16
excited to see it in future releases
timotimo it's actually independent of moarvm/nqp/perl6 releases except for little things that i can be backwards-compatible for! 01:17
benjikun ah, I see
timotimo it's a Cro + React app :)
the node_modules folder is only 225 megabytes big! 01:18
benjikun :P 01:19
timotimo but that also includes compiler stuff, like babel and i tried to use flow for a little bit
benjikun is it in a public repo?
or private until first release
MasterDuke "managed an unmanaged parts"
nice post 01:21
timotimo 1.6M./html-minifier
it's currently still private because i was a little ashamed of slow progress and low quality 01:22
but things have improved at a surprising pace since the last post
and i'd like to make it public when i publish the post
benjikun oh, sounds good 01:23
timotimo MasterDuke got an early preview build last week :) 01:24
MasterDuke unfortunately i haven't had time to give much specific feedback (other than liking it in general) 01:25
timotimo all i want to hear is "i like it" and "you're so cool" :P 01:26
nah, criticism would also be good, though many problems i already know about
MasterDuke hopefully i'll have a little more time in the next couple days
timotimo yey
i imagine jnthn will also give it a try 01:27
MasterDuke but the links to github alone sold me
timotimo hah
shouldn't actually be that hard to replicate for the older one
MasterDuke i think lizmat also looks at profiles a lot
timotimo ah, true true
maybe the most valuable feedback for the next two or three days is "what missing feature should appear first" 01:28
OK, i'll sign off for tonight 01:29
have a good one!
MasterDuke later...
buggable New CPAN upload: AttrX-Mooish-v0.2.3.tar.gz by VRURG modules.perl6.org/dist/AttrX::Mooish:cpan:VRURG 01:31
uzl m: .say for &sort.candidates 01:38
yoleaux 14 Aug 2018 06:46Z <tyil> uzl: Do you mean .candidates? docs.perl6.org/type/Routine#method_candidates
camelia &sort
&sort
&sort
&sort
uzl &sort.candidates 01:39
m: &sort.candidates
camelia ( no output )
uzl m: say &sort.candidates
camelia (&sort &sort &sort &sort)
uzl .tell tyil That seems to do the job. Thanks! Anyway of looping over the candidates without using a for/while loop? 01:48
yoleaux uzl: I'll pass your message to tyil.
01:48 uzl left 01:49 w_richard_w joined
MasterDuke uzl: .map? 01:49
benjikun ^
01:49 p6bannerbot sets mode: +v w_richard_w
benjikun m: &sort.candidates.map: *.perl.say; 01:50
camelia multi sub sort (&by, @values) { #`(Sub|42503872) ... }
multi sub sort (&by, + is raw) { #`(Sub|42504024) ... }
multi sub sort (@values) { #`(Sub|42504176) ... }
multi sub sort (+ is raw) { #`(Sub|42504328) ... }
vrurg Is there a way for a trait to know if an attribute has an initial value assigned? Like for: has @.bar = 1,2,3; 02:01
02:03 cognominal-p6 left
benjikun not sure how without doing a `Class.new` like this: 02:04
m: class Foo { has $.bar = 1 }; say Foo.attributes[0].get_value(Foo.new);
camelia No such method 'attributes' for invocant of type 'Foo'
in block <unit> at <tmp> line 1
benjikun m: class Foo { has $.bar = 1 }; say Foo.^attributes[0].get_value(Foo.new);
camelia 1
vrurg benjikun: get_value is pretty obious. Unfortunately, there is no way to distiguish Foo.new( bar => pi ) from has $.bar = pi. 02:06
vrurg would probably consider emty @ and % as unitialized...
benjikun yeah, hmmm
vrurg Ah, whatever. If I already consider Nil as unitialized – what's the difference with [] and {} would be treated same way? ;) 02:08
02:12 Floppy joined, p6bannerbot sets mode: +v Floppy
Floppy a 02:17
Hello, I've just started with perl6 and am absolutely loving the design of it, sadly it doesn't seem like Perl6 is as popular or is getting as popular as i would've hoped. 02:24
From the perspective of someone who has just started, i see many flaws, not in the language itself, but in the process of getting started with Perl6.
The first thing you have to do when starting a new language is downloading the Compiler/Interpreter, well this is where things got hard.I instinctively tried to download "Perl 6", it took me quite some time before i relized that I actually had to download something called "Rakudo".That name itself makes no sense and in no way seems related to Perl6
at first glance. "What's the difference between Rakudo and Rakudo star, is this what I'm supposed to download?" and similar questions started.
But when i had figured out the name of the compiler i had to download it. I'm suprised to see that you offer precompiled binaries for Windows and MacOS but not Linux, It was to my understanding that Perl was almost purely used on *Nix based platforms. 02:25
Compiling from source didn't go to well for me at first either, the AUR packages available in Arch Linux are broken and when compiling manually i ended up with a non-portable portable-like installtion with no binaries in path so i had to add to path myself, especially since the instruktions point to .bashrc when i use zsh and not bash.
Point is that when you're trying a new language that highly vales efficency of coding and being able to write scripts as quickly as possible, installation should reflect that philosophy as well
benjikun Floppy: There are recompiled binaries for Linux: github.com/nxadm/rakudo-pkg 02:27
Floppy I was following the official documentation and this is what happend, also that github repo doesn't seem to support Arch Linux 02:28
lookatme_q Floppy, Rakudo is a implementation of Perl 6, just like a VC++ of C++ 02:29
benjikun I'm not against adding a do-it-all-for-me install script linked on rakudo.org/files
lookatme_q Rakudo Star is a distribution of Rakudo
I think :) 02:30
It include the compiler and some module
MasterDuke Floppy: i use arch linux, and don't think i've ever had a problem with the aur packages. what did you run into?
Floppy lookatme_q I know this now but when i was getting started and just trying to experiment before I even knew if I was gonna like the language or not i didn't know
benjikun Rakudo Star is just a pre-bundled collection of useful things (e.g. rakudo, documentation, zef, etc) 02:31
Floppy MasterDuke Can't remember exactly but Compilation failed on the rakudo and rakudo-star packages, I believe the lonestar package works but that is a bit different
lookatme_q I think the new version(2018.06) Rakudo Star would work 02:32
Floppy I do use Artix and not pure arch which i guess could've been the issue but the only difference is Init system and i highly doubt that'd be in any way an issue
But before you're getting the wrong impression of me, I might as well clarify that I am absolutely loving Perl6 so far, It perfectly fills the void of things i can't do effectively in Go, Elm and Haskell, which are all very strict languages unlike Perl6. 02:35
MasterDuke Floppy: no worries, we definitely want the on-boarding experience to be a smooth as possible 02:36
i'd encourage you to file issues explaining what problems you ran into
AlexDaniel this is weird, on arch I would have expected distro packages to just work 02:37
MasterDuke maybe at the perl6.org or rakudo.org repos
AlexDaniel we should start encouraging distro packages btw
benjikun AlexDaniel: yeah, and keeping them up to date
for all main distros
AlexDaniel no we don't do that, and I don't think we should? 02:38
Floppy A precompiled version in community repository on Arch would be lovely, AUR isn't the most reliable thing in the world
AlexDaniel like, it's the job of distro maintainers
or packagers, whatever the right term is
Floppy I could make a precompiled AUR package for Arch myself and try to maintain it 02:39
MasterDuke i don't remember exactly how something moves up to community. just enough votes? or someone has to sponsor/adopt it?
benjikun I don't know how to encourage "packagers" to maintain it
I'm not really sure about this stuff lol
Floppy I think the difference is that those do go through some sort of process by the Arch team themselves, but could be wrong
AlexDaniel benjikun: well, debian is very up to date if we're talking testing/unstable 02:40
Xliff timotimo, AlexDaniel, et.al: I am now adding GTK bindings that are testable. 02:41
buggable New CPAN upload: AttrX-Mooish-v0.2.4.tar.gz by VRURG modules.perl6.org/dist/AttrX::Mooish:cpan:VRURG
Xliff See -- github.com/Xliff/p6-GtkPlus
benjikun I think it's because we've got "DebianRakudoGroup" setup as a team on debian
AlexDaniel :) 02:42
I actually don't know how the process goes in debian
benjikun You have to request a sponsor or something
AlexDaniel all I know is that there are folks who work on it, and apparently we didn't do anything (?) for that
benjikun wiki.ubuntu.com/AppReviewBoard Here's an application thingy for the ubuntu software center
if we wanted that as well
AlexDaniel ubuntu also has a very recent rakudo package, though I guess not an “app”, whatever that is 02:43
benjikun yeah I have no idea lol
what if we made a github repo just for having reported issues on distro-package problems 02:44
maybe that's unnecessary, I don't know
AlexDaniel again, that's what distros do themselves, they have their own lists for that
Floppy One method to only have to maintain ONE package would be to use Snap, but I don't really like the way Snap handles system libs
02:45 kerframil joined
AlexDaniel Floppy: pretty sure samcv attempted to make rakudo appimage 02:45
02:45 p6bannerbot sets mode: +v kerframil
benjikun AlexDaniel: Yes but are we on all of the main distro lists 02:45
AlexDaniel benjikun: fwiw we have this: github.com/perl6/user-experience/issues
benjikun Yeah, true 02:46
I knew about that
Floppy appimage would be really nice, not as the standard way of installation but having a portable perl6 install on my toolkit USB drive would be lovely
AlexDaniel Floppy: btw you can report user experience issues here github.com/perl6/user-experience/issues
Floppy: I agree that getting rakudo should be more straightforward 02:47
benjikun same
Floppy Oh didn't know that was a thing, seems like I'm not the only one when looking at that link
AlexDaniel this one is a real bummer: github.com/perl6/user-experience/issues/23
`zef` part of it I mean
benjikun :/
Maybe we should include a init script that they can just curl and run (not talking about packages, am talking about automatically compiling, setting up PATH and whatnot) 02:49
I've seen a few other languages have that at the top of their install pages
Floppy Having ~/rakudo as install path in instructions also needs to change. Cluttering home folder is not a good thing and also not having capitalised folder name in home is also not that nice, maybe even use some XDG folder?
benjikun While ours has buttons to download the source & installation instructions that are multiple lines 02:50
Floppy: I just do ~/.rakudo or ~/.perl6
Floppy ye i do ~/.perl6 as well but had to reinstall because didn't notice instructions had ~/.rakudo as path 02:51
~/rakudo as path*
benjikun I see
02:55 inbioz joined 02:56 p6bannerbot sets mode: +v inbioz
AlexDaniel interesting fedoraproject.org/wiki/Packaging/Perl6 02:57
benjikun Looks nicely organized there 02:58
thanks to Gerd
Floppy I might try to create rakudo-bin in aur for arch if i get the time 02:59
actually help instead of just give feedback
benjikun Floppy: that'd be nice :) 03:04
AlexDaniel Floppy: github.com/perl6/user-experience/issues/29 03:06
03:07 inbioz left
AlexDaniel Floppy: you can talk to samcv about appimage I think. I remember trying it out and it worked, but I think there was a blocker of some sort 03:08
github.com/samcv/rakudo-appimage-m...automation 03:09
Floppy A package for Void Linux would also be nice
AlexDaniel blead “2 days ago”, nice
so it is working?
why don't we advertise it then :)
03:10 aborazmeh left
Floppy oh rakudo in AUR now works, just tried. Didn't work when i started with perl a few days ago so maybe it's updated? 03:10
AlexDaniel 🤷 03:11
:) just looked up void linux 03:13
like everyone keeps talking about it and I haven't yet bothered to look it up, heh
benjikun Looks like rakudo-star in AUR was last updated 2018-08-06 21:49
AlexDaniel “Void is a notable exception to the majority of Linux distributions because it uses runit as its init system instead of the more common systemd”
benjikun sysvinit, openrc > 03:14
Floppy It's really good, I greatly prefer runit over systemd and Void is the only true runit experience, runit forks of other distrobutions like Artix and Devuan just don't work well
benjikun I haven't found any problems while using Devuan
void is alright though, too
AlexDaniel nice, now I have to understand what runit is about and why is it different :) 03:16
benjikun systemd is controversial
that's why 03:17
Floppy I don't really care about the logging and expandation part most people seem to hate systemd for, for me it's just that creating service files suck and it boots alot slower
AlexDaniel I don't mind systemd at all, it makes my life easier
benjikun Yeah, I'm inbetween tbh
don't really mind either way
AlexDaniel but I dunno, maybe runit does the same?
benjikun lighterweight
Floppy in runit you have all services in one directory and then you symlink them to a "run" folder, if they're symlinked to the run folder they're automatically started and restarted. And instead of using a .service file like in systemd you just have any script of your choice, you could have a perl6 script for instance 03:18
AlexDaniel but yeah, if people use it then rakudo package for void would be nice :) 03:24
SmokeMachine Hi there! Im writing an ORM for perl6. If some one would like to help me to validate/critic the APIs, it would be appreciated! :) github.com/FCO/Red 03:27
03:29 Floppy left, JollyRgrs1 joined
AlexDaniel SmokeMachine: so an alternative to DBIish? Sounds great. 03:29
SmokeMachine: any info about its stability? 03:30
SmokeMachine: IIRC there are a bunch of issues with DBIish like github.com/perl6/DBIish/issues/117 03:31
benjikun aren't there known memory leaks in DBIish
SmokeMachine AlexDaniel: none! its only on the beginning... but its not an alternative to dbiish... :(
AlexDaniel SmokeMachine: oh? I guess I'm misunderstanding something then?
SmokeMachine AlexDaniel: its an ORM, it will use something like dbiish and map databases to classes/objects 03:33
03:33 JollyRgrs1 left
benjikun this looks like it has more perl6 wrapping 03:33
looks nice
AlexDaniel SmokeMachine: ah-ha, alright
benjikun what databases will it support SmokeMachine?
SmokeMachine benjikun: the idea is first support postgres, than any relational database and some day nosso to... 03:34
*too
benjikun sounds great :P
AlexDaniel well, uh… as long as DBIish is not involved it should be great :D 03:36
SmokeMachine benjikun, AlexDaniel: what do you guys think about the way to declare columns, tables, relationships, etc? 03:37
AlexDaniel SmokeMachine: I can't help, unfortunately. I just don't work with DBMs enough to have an opinion 03:38
SmokeMachine: something makes me think jnthn++ may be interested, but obviously I can't guarantee that jnthn will have any time to look at it :) 03:39
benjikun SmokeMachine: I like the `model Table { }` layout for sure
AlexDaniel hides 03:40
SmokeMachine benjikun: if you'd like to know "what's working": github.com/FCO/Red/blob/master/t/02-tdd.t
benjikun All seems cool to me 03:44
I haven't seen people use meta-method calls in most modules
or define them
idrk if I can judge all of it, but looks nice
SmokeMachine benjikun: my idea is on model only define methods you wrote... the special methods will be on the metaclass 03:46
im not sure its a good idea yet...
benjikun interesting 03:47
well, if it works and looks nice, I don't see a problem with it
SmokeMachine i mean, if you do class Boa {}, Bla has no method... so doesn't model Bla {}
benjikun yeah, I kinda like how the metamethods look 03:48
in this situation
SmokeMachine is you want to know is a class can run the method `bla`, you run `MyClass.^can("bla")` i think on `model` should be the same... 03:50
*if
xinming_ jnthn: Thanks, that's what I want. 04:00
timotimo: I can't, since that bug happen in a project. And in 2018.06, it works fine. so, I assume it's because of master version has the bug. 04:01
SmokeMachine if someone have anything to say about Red, please, tell me or open an issue! 04:07
github.com/FCO/Red
Xliff . 04:09
How can I get a raw OpaquePointer that points to a uint or an int back to something Perl6 can use?
04:11 JustTheDoctor3 joined, JustTheDoctor3 left 04:13 spycrab0 left, u1dzer019 joined 04:14 u1dzer019 left 04:24 JJJ000 joined, p6bannerbot sets mode: +v JJJ000 04:28 ZzZombo joined, p6bannerbot sets mode: +v ZzZombo 04:29 regreg joined, p6bannerbot sets mode: +v regreg 04:58 rindolf joined 04:59 p6bannerbot sets mode: +v rindolf 05:00 sm0rux_ joined, sm0rux_ left
gtodd SmokeMachine: why is it called Red ? ;-) 05:01
SmokeMachine: model Table { } ... nice
benjikun maybe he likes the color red :P 05:02
05:02 sno left
gtodd ok ... was thinking maybe it was an acronym or referred to "red" in Spanish or something 05:03
benjikun I have no idea, was just making a humorously simple assumption
gtodd hehe 05:05
SmokeMachine: that is some pretty easy to read code in the Synopsis ... an ORM where the backend is abstracted away almost to the point of disappearing 05:06
SmokeMachine: makes for really easy database backed apps 05:08
SmokeMachine: wait ... really easy database .... nah 05:09
xinming_ After we get nextcallee, How do we apply that to a method?
I mean, what to do to pass the self object?
my &do-next = nextcallee; &do-next self, $arg1, $arg2, $arg3?
Seems, do-next self, arg... ; works, But not sure wether it's right 05:12
05:20 vrurg left
gtodd self seems ok I think .... does it just "feel" like unusual usage ? 05:21
05:21 kerframil left
xinming_ It is ok, But I thought, that self should be bind with something else, as it's a class method. :-) 05:22
gtodd it's true that perl6 can be very terse
05:24 redhands joined 05:25 p6bannerbot sets mode: +v redhands 05:30 RyZum joined 05:32 sno joined 05:33 p6bannerbot sets mode: +v sno, vrurg joined 05:34 p6bannerbot sets mode: +v vrurg 05:37 sno left 05:39 RyZum left 05:40 redhands left 05:55 moonlight26 joined 05:57 moonlight26 left 05:59 sauvin joined, p6bannerbot sets mode: +v sauvin, sauvin left 06:05 sno joined 06:06 p6bannerbot sets mode: +v sno 06:10 w_richard_w left, vrurg left 06:14 sauvin joined, p6bannerbot sets mode: +v sauvin
xinming_ m: ((+"9.5") ~~ Num).say; 06:15
camelia False
xinming_ What is the easist way to check wether a "string" is a number by using perl6 built-in
benjikun that is a Rat
and by using `.Numeric` 06:16
lookatme_q m: say so +"1.2"
camelia True
lookatme_q m: say so +"ff"
camelia False
benjikun also that ^
m: say so "9.5".Numeric;
camelia True
xinming_ Thanks, the so version is sweetest 06:17
06:17 |oLa| joined
benjikun xinming_: For future reference, numbers with decimals default to being `Rat` 06:18
06:18 p6bannerbot sets mode: +v |oLa| 06:27 matsu left, matsu joined 06:28 p6bannerbot sets mode: +v matsu 06:29 sno left 06:30 ZzZombo left 06:31 ZzZombo joined, p6bannerbot sets mode: +v ZzZombo
ZzZombo m: say so +"0" 06:33
camelia False
ZzZombo m: say so "0".Numeric
camelia False
ZzZombo Caution! 06:34
benjikun yeah, so shouldn't be used there actually 06:35
xinming_ benjikun: Got it
benjikun m: say "5.5".Numeric ~~ Rat 06:36
camelia True
benjikun m: say "5".Numeric ~~ Int
camelia True
benjikun m: say !"5".Numeric ~~ Failure 06:37
camelia False
benjikun m: say not not "sdf5".Numeric ~~ Failure 06:38
camelia True
benjikun whoops two nots lol
ZzZombo m: say val "asd" ~~ Numeric
camelia Value of type Bool uselessly passed to val()
False
in block <unit> at <tmp> line 1
benjikun that's a flawless way of doing it tho
ZzZombo m: say (val "asd") ~~ Numeric
camelia False
ZzZombo m: say (val "0") ~~ Numeric
camelia True
benjikun That too
:)
lookatme_q m: say so "0".parse-base(10) 06:43
camelia False
lookatme_q m: say "0".parse-base(10)
camelia 0
Xliff What's the best way to make an event that ticks, every second? 06:48
What's the best way to make an event that ticks, every x second?
ZzZombo Scheduler. 06:49
lookatme_q maybe using Supply.interval 06:50
m: react { whenever Supply.interval(1) { say "foo"; last if $++ > 4; } } 06:51
camelia foo
===SORRY!===
foo
foo
foo
foo
foo
last without loop construct
lookatme_q m: react { whenever Supply.interval(1) { say "foo"; done if ++$ >= 4; } }
camelia foo
foo
foo
foo
lookatme_q m: react { whenever Supply.interval(1) { say "foo", now; done if ++$ >= 4; } } 06:52
camelia fooInstant:1534315965.486511
fooInstant:1534315966.484926
fooInstant:1534315967.486009
fooInstant:1534315968.486513
lizmat m: react { whenever Supply.interval(1) { say time; done if ++$ >= 4; } } 06:53
camelia 1534316022
1534316023
1534316024
1534316025
lizmat reads better :-) 06:54
Xliff m: sub ping { say "ping"; } my $c = Scheduler.cue(&ping, :every(1)); Promise.in(5).then: { $c.cancel };
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3sub ping { say "ping"; }7⏏5 my $c = Scheduler.cue(&ping, :every(1))
expecting any of:
infix
Xliff m: sub ping { say "ping"; }; my $c = Scheduler.cue(&ping, :every(1)); Promise.in(5).then: { $c.cancel };
camelia Method 'loads' must be implemented by Scheduler because it is required by roles: Scheduler.
in block <unit> at <tmp> line 1
lizmat Xliff: $*SCHEDULER ?
Xliff m: sub ping { say "ping"; }; my $c = $*SCHEDULER.cue(&ping, :every(1)); Promise.in(5).then: { $c.cancel };
camelia ping
Xliff m: sub ping { say "ping"; }; my $c = $*SCHEDULER.cue(&ping, :every(1)); my $p = Promise.in(5).then: { $c.cancel }; await $p; 06:55
camelia ping
ping
ping
ping
ping
ping
Xliff m: sub ping { say "ping"; }; my $c; Promise.in(1).then: { c = $*SCHEDULER.cue(&ping, :every(1)) }; my $p = Promise.in(5).then: { $c.cancel }; await $p; 06:57
camelia 5===SORRY!5=== Error while compiling <tmp>
Preceding context expects a term, but found infix = instead.
Did you make a mistake in Pod syntax?
at <tmp>:1
------> 3ng"; }; my $c; Promise.in(1).then: { c =7⏏5 $*SCHEDULER.cue(&ping, :ever…
Xliff m: sub ping { say "ping"; }; my $c; Promise.in(1).then: { $c = $*SCHEDULER.cue(&ping, :every(1)) }; my $p = Promise.in(5).then: { $c.cancel }; await $p;
camelia ping
ping
ping
ping
Xliff m: sub ping { say "ping"; }; my $c; Promise.in(0).then: { $c = $*SCHEDULER.cue(&ping, :every(1)) }; my $p = Promise.in(5).then: { $c.cancel }; await $p;
camelia ping
ping
ping
ping
ping
Xliff Gotta wait until the clock hits the next beat to get it right. 06:58
m: sub ping { say "ping"; }; my $c; Promise.in(0).then: { $c = $*SCHEDULER.cue(&ping, :every(1)) }; my $p = Promise.in(5).then: { $c.cancel }; await $p;
camelia ping
ping
ping
ping
ping
Xliff m: sub ping { say "ping"; }; my $c; Promise.in(0).then: { $c = $*SCHEDULER.cue(&ping, :every(1)) }; my $p = Promise.in(5).then: { $c.cancel }; await $p;
camelia ping
ping
ping
ping
ping
ZzZombo Xliff: PM camelia for playing around.
Xliff As opposed to....
m: sub ping { say "ping"; }; my $c = $*SCHEDULER.cue(&ping, :every(1)); my $p = Promise.in(5).then: { $c.cancel }; await $p;
camelia ping
ping
ping
ping
ping
06:59
Xliff OK. I'm done.
First attempt gave 6 pings, when I was expecting 5.
06:59 aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh 07:00 p6bannerbot sets mode: +v aborazmeh
lizmat Xliff: perhaps the Promise's timing was just over the "edge" oce 07:03
*once
tyil .tell uzl any looping construct should work, so you can map, or filter out entries with grep
yoleaux 01:48Z <uzl> tyil: That seems to do the job. Thanks! Anyway of looping over the candidates without using a for/while loop?
tyil: I'll pass your message to uzl.
07:11 xinming_ is now known as xinming
xinming m: my @a = ("a" .. "z", 1 .. 9); (@a.pick(15)).join('').perl.say; 07:34
camelia "1 2 3 4 5 6 7 8 9a b c d e f g h i j k l m n o p q r s t u v w x y z"
xinming What is the best way to generate a random string with specified characters?
07:35 zakharyas joined 07:36 p6bannerbot sets mode: +v zakharyas
xinming m: my @a = (|("a" .. "z"), |(1 .. 9)); @a.^Cck(15).join("").perl.say; 07:37
camelia No such method 'Cck' for invocant of type 'Perl6::Metamodel::ClassHOW+{<anon>}'
in block <unit> at <tmp> line 1
xinming m: my @a = (|("a" .. "z"), |(1 .. 9)); @a.pick(15).join("").perl.say;
camelia "cxe2m51pjy4wkqr"
xinming In this case, is there better way to write my @a = (|("a" .. "z"), |(1 .. 9)); ?
07:39 regreg left
Xliff m: my @a = ("a".."z", 1..9).eager; my $a; $a ~= @a.pick for ^15; say $a 07:40
camelia 1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9a b c d e f g h i j k l m n o p q r s t u v w x y za b c d e f g h i j k l m n o p q r s t u v w x y za b c d e f g h i j k l m n o p q r s t u v w x y z1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9a b c d e f g…
Xliff Hmmmm....
m: my @a = |("a".."z", 1..9).eager; my $a; $a ~= @a.pick for ^15; say $a
camelia a b c d e f g h i j k l m n o p q r s t u v w x y z1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9a b c d e f g h i j k l m n o p q r s t u v w x y za b c d e f g h i j k l m n o p q r s t u v w x y za b c d e f g h i j k l m n o p q r s t u v w x y z1 2 3 4 5 6 7…
Xliff m: my @a = ('a'..'z'); say @a; 07:41
camelia [a b c d e f g h i j k l m n o p q r s t u v w x y z]
Xliff m: my @a = ('a'..'z'); say @a.flat;
camelia (a b c d e f g h i j k l m n o p q r s t u v w x y z)
Xliff m: my @a = (("a".."z").flat, (1..9).flat); my $a; $a ~= @a.pick for ^15; say $a
camelia a b c d e f g h i j k l m n o p q r s t u v w x y za b c d e f g h i j k l m n o p q r s t u v w x y z1 2 3 4 5 6 7 8 9a b c d e f g h i j k l m n o p q r s t u v w x y z1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9a b c d e f g h i j k l m n o p q r s t u v w x…
Xliff (@!#&!
m: my @a = (("a".."z").flat, (1..9).flat); say @a; 07:42
camelia [(a b c d e f g h i j k l m n o p q r s t u v w x y z) (1 2 3 4 5 6 7 8 9)]
Xliff m: my @a = (("a".."z").flat, (1..9).flat).flat; say @a.pick(15).join(''); 07:43
camelia 6lwus24ndz95rpm
Xliff ^^ xinming
benjikun you dont need that many flats
Xliff Oh?
benjikun m: my @a = ('a'..'z', '1'..'9').flat; say @a.pick(15).join; 07:44
camelia ibshde1ylw6fapx
Xliff Yeah. That. LOL.
benjikun :P
07:55 sno joined 07:56 p6bannerbot sets mode: +v sno
Xliff my $m = "2ab"; say $m.Numeric;l 07:58
m: my $m = "2ab"; say $m.Numeric; 07:59
camelia Cannot convert string to number: trailing characters after number in '032⏏5ab' (indicated by ⏏)
in block <unit> at <tmp> line 1
Xliff m: my $m = "20b"; say $m.Numeric;
camelia Cannot convert string to number: trailing characters after number in '0320⏏5b' (indicated by ⏏)
in block <unit> at <tmp> line 1
Xliff m: my $m = "20"; say $m.Numeric;
camelia 20
08:00 lizmat left, sno left
benjikun Is anyone here Japanese? 08:01
Oh, nevermind, found it on wikipedia 08:02
08:04 anataex joined 08:06 anataex left 08:20 JJJ000 left 08:33 cognominal-p6 joined 08:34 p6bannerbot sets mode: +v cognominal-p6, broquaint left
xinming m: my @a = ['a'..'z', '1'..'9'].flat; say @a.pick(15).join; 08:39
camelia a b c d e f g h i j k l m n o p q r s t u v w x y z1 2 3 4 5 6 7 8 9
xinming These are tricky. :-)
lookatme_q m: my @a = ['a'...'z', '1'...'9'].flat; say @a.pick(15).join;
camelia j3g2aytbsrxn8fp
lookatme_q Range and Seq 08:40
xinming so, ... is a seq 08:59
m: my @a = a'...'z', '1'...'9'; say @a.pick(15).join;
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3my @a = a7⏏5'...'z', '1'...'9'; say @a.pick(15).join
expecting any of:
infix
infix stopper
postfix
statemen…
xinming m: my @a = (a'...'z', '1'...'9'); say @a.pick(15).join;
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3my @a = (a7⏏5'...'z', '1'...'9'); say @a.pick(15).joi
expecting any of:
infix
infix stopper
statement end
s…
xinming m: my @a = 'a'...'z', '1'...'9'; say @a.pick(15).join; 09:00
camelia z6fxd82t4awknqp
xinming The shorttest version
lookatme_q m: say 'a' ... 'z' .WHAT
camelia ===SORRY!===
Method call must either supply a name or have a child node that evaluates to the name
lookatme_q m: say ('a' ... 'z') .WHAT
camelia ===SORRY!===
Method call must either supply a name or have a child node that evaluates to the name
lookatme_q m: say ('a' ... 'z').WHAT
camelia (Seq)
stmuk_ www.youtube.com/watch?v=SR0Grhiw8xI 09:08
#TPCiG live stream
lookatme_q what's that 09:09
stmuk_ former YAPC::EU (Euro Perl Conf) 09:10
09:14 sena_kun joined, p6bannerbot sets mode: +v sena_kun 09:16 mithaldu__ joined, p6bannerbot sets mode: +v mithaldu__ 09:17 Circlepuller joined 09:18 mithaldu_ left, TeamBlast left, mithaldu__ is now known as mithaldu_, p6bannerbot sets mode: +v Circlepuller 09:20 nativecallable6 left, statisfiable6 left, greppable6 left, greppable6 joined, statisfiable6 joined, nativecallable6 joined, committable6 left 09:21 shareable6 left, benchable6 left, p6bannerbot sets mode: +v greppable6, p6bannerbot sets mode: +v statisfiable6, p6bannerbot sets mode: +v nativecallable6 09:24 Pici16 joined, Pici16 left 09:27 pmurias joined 09:28 p6bannerbot sets mode: +v pmurias, lizmat joined 09:29 p6bannerbot sets mode: +v lizmat
xinming How do I match all Exception types under X::Method:: namespace? 09:36
I just figureed something like ::('X::Method::NotFound')
But how can I grep all the ::('X::Method...'); 09:37
09:49 lizmat left
Geth doc: JJ self-assigned No apparent buf8/16/32/64 documentation github.com/perl6/doc/issues/2264
499c481c9d | (JJ Merelo)++ | 2 files

Also some reflow here and there. Closes #2264
09:58
10:01 bolt17 joined 10:03 bolt17 left
10:07 pmurias left 10:08 lizmat joined 10:09 p6bannerbot sets mode: +v lizmat 10:10 lizmat left 10:12 aborazmeh left 10:14 sarna joined 10:15 p6bannerbot sets mode: +v sarna
sarna what's the idiomatic way of checking if there's a thing x in collection y? 10:16
10:17 lizmat joined, p6bannerbot sets mode: +v lizmat 10:18 committable6 joined, shareable6 joined 10:19 p6bannerbot sets mode: +v committable6, p6bannerbot sets mode: +v shareable6 10:20 regreg joined, p6bannerbot sets mode: +v regreg 10:25 lizmat left 10:27 ZzZombo left
moritz using the set "element of" operator 10:44
except for hashes, where it's %foo{$key}:exists 10:45
MitarashiDango[m My new Camelia plushie is popular 🙂 postimg.cc/gallery/14266sfvy/ 10:46
Ulti you can also do collectiony_thing ~~ itemy_thing 10:47
but not so explicit I guess and could do funky stuff with different objects 10:48
sarna thanks moritz, Ulti :^) 10:50
MitarashiDango[m: it's a beaut 10:51
10:53 lizmat joined 10:54 p6bannerbot sets mode: +v lizmat, lizmat_ joined 10:55 p6bannerbot sets mode: +v lizmat_ 10:58 lizmat left
sarna m: say (1,2,3) (elem) ((1,2,3),(4,5,6)) 11:03
camelia False
sarna why isn't it true?
11:05 spycrab0 joined, p6bannerbot sets mode: +v spycrab0
moritz m: say (1, 2, 3) === (1, 2, 3) 11:07
camelia False
moritz that's why :(
basically lists are not value types
sarna oof :( 11:08
arrays are though!
Ulti m: say ((1,2,3),(4,5,6)).grep: * eqv (1,2,3) 11:09
camelia ((1 2 3))
moritz MitarashiDango[m: nice! 11:11
sarna: I don't think so
m: say [1, 2, 3] === [1, 2, 3]
camelia False
Ulti m: say [1,2,3] eqv [1,2,3] 11:12
camelia True
CIAvash[m] m: say ((1,2,3),(4,5,6)) ~~ (**, (1,2,3), **)
camelia True
sarna moritz: ah, I compared with == 11:14
moritz sarna: that does numeric comparison, so by number of elements 11:16
sarna moritz: oh man 11:18
m: say [1, 2, 3] == [4, 5, 6]
camelia True
sarna :') 11:19
MitarashiDango[m m: say ((1,2,3),(4,5,6)).Set.Hash 11:21
camelia {1 => True, 2 => True, 3 => True, 4 => True, 5 => True, 6 => True}
MitarashiDango[m m: say ($(1,2,3),$(4,5,6)).Set.Hash 11:23
camelia {(1 2 3) => True, (4 5 6) => True} 11:24
stmuk_ leon t on now 11:27
MitarashiDango[m According to the docs on set: Coerces the invocant to Set, whereby Positionals are treated as lists of values. 11:29
xinming What module is sued to send email?
11:30 rindolf left 11:31 sarna left
buggable New CPAN upload: Range-SetOps-0.0.1.tar.gz by SCIMON cpan.metacpan.org/authors/id/S/SC/...0.1.tar.gz 11:31
11:31 zakharyas left 11:32 sno joined, rindolf joined, p6bannerbot sets mode: +v sno 11:33 p6bannerbot sets mode: +v rindolf 11:34 stmuk joined
xinming Seems, We'll have to use mail command. 11:34
11:34 marcusramberg left
xinming I thought we have something better. :-( 11:34
11:34 p6bannerbot sets mode: +v stmuk 11:35 marcusramberg joined 11:36 p6bannerbot sets mode: +v marcusramberg, sno left 11:37 stmuk_ left 11:52 vike1 left
buggable New CPAN upload: Array-Circular-0.0.1.tar.gz by ELIZABETH cpan.metacpan.org/authors/id/E/EL/...0.1.tar.gz 12:01
12:10 redhands joined 12:11 p6bannerbot sets mode: +v redhands 12:13 lizmat_ left 12:14 epony left 12:20 ChoHag_ left 12:26 epony joined, p6bannerbot sets mode: +v epony 12:38 sno joined 12:39 p6bannerbot sets mode: +v sno 12:43 sno left 12:47 zakharyas joined, p6bannerbot sets mode: +v zakharyas 12:55 alexghacker left 13:02 titsuki left 13:04 diakopter joined, p6bannerbot sets mode: +v diakopter, lizmat joined 13:05 p6bannerbot sets mode: +v lizmat 13:17 vrurg joined 13:18 p6bannerbot sets mode: +v vrurg 13:20 espadrine joined 13:21 p6bannerbot sets mode: +v espadrine 13:25 lizmat_ joined 13:26 p6bannerbot sets mode: +v lizmat_ 13:28 lizmat left
buggable New CPAN upload: Term-ReadKey-0.0.1.tar.gz by JKRAMER cpan.metacpan.org/authors/id/J/JK/...0.1.tar.gz 13:31
13:33 CC6619 joined
jkramer \o/ 13:36
13:37 CC6619 left 13:39 itaipu joined, p6bannerbot sets mode: +v itaipu 13:50 skids joined 13:51 p6bannerbot sets mode: +v skids
SmokeMachine gtodd: "Red Explores Database" 13:55
13:55 pj5 joined 13:56 pj5 left 14:07 lizmat_ left 14:09 lizmat joined 14:10 p6bannerbot sets mode: +v lizmat
tbrowder_ jkramer: o/ 14:13
14:17 lizmat left 14:24 Ven` joined, p6bannerbot sets mode: +v Ven` 14:28 Ven` left 14:37 regreg left 14:38 lizmat joined 14:39 p6bannerbot sets mode: +v lizmat 14:45 ribasushi joined, p6bannerbot sets mode: +v ribasushi
stmuk www.youtube.com/watch?v=rHN1x7aFQG0 14:50
timotimo i blagged! wakelift.de/2018/08/15/the-first-p...c-release/ 14:52
live streams!!
15:00 vike1 joined 15:01 p6bannerbot sets mode: +v vike1
[Coke] timotimo++ 15:03
15:08 ceevusee joined, p6bannerbot sets mode: +v ceevusee
timotimo this programming language laurent is describing there seems pretty strange 15:10
lizmat yeah, probably dates from the 20th century :-) 15:12
15:13 lizmat left 15:14 lizmat joined, lizmat left 15:26 lizmat joined 15:27 p6bannerbot sets mode: +v lizmat
stmuk VMS and DCL were pretty awful, although heavily used in UK unis in the late 80s 15:27
timotimo i have never tried VMS either :S
is that something i should try so i can better appreciate modern stuff? :)
huf eh, just try VMs instead and then lie about it 15:28
stmuk the main thing I remember is everyone had "cd" aliases because changing directory was about 2 lines to type
there were two commands SET and SHOW :)
timotimo oh, so you have to type the full path? 15:29
no support for relative paths?
15:30 dogbert11 left
stmuk I can't remember ... it was probably more that the syntax was very verbose 15:31
timotimo how often do you change directories anyway :)
15:32 ceevusee left
stmuk the only feature I liked was a sort of version control in the file system, you ended up with FOO.TXT;3 after three edits 15:32
PURGE FOO.TXT 15:33
timotimo interesting.
and opening the file if there's no ;99 will give you the highest number?
stmuk probably .. I forget now
15:33 cxreg joined 15:34 p6bannerbot sets mode: +v cxreg
stmuk cd .. is "SET DEFAULT [-]" 15:38
timotimo that looks interesting, is [-] a "general" thing? 15:39
stmuk yes
timotimo like, is DEFAULT like an array and [-] is kind of like a pop?
stmuk www.snee.com/bob/opsys/part3vms.pdf
I think DEFAULT is the cwd 15:40
the HELP system was interactive and very good
timotimo it doesn't sound so bad 15:42
stmuk it had a few nice features but most people prefered UNIX 15:45
no libuv though :( although there seem to be ports for AIX and OS/390 :) 15:55
15:58 MilkmanDan left, MilkmanDan joined, p6bannerbot sets mode: +v MilkmanDan
timotimo is it expected that what the people in between talks say doesn't get picked up by the stream? 16:14
i think wendy and someone else just said something that was completely quiet on stream but i heard the applouse at least
applause*
stmuk the soundtrack is a bit odd
timotimo i think it happened to the person just now, too
stmuk could moarvm execute using webasm? 16:15
timotimo i'm not sure what exactly would stand in the way 16:18
16:18 jferrero joined, p6bannerbot sets mode: +v jferrero
timotimo could be that we need some changes inside libuv to make it work? 16:18
stmuk wendy's mic isn't being streamed
timotimo for some reason nobody has tried to cross compile libuv to asm.js or webassembly
maybe because you'd compile to asm.js or webassembly to put things perhaps onto node, which already has libuv in it :P 16:19
stmuk browser-side node.js!
timotimo perl6 mention on a slide! :) 16:21
i can't hear the stream right now so apart from "it's about instagram" i don't know what's happening
personally i really don't like instagram #becauseofthetags #toomanytags #whyisthereeverytagoneverypost #post #irc #rant #perl6 #catOnTable #GottaFeedTheCatsSoon #watchingAStream #human #sound #video #picture #blessed #tagcloud #cloud #cats #dogs #burritos 16:24
the terrible buzzing sound that sometimes comes up is really unnerving; i closed the stream for now 16:25
stmuk I mispent my youth listening to poor quality short wave so I can filter it out 16:26
AlexDaniel how can I get a unicode character by name? 16:27
m: say “\c[BUTTERFLY]” # that's ok but now with $x ?
camelia 🦋
timotimo parse-names?
m: parse-names("BUTTERFLY")
camelia ( no output )
timotimo m: parse-names("BUTTERFLY").say
camelia 🦋
AlexDaniel ah!
right, thanks
m: parse-names("butterfly").say
camelia 🦋
stmuk examples.perl6.org/categories/cookb...icode.html
AlexDaniel c: 2015.12 parse-names("butterfly").say 16:31
committable6 AlexDaniel, ¦2015.12: «04===SORRY!04=== Error while compiling /tmp/xjsbwZiPql␤Undeclared routine:␤ parse-names used at line 1␤␤ «exit code = 1»»
AlexDaniel 6c: parse-names("butterfly").say
16:31 pavlushka7 joined, pavlushka7 left
committable6 AlexDaniel, gist.github.com/daf867c59d128f72a5...432c83fbe3 16:32
AlexDaniel so that's 2017.03+
stmuk docs.perl6.org/routine/parse-names 16:43
DEPRECATED. Existed only in pre-release proposal version of 6.d language and was eventually renamed to uniparse.
16:43 lizmat left
stmuk In Rakudo implementation, issues deprecation warnings in 6.d language 16:43
timotimo oh, right, camelia doesn't output deprecations 16:45
stmuk that doesn't warn on the REPL either 16:46
timotimo deprecations only warn when the program ends, though perhaps it could be invoked directly after every line in the repl
(and cleared, of course)
16:46 TreyHarris left
AlexDaniel stmuk: aw crap 16:46
AlexDaniel should read the docs 16:47
6c: uniparse("butterfly").say
committable6 AlexDaniel, gist.github.com/d56584ca132683d260...314bf0ea52
AlexDaniel timotimo: in v6.d, not in v6.c
stmuk timotimo: I don't see a warning using a script either 16:48
AlexDaniel e: parse-names("butterfly").say
evalable6 🦋
AlexDaniel e: use v6.d; parse-names("butterfly").say
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/h6V8dbPYA1
No compiler available for Perl v6.d
at /tmp/h6V8dbPYA1:1
------> 03use v6.d08⏏04; parse-names("butterfly").say
stmuk even with use v6.d.PREVIEW
timotimo oh
AlexDaniel e: use v6.d.PREVIEW; parse-names("butterfly").say
evalable6 🦋
timotimo sounds like we forgot to put a deprecation code in, or the docs are wrong
AlexDaniel well this sucks
so parse-names is 2017.03+ and uniparse is 2018.01+ 16:49
yet parse-names is about to be deprecated
and the module rightfully used nqp::getstrfromname because I assume no other alternative was available back then
the best fix for the module would be to just hardcode unicode characters 16:50
16:51 Ven` joined, p6bannerbot sets mode: +v Ven` 16:55 MetaNova17 joined 16:56 Ven` left
stmuk Str.uniparse as an alias to Str.parse-names 16:58
ah probably explains lack of deprecation message 16:59
16:59 TreyHarris joined, p6bannerbot sets mode: +v TreyHarris 17:00 MetaNova17 left
AlexDaniel 6c: ‘🦋’.uniname.say 17:01
committable6 AlexDaniel, gist.github.com/0e6d1ef0fa0935d149...f352089849
AlexDaniel oh…
stmuk I think the docs are wrong .. it exists in 6.c and is planned to issue depreaction in 6.d (and doesn't yet) 17:02
unless it's in 6.c by mistake
AlexDaniel u: flamingo 17:03
unicodable6 AlexDaniel, Found nothing!
17:08 Xliff left 17:18 sarna joined 17:19 p6bannerbot sets mode: +v sarna 17:21 espadrine left
sarna m: my Int $x = 3; my Str $y = "something"; say $x eqv $y 17:23
camelia False
sarna why isn't this a runtime error?
AlexDaniel why would it be?
sarna it won't ever be true, the types are different 17:24
AlexDaniel so it is False
m: say 2 > 5 # this is also always False but that's alright, right? 17:25
camelia False
sarna hm, I could write a type-safe function myself I guess 🤷
anyway, thanks for answering :^) 17:26
AlexDaniel sarna: I don't think I helped :)
sarna AlexDaniel: well yeah, I wasn't asking for help though :^) I asked why it's like this and you told me 17:28
Geth doc: a045e535cf | (JJ Merelo)++ | htmlify.p6
Adds indexing for submethod closes #2265
17:32
17:33 inbioz joined 17:34 p6bannerbot sets mode: +v inbioz 17:35 sno joined 17:36 p6bannerbot sets mode: +v sno 17:39 Coffee-N-Donuts left 17:40 espadrine joined 17:41 p6bannerbot sets mode: +v espadrine 17:44 inbioz left 17:52 Guest72310 joined 17:53 p6bannerbot sets mode: +v Guest72310
Geth doc: e0843c327b | (JJ Merelo)++ | 2 files
Changes assets to https, probably closes #2246
17:56
17:57 Guest72310 left 18:05 zakharyas left 18:07 obfusk left 18:08 redhands left, obfusk joined 18:09 p6bannerbot sets mode: +v obfusk 18:16 frmus15 joined 18:17 frmus15 left 18:26 sauvin left 18:30 Zoffix joined, sarna left, p6bannerbot sets mode: +v Zoffix 18:33 tomaw5 joined, tomaw5 left
Geth doc: 13a8812015 | (Zoffix Znet)++ | doc/Type/Str.pod6
Reword deprecation of parse-names
18:35
synopsebot Link: doc.perl6.org/type/Str
Zoffix stmuk: it's not that someone forgot to put any deprecation code, it's just Rakudo doesn't have the means to warn in methods based on the language version. 18:36
That applies to several 6.d deprecations.
They're deprecated in the language itself; it's rakudo's problem that it can't communicate that message effectively to the user.
18:50 Zoffix left
Geth Pod-To-HTML: zoffixznet self-assigned Test errors with 2018.06 github.com/perl6/Pod-To-HTML/issues/43
8fbb00b442 | (Zoffix Znet)++ | 3 files

Fixes github.com/perl6/Pod-To-HTML/issues/43
18:58
19:04 insidious27 joined 19:09 insidious27 left 19:12 pmurias joined 19:13 p6bannerbot sets mode: +v pmurias
pmurias timotimo: re compiling libuv to webassembly you would want to make it work differently if you wanted it to run on node.js than in the browser 19:13
yoleaux 15:35Z <AlexDaniel> pmurias: I'm not following. Debian maintainers do care, and debian doesn't seem to be a disaster. What am I misunderstanding?
19:18 Luneburg joined, p6bannerbot sets mode: +v Luneburg
Luneburg There's a bannerbot now? 19:19
Anyway, I'm working through the ThinkPerl6 book, and I came across this example: say ~$0 if $string ~~ /(<[\d-]>+)/; I'm not sure what the "-" part after the d does 19:20
19:20 Possum left
moritz it just stands for a - 19:23
so "any digit or a minus"
pmurias AlexDaniel: what I mean is that it would be great if the Perl 6 community would be involved in distro packaging (with the assumption that the Perl 6 communities and debian packagers intersect) 19:25
s/debian/distro packages/ 19:26
AlexDaniel: the vast majority of debian packages are great
Luneburg moritz: Oh, of course. What a stupid question :P
pmurias AlexDaniel: but for example the debian package for node.js was a dumpster fire 19:27
tobs m: say "123" ~~ /<[\d-\e]/ 19:29
camelia 5===SORRY!5=== Error while compiling <tmp>
Unsupported use of - as character range; in Perl 6 please use .. for range, for explicit - in character class, escape it or place it as the first or last thing
at <tmp>:1
------> 3say "123" ~~ /<[\…
tobs Luneburg: it really isn't if you've used pcre or similar. There's even a warning for it ^ 19:30
timotimo Luneburg: the bannerbot is here because there's been a pretty annoying spam attack against the freenode irc network 19:31
19:33 Possum joined, p6bannerbot sets mode: +v Possum 19:45 avalenn joined 19:46 p6bannerbot sets mode: +v avalenn
gtodd SmokeMachine: RRed -> Red recursively exploring data :-) 19:46
SmokeMachine gtodd: :) 19:47
gtodd: but did you like it?
19:47 molaf joined 19:48 p6bannerbot sets mode: +v molaf
gtodd SmokeMachine: yeah 19:48
nice
And now for a "silly report from the field" ....
19:49 nedbat7 joined
gtodd There was a naïve perl5 vs perl6 log grepping script on perlmonks a couple of years ago ... perl5 could grep all 5 letter words in a logfile in 0.2 seconds ... perl6 took 3 minutes :-D 19:49
just tested with new p6 and a 500k line file ... perl5 took 2.2 seconds ... perl6 took 2.04
and was able to use 107% of cpu :) 19:50
perl5 never gets higher than 99% ;-) ... haha 19:51
timotimo have you tried to .race the lines iterator? it *could* be faster, but it's probably barely faster to search through the strings than to generate the iterator 19:53
so maybe it comes out as a bit more expensive in the end 19:54
in wallclock time, i mean
it's surely more expensive in cpu time because that's how it works :)
19:56 nedbat7 left
gtodd I know ... I have 8 or maybe 16 cpus on that box ... though it might get even higher 19:57
19:57 zakharyas joined
gtodd so was thinking with a really big file and the 6.d diwali tricks it might go super fast 19:57
19:57 p6bannerbot sets mode: +v zakharyas
gtodd but I know nothing about threading etc. so just glad it goes fast :-D 19:58
timotimo i should have recommended .hyper instead of .race
because .race can cause the order of output to change
but making it multithreaded is literally the change between "foo.txt".IO.lines.hyper.grep(*.contains("hi")) instead of "foo.txt".IO.lines.grep(*.contains("hi")) 19:59
gtodd timotimo: when I say "naïve" I really mean it :-) 20:00
perl6 -e 'say lines.words.grep(/(<<\w**5>>)/)' 500k-lines.txt
timotimo oh, really?
how the heck is perl6 faster than perl5 at this
that goes way against my intuition
gtodd timotimo: perl5 is still more useful for piping to shell commands etc. so I am trying to get a more usecase equivalent script 20:01
perl -wnl -E 'say $1 if /\b(\w{5})\b/' 500k-lines.txt | wc -l # how many lines with 5 letter words ... etc etc 20:02
timotimo huh, really
how did you generate that file?
xinming anyone here recommends a module to send email? 20:03
[Coke] perl6 isn't printing all the words.
so, cheating?
xinming or I just do it with plain mail command is the sollution ATM?
timotimo ooh
20:03 itaipu left
timotimo yes, with say it'll stop after the first few 20:04
gtodd [Coke]: yes
timotimo it'll also not calculate all of them
[Coke] if I run it with > /dev/null and time both against /usr/share/dict/words, I get that p5 is 0.124s and p6 is 0.645s
20:04 itaipu joined
[Coke] m: say .645/.124 20:04
camelia 5.201613
gtodd [Coke]: so I thought I would need to store data maybe make a more full on script instead of piping 20:05
20:05 p6bannerbot sets mode: +v itaipu
[Coke] perl6 -e 'put lines.words.grep(/(<<\w**5>>)/).join("\n")' is more equivalent to the p5 version 20:07
gtodd p6 always has seemed generically slow printing to the terminal ... which I'm guessing was not a super high priority for optimization early on ... so not a drop in replacement for scripting etc.
[Coke]: right
[Coke] then it goes to 3.468s here (vs. .231s)
20:07 itaipu left
[Coke] m: say 3.468/.231 20:08
camelia 15.012987
gtodd [Coke]: :-D 20:09
20:09 itaipu joined 20:10 didi joined, p6bannerbot sets mode: +v didi, p6bannerbot sets mode: +v itaipu, didi left
gtodd for a sysadmin and for the time being I'm saying p6 is optimized for readability and "orchestrating" all the things instead of scripting with output to the terminal ;-) 20:11
timotimo: definitely hyper warms up more cpus ... perl6 -e 'put lines.hyper.grep(/(<<\w**5>>)/).join("\n")' 20:15
timotimo you could "time" it 20:16
gtodd timotimo: but the full equivalent print to terminal run is 35 times faster in perl5 :-D
timotimo [Coke]: .lines.words is not quite right, you're mashing lines back together before splitting on words
gtodd hyper gives me 380% cpu 20:17
timotimo personally i'd implement this as .lines.grep(.words.grep(*.chars eq 5)).elems.say given "foobar.txt".IO
gtodd: but probably not faster wallclock time?
gtodd no only barely faster
more cpus recruited each run ... OS thing I guess 20:18
timotimo ok, i expected that
no, just mostly spending time dealing with communication and coordination of the work
20:18 sena_kun left
timotimo compared to infinitesimal amounts of work per "work item" 20:18
20:19 sena_kun joined, Luneburg left
timotimo what's your 500k lines file like? how can i get something representative generated locally? 20:19
20:19 p6bannerbot sets mode: +v sena_kun, Ven` joined
gtodd I thought there might be a way to write the script to make it more "threaded" on purpose for performance ... like read lines then read words in the line in loop that awaits things or some new thing 20:20
timotimo: web server log
log(s) catted together
20:20 p6bannerbot sets mode: +v Ven`
timotimo hrm, i don't have any locally, i don't think 20:20
gtodd probably standard Unix words or dict file would work 20:21
20:21 sena_kun left
timotimo the line i had up there was missing a * before the .words.grep, btw 20:22
i get through /usr/share/dict/words, which has 480k lines, in about 7.8 seconds, finding about 25k lines that have 5-letter-words in them 20:24
20:24 Ven` left
timotimo wow, the regex version is actually a bunch faster than my .words.grep(*.chars == 5) approach 20:25
i must be quite tired if i tried to use eq up there, haha
20:26 awwaiid left
gtodd 'bout the same here ... yeah regex is faster 20:27
timotimo that's cool
AFK for a bit
gtodd I have a big ZFS pool and many disks so there's little to no warm up speed for reading the files it seems. I like figuring out how to make a simple script faster - based as much as possible on the script itself. p6 is "young" and featureful enough that one little thing can make a big difference 20:29
20:37 zakharyas left 20:41 rindolf left 20:46 devmikey joined, p6bannerbot sets mode: +v devmikey 20:52 vrurg_ joined 20:53 vrurg left, vrurg_ is now known as vrurg, p6bannerbot sets mode: +v vrurg 20:59 Praise left 21:00 vrurg left, vrurg joined 21:01 p6bannerbot sets mode: +v vrurg 21:04 vrurg left, vrurg joined 21:05 p6bannerbot sets mode: +v vrurg 21:12 devmikey left, devmikey joined, p6bannerbot sets mode: +v devmikey, skids left 21:15 vrurg_ joined 21:16 p6bannerbot sets mode: +v vrurg_ 21:17 vrurg left, vrurg_ is now known as vrurg 21:24 vrurg left, vrurg_ joined 21:25 p6bannerbot sets mode: +v vrurg_ 21:27 devmikey left 21:35 Praise joined, Praise left, Praise joined, p6bannerbot sets mode: +v Praise 21:36 p6bannerbot sets mode: +v Praise 21:55 BuildTheRobots4 joined 22:01 espadrine left 22:03 BuildTheRobots4 left 22:18 robertle left 22:20 lizmat joined 22:21 p6bannerbot sets mode: +v lizmat
stmuk Zoffix: ah! 22:44
22:46 Ven` joined, donaldh joined 22:47 p6bannerbot sets mode: +v Ven`, p6bannerbot sets mode: +v donaldh 22:51 Ven` left 22:54 floogulinc23 joined 22:56 floogulinc23 left 23:05 dct joined, p6bannerbot sets mode: +v dct 23:14 pmurias left 23:15 spycrab0 left
MasterDuke i set a breakpoint in gdb while compiling an nqp file, is there an easy way to see what line in the file i'm compiling i'm at? 23:27
heh, that was meant for #moarvm, but anybody can feel free to offer up suggestions... 23:32
23:32 dct left 23:36 devmikey joined, p6bannerbot sets mode: +v devmikey 23:43 donaldh left 23:56 JJJ000 joined, p6bannerbot sets mode: +v JJJ000
vrurg_ Can a pointy block accept a named parameter? 23:56
timotimo yes 23:59
m: my $pobo = -> :$foo { say "you gave me a $foo" }; $pobo(foo => 99)
camelia you gave me a 99
23:59 Ven` joined