»ö« 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.
AlexDaniel buggable: eco 00:00
buggable AlexDaniel, Out of 1214 Ecosystem dists, 0 have warnings, 14 have errors, and 0 have no tags in META file. See modules.perl6.org/update.log for details
AlexDaniel it can have 1214 dependencies
:)
timotimo isn't the docs package one of those 1214?
so wouldn't it technically be 1213?
AlexDaniel what if you make a package that depends on itself?
timotimo didn't someone just test something similar to that the other day? 00:01
AlexDaniel can I add that to the ecosystem or will I get executed? 00:02
timotimo depends, is the +x bit set on you?
AlexDaniel no.
I think it's illegal to set it
timotimo it's legal in the united states in some parts 00:03
but there is a process that you have to go through to become eligible
it's quite a hassle
hopefully they'll make it illegal soon, too
that might have been in slightly poor taste :\ 00:06
00:08 dims0 joined, dims0 left
Geth ecosystem: 93e9a67655 | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list
Add Foo::Dependencies::Self

Please remove it from the list if it starts causing issues.
00:14
AlexDaniel timotimo: :) 00:15
timotimo but does it do anything?
AlexDaniel it depends
timotimo oooh i see what you did there 00:16
AlexDaniel maybe I should also put it into build-depends and test-depends
timotimo i hope you don't build an unhealthy dependency upon it 00:17
will they do regular tests in your workplace for this kind of thing?
AlexDaniel I primarily want this for the toaster upgrade I was working on 00:18
as it handles dependencies by itself 00:19
or doesn't handle, because IIRC it should fail on something like this
Geth doc/normalized-ZDRs: f3f02d3e22 | (Zoffix Znet)++ | doc/Type/Rational.pod6
Document Rational.floor/.ceiling

They differ from Real's in that they can `fail` POV for failing: github.com/rakudo/rakudo/commit/6d70346cbf Propspec for failing: github.com/perl6/roast/commit/17761c2e48
00:20
AlexDaniel I was surprised to see that the whole ecosystem has no crazy stuff like this
timotimo our community members are just a tiny bit too tame
00:20 beeman left 00:23 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke 00:24 MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke
cheese_cake__ its been almost 40 minutes and zef is still downloading dependancies? 00:24
is this normal
timotimo that doesn't sound entirely correct
can you tell us what versions are involved on your system?
AlexDaniel cheese_cake__: is there any output? 00:25
timotimo like perl6 --version and zef list --installed zef
00:25 leont left
cheese_cake__ just upgraded both before this 00:25
timotimo is that how you get the zef version?
it is not
cheese_cake__ zef list --installed zef prints nothing
timotimo instead, you | grep zef
cheese_cake__ im installing the deps for the docs, its stuck on this ===> Testing: LWP::Simple:ver<0.104>:auth<github:perl6> 00:26
also, is there a way to pause my program for a bit before returning 0? 00:28
at least, I assume the MAIN process returns 0 be default
timotimo you can just "sleep 1" for example
Geth doc/normalized-ZDRs: 3a2570a52c | (Zoffix Znet)++ | doc/Type/Rational.pod6
Document Rational.new normalizes ZDRs
00:29
doc/normalized-ZDRs: ff26374e88 | (Zoffix Znet)++ | doc/Language/numerics.pod6
Make Numerics guide mention ZDR normaltion
00:30 beeman joined, p6bannerbot sets mode: +v beeman, itaipu left
Geth doc/normalized-ZDRs: 8222bcd850 | (Zoffix Znet)++ | doc/Language/numerics.pod6
Reword IEEE adherence in Numerics guide

The fixing of infix:</> was defered until 6.e
00:31
cheese_cake__ thanks tmotimo
Geth ecosystem: a476937a14 | (Aleks-Daniel Jakimenko-Aleksejev)++ | META.list
Add Foo::Dependencies::A-on-B & B-on-A

