»ö« 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 => 4Too 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
|