»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
cognominal notes he always ask questions when everyone is away and when he is exhausted. Not the best way for meaningful interactions. | 00:08 | ||
00:13
cooper joined
|
|||
lue | cognominal: that line is inside a token { }, which means it doesn't backtrack. | 00:14 | |
nvm, I think I misread your question. <![<]> is still useful for documentation purposes, if nothing else. :) | 00:15 | ||
cognominal | so '<'+ eats the longest possible sequences of '+', does not backtrack, so there is any left. | 00:16 | |
00:16
spider-mario left
|
|||
cognominal | ok. | 00:16 | |
thx, lue++ | |||
geekosaur | wasn't ratchet broken in rakudo for a while? | 00:18 | |
(or NYI?) | |||
00:20
BenGoldberg joined
|
|||
cognominal | geekosaur, I have no idea | 00:28 | |
BenGoldberg | Is it possible to run perl6 in a java applet? | 00:30 | |
00:30
dayangkun joined
00:35
ClarusCogitatio left
00:37
ClarusCogitatio joined
00:41
xenoterracide__ left
00:48
kurahaupo left
00:56
ClarusCogitatio left
00:57
khisanth_ is now known as Khisanth
00:58
ClarusCogitatio joined
01:00
Sqirrel_ joined
01:02
FROGGS left,
Sqirrel left
01:04
klapperl joined
01:05
Su-Shee_ joined
01:07
klapperl_ left,
pdcawley left
01:08
Su-Shee left
01:15
FROGGS joined
01:29
javan joined
01:30
labster joined,
javan left
01:37
labster left
01:44
labster joined
01:48
apejens_ is now known as apejens
01:49
labster left
01:58
ClarusCogitatio left
02:00
labster joined
02:01
labster left
02:02
ClarusCogitatio joined
02:04
Sqirrel_ left,
FROGGS left
02:07
labster joined,
labster left
02:16
Sqirrel joined
02:17
FROGGS joined
02:22
liztormato_ joined
|
|||
liztormato_ | Seems we hit something in the air. We lost one engine but are now safe on the ground at JFK | 02:23 | |
02:25
noganex_ joined
02:28
noganex left
02:29
liztormato_ left
|
|||
colomon_ | woah | 02:32 | |
PerlJam | (safe on the ground)++ | ||
BenGoldberg | birds in engines -- ? | 02:35 | |
02:47
Khisanth left,
akagi201_ left
02:49
mr-foobar joined
03:11
Khisanth joined,
Khisanth is now known as Guest60630
03:14
liztormato joined,
chenryn joined
|
|||
liztormato | Waiting for luggage and vouchers. Seems we're going to spend the night in NY | 03:15 | |
The line is long. :-( | |||
03:16
molaf left
|
|||
liztormato | No more flights to Europe today from JFK | 03:16 | |
03:20
liztormato left
03:26
Guest60630 left,
khisanth_ joined
03:27
xragnar left
03:28
xragnar joined
03:33
hoverboard joined
04:02
kaare_ joined
04:09
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg,
xenowoolfy joined
04:18
xenowoolfy left
04:23
chenryn left
04:30
chenryn joined
04:33
[Sno] left
04:51
kaare_ left,
BenGoldberg left
|
|||
awwaiid | on the REPL, is there a way to get a list of all infix: operators? | 05:00 | |
05:13
kaare_ joined
05:15
btyler left
05:17
rindolf joined
05:31
pdcawley joined
|
|||
moritz | m: say ::.keys.grep(/infix/) | 05:33 | |
camelia | rakudo-moar 77024f: OUTPUT«» | ||
moritz | m: say MY.keys.grep(/infix/) | 05:34 | |
camelia | rakudo-moar 77024f: OUTPUT«» | ||
moritz | m: say OUTER.keys.grep(/infix/) | ||
camelia | rakudo-moar 77024f: OUTPUT«» | ||
moritz | m: say OUTER::OUTER.keys.grep(/infix/) | ||
camelia | rakudo-moar 77024f: OUTPUT«» | ||
moritz | m: say CORE.keys | ||
camelia | rakudo-moar 77024f: OUTPUT«» | ||
moritz | m: say CORE::.keys | ||
camelia | rakudo-moar 77024f: OUTPUT«%DEPRECATIONS @UNITS &zip %pvalcodecache %propcodecache $?TABSTOP $UINT64_UPPER $sprintfHandlerInitialized $default &samewith &lastcall &nextsame &callsame &nextwith &callwith &proceed &succeed &redo &next &last &take &take-rw &return &return-rw &RETURN-PA…» | ||
moritz | m: say CORE::.keys.grep(/infix/) | ||
camelia | rakudo-moar 77024f: OUTPUT«&infix:<~~> &infix:<=:=> &infix:<eqv> &infix:<~> &infix:<x> &infix:<leg> &infix:<eq> &infix:<ne> &infix:<lt> &infix:<le> &infix:<gt> &infix:<ge> &infix:<~|> &infix:<~^> &infix:<~&> &infix:<===> &infix:<before> &infix:<after> &infix:<min> &infix:<max> &infi…» | ||
moritz | awwaiid: ^^ | ||
05:35
hoverboard left
05:37
gfldex joined
06:10
denis_boyun_ joined
06:15
dayangkun left
06:16
dayangkun joined
06:17
ivanshmakov joined
06:22
SamuraiJack joined
06:24
anaeem1 joined
06:25
clkao_ is now known as clkao,
mr-foobar left,
mr-foobar joined
06:27
ivanshmakov left,
ivanshmakov joined
06:29
lizmat joined,
SevenWolf joined
06:38
denis_boyun__ joined
06:39
denis_boyun_ left
06:40
SevenWolf left,
ribasushi left
06:41
telex left
06:42
telex joined
06:43
[Sno] joined
|
|||
timotimo | o/ | 06:44 | |
nwc10 | \o | ||
06:44
denis_boyun__ left
06:45
woolfy joined
06:51
ribasushi joined
07:00
Akagi201 joined,
igorsutton joined
07:05
darutoko joined
07:08
zakharyas joined
07:16
mr-foobar left
07:18
mr-foobar joined
|
|||
sergot | morning o/ | 07:22 | |
07:26
FROGGS left
07:30
virtualsue joined
07:34
Maddingu1 is now known as Maddingue
|
|||
timotimo | panda still can't get its ecosystem connection thingie | 07:35 | |
moritz: did tadzik enable you to fix it? | |||
i'm not sufficiently awake to actually think about this clearly, but: how do we handle situations where our commandline arguments could be "binary nonsense" and we blow up trying to parse it as utf8? how hard is it for us to switch stdin to read bufs instead of utf8 strings? IIRC outputting binary stuff is simple enough, though | 07:41 | ||
also: do we do something dumb like python where if the stdout returns false for "isatty"? | |||
a friend pointed out that an invalid utf8 string may be a valid filename | |||
07:43
khisanth_ left
|
|||
timotimo | touch $(printf '\xff\xff\xff') | 07:44 | |
perl6-m -e '.say' \Xff\Xff\Xff | |||
Unhandled exception: Malformed UTF-8 at line 1 col 1 | |||
07:44
FROGGS joined
|
|||
timotimo | generating a Buf instead of a Str if we encounter invalid UTF8 doesn't seem like a good fix, as that would likely break user programs a few lines later ... | 07:45 | |
and having Buf in the arguments array also sounds quite annoying | 07:46 | ||
07:46
salv0 left
|
|||
nwc10 | what's the correct place to report spectest bugs? t/spec/S32-list/roll.t should be using ./perl6-m | 07:46 | |
right now it's wrongly assuming that . is in $PATH | |||
(or that I'm running Windows) | |||
07:46
salv0 joined
|
|||
timotimo | if we make our MAIN automatically try to decode Buf into Str when there's a Str argument, that could "work" but give the exact same situation as we have at the moment | 07:47 | |
our whole I/O shouldn't consider all filenames/paths to be valid utf8 ... | |||
nwc10 | aye, that was a mistake Python 3.0 made, which had to be fixed in 3.1 | 07:48 | |
timotimo | we should absolutely not make that same mistake | ||
nwc10 | no, brave new mistakes please | ||
timotimo | aye | ||
quote from my friend: "but on a traditional unix filesystem, all you've got is bytes, and people'll just point and laugh at you if you put too much trust into the locale" | 07:49 | ||
and since Buf is harder to use for common things than Str is ... ouch ... | 07:50 | ||
the best solution may be to stay the way we are, put fingers in our ears and go "LA LA LA LA" | 07:52 | ||
because this whole ordeal is shitty. | 07:53 | ||
07:54
Akagi201_ joined,
kivutar joined
07:55
Akagi201 left
|
|||
timotimo | if we offer @*ARGV as a list of bufs, we'll just prompt every single user to include "@*ARGS = @*ARGS>>.decode('utf8') | 07:55 | |
" at the beginning of their scripts and we move the exception from internal to user program | |||
which sucks, too | |||
07:56
dmol joined
08:05
khisanth_ joined,
vendethiel left
08:06
ribasushi left
08:12
ribasushi joined
|
|||
masak | good late morning, #perl6 | 08:13 | |
FROGGS | morning | ||
nwc10: IMO it should use $*EXECUTABLE which should always give you an absolute path to the interpreter | 08:14 | ||
masak | lizmat: glad you're safe. | ||
FROGGS | timotimo: I'd like to see Buf handling easier... that's why there is a subbuf-rw now, and also why I'd like to add Buf.split | 08:16 | |
made easier* | 08:17 | ||
or so | |||
08:17
fhelmberger joined
08:18
ribasushi left,
pdcawley left
08:26
chenryn left
|
|||
arnsholt | o/ | 08:27 | |
jnthn | o/ | 08:28 | |
08:30
ribasushi joined
08:32
Su-Shee_ is now known as Su-Shee
|
|||
FROGGS | hi arnsholt! | 08:38 | |
arnsholt: how is everything? | |||
arnsholt | Pretty good | 08:39 | |
FROGGS | sounds good :o) | ||
arnsholt | Was at $work conference all last week in the US, came back yesterday, so we'll see how this working day goes =) | ||
08:41
unnisworld joined
|
|||
unnisworld | hi all | 08:41 | |
08:42
unnisworld left
|
|||
masak | hi unnisworld. bye unnisworld. | 08:42 | |
08:47
brrt joined
08:51
khisanth__ joined,
khisanth_ left
09:21
dakkar joined
09:30
anaeem___ joined
09:31
brrt left
09:32
anaeem1 left
09:34
markov left
09:42
virtualsue left
09:45
anaeem___ left
09:46
anaeem1_ joined
09:51
Psyche^ left
09:53
Psyche^ joined
09:58
pdcawley joined
10:02
virtualsue joined
10:11
sqirrel_ joined
10:18
virtualsue left
10:25
chenryn joined,
broquaint left,
broquaint joined
10:49
denis_boyun_ joined
10:55
salv0 left,
chenryn left
10:56
carlin joined
11:04
mr-fooba_ joined,
mr-foobar left
|
|||
tadzik | timotimo: panda things should work | 11:06 | |
I see plenty of 200s in the backlog | |||
11:11
salv0 joined
11:14
brrt joined
|
|||
moritz | \o | 11:27 | |
11:27
denis_boyun_ left
11:31
kaleem_ joined
|
|||
brrt | \o moritz | 11:36 | |
colomon_ | o/ | 11:39 | |
11:40
user3 joined
11:42
mr-fooba_ is now known as mr-foobar
|
|||
ChoHag | How do you say without the \n? | 11:44 | |
Never mind. | 11:45 | ||
11:46
chenryn joined
|
|||
masak | ChoHag: :D | 11:48 | |
m: say "OH HAI"; print "\b" | |||
camelia | rakudo-moar 77024f: OUTPUT«OH HAI» | ||
masak | that doesn't work, though. | 11:49 | |
FROGGS | that... doesn't ring a bell | ||
masak | FROGGS: you're thinking of "\a" | ||
m: sub say-without-newline(*@stuff) { print @stuff }; say-without-newline "OH HAI" | 11:50 | ||
camelia | rakudo-moar 77024f: OUTPUT«OH HAI» | ||
masak | ChoHag: that's one solution. | ||
FROGGS | masak: ahh right, \a for alarm | ||
masak | FROGGS: www.funnyjunk.com/funny_pictures/46...s+Alarmed/ | 11:51 | |
ChoHag | Yes. Maybe perl 6's catch phrase should be There Are More Ways To Do It Now. | ||
masak | well, it's more like "There Should Be One Obvious Way To Do It, But We Also Recognize That You Sometimes Want One Of The Others" | 11:52 | |
but that's more pithily summarized in "easy things easy, hard things possible" | |||
11:54
user3 left
11:56
anaeem1_ left
12:02
sqirrel_ left,
pdcawley left,
sqirrel_ joined
12:14
slavik left
12:15
spider-mario joined,
guru joined,
guru is now known as Guest2602
12:16
Guest2602 is now known as ajr_
12:18
smls joined
|
|||
smls | o/ | 12:19 | |
timotimo: I think Qt, for example, pretends that filenames are valid UTF strings | 12:21 | ||
that's why KDE programs cannot handle files with non-UTF8 bytes | 12:22 | ||
but they don't seem in a hurry to fix it | |||
12:22
jnap joined
12:23
PZt left
|
|||
smls | As for Perl 6 MAIN, if commandline parsing were allowed to use the type information of the MAIN signatures (as I proposed a while ago), users could easily decide themselves whether they want to get a Str or Buf | 12:24 | |
multi MAIN (Buf $file, :$opt1, :$opt2) { ... } # like so | 12:26 | ||
moritz | prototype it | ||
smls | yes, yes | ||
moritz | if it works, it'll get adapted :-) | ||
smls | haven't even gotten through jnthn++'s NQP course material yet... :) | ||
12:29
slavik joined
|
|||
colomon_ | smls: not sure that would help any with hacking MAIN. | 12:32 | |
colomon_ admits he's at least a complete overhaul of rakudo behind on how MAIN's internals work. | 12:33 | ||
sergot | m: class A { has $.method; }; say A.new.method; | ||
camelia | rakudo-moar 77024f: OUTPUT«(Any)» | ||
12:33
kurahaupo joined
|
|||
awwaiid | moritz: Thanks! that is most excellent! | 12:34 | |
(re: getting list of all infix ops) | |||
12:35
virtualsue joined
12:37
Vlavv left
|
|||
moritz | awwaiid: you're welcome | 12:38 | |
12:38
bluescreen10 left
|
|||
moritz | (note that if you look in CORE, you'll miss custom infixes imported from modules; those should be in MY:: or soemwhere in OUTER chain) | 12:38 | |
awwaiid | ok | 12:39 | |
12:40
kivutar left
|
|||
awwaiid | sometimes when I use unicode in the repl and then backspace over them, I get my cursor being a few spots to the right visibly from where it actually is. This a common problem? | 12:41 | |
12:41
Alina-malina left,
Alina-malina joined,
ajr_ left
|
|||
moritz | awwaiid: are you using moarvm as the backend? | 12:43 | |
I think parrot simply uses readline | |||
awwaiid | yes | ||
moritz | and moarvm its own thingy | ||
might be a bug in moarvms readline replacement | |||
awwaiid | ah. lemme try others | ||
moritz | but I don't use the REPL much, so I can't tell | 12:44 | |
timotimo | Could not download module metadata: Failed to connect: connection refused | ||
12:45
ajr joined,
ajr is now known as Guest15363,
Guest15363 is now known as ajr_
|
|||
carlin | timotimo: are you on IPv6? | 12:46 | |
awwaiid | huh. jvm backend works perfectly, parrot is even worse than moarvm. Maybe it's something on this end. Running Rakudo Star 2014.04 | 12:47 | |
timotimo | carlin: i'd hope so! :)( | ||
:) | |||
awwaiid | oh well, not worth going into right now | ||
carlin | Someone was saying a few days ago that feather's port 3000 service isn't listening for IPv6 connections | 12:48 | |
12:49
Vlavv joined
|
|||
timotimo | that's not good | 12:50 | |
jnthn | It's not moarvm's readline repalcement per se, it's another library (liblinenoise) that it builds if you don't request readline. | 12:51 | |
moritz | tadzik: could we run the panda metadata server with starman? that supports serving over ipv6, I've read | 12:54 | |
FROGGS | moritz: we probably need to update panda before we are doing this... because panda does not now about transfer-encoding for example | 12:57 | |
I guess the service behind port 3000 is kinda special to spit it out in a way panda can handle | 12:58 | ||
tadzik | moritz: oh, I thought we did that | ||
fixed now | 12:59 | ||
moritz | tadzik: thanks | 13:02 | |
13:07
ajr_ left
|
|||
tadzik | thanks for reporting | 13:10 | |
timotimo | what kind of program does that, btw? | ||
and should panda learn to optionally use our HTTP::UserAgent module if available? | |||
tadzik | oh yes | ||
13:11
kaare_ left
13:12
chenryn left
|
|||
jnthn | For anybody in need of a distraction, another of my talks that got filmed has landed on the web... www.infoq.com/presentations/termino...-collector | 13:14 | |
masak | \o/ | 13:15 | |
cognominal | jnthn++ | ||
brrt | that site doesn't seem helpful at all | ||
(although your presentation might be awesome :-)) | |||
FROGGS | nice | 13:16 | |
jnthn | brrt: Oh? | ||
FROGGS | jnthn++ | ||
brrt | i can't actually... see the slides, it seems | ||
oh.... | |||
my bad, i don't have flash installed :-) | 13:17 | ||
FROGGS | timotimo and me also had that 'oh...' moment last time :o) | ||
cognominal | yafgjt yet another f... good Jonathan talk. | 13:20 | |
13:25
smls left
13:28
woolfy left
13:29
lizmat left
|
|||
brrt is watching the talk now | 13:35 | ||
13:39
lizmat joined
13:40
cognominal left
13:41
cognominal joined,
chenryn joined
13:42
estrabd left,
rurban1 joined
13:43
dalek left
13:44
hugme left,
masak left,
sergot left,
PerlJam left,
tadzik left,
sergot joined
13:46
hugme joined,
ChanServ sets mode: +v hugme,
PerlJam joined
|
|||
carlin | has dalek beeen abducted by Time Lords again | 13:48 | |
13:48
tadzik joined
13:49
btyler joined,
sqirrel_ left
13:50
masak joined
13:57
bluescreen10 joined
14:00
chenryn left
14:08
pdcawley joined
14:09
orafu left
|
|||
timotimo | i really like how jnthn pronounces "bump" in his talk | 14:31 | |
14:31
chenryn joined
|
|||
FROGGS | I also like how he says 'instruction' :o) | 14:32 | |
carlin | (jnthn's accent)++ | 14:33 | |
masak | British people tend to ask him if he's an American :D | 14:38 | |
14:46
khisanth__ is now known as Khisanth,
treehug88 joined
|
|||
FROGGS | *g* | 14:46 | |
14:47
sqirrel_ joined,
chenryn left
14:48
user3 joined
14:50
anaeem1 joined
14:52
chenryn joined
|
|||
masak just accidentally wrote /[.!?]$/ in a Perl 6 regex | 14:55 | ||
std: /[.!?]$/ | |||
camelia | std 0f2049c: OUTPUT«===SORRY!===Unrecognized regex metacharacter ! (must be quoted to match literally) at /tmp/EXoH_4H4Ky line 1:------> /[.!⏏?]$/Unable to parse bracketed regex at /tmp/EXoH_4H4Ky line 1:------> /⏏[…» | ||
masak | m: /[.!?]$/ | 14:56 | |
camelia | rakudo-moar 77024f: OUTPUT«===SORRY!===Unrecognized regex metacharacter ! (must be quoted to match literally)at /tmp/l4mvbMrOnD:1------> /[.⏏!?]$/Unable to parse expression in metachar:sym<[ ]>; couldn't find final ']' at /tmp/l4…» | ||
14:56
chenryn_ joined
|
|||
hoelzro | morning #perl6 | 14:59 | |
15:00
pdcawley left
|
|||
FROGGS | hi hoelzro | 15:00 | |
15:00
kaare_ joined
15:01
[Sno] left
15:06
igorsutton left
15:07
igorsutton joined,
brrt left
15:10
user3 left,
chenryn left
15:11
igorsutton left
15:13
kaiserpathos joined
15:14
FROGGS left
15:17
Bucciarati_ is now known as Bucciarati
15:19
spider-mario left
15:21
kaleem_ left
15:23
lizmat left
15:25
Nei joined,
LLamaRider joined,
Nei left
15:28
spider-mario joined
15:32
dayangkun left
15:34
zakharyas left,
lizmat joined
15:37
pdcawley joined
15:42
lizmat left
15:43
lizmat joined
15:46
woolfy joined
|
|||
lizmat catches up on the clogs while sitting in the lobby of the Holiday Inn Jamaica | 15:48 | ||
jnthn | Jamaica? o.O | 15:49 | |
lizmat | well, hardly | 15:50 | |
but it had a room with a bed | |||
and wifi | |||
15:52
pdcawley left,
gtodd left
|
|||
ChoHag | Is there an explanation of how perl 6 deals with nested hashes data structures via '%new = (%a, %b)'? | 15:53 | |
15:54
fhelmberger left
15:55
pdcawley joined
15:56
hoverboard joined,
anaeem1 left
15:57
anaeem1 joined,
zengargo1le is now known as zengargoyle
|
|||
lizmat | ChoHag: by default, keys are strings | 15:58 | |
15:58
pmurias joined
|
|||
lizmat | so you will have a stringified %a as the key | 15:58 | |
hmm... guess not | 15:59 | ||
seems it flattens first | |||
15:59
pdcawley left
|
|||
lizmat | m: my %a=(a=>1); my %b=(b=>2); my %c=(%a,%b); say %c | 16:00 | |
camelia | rakudo-moar 77024f: OUTPUT«("a" => 1, "b" => 2).hash» | ||
ChoHag | It's quite reassuring when the regulars here also consistently forget what perl 6 does and how. | ||
lizmat | m: my %a=(a=>1); my %b=(b=>2); my %c=($%a,$%b); say %c | ||
camelia | rakudo-moar 77024f: OUTPUT«("a" => 1, "b" => 2).hash» | ||
lizmat | now *that* I find off | ||
*odd | |||
ChoHag: regulars are still newbies in many areas :-) | 16:01 | ||
jnthn | %h = %a, %b; # will flatten, of course. Just like in Perl 5, no? | 16:02 | |
16:03
pdcawley joined
|
|||
jnthn | $%a flattening, otoh, is kinda odd | 16:03 | |
lizmat | that's what I'm saying :-) | ||
jnthn | I'm guessing Hash.STORE might just be looking at type, not containerness | ||
lizmat | m: my %a=(a=>1); my %b=(b=>2); ($%a,$%b).perl.say | 16:04 | |
camelia | rakudo-moar 77024f: OUTPUT«({"a" => 1}, {"b" => 2})» | ||
lizmat | jnthn: I guess the: | 16:05 | |
elsif EnumMap.ACCEPTS($x) { | |||
for $x.list { self.STORE_AT_KEY(.key, .value) } | |||
is not checking containerness... | |||
jnthn | right | 16:06 | |
Also, should use nqp::istype($x, EnumMap) | |||
16:07
pdcawley left
|
|||
lizmat | you fix or I fix ? | 16:07 | |
16:08
vendethiel joined
|
|||
jnthn | Go for it, I'm working on an async sockets bug. | 16:09 | |
16:10
pdcawley joined
|
|||
lizmat | ok | 16:10 | |
lizmat is not really awake yet | |||
how do I check for containerness again? nqp::something? | |||
jnthn | nqp::iscont | ||
lizmat | right | 16:11 | |
jnthn++ | |||
16:20
chenryn_ left
|
|||
lizmat | jnthn: it seems that the setting is depending on flattening behaviour :-( | 16:20 | |
jnthn | "fun" | 16:21 | |
lizmat | fsvo fun | 16:24 | |
like landing a 747-400 without using the flaps | 16:25 | ||
:-) | |||
while being escorted with fire engines with the full lightshow on | 16:26 | ||
16:28
xusia left
16:31
jnap left
|
|||
timotimo | i think i'm going to need some more help finding things to report in the weekly | 16:31 | |
16:32
user3 joined
|
|||
timotimo | i remember performance improvements, some benchmark additions ... hmm | 16:32 | |
jnthn | lizmat: That sounds rather concerning... | ||
timotimo | gotta run now, though | 16:33 | |
jnthn | timotimo: OSR landed, inlining leanred ext ops, various other bits of performance work | ||
timotimo | yeah, those i remember well :) | ||
jnthn | timotimo: And some threads/async socket fixes from me today | ||
lizmat | jnthn: it was concerning when we where up there, down on the ground not so much | ||
[Coke] | . o O (Nevada) | 16:34 | |
timotimo | thank you :) | 16:36 | |
16:37
jnap joined
|
|||
vendethiel | what's the perl 6 bench page against ? can't find it anymore | 16:37 | |
timotimo | there's not "a page" | 16:44 | |
i just have a folder where i drop off lots of results | |||
16:44
erkan left
|
|||
timotimo | japhb/perl6-bench is the repository on github | 16:44 | |
16:44
Rotwang joined
16:47
chenryn joined,
Alina-malina left
16:49
xusia joined
16:51
erkan joined,
erkan left,
chenryn_ joined,
erkan joined
16:52
sqirrel_ left,
pmurias left
16:53
chenryn__ joined,
molaf joined
16:56
chenryn_ left,
pdcawley left
16:57
pdcawley joined,
chenryn__ left
|
|||
lizmat | this seems wrong: | 16:58 | |
my %args = { :$!year, :$!month, :$!day, :$!hour, :$!minute, | |||
:$!second, :$!timezone, :&!formatter, %_ }; | |||
16:59
LLamaRider left
|
|||
jnthn | yeah; wants to be parens or binding | 17:00 | |
^ | |||
& even | |||
17:01
kaleem_ joined
17:02
anaeem1__ joined
|
|||
lizmat | ok, builds now, spectest definitely not clean | 17:03 | |
:-( | |||
timotimo | jnthn: did you see kamils mail on the users list? i see the same failure | 17:04 | |
the imcc complains about emitted code after we check for poisoning mumble mumble | |||
17:04
psch joined
|
|||
psch | hi #perl6 | 17:04 | |
timotimo | p6weekly.wordpress.com/?p=189&s...198981e6b1 - here's the first draft of the weekly, i hope i've missed a lot of things :P | ||
i'm going grocery shopping now-ish. | 17:05 | ||
17:05
chenryn left,
anaeem1 left,
virtualsue left
17:07
dakkar left
|
|||
lizmat | if my fix for Hash.STORE is breaking this many spectests: gist.github.com/lizmat/d217d59d0138c8ea0fd9 | 17:08 | |
I wonder what it will do to the ecosystem and DarkPAN | |||
17:09
Alina-malina joined
|
|||
lizmat | m: my %hash = {a => 1, b => 2}; | 17:09 | |
camelia | ( no output ) | ||
lizmat | with my fix, this now breaks with: | 17:10 | |
$ 6 'my %hash = {a => 1, b => 2};' | |||
Odd number of elements found where hash expected | |||
TimToady: do you have an opinion on this behaviour? | |||
17:11
FROGGS joined
17:12
chenryn joined
|
|||
jnthn | Ouch | 17:14 | |
Yes, let's get TimToady++'s take before putting it in nom | |||
Can commit it in a branch for now, of course. | |||
17:14
anaeem1__ left
|
|||
timotimo | what kind of problem does it fix? | 17:16 | |
jnthn | timotimo: A case of seemingly unwanted flattening. | 17:17 | |
Or surprsing flattening, at least. | |||
timotimo | isn't it always? ;) | 17:18 | |
jnthn | Generally, no, but places where the rules get broken mostly aid the perception that it is. | 17:21 | |
17:22
anaeem1_ joined
|
|||
lizmat | oddly enough, it seems at least one TODO is pasing now | 17:22 | |
passing | 17:23 | ||
#?rakudo todo 'non-flattening hash refs' | |||
so it would appear that it is the intent to have it work this way | |||
looking at the spectests so far, it seems they mostly suffer from the misunderstanding that my %h = {...} is the same as my %h = (...) | 17:25 | ||
17:26
anaeem1_ left
17:27
chenryn left
|
|||
ChoHag | Can I tell whether an attribute has been set by the hard-coded default, arguments to new or run-time use of the accessor? | 17:29 | |
The only case I really care about right now is hard-coded vs. everything else. | 17:30 | ||
17:31
SamuraiJack left
|
|||
lizmat | not sure you can, unless you do something like: | 17:31 | |
has $!foo = 42 but hardcoded; | |||
ChoHag | Alternatively, can I wrap somehow the code which actually sets the default? | ||
the '= ...' magic is just a trait_mod sub with a callable argument somewhere isn't it? | 17:32 | ||
(FSVO 'just') | |||
jnthn | Can't quite remember, but I know that the callable is accessible on the Attribute instance. | ||
And it's some kind of routine, iirc...it's probably wrappable. | 17:33 | ||
m: say Attribute.^methods(:local) | |||
camelia | rakudo-moar 77024f: OUTPUT«<anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> <anon> compose apply_handles get_value set_value container has-accessor readonly package Str gist» | ||
moritz | iirc it's not a routine is the LHS is a constant | ||
jnthn | Oh, yeah. | 17:34 | |
17:34
anaeem1 joined
|
|||
jnthn | A handy optimization until this point :) | 17:34 | |
m: say Attribute.^method_table.keys | |||
camelia | rakudo-moar 77024f: OUTPUT«new name type container_descriptor auto_viv_container has_accessor rw set_rw set_readonly default_to_rw set_build build set_box_target box_target positional_delegate associative_delegate is_generic instantiate_generic compose apply_handles get_value set_va…» | ||
jnthn | .build I'd guess | ||
lizmat | I think I'm going to correct the %hash = {} thinko's in the test-suite, when they're clearly wrong | 17:35 | |
they should still work without the container check in Hash.STORE | |||
.oO( dalek, oooo, dalek, kitty kitty kitty, where aaaarre you? ) |
17:38 | ||
ChoHag | How about another angle. I already have an attribute trait_mod function where it's relevant. Can I tell in there if a default value has been supplied to the attribute? | 17:42 | |
And, as an aside, when does that default-setting block actually run? | 17:43 | ||
17:45
virtualsue joined
|
|||
carlin | dalek is off fighting time lords again | 17:48 | |
xfix | rn: say eval "2 + 2" | 17:50 | |
camelia | rakudo-jvm 77024f: OUTPUT«(timeout)» | ||
..niecza v24-109-g48a8de3: OUTPUT«===SORRY!===Undeclared routine: 'eval' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1502 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_…» | |||
..rakudo-{parrot,moar} 77024f: OUTPUT«4Saw 1 call to deprecated code during execution.================================================================================Sub eval (from GLOBAL) called at: /tmp/tmpfile, line 1Please use 'EVAL' instead.--------------------…» | |||
17:52
colomon_ left
17:53
colomon_ joined
17:55
woolfy left,
anaeem___ joined
17:56
[Sno] joined
|
|||
lizmat | lunch and commute to JFK& | 17:56 | |
17:58
lizmat left
17:59
anaeem1 left
18:02
virtualsue left
18:04
xinming left
18:06
xinming joined
18:08
user3 left
18:11
kaleem_ left
18:13
PZt joined
18:19
erkan left
18:20
R0b0t1 left
|
|||
timotimo | chohag, the default buildall does the invocation | 18:25 | |
try throwing an exception in the default value and look at the trace | |||
vendethiel has convinced those two that Perl 6 is A Great Thing | |||
one of them is happily hacking away | |||
timotimo | may need to use - ll-exception | 18:26 | |
vendethiel | do we have any kind of docs on using jvm libs from perl6-jvm ? | 18:28 | |
18:29
teodozjan joined
|
|||
FROGGS | vendethiel: there might be a jnthn-talk somewhere | 18:30 | |
from like april of last year | |||
vendethiel | yep, found it, thanks. Man, what'd we do without the jnthn++ :) | 18:31 | |
FROGGS | ohh, something less fun I guess :o) | 18:32 | |
vendethiel | ah, it's on the internals :( | 18:38 | |
18:43
kurahaupo left
|
|||
jnthn | vendethiel: Somehwere in there is an example of calling a JVM lib | 18:44 | |
ChoHag | God damn it. Hack. Run. Hack. Fail. Undo. Fail. | ||
jnthn | ChoHag: It's called from the BUILDALL, after all the BUILDs have had a chance to run and any supplied values have been applied. | ||
18:45
rindolf left,
lelf joined
18:46
rindolf joined
|
|||
ChoHag | <-- idiot | 18:49 | |
FROGGS | we all are | ||
psch too! | 18:50 | ||
i can't quite figure out how to sensibly implement timotimo++'s suggested optimization for tr/// | |||
FROGGS | good that I forgot what it was a few days ago that made me feel idiotic :o) | ||
psch | i.e. returning an object that only calculates the changes when it's evaluated somewhere where an Int is requested | ||
aside from that i'd call tr/// working in my branch, which is good i guess :) | 18:51 | ||
although i don't know how good an idea adding a &distance method to Str was | 18:52 | ||
FROGGS | the Failure type does some magic when being used as an Int | ||
not really magic, but it does something | 18:53 | ||
jnthn | Implement a method Int that does the calc and probably a method Numeric to delegate to it | ||
18:54
Alina-malina left
18:55
Alina-malina joined
18:56
chenryn__ joined
19:00
chenryn__ left
|
|||
psch | the "getting it into an object" part was what i was having problems with | 19:01 | |
i rewrote Str.distance to return an anon class that does Int, Numeric and Bool as makes sense there | |||
masak | what's your favorite way of saying "given @list, there are no two objects with the same .name" ? | ||
psch | but my local repo broke again it seems... | 19:02 | |
timotimo | masak: (bag @list>>.name) == @list | 19:03 | |
jnthn | ?one(@list>>.name) # cute but not the most efficient | ||
timotimo | er, not bag | ||
psch | p5-think made me want map to Pairs just now | ||
timotimo | set would probably be correct | 19:04 | |
jnthn | oh, wait...what was I thinking :) | ||
timotimo | yeah, what the hell were you thinking? :) | ||
jnthn blames tasty distracting icecream :P | |||
not defined @list.first-index({ (state %){.name}++ }) # maybe | 19:05 | ||
timotimo | that's ... wordy | 19:11 | |
doesn't first-index also want a matcher? | |||
like, don't you have to search for "2" or something? | |||
jnthn | A closure will do as a matcher :) | 19:12 | |
masak | I prefer timotimo++'s solution so far. jnthn's is far too stateful for me :) | 19:13 | |
timotimo | oh, because it's *post*increment | ||
jnthn | masak: Local state isn't generally the problem :) | 19:14 | |
masak | actually, I think I prefer timotimo's to mine, which involved .uniq(:as(*.name)) | ||
jnthn: I know, but it tickles my "declarative vs imperative" sense wrongly... | |||
jnthn | masak: I'll note that only my one so far can bial as soon as it finds the first duplicate. | ||
masak | jnthn: this problem doesn't feel to me like it should have moving parts. | ||
jnthn | *ail | ||
masak | jnthn: point. | ||
oh, this problem is a monoid, then. | |||
jnthn | masak: All problems have moving parts on the inside. Just put what I wrote in a sub and it's pure again :P | 19:15 | |
masak | like, we could solve it with MapReduce. | ||
jnthn: :) | |||
jnthn: your solution is clever, I'll give you that. | |||
jnthn: but I really don't like to mutate things inside of a .map | 19:16 | ||
(or any other HOP function, like .first-index in this case) | |||
colomon_ | +1 | 19:21 | |
19:26
darutoko left
19:27
vendethiel left,
vendethiel joined
19:32
lelf left,
Hataketsu joined,
anaeem___ left
19:33
Hataketsu left
|
|||
masak | m: class Duper { has %.seen; method add($key) { return %.seen{$key}++ } }; my $d = Duper.new; say ! [||] $d.add($_) for <a b c d e f g> | 19:36 | |
camelia | rakudo-moar 77024f: OUTPUT«TrueTrueTrueTrueTrueTrueTrue» | ||
masak | hm. | ||
m: class Duper { has %.seen; method add($key) { return %.seen{$key}++ } }; my $d = Duper.new; say ! [||]($d.add($_) for <a b c d e f g>) | |||
camelia | rakudo-moar 77024f: OUTPUT«===SORRY!=== Error while compiling /tmp/1Aw99CawhhUnable to parse expression in argument list; couldn't find final ')' at /tmp/1Aw99Cawhh:1------> y $d = Duper.new; say ! [||]($d.add($_) ⏏for <a b c d e f g>)…» | ||
masak | m: class Duper { has %.seen; method add($key) { return %.seen{$key}++ } }; my $d = Duper.new; say ! [||] ($d.add($_) for <a b c d e f g>) | 19:37 | |
camelia | rakudo-moar 77024f: OUTPUT«True» | ||
masak | m: class Duper { has %.seen; method add($key) { return %.seen{$key}++ } }; my $d = Duper.new; say ! [||] ($d.add($_) for <a b c d e b g>) | ||
camelia | rakudo-moar 77024f: OUTPUT«False» | ||
masak | ...that's the OO version of jnthn's stately solution. | ||
though ISTR that [||] doesn't short-circuit. | |||
jnthn | If the list it gets is lazy then it can evaluate it only as far as needed, I think... | 19:38 | |
I'm really not sure what the class adds here :) | |||
masak | it doesn't add anything. | ||
I'm only exposing the implicit class that your function-and-state created ;) | 19:39 | ||
timotimo | well, the set solution also doesn't short-circuit | ||
19:40
dwarring joined
|
|||
jnthn | BTW, today - or maybe tomorrow - is last day to submit YAPC::EU talks. | 19:40 | |
masak | aye. | 19:43 | |
m: my @list = map { (class { has $.name }).new(:name($_)) }, <a b c d e f g>; say so all((bag @list>>.name).values) == 1 | |||
camelia | rakudo-moar 77024f: OUTPUT«True» | ||
masak | m: my @list = map { (class { has $.name }).new(:name($_)) }, <a b c d e b g>; say so all((bag @list>>.name).values) == 1 | ||
camelia | rakudo-moar 77024f: OUTPUT«False» | ||
masak | this is my favorite solution so far, I think. | ||
jnthn doesn't suggest benchmarking the competing solutions :) | |||
masak | I'm dealing with arrays of < 10 elements here. I'm not so terribly worried about performance. | 19:44 | |
jnthn | Ah, then fine :) | ||
masak | I'm just looking for a neat/clean way to express "there are no duplicates". | 19:45 | |
jnthn | Yeah. It's just that folks here are often way too good at finding cute ways to do things and neglecting performance considerations, then saying "oh noes Perl 6 is slow" :) | 19:46 | |
timotimo | i got no feedback for my blog post, so i'll publish it now | ||
jnthn | timotimo: I missed the link...guess I was doing dinner | ||
timotimo | ah | ||
one sec :) | |||
p6weekly.wordpress.com/?p=189&s...198981e6b1 | 19:47 | ||
psch | alright, Str.distance now returns a Bool with an anon role that does a lazy-ish Int, i.e. calculates the result when first called | ||
jnthn | I mean, in my solution we traverse a list and make a hash. This one products an intermediate list, then turns it into a bag, then produces a list of values in the bag, then makes a junction o fthose values, then auto-threads an operation over that junction. :) | ||
psch | if anyone wants to look it over, in case i'm doing something horrible: github.com/peschwa/rakudo/compare/implement_tr | ||
masak | jnthn: yes, your point is well taken. | ||
jnthn | It *is* a cute solution though :) | 19:48 | |
masak | and yours is very... industrially sound. | ||
:P | |||
psch | i guess the review would happen anyway when i open a PR, so i'll just do that :) | ||
jnthn | timotimo: " like in a for loop with many iterations." - I'd remove the 2for" | ||
timotimo: I think japhb++ did some other work on perl6-bench besides the new benchmarks, btw | 19:49 | ||
19:50
retupmoc1 is now known as retupmoca
|
|||
jnthn | timotimo: You forgot the other inlining improvements too :) | 19:50 | |
timotimo | mhm | 19:52 | |
what would i do without you people :) | 19:53 | ||
colomon_ | jnthn: one thing I've noticed over the years is every book on functional programming I've read starts out with "see how beautiful this functional code is!" and then ten pages later is telling you how to make a much uglier but efficient version. ;) | 19:54 | |
19:57
chenryn__ joined
|
|||
vendethiel | masak: `+@a.uniq(:by(*.name)) == +@a` :P | 19:58 | |
masak | vendethiel: yes, that's how I usually imagined it (only without the explicit prefix:<+>) | 19:59 | |
s/usually/originally/ | |||
I might still go with that solution. | |||
FROGGS | that one is actually readable | ||
masak | m: my $foo = "OH HAI"; role R[$bar] { method x { say $bar } }; class C does R[$foo] {}; C.new.x | 20:00 | |
camelia | rakudo-moar 77024f: OUTPUT«(Any)» | ||
masak | I wonder if we shouldn't emit a warning at 'does R[$foo]'... | 20:01 | |
I just did this one by mistake in code -- yes, I ought to know better, but sometimes the brain slips. | |||
20:01
chenryn__ left
|
|||
masak | a warning would've let me know something was amiss. | 20:01 | |
it's really the same kind of situation as this: | |||
m: my $foo = "OH HAI"; BEGIN say $foo | |||
camelia | rakudo-moar 77024f: OUTPUT«(Any)» | ||
masak | (which could also do with a warning) | ||
simple examples like this are easy to catch, but when stuff is in the middle of a bigger program... | 20:02 | ||
20:03
treehug88 left
|
|||
masak | m: class C { method foo { say "computing"; return 42 } }; given C.new { say .foo; say .foo } | 20:04 | |
camelia | rakudo-moar 77024f: OUTPUT«computing42computing42» | ||
masak | m: class C { method foo is cached { say "computing"; return 42 } }; given C.new { say .foo; say .foo } | ||
camelia | rakudo-moar 77024f: OUTPUT«computing4242» | ||
masak | oh, nice. 'is cached' works on methods. | ||
(whoever implemented that)++ | |||
FROGGS | lizmat++ | ||
moritz | probably lizmat++ | 20:05 | |
masak | I think it was lizmat++, yes. | ||
m: class C { method foo is cached { say "computing"; return 42 } }; say C.new.foo; say C.new.foo | 20:06 | ||
camelia | rakudo-moar 77024f: OUTPUT«computing4242» | ||
masak | hm, but that could be a problem, depending on what the user expected. | 20:07 | |
I think I would expect caching to be per-object. | |||
FROGGS | nqp-m: my $foo := "OH HAI"; my role R[$bar] { method x() { say($bar) } }; class C {}; my $c := C.new(); $c.HOW.mixin($c, R.HOW.curry(R, $foo)); $c.x() | 20:08 | |
camelia | nqp-moarvm: OUTPUT«OH HAI» | ||
FROGGS | masak: so it could work I guess | ||
colomon_ | m: class C { has $.x; method foo is cached { say "computing"; return 42 } }; say C.new(x => 2).foo; say C.new(x => 1).foo | ||
camelia | rakudo-moar 77024f: OUTPUT«computing42computing42» | ||
colomon_ | masak: presumably its cached on self as well | ||
*it's | 20:09 | ||
timotimo | does somebody remember who added what to rosettacode recently? | ||
FROGGS | masak: nvm | ||
masak | FROGGS: :) | 20:10 | |
FROGGS: compile-time, run-time. | |||
FROGGS | yeah | ||
but still | |||
:o) | |||
masak | colomon_: if it is, then why does it only run once for two different selfs? | ||
colomon_ | masak: ….. hmm | 20:11 | |
FROGGS | m: class C { method foo is cached { say "computing"; return 42 } }; say C.new.WHICH; say C.new.WHICH | ||
camelia | rakudo-moar 77024f: OUTPUT«C|139757346896128C|139757346904040» | ||
FROGGS | I though this was the key.... | 20:12 | |
timotimo | publish'd | ||
FROGGS | timotimo++ | ||
20:12
rurban1 left
|
|||
colomon_ | masak: my $key := c.gist; | 20:13 | |
m: class C { method foo is cached { say "computing"; return 42 } }; say C.new.gist; say C.new.gist | |||
camelia | rakudo-moar 77024f: OUTPUT«C.new()C.new()» | ||
colomon_ | that's why | ||
FROGGS | hmmm | ||
colomon_ thinks, anyway | |||
FROGGS | iiinteresting | 20:14 | |
colomon_ | m: class C { has $.x is rw; method foo is cached { say "computing"; return 42 } }; my $c = C.new(x=>2); say $c.foo; $c.x++; say $c.foo; | 20:15 | |
camelia | rakudo-moar 77024f: OUTPUT«computing42computing42» | ||
20:17
virtualsue joined
|
|||
masak | colomon++ | 20:24 | |
I don't know which part of that oughta change, but I don't think self should be cached that way ;) | |||
colomon_ | seems to me that's a fine first approximation to a solution. | 20:30 | |
20:31
xenowoolfy joined
|
|||
masak | well, what do you know -- my "does it have duplicates" solution ended up looking quite different, because the real question my code was asking was "which are the duplicates"... | 20:38 | |
20:38
gfldex left
|
|||
timotimo | oh | 20:39 | |
so more like .bag + grep(2)? :) | |||
jnthn | *>2 | ||
*>=2 | |||
but yeah, sounds cute | |||
timotimo | m: say 2 ~~ 2; say 3 ~~ 2 | 20:40 | |
camelia | rakudo-moar 77024f: OUTPUT«TrueFalse» | ||
timotimo | depends on your definition of "duplicate" | ||
jnthn | true :) | ||
20:40
xenowoolfy left
20:45
erkan joined
20:47
kaiserpa_ joined,
kaiserpathos left
20:50
slava-wr0k joined
|
|||
masak | at-least-duplicate :) | 20:51 | |
non-unique | 20:52 | ||
timotimo | multiples? :) | ||
slava-wr0k | heredoc adverbs confuse me ... :( | ||
masak | it's almost as if I were grasping for a method .nonuniq ;) | 20:53 | |
moritz | :to<END>:confusing | ||
masak | :to<DIE>:to<SLEEP> | ||
moritz | good idea | ||
o/ | |||
masak hopes moritz choose the "sleep" option o.O | |||
moritz too | |||
masak | :) | ||
slava-wr0k | I have XML that I want to generate (repeating the same block with differing values), so I have a loop that goes through all the values I need, I can't figure out the right operator with the right adverb, since in some cases it tries to interpret <TAG> as if it is the <> operator | 20:54 | |
timotimo | as a quick fix: you could also use :to/foo/ | 20:55 | |
slava-wr0k | for @values -> $myvalue { say q:to/END/; <mytag>$myvalue</mytag> END } | ||
something like that | |||
timotimo | ah, hehe. | ||
20:55
kaiserpathos joined
|
|||
slava-wr0k | I think I want to use :single | 20:56 | |
timotimo | well, q should never interpolate | ||
slava-wr0k | but I am confused when | ||
20:56
teodozjan left
|
|||
slava-wr0k | qq:heredoc:s? | 20:56 | |
timotimo | that would | ||
and $foobar<test> would surely look like you wanted to do a hash access | |||
would it be bad to always wrap your interpolated values in { }? | |||
jnthn | Yeah, that may be easiest | 20:57 | |
And then q:c:to/END/ | |||
timotimo | i think in that case you can also use q? if not, q:c | ||
slava-wr0k | qq:heredoc:single with {} around variable | ||
works | |||
ty | |||
I think I get it now | |||
{} is always a good idea to denote access | |||
timotimo | "single" is hard to search for in the synopses >_> | 20:58 | |
slava-wr0k | hmm, just qq:heredoc is fine | ||
timotimo | at least with the google search widget | ||
slava-wr0k | ty :) | ||
20:58
kaiserpa_ left
21:03
virtualsue left
|
|||
masak | m: sub foo {}; for foo -> $x {}; say "alive" | 21:03 | |
camelia | rakudo-moar 77024f: OUTPUT«===SORRY!===Function foo needs parens to avoid taking the block.at /tmp/TusXAJFOjz:1------> sub foo {}; for foo -> $x {}⏏; say "alive"Missing block (apparently taken by 'foo')at /tmp/TusXAJFOjz:1----…» | ||
masak | std: sub foo {}; for foo -> $x {}; say "alive" | ||
camelia | std 0f2049c: OUTPUT«===SORRY!===Function 'foo' needs parens to avoid gobbling block at /tmp/NN0oiQaAMg line 1:------> sub foo {}; for foo⏏ -> $x {}; say "alive"Missing block (apparently gobbled by 'foo') at /tmp/NN0oiQaAMg line 1:--…» | ||
masak | how come Rakudo prefers "taking" to "gobbling" there? | ||
I always found "gobbling" rather charming, and descriptive. | 21:04 | ||
21:04
cooper_ joined
|
|||
jnthn | You haz a commitbitz0r... | 21:04 | |
psch | i don't remember if it rakudo used "gobble" before i added the typed exception, but i definitely used "take" for it... | 21:06 | |
sorry for removing a bit of charm :) | |||
masak | I can definitely change it back, just wanted to check for reasons first :) | ||
"take" for me conveys accepting arguments, which isn't incorrect in this case. | 21:07 | ||
but "gobble" conveys the parsing angle, which is the more fundamental problem. | |||
jnthn | psch++ # making it give an error at all | ||
psch | yeah, that makes sense; "gobble" didn't seem formal/professional enough to me, the difference wrt parsing angle/arguments didn't occur to me | 21:08 | |
timotimo | when are we ever formal/professional? :) | 21:11 | |
FROGGS | it is also interesting to see where std sets the eject | 21:13 | |
21:14
Rotwang left
21:18
brrt joined
|
|||
TimToady | professionals communicate clearly, and "gobble" is precisely what it does :) | 21:18 | |
21:20
guru joined
21:21
guru is now known as Guest37007,
Guest37007 is now known as ajr_
|
|||
masak | right. | 21:21 | |
masak changes it | |||
psch vows to pay close attention to existing wording. :P | 21:22 | ||
masak | psch: everybody wins. nice. :) | 21:24 | |
change made. building it. | |||
jnthn | psch: In 5e19a4bef09, I notice you go to the trouble of creating an anonymous lexical for orig_lhs, but here I think a local would do? | 21:25 | |
psch: Then ops :op<bind> to store in it | |||
s/ops/use/ | |||
Instead of :op<p6store> | 21:26 | ||
Then it won't leak. | |||
21:26
silug joined
|
|||
psch | jnthn: i tried binding, but binding changes the value i want to compare later on | 21:26 | |
timotimo | missing a decont? | ||
21:26
mr-fooba_ joined
|
|||
jnthn | psch: Oh...what timotimo++ just said, though. QAST::Op.new( :op('decont'), ... ) around the lookup of $_ | 21:27 | |
psch | alright, i'll correct that, thanks | 21:28 | |
timotimo | wow! i actually sniffed out a missing decont! :) | ||
i'm getting better at this whole thing | |||
21:28
larks joined,
mls_ joined,
c1sung_ joined
|
|||
jnthn | psch: Mostly it's worth correcting 'cus otherwise orig_lhs will leak | 21:28 | |
21:29
lee_ joined,
tadzik1 joined,
kaare__ joined,
lyda_ joined,
jnap1 joined
21:30
firefish_ joined,
cxreg2 joined
21:31
jercos_ joined
21:34
kaare__ left,
mr-foobar left,
jnap left,
c1sung left,
larks_ left,
cxreg left,
mls left
21:35
Some-body_ joined,
tadzik left,
ClarusCogitatio left,
DarthGandalf left,
jercos left,
kaare_ left
21:36
Some-body_ is now known as DarthGandalf,
nhayashi_ joined,
cognominal left,
eternaleye joined,
cognominal joined
|
|||
masak regrets that Perl 6 didn't nail eta reduction for methods :/ | 21:39 | ||
timotimo | well, it's a hard thing, IMO. | 21:40 | |
21:40
ClarusCogitatio joined
|
|||
masak | I'm not so sure. | 21:41 | |
21:42
takesako joined
|
|||
masak | the hardest thing is probably that the "natural" syntax for it -- $obj.method -- already means "call .method on $obj" | 21:42 | |
and there's no natural analogue to &naming_not_calling_a_sub | 21:43 | ||
though maybe &($obj.method) could be made to fly -- would need to be caught at parse time, though. | 21:44 | ||
21:44
FROGGS left
|
|||
masak | something tells me that won't be pretty. | 21:44 | |
psch | jnthn: i fixed it as per your and timotimo++'s instructions | ||
lue | masak: way I see it, either we redefine .&sub-as-meth to be an uncalled method, or we find some unicode symbol for an amerpsandy dot, with the texas version something like $obj(.)method or $obj(&)method :) | 21:45 | |
*ampersandy | |||
21:46
eiro joined
21:47
brrt left,
telex left
21:48
telex joined
|
|||
masak | lue: I'm rather fond of .&sub-as-meth by now. I use it to define ad-hoc lexically scoped "exomethods" :) | 21:48 | |
lue: and I am always *very* skeptical to any unicode-y part of core. | 21:49 | ||
I'm a traditionalist. I don't even like ¢ | |||
lue | Perhaps we need a new, vaguely m-shaped sigil. | 21:50 | |
21:50
rindolf left
|
|||
lue | masak: I'm the opposite, I wish we never got rid of ¢apture, just because it meant I could use ¢ :) | 21:50 | |
masak | lue: methods and subs are indistinguishable if you look deep enough. | ||
timotimo | &(obj.method) sounds really fishy | ||
masak | timotimo: yes, exactly. | ||
timotimo: it's mostly a measure of my desperation. | |||
lue | I'm looking at my keyboard, and I can't immediately think of a good symbol for "give me this method" in place of the * in $obj.*meth | 21:53 | |
vendethiel | I'm on windows and I despise these unicode symbols :( | 21:57 | |
lue | vendethiel: why? I thought windows had a better grip on things. | ||
vendethiel | how so ? | ||
Requiring me to type alt+WXYZ everytime I want a symbol is something I will not accept out of a language | |||
masak | m: sub foo(&match) { say "matches" if match("foo") }; foo(/foo/) | 21:58 | |
camelia | rakudo-moar 77024f: OUTPUT«No such method '!cursor_start' for invocant of type 'Str' in sub foo at /tmp/mmpaWWJaCJ:1 in block at /tmp/mmpaWWJaCJ:1» | ||
masak | m: sub foo(&match) { say "matches" if "foo" ~~ &match }; foo(/foo/) | ||
camelia | rakudo-moar 77024f: OUTPUT«matches» | ||
flussence | and entering non-latin1 chars on windows using alt-codes requires a regedit too... | ||
lue | vendethiel: I'd look into some sort of compose-key-ish solution. Compose + < + < is an easy way to type «, for example :) (or maybe ask jnthn how he handles it (or doesn't)) | 22:00 | |
vendethiel | lue: no, that's still annoying as hell. I want to be able to see this stuff on my keyboard | 22:01 | |
and I don't have an APL one (though that'd be fun :P) | |||
lue | vendethiel: I don't know how feasible that desire is, 0x11_000 keys requires a lot of space :) | 22:02 | |
vendethiel | mmh ? | 22:03 | |
lue | (There's also the OSX solution that creates additional levels of modifier keys, similar to what Shift does) | ||
sorry, 0x11_0000 | |||
22:04
bluescreen10 left
|
|||
lue would suggest a hand-writing based input method, instead of keyboards, were it not for all the confusables. | 22:06 | ||
22:10
anaeem1 joined
22:11
anaeem1 left
|
|||
timotimo | on windows, you can type these characters easily if you have the neo2 layout | 22:16 | |
but unfortunately it's a variant of the german layout | |||
so you'll also have üöä directly on their own keys | |||
lue | timotimo: biggest problem for me using a german layout is that I don't have the extra keys to do it :) | 22:17 | |
timotimo | extra keys? | 22:21 | |
lue | Yeah, I have a US keyboard, so I'm missing a couple keys in (I think) the middle and bottom rows. | 22:22 | |
timotimo | oh? i didn't know that | 22:23 | |
well, neo2 is a pleasure to work with, IMO | 22:24 | ||
kinda sad i can't recommend it to you properly | |||
masak | 'night, #perl6 | 22:26 | |
jnthn | o/ masak | ||
lue | timotimo: I'm kinda used to how easily I can access all the symbols on my keyboard, so I'm not sure I want to demote them all to level 3. At least it gets ß ↔ ẞ right, unlike the standardized layout :) | 22:27 | |
♞ masak o/ | |||
22:29
kaiserpathos left
|
|||
vendethiel | m: say (flat (%(1 => 2, 3 => 4), ('foo', 'bar'))).perl | 22:30 | |
camelia | rakudo-moar 77024f: OUTPUT«("1" => 2, "3" => 4, "foo", "bar").list» | ||
timotimo | heh | 22:34 | |
i feel quite comfortable using layer 3 for all the symbols | |||
22:38
btyler left
22:40
[particle] left
22:41
sftp left,
ajr_ left
22:42
jercos_ is now known as jercos
22:49
rurban1 joined
22:50
vike left
22:51
vike joined
22:53
bcode left
22:54
carlin left
22:55
bcode joined
22:59
chenryn__ joined
23:03
chenryn__ left,
erkan left
23:04
spider-mario left
23:09
sftp joined,
[particle] joined
23:13
jnap1 left,
jnap joined
23:16
dmol left
23:29
bcode left
23:30
tadzik1 is now known as tadzik,
bcode_ joined
23:31
bcode_ is now known as bcode
23:34
xenoterracide__ joined
23:40
firefish_ left
|