Please remove these if they cause issues.
00:31 geekosaur joined
cheese_cake__ is that a github bot ^ 00:32
AlexDaniel yes
Geth doc: zoffixznet++ created pull request #2327:
Normalized ZDRs
doc/master: 5 commits pushed by (Zoffix Znet)++
00:32 p6bannerbot sets mode: +v geekosaur
cheese_cake__ perl6 is compiled, right? 00:33
00:35 Zoffix joined, p6bannerbot sets mode: +v Zoffix
timotimo multiple kinds of compiled, but not all of them 00:35
SmokeMachine Hi guys! I am working on a project called Red ORM, and I think I have the first small working example of what Im thinking for its API. I'd like to know what do you guys think about that...
00:35 Zoffix left
timotimo when you run your script, it will get compiled to bytecode (for example MoarVM Bytecode if you're using perl6 on moarvm, which you most likely are) 00:35
SmokeMachine www.irccloud.com/pastebin/Ur4na2yM/
timotimo and modules you load will be precompiled, also to moarvm bytecode, and stored in a precomp folder on disk
at run time, if you're on an x86_64 system and didn't disable it, moarvm will JIT compile often-used code to machine code 00:36
00:36 buggable left, buggable joined, ChanServ sets mode: +v buggable 00:37 p6bannerbot sets mode: +v buggable 00:38 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix SmokeMachine: the metamethods are kinda weird. What's the reasoning for them, as opposed to normal methods? 00:38
SmokeMachine: also, what does `$*RED-DB` do? 00:39
Like, what happens if I have two models with two different databases in code next to each other (e.g. copying data from one database to another). How would that look like??
(P.S.: dynamic variable access is fairly slow)
also how come .^create instead of .^insert 00:43
timotimo i haven't looked, but perhaps it only gets inserted at a later point with a different method call?
Zoffix I don't care what it does under the hood. As a user, I'd be constantly doing `.^insert... ah crap BACKSPACE BACKSPACE.. .^create` 00:44
The `.^` is a lot more annoying to type than just `.`
timotimo you have those extra keys on your keyboard :) :) 00:45
Zoffix They're all taken :)
AlexDaniel you have all those modifiers on your keyboard… :) 00:46
timotimo i still want to have foot pedals
00:46 hamhu3 left
AlexDaniel timotimo: I tried, didn't work for me. But that's perhaps because I prefer to move around a lot 00:46
timotimo oh, really? 00:47
can you give me some more details?
AlexDaniel on what pedals to buy, or what?
timotimo for example
Zoffix SmokeMachine: I like how chained greps end up being a `where` tho not sure how it manages to figure out that that's what the greps do. I imagine typing those two greps as a single one works equally well?
SmokeMachine Zoffix: if you want to copy data from a database to another, you can `my $RED-DB = database "SQLite", database => "1"; my $rs= Boa.^all; $RED-DB = database "SQLite", database => "2"; $rs.save` but its not working yet... 00:48
Zoffix: yes
Zoffix cool
Well, god speed with the project! Can't wait to use the result. 00:49
Zoffix g2g
00:49 Zoffix left
timotimo i'd obviously like the pedals to be cheap, but not suck, and they ought to be easily reconfigurable, though surely i can tell udev or evdev or whatever "hey, um, these keys are actually those keys, k?" and that'll work out fine 00:49
and they must be press/release rather than single-trigger
00:49 cheese_cake__ left
AlexDaniel timotimo: well, it feels like building one yourself is the best choice, but I'm not sure. I bought the cheapest ones from ebay, which was a mistake kind of like. They're made with infared sensors, or something like that (don't remember the details now), so you get no tactile feedback whatsoever and it sucks. I did replace that with micro switches, so they no longer suck and in fact are pretty good 00:50
timotimo i'm actually mildly interested in analog switches, too
AlexDaniel they software also sucked, but I think nowadays people found a way to reconfigure them from linux with open source software
but that isn't that important IMO, as you won't be changing it all the time (probably) 00:51
SmokeMachine .tell Zoffix the reason to use meta methods is I don’t want to add methods to model “namespace” 00:52
yoleaux SmokeMachine: I'll pass your message to Zoffix.
timotimo thumbs.static-thomann.de/thumb/bdb...21_800.jpg - something like this could be pretty cool, but ...
AlexDaniel timotimo: analog? What for?
timotimo for one if i had two of them i could use my feet instead of hands to mouse around the screen when my RSI's bad again 00:53
that thing? it sells for 140 euros
so ... :|
i'll hopefully also get a new chair, too ... which there's one i've got my eye on that costs just a bit less than this thing 00:54
AlexDaniel yeah, which is why I'm saying you should make one yourself :)
timotimo i'm not yet any good at building stuff 00:56
oh, i was meaning to try putting my usb joystick on the floor and using it with my feet 00:57
most of it is probably no use, but if i can at least hit one button on each side of the base and somewhat reliably move the stick, that could count for something
AlexDaniel actually… is there any software that'd snap on gtk buttons or something like that?
timotimo snap on, as in slow down the cursor when it's on a button? 00:58
AlexDaniel something like that, yeah
timotimo SmokeMachine: cool, you're using that same site i used for my recent perl6 tweet for the screenshot 00:59
though it'd be nice if you also linked to a plain text version so that vision-impaired people can read it, too
AlexDaniel as for building stuff, I can help. In fact it's likely I'd be making something like this anyway for my streaming setup 01:01
timotimo i've been hoping to one day do streaming for what feels like 10 years now, lol
i do already have a decent microphone! 01:03
Esca is there any reason perl6 would be a bad idea to use on a raspberry to drive a dot matrix thing?
i know it's probably not the most suitable but i have an assignment and i figured i may as well have fun with it 01:04
timotimo it takes a hell of a time to compile it on a raspberry pi, and it won't give you the jit compiler (because we currently only have one for x86_64) but other than that it should work
AlexDaniel Esca: I'd say it's possible, though keep in mind that it will run without JIT on an already slow rpi
01:04 andy`5 joined, andy`5 left
timotimo lemme quickly link you something 01:05
AlexDaniel you don't have to compile it though, can install directly from debian repos
though you'd need to add debian unstable repo for that
SmokeMachine timotimo: that makes sense! I’ll do that next time!
timotimo hum. i'm looking for a tweet and i can't seem to find it right now? 01:06
Esca no JIT meaning I have to compile then run, like a normal compiled language? 01:07
hm
shouldn't be a problem i think
AlexDaniel no, just means that it will be slower
timotimo Esca: twitter.com/zoffix/status/1003726969396236288
yeah, no difference in usage
just in run speed
01:09 fake_space_whale left
Esca the dot matrix does have to blink really fast to give the illusion of being on 01:09
but i'll give it a shot
thanks
timotimo you may want to build a low-level part in C that does the heavy-duty high-frequency stuff, and control it from perl6 to do stuff like animation or font rendering 01:10
01:11 sphrak5 joined, sphrak5 left
Geth doc: 9d2706f7b3 | (Will "Coke" Coleda)++ | doc/Type/Signature.pod6
whitespace
01:12
synopsebot Link: doc.perl6.org/type/Signature
01:13 cheese_cake__ joined
AlexDaniel controlling a dot matrix display from RPi is a challenge by itself 01:14
01:14 molaf left, p6bannerbot sets mode: +v cheese_cake__
AlexDaniel so dunno if it's a good idea 01:14
timotimo is it a rpi2 or 3?
AlexDaniel from github.com/hzeller/rpi-rgb-led-matrix
“If you see some regular flickering, make sure that there is no other process running on the system that could cause that. For instance, it is known that merely running top creates a faint flicker every second it updates”
timotimo not that i actually know the specs well enough
Esca 3
timotimo that does sound bad 01:15
Esca it's a very small dot matrix
5x7
timotimo especially since if you don't write your perl6 very cautiously, it could be that the garbage collector pauses trash performance every now and then
AlexDaniel “Also, the output quality is susceptible to other heavy tasks running on that computer - there might be changes in the overall brigthness when this affects the referesh rate.” 01:16
:)
timotimo well, doing PWM with bit-banging isn't fun anyway
AlexDaniel if I had to do it I'd much rather let a microcontroller handle that stuff 01:18
cheese_cake__ could someone help me with makign a desktop file for my program?
i want the myprogram:some_stuff protocol to be registered to call my program, but i'm having a bit of difficulty
AlexDaniel (any cheap arduino will do I think)
SmokeMachine I forgot it... how do I set an operator as tight as another operator? 01:19
timotimo cheese_cake__: are you following any kind of guide? 01:20
SmokeMachine I found it! thanks! equiv 01:21
timotimo AlexDaniel: what kind of streaming are you interested in doing?
cheese_cake__ timotimo: yes, but it doesnt seem to be working 01:22
AlexDaniel timotimo: it's IT-unrelated
:S ok that sounded weird 01:23
timotimo that's fine. maybe it's a gardening stream or something :)
AlexDaniel timotimo: it's sports. Sports.
01:23 aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh
timotimo cheese_cake__: i'm actually going to bed right now, but it'd probably help if you posted the link to the guide you're following and maybe a precise description of the misbehaviour you're seeing 01:24
01:24 p6bannerbot sets mode: +v aborazmeh
timotimo oh, now that's interesting 01:24
the bannerbot saw two joins and gave +v for the same nickname twice 01:25
AlexDaniel timotimo: I mean, currently it's very basic, but once I add all the transitions and everything I'm pretty sure I won't have enough hands to do all that
cheese_cake__ sorry I got it working
I needed to update the desktop database, that is all
timotimo aah
AlexDaniel: there's a product that has like a 4x4 matrix of little oled screen buttons, it only costs like a bazillion megadollars
AlexDaniel timotimo: and there's a camera that must be controlled constantly, so definitely some pedals can help 01:26
or an AI to pan & tilt the camera, that can work too :)
01:26 molaf joined
timotimo www.elgato.com/en/gaming/stream-deck - i lied, it's 5x3 01:27
[Coke] zef verison is zef info zef (ugh, why does this try to make a network connection?)
01:27 p6bannerbot sets mode: +v molaf 01:28 ZzZombo left 01:29 zakharyas joined 01:30 p6bannerbot sets mode: +v zakharyas
timotimo i wonder what kind of price you'd have to pay to build your own stream deck like device 01:30
since we're in the "build it yourself" headspace anyway
welp, i really ought to catch some sleep 01:31
seeya!
AlexDaniel good night o/ 01:32
01:40 Bucciarati left, Bucciarati joined 01:41 p6bannerbot sets mode: +v Bucciarati
AlexDaniel timotimo: the price is a lot of time :) 01:42
SmokeMachine .tell Zoffix just the precedence isn't working yet... www.irccloud.com/pastebin/tAK446K1/
yoleaux SmokeMachine: I'll pass your message to Zoffix.
cheese_cake__ what does this mean? You can't adverb $variable 01:45
geekosaur [Coke], I'd suspect ti's reprotingnot the runningversion btu the package version that can be installd 01:47
cheese_cake__, sounds like you did :$foo where that's not allowed 01:48
02:02 graphene left 02:03 graphene joined 02:04 p6bannerbot sets mode: +v graphene
cheese_cake__ geekosaur: i missed a comma lol 02:06
buggable New CPAN upload: Cro-RPC-JSON-v0.0.3.tar.gz by VRURG modules.perl6.org/dist/Cro::RPC::JSON:cpan:VRURG 02:16
02:20 ZzZombo joined, p6bannerbot sets mode: +v ZzZombo
cheese_cake__ perl is fun! 02:20
does perl 6 have a de-facto gui library? 02:26
02:31 cheese_cake__ left, cheese_cake__ joined 02:32 p6bannerbot sets mode: +v cheese_cake__ 02:43 aborazmeh left 02:52 graphene left 02:53 graphene joined 02:54 p6bannerbot sets mode: +v graphene 02:58 cheese_cake__ left 03:42 graphene left 03:43 graphene joined 03:44 p6bannerbot sets mode: +v graphene 04:15 vinay_ joined, p6bannerbot sets mode: +v vinay_ 04:16 vinay_ left 04:24 bpalmer left
SmokeMachine `.^create` means: `my $obj = Bla.new: |%pars; $obj.^save: :insert; return $obj` 04:37
04:44 lizmat left 04:54 curan joined, p6bannerbot sets mode: +v curan 04:58 lizmat joined, p6bannerbot sets mode: +v lizmat 04:59 graphene left 05:00 graphene joined 05:01 p6bannerbot sets mode: +v graphene 05:02 lizmat left 05:06 ufobat joined 05:07 p6bannerbot sets mode: +v ufobat 05:15 graphene left 05:16 graphene joined 05:17 p6bannerbot sets mode: +v graphene 05:25 jmerelo joined 05:26 p6bannerbot sets mode: +v jmerelo 05:27 molaf left 05:37 sena_kun joined, p6bannerbot sets mode: +v sena_kun 05:39 xinming left, xinming joined, Celelibi left 05:40 p6bannerbot sets mode: +v xinming 06:13 sno left 06:19 robertle joined 06:20 p6bannerbot sets mode: +v robertle 06:29 grondilu_ joined, domidumont joined 06:30 p6bannerbot sets mode: +v grondilu_
Geth doc: a886210e62 | (JJ Merelo)++ | doc/Language/list.pod6
Expands the "fixed size array" section

Indexing it also as shaped arrays, expanding a bit the examples, and adding the changes in 2018.09. Closes #2326
06:30
synopsebot Link: doc.perl6.org/language/list
06:30 jmerelo left, p6bannerbot sets mode: +v domidumont 06:32 grondilu left 06:34 erana_ left 06:38 graphene left 06:39 graphene joined 06:40 p6bannerbot sets mode: +v graphene 06:51 Esca left 06:52 danger8926 joined, danger8926 left 07:06 Actualeyes left 07:07 abraxxa joined 07:08 p6bannerbot sets mode: +v abraxxa 07:16 finanalyst joined 07:17 p6bannerbot sets mode: +v finanalyst 07:18 Summertime left 07:19 Summertime joined, p6bannerbot sets mode: +v Summertime
finanalyst good time of day. Trying to set up perl6 on a hosted server. Configure.pl ends OK. During make, reaches the 'takes long time' part, Stage start ok. But at stage parse, I get MoarVM panic Memory allocation failed; count not allocated xxx bytes. The xxx is different three times I tried, eg., 15840, then 48, then 1024 07:21
07:21 acksys joined, acksys left
finanalyst I will probably need to ask hoster support, but some idea about the problem would help. 07:22
moritz it means you don't have enough RAM to compile rakudo 07:24
finanalyst so why is it different each time? 07:28
moritz this is just speculation, but either the multithreadedness introduces some non-determinism 07:32
or maybe the memory usage by other processes on the machine varies over time, leading to rakudo dying sooner or later
finanalyst Seems to me it's probably multi-user problem since I am using a virtual server. I'm writing to support staff. It's possible that I can use a snap package. 07:34
07:46 dakkar joined 07:47 p6bannerbot sets mode: +v dakkar
jast virtual server soltuions sometimes give you some extra memory temporarily... but "multi-user problems" typically refers to other processes within the same virtual server, e.g. init, syslog, mail, ... 07:47
07:49 scimon joined, p6bannerbot sets mode: +v scimon
El_Che finanalyst: what OS do you run? 07:50
finanalyst: do you have root to install packages?
07:51 erana_ joined, p6bannerbot sets mode: +v erana_
masak finanalyst: hi! long time no see \o 07:52
08:03 robertle left 08:05 robertle joined 08:06 p6bannerbot sets mode: +v robertle 08:23 robertle_ joined, lizmat joined, p6bannerbot sets mode: +v lizmat, p6bannerbot sets mode: +v robertle_ 08:24 robertle1 joined, p6bannerbot sets mode: +v robertle1, robertle left 08:25 Ven` joined, p6bannerbot sets mode: +v Ven` 08:33 domidumont left 08:34 domidumont joined 08:35 p6bannerbot sets mode: +v domidumont 08:36 Xliff_ joined 08:37 p6bannerbot sets mode: +v Xliff_ 08:38 Xliff left 08:40 ball_ joined, p6bannerbot sets mode: +v ball_ 08:42 ball_ left 08:49 graphene left 08:51 graphene joined, p6bannerbot sets mode: +v graphene
ZzZombo m: class A { has $.foo = slack { ... } } 08:57
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
slack used at line 1
lizmat ZzZombo: use Object::Delayed 09:03
available at a local CPAN mirrot :-)
*mirrir
argh
*mirror
lizmat should get another cuppa tea
09:11 rindolf joined 09:12 pmurias joined, p6bannerbot sets mode: +v pmurias, p6bannerbot sets mode: +v rindolf
pmurias hi 09:12
09:12 zakharyas left 09:30 sotona joined, p6bannerbot sets mode: +v sotona 09:34 sotona left 09:41 Nightcinder14 joined, Nightcinder14 left 09:45 ExtraCrispy left
masak hi, pmurias 09:52
lizmat: clearly, a "CPAN mirrot" is where you'd go to download Parrot back in the day :)
whereas "mirrir" sounds like Tolkien Elvish for some reason
09:53 thundergnat left
lizmat
.oO( its good to be amongst mellons )
09:53
masak .oO( "I was carrying a melon" -- Dirty Dancing ) 09:57
09:59 gregf_ joined, p6bannerbot sets mode: +v gregf_ 10:04 andrzejku left 10:05 HaraldJoerg joined 10:06 p6bannerbot sets mode: +v HaraldJoerg
tyil is there an easy way to split up a string into a list of strings, each 5 characters long? 10:09
sena_kun m: say '12345123451234512345'.comb(5).map(*.join) 10:10
camelia (12345 12345 12345 12345)
sena_kun m: say '123451234512345123451234'.comb(5).map(*.join)
camelia (12345 12345 12345 12345 1234)
tyil neat
thanks :>
sena_kun m: say '123451234512345123451234'.comb(5).>>join
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing dot on method call
at <tmp>:1
------> 3ay '123451234512345123451234'.comb(5).>>7⏏5join
expecting any of:
postfix
sena_kun ouch. :S
cannot do something better locally, as my rakudo is broken now. :S 10:11
tyil I was trying it with a regex (/. ** 5/) but that seemed to drop the final part
but with a simple number it works as expected
sena_kun I believe regex will be more costly.
tyil that for sure
lizmat m: dd '12345123451234512345'.comb(5)
camelia ("12345", "12345", "12345", "12345").Seq
lizmat not sure why you would need the .join ? 10:12
sena_kun hm...
m: say '123451234512345123451234'.comb(5)
camelia (12345 12345 12345 12345 1234)
sena_kun wow, indeed.
lizmat++
10:13 ZzZombo left
sena_kun that was not a nice thinko. :S 10:13
10:14 Ven` left 10:15 finanalyst left 10:43 gregf_ left, ExtraCrispy joined 10:44 p6bannerbot sets mode: +v ExtraCrispy 10:46 leont joined 10:47 p6bannerbot sets mode: +v leont
masak m: dd '12345123451234512345'.comb(/ . ** 1..5 /) 10:48
camelia ("12345", "12345", "12345", "12345").Seq
masak I guess it's nice and dwimmy that 5 gives the same as that regex above... 10:49
...but I can't help thinking that it'd been more consistent if 1..5 (the range) gave that result, and a sole 5 dropped the final 4-group, just like the corresponding regex does 10:50
lizmat if you feel that strongly about it, then by all means, make an issue for it 10:56
the code changes would be minimal
masak dunno about "feel that strongly" :) 10:57
we probably have bigger inconsistencies to fry
lizmat perhaps add a :partial named param that is True for compatibility reasons ? 10:59
masak I would consider that worse than the current state 11:00
but you're right that the change would break backwards compatibility, and that might be reason enough not to make it
lizmat afaik, the current behaviour exists since before Christmas
so it'd definitely 6.c behaviour 11:01
masak I wonder if the ecosystem depends on the current behavior somewhere
pmurias the docs mention that a integer value to comb behaves as rx/. ** {$matcher}/ 11:04
moritz I know I've used that behavior in my own code 11:06
(though probably darkpan, not public anywhere)
masak pmurias: so implementation/docs are inconsistent? I wonder if there are any tests? 11:08
moritz m: say 'abc'.comb(2) 11:12
camelia (ab c)
11:24 ZzZombo joined, p6bannerbot sets mode: +v ZzZombo
pmurias masak: yes they are inconsistent 11:32
masak: the only test I found is
m: say 1337.comb(2)
camelia (13 37)
masak haha
then, in a sense, it's not a breaking change to fix this
since the test suite *is* the specification 11:33
I knew I would have use for that some day!
masak hopes he is not a little mind of which foolish consistency is the hobgoblin
11:38 pmurias left 11:39 pmurias joined, p6bannerbot sets mode: +v pmurias 11:40 Roamer` joined 11:41 p6bannerbot sets mode: +v Roamer`, Ven` joined 11:42 p6bannerbot sets mode: +v Ven`
pmurias masak: it's a breaking change in regards to our "de facto specification" 11:42
masak yes. question is (a) how much of ecosystem/darkpan that affects, and (b) what our policy is around such changes. 11:43
I'm fine with the policy being "we prefer stability to consistency" -- in a way, that's a responsible stance when you have users 11:44
lizmat looks like the mention of being the same as . ** N was documented May 2018 11:45
pmurias is the . ** N semantics more useful than the . ** 1..N semantics 11:51
masak to me, it feels like the kind of thing where no matter which one you choose, you need to think through what semantics you want 11:52
(and this was not clear to whoever wrote that test)
lizmat m: dd "abcdefghij".comb( / . 3. .. 7/ ) 11:53
camelia ().Seq
lizmat m: dd "abcdefghij".comb( / . 3 .. 7/ )
camelia ().Seq
lizmat huh?
jast **
masak missing **
lizmat ah, duh 11:54
m: dd "abcdefghij".comb( / . ** 3 .. 7/ )
camelia 5===SORRY!5=== Error while compiling <tmp>
Spaces not allowed in bare range.
at <tmp>:1
------> 3dd "abcdefghij".comb( / . ** 3 ..7⏏5 7/ )
lizmat m: dd "abcdefghij".comb( / . ** 3..7/ )
camelia ("abcdefg", "hij").Seq
lizmat m: dd "abcdefghij".comb( / . ** 4..7/ )
camelia ("abcdefg",).Seq
pmurias masak: the test was added after adding the .comb to Cool not after the Int variant of Comb was implemented 11:55
masak ok, hm
lizmat m: dd "abcdefghij".comb( / . ** 0..7 / ) # also interesting
camelia ("abcdefg", "hij", "").Seq
pmurias misses the old test-to-"spec" connecting smartlinks
masak pmurias: those were the days :) 11:56
but that broke already during the Pugs/au era, I remember
pmurias masak: the passing/failing integration failed first 11:57
masak right
lizmat notices that no issue has been made yet
11:59 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix masak: I think all of the "consistency" stuff (at least for stuff that isn't obscure) should be tagged with "consistency" label and all of it taken care of in one fell swoop, rather than rushing to modify stuff as soon as we think something's inconsistent 12:00
masak: that's a lesson learned from GitHub changing little bit here and there for 2 years now, and it looks like shit now and all of that changing is annoying. I don't want our users thinking we're changing everything all the time from under them 12:01
masak Zoffix: I hear you. 12:02
Zoffix: ...we just need to consider whether the cure is better than the disease in this case, or worse :)
masak .oO( introducing Perl 6 3000 ) :P
Zoffix masak: also, I'm -1 on that change because: (a) it's already the way it is and I'm also fairly sure I have code that uses that pattern; (b) because old code will still work, but will now give wrong results; (c) because now users will have a potential to intro a bug where they write `5` instead of `1..5` without realizing they're losing the end; and (d) it's still inconsistent with the way .rotor works. The 12:03
.rotor doesn't take a range, it takes :partial adverb
Some of the other inconsistencies we have temp.perl6.party/inconsistencies.txt github.com/rakudo/rakudo/issues?q=...onsistency 12:05
lizmat hence my suggestion for :partial
Zoffix It's quite a bit, which is why IMO we shouldn't be doing them all piece-meal
lizmat defaulting to True for compatubiity
Zoffix lizmat: so it'd be the same argument, but defaulting to the opposite of what .rotor does? I fail to see how that improves things.
lizmat it would be compatible :-) 12:06
Zoffix heh
masak lizmat: introducing an adverb which defaults to True automatically has a -1 starting score, design-wise 12:07
Zoffix &
12:07 Zoffix left
lizmat masak: I agree, just listing options 12:07
masak and making it backwards-compatible but *inconsistent with .rotor* means we'd be fixing one inconsistency but introducing another... :) 12:08
12:13 graphene left 12:15 graphene joined, p6bannerbot sets mode: +v graphene 12:23 zakharyas joined, p6bannerbot sets mode: +v zakharyas 12:26 josePhoenix27 joined 12:27 p6bannerbot sets mode: +v josePhoenix27 12:30 josePhoenix27 left
AlexDaniel masak: yeah, the policy is “don't break modules and other stuff, please” :) 12:44
if you look at the past few releases, we've been trying to do that even if modules depended on buggy/incorrect behavior 12:45
masak: but you should open a ticket for sure 12:46
so changing this (if we decide to change it) will have to go through a deprecation cycle, I think 12:50
pmurias the docs need to be fixed even if we are keeping the semantics
AlexDaniel: you can you deprecate that change?
12:51 Ven` left
lizmat masak: feelings about *adding* the Str.comb(Range) candidate ? 12:51
12:52 leont left, mcmillhj joined, Ven` joined 12:53 p6bannerbot sets mode: +v mcmillhj, p6bannerbot sets mode: +v Ven`, hamhu3 joined 12:54 p6bannerbot sets mode: +v hamhu3
AlexDaniel pmurias: yes, why not? 12:55
well, maybe not, but why :) 12:56
pmurias because the change is going from $str.comb(5) to $str.comb(5)
AlexDaniel: we can deprecate stuff that will be removed, I don't know how to deprecate things that will work slightly differently 12:59
AlexDaniel yes, but, for example, we can start making it give a warning in v6.d, then forbid it in v6.e, and then reintroduce it in v6.f
but technically I have no idea how to do that because quantifiers are parsed in nqp, right? 13:00
pmurias thought about such a scheme but it doesn't seem sane at all
AlexDaniel: the dicussion is about a multi taking an Integer instead of an regex 13:01
AlexDaniel rereads
pmurias lizmat: re adding a Str.comb(Range) the question is if it would be used commonly enough that $str.comb(/. ** {$range}) is not good enough 13:05
AlexDaniel greppable6: comb\(\d\) 13:06
greppable6 AlexDaniel, 2 lines, 2 modules: gist.github.com/140d38ec6c8eae319a...5a6c989fc0
AlexDaniel greppable6: comb\(\d+\)
greppable6 AlexDaniel, 2 lines, 2 modules: gist.github.com/4ce4398138924fcbe4...fbb2845ac1
AlexDaniel greppable6: comb: \d+
greppable6 AlexDaniel, 1 line, 1 module: gist.github.com/64a79cbfef1d158f5d...8ec53afd3b
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2018/09/24/...-than-two/ 13:07
AlexDaniel pmurias: I see. Sry just woke up :)
13:07 zakharyas left
AlexDaniel pmurias: anyway we shouldn't just change the behavior in place without any kind of a generated warning, so it may be insane but another option is not really an option, IMO 13:08
but also we'd hit R#1289 again, right?
synopsebot R#1289 [open]: github.com/rakudo/rakudo/issues/1289 [6.e] Implement a Way to Know Caller's Language
lizmat pmurias: except that ("foo" x 100).comb(3) is about 15x faster than ("foo" x 100).comb( / . ** 3 / ) 13:11
13:12 sno joined 13:13 p6bannerbot sets mode: +v sno
AlexDaniel lizmat: then we should optimize / . ** 3 / into 3 :) 13:13
lizmat and with the current implementation, that would change the semantics (which is why this all got started) 13:15
jast that's a very, very specific optimization... :) 13:16
13:17 sno left
lizmat pretty sure Perl 5 has many of those special cases optimized in different code paths 13:17
AlexDaniel right ** 1..3 into 3… :S 13:18
jast it's . ** (something) specifically... the same optimization wouldn't apply to foo ** (something) 13:19
13:22 Hummer120074 joined, Hummer120074 left 13:28 avar left, avar joined, avar left, avar joined, p6bannerbot sets mode: +v avar 13:29 p6bannerbot sets mode: +v avar 13:31 titsuki joined 13:32 regreg joined, p6bannerbot sets mode: +v titsuki 13:33 p6bannerbot sets mode: +v regreg, mcmillhj left 13:35 noganex left 13:39 mcmillhj joined 13:40 p6bannerbot sets mode: +v mcmillhj 13:55 HaraldJoerg1 joined, p6bannerbot sets mode: +v HaraldJoerg1 13:56 HaraldJoerg left 14:08 ajr joined, p6bannerbot sets mode: +v ajr, ajr is now known as Guest99536 14:10 curan left, DoctorD9018 joined, DoctorD9018 left, HaraldJoerg1 is now known as HaraldJoerg 14:12 mcmillhj_ joined
Guest99536 I want a job to run (in *nix) if there is no program on $PATH with a particular name, (e.g. foob). In P5, 'die unless system("which foob") ' works. What's the best P6 equivalent? 14:12
14:13 mcmillhj_ left 14:15 mcmillhj left
scimon die unless QX("which foob") ? 14:15
Guest99536 Actually, it's "which foob 2>/dev/null", because the error messages are irrelevant
jnthn-nomsg die unless run("which", "bash", :!out) 14:17
The :!out suppresses stdout
Guest99536 @jnthn-nomsg Should that be run("which foob", &c? 14:20
AlexDaniel no, because it doesn't go through shell
14:20 kurahaupo left, kurahaupo joined
jnthn-nomsg What AlexDaniel said :) 14:20
14:21 p6bannerbot sets mode: +v kurahaupo
jnthn-nomsg There's also a shell, but run gets the shorter name and is encouraged more, 'cus it's the safer thing 14:21
14:22 Ven` left
Guest99536 1. How does it know it's "foob" I'm trying to find, and 2. what has set $PATH there? 14:23
jast the example was for bash, not foob. adjust accordingly. 14:24
and, well, PATH almost always comes from the environment of the parent process
AlexDaniel which you can also change by passing :env 14:25
tyil Guest99536: any objection to a module? github.com/azawawi/perl6-file-which 14:26
Guest99536 (to set the context, I've a P6 script I want to fail if an executable foob exists on $PATH, and continue on its merry way if it doesn't. If there's a more elegant way to do that, Ipray tell. 14:27
14:28 modews joined, modews left
tyil use File::Which; which("foob") and die("found foob"); 14:28
or `use File::Which; die("found foob") unless which("foob"); 14:29
jast and here's how to golf it without spawning processes:
m: say "yay" if %*ENV<PATH>.split(':')>>.IO>>.add('bash')>>.e.any
camelia yay
Guest99536 @tyil thanks, that looks very promising. 14:30
jast my golfed version doesn't work on windows btw ;) 14:31
Guest99536 Neither do I. :-)* 14:32
bye
tyil good luck with your code :) 14:33
Guest99536 exit
jast well, I'm not terribly familiar with Perl6, just found a portable version that is shorter, too
m: say "yay" if $*SPEC.path>>.IO>>.add('bash')>>.e.any 14:34
camelia yay
jast still golfy, of course
14:35 Ven` joined, p6bannerbot sets mode: +v Ven` 14:38 Guest99536 left 14:46 Possum joined, p6bannerbot sets mode: +v Possum 14:47 domidumont left 14:48 leont joined 14:49 p6bannerbot sets mode: +v leont 14:50 megagarbage joined, megagarbage left 14:59 itaipu joined 15:00 p6bannerbot sets mode: +v itaipu 15:07 Alina-malina5 joined, Alina-malina5 left 15:10 titsuki left 15:15 noganex joined 15:16 p6bannerbot sets mode: +v noganex 15:17 dakkar left 15:25 fake_space_whale joined 15:26 domidumont joined, p6bannerbot sets mode: +v fake_space_whale, p6bannerbot sets mode: +v domidumont 15:28 domidumont1 joined 15:29 p6bannerbot sets mode: +v domidumont1
scimon Just to check for some notes on a talk. When v6.d is released will it be backwards compatible with v6.c? 15:30
15:30 domidumont left
lizmat v6.d is a definition 15:31
if you have a rakudo compiler that supports v6.d, then if you use "use v6.c" it should be just like v6.c
scimon That's what I figured.
lizmat is my understanding of how this will work
diakopter *boggles* 15:32
lizmat so: in short, the answer is yes
scimon :)
El_Che or better, we hope so
scimon Current plan is to give a talk at LPM next month on using Perl6 for command line scripts.
lizmat scimon: cool! 15:33
15:33 mcmillhj joined
El_Che scimon: I was thinking of the same thing 15:33
had a blog post about that that never got published
drop the url if streamed or recorded 15:34
15:34 p6bannerbot sets mode: +v mcmillhj
scimon Will do. 15:34
El_Che I moved my zfs snapshotting setup from overcomplicated shell to perl6 15:37
happy about it
15:42 Ohelig joined, Ohelig left 15:59 Lengsdorfer20 joined, Lengsdorfer20 left 16:16 Xliff_ left 16:18 robertle1 left, robertle_ left 16:25 imcsk8 left
Geth marketing: 73a3bbf662 | (Zoffix Znet)++ | 17 files
Add Atomics 6.d Teaser / ID 1537803105
16:29
16:29 Zoffix joined, p6bannerbot sets mode: +v Zoffix
El_Che scimon: is that the London Perl Workshop? (I read it was postponed) 16:30
lizmat 24 nov 16:31
scimon This is the Perl Mongers Meetup.
I'm going to do something at LPW too. Working out what.
lizmat Zoffix: should that show on marketing.perl6.org ?
El_Che scimon: cool to witness the enthousiasm you jumped with into p6 16:32
Zoffix lizmat: I think so. Prolly in ~5-10 minutes when cron picks it up
scimon It's a great language. And if there's one thing I can do it's enthusiasm. 16:33
16:33 imcsk8 joined
scimon Signing off. 16:33
16:33 scimon left
El_Che scimon: cool attitude 16:33
16:34 p6bannerbot sets mode: +v imcsk8
Zoffix hm, for some reason didn't take it automagically. had to manually restart the app 16:37
damn, colour's messed up :S 16:38
16:39 fake_space_whale left
Zoffix eh, so be it 16:39
Geth marketing: 19470c15c6 | (Zoffix Znet)++ | 7 files
Fix bg colorshift on Atomics teaser
16:43
Zoffix In Perl 6 6.d you're now able to harness the Power of The Atom! Thread-safe atomic operations on a new atomicint type! marketing.perl6.org/id/1537803105/pdf_digital 16:46
16:48 Kaiepi joined 16:49 p6bannerbot sets mode: +v Kaiepi
leont That syntax will surprise people 16:49
Zoffix We don't mind.
16:50 Zoffix left
leont Not sure I understand the reson for it, can't that translation be made by the compiler? 16:51
timotimo what translation? 16:52
tyil leont: there's a function using only ascii characters that one can use instead
(I'm not particularly fond of the atom emoji in the atomic operations tbh)
leont The thing is declared as an atomicint, a ++ on it should clearly be an atomic++
tyil that would make more sense to me as well 16:53
timotimo if you're passing an int that's not compatible with atomic operators and you just ++ it, there won't be an error, though
it'll just silently do a non-atomic ++ 16:54
tyil we have all these objects that do the right thing in other situations
timotimo we also don't concatenate strings when you + them
even though "the variables you're passing are clearly strings"
also, i think it's useful for atomic operations to stand out 16:55
lizmat timotimo: wasn't "atomicint" just about the size of the int ?
leont Concatenation is a fundamentally a different thing. Atomic operations aren't fundamentally different from their non-atomic siblings.
timotimo yes
16:57 HaraldJoerg left, HaraldJoerg joined 16:58 p6bannerbot sets mode: +v HaraldJoerg
timotimo yes to atomicint being "only" about the size of an int 16:59
i do think we can differentiate between int64 and atomicint, though 17:00
17:05 Zoffix joined, p6bannerbot sets mode: +v Zoffix 17:06 imcsk8 left
Zoffix leont: you'd have to unspace `atomic++` from the variable each time then 17:06
So the "clearly should be" is clearly not clearly.
leont Zoffix: that's not quite what I meant
Zoffix leont: what did you mean? 17:07
leont That I see no reason for «atomicint $foo; ++$foo» not to DWIM 17:08
17:08 imcsk8 joined
Zoffix leont: ah, that regular ++ would be automagically an atomic++. Well, automic ++ is more expensive. If you're not doing it across threads, you're just wasting valuable resources doing useless labour 17:08
17:09 p6bannerbot sets mode: +v imcsk8
Zoffix m: my atomicint $x; {for ^2000_000 { $x⚛++ }; say now - ENTER now} 17:09
camelia 0.5193665
Zoffix m: my atomicint $x; {for ^2000_000 { $x++ }; say now - ENTER now}
camelia 0.2631085
leont Then don't use an atomicint?
SmokeMachine Zoffix: but, that way, wouldnt be better to create a way to not atomic increment on atomicint but let the ++ be atomic? 17:10
Zoffix leont: but I'm not writing a single line of code with it.
SmokeMachine: I don't understand what you mean.
leont: I mean, I have threaded writes and non-threaded ones. 17:11
SmokeMachine atomicint $a; $a++ #`{atomic}; $a.not-atomic-increment #`{not atomic}
leont You've just proved you dan do 2 million of them in a few tens of a second
*can
I think it's more than silly to worry about that performance
SmokeMachine atomicint $a; $a++; $a.not-atomic-increment # the first would be atomic and the last (with another name) wouldnt 17:12
leont If that's you're performance bottleneck, you probably should be using C or (heaven forbid) Fortran
*your
[Coke] wears half of a larry costume to work today.
Zoffix SmokeMachine: there aren't any methods on native types.
SmokeMachine $a nonatomic++, or something else 17:13
Zoffix SmokeMachine: that's a syntax error
You'd need an unspace.
And we're back at fancy unicode symbols or subs, and so we're back where we started, except now we also have an inconsistency in operators 17:14
Do any of you even used these ops? 17:15
*ever 17:16
People live to moan and complain about everything the can, but I doubt any of these problems you're throwing out are real.
s/live/love/;
leont I have used them in other languages
Zoffix m: multi postfix:<♥> (atomicint $x) { say "here" }; multi postfix:<♥> (int $x) { say "there" }; my int $x; $x♥ 17:17
camelia Ambiguous call to 'postfix:<♥>(Int)'; these signatures all match:
:(atomicint $x)
:(int $x)
in block <unit> at <tmp> line 1
Zoffix Looks like with the current way it's implemented, you can't differentiate between an atomicint and normal one
leont That's surprising 17:18
Zoffix You can't differentiate between, say, int32 and int64 either
leont Then I don't understand how they're implemented. 17:19
Is that an implementation artifact or language design? 17:20
Zoffix I think it's by-design that they are the same weight in dispatch
m: say int64 ~~ int32
camelia False
Zoffix m: say int64 ~~ int64
camelia True
SmokeMachine that's a good reason... 17:21
Zoffix m: multi postfix:<♥> ($x where atomicint) { say "here" }; multi postfix:<♥> ($x where int) { say "there" }; my int $x; my atomicint $y; $x♥; $y♥
camelia Cannot resolve caller postfix:<♥>(0); none of these signatures match:
($x where { ... })
($x where { ... })
in block <unit> at <tmp> line 1
Zoffix weird
m: my int64 $x; say $x ~~ int64
camelia False
SmokeMachine m: say atomicint ~~ int
camelia False
Zoffix s: &infix:<~~>, \(atomicint, int) 17:22
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/2bdf...u.pm6#L950
Zoffix s: int, 'ACCEPTS', \(atomicint)
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/2bdf...ny.pm6#L20
17:22 sno joined 17:23 p6bannerbot sets mode: +v sno, domidumont1 left
leont I guess boxing is messing this up :-/ 17:23
tadzik hmm 17:24
m: for 1..3 Z=> [4, 5, 6] -> $x { say $x.WHAT } # no surprise here
camelia (Pair)
(Pair)
(Pair)
Zoffix Even if I try an nqp op, it's still giving those results
tadzik m: for 1..3 Z=> [4, 5, 6] -> $k, $v { say $k } # but this surprises me
camelia 1 => 4
Too few positionals passed; expected 2 arguments but got 1
in block <unit> at <tmp> line 1
tadzik was pair unpacking like that never a thing?
leont m: my int $x; {for ^2000_000 { $x++ }; say now - ENTER now} 17:25
camelia 0.26520674
leont m: my Int $x; {for ^2000_000 { $x++ }; say now - ENTER now}
camelia 0.15650947
Zoffix R#2316 17:26
synopsebot R#2316 [open]: github.com/rakudo/rakudo/issues/2316 [question] Confusing typecheck results with native types
Zoffix releases: for 1..3 Z=> [4, 5, 6] -> $k, $v { say $k }
committable6 Zoffix, ¦releases (33 commits): «1 => 4␤Too few positionals passed; expected 2 arguments but got 1␤ in block <unit> at /tmp/enqtxSPOFL line 1␤␤ «exit code = 1»» 17:27
tadzik I take that as a yes :)
hrm
Zoffix m: for 1..3 Z=> [4, 5, 6] -> (:$key, :$value) { say $key }
camelia 1
2
3
tadzik aha! :) Thanks Zoffix 17:28
Zoffix tadzik: you can see how stuff unpacks by looking at their .Capture method
leont If one maps int/atomicint to a special container type, then the performance characteristics and the explicit ⚛ operators suddenly do make sense
*mentally maps
Zoffix s: &postfix:<++>, \(my int $x) 17:29
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/2bdf...t.pm6#L246
SmokeMachine m: for 1..3 Z [4, 5, 6] -> [$k, $v] { say $k }
camelia 1
2
3
Zoffix Added that one as a comment on R#1491 github.com/rakudo/rakudo/issues/14...-424058269 17:30
synopsebot R#1491 [open]: github.com/rakudo/rakudo/issues/1491 [perf][weird] Non-void $i++ is somehow 13% faster than ++$i
Zoffix
.oO( for 1..3 Z=> [4, 5, 6] { say [ $(:key, $(:value ] } )
17:33
trigils for explicit signature unpacking unpacking :P
17:35 Zoffix left 17:38 patrickb joined 17:39 p6bannerbot sets mode: +v patrickb
leont Also, why isn't there an atomic uint? 17:40
I would expect that to be more commonly needed
17:41 Xliff joined 17:42 Ven` left, p6bannerbot sets mode: +v Xliff, pecastro joined 17:43 p6bannerbot sets mode: +v pecastro 17:44 molaf joined, p6bannerbot sets mode: +v molaf 17:47 domidumont joined 17:48 p6bannerbot sets mode: +v domidumont 17:56 mahafyi joined
leont Is there any helper function to automatically turn a string into an IntStr/RatStr/NumStr if appropriate? 17:57
17:57 p6bannerbot sets mode: +v mahafyi
Xliff m: 14.IntStr.say 17:57
camelia No such method 'IntStr' for invocant of type 'Int'
in block <unit> at <tmp> line 1
timotimo m: val(14).^name.say
camelia Value of type Int uselessly passed to val()
Int
in block <unit> at <tmp> line 1
leont The *if appropriate* is the tricky bit
Xliff m: 14.Str.^name
camelia ( no output )
Xliff m: 14.Str.^name.say
camelia Str
timotimo m: val("14").^name.say
camelia IntStr
geekosaur leont, Ithk your'e thnkingabout it wrong. atomicint *is* what youre thinking of
Xliff m: val("1/10").^name.say 17:58
camelia RatStr
leont timotimo: thanks :-)
geekosaur "atomic" might conceivably be a role, btu then you hae to figure out how to make it abstract when it necessarilyneeds to be concrete to be useful
or even to exist for that matter
timotimo you can't apply roles to native integers :S
geekosaur that woudl do it, yes 17:59
leont «is atomic» would be awesome, but yeah I can see how that would be problematic
geekosaur so you need a type to get this at all.
leont geekosaur: I'm not sure where you think I disagree with you 18:00
m: val("½").^name.say # is this deliberate?
camelia Str
timotimo that doesn't seem right 18:01
m: say < ½ >.^name
camelia Str
geekosaur the qyestion 'is there an atomic uint' implies that atoncint isn't it
timotimo m: say ½.^name
camelia Rat
geekosaur *atomicint
(note that at machine level, unsigned is not a type; it is what operations you use) 18:02
leont Possibly I'm thinking to much as a C/C++ programmer
geekosaur whichis why nqp has a bunch of confusions in that area, beause it sometimes doesn't propagate the intent that it be intrpeted as signed vs. unsigned and has to guess as a result
timotimo it often turns things to num and back for no reason, too 18:04
tony-o .
i missed something and can't scroll back far enough :-/ 18:05
geekosaur I think: 2018 Sep 22 21:45:47 <AlexDaniel>tony-o, timotimo: so what's the plan with JSON::Fast? 18:06
timotimo i've got no problem with grabbing JSON::Fast and putting it in R::I 18:09
18:09 sotona joined, p6bannerbot sets mode: +v sotona 18:21 Zoffix joined, p6bannerbot sets mode: +v Zoffix
Zoffix leont: yes, val doing that for No chars is on-purpose. Use unival to get its numeric value 18:21
tony-o: we got logs: colabti.org/irclogger/irclogger_log...09-24#l911 18:22
18:25 sauvin left
Geth doc: d6dde6955a | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Str.pod6
Fix bad URL
18:27
synopsebot Link: doc.perl6.org/type/Str
18:30 Celelibi joined 18:31 vaibhavsagar13 joined, vaibhavsagar13 left, p6bannerbot sets mode: +v Celelibi
leont I've been thinking a bit more about atomicint 18:33
I'm not seeing the point of the type when we also have the explicit operators/functions (and vice-versa)
Zoffix The type guarantees there'll always be an int sized suitably for atomic operations. 18:35
Finally found the commit with BDFL's ruling for No chars in val: github.com/rakudo/rakudo/commit/e28305c
Geth doc: 66e23ab477 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Str.pod6
Document Str.Numeric uses &val semantics
18:37
synopsebot Link: doc.perl6.org/type/Str
leont And how would an int not be appropriately sized? 18:38
Geth doc: 7f8ac85a19 | (Zoffix Znet)++ (committed using GitHub Web editor) | doc/Type/Str.pod6
Document &val does not convert No/Nl chars by design

  colabti.org/irclogger/irclogger_log...07-04#l931
  github.com/rakudo/rakudo/commit/e2...6d25995a90
lizmat m: my in8 $a # improperly sized for atomic actions 18:39
camelia 5===SORRY!5===
Type 'in8' is not declared. Did you mean 'int'?
at <tmp>:1
------> 3my in87⏏5 $a # improperly sized for atomic acti
Malformed my
at <tmp>:1
------> 3my7⏏5 in8 $a # improperly sized for atomic
lizmat m: my int8 $a # improperly sized for atomic actions
camelia ( no output )
lizmat
.oO( I need a new keyboard )
Zoffix leont: on MoarVM, on 32bit boxes `int` is still 64bit, but atomicint should be 32bit
m: say atomicint.Range 18:40
camelia -Inf^..^Inf
Zoffix dat a bug eh?
s: Int, 'Range', \()
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/b537...t.pm6#L196
leont I see
lizmat Zoffix: an oversight, I would say
Zoffix R#2317 18:41
synopsebot R#2317 [open]: github.com/rakudo/rakudo/issues/2317 atomicint.Range lies
Zoffix Yeah, `my atomicint $x; $x = 2**31; say $x` is -2147483648 on my 32-bit box, but 2147483648 on 64-bit 18:43
Uh, which is another bug. Assignment is ment to throw not overflow 18:44
leont What else should it do?
tobs m: multi sub postfix:<(atomic++)> (atomicint \x) { x⚛++ }; my atomicint $x = 42; say $x(atomic++); say $x
camelia Cannot resolve caller postfix:<⚛++>(Int); none of these signatures match:
(atomicint $target is rw --> atomicint)
in sub postfix:<(atomic++)> at <tmp> line 1
in block <unit> at <tmp> line 1
lizmat Zoffix: native int are *not* supposed to throw on overflow/underflow 18:45
Zoffix lizmat: they throw if you assign too large a value, but overflow if you mutate it into overflow (like $x++) 18:46
18:46 realrokka_ joined
Zoffix m: my int $x = 2**65 18:46
camelia Cannot unbox 66 bit wide bigint into native integer
in block <unit> at <tmp> line 1
18:46 realrokka_ left
lizmat m: my atomicint $x = 2**65 18:46
camelia Cannot unbox 66 bit wide bigint into native integer
in block <unit> at <tmp> line 1
Zoffix m: my int $x = 2**63; $x += 2**64; dd $x
camelia Cannot unbox 64 bit wide bigint into native integer
in block <unit> at <tmp> line 1
Zoffix m: my int $x = 2**63-1; $x += 2**62; dd $x
camelia Cannot unbox 64 bit wide bigint into native integer
in block <unit> at <tmp> line 1
Zoffix Maybe += is treated as assignment
Looks like throwage happens only when you go over 64 bit — regardless of the type used 18:47
m: my int8 $x = 500
camelia ( no output )
Zoffix m: my int8 $x = 2**64
camelia Cannot unbox 65 bit wide bigint into native integer
in block <unit> at <tmp> line 1
Zoffix And same for atomicint. Throws over 64bit, but overflows on my 32bit box if it's over 32bit but still under 64bit 18:48
diakopter sounds like atomicint is using the 32bit atomic instructions
18:50 sotona left
Zoffix R#2318 18:51
synopsebot R#2318 [open]: github.com/rakudo/rakudo/issues/2318 Size doesn't matter for native assignment when deciding to throw
Zoffix There's also RT#127409 18:52
18:52 AlexDaniel left
synopsebot RT#127409 [new]: rt.perl.org/Ticket/Display.html?id=127409 [BUG] Inconsistencies and Bugs in Native Types Behaviours 18:52
18:52 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel
El_Che The irony of unicode operators is that a unicode symbol probably can most aptly express what I feel (🤔) 18:53
Zoffix u:
unicodable6 Zoffix, U+0020 SPACE [Zs] ( )
Zoffix The irony of unicode operators is that despite being a proponent of them, my terminal doesn't render a lot of stuff :)
El_Che hehe 18:54
18:54 Zoffix left
tobs m: multi sub postfix:<(atomic++)> (atomicint $x is rw) { $x⚛++ }; my atomicint $x = 42; say $x(atomic++); say $x # aha! 18:55
camelia 42
43
tobs it's cool that even postfix operators can use parens 18:56
until the variable is sigilless 18:57
tony-o zoffix++ 18:59
AlexDaniel: i'm under the impression someone else is doing the work. i think lizmat merged in a change to blead that should speed up _some_ parsing 19:00
lizmat I did so twice and rolled it back twice :-( 19:01
tony-o i don't mind merging in json::fast though if lizmat timotimo are on board and want me to do that
lizmat the problem was that ":some parsing" went ok, but it didn't reliably see when it should not attempt the fast path
tony-o ah
lizmat e.g [ "a",{ foo => bar }] became [{foo => bar}] 19:02
tony-o do you want me to have a crack at putting the json::fast code in rakudo ?
uggg
19:06 sotona joined, p6bannerbot sets mode: +v sotona 19:07 AndyCap15 joined, AndyCap15 left 19:08 domidumont left 19:15 sotona left 19:16 [particle] left 19:26 [particle] joined 19:27 p6bannerbot sets mode: +v [particle] 19:31 [particle] left 19:32 [particle] joined 19:33 p6bannerbot sets mode: +v [particle] 19:34 regreg left 19:35 sotona joined 19:36 p6bannerbot sets mode: +v sotona 19:41 rindolf left 19:42 rindolf joined, p6bannerbot sets mode: +v rindolf 19:43 [particle] left 19:44 [particle] joined 19:45 p6bannerbot sets mode: +v [particle] 19:49 graphene left 19:50 graphene joined 19:51 p6bannerbot sets mode: +v graphene 19:54 MasterDuke left 19:55 itaipu left 19:57 lichtkind joined, p6bannerbot sets mode: +v lichtkind 19:59 [particle] left
markk_ /w/w 4 19:59
20:02 [particle] joined 20:03 p6bannerbot sets mode: +v [particle], cpage_ joined 20:04 p6bannerbot sets mode: +v cpage_ 20:06 cpage left, cpage_ is now known as cpage, [particle] left
AlexDaniel tony-o: yes! I do :) 20:14
weekly: In Perl 6 6.d you're now able to harness the Power of The Atom! Thread-safe atomic operations on a new atomicint type! marketing.perl6.org/id/1537803105/pdf_digital
notable6 AlexDaniel, Noted!
20:17 [particle] joined 20:18 p6bannerbot sets mode: +v [particle]
japhb tony-o: Yes please! :-) 20:22
20:23 Superman joined, Superman left 20:33 patrickb left 20:38 sena_kun left 20:42 sotona left 20:55 mst is now known as mSt 20:56 mSt is now known as mst, sotona joined 20:57 p6bannerbot sets mode: +v sotona 21:15 pmurias left, mcmillhj left
rindolf is the new release out yet? 21:16
lizmat yes 21:18
japhb rindolf: And some post-release branches merged, FWIW. 21:20
rindolf japhb: lizmat : i see - nice 21:21
lizmat still waiting for the first post merge test-t 21:22
I'm betting on 1.8 (down from 1.971)
rindolf the p6 repos seem green on my travis-ci.org/dashboard 21:23
21:24 ChanServ sets mode: +o mst
mst wants to monitor the +z traffic 21:24
don't mind me
geekosaur is not sure if that's a strong stomach or masochism >.> 21:33
timotimo i'm also monitoring the +z traffic 21:35
i hope newcomers don't see the big scary @ in front of my name and think it means anything
also, i'm not quite sure how i got to get the @, maybe by complaining about spam a lot?
21:37 Byteflux20 joined 21:38 Byteflux20 left 21:40 mcmillhj joined 21:41 p6bannerbot sets mode: +v mcmillhj 21:42 sotona left 21:46 mcmillhj left
tony-o lizmat: you have any objection? 21:47
21:49 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke, [particle] left
xinming Anyone here would tells me how can I trouble shooting tmux freeze? 21:50
it doesn't response to anything
21:50 [particle] joined
xinming oops, ignore me, wrong channel. 21:50
21:51 p6bannerbot sets mode: +v [particle]
timotimo xinming: maybe it's the ctrl-s/ctrl-q thing? 21:53
xinming Nope
even I re-connect, and use tmux at, the tmux at command freeze
21:56 mcmillhj joined
lizmat tony-o: please go ahead (assuming we're talking about JSON::Fast) 21:56
21:57 p6bannerbot sets mode: +v mcmillhj, [particle] left 21:58 [particle] joined
timotimo xinming: it's a long shot, but are the running tmux server and freshly started tmux client of different versions? because of a system update in between? 21:58
21:58 p6bannerbot sets mode: +v [particle]
xinming Nope, tmux is the same version 21:59
22:00 mcmillhj left
timotimo that's basically all i can come up with :| 22:01
22:03 Paul-S28 joined, Paul-S28 left
lizmat sleep& 22:04
timotimo gnite lizmat
22:04 [particle] left
xinming night. :-) 22:04
sleep&
22:05 [particle] joined, graphene left, p6bannerbot sets mode: +v [particle] 22:06 graphene joined 22:07 p6bannerbot sets mode: +v graphene 22:09 mcmillhj joined 22:10 p6bannerbot sets mode: +v mcmillhj 22:14 mcmillhj left 22:21 mcmillhj joined 22:22 p6bannerbot sets mode: +v mcmillhj 22:24 pecastro left 22:26 mcmillhj left 22:37 mcmillhj joined 22:38 p6bannerbot sets mode: +v mcmillhj
Geth doc: 238e9084e3 | (Zoffix Znet)++ | doc/Language/nativetypes.pod6
Clarify int is not exactly equivalent to Int
22:41
synopsebot Link: doc.perl6.org/language/nativetypes
22:41 mcmillhj left
Geth doc: ffde7cbbc9 | (Zoffix Znet)++ | doc/Language/nativetypes.pod6
Clarify dispatch won't pick up native sizes

This and the already-existing prose around this section close R#2316 github.com/rakudo/rakudo/issues/2316
22:45
synopsebot Link: doc.perl6.org/language/nativetypes
synopsebot R#2316 [open]: github.com/rakudo/rakudo/issues/2316 [question] Confusing typecheck results with native types
Geth whateverable: 4c41fa1f17 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
Handle multiple bisect candidates in Bisection.pm6

Because this logic will be needed everywhere.
22:46
22:49 mcmillhj joined 23:08 ilogger2 joined, ChanServ sets mode: +v ilogger2, p6bannerbot sets mode: +v lookatme_q, p6bannerbot sets mode: +v salva 23:09 p6bannerbot sets mode: +v tadzik, p6bannerbot sets mode: +v ilogger2 23:14 mcmillhj joined 23:15 p6bannerbot sets mode: +v mcmillhj 23:19 leedo joined 23:20 p6bannerbot sets mode: +v leedo 23:31 sotona joined 23:32 p6bannerbot sets mode: +v sotona 23:35 sotona left 23:45 kaare_ joined 23:46 p6bannerbot sets mode: +v kaare_ 23:48 mcmillhj left