timotimo | not sure if there's a better way; i would like shorter syntax as well | 00:01 | |
discord6 | <theangryepicbanana> it would be cool if making a sub in a class automatically made the sub a static method | 00:02 | |
TreyHarris | Well, an 'is static' trait's been banging around as a perennial proposal; hopefully problem-solving will be able to keep institutional memory, because I can't remember why 'is static' was a bad idea :-) | ||
discord6 | <theangryepicbanana> since that kinda already makes sense | ||
<theangryepicbanana> well I mean having an attribute is cool and all, but it'd be ideal to have something as short as sub or method | |||
TreyHarris | m: class B { method foo (B:U: --> Str) { return "Bee" }; our sub foo(--> Str) { return "no bee" } }; say B.foo; say B::foo(); | 00:07 | |
camelia | Bee no bee |
||
TreyHarris | theangryepicbanana: you see the ambiguity ↑ | 00:08 | |
timotimo | having a scoping qualifier seems like the wrong abstraction to me | ||
the method is looked up the same way, it just checks the invocant type differently | 00:09 | ||
TreyHarris | well, I just did that because it's a pain to export and import on a single line... | ||
I mean, it's probably not best practice for a class to export routines, but it's probably also essential to some edge cases | 00:10 | ||
and multis are of course frequently "exported" one way or another | |||
timotimo | i think i hallucinated someone suggesting "our" for "static methods" | 00:11 | |
TreyHarris | like, just now here? | ||
I'm sure someone proposed it at one point--in fact, I think I may have written a reply if it was on p6-l showing why our subs are useful | 00:12 | ||
discord6 | <theangryepicbanana> perhaps a Ruby-like syntax could be used like method self.something(...) {...}? | ||
TreyHarris | Oh good gravy, about to search for that mail I was able to see T&M's latest--he's still hammering on .^name "lying" and why can't you ask a native exactly what signedness and length it is? phew. | 00:14 | |
discord6 | <theangryepicbanana> that would however mean that pretty much every class with a custom new method wouldn't work anymore | ||
timotimo | m: my uint32 $foo = 9; say $foo.VAR.^name | ||
camelia | IntLexRef | ||
timotimo | m: my uint32 $foo = 9; say $foo.VAR.^methods | 00:15 | |
camelia | No such method 'methods' for invocant of type 'Perl6::Metamodel::NativeRefHOW' in block <unit> at <tmp> line 1 |
||
timotimo | m: my uint32 $foo = 9; use nqp; say nqp::objprimbits($foo.VAR) | ||
camelia | 0 | ||
timotimo | m: my uint32 $foo = 9; use nqp; say nqp::objprimbits($foo) | ||
camelia | 0 | ||
timotimo | m: my uint32 $foo = 9; use nqp; say nqp::objprimbits($foo.VAR<>) | 00:16 | |
camelia | 0 | ||
timotimo | m: my uint32 $foo = 9; use nqp; say nqp::objprimbits($foo<>) | ||
camelia | 0 | ||
timotimo | ehh. | ||
TreyHarris | docs say you can't | ||
you can do over/underflow heuristics to figure it out | |||
if -1 assignment produces a positive value that gives you your answer completely in one step; for signed values you have to suss it out | 00:19 | ||
well, for ints. for floats it would be a serious PITA | |||
timotimo | m: my uint32 $foo = 9; use nqp; say $foo.VAR.of | 00:21 | |
camelia | No such method 'of' for invocant of type 'Int' in block <unit> at <tmp> line 1 |
||
TreyHarris | rofl... never mind; searching my back mail, I see that I have explained 'our sub' six times since 2016, but each time it was to T&M. | 00:28 | |
I don't see "is static" ever mentioned on p6-l or p6-u. weird. coulda sworn that was a perennial idea | 00:31 | ||
00:32
hungryd11 joined
00:35
hungrydonkey left
|
|||
TreyHarris | Do it Python-style, `method foo() is classmethod`? (I can't decide whether the Python @staticmethod is entirely obviated already or just mostly. I think "mostly", but the problem space is more than filled up by multis.) | 00:36 | |
00:46
sena_kun left
00:48
lucasb left
00:59
hungryd11 left
01:01
sena_kun joined
01:02
hungrydonkey joined
01:14
hungrydonkey left,
hungrydonkey joined
01:23
hungrydonkey left
02:07
hungrydonkey joined
02:46
sena_kun left
03:01
sena_kun joined
03:04
squashable6 left
03:06
squashable6 joined
04:12
evalable6 left,
linkable6 left
04:13
linkable6 joined
04:15
evalable6 joined
04:47
sena_kun left
04:49
hungryd7 joined
04:50
hungrydonkey left
04:54
hungryd7 left,
hungrydonkey joined
04:56
hungryd80 joined
04:57
hungrydonkey left
05:01
sena_kun joined
06:15
AlexDaniel joined,
AlexDaniel left,
AlexDaniel joined
06:45
sena_kun left
06:46
AlexDaniel left
07:00
sena_kun joined
07:25
domidumont joined
|
|||
nine | theangryepicbanana: no, a sub is a sub and a method is a method. When I declare a sub inside a class it's because I want a sub that's visible in that lexical scope. I do that precicely because I don't want the class' users to have access to it. | 07:26 | |
I wonder if class methods really are so common that they would warrant special (short) syntax. It's not like we're Java where there's only methods. We already have our subs and exporting to make functions available. That doesn't seem to leave many use cases for class methods. Mainly those where you want subclasses to be able to override them. | 07:29 | ||
Now a shorter syntax for object-only methods (::$?CLASS:D) would be very welcome. In hindsight, I'd even wish for that to be the default, but that ship has probably sailed... | 07:30 | ||
Or not, we could still change it with a new language version | 07:31 | ||
07:43
domidumont left
07:45
domidumont joined
08:46
sena_kun left
08:59
sena_kun joined
09:04
domidumont1 joined
09:05
domidumont left
09:18
AlexDaniel joined
09:19
AlexDaniel left,
AlexDaniel joined
|
|||
AlexDaniel | lol what, now we're getting spam in the old-issue-tracker repo? :D | 09:19 | |
is RT cursed or something | |||
this is probably like the second time I see spam on github | 09:21 | ||
lizmat | Files=1302, Tests=109837, 210 wallclock secs (28.20 usr 8.03 sys + 2942.75 cusr 262.98 csys = 3241.96 CPU) | 09:52 | |
AlexDaniel | oh | 10:21 | |
so now GitHub reports Raku files as Raku | |||
awesome | |||
10:47
sena_kun left
11:02
sena_kun joined
|
|||
Geth | rakudo: 6df78ca3ed | (Elizabeth Mattijsen)++ | src/core.c/SetHash.pm6 Add SetHash.set/unset methods As proposed about 8 months ago in: github.com/rakudo/rakudo/pull/2942 Since nobody had a big objection against it, and I think it will make working with SetHashes much easier, I decided to just put it in (as the Pull Request had bitrotted). Please revert if disagreeing. |
11:05 | |
rakudo/SetHash-set-unset: b9d9943c34 | (Elizabeth Mattijsen)++ | src/core/SetHash.pm6 Give SetHash a set/unset method Inspired by seeing things like: %sethash{$_} = True for @to-be-added; in the wild. Instead, one can now do: ... (5 more lines) |
11:12 | ||
lizmat | huh, what was that ? | 11:13 | |
anyway, branch now deleted | |||
11:14
AlexDaniel left,
committable6 left,
shareable6 left,
reportable6 left,
bisectable6 left,
statisfiable6 left,
quotable6 left,
unicodable6 left,
coverable6 left,
notable6 left,
nativecallable6 left,
tobs left,
evalable6 left,
linkable6 left,
[Tux] left,
rba left,
discord6 left,
eater left,
domidumont1 left,
squashable6 left,
bloatable6 left,
tellable6 left,
sourceable6 left,
benchable6 left,
releasable6 left,
greppable6 left
|
|||
sena_kun | lizmat: I did it automagically and then thought that something important may be still there and restored. :S | 11:17 | |
11:17
evalable6 joined,
linkable6 joined,
AlexDaniel` joined,
[Tux] joined,
rba joined,
discord6 joined
11:18
hungryd80 left,
nine left,
jnthn left,
samcv left,
jdv79 left,
domidumont1 joined,
squashable6 joined,
bloatable6 joined,
tellable6 joined,
sourceable6 joined,
benchable6 joined,
releasable6 joined,
greppable6 joined,
AlexDaniel joined,
committable6 joined,
shareable6 joined,
reportable6 joined,
bisectable6 joined,
statisfiable6 joined,
quotable6 joined,
unicodable6 joined,
coverable6 joined,
notable6 joined,
nativecallable6 joined,
tobs joined,
entonian joined,
epony joined,
zostay joined,
moritz joined,
eater joined
11:20
samcv joined,
samcv left,
samcv joined
11:22
kawaii joined
11:23
nine joined
11:24
discord6 left
|
|||
lizmat | sena_kun: nothing important in there, so it's gone now | 11:24 | |
11:24
discord6 joined
11:25
Geth joined,
jnthn joined
11:27
hungrydonkey joined
11:28
jdv79 joined
12:00
travis-ci joined
|
|||
travis-ci | Rakudo build errored. Elizabeth Mattijsen 'Add SetHash.set/unset methods | 12:00 | |
travis-ci.org/rakudo/rakudo/builds/645896933 github.com/rakudo/rakudo/compare/3...f78ca3ed72 | |||
12:00
travis-ci left
12:14
Guest47772 joined
12:32
ufobat joined
12:46
sena_kun left
13:01
sena_kun joined
13:09
lucasb joined
|
|||
Geth | rakudo: ce5b5dea55 | (Ben Davies)++ | src/core.c/IO/Socket/INET.pm6 Don't attempt to split ports from paths for for UNIX sockets It's possible for a valid path containing a ':' to wind up as something else if the platform allows colons in filenames like this. Since UNIX sockets don't use ports in the first place, don't treat them as if they do. |
13:59 | |
timotimo | gist.github.com/timo/6e8a259891326...4ae0d5d1fa - a good chunk of frames in the core.c setting are short: 7 instructions is the msot common, followed by 4 instructions, then 8. | 14:13 | |
there's even 137 frames that have only 2 instructions | 14:14 | ||
the first few i found are called !LEXICAL_FIXUP_CSCOPE, i don't think i've seen that before | 14:15 | ||
many have an empty name, though | 14:16 | ||
oh, the numbers start at 0, so all the instruction counts need to be read as "off by one" | |||
very many of the ones that end at 3 are !LEXICAL_FIXUP, many of the ones ending at 4 are the "execution of block eliminated by optimizer" blocks | 14:21 | ||
if it's about 1.35k of the "internal error" reporting blocks we can save about 4 bytes each by not putting a return_o directly after the die :D | 14:24 | ||
or are nqp::die resumable? | |||
ok, they apparently are | 14:25 | ||
14:46
sena_kun left
|
|||
Geth | rakudo: 62cb756d91 | (Ben Davies)++ | src/core.c/IO/Socket/INET.pm6 Don't call nqp::getport when listening on UNIX sockets |
14:54 | |
14:56
travis-ci joined
|
|||
travis-ci | Rakudo build passed. Ben Davies 'Don't attempt to split ports from paths for for UNIX sockets | 14:56 | |
travis-ci.org/rakudo/rakudo/builds/645958354 github.com/rakudo/rakudo/compare/6...5b5dea5501 | |||
14:56
travis-ci left
15:00
sena_kun joined
15:49
travis-ci joined
|
|||
travis-ci | Rakudo build passed. Ben Davies 'Don't call nqp::getport when listening on UNIX sockets' | 15:49 | |
travis-ci.org/rakudo/rakudo/builds/645982295 github.com/rakudo/rakudo/compare/c...cb756d9124 | |||
15:49
travis-ci left
16:43
hungrydonkey left,
hungrydonkey joined
16:45
hungrydonkey left
16:46
hungrydonkey joined
16:47
sena_kun left
16:57
entonian left
17:01
sena_kun joined
17:22
lizmat joined
17:43
patrickb joined
17:59
lizmat left,
lizmat joined
18:03
hungrydonkey left
|
|||
Geth | rakudo: c1b8ff60f8 | (Elizabeth Mattijsen)++ | 2 files Add BagHash.add/remove Similar to SetHash.set/unset . Please revert if you disagree. |
18:38 | |
18:46
sena_kun left
18:49
camelia left
18:53
toddr joined
19:00
evalable6 left,
linkable6 left,
Guest47772 left,
AlexDaniel` left,
[Tux] left,
rba left
19:02
Guest47772 joined,
evalable6 joined,
linkable6 joined,
AlexDaniel` joined,
[Tux] joined,
rba joined
19:03
Geth left
19:05
sena_kun joined
19:23
AlexDaniel left
19:35
domidumont1 left
|
|||
TreyHarris | Can anyone here kick camelia? I'm guessing since AlexDaniel` disappeared at the same time it may be more than an issue of kicking something, though | 19:53 | |
er, "restart", didn't mean "kick" in the IRC sense | |||
AlexDaniel` | I don't maintain camelia | 19:54 | |
and that was my laptop shutting down, has nothing to do with the bot :) | |||
TreyHarris | AlexDaniel`: I didn't think so, but the times were so coincident I was guessing a big part of the Internet got partitioned. That's good to know at least | 19:55 | |
(I didn't think you maintained camelia, I mean) | |||
moritz | restarting it now | 20:06 | |
20:46
sena_kun left
|
|||
TreyHarris | I recently switched over from the last rakudo-star to a self-build. Assuming my PATH was `...${rakudo-star}/latest/install/bin:${rakudo-star}/latest/install/share/perl6/site/bin` and it's now `...:${rakudo}/bin:${rakudo}/install/share/perl6/site/bin`, and I have zef built anew in the latter, how can I best get my old modules rebuilt? Is there anything else from rakudo-star I need to add? | 20:57 | |
21:02
sena_kun joined
21:19
foo222 joined,
foo222 left
21:32
lizmat left
21:45
toddr left
|
|||
jnthn | I just pulled/built latest Rakudo and I get one spectest failure that looks like this: | 22:20 | |
1..3 | |||
Error in mp_exptmod: Value out of range | |||
in block at t/spec/S32-num/expmod.rakudo.moar line 31 | |||
in block <unit> at t/spec/S32-num/expmod.rakudo.moar line 20 | |||
The last test, pretty much | |||
22:25
Kaiepi left,
Kaiepi joined
22:36
patrickb left
22:43
MasterDuke joined
|
|||
MasterDuke | jnthn: yep, i forgot to change the test after the moar ltm v1.2.0 upgrade | 22:44 | |
22:44
sena_kun left
23:01
sena_kun joined
23:19
lucasb left
23:34
nebuchadnezzar left
|