»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
jdv79 | why is the usage using an abs path? that's what which is for. | 00:01 | |
ugexe | jdv79: its because a wrapper launches it | ||
leont | Seems it was 2013 | ||
By that time, it was kind of obvious for any insider that parrot was a dead-end, and the TPF is a better umbrella really, but I can imagine how the outside world wouldn't have known | 00:02 | ||
00:02
apiw joined
|
|||
sortiz | While reading rakudo lib/Test.pm6 found two vars: $time_after and $time_before, both 'num', its use is clear. But in some places the assignments to $time_after' differ between '$time_after = nqp::time_n;' vs '$time_after = nqp::p6box_n(nqp::time_n);', and I don't understand the difference. | 00:02 | |
00:03
firstdayonthejob joined
00:05
apiw left
|
|||
timotimo | sortiz: the p6box_n seems wrong; p6box_n is a bit like "Num.new(...)", but because of reasons, it's not spelled like that | 00:05 | |
sortiz | Seems to me that the nqp::p6box_n is a leftover | ||
timotimo | so p6box_n and then assigning to a num variable is a needless back-and-forth | 00:06 | |
sortiz | timotimo, Yes, I suppose that. | ||
00:08
firstdayonthejob left
|
|||
sortiz | timotimo, Should I make a PR to fix that? | 00:09 | |
00:11
vendethiel joined,
nekrodesk left
|
|||
timotimo | either that or you let me directly edit it and mention your nickname in the commit | 00:11 | |
00:11
Herby_ joined
|
|||
Herby_ | \o | 00:12 | |
00:12
MadcapJake left
|
|||
sortiz | timotimo, please, be my guest. I have some PRs waiting ;) | 00:12 | |
Hotkeys | I really should start contributing to things more | ||
my github is barren | |||
timotimo | sortiz: huh, does that mean i shall wait for your PR, or do it myself? | 00:13 | |
sortiz | timotimo, do it yourself. | ||
timotimo | OK | 00:14 | |
i'm running tests with that change | 00:15 | ||
Hotkeys | linux users what distro do you use | 00:16 | |
I kind of want to get back into linuxy stuff | |||
sortiz | BTW, any comments on github.com/rakudo/rakudo/pull/693 will be much appreciated. | ||
Hotkeys | on my laptop at least | ||
timotimo | i'm on fedora | ||
sortiz | Hotkeys, I'm on Fedora 23. | 00:17 | |
Hotkeys | Any reason why fedora? | ||
timotimo | a friend told me fedora's cool. and it kind of is. | ||
Hotkeys | lol | ||
timotimo | i was on gentoo a long, long, long time ago. after that it was debian sid, then fedora | 00:18 | |
sortiz | Its so easy to install, and allows me to bring to production RHEL for my clients in a snap. | ||
Hotkeys | I tried gentoo once | ||
it was quite exhausting | |||
sortiz | Hotkeys, Indeed, gentoo is exhausting, unless you need to compile everything. | 00:19 | |
timotimo | i managed all right. it was a learning experience | 00:20 | |
Hotkeys | Also the last time I ran linux I used arch + i3 | ||
that was interesting | |||
timotimo | yeah, i3 is great | ||
00:20
Herby_ left
|
|||
timotimo | i've met the developer personally. he's super cool. | 00:20 | |
alpha123 quiety touts the virtues of bspwm | 00:21 | ||
Hotkeys | also at the same time I switched to arch and i3 | ||
I also tried to get into vim | |||
and there was just so much to learn | |||
:p | |||
actually vim isn't that hard for basic editing | 00:22 | ||
but still | |||
sortiz | Hotkeys, I use vim all day. | ||
timotimo | vim is enjoyable | ||
00:22
sufrostico joined
|
|||
Hotkeys | but what I mean is | 00:23 | |
one day I was using windoze and like atom | |||
and the next I was on arch with a tiling wm and vim | |||
with my only linux experience being not much more than flirting with it | |||
sortiz | And with Fedora I stay close to the Enterprise™ world. | 00:24 | |
timotimo | atom is fine, too | 00:25 | |
alpha123 | lol atom | 00:26 | |
Hotkeys | so do you use bspwm with fedora then sortiz? | ||
sortiz | I been playing with it, nice. But I'm too accustomed to vim | ||
Hotkeys, no. I use the standard gnome desktop with 2 monitors, one of them really big! | 00:29 | ||
Hotkeys | oh wait | ||
that was alpha123 | |||
that touted bswpm | |||
bspwm | |||
this is a fun bspwm gif lol raw.githubusercontent.com/windelic..._bspwm.gif | 00:31 | ||
dalek | kudo/nom: d714e50 | timotimo++ | lib/Test.pm6: throw out superfluous p6box_n, sortiz++ |
||
00:32
patrickz left,
vendethiel left,
nekrodesk joined
|
|||
timotimo | Hotkeys: i love how they implemented a shell script "move" that understands "move me into that new space over there <--" syntax! :P | 00:34 | |
timotimo bedtime | |||
sortiz | timotimo, thanks. o/ | 00:35 | |
Hotkeys | timotimo: did they actually? | ||
I thought he doesn't actually execute that line | |||
s/he/they | |||
00:36
Laurent_R left
|
|||
jdv79 | why do we need the path of the executable in the usage? | 00:37 | |
00:39
kurahaupo joined
00:44
tardisx left
00:45
perlawhirl joined
00:47
idiosyncrat_ joined
00:49
tardisx joined
00:50
jolts joined
|
|||
timotimo | Hotkeys: they didn't execute that line, hence the "! :P" | 00:55 | |
Hotkeys | just checking :p | ||
that would kind of be hilarious if they did | |||
timotimo | hmpf. someone bother me enough about setting up synopsebot finally. also making the "noise image" example in rosettacode faster | ||
Hotkeys | "We'll use minimal mappings for SDL2. The resulting code is embarrassingly slow, but it's better than nothing." | 00:57 | |
lol | |||
01:11
tardisx left,
TimToady left
01:13
TimToady joined
01:15
tardisx joined
01:16
kid511 joined
01:17
thundergnat joined
|
|||
thundergnat | m: say 1e308 | 01:17 | |
camelia | rakudo-moar d714e5: OUTPUT«1e+308» | ||
thundergnat | m: say 1.1e308 | 01:18 | |
camelia | rakudo-moar d714e5: OUTPUT«Inf» | ||
01:18
kid51 left
|
|||
thundergnat | m: say 1e308 + 79769e303 | 01:18 | |
camelia | rakudo-moar d714e5: OUTPUT«1.79769e+308» | ||
thundergnat | hmmm. | ||
not exactly a bug but... | 01:19 | ||
ugexe | if the path needs to be in the usage it could also just show the relative path next to the commands, and then show the absolute path a single time at the top or bottom | 01:25 | |
i guess that doesnt solve the $?FILE/<sha1> issue of it though | 01:28 | ||
AlexDaniel | thundergnat: but? | ||
01:29
cbk left,
cbk joined
01:30
kurahaupo left
|
|||
dalek | kudo/nom: ff15fda | hoelzro++ | tools/build/Makefile-JVM.in: Install Rakudo jars in proper location Stuff written in NQP should go under $prefix/share/nqp/lib (J_LIBPATH), and stuff written in Perl 6 should go under $prefix/share/perl6/runtime/ (PERL6_LANG_DIR), since that's where the respective module loaders look for it |
01:30 | |
AlexDaniel | thundergnat: perl 6 defaults to Rats unless you use 1e1 notation | ||
AlexDaniel | thundergnat: in which case it is a Num | 01:31 | |
01:33
wamba left
01:36
lestrrat left
|
|||
AlexDaniel | m: say 1 if | 01:38 | |
camelia | rakudo-moar d714e5: OUTPUT«5===SORRY!5===Whitespace required after keyword 'if'at /tmp/zpVFACkLSG:1------> 3say 1 if7⏏5<EOL>Whitespace required after keyword 'if'at /tmp/zpVFACkLSG:1------> 3say 1 if7⏏5<EOL>Whitespace required after keyword 'if'…» | ||
AlexDaniel | meh, still lta | ||
01:39
sufrostico left
|
|||
Juerd | Wow, how much whitespace does it want? :) | 01:39 | |
01:39
leont left
|
|||
Juerd | m: say 1 if ; | 01:39 | |
camelia | rakudo-moar d714e5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/O89yz6Bko5Missing semicolonat /tmp/O89yz6Bko5:1------> 3say 1 if 7⏏5;» | ||
01:39
lestrrat joined
|
|||
Juerd | Missing semicolon... Where? Right there, where the semicolon is. | 01:39 | |
AlexDaniel | camelia: IT IS RIGHT THERE!! | ||
Juerd thinks it's funny | 01:40 | ||
geekosaur | never mind LTA, that' less than sane >.> | ||
Juerd | Can we keep it? :) | ||
AlexDaniel | Juerd: this bug may celebrate its birthday pretty soon: rt.perl.org/Ticket/Display.html?id=125596 | 01:41 | |
01:42
MadcapJake joined
|
|||
AlexDaniel | Juerd: you may also like this one | 01:42 | |
m: repeat { } until; | |||
camelia | rakudo-moar d714e5: OUTPUT«5===SORRY!5===Whitespace required after keyword 'repeat { } until'at /tmp/i6t5gwXNWX:1------> 3repeat { } until7⏏5;Missing "while" or "until"at /tmp/i6t5gwXNWX:1------> 3repeat { } until7⏏5; expecting any of: …» | ||
AlexDaniel | whitespace, ok | ||
m: repeat { } until ; | |||
camelia | rakudo-moar d714e5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/vTHOsfVRppMissing "while" or "until"at /tmp/vTHOsfVRpp:1------> 3repeat { } until7⏏5 ; expecting any of: prefix term» | ||
AlexDaniel | while or until? Ok | ||
m: repeat { } until until; | |||
camelia | rakudo-moar d714e5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MVpSFCztAOUndeclared routine: until used at line 1» | ||
AlexDaniel | xD | ||
01:43
sevvie joined
|
|||
AlexDaniel | m: if True if { }; | 01:45 | |
camelia | rakudo-moar d714e5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/o55v9fkIPrMissing blockat /tmp/o55v9fkIPr:1------> 3if True if 7⏏5{ };» | ||
Juerd | Haha, those are nice too | ||
AlexDaniel | Juerd: well, I'm going through my bug reports. There's a whole bunch of them which are based on “I'm treating the error message too seriously” idea | 01:46 | |
surely these are LTA but honestly there are better things to fix… :) | 01:47 | ||
sortiz | AlexDaniel, Indeed. | 01:48 | |
Juerd | Fixing stuff isn't just an ordered list of to-do's. People can cherry pick things they like, or that match their expertise. | ||
AlexDaniel | yeah, that's why I report everything | ||
Juerd | m: &() | 01:49 | |
camelia | ( no output ) | ||
Juerd | m: &("Weird comment operator only allows valid syntax in it ;-)") | 01:50 | |
camelia | ( no output ) | ||
AlexDaniel | comment operator :D | ||
Juerd | If not comment operator, then sink warning suppressing operator ;) | ||
It's only a comment in sink context | |||
m: say &("If you like ampersands, you may use many.") | 01:51 | ||
camelia | rakudo-moar d714e5: OUTPUT«If you like ampersands, you may use many.» | ||
Juerd | m: "foo" | ||
camelia | rakudo-moar d714e5: OUTPUT«WARNINGS for /tmp/nZ2dEFodi8:Useless use of constant string "foo" in sink context (line 1)» | ||
Juerd | m: &("foo") | ||
camelia | ( no output ) | ||
AlexDaniel | m: say (2,8,15)».&(* × 2) | ||
camelia | rakudo-moar ff15fd: OUTPUT«(4 16 30)» | ||
AlexDaniel | perhaps that's where it comes from | ||
Juerd | Ah | ||
AlexDaniel | m: &({.say})(25) | 01:52 | |
camelia | rakudo-moar ff15fd: OUTPUT«25» | ||
AlexDaniel | m: &(*.say)(25) | ||
camelia | rakudo-moar ff15fd: OUTPUT«25» | ||
AlexDaniel | sorry, that's not a comment operator :D | 01:53 | |
Juerd: also notice how the result is in sink context and that's totally fine | |||
m: say &(*.say)(25) # you can use it but most likely you don't want | |||
camelia | rakudo-moar ff15fd: OUTPUT«25True» | ||
AlexDaniel | Juerd: speaking of funny bug reports: rt.perl.org/Ticket/Display.html?id=125682 | 01:54 | |
Hotkeys | m: {.say}(25) | ||
camelia | rakudo-moar ff15fd: OUTPUT«25» | ||
AlexDaniel | though that & is a bit redundant | 01:55 | |
m: say (*.say)(25) | |||
camelia | rakudo-moar ff15fd: OUTPUT«25True» | ||
Hotkeys | heh | ||
01:58
yqt left
|
|||
sortiz | m: (&).WHAT.say | 01:59 | |
camelia | rakudo-moar ff15fd: OUTPUT«(Callable)» | ||
sortiz | oO( The "identity" one, ie. returns its arguments when called ) | 02:03 | |
02:07
luiz_lha joined,
colomon_ joined,
luiz_lha is now known as Guest60506
02:10
Actualeyes joined
02:11
a3r0_ joined
02:13
rindolf left
02:14
Sgeo left
|
|||
AlexDaniel | how can I merge two tickets? | 02:15 | |
02:15
Guest42178 left,
colomon left,
a3r0 left,
colomon_ is now known as colomon
|
|||
AlexDaniel | it looks like I reported the same bug twice | 02:16 | |
rt.perl.org/Ticket/Display.html?id=126223 and rt.perl.org/Ticket/Display.html?id=126855 | |||
sortiz | AlexDaniel, In that case, simply close the older. | ||
AlexDaniel | ok | 02:18 | |
02:18
Sgeo joined
|
|||
thundergnat | AlexDaniel: you missed my (rather feeble) point earlier. 1.1e308 overflows and evaluates to Inf but 1.0e308 + 79769e303 does not. | 02:19 | |
m: say 1e308 + 79769e303 | |||
camelia | rakudo-moar ff15fd: OUTPUT«1.79769e+308» | ||
thundergnat | m: say 1.1e308 | ||
camelia | rakudo-moar ff15fd: OUTPUT«Inf» | ||
AlexDaniel | thundergnat: yeah, I know. But you're playing on the edge, so… If you don't want such problems then just use Rats :) | 02:20 | |
I'm not sure where does that difference come from though. Is it how any float behaves? | |||
or is it a double | |||
thundergnat | Yep. I was trying to find the edge. But it's kind of fuzzy. | 02:21 | |
Like I said, probably not a bug, but LTAIMO | 02:22 | ||
AlexDaniel | thundergnat: I don't think that Perl 6 should attempt to fix how floats work | ||
it already does by defaulting to Rats :) | |||
you might also say that Inf should not appear there at all, because, you know, it is less than awesome :) | 02:23 | ||
thundergnat | Actually, Inf is totally awesome. It has to show up sometime if we are trying to follow IEEE 754 (and we are as far as I can tell.) | 02:27 | |
AlexDaniel | thundergnat: does IEEE 754 say anything about your example? | 02:29 | |
02:31
nekrodesk left
|
|||
AlexDaniel | m: :::<o> | 02:32 | |
camelia | rakudo-moar ff15fd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/uekIhmnvIcNo such symbol ':<o>'at /tmp/uekIhmnvIc:1------> 3:::<o>7⏏5<EOL>» | ||
AlexDaniel | awesome | ||
thundergnat | AlexDaniel: IEEE 754 does not seem to specifically specify where the overflow will happen, only that it needs to happen gracefully. The 1.7976E+308 value I was messing with is the common Double precision range maximum. | 02:36 | |
I was just pointing out the oddity that you can get a sum above 1e308 to display but cant display it directly. | 02:37 | ||
It really isn't a big deal to me and I don't want anyone to think I'm complaining about it. It was just odd. | 02:38 | ||
02:39
thundergnat left
02:41
Humbedooh left
02:43
kid511 left,
Humbedooh joined
02:44
Humbedooh left,
Humbedooh joined
02:45
vendethiel joined
02:47
Guest60506 left
02:51
mattp__ left
02:53
FROGGS_ joined,
mattp__ joined
|
|||
AlexDaniel feels like he said something wrong | 02:55 | ||
02:57
FROGGS left
|
|||
sortiz | AlexDaniel, I don't think so, don't worry | 02:58 | |
dalek | p/experiment-multi-line-repl: a59d662 | hoelzro++ | src/HLL/Compiler.nqp: Move continuation detection into eval With this change, eval can return the output of running the code, or a sentinel value that indicates that more input is needed to run a chunk of code. This is so that more advanced forms of detecting when we need more input, such as if the user is entering input for a multi-line statement like a block. This is just a proof-of-concept change; I don't really like how eval indicates to its caller that it needs more input. But at least this will get people to try and see if multi-line input could be feasible. We also add a new method to HLL::Compiler - needs-more-input, which is used in conjunction with the sentinel value returned by eval. |
||
p/experiment-multi-line-repl: a789a7e | hoelzro++ | src/HLL/Compiler.nqp: Check if we need more input due to trailing backslash This is a bit of a hack, but it's good enough for this experiment |
|||
sortiz | hoelzro++ # your work towards a better REPL | 03:01 | |
konobi | so, some comparisons to repls that could help are bpython, ipython and DreamPie (for python) | 03:03 | |
all have differing features | 03:04 | ||
but which ones are the best to suit a core repl? | |||
hoelzro | bpython relies on curses, right? | 03:05 | |
03:07
Herby_ joined
|
|||
Herby_ | o/ | 03:08 | |
03:08
sevvie left
|
|||
konobi | hoelzro: not sure... could be just tput | 03:08 | |
hoelzro | I'm pretty set on staying with a regular CLI REPL for straight up 'perl6' | 03:09 | |
03:09
vendethiel left
|
|||
hoelzro | more advanced interfaces can be provided by modules | 03:09 | |
Hotkeys | Could also start the repl with an argument for curses maybe | 03:10 | |
Like perl6 --curses | |||
Hotkeys shrugs | |||
hoelzro | I don't want curses knowledge in Perl6::Compiler | ||
I just feel it's too much complexity to introduce | |||
konobi | hoelzro: i don't need curses to do curses like stuff | ||
03:10
noganex_ joined
|
|||
hoelzro | I don't mean curses in particular; I mean the idea of managing a TUI in Perl6::Compiler | 03:11 | |
konobi | then good ol readline | ||
hoelzro | readline is as far as I'll go | ||
sortiz | hoelzro, imo a good enough CLI REPL in core and hooks for extension is the best approach. | ||
hoelzro | (which is as far as we've gone =]) | ||
what I want (which may be at odds with what others want) is a basic REPL that ships with rakudo | 03:12 | ||
I would like to provide a Perl6::REPL for other modules to use | |||
for more advanced stuff | |||
sortiz | I totally agree. | 03:13 | |
Hotkeys | Seems reasonable | ||
hoelzro | heck, even the existing tab completion might be too advanced, but I like having it =) | ||
03:13
noganex left
|
|||
hoelzro | I'm going to write up my goals for the REPL, as soon as I finish reading this article | 03:13 | |
konobi | yeah, i'd have thought it would be just part of Task::Rakudo | 03:14 | |
sortiz | I'm using Readline, that lacks tab completion, but Linenoise has problems with unicode. | 03:17 | |
hoelzro | konobi: I'm not really familiar with Task::Rakudo, but we don't include it in Star because of licensing | ||
sortiz: unfortunately, the ReadLine binding doesn't have a way to offer custom tab completion | 03:18 | ||
not yet, anyway | |||
03:18
idiosyncrat_ left
|
|||
dalek | kudo-star-daily: 24a1517 | coke++ | log/ (9 files): today (automated commit) |
03:18 | |
03:19
Ben_Goldberg joined
|
|||
sortiz | And I need multiline support and persistent history. | 03:19 | |
When time permits I'll take a close look. | 03:21 | ||
konobi | there's always libeditline | 03:22 | |
and linenoise | 03:23 | ||
hoelzro | sortiz: have you tried my branch? | ||
konobi: that's why Linenoise (now) ships with R* =) | |||
sortiz | hoelzro, not yet. | 03:24 | |
hoelzro | please do! I want some feedback on how well multi-line input works for others | ||
sortiz | Will be a pleasure. | 03:25 | |
konobi | hoelzro: nice! | ||
sortiz | hoelzro, expect a lot of feedback soon. | 03:26 | |
hoelzro | \o/ | ||
Hotkeys | m: say comb "string" | 03:28 | |
camelia | rakudo-moar ff15fd: OUTPUT«5===SORRY!5=== Error while compiling /tmp/m3D0GqVCeOCalling comb(Str) will never work with proto signature ($,, $?)at /tmp/m3D0GqVCeO:1------> 3say 7⏏5comb "string"» | ||
Hotkeys | why can't you do this? | ||
konobi | hoelzro: yeah... there's a pure JS library that does a bunch of curses stuff pretty dang well | 03:29 | |
Hotkeys | I know there's the method | ||
but I feel like you should be able to function comb a string | |||
gfldex | Hotkeys: please file a bug report | 03:30 | |
konobi | hoelzro: npm:blessed ... it's a pretty interesting approach | ||
hoelzro | konobi: neat! maybe down the road, someone will write a curses REPL | 03:31 | |
Herby_ | join #perl | ||
03:32
Ben_Goldberg left
|
|||
Hotkeys | I don't know if it's a bug | 03:32 | |
it's just that the matcher isn't optional in the sub | |||
github.com/rakudo/rakudo/blob/7d4c...ol.pm#L340 | 03:33 | ||
why does it always do the blob thing | |||
oh | |||
last time it was indexed in search | 03:34 | ||
sortiz | Hotkeys, Yes, seems a bug, all mult subs needs $matcher. | ||
03:34
Actualeyes left
03:36
BenGoldberg joined
|
|||
sortiz | m: say comb /./, "string"; | 03:36 | |
camelia | rakudo-moar ff15fd: OUTPUT«(s t r i n g)» | ||
sortiz | Hotkeys, see github.com/rakudo/rakudo/blob/nom/...ol.pm#L340 | 03:40 | |
Hotkeys | ik I just linked it :p | ||
wrong commit same bit though | |||
this part of github search: "You can't use the following wildcard characters as part of your search query: . , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]" | 03:42 | ||
is so infuriating | |||
those are legitimate things to include in a query | 03:43 | ||
when searching code | |||
hoelzro | ok, here are my thoughts on the future of REPL 6: gist.github.com/hoelzro/6bb9aa5163c7f79016ff | 03:44 | |
03:48
nekrodesk joined
03:50
colomon left
03:51
colomon joined,
Zero_Dogg left
03:52
Zero_Dogg joined
03:53
Actualeyes joined
|
|||
sortiz | hoelzro, I found one feature missing, some form (may be a dynamic var) to introduce the result of the last evaluation. | 03:53 | |
03:54
addison left
|
|||
MadcapJake | sortiz, that's a great idea! | 04:02 | |
hoelzro | sortiz: ah, thanks! | 04:04 | |
added! | 04:05 | ||
sortiz | Thinking about it, isn't trivial... | ||
MadcapJake | also would be nice: after a period, press tab (twice?) and it will take whatever you're calling's ^methods and print them in columns below | 04:06 | |
sortiz | MadcapJake, that's in "Improve tab completions". | 04:08 | |
MadcapJake | ok, yeah, wasn't explicitly stated as such, but definitely a big one, i'm still quite a novice at Perl 6 and i use ^methods all the time, would love to be able to call `fmt` on it isn't on Lists | 04:10 | |
s/isn't on/but it isn't on/ | |||
04:11
mr-foobar joined
|
|||
sortiz | hoelzro, Perfect, we have a lot work ahead. :) | 04:12 | |
hoelzro | indeed =) | 04:24 | |
I think step #1 is make the REPL into Perl 6 code | 04:25 | ||
after the multi line stuff is merged, anyway =) | |||
anyway, off to bed | |||
night #perl6 | |||
MadcapJake | night! | 04:26 | |
04:26
BenGoldberg left
|
|||
[Coke] | I think we have better things to do than worry if the PaFo gets accepted to GSOC. Like, if you're interested in TPF applying, work on that. | 04:28 | |
04:30
BenGoldberg joined
04:33
AlexDaniel left
|
|||
sortiz | S99: PaFo? | 04:34 | |
[Coke] | Parrot Foundation | 04:35 | |
04:38
Sgeo_ joined
|
|||
sortiz | ah, tnks [Coke] | 04:39 | |
04:40
Sgeo left,
Herby_ left
04:44
telex left
04:45
BenGoldberg left
04:46
molaf joined,
telex joined
04:57
grondilu left
05:01
molaf left
05:06
sevvie joined
05:24
khw left
05:45
Cabanossi left
05:46
FROGGS_ is now known as FROGGS
|
|||
FROGGS | .tell timotimo I can try... | 05:47 | |
yoleaux | FROGGS: I'll pass your message to timotimo. | ||
05:48
Cabanossi joined
|
|||
konobi | hoelzro: is a fun package... www.npmjs.com/package/blessed | 06:05 | |
no dependencies, JS or C libs | |||
06:23
skids left,
vike left
06:28
sevvie left
06:39
AiHasBeenSolved joined
|
|||
AiHasBeenSolved | ai.neocities.org/P6AI_FAQ.html | 06:39 | |
m Back to coding the Perl6 Killer App artificial intelligence | 06:40 | ||
q | |||
quit | |||
06:40
AiHasBeenSolved left
|
|||
masak | oh good, AI has been solved. then maybe we can find some other buzzword to render completely meaningless. | 06:42 | |
06:43
FROGGS left
|
|||
nine | AI has been solved? Nice... | 06:48 | |
konobi | well, at least the content is actually related | 06:49 | |
06:49
tardisx left
|
|||
konobi | rather than just 'hot shingles looking for you!' | 06:50 | |
07:04
perlawhirl left
|
|||
masak | it's related, but somehow I get the feeling that when it says "strong AI", the text actually means something more like "hilarious Markov-chain generator" | 07:08 | |
07:09
FROGGS joined
07:10
domidumont joined
07:14
domidumont left
07:18
domidumont joined
07:26
nebuchadnezzar joined
07:39
firstdayonthejob joined
07:41
nakiro joined,
sno left
07:42
darutoko joined
|
|||
[Tux] | test 22.459 | 07:44 | |
test-t 11.884 | |||
csv-parser 50.993 | |||
07:44
_Gustaf_ joined
07:58
vike joined
07:59
abraxxa joined
08:02
hippie1 joined,
hippie left
08:03
domidumont left
08:04
CIAvash joined
|
|||
moritz | masak: "strong AI" is always what we can't do yet :-) | 08:04 | |
08:05
domidumont joined
08:06
tardisx joined,
RabidGravy joined
08:08
domidumont left
08:09
virtualsue joined
08:12
sjoshi joined
|
|||
RabidGravy | boom! | 08:12 | |
08:14
mr-foobar left
08:15
mr-foobar joined
08:20
xinming left
08:29
ely-se joined
08:40
firstdayonthejob left
|
|||
masak | moritz: I see nothing impossible *in principle* with a software agent that thwarted my every attempt to unmask it as not alive. and I'd be fine with calling that "strong AI" :) | 08:42 | |
having said that, I acknowledge that it's really, really, really, really, really hard. | 08:43 | ||
moritz | on the other hand, many great things have achieved that would have counted as AI a while ago | 08:44 | |
search engines answering more questions for you than any single human ever could | |||
but that's not AI enough for us, hence the desire for "strong AI" | |||
also when I take pictures with my smartphone, it hilights and focuses on faces, and does so pretty well and in real time. Nobody seems to make a big fuss about that, but image recognition is hard | 08:46 | ||
konobi | well, also depends how it's applied too | ||
08:47
cbk_ joined
08:52
cbk left,
Celelibi left,
Celelibi joined
08:54
zakharyas joined
08:55
dakkar_ joined,
kamel joined
08:56
wamba joined
|
|||
dalek | kudo/nom: 6b53ac7 | (Salvador Ortiz)++ | src/core/Failure.pm: Implement Failure.handled as documented |
08:57 | |
kudo/nom: ebf89c5 | (Salvador Ortiz)++ | / (7 files): Merge branch 'nom' of github.com/rakudo/rakudo into failure.handled |
|||
kudo/nom: e375087 | (Salvador Ortiz)++ | src/core/Failure.pm: Follows the spec for Failure.handled |
|||
kudo/nom: 311a98b | lizmat++ | src/core/Failure.pm: Merge pull request #693 from salortiz/failure.handled Implement Failure.handled as documented |
|||
09:01
bowtie_ left,
Laurent_R joined
09:03
TEttinger left,
TEttinger joined
09:08
bowtie joined,
bowtie is now known as Guest10011
09:10
johan_ is now known as johan
|
|||
RabidGravy | I hate Perl 6 - it makes doing some things so easy and nice that I'm compelled to add features to stuff and never finish anything | 09:16 | |
09:17
domidumont joined
09:18
virtualsue left
|
|||
DrForr | No good software ever gets completed. | 09:19 | |
RabidGravy | It all starts with "ooOOooooh that'll be really easy, I'll just do it" and ends in a never-ending cycle of "oOOOoooh I can do *that* - I'll just add it" | ||
sortiz | RabidGravy, I share your pain. | 09:20 | |
RabidGravy | :) | 09:21 | |
stmuk | most software with a sprawling scope never gets finished only some small very specific tools done | ||
sortiz | On the other side, Perl 6 is deliberately designed to never be "complete" | 09:22 | |
09:23
virtualsue joined
|
|||
sortiz | That's wonderful! :) | 09:23 | |
09:25
sno joined
09:27
ocbtec joined
|
|||
sortiz | But for now we need to make it faster ;) | 09:27 | |
09:29
virtualsue left
09:33
fireartist joined
09:35
Guest10011 left
|
|||
sortiz | .oO( I'll need to confess how much I depend on Google Translate to write in English? ) |
09:35 | |
09:36
bowtie_ joined
09:38
virtualsue joined
|
|||
huf | you can do that? use gtranslate to *produce* english? | 09:42 | |
DrForr | Doesn't work for any other language, maybe English is the thing :) | 09:43 | |
09:43
lsm-desktop left
|
|||
sortiz | Frequently need to check my grammar, my native language is Spanish, and my English is a little rusty. | 09:46 | |
DrForr | Lots of native English speakers need to do the same thing. Not enough do :) | ||
huf | that's amazingly brave, that you'd trust gtranslate on grammar :) | ||
though maybe it works pretty well with spanish->english, dunno | 09:47 | ||
sortiz | When in doubt yes. :) | ||
DrForr | I used to do localization work, and every time I heard someone say 'Well, let's just run it through Google Translate for a first cut' shortly afterward there was the sound of <headdesk/>. | 09:48 | |
sortiz | :) | 09:49 | |
huf | yeah, i'm more surprised when it gives me an accurate translation than when it doesnt | ||
i mean, it cant deal with sentences as mindbogglingly expensive as "the bread was expensive" | 09:50 | ||
(it gets it confused with "it was expensive bread") | 09:51 | ||
sortiz | Well, if what I write here is reasonably understandable, my method does not work so badly. | ||
huf | it's pretty good, hence my amazement | ||
also obviously i meant "mindbogglingly complex" above | 09:52 | ||
moritz | German <-> English also works pretty well | ||
09:52
domidumont left
|
|||
huf | maybe it's just my uralic underprivilege | 09:56 | |
i mean seriously, how hard can bread being expensive be :D | |||
timotimo | FROGGS: though given my lingering interest in games-making, how is your box2d binding coming along? is NativeCall++ far enough by now? | 09:57 | |
yoleaux | 05:47Z <FROGGS> timotimo: I can try... | ||
FROGGS | timotimo: I think NativeCall is good enough, and since we hav HAS now, the bindings should be less typing nowadays | 09:58 | |
timotimo: I'll find some time to work on it | |||
timotimo | that's cool :) | ||
10:02
nekrodesk left
|
|||
moritz wants CAN HAS | 10:03 | ||
sortiz wants Blob/Buf support in CStructs | 10:04 | ||
Or fast conversions between CArray and Blob | 10:08 | ||
10:08
espadrine joined
|
|||
timotimo | yeah | 10:10 | |
10:13
rindolf joined
|
|||
sortiz | timotimo, Its REPRs should be similar, its possible a form of cast? | 10:15 | |
timotimo | it'll also probably need a copy | ||
sortiz | Sure, for CArray we can get a pointer, if can be obtained from the MVMArray, a simple memcopy suffice | 10:17 | |
10:18
leont joined
|
|||
sortiz | For start, one way is enough. | 10:20 | |
10:27
pmurias joined
|
|||
timotimo | the thing is, VMArray will - on its own accord - run realloc on its pointer | 10:30 | |
sortiz | timotimo, I know, that is why I'm thinking in a fast copy, move the data from CArray to a new VMArray and let the VMArray decide their fate. | 10:36 | |
10:39
leont left
|
|||
sortiz | From Rakudo to native, Blob can be used in native calls, but many APIs uses structs to returns data, in those cases all we have in CArray. | 10:39 | |
s/in/is/ | 10:41 | ||
DrForr | VMArray, you've piqued my interest. | 10:42 | |
10:47
virtualsue left
|
|||
sortiz | The REPR of Blob and Buf | 10:48 | |
DrForr | I wanted to talk with nine about the notion of C#-style managed pointers when we were at FOSDEM but not enough time and too much beer. | 10:50 | |
sortiz | Right now we can send them to native, but can't receive it, bc the size can't be guessed. | 10:52 | |
So there are unistantiables. | |||
And ss timotimo said, its memory is MoarMV managed. | 10:55 | ||
stmuk | does panda work with gitlab urls in the ecosystem? | 10:58 | |
RabidGravy | dunno, what's gitlab? | ||
stmuk | something like github | 10:59 | |
RabidGravy | yeah just seen | 11:00 | |
sortiz | stmuk, if its URLs are standar git URLs should work. | ||
*standard | |||
11:01
kaare_ joined
|
|||
RabidGravy | is there any way of creating an anonymous method (or sub) with a return type that isn't known in advance ? | 11:02 | |
11:02
jevin left
11:03
jevin joined
|
|||
sortiz | RabidGravy, you don't need to declare its return type. | 11:03 | |
Or use Mu. | 11:04 | ||
RabidGravy | no but what if I wanted to? | ||
jnthn | RabidGravy: Would mixing in a role { method returns() { Int } } or so work enough? | ||
RabidGravy | or actually needed to | ||
jnthn | Or do you want it to actually do the checking? :) | ||
11:04
jevin left
|
|||
RabidGravy | yeah, want the actual checking, 'cause I want to create a rw method that will actually return a Proxy that will cause interaction with "something else" | 11:05 | |
jnthn | .wrap it maybe | 11:06 | |
11:06
jevin joined
|
|||
RabidGravy | and the something else will crap out if I supply a wrong value so I'd rather crap out in perl space early | 11:06 | |
jnthn | Or mix in a role that does postcircumfix:<( )> and then does callsame | 11:07 | |
RabidGravy | just trying something | ||
jnthn | And then checks the result type | ||
11:07
wamba left
|
|||
RabidGravy | actually, this may work | 11:09 | |
m: my $a = (my method foo is rw { }) but Callable[Bool]; say $a.of | |||
camelia | rakudo-moar 311a98: OUTPUT«(Bool)» | ||
RabidGravy | :-O | ||
11:10
sjoshi left
11:11
apejens_ is now known as apejens
|
|||
jnthn | :) | 11:12 | |
11:14
Perleone joined
|
|||
RabidGravy | Hmm it doesn't actually check it, may need an additional layer | 11:18 | |
11:21
TEttinger left
11:24
sjoshi joined
11:27
wamba joined
|
|||
lizmat | m: my $h = Hash[Int,Mu].new("a",42); dd $h # this works | 11:31 | |
camelia | rakudo-moar 311a98: OUTPUT«Hash[Int,Mu] $h = (my Int %{Mu} = :a(42))» | ||
lizmat | m: class A is Hash[Int,Mu] { } # this doesn't :-( | ||
camelia | rakudo-moar 311a98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/aHnt6eLu8zCannot call trait_mod:<is>(A, Hash, Array); none of these signatures match: (Mu:U $child, Mu:U $parent) (Mu:U $child, :$DEPRECATED!) (Mu:U $type, :$rw!) (Mu:U $type, :$nativ…» | ||
lizmat | jnthn: suggestions? ^^^ | 11:32 | |
m: my \T := Hash[Int,Mu]; BEGIN dd T; class A is T { } # :-( | 11:34 | ||
camelia | rakudo-moar 311a98: OUTPUT«Mu===SORRY!===No compile-time value for T» | ||
moritz | m: my \T := Hash[Int,Mu]; BEGIN dd T; my \A = Int.HOW.new_type(name => 'A'); A.^add_parent(T); A.^compose; | 11:36 | |
camelia | rakudo-moar 311a98: OUTPUT«Mu» | ||
moritz | m: my \T := Hash[Int,Mu]; my \A = Int.HOW.new_type(name => 'A'); A.^add_parent(T); A.^compose; dd A | ||
camelia | rakudo-moar 311a98: OUTPUT«Cannot look up attributes in a type object in block <unit> at /tmp/mrx16OWi14 line 1» | ||
moritz | m: my \T := Hash[Int,Mu]; my \A = Int.HOW.new_type(name => 'A'); A.^add_parent(T); A.^compose; say A.perl | 11:37 | |
camelia | rakudo-moar 311a98: OUTPUT«A» | ||
moritz | m: my \T := Hash[Int,Mu]; my \A = Int.HOW.new_type(name => 'A'); A.^add_parent(T); A.^compose; say A.^mro | ||
camelia | rakudo-moar 311a98: OUTPUT«((A) (Hash[Int,Mu]) (Hash) (Map) (Cool) (Any) (Mu))» | ||
lizmat | moritz++ | ||
jnthn | You'd have to do constant to have it at compile time | ||
m: constant \T = Hash[Int,Mu]; class A is T { } | |||
camelia | ( no output ) | ||
jnthn | m: constant \T = Hash[Int,Mu]; class A is T { }; say A.^mro | ||
camelia | rakudo-moar 311a98: OUTPUT«((A) (Hash[Int,Mu]) (Hash) (Map) (Cool) (Any) (Mu))» | ||
lizmat | jnthn++ | 11:38 | |
jnthn | m: constant \T = Hash[Int,Mu]; class A is T { }; my %x is A; %x{1} = 42; say %x | ||
camelia | rakudo-moar 311a98: OUTPUT«1 => 42» | ||
lizmat | .oO( one step closer to subclassing Bag from object hashes) |
||
jnthn | Not quite sure why a straight "is" doesn't work there | ||
RT-able imo | |||
moritz | iirc my %x is .. never worked | 11:39 | |
jnthn | moritz: It was implemented late November or so | ||
moritz | m: constant \T = Hash[Int,Mu]; class A is T { }; my %x := A.new; %x{1} = 42; say %x | ||
camelia | rakudo-moar 311a98: OUTPUT«1 => 42» | ||
moritz | oh | ||
m: constant \T = Hash[Int,Mu]; class A is T { }; my %x := A.new; %x{'str'} = 42; say %x | |||
camelia | rakudo-moar 311a98: OUTPUT«str => 42» | ||
jnthn | m: my %h is BagHash; %h<a>++; say %h; %h<a>--; say %h | ||
camelia | rakudo-moar 311a98: OUTPUT«BagHash.new(a)BagHash.new()» | ||
11:43
kid51 joined
|
|||
lizmat | hmmm... I wonder if we have spectest coverage for that | 11:43 | |
jnthn | is? | ||
lizmat | my %h is BagHash | ||
jnthn | Not sure if I used that exact example | ||
But pretty sure I added tests | 11:44 | ||
lizmat | well, yes, there's tests but skipped atm | ||
11:44
moznion left
|
|||
lizmat | apparently ticket #124490 | 11:44 | |
jnthn | The mechanism is the same one shaped arrays relies on | ||
So it went in at the same kinda time | |||
lizmat | m: my %h is BagHash = a => 1 | 11:45 | |
camelia | rakudo-moar 311a98: OUTPUT«Cannot modify an immutable BagHash in block <unit> at /tmp/Zt7WavPC8j line 1» | ||
lizmat | :-( | ||
jnthn | Yeah, I added tests | ||
e3df3841f7b53676b | |||
in roast | |||
lizmat: That'll be because BagHash has no STORE method | 11:46 | ||
lizmat | ah, ok, fixable then | ||
subclass from Hash, provide own STORE_AT_KEY, done | |||
11:47
ely-se left
|
|||
jnthn | Wait, should BagHash subclass Hash? | 11:49 | |
I think that needs a bit more thought/discussion. It's a quite visible change. | |||
(Not saying it's wrong, and the risk of breakage is very low, but we won't be able to undo it in the future without breakage.) | 11:50 | ||
At least, not if it makes it into a language release. | 11:51 | ||
And given it's about objects that basically means "we won't be able to undo it" | |||
11:52
ely-se joined
|
|||
sortiz | o/ #perl6 | 11:54 | |
lizmat | jnthn: how is it a visible change? I mean the only thing that will change is the ^mro ? | ||
moritz | lizmat: type checks against Hash change behavior | ||
not all people use % or Associative | 11:55 | ||
11:55
zakharyas left
|
|||
lizmat scratches the idea of subclassing Bag/BagHash/Mix/MixHash | 11:58 | ||
jnthn | Yeah, it's the type checks | ||
I'm not saying an outright "no", something just makes me hesitate a bit on it | |||
lizmat | consider it shelved until there're more clarity | 11:59 | |
jnthn | *nod* | ||
12:01
gcole left,
apiw joined,
gcole joined,
sortiz left,
Skarsnik joined
|
|||
timotimo | could still move these things out into a role | 12:06 | |
rather than changing the class hierarchy | |||
12:07
apiw left
|
|||
lizmat | timotimo: don't really see how that can be done without adding a layer of indirection | 12:08 | |
timotimo | oh | ||
i didn't look thoroughly yet, sorry :S | |||
lizmat | unifying the approaches was what I was going for... but it looks like it's going to be 6.d.a | ||
at the earliest | |||
timotimo | well, 6.d.a is "right now", though | 12:09 | |
so at least that's good | |||
lizmat | timotimo: ??? where's 6.d.a ? | 12:10 | |
timotimo | well, 6.d.a is the first alpha of 6.d, isn't it? | ||
so that's where our new changes go right now, no? | 12:11 | ||
lizmat | eh, no, that's stuff that's done in the setting.d, no ? | ||
so far, I only see a RESTRICTED.setting | 12:12 | ||
timotimo | ah, that's still in a/the branch | 12:13 | |
sorry, i'm totally behind the curve :| | |||
lizmat | in any case, if I read jnthn's blog post correctly, 6.d would be for new classes only, as the mess of having the same class in both settings, would be rather troublesome | ||
timotimo | i thought 6.d can just shadow things in 6.c by virtue of being the outer one | 12:14 | |
but perhaps that is problematic with regards to things in the .c setting refering to "Hash" and getting .c.Hash? | |||
lizmat | stuff like that, yeah | ||
12:17
apiw joined
12:20
apiw left
12:21
apiw joined
|
|||
stmuk books nuremberg flight on *that* Irish airline :/ | 12:23 | ||
moritz | the one that wants to charge for toilet usage? | 12:25 | |
timotimo | shouldn't they be glad you're reducing the total weight of the airplane? | ||
moritz | but you aren't, as long as they keep everything inside | 12:26 | |
timotimo | oh | ||
stmuk | yes .. still they have beer in Bavaria I guess | ||
DrForr | stmuk: Don't forget to purchase your cans of Perri-Air in advance. | 12:28 | |
12:28
apiw left
12:29
domidumont joined
12:30
domidumont left
12:31
domidumont joined,
apiw joined
|
|||
Skarsnik | Hello | 12:32 | |
How I can have line return in a MAIN argument WHY? | 12:33 | ||
I try #= line 1 #= #= Line 2 but it does not work (and \n just print a ... \n) | 12:34 | ||
12:38
moznion joined
|
|||
timotimo | right, those are just concatenated | 12:39 | |
you can try having a second paragraph | |||
or a "verbatim" block | |||
12:40
apiw left
12:44
sufrostico joined
12:49
sufrostico left,
vendethiel joined
|
|||
Skarsnik | and I finally PR my change in USAGE display x) | 12:50 | |
RabidGravy | so the liquidsoap language will happily let you define an interactive variable with a hypen in the name, but won't then let you use it :( | 12:54 | |
silly language | |||
moritz | silly-language | ||
12:55
kid51 left
12:56
kanishka joined
13:00
apiw joined
|
|||
dalek | kudo/nom: 22b4ef0 | (Sylvain Colinet)++ | src/core/Main.pm: Change the orders of arguments documentation for MAIN display. Previously it was "random" (hash key order) now it the order on wich they are written |
13:08 | |
kudo/nom: bb2953c | lizmat++ | src/core/Main.pm: Merge pull request #709 from Skarsnik/nom Change the orders of arguments documentation for MAIN display. |
|||
Skarsnik | Thx x) | 13:09 | |
13:11
domidumont left,
nekrodesk joined,
domidumont joined,
nekrodesk left
13:12
vendethiel left
13:13
s_kilk joined
13:14
s_kilk left
13:15
wamba left
13:16
nekrodesk joined,
nekrodesk left
13:18
nekrodesk joined,
nekrodesk left
13:20
nekrodesk joined,
nekrodesk left
13:22
nekrodesk joined,
nekrodesk left
13:25
brrt joined
13:26
nekrodesk joined,
nekrodesk left
13:30
nekrodesk joined,
nekrodesk left
13:33
nekrodesk joined
13:45
sjoshi left
13:47
vendethiel joined
13:49
CIAvash left
13:50
xinming joined
13:51
apiw left
|
|||
lizmat | afk for a few hours& | 13:51 | |
13:54
apiw joined
14:02
sufrostico joined
14:04
sufrosti1o joined
14:06
cognominal left,
cdg joined
|
|||
dalek | osystem: 0847011 | okaoka++ | META.list: Add Algorithm-BinaryIndexedTree to ecosystem See github.com/okaoka/p6-Algorithm-Bin...ndexedTree |
14:07 | |
osystem: efc40f3 | (Zoffix Znet)++ | META.list: Merge pull request #151 from okaoka/add-BIT Add Algorithm-BinaryIndexedTree to ecosystem |
|||
14:07
cognominal joined
14:09
vendethiel left
14:11
xenu is now known as enu_
14:13
eternaleye left,
M-matthew left,
M-Illandan left
14:14
zakharyas joined,
sufrosti1o left
14:15
sufrosti1o joined,
vendethiel joined
14:16
robinsmidsrod left
14:17
robinsmidsrod joined
14:18
robinsmidsrod left,
robinsmidsrod joined
|
|||
dalek | ar: eb79f1b | (Steve Mynott)++ | ports/darwin_dmg/installerbg.png: import Camelia as a background to temp disk mount |
14:19 | |
ar: 00fd195 | (Steve Mynott)++ | ports/darwin_dmg/ (2 files): move Camelia from being folder icon to being folder background since it confused the london.pm mac users in testing into thinking the folder was an app |
|||
14:20
nchambers is now known as DowntimeAbbey
14:21
DowntimeAbbey is now known as nchambers
14:22
apiw left
|
|||
hoelzro | o/ #perl6 | 14:22 | |
I wrote up some of my thoughts on how we could improve the REPL; let me know if you have feedback: gist.github.com/hoelzro/6bb9aa5163c7f79016ff | 14:23 | ||
14:24
robinsmidsrod left,
kurahaupo joined,
robinsmidsrod joined
14:26
bowtie_ left
14:27
bowtie joined
14:28
apiw joined,
bowtie is now known as Guest69908
14:29
skids joined
14:30
enu_ is now known as xenu
14:32
M-eternaleye joined
14:35
apiw left
14:36
vendethiel left
|
|||
RabidGravy | tum-ti-tum | 14:38 | |
14:41
M-matthew joined,
M-Illandan joined
14:42
apiw joined
14:46
prammer joined
|
|||
RabidGravy | If anyone is mildly interested IO::Socket::Async doesn't crap out if you try to listen on a port that is already being used | 14:48 | |
jnthn | That's crap... | ||
14:49
isBEKaml joined
|
|||
RabidGravy | :) | 14:50 | |
flussence | that's a feature! but only if you used SO_REUSEPORT or whatever it's called... | ||
geekosaur | was about to comment on that | 14:51 | |
14:51
apiw left
|
|||
geekosaur | also present with SO_REUSEADDR on some Solaris kernel patchlevels | 14:51 | |
flussence | but it's definitely not an expected default | 14:52 | |
RabidGravy | but you can't pass that option | ||
14:53
apiw joined
|
|||
dalek | kudo/experiment-multi-line-repl: 5f66fcb | hoelzro++ | tools/build/NQP_REVISION: Require experimental NQP for multi-line REPL |
14:54 | |
kudo/experiment-multi-line-repl: 3de1463 | hoelzro++ | src/ (2 files): Add pos attribute to X::Syntax |
|||
kudo/experiment-multi-line-repl: d726cca | hoelzro++ | src/Perl6/Compiler.nqp: Override HLL::Compiler.eval for multi-line input The way this works is pretty dodgy, but it's good enough for my experiment. How this works is that we catch any exceptions from evaluating the code; if there's an exception, it's an X::Syntax::Missing, and it occurs at the end of the input string, that means that more input is required. Instead of just throwing the exception at the user, we signal HLL::Compiler that we need more input via self.needs-more-input |
|||
kudo/experiment-multi-line-repl: 6c4c7b4 | hoelzro++ | src/Perl6/Compiler.nqp: Only turn on multi-line behavior if we're interactive Multi-line behavior isn't needed for one-liners or scripts |
|||
geekosaur | RabidGravy, might check that libuv isn't "helpfully" urning on all the SO_REUSE* bits | 14:55 | |
RabidGravy | well, I could do that, but my test indicates that if I start an async "echo server" on port 8000 and then telnet to that port I still get the icecast server that was there in the first place | 14:57 | |
stmuk | ice ice ... gravy | ||
RabidGravy | and I've tried with both 'localhost' and '127.0.0.1' just to eliminate any v4/v6 shenanigans | 14:58 | |
14:58
sufrosti1o left,
sufrostico left
|
|||
mspo | strace/dtruss/truss/ktruss will probably tell you exactly what syscalls are happening | 14:59 | |
15:00
vendethiel joined
15:03
wamba joined
15:06
nekrodesk left
15:07
sufrostico joined,
sufrosti1o joined
15:08
jolts left
15:10
brrt left,
M-matthew left,
M-eternaleye left,
M-Illandan left
|
|||
skids | If it does not already, it should probably set IPV6_V6ONLY by default (per tools.ietf.org/html/draft-itojun-v...armful-02) | 15:14 | |
15:17
_Gustaf_ left
15:19
mr-fooba_ joined
15:21
mr-foobar left,
vendethiel left
15:22
apiw left
|
|||
mspo | hey itojun++ | 15:25 | |
15:25
khw joined
15:27
M-eternaleye joined
15:30
AlexDaniel joined
15:36
M-matthew joined,
M-Illandan joined
15:39
apiw joined
15:43
wamba left,
vendethiel joined
15:45
Guest69908 left
15:46
bowtie joined,
bowtie is now known as Guest83108
15:51
diego_k left
15:52
ilbelkyr left,
sm0x left
15:53
dustinm` left,
sm0x joined,
hahainternet left,
autogen_ left
15:54
jferrero left,
siriu5b left,
dsp- left
15:55
BooK left,
nebuchadnezzar left
15:56
nebuchadnezzar joined
15:57
mr-fooba_ left
15:59
diegok joined
16:01
hahainternet joined,
ilbelkyr joined
16:03
siriu5b joined,
autogen joined
16:04
BooK joined
16:06
dustinm` joined
16:07
mr-foobar joined,
vendethiel left,
drrho left
16:11
dsp- joined
16:13
jolts joined
16:14
apiw left
16:15
jferrero joined
16:18
apiw joined,
M-Illandan left,
M-eternaleye left,
M-matthew left
16:21
FROGGS left
16:23
ely-se left
16:29
fireartist left
|
|||
dalek | ar: 3ff9ffb | (Steve Mynott)++ | tools/star/mac-dmg.pod: import mac binary installer pod |
16:30 | |
16:30
sufrosti1o left,
sufrostico left
16:33
zakharyas left
16:34
M-eternaleye joined
16:35
domidumont left
16:37
mindos left,
SmokeMachine____ left
16:38
pnu left,
mrsolo left,
olinkl left
16:39
caasih left,
mithaldu_ left,
chansen_ left,
riatre left,
Humbedooh left
16:40
mithaldu_ joined,
prammer left,
pnu joined
16:41
nakiro left,
olinkl joined
16:42
chansen_ joined
16:43
caasih joined,
prammer joined,
M-matthew joined,
M-Illandan joined
16:46
Humbedooh joined,
riatre joined,
Humbedooh left,
Humbedooh joined
16:47
prammer left,
prammer joined
16:48
apiw left
16:49
prammer left,
muraiki joined
16:50
prammer joined,
abaugher left
16:51
abaugher joined
16:52
mindos joined
16:53
SmokeMachine____ joined
16:54
sufrostico joined
16:57
nekrodesk joined,
nekrodesk left,
mrsolo joined
16:58
FROGGS joined
17:00
ramon joined,
domidumont joined,
ramon is now known as Guest18288,
nekrodesk joined,
nekrodesk left
17:04
musiKk joined
17:09
prammer left
17:12
prammer joined
17:13
apiw joined
17:15
nekrodesk joined,
nekrodesk left
17:19
jolts left,
nekrodesk joined,
nekrodesk left
17:20
buharin joined
17:22
buharin left
17:23
SCHAAP137 joined
17:24
Guest18288 left
17:29
goomby joined
|
|||
goomby | hey | 17:29 | |
17:29
goomby left
|
|||
moritz | ho | 17:30 | |
17:30
musiKk left
|
|||
sjn | \o | 17:31 | |
17:33
Perleone left
17:34
buharin joined
17:36
wamba joined
17:37
nekrodesk joined
|
|||
RabidGravy | and off to work we go | 17:39 | |
17:39
pmurias_ joined
17:43
pmurias left
17:46
isBEKaml left
17:51
virtualsue joined
17:53
dakkar_ left
18:07
rurban joined
18:08
wamba left
18:09
apiw left,
firstdayonthejob joined
|
|||
buharin | hey | 18:10 | |
I am testing atom with perl6 | |||
and I got question how to build project? | |||
18:12
apiw joined
18:13
muraiki left,
leont joined
|
|||
timotimo | buharin: just press f9? | 18:17 | |
buharin | it works only for tests | 18:18 | |
timotimo | that is correct | ||
that is all it can do at the moment | |||
buharin | for no test should I write some makefile | ||
? | |||
:D | |||
timotimo, anyway I read about you | 18:19 | ||
in article | |||
timotimo | you should always wrote tests :) | ||
uh oh. only good things i hope? | |||
buharin | sure :) | ||
timotimo | what is that article? i don't remember doing anything noteworthy in the last months | 18:20 | |
buharin | timotimo, wait need to find it | 18:24 | |
timotimo, p6weekly.wordpress.com/2016/02/08/...-starring/ | |||
timotimo | i want to read something good about me, too | ||
ah, well, that is more or less my blog | |||
buharin | :D | 18:25 | |
can I also write my blog? | |||
18:28
addison_ joined
18:32
rje_ joined,
dsp- left
|
|||
lizmat | jnthn: there are many places in the core setting where we put in an empty nqp::hash so that we have something to iterate over / look for keys | 18:32 | |
18:32
dsp- joined
|
|||
timotimo | everyone can write their own blog | 18:33 | |
lizmat | jnthn: would it make sense to make a single nqp::hash somewhere that could be shared between all of these places, so that we don't need to allocate one over and over again? | ||
18:33
kipd left
18:34
M-eternaleye left,
M-eternaleye joined
|
|||
lizmat | buharin: are you saying you also want to write the Perl 6 Weekly? | 18:34 | |
rje_ | Newbie question... are pack and unpack the best way to work with binary data in Perl6? (doc.perl6.org/routine/unpack) | 18:35 | |
18:36
kipd joined
|
|||
Juerd | rje_: Currently, yes. But note that they're experimental and they will still change | 18:37 | |
perlpilot | rje_: That's actually a really good question because ... what Juerd just said :) | ||
Juerd | rje_: This part of Perl 6 is mostly unimplemented :( | ||
RabidGravy | or you can do your own thing with subbuff and so forth and release it on the ecosystem | ||
Juerd | rje_: I've suggested a replacement but haven't followed through... gist.github.com/Juerd/ae574b87d40a66649692/ | 18:38 | |
perlpilot | rje_: see also doc.perl6.org/type/Buf | ||
RabidGravy | I've got an idea for when I restart working on the MIDI and XBase things | ||
18:39
sufrostico left
18:40
kipd left
|
|||
RabidGravy | but they're so far down the todo stack I may not get back to them this year now | 18:41 | |
18:41
M-eternaleye is now known as eternaleye
|
|||
rje_ | Thanks gentlemen. What is subbuff? (Is it related to Buf?) | 18:41 | |
18:41
sortiz joined
|
|||
sortiz | \o #perl6 | 18:41 | |
18:42
kipd joined
|
|||
RabidGravy | subbuf is a method on a Buf which allows you to pick ranges of bytes out of the Buf | 18:42 | |
perlpilot | rje_: it's like substr, but for Buf instead of Str | ||
RabidGravy | used a lot by things manipulating that sort of data | ||
rje_ | Aaahhhh ok. | ||
18:42
rurban left
18:43
mr-foobar left
|
|||
rje_ | My use case is nerdy. I'm reading old 8-bit diskette image files. I liberally used unpack with Perl5. | 18:43 | |
18:43
vendethiel joined,
apiw left
|
|||
buharin | lizmat, yeah | 18:44 | |
18:44
mr-foobar joined
|
|||
perlpilot | rje_: if you looked at the state-of-the-art in Perl 6 and can come up with something better, that would be nice too :) | 18:45 | |
rje_ | perlpilot: If something comes to mind, I'll pipe up. I'm still playing catch-up though. | ||
lizmat | buharin: I must admit I haven't seen you (much) before on the channel, is that correct ? | 18:46 | |
18:46
Foxcool_ joined
|
|||
perlpilot | rje_: you've picked an area where almost everyone is playing catch-up :) | 18:46 | |
buharin | lizmat, yes | ||
lizmat, I start learn perl last week ;D | |||
lizmat | buharin: do you have a blog that we can look at to get an idea of your blogging capabilities ? | 18:47 | |
buharin | lizmat, no I never blog | ||
lizmat | ah, well, maybe you should start by blogging a bit for yourself, to get some practice ? | ||
rje_ | perlpilot: well, I reckon I should be able to open an IO Handle in binary mode and slurp it into a Buf, right? | ||
buharin | lizmat, I am not good in english :D | 18:48 | |
and have no any blog did | |||
lizmat | still you want to write the Perl 6 Weekly ? :-) | ||
rje_ | In a way, it seems as though unpack is not as sophisticated as the good old scanf(). But I could be mistaken. | ||
buharin | lizmat, why not | 18:49 | |
18:49
yqt joined
|
|||
perlpilot | buharin: maybe apprentice for a while :) | 18:49 | |
lizmat | buharin: what perlpilot said :-) | ||
18:49
lucasb joined
18:50
maybekoo5 joined
|
|||
buharin | perlpilot, what do you mean? | 18:51 | |
by writing posts? | 18:52 | ||
MadcapJake | buharin, blogger.com, wordpress.com, medium.com | 18:53 | |
DrForr | Never stopped me :) | ||
timotimo | cinema time now | 18:54 | |
MadcapJake | Has anyone submitted an application to GSoC to be a mentoring organization? | ||
buharin | MadcapJake, ye ok but I want to write posts about perl | ||
18:54
idiosyncrat_ joined
|
|||
MadcapJake | you can do that on those sites! or another great solution is jekyll for github, it has pygments in the backend which has a perl 6 lexer | 18:55 | |
DrForr | buharin: Then get an account and start writing :) | ||
buharin | DrForr, how to get perl acc? | ||
mspo | MadcapJake: you need to be able to "legally able to represent this org" to sign up | ||
DrForr | There's no special Perl silo, just get an account somewhere and start writig. | ||
blogs.perl.org comes to mind if ou wnat branding :) | 18:56 | ||
*you want | |||
MadcapJake | mspo, what's that mean? | ||
buharin | oh ok | ||
mspo | MadcapJake: it's just part of the gsoc rules | ||
rje_ | Woo hoo, I can read a binary file!! | ||
MadcapJake | but what's it mean? :) | ||
rje_ | my $fh = open( "CHOPLIFTER.D64", :r, :bin ); my Buf $buf = $fh.slurp-rest(:bin); say $buf.elems; | ||
mspo | MadcapJake: for netbsd we're a legal entity so it's pretty clear who has authority as it is explicitly granted | ||
MadcapJake: who's name is on perl6 source files? | 18:57 | ||
The Perl Foundation? | |||
MadcapJake | yep | ||
maybe we could enter as Rakudo org? | |||
mspo | then they would probably be the owner | 18:58 | |
although just being the github project admin is probably good enough ;) | |||
assuming TPF didn't *object* | |||
18:58
musiKk joined
|
|||
perlpilot | mspo: From the GSoC FAQ: To be eligible to participate as a mentoring organization, you must be a group running an active free/open source software project, e.g. BRL-CAD. The project does not need to be a legally incorporated entity. | 18:58 | |
MadcapJake | So one of these people: github.com/orgs/perl6/people?utf8=...e%3Aowner+ | 18:59 | |
mspo | perlpilot: but if perl6 is "owned" by the perl foundation then... | ||
18:59
Actualeyes left,
Relsak joined
|
|||
mspo | perlpilot: do you understand what I'm saying? | 18:59 | |
timotimo | 70mm version of the movie | ||
i hope i can appreciate whatever that entails | |||
RabidGravy | that's short | ||
19:00
kanishka left
|
|||
timotimo | it's rather a bit expensive | 19:00 | |
MadcapJake | but perl6 isn't "owned" by TPF though, is it? that seems the wrong way to put it | ||
mspo | if there is clearly an "owner" of a project then it should be sanctioned by that owner | ||
perlpilot | mspo: I do, but I don't think it's quite right. | ||
buharin | hey I got an idea :D | ||
mspo | I think "perl" and "perl6" are owned by larry wall | ||
MadcapJake | trademarks are, but that's different | ||
mspo | I'm guessing anyone on github.com/orgs/perl6/people?utf8=...e%3Aowner+ is good enough for gsoc | ||
buharin | could you review my post after I write it | ||
timotimo, ?? | 19:01 | ||
mspo | so you don't assign copyright of your code? | ||
MadcapJake | mspo, agreed, will the real perl6 owners please stand up | ||
mspo, but how does that work being open source? | 19:02 | ||
lizmat | buharin: I will certainly review your post :-) | ||
mspo | summerofcode.withgoogle.com/rules/ | ||
timotimo | buharin, perhaps i can. do you know what it will be about? | 19:03 | |
buharin, usually blogging software like wordpress will allow you to give a review or preview link to others | 19:04 | ||
buharin | I got an idea but it is a secret ;-) | ||
MadcapJake | mspo, this is the only line that makes me think TPF has to do it: «An Organization Administrator who has the full legal authority to bind the Organization must register the Organization for the Program and accept the terms of the Organization Participant Agreement on behalf of the Organization.» | ||
mspo | and summerofcode.withgoogle.com/terms/org | 19:05 | |
timotimo | and on Google docs and such you can even let others write together with you and then you can copy that into WordPress | ||
mspo | MadcapJake: that's the line I was thinkig of too | ||
19:05
yqt left
|
|||
mspo | MadcapJake: I just went through all of it monday | 19:05 | |
timotimo | the movie will start soon and people will kill me if i don't turn off my phone :) | ||
MadcapJake | timotimo, turn the brightness up to 11! | 19:06 | |
perlpilot | buharin: We're all about "open source", not "secret source" :) | ||
MadcapJake | mspo, so is TPF doing GSoC? Who do we contact about this? :S | ||
19:07
musiKk left
|
|||
mspo | I don't know | 19:08 | |
MadcapJake: I think the perl6 github owners is going to be sufficient for a "perl6 project" which includes nqp, rakudo, and moar | |||
unless you wanted to split them up | |||
19:08
Relsak left
|
|||
buharin | perlpilot, ye like me ;-) | 19:09 | |
mspo | it wouldn't hurt to have an email from TPF or larry wall sanctioning it, but I don't know all of the copyright policies and stuff | ||
for perl | |||
MadcapJake | i think perhaps you're right in that TPF has legal claim, so perhaps at the least we should inform them of our decision to go in alone? | ||
right that's what i was thinking too | |||
buharin | anyway I ask one question a few times here without answer | ||
MadcapJake | .seen CurtisOvidPoe | ||
yoleaux | I saw CurtisOvidPoe 31 Jan 2016 15:59Z in #perl6: <CurtisOvidPoe> p6: await (^20).map: { start { sleep rand; .print } } | ||
mspo | in netbsd we are a legal entity and all code committed is assigned copyright to the netbsd foundation | 19:10 | |
MadcapJake | CurtisOvidPoe is a TPF board member | ||
mspo | so it's very clear for this kind of stuff | ||
19:10
leont left
|
|||
MadcapJake | [Coke], you are a part of TPF, any idea on how to proceed with GSoC? | 19:11 | |
That's all I can recognize in this list: www.perlfoundation.org/who_s_who | |||
buharin | I was asking about wsgi | 19:12 | |
why perl got his own implementation psgi and how it is better than wsgi | 19:13 | ||
lizmat | .tell jnthn shouldn't the sink-all methods all have the --> Nil return sig ?? | 19:14 | |
yoleaux | lizmat: I'll pass your message to jnthn. | ||
MadcapJake | buharin, are you asking about Perl 5 PSGI? | ||
mspo | buharin: they're different protocols | 19:15 | |
buharin: there's also uwsgi, ajp, cgi | |||
buharin | Perl 6 PSGI implementation | ||
MadcapJake | buharin, it's just a specification for how to communicate, PSGI was inspired by WSGI (which is Python's) | ||
buharin | ye I know | ||
MadcapJake | the perl6 implementation is just a port of Perl 5's | ||
buharin | I read a bit about it | ||
19:15
rje_ left
|
|||
buharin | and also about P6SGI | 19:15 | |
but I don't understand why Perl guys implement smh new | 19:16 | ||
WSGI is quite similar and fine | |||
mspo | fcgi is another | ||
MadcapJake | buharin, because it's not written in Perl, perhaps ;) | ||
buharin | sure but | ||
interface was good | |||
jnthn | lizmat: (nqp::hash) Can you point me at some examples? | 19:17 | |
yoleaux | 19:14Z <lizmat> jnthn: shouldn't the sink-all methods all have the --> Nil return sig ?? | ||
DrForr | Kind of hard to use Python code inside Perl 5. | ||
jnthn | lizmat: Yeah, they can | ||
MadcapJake | Why does Ruby have Rack? Why does language A have Web Server Spec X? | ||
lizmat | jnthn: but sink-all is always returning IterationEnd now... | ||
buharin | I mean to use interface 1 to 1 | ||
lizmat | wouldn't that be an API change ? | ||
buharin | not talking about ABI | 19:18 | |
MadcapJake | buharin, I'm not following what you mean by interface 1-to-1 | ||
buharin | oh nvm | ||
jnthn | lizmat: Oh wait | ||
lizmat | jnthn: Rakudo::Internals, line 15 | ||
jnthn | lizmat: No, sink-all is part of the iterator API | ||
Those deal in IterationEnd | |||
So it's fine | |||
I was thinkigg of .sink methods, which should return Nil | 19:19 | ||
MadcapJake | buharin, wasn't trying to sound confrontational, genuinely curious what you meant by that! | ||
perigrin | buharin: because Perl offers different affordances than Python wen you get down to that low a level. PSGI was written to match the expectations of Perl programmers not Python programmers. | ||
jnthn | *thinking | ||
buharin | perigrin, I read PSGI code but it looks a bit messy | 19:21 | |
lizmat | jnthn: Rakudo::Internals, line 15 has an example of using a nqp::hash just to have something to iterate over | ||
perigrin | buharin: sure but Perl5 has no `yield` so the example from the WSGI page on wikipedia fails immediately to translate. | ||
lizmat | jnthn: are you saying there's a better way to create an empty iterator ? | ||
19:22
nekrodesk left
|
|||
buharin | perigrin, do perl6 got yield? | 19:22 | |
courutines? | |||
perigrin | I believe it does. PSGI though was originally written for Perl5 | ||
DrForr | It has Promises, a similar system. | 19:23 | |
buharin | DrForr yeah I read about it | ||
promise it is not couroutines | |||
jnthn | And supplies | ||
buharin | but Python got also | ||
promise system | |||
python events | |||
jnthn | gather/take is closer to what people usually mean by coroutines | ||
Non-blocking await coming in 6.d will also count | 19:24 | ||
DrForr | buharin: The point is that Python's coprocessing and Perl 6's coprocessing primitives don't match so while you can do roughly the same thing, it has to be done in a different way. | ||
perigrin | buharin: this isn't an argument about how awesome $x language is, I was simply trying to explain why miyagawa coulnd't just take the API from WSGI and port it 1:1 across | ||
jnthn | lizmat: In that Rakudo::Internals case, a shared nqp::hash would be safe | 19:25 | |
lizmat: It's probably the easiest path also | |||
lizmat | ok, I'll see if there's other cases | 19:26 | |
it would mean one less nqp::hash for each .values / .keys / etc. that are empty | |||
jnthn | I'd hope that's relatively rare, but yes :) | 19:28 | |
lizmat | jnthn: if it is relatively rare, why are we going through all the rigamarole of checking for $!storage all the time, and allocate it when we create a Hash / Map always ??? | 19:29 | |
jnthn | lizmat: Because of the way Hash/Array are created | ||
lizmat | jnthn: at the nqp level you mean ? | 19:30 | |
jnthn | Yeah, at present they work the same way as Scalar does | ||
That is, created on first touch of the lexical by an nqp::clone | |||
Which is shallow | |||
19:30
cdg left
|
|||
jnthn | For Scalar that optimization is incredibly worth it | 19:30 | |
For Array/Hash it's more questionable | 19:31 | ||
buharin | perigrin, sorry I don't trust you | ||
perlpilot | huh | ||
lizmat | perlpilot: please note that buharin command of english is not very good | ||
's | 19:32 | ||
jnthn | lol | ||
lizmat | :-) | ||
jnthn | Anyway, it would be interesting to see if we do better to always create a Hash or Array with storage via the normal path | 19:33 | |
And remove the checks | |||
lizmat | adapting Hash/Map.new would be trivial | 19:34 | |
anything special I should look for in src/Perl6 ? | |||
jnthn | Well, there's a bit more of a problem. | ||
There's at least one thing that does not end too well with, for example, my %h is BagHaash | 19:35 | ||
(state vars) | |||
And possibly a second, which is BEGIN time reference. | |||
Well, it's state %h is BagHash that's problematic | |||
So, those will be less trivial :( | 19:36 | ||
lizmat | ok, let's shelve that line of thought then | ||
jnthn | Yeah. | ||
state handling does need some improvements down at the VM level | |||
Because 1) no native state vars, 2) weird issues around state vars and binding | 19:37 | ||
It's actually #2 that will bite us here | |||
But #1 would be a nice rough edge to round off along the way | 19:38 | ||
One of the thing things that's going to be changing a decent bit in MoarVM in the next months is call frame handling, so I'll take it on as part of that work. | |||
Once that's done, it should be pretty viable to change things to measure the performance difference. | 19:39 | ||
19:39
molaf joined
|
|||
lizmat | okidoki... :-) | 19:39 | |
sounds like a plan | |||
perigrin | buharin: the beauty of open source is you're welcome to make your own 1:1 port and prove me wrong :) | 19:40 | |
buharin | perigrin, ye I know | ||
:) | |||
jnthn | (The larger frame changes coming in Moar are for performance reasons: invocation is more costly than it needs to be, and our GC throughput suffers in programs that keep lots of closures in memory for a long time.) | 19:42 | |
19:43
leont joined
|
|||
sortiz | Btw lizmat, I really don't understand yet why the changes in Map caused the required change in CallFrame (Map -> Stash). | 19:45 | |
MadcapJake | ok anyone curious about GSoC I have sent an email to Karne Pauley. I don't think I'm the best person to organize this as I'm not one of the core team or anything, but I really hope that whether TPF or at the developer team level, someone takes this up to make it happen. Would be really great exposure for Perl 6 and students will take their Perl 6 fu and spread it around at their schools! | ||
Karen* | 19:46 | ||
lizmat | sortiz: because nqp::atkey on some REPRs fails if the key doesn't exist | ||
19:46
nekrodesk joined,
nekrodesk left
|
|||
lizmat | sortiz: so that would mean nqp::ifnull could not be used | 19:46 | |
Stash has its own AT-KEY implementation taking care of that | 19:47 | ||
Map doesn't | |||
sortiz | lizmat, Ok, but is Stash the best option? | ||
MadcapJake | I'd also like to add: it wouldn't hurt for others to shoot an email off to her at [email@hidden.address] to show that I'm not the only one interested! | 19:48 | |
19:48
molaf left,
apiw joined
|
|||
lizmat | sortiz: it should probably be PseudoStash, but that had its own set of issues | 19:49 | |
sortiz | I worry that, via my, cause some surprises down the road. | 19:51 | |
19:52
rdmsno left
19:54
apiw left
|
|||
sortiz | lizmat, Maybe a new empty Stash subclass can be used as a guard. | 19:55 | |
19:55
nekrodesk joined
|
|||
lizmat | sortiz: with the frame changes coming up, as jnthn just described, we will revisit that area of the code, I would think | 19:56 | |
sortiz | lizmat, yes. | 19:57 | |
lizmat, Thank you again. | |||
lizmat | sortiz: yw | ||
mspo | MadcapJake: there's also the ask forgiveness method; you can assign like five additional admins after doing the application :) | 19:58 | |
20:00
sno left,
apiw joined
20:02
espadrine left
20:04
apiw left,
idiosyncrat_ left
20:05
apiw joined
20:07
yqt joined
20:08
yqt left,
musiKk joined
20:15
pmqs joined
20:23
darutoko left,
spider-mario joined
|
|||
b2gills | lizmat: PR 693 should not have been merged | 20:26 | |
m: my $f = Failure.new('What?'); $f.handled = 5; say $f.mess; | |||
camelia | rakudo-moar bb2953: OUTPUT«(HANDLED) (HANDLED) (HANDLED) (HANDLED) (HANDLED) What?» | ||
b2gills | Either Failure $.handled should be Bool, or Failure.handled() should return a Proxy that outputs a Bool and restricts the input to a Bool. | ||
20:27
kaare_ left
|
|||
lizmat | b2gills: could you please write a test for that? as roast was clean after I pulled | 20:27 | |
20:28
domidumont left
|
|||
b2gills | lizmat: If I get input on which way to go I would do all the work, except for pushing to rakudo/nom and roast/master | 20:28 | |
20:29
zakharyas joined
|
|||
lizmat | jnthn: I'm getting really confused now about this Failure.handled thing, opinions ? | 20:29 | |
20:29
yqt joined
|
|||
b2gills | It was implemented as int so that it would be fast presumably | 20:30 | |
lizmat | that was intended as a fast bool really | ||
but that didn't work on the JVM, afaicr | 20:31 | ||
lucasb | just to confirm my understand, should I be able to toogle the handled state of a failure by assigning $f.handled = True/False ? | 20:32 | |
b2gills | I think for now if we need the speed inside of the object, a rw .handled() method is the way to go. | ||
lizmat | lucasb: I think that was the intent, yes | ||
lucasb | hm, ok. thanks lizmat | 20:33 | |
and saying something like 'has Bool $.handled is rw' would not work? | |||
b2gills | It would work but be slower | 20:34 | |
lizmat | that's the whole thing: a lot of constructs use Failures :-( | ||
lucasb | oh, right. there's no native 'bool' type :) | 20:35 | |
b2gills | I think having a slower Proxied method is going to be better in the short term | ||
then | |||
lizmat | b2gills: well, that's really a "has Bool $.handled is rw" ? | 20:38 | |
20:39
TEttinger joined
|
|||
b2gills | No I mean leave $!handled as int, and have a separate .handled() returning a Boolified Proxy | 20:39 | |
Since most of the time Failures get automatically "handled" by calling other methods on them | 20:40 | ||
I think the main use of a .handled() method would be to reset a Failure object anyway, so having it be a bit slower by being a Proxy will be fine | 20:42 | ||
20:42
apiw left
20:43
rindolf left
|
|||
lizmat tries something | 20:45 | ||
20:50
apiw joined
|
|||
lucasb | lol, "(HANDLED) " x $!handled; that's the numification of booleans trick to output a single string or an empty one | 20:50 | |
b2gills | If it didn't need to be fast I would have used 「"(HANDLED) " x? $!handled」 instead | 20:52 | |
20:53
abraxxa left
20:56
musiKk left
20:57
rje_ joined
20:59
sevvie joined
|
|||
rje_ | Shouldn't a Buf also have the Iterable role? | 21:00 | |
Or does that cause a kind of sigil collision problem? | 21:01 | ||
Perhaps a method for extracting the Buf's elements into a List? | 21:02 | ||
21:02
virtualsue left
|
|||
rje_ | Using a range just seems kinda primitive :) | 21:04 | |
lizmat | b2gills: spectesting this change now: gist.github.com/lizmat/95a2cb7df2e3088f6f0f | ||
21:04
cdg joined
|
|||
sortiz I'm sorry for the problem of Failure.handled | 21:04 | ||
lizmat | sortiz: don't worry :-) | ||
b2gills | does the JVM implementation not have nqp::p6bool ? | 21:05 | |
lizmat | in JVM it's not a native int | 21:06 | |
timotimo | rje, .list works on Buf | ||
and .list is what prefix @ does | 21:07 | ||
lizmat | b2gills: it has, but there is not point, as $!handled on the JVM is not a native | ||
sortiz | lizmat, The Proxy approach occurred to me, but though it was overkill. | ||
timotimo | movie will continue soon i think | ||
lizmat | timotimo: which one ? | ||
b2gills | How about 「nqp::p6bool($!handled = value ?? 1 !! 0)}」 on the Moar side and 「$!handled = nqp::p6bool(value)」 on the JVM side | 21:09 | |
dalek | kudo/nom: c9eae68 | lizmat++ | src/core/Failure.pm: Make sure Failure.handled looks like a Bool Even though it's a native int internally on MoarVM. b2gills++, sortiz++ |
||
21:09
ely-se joined
|
|||
lizmat | b2gills: nqp::p6bool takes natives | 21:10 | |
value isn't necessarily a native | |||
b2gills | so it just happens to currently work on Moar but may not on other backends | ||
lizmat | hmmm.... | 21:11 | |
.oO( I hate backend differences ) |
|||
b2gills | I tested my version, and it works is what I mean | ||
lizmat | b2gills: but on the JVM version, $!handled can the still be 1 or True or False | 21:12 | |
21:13
apiw left
|
|||
b2gills | I think it will be fine until a native bool type is implemented, or someone goes messing with the internals again | 21:13 | |
lizmat: do you still want me to work on a ROAST test? | 21:14 | ||
lizmat | yes please | ||
sortiz | The original PR shows some tests that can be unfudged. | 21:15 | |
b2gills, thanks for reviewing the case. | 21:16 | ||
b2gills | sortiz: I review all of the commits to nom that I see. | 21:18 | |
21:19
nekrodesk left
|
|||
llfourn | so we can $failire.handled = True now? | 21:19 | |
sortiz | llfourn, yes. | 21:20 | |
llfourn | \o/ # always thought it was missing that | ||
21:20
apiw joined
|
|||
llfourn | sortiz++ | 21:20 | |
jnthn | rje_: It's deliberate that a Buf is an item, like a Str. If you're looking for a compact way to store a bunch of integers, native arrays are more likely the thing. | ||
lizmat: I'll need to review the history of the handled thing... | 21:21 | ||
lizmat | jnthn: I think we've figured it out | ||
b2gills | llfourn: You could always have called .defined() on it to set it as handled | 21:22 | |
jnthn | lizmat: I'm not sure why the change isn't to make it has Bool $.handled if we really want to fix that | ||
dalek | kudo/nom: 355fc3a | lizmat++ | src/core/Failure.pm: Failure.handled is also an Int on JVM internally |
||
jnthn | Uh, with "is rw" | ||
sortiz | llfourn, or to "handle" it a simple ?$failure | ||
llfourn | b2gills: yep or .Bool but I think it's clearer if I want to return a pre-handled failure to have .handled = True | 21:23 | |
lizmat | jnthn: I think it was timotimo who found that we lost quite a bit of performance with that approach | ||
jnthn | lizmat: Oh? That surprised me quite a bit, given True/False are constants, not allocated each time | ||
rje_ | timotimo: ah. Well I didn't see that in doc.perl6.org/type/Buf | ||
jnthn | But if so then yeah, a Proxy that boolifies will do it | 21:24 | |
At a cost | |||
b2gills | Since it isn't native on JVM, it could be changed to that there and comment out the whole method in that case. I would assume. | ||
jnthn | (the cost being if you call .handled, but I guess the Failure internals won't be doing that anyway, and it's probably a code smell to want .handled | 21:25 | |
) | |||
lizmat | yes, that was the idea :-) | ||
b2gills | Like I said, I think .handled() will be used to reset a Failure as not handled | 21:26 | |
most of the time | |||
lizmat | eh, but .handled won't do that ? | ||
21:26
rje_ left
|
|||
lizmat | .handled = False | 21:26 | |
that *will* reset it | |||
b2gills | That's what I meant | ||
lizmat | ok :-) | ||
sortiz | :-) | 21:27 | |
lizmat goes back to a puzzling issue about passing a native hash as a parameter | |||
jnthn | lizmat: It'll get wrapped :) | ||
lucasb | m: Exception.new.fail; say 'hi' | 21:28 | |
camelia | ( no output ) | ||
lizmat | jnthn: so a decont should fix that, no ? | ||
lucasb | jnthn: ^^ you fixed a bug similar to this a few months ago. that one remained. | ||
jnthn | lizmat: No, 'cus we hllize at routine boundaries | ||
lucasb: grmbl, did we really need a method form of that... | 21:29 | ||
lucasb: Please RT it | |||
llfourn | m: fail "weee"; say 'Hi'; | ||
camelia | rakudo-moar bb2953: OUTPUT«weee in block <unit> at /tmp/O3gz0PU1qU line 1» | ||
lucasb | ok :) | ||
lizmat | m: use nqp; class A { method a(Mu \s) { say nqp::iterator(nqp::defined(s) ?? s !! nqp::hash).^name } }; my %h; A.a(nqp::getattr(%h,Map,q/$!storage/)) # jnthn, this seems to work | ||
camelia | rakudo-moar bb2953: OUTPUT«BOOTIter» | ||
b2gills | 「Exception.new.fail; say 'hi'」 currently works on my computer on the command line and in the REPL | 21:30 | |
jnthn | Yes, we don't have a hll mapping for iterators | ||
lizmat | m: use nqp; class A { method a(Mu \s) { say nqp::iterator(nqp::defined(s) ?? s !! nqp::hash).^name } }; my %h = a => 42; A.a(nqp::getattr(%h,Map,q/$!storage/)) # but this doesn't :-( | ||
camelia | rakudo-moar bb2953: OUTPUT«Cannot iterate object with P6opaque representation in method a at /tmp/t24cFJXQHe line 1 in block <unit> at /tmp/t24cFJXQHe line 1» | ||
lucasb | b2gills: by 'works', do you mean it outputs a useful 'Failed' message? | 21:31 | |
jnthn | lizmat: Right, that's by design, so NQP code passing hashses into Perl 6 code will end up seeing a Perl 6 Map | ||
b2gills | 「Exception.new.fail; say 'hi'」 but it doesn't if ran as a file | ||
lizmat | jnthn: aah! | ||
jnthn | If it's going to be kept internal though, `my class LowLevelHash is repr('VMHash') { }` will give you something that you can use like an nqp::hash, but that is considered a Perl 6 type | 21:32 | |
b2gills | lucasb: Right. It only appears to be broken if it is in a file. It may have something to do with printing out what file the error comes from. | ||
lizmat | no, that basically means I can feed MappyIterator an nqp::hash and have it auto-wrapped | ||
which was what I was going for anyway | 21:33 | ||
jnthn | Should be very portable, 'cus it's the same strategy IterationBuffer, Buf, and array (native) take to use light REPRs directly | ||
Oh, you want it auto-wrapped... | |||
21:33
zakharyas left
|
|||
jnthn | I...think you grok what's going on now, anyway? :) | 21:33 | |
lizmat | yup, I think so | 21:34 | |
jnthn | ok, cool | ||
lucasb | b2gills: yeah, I dunno why the behavior is different in the two cases. | 21:35 | |
the commit that fixed it was github.com/rakudo/rakudo/commit/31...ff9d239cd8 | |||
it just need to be ported to Exception.fail | |||
jnthn | Should be a fairly easy port | 21:36 | |
b2gills | lizmat: I'll go and write a ROAST test for Failure.handled() | ||
sortiz | Porting... | 21:38 | |
21:38
maybekoo5 left
|
|||
jnthn | sortiz++ | 21:38 | |
21:40
addison_ left
21:41
apiw left,
FROGGS left
21:43
noganex_ left,
noganex joined
|
|||
sortiz | Done in PR#710, running checks. | 21:46 | |
21:48
sno joined
|
|||
lucasb | cool, thank you, sortiz | 21:49 | |
21:50
addison joined,
apiw joined
|
|||
sortiz | lucasb, > Exception.new.fail; say 'hi' | 21:53 | |
Exception exception produced no message | |||
in block <unit> at <unknown file> line 1 | |||
21:54
dolmen joined
21:55
apiw left
21:58
apiw joined
22:00
nekrodesk joined,
nekrodesk left
|
|||
jnthn | Exception exception...nah, that won't catch on like badger badger... | 22:02 | |
lizmat | .oO( snaaaaake! ) |
22:04 | |
dalek | kudo/nom: cdaa1f6 | lizmat++ | src/core/ (4 files): Remove hash- prefix from MappyIterator attributes For no other reason I got sick of them :-) |
22:06 | |
sortiz | jnthn, some recommendation? Is in line 62 | 22:07 | |
jnthn | sortiz: No, it makes sense for every other typed exception :) | ||
I don't mind it, it just looked a little funny at first :) | |||
lizmat | jnthn: in the future, will private methods be even better optimized than normal methods ? | 22:08 | |
22:09
nekrodesk joined
|
|||
sortiz | I can test for the main class ;) | 22:09 | |
lizmat | jnthn: I'm asking because I'm thinking about renaming BUILD methods that are not called by BUILDALL, to SET-SELF | ||
22:09
Skarsnik left
|
|||
lizmat | (and make them private on the fly if there's a future benefit) | 22:09 | |
b2gills | lizmat: I think I have discovered a problem or two with S04-exceptions/pending.t while looking into testing Exception.handled() | ||
At least one test was completely pointless and skipped | 22:10 | ||
sortiz | b2gills, the .pending case, no? | ||
jnthn | lizmat: I think they already *are* better optimized... | ||
lizmat | jnthn: nothing I could see in a simple benchmark | 22:11 | |
but if they aren't now, they will be :-) | |||
b2gills | sortiz: Yes, but I am looking into it to find more problems that I believe are there | ||
jnthn | m: class A { method m() { self!p }; method !p() { } }; for ^1000000 { A.m }; say now - INIT now | ||
camelia | rakudo-moar cdaa1f: OUTPUT«0.8324139» | ||
jnthn | m: class A { method m() { self.np }; method np() { } }; for ^1000000 { A.m }; say now - INIT now | ||
camelia | rakudo-moar cdaa1f: OUTPUT«0.75446429» | ||
jnthn | Hm, oddness | 22:12 | |
m: class A { method m() { self!p }; method !p() { } }; for ^1000000 { A.m }; say now - INIT now | |||
camelia | rakudo-moar cdaa1f: OUTPUT«0.7575794» | ||
jnthn | m: class A { method m() { self!p }; method !p() { } }; for ^1000000 { A.m }; say now - INIT now | ||
camelia | rakudo-moar cdaa1f: OUTPUT«0.8217081» | ||
jnthn | heh, OK, it's noise | ||
So they're about identical | |||
lizmat | yeah... | ||
sortiz | b2gills, Yes, that annoys me too | ||
jnthn | I suspect if you didn't have spesh, privates would come out better | 22:13 | |
When you do, they probably come out near identical on Moar | |||
privates probably come out ahead on JVM | |||
At a guess ;) | |||
b2gills | sortiz: Actually I just mean the one test | ||
lizmat | jnthn: ok, don't see much difference with MVM_SPESH_DISABLE=1 | 22:14 | |
22:14
lucasb left
|
|||
lizmat | apart from both being 2.5x slower | 22:14 | |
jnthn | *nod* | 22:15 | |
22:15
rurban joined
|
|||
jnthn | Well, you're mostly measuring the cost of an extra hash lookup on a very short string | 22:15 | |
(Because all the Perl6::Optimizer does is devirtualize the private method call) | 22:16 | ||
lizmat | correction: more like 4x slower | ||
jnthn | :) | ||
22:16
vendethiel left
|
|||
jnthn | inlining + osr + jit FTW, I guess :) | 22:16 | |
lizmat wants more! :-) | |||
jnthn | You'll get it :) | 22:17 | |
For simple things like that, we can certainly inline better. | 22:18 | ||
Just needs more analysis and...hopefully not touching deopt.c, which is the second scariest source file in MoarVM :) | 22:19 | ||
arnsholt | Which is the scariest one? =) | 22:22 | |
jnthn | gc/orchestrate.c | ||
sortiz | b2gills, I found no docs nor specs about .pending | 22:23 | |
dalek | kudo/nom: 72dbb32 | lizmat++ | src/core/Rakudo/Internals.pm: Re-use the same empty hash if we don't have any |
||
22:23
ramon joined,
ramon is now known as Guest50619
|
|||
arnsholt | jnthn: So something to do with the GC. But what does orchestration mean in that context? Is it the actual GCing, or something else? | 22:24 | |
b2gills | sortiz: That's not even what I'm talking about, one of the tests was testing $! when it made no sense because it was obviously going to be empty. | ||
22:24
ely-se left
|
|||
buharin | you know how to invoke perl6 from c? | 22:25 | |
22:25
cpage_ left
22:26
SquireOfGothos joined
|
|||
buharin | www.devx.com/assets/devx/3724.pdf | 22:27 | |
jnthn | arnsholt: Getting various threads to agree it's time to GC, coping with those that are blocked awaiting I/O or locks/condvars/sleep, assigning work to those threads that are avaialable to do in parallel, and making sure no thread goes back to allocating too soon, but still allowing concurrent sweep. | 22:28 | |
(And ensuring threads get to GC their own nursery whenever they can) | |||
(For locality reasons) | 22:29 | ||
And handling the various permutations of things that can go wrong (two threads trigger GC "at the same time" but we must elect only one coordinator, threads that were sleeping waking up in the middle of GC running, etc.) | 22:30 | ||
buharin | I need something like perl6.h | ||
;d | |||
jnthn | buharin: The Perl 5 module Inline::Perl6 manages to do it | 22:31 | |
sortiz | b2gills, are you talking about the test in line 29? | ||
jnthn | You won't get a perl6.h 'cus the Perl 6 compiler ain't written in C | 22:32 | |
22:32
Guest50619 left
|
|||
buharin | ? | 22:33 | |
what? | |||
in C++? | |||
sortiz | buharin, Nop, in NQP and Perl 6 | ||
b2gills | sortiz: That one makes sense, the fudged one right after does not. It should be looking at @fails instead. I have a bunch of tests that I'm adding or fixing in that area of the test file. | ||
buharin | whoa | 22:35 | |
inlining perl6 to perl5 | |||
and then invoke it from C | |||
? | |||
22:35
ocbtec left
22:37
wamba joined
|
|||
sortiz | b2gills, Originally I interpret that test as that $! should be something different (not Exception), but defined with a .pending method. Thats the origin of my confusion. | 22:37 | |
dalek | kudo-star-daily: e093a4c | coke++ | log/ (8 files): today (automated commit) |
22:38 | |
22:38
SquireOfGothos left
|
|||
b2gills | sortiz: $! should have no failures at that point, so asking it about pending failures is pointless | 22:38 | |
sortiz: I agree that .pending should be fixed | 22:39 | ||
[Coke] | MadcapJake: I'm on the GC, which is as far from doing anything with the "real" TPF you can be and still be in the TPF. :) | 22:40 | |
Speaking with one of the board members is the way to go. Sorry | |||
... and you already did that while I was working. excellent! | 22:42 | ||
22:42
yqt left
22:43
perlpilot left
22:46
perlpilot joined
|
|||
RabidGravy | I've come to the conclusion today that however prettily a language allows you to write code that it's almost inevitable that once you start dealing with real world data some utter filth will creep in | 22:46 | |
sortiz | b2gills, As I go by the "spec", I'll wait to see the new file. | ||
perlpilot | RabidGravy: Physicists agree with you (see entropy :) | 22:47 | |
arnsholt | jnthn: Yeah... that sounds complicated enough =D | ||
22:47
[particle] joined,
[particle]1 left,
apiw left
|
|||
alpha123 | RabidGravy: That's why APL is such a nice language. It looks awful to begin with, so you don't feel guilty about how ugly your code is. | 22:52 | |
RabidGravy | :) | ||
22:52
rurban left
|
|||
alpha123 | That was nice about Perl 5 too, though unfortunately it was possible to write pretty P5 code | 22:52 | |
timotimo | i'm back | 22:53 | |
22:54
apiw joined
|
|||
sortiz Was waiting, mistakenly, a more magic $! | 22:57 | ||
22:57
spider-mario left
22:59
buharin left
23:05
pmurias_ left
|
|||
llfourn | so given that the Failure.handled = ... thing didn't exist before how is the versioning of that change handled? | 23:05 | |
sortiz | llfourn, was specified and tested (but fudged as NYI), I suppose that is formally in v6.c | 23:08 | |
jnthn | If it was fudged, it wasn't in 6.c | 23:09 | |
llfourn | my reading of the situation was that versioning was to stop stuff breaking | ||
right ^ | |||
lizmat | so the onus is on the developer saying "use v6.c" and depending on Failure.handled = 1 to work, right? | 23:10 | |
sortiz | jnthn, it was moar fudged, So if I understand what you write, v6.c is the language, not one implementation. no? | 23:13 | |
llfourn | that answer works for me. ofc we need a way of specifying that we *are* going to use Failure.handled = (not sure if that's implemented yet) | ||
jnthn | lizmat: Well, if anyone *did* rely on Failure.handled = 1 working, we'll have broke them. But since it wasn't in the spectests we're "allowed". Of course, in such cases - of which there will be *many* until the spectest suite has doubled or quadroupled or so in size - we'll have to think carefully about such things. | 23:14 | |
lizmat: oh, and | |||
We haven't borken that at all | |||
Because we coerce | |||
So you'd have to have something really contrived to hit problems. | 23:15 | ||
sortiz: Yes, language version = set of tests that should pass | |||
lizmat | jnthn: before the PR of sortiz, you couldn't even assign to Failure.handled | ||
jnthn | Oh? | ||
jnthn looks at the history more closely | 23:16 | ||
Aha | |||
OK, then it's even more clear cut, I think | |||
llfourn | but it would fail if you try to assign no? | ||
lizmat | llfourn: afaik, yes | 23:17 | |
llfourn | so if someone has an old p6 $failure.handled = True is going to die on them | ||
lizmat | star: Failure.new.handled = 1 | ||
camelia | star-m 2015.09: OUTPUT«FailedActually thrown at: in any at gen/moar/m-Metamodel.nqp:2869 in block <unit> at /tmp/_7rGOdct8a:1» | ||
lizmat | star: Failure.new("foo").handled = 1 | ||
camelia | star-m 2015.09: OUTPUT«fooActually thrown at: in any at gen/moar/m-Metamodel.nqp:2869 in block <unit> at /tmp/PoRLcxBA4D:1» | ||
lizmat | star: Failure.new("foo").handled | ||
camelia | star-m 2015.09: OUTPUT«fooActually thrown at: in any at gen/moar/m-Metamodel.nqp:2869 in block <unit> at /tmp/3lkmIpchD0:1» | ||
lizmat | hmmm... messing with Failures is intriguing :-) | 23:18 | |
jnthn | llfourn: Correct. Thus at the moment, being able to assign to it isn't in any version of Perl 6. | ||
lizmat | yup, so technically a 6.d.a feature ? | ||
jnthn | llfourn: It's in our current working draft (that is, master branch of roast) towards the next version now, though. | ||
llfourn | kk gotcha thanks | ||
jnthn | lizmat: Yes, though I reckon we'll have a 6.c.1, because the path to 6.d will be at least until the end of the year, and we should probably provide a way to within that time depend on more "minor" improvements. | 23:20 | |
llfourn | would this be a candidate for 6.c.1? | ||
jnthn | llfourn: Very much so. | ||
It's major things we'll be holding back on. | |||
lizmat | m: use nqp; my %h = a => 42; say nqp::existskey(%h,"a") # jnthn, surprised this works | ||
camelia | rakudo-moar 72dbb3: OUTPUT«1» | ||
llfourn | cool. | 23:21 | |
lizmat | so rakudo also downgrades automatically ? | ||
jnthn | lizmat: You and me both... | ||
m: use nqp; my %h = a => 42; say nqp::existskey(%h,"b") | |||
camelia | rakudo-moar 72dbb3: OUTPUT«0» | ||
jnthn | o.O | ||
sortiz | :) | 23:22 | |
lizmat | seems to work at least since 2015.03 | ||
jnthn | m: my %h; say %h.^attributes[0] | ||
camelia | rakudo-moar 72dbb3: OUTPUT«Method 'gist' not found for invocant of class 'BOOTSTRAPATTR' in block <unit> at /tmp/YcB_SEPnNX line 1» | ||
jnthn | m: my %h; say %h.^attributes[0].associative_delegate | ||
camelia | rakudo-moar 72dbb3: OUTPUT«0» | ||
jnthn | m: my %h; say %h.^attributes[1].associative_delegate | ||
camelia | rakudo-moar 72dbb3: OUTPUT«1» | ||
jnthn | Aha! | ||
That's why :) | |||
I didn't know that flag had been set. | 23:23 | ||
lizmat | so that's a good thing ? | ||
jnthn | I'm half-inclined to gently discourage you from relying on this behavior, though. | ||
Well, it exists primarily to help NQP | 23:24 | ||
lizmat | would it be faster than nqp::existskey(nqp::getattr(%h,Map,'$!storage'),"a") ? | ||
jnthn | And it's one of those things that was a big short-term performance win, but is a complex enough mechanism it may turn out to be really hard to optimize. | ||
lizmat | ok, so don't do that :-) | 23:25 | |
jnthn | lizmat: Not with something like spesh, no | ||
It may save an op dispatch, but those go away with the JIT | |||
lizmat | should I find places in the core setting that do that and fix them? I just found one in Setty | 23:26 | |
Hotkeys | can 6.c.1 get ≥ and ≤ (and possibly ≠) | ||
:p | |||
jnthn | Hotkeys: That one's not my call (thankfully :P). Depends what TimToady thinks. :) | ||
Hotkeys | Alrighty | ||
jnthn | lizmat: Up to you; it won't be hard for me to locate them if I do decide it's going away. | 23:27 | |
In general though, minor lang versions are about incremental bits, and major lang versions are stuff we'll want to shout about and highlight. | 23:28 | ||
lizmat | good night, #perl6! | ||
Hotkeys | night | ||
llfourn | night | ||
jnthn | 'night, lizmat | ||
b2gills | lizmat: If we in the future want to be able to have 「has bool $.handled is rw;」 then the Proxy for Exception.handled should probably enforce that it only receives a Bool for a value. | ||
sortiz | night | ||
b2gills | ... and good night | 23:29 | |
23:29
molaf joined
23:32
Laurent_R left
23:33
kurahaupo left
|
|||
Hotkeys | Are there any interesting uses for hyperwhatever? | 23:34 | |
AlexDaniel | Hotkeys: … good question | 23:35 | |
Hotkeys | m: (--**)(1,2,3,4,5) | ||
camelia | ( no output ) | ||
Hotkeys | m: say (--**)(1,2,3,4,5) | ||
camelia | rakudo-moar 72dbb3: OUTPUT«(0 1 2 3 4)» | ||
Hotkeys | there's basic stuff like that | ||
but | |||
AlexDaniel | let me rephrase it – “are there any uses at all?” | ||
Hotkeys | lol | ||
jnthn | m: say (1,2,3,4) ~~ (*,3,*) | ||
camelia | rakudo-moar 72dbb3: OUTPUT«False» | 23:36 | |
jnthn | m: say (1,2,3,4) ~~ (**,3,**) | ||
camelia | rakudo-moar 72dbb3: OUTPUT«True» | ||
Hotkeys | crazy | ||
AlexDaniel | now that's something | ||
jnthn | :) | ||
'night, #perl6 | |||
Hotkeys | night | ||
llfourn | night | ||
AlexDaniel | jnthn: I'm not sure what it means though | 23:37 | |
m: say (1,3) ~~ (**,3,**) | |||
camelia | rakudo-moar 72dbb3: OUTPUT«True» | ||
AlexDaniel | m: say (3) ~~ (**,3,**) | 23:38 | |
camelia | rakudo-moar 72dbb3: OUTPUT«False» | ||
AlexDaniel | m: say (3,5) ~~ (**,3,**) | ||
camelia | rakudo-moar 72dbb3: OUTPUT«True» | ||
23:38
kid51 joined
|
|||
AlexDaniel | aaaah | 23:39 | |
okay now I see it | |||
m: say [3] ~~ (**,3,**) | |||
camelia | rakudo-moar 72dbb3: OUTPUT«True» | ||
AlexDaniel | right. | 23:40 | |
Hotkeys: well, if you created a list of possible use-cases for ** that'd be awesome | |||
Hotkeys: most people don't even know that it exists | |||
Hotkeys | I only just learning it existed | 23:41 | |
because I looked at your unicode gist again | |||
23:44
wamba left,
wamba joined
23:45
apiw left,
wamba left,
cpage_ joined
23:46
wamba joined
23:47
nekrodesk left
|
|||
sortiz | AlexDaniel, most people don't even know that Perl 6 exists! | 23:51 | |
23:53
leont left
23:54
wamba left,
wamba joined
23:55
wamba left,
apiw joined
23:56
wamba joined
|