»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by moritz on 25 December 2014. |
|||
00:08
adu joined
|
|||
flussence | m: gist.github.com/flussence/4c53a9cf9a37083b4d1f | 00:18 | |
camelia | rakudo-moar 3607d7: OUTPUT«gist not found» | ||
flussence | argh | ||
for some reason, that grammar there *only* works if I have a «use Grammar::Tracer;» at the top... | 00:19 | ||
masak | flussence: github.com/jnthn/grammar-debugger/issues/13 | 00:20 | |
flussence | hm... guess I'll just have to resort to mid-regex debug print statements for now | 00:22 | |
oh for f-... that did the same thing! | 00:25 | ||
00:25
Sysaxed left
|
|||
timotimo | you know you can --optimize=off if you suspect the optimizer is doing something wrong? | 00:26 | |
flussence | I do now! | ||
hm, same thing there | |||
it works if I stick an empty {} in the middle of that ipv4 regex... | 00:27 | ||
danstoner | I want to exit my program cleanly from inside an "if" statement. | 00:28 | |
die spits out "ugly" info to the user if I use it. | |||
00:28
laouji joined
|
|||
danstoner | Better way to "exit" a perl6 program from inside of a block? | 00:29 | |
jnthn | exit; | 00:30 | |
Or exit 1; if you want to flag an error | |||
(or whatever exit code you prefer) | |||
danstoner | ah yes. I tried: | ||
exit "friendly message"; | 00:31 | ||
plain exit works great, thanks! | |||
jnthn | If you want friendly message on stderr, then use note | ||
note "friendly message"; | |||
danstoner | Should I be able to find that info here: doc.perl6.org/language/ | ||
jnthn | exit 1; | ||
doc.perl6.org/routine/note is documented there | 00:32 | ||
00:32
chemich joined
|
|||
jnthn | And apparently exit is missing. | 00:32 | |
dalek | c: 70ed8e8 | jnthn++ | WANTED: Add exit to list of things needing documenting. |
00:33 | |
flussence | aha, the regex works if I remove the «| <ipv6>» above it... maybe it gets confused trying to LTM against two double-nested quantifiers like that. | ||
jnthn | Now it's on the todo list :) | ||
danstoner | jnthn: neat! thanks | 00:34 | |
jnthn | Time for some sleep... & | 00:36 | |
00:39
laouji left
00:45
chemich left
|
|||
dalek | albot: e683ad0 | thundergnat++ | lib/EvalbotExecuter.pm: Unbusticate evalbot execution of gists Chase the ever changing URL extraction scheme to access the raw gist. |
00:47 | |
flussence | m: gist.github.com/flussence/ba4f546121d3fd278142 | 00:54 | |
camelia | rakudo-moar 3607d7: OUTPUT«gist not found» | ||
flussence shakes fist angrily at the sky | |||
00:54
laouji joined
|
|||
flussence | (I golfed the grammar down) | 00:54 | |
(and found a workaround! So I'm happy, I guess.) | 00:55 | ||
fernando_ | how can I know if a rw method is being used as a lvalue? | 00:59 | |
00:59
laouji left
01:01
kaare__ joined
|
|||
Mouq would like to point out there's an API from which we could potentially get the raw value… developer.github.com/v3/gists/ | 01:01 | ||
api.github.com/gists/ba4f546121d3fd278142 | 01:03 | ||
masak | 'night, #perl6 | ||
Mouq | (for flussence's gist above) | ||
'night masak! | |||
01:05
kaare_ left
|
|||
Mouq | Or, in fact, the API just has the "content" section… :P | 01:05 | |
dalek | albot: 620d8ef | thundergnat++ | lib/EvalbotExecuter.pm: Fix evalbot execution of gists. Helps to use the correct domain name |
||
Mouq | Aaand! we could support multiple files, only executing the ones that have "Language": "Perl6" set… | 01:08 | |
01:13
thundergnat joined,
colomon joined
|
|||
timotimo | it could even make other files available under their names | 01:16 | |
as local files | |||
Mouq | timotimo: Except safe mode means that that should be useless | 01:17 | |
*RESTRICTED.SETTING | 01:18 | ||
timotimo | oh | 01:19 | |
well, it could pipe something in through stdin or something | |||
01:19
camelia left
|
|||
Mouq | true :) | 01:19 | |
01:19
camelia joined
|
|||
Mouq | But for now: | 01:19 | |
m: gist.github.com/flussence/ba4f546121d3fd278142 | |||
*ahem* | 01:20 | ||
01:20
ChanServ sets mode: +v camelia
|
|||
camelia | rakudo-moar 3607d7: OUTPUT«gist not found» | 01:20 | |
thundergnat | Hmmm. github must be doing some ...interesting url rewriting behind the scenes. | 01:22 | |
01:23
dg left
|
|||
Mouq | thundergnat++ for trying to manage this anyway :) | 01:23 | |
thundergnat: Err, in case you didn't see, irclog.perlgeek.de/perl6/2015-02-26#i_10181202 | 01:27 | ||
I'm not sure if thundergnat == flussence | 01:28 | ||
I… don't think so | 01:29 | ||
thundergnat | No, I'm someone else. :-) | ||
Mouq | Haha, okay, sorry :) | ||
thundergnat | Actually, I hadn't seen that link. Thanks | ||
fernando_ | is it possible to know if a rw method is being used as a lvalue? | 01:30 | |
Mouq | fernando_: You may want to look into Proxy | 01:31 | |
...it looks like something broke doc's search bar | |||
Oh, nvm | |||
Something with my browser | |||
fernando_ | the function want() should exists? | 01:34 | |
Mouq | m: sub aproxy() { my $p; Proxy.new( FETCH => { $p //= rand }, STORE => { $p = $^a.rand } ) }; my $proxy = aproxy; say $proxy; $proxy = 15; say $proxy | 01:35 | |
camelia | rakudo-moar 3607d7: OUTPUT«0.52677811802755915» | ||
01:35
dg joined
|
|||
Mouq | fernando_: I've never heard of it? | 01:36 | |
(At least not in Perl6. There is design.perl6.org/S06.html#The_want_function however) | 01:37 | ||
fernando_ | gist.github.com/anonymous/f2051640b4e470f33232 | ||
perl6.org/archive/rfc/118.html | |||
skids | m: 1 +> -1; # This is not specced behavior, and in C undefined, and perl 5 undefined unless "use bigint". Should I spec it? | 01:38 | |
camelia | ( no output ) | ||
skids | erm | ||
m: say 1 +> -1 | |||
camelia | rakudo-moar 3607d7: OUTPUT«2» | ||
fernando_ | I wanted something like this: gist.github.com/anonymous/07ace64ffae13156cc05 | ||
Mouq | fernando_: "Status: Retired" | 01:39 | |
on the RFC | |||
fernando_ | I dont know how to do that with Proxy | ||
01:39
echowuhao left
|
|||
fernando_ | Mouq: touche | 01:39 | |
01:40
echowuhao joined,
echowuhao left
|
|||
Mouq | Proxy.new(FETCH => { callsame }, STORE => -> \arg { $!chaged = True; callsame = arg }) perhaps? | 01:41 | |
I haven't done much with Proxy | |||
01:41
telex left
|
|||
fernando_ | Mouq: ok, now I think I understood the proxy! | 01:42 | |
Mouq | I also don't know if the blocks interfere with callsame… | ||
01:42
telex joined
01:43
salv0 left
|
|||
Mouq | m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; do-something = 12 | 01:43 | |
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/lXh_OID0c2Preceding context expects a term, but found infix = insteadat /tmp/lXh_OID0c2:1------> 3k = { callsame }; block}; do-something =7⏏5 12» | ||
01:43
salv0 joined
|
|||
Mouq | m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; do-something() = 12 | 01:44 | |
camelia | ( no output ) | ||
Mouq | m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; say do-something = 12 | ||
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VtzvdqVQfIPreceding context expects a term, but found infix = insteadat /tmp/VtzvdqVQfI:1------> 3{ callsame }; block}; say do-something =7⏏5 12» | ||
Mouq | m: use soft; sub do-something() is rw { my $r = 42 }; &do-something.wrap:{ my &block = { callsame }; block}; say (do-something() = 12) | ||
camelia | rakudo-moar 3607d7: OUTPUT«12» | ||
Mouq | Cool :) | ||
fernando_ | I got a "Segmentation fault: 11" | 01:49 | |
with if: | 01:50 | ||
gist.github.com/anonymous/f6aa5b03a68a5a89a746 | |||
01:53
salv0 left,
salv0 joined
|
|||
Mouq | A Segfault is always a problem with Rakudo. But I don't think you want "STORE => method", just a block or anonymous sub | 01:55 | |
fernando_ | if I dont use method I'll cannot change the attribute $!changed, or will I? | 02:00 | |
Mouq | It should curry the variable… | 02:01 | |
"curry" is indubitably the wrong word | |||
02:01
camelia left,
camelia joined
02:02
chenryn joined
|
|||
fernando_ | i think now I got a infinite loop... | 02:03 | |
02:03
ChanServ sets mode: +v camelia
|
|||
fernando_ | gist.github.com/anonymous/19e247c86a65b34cfddb | 02:03 | |
thundergnat | m: gist.github.com/thundergnat/4ef049...fefedd4820 | ||
camelia | rakudo-moar 3607d7: OUTPUT«Yay! Camelia can execute gists again!» | ||
Mouq | m: my $c = my class { has $.bar = 15; method foo is rw { -> { $!bar } } }.new; my $foo := $c.foo.(); $foo = 3; say $c; | ||
camelia | rakudo-moar 3607d7: OUTPUT«<anon>.new(bar => 3)» | ||
Mouq | thundergnat++ | 02:04 | |
thundergnat | Sigh. It helps if you actually pull the changes _before_ you restart the bot... | ||
02:07
[Sno] left
|
|||
fernando_ | is it a infinite loop? gist.github.com/anonymous/6d3cb3ee4ddc0678db90 | 02:18 | |
Mouq: but I am not doing that inside a method... | 02:19 | ||
02:21
pochi_ joined,
pochi left
02:23
adu left,
grettir left
02:27
thundergnat left
02:30
coffee` left
02:33
afoote joined
|
|||
afoote | how do i uninstall a module with panda? | 02:34 | |
colomon | afoote: I don’t think panda has an uninstall command yet | 02:35 | |
I think the files are installed to rakudo’s install/languages/perl6/site/lib/ | 02:38 | ||
02:38
afoote left
02:39
afoote joined
|
|||
fernando_ | m: sub a () is rw {our $b}; &a.wrap(sub () is rw {Proxy.new: STORE => sub ($val) {callsame() = $val}, FETCH => sub {callsame}}); a() = 42 | 02:51 | |
camelia | rakudo-moar 3607d7: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in sub at /tmp/pMPmWCaxvh:1 in block <unit> at /tmp/pMPmWCaxvh:1» | ||
02:53
afoote left
02:55
adu joined
|
|||
fernando_ | m:class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => method ($val) {callsame() = $val}, FETCH => my method {callsame}})}; A.new.a = 42 | 02:55 | |
I think camelia is on a infinit loop... :( | 02:56 | ||
sorry... | |||
no, not a loop... | 02:57 | ||
m: class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => method ($val) {callsame() = $val}, FETCH => my method {callsame}})}; A.new.a = 42 | |||
camelia | rakudo-moar 3607d7: OUTPUT«Memory allocation failed; could not allocate 89360 bytes» | ||
fernando_ | or yes, a loop | ||
should it run a infinite loop? | 02:58 | ||
p: class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => method ($val) {callsame() = $val}, FETCH => my method {callsame}})}; A.new.a = 42 | 02:59 | ||
02:59
adu left
03:06
noganex_ joined
03:09
noganex left
03:13
kaare__ is now known as kaare_
03:24
dolmen left
03:34
leont left
03:37
dolmen joined
03:47
adu joined
03:48
Guest33365 left
03:49
Ovid joined
03:50
Ovid is now known as Guest96799,
adu left
|
|||
broquaint | Is "sink context" defined somewhere? | 03:56 | |
04:00
colomon left
04:11
colomon joined
|
|||
Mouq | fernando_: But you are in a method, the one you're wrapping with… | 04:13 | |
m: class A{method a () is rw {our $b}; $?CLASS.^find_method("a").wrap(method () is rw {Proxy.new: STORE => -> $val, |c {callsame() = $val}, FETCH => {callsame}})}; A.new.a = 42 #hmm | 04:15 | ||
camelia | rakudo-moar 3607d7: OUTPUT«callsame is not in the dynamic scope of a dispatcher in block at src/gen/m-CORE.setting:742 in block <unit> at /tmp/y535_6fbCo:1» | ||
04:16
echowuhao joined,
echowuhao left
|
|||
Mouq | m: sub foo { $ = 1 }; &foo.wrap:{ new Proxy: FETCH => { callsame } }; foo() | 04:22 | |
camelia | rakudo-moar 3607d7: OUTPUT«Unhandled exception: callsame is not in the dynamic scope of a dispatcher at <unknown>:1 (/home/camelia/rakudo-inst-2/languages/perl6/runtime/CORE.setting.moarvm:throw:4294967295) from src/gen/m-CORE.setting:14885 (/home/camelia/rakudo-inst-2/lan…» | ||
Mouq | ^ Golf | ||
04:32
laouji joined
04:37
laouji left
04:54
pierrot left,
pierrot_ joined
05:04
afoote joined
05:08
laouji joined,
pierrot_ is now known as pierrot
05:12
laouji_ joined,
laouji left
05:18
afoote left
05:20
mephinet left
05:22
raiph left
05:27
diana_olhovik_ joined
05:55
Vlavv_ left
06:00
BenGoldberg left
06:01
[Sno] joined
06:03
laouji_ left,
mephinet joined
06:05
diana_olhovik_ left
06:06
laouji joined
06:09
xinming left
06:10
laouji left
06:16
laouji joined
06:30
jack_rabbit joined
06:34
bjz joined
06:41
xfix joined
06:47
jack_rabbit left
06:49
[Sno] left
|
|||
dalek | c: 8be9545 | paultcochrane++ | README.md: Correct typo and simple paragraph wrap |
06:52 | |
06:57
jack_rabbit joined
06:59
hypolin joined,
hypolin left
07:00
bjz left
07:01
Rounin joined
07:08
diana_olhovik joined
07:22
jack_rabbit left
07:23
jack_rabbit joined,
wicope joined
07:27
dolmen left
07:33
darutoko joined
07:36
abraxxa joined
07:38
anaeem1 joined
07:42
jack_rabbit left
07:46
jack_rabbit joined,
gfldex left
07:49
abraxxa left,
FROGGS joined
07:50
abraxxa joined
|
|||
dalek | c: bb20897 | paultcochrane++ | CONTRIBUTING.md: Document how to build the documentation This includes a dependency installation guide. |
07:55 | |
07:56
_mg_ joined,
Vlavv joined
07:57
jack_rabbit left
|
|||
raydiak | grr kwin keeps crashing with compositing turned on, but I feel like I'm working blind without a transparent terminal to read docs/sources and code at the same time | 08:01 | |
08:02
zakharyas joined
|
|||
geekosaur | so turn off kwin compositing and install compton | 08:05 | |
08:05
jack_rabbit joined,
prime- left
|
|||
raydiak | huh...good idea, thanks...guess it was kinda blind not to think of the other compositors :) | 08:06 | |
08:06
laouji_ joined
|
|||
geekosaur | well, there are disadvantages; it's actually kinda hard to do compositing right without access to window manager internals, it turns out | 08:08 | |
raydiak | seems to be working a charm so far, albeit without the compiz glitz I don't really care about | ||
geekosaur | (X11's compositing interface is kinda messed up) | ||
08:09
beastd joined,
prime joined
|
|||
raydiak | ooh --backend glx even | 08:09 | |
08:10
espadrine joined,
bjz joined,
laouji_ left
08:13
Ven joined
|
|||
raydiak | I'm likely to replace my DE or maybe distro soon anyway, it's been flaky for a while now; and I gave kde a good shot for like 8 months, but it's just too heavy for my taste | 08:14 | |
08:14
larion left
|
|||
raydiak | but in the mean time, here's hoping compton will help me procrastinate some more :) | 08:14 | |
08:16
bayprogrammer left,
_mg_ left
|
|||
raydiak wonders if a kernel downgrade might help some of his issues...was sure this thing used to run cooler and more stably at some indeterminant point in the past | 08:17 | ||
08:19
virtualsue joined
|
|||
raydiak | it idles at like 60 degrees, used to be more like 45, and it's not like there's a bunch of abberant cpu usage (except chrome as always :P) | 08:19 | |
Ven | o/, #perl6 | 08:20 | |
08:21
bjz left
|
|||
raydiak | hello Ven | 08:21 | |
08:23
sqirrel_ joined
08:25
jack_rabbit left
|
|||
FROGGS | raydiak: you may need to clean the cpu fan | 08:28 | |
you can easily increase your cpu temperature with a dirty fan and cooler | |||
08:29
rindolf joined
|
|||
raydiak | FROGGS: yeah you're probably right, I just didn't want it to be that...it's like 40 screws and basically complete disassembly | 08:29 | |
have to take *all* the layers apart...keyboard, motherboard, everything just to get at it :P | 08:30 | ||
FROGGS | raydiak: well, you can be glad it is not a mac :o) | ||
raydiak | I have one, wish I could still use it, but the cord on the power supply went bad | ||
FROGGS | my dell laptop got up to 105°C with a dirty fan... after cleaning it got back to 65°C or so, when compiling rakudo on all three backends at once | 08:31 | |
well, ebay offers cheap power supplies, no? | |||
nwc10 | FROGGS: the apple magsafe connector is patented (or something) - no-one else makes them | ||
raydiak | and there isn't knock-off magsafe adapters, so it's like $80, which is about what I could sell the whole thing for once it works again | 08:32 | |
nwc10 | and it seems to be a design fault | ||
08:32
[Sno] joined
|
|||
FROGGS | ahh, I see | 08:32 | |
nwc10 | my second one gave up, despite me being very careful with it | ||
I now have one blagged from work | |||
but the laptop is 7 | |||
so I'm waiting for something else to fail | |||
(battery is held in with genuine Gaffer tape, keyboard space bar is starting to give up) | |||
raydiak | well there are some knockoffs, but all the reviews I check say they fry out the power port and stuff like that | 08:33 | |
nwc10 | and, curiously, I think it's running hotter than it used to | ||
so that comment about fans is curious | |||
oh, and on second battery, which may give up in a year | |||
FROGGS | :o) | ||
I do like my dell | |||
nwc10 | at which point I'm hoping that ARM v8 chromebooks look interesting | ||
FROGGS | I get cheap (used) replacement parts and it is very easy to disassemble... I like things that I can fix by myself | 08:34 | |
nwc10 | because that gets me ARM v8 to play with, and a new portable device | ||
raydiak | I was thinking about seeing if I could solder the power cord straight on to the little power adapter board inside, but fear it's probably tiny contacts beyond my crude soldering skills | ||
FROGGS | nwc10: hmmm, nice option | ||
nwc10 | FROGGS: I haven't worked out yet if it's possible | ||
I'm hoping it gets easier the longer I can delay | 08:35 | ||
FROGGS | that's often true | ||
raydiak | .oO( omg I wonder if this started after that one time I fell asleep with the laptop on the carpet ) |
08:37 | |
FROGGS | coincidence! :P | 08:39 | |
raydiak | maybe while I have the thing apart I can cut out an access panel to get to the only serious maintinence part without major surgery next time | 08:42 | |
08:46
espadrine left
|
|||
raydiak wishes things like modern cars and laptops weren't designed in ways which actively discourage fixing them | 08:47 | ||
08:47
jack_rabbit joined
08:51
rindolf left
08:53
bjz joined
08:56
jack_rabbit left
|
|||
tadzik | yes | 08:58 | |
you have to pick them very carefully to be able to do anything with them | 08:59 | ||
09:01
abraxxa left,
rurban joined
09:02
abraxxa joined
|
|||
raydiak | I'm actually pretty satisfied for $120 at a pawn shop, but it does have it's annoyances and limitations | 09:04 | |
what does "method sink () { self }" accomplish? | |||
jnthn | Not much... :) | 09:07 | |
"If this object is in sink (void) context...evaluate to itself"...except the value is of course thrown away | |||
raydiak | it's PythonObject from Inline::Python, which represents a function as far as I can tell | 09:10 | |
jnthn | Ah...maybe it's to suppress the call getting delegated to Python? | 09:11 | |
masak | good antenoon, #perl6 | ||
raydiak | does it make a difference if it has a postcircumfix:<( )> ? could it be helping making the object callable? | ||
\o masak | |||
FROGGS .oO( gut pull - what a typo ) | |||
raydiak | oh yeah I get it...so when rakudo calls .sink...yeah got it :) | 09:12 | |
lizmat | .oO( better than gut push ) |
||
09:12
MadcapJake left
|
|||
FROGGS | wow, URI::Encode::uri_encode is veeeery sloooow | 09:13 | |
(if you call it often enough) | |||
jnthn | .oO( not sure a gut show is much better... ) |
09:14 | |
raydiak | jnthn: wait wouldn't you potentially have to do the same thing for lots of other methods? eg .list or .flat if it's used in a flattening context? | ||
jnthn | raydiak: I suspect those are inherited, but there's no default sink method | 09:15 | |
raydiak | jnthn: ah, cool then...the only leak is in the sink | 09:16 | |
[ptc] | FROGGS: got commit? | ||
FROGGS | [ptc]: no, I didnt gat a commit, I made one by myself :o) | 09:17 | |
[ptc] | :-D | ||
09:18
Alina-malina left
|
|||
dalek | c: 629a420 | moritz++ | / (2 files): Document sub exit |
09:19 | |
c: 0aa46b0 | moritz++ | lib/Type/List.pod: Sub form of eager |
|||
09:19
dakkar joined,
Alina-malina joined
|
|||
sjn | #perl6 stuff happening in Oslo next week \o/ blogs.perl.org/users/damian_conway/...-oslo.html | 09:20 | |
nine_ | the sink() is just for fixing Rakudo failing with an unknown method sink message | 09:22 | |
raydiak | huh | ||
nine_ | raydiak: why are you asking? | 09:23 | |
raydiak | nine_: I hope you don't mind, I'm blatantly ripping off some of your work for Inline::Lua but will credit you in the README :) | ||
09:25
larion joined
|
|||
jnthn | moritz++ # tireless doc work | 09:25 | |
nine_ | raydiak: not at all...I'm glad I created something useful :) | ||
09:25
fhelmberger joined
|
|||
moritz doesn't feel tireless at all *yawn* | 09:26 | ||
FROGGS | :o) | 09:27 | |
jnthn | ;) | ||
raydiak | nine_: I even improved the native() technique to not have to write it at all for each sub in Lua::Raw, in EXPORT I just run over all the subs and match the name against /^luaL?_/ ...this lets people write "use Lua::Raw <JIT>", "use Lua::Raw <5.1>" and so forth too | 09:28 | |
dalek | kudo/newio: 2eee799 | lizmat++ | src/core/IO.pm: Fix case of broken symlink |
09:29 | |
09:30
kjs_ joined
09:31
bayprogrammer joined
09:32
virtualsue left,
espadrine joined
|
|||
nine_ | raydiak: oh that sounds like a good idea | 09:32 | |
raydiak | though I actually want to make the version a property of the Inline::Lua instance instead...different versions are not composable as-is | ||
e.g. the first module that you load determines the version that everything subsequent gets...maybe need Lua::Raw['JIT'] or so to fix that, but I haven't tried yet | 09:34 | ||
but first I'm working on tables which in lua provide objects and classes and hashes and arrays, so my crude suppor there kinda limits its iterop usefulness atm | 09:37 | ||
*support | 09:38 | ||
ab5tract | unfortunately, i don't have time to backlog properly, but i wanted to make sure you folks saw this www.techworld.com/careers/perl-deve...y-3599357/ | ||
osfameron | ab5tract: yeah, that was a pretty good article | 09:41 | |
raydiak | nine_: what happens if someone wants to call e.g. a method named 'list' on a PythonObject? is that what .invoke is for? | 09:49 | |
nine_ | raydiak: yes | 09:51 | |
raydiak: err...no! | |||
That is handled by the add_fallback code further down | 09:52 | ||
invoke() handles callable objects | |||
raydiak | I mean if you try to call a method which is named something that is already inherited from Any or Mu, you get the Perl method not the Python one, right? | 09:53 | |
TimToady home before 2am | |||
nine_ | Itvdepends on which invoke you mean. There's Inline::Python::invoke and Inline::Python::Object::invoke | 09:54 | |
raydiak | TimToady: welcome home :) | ||
nine_ | raydiak: yes that's still a problem | ||
jnthn | TimToady: Sounds like long journey was long... | ||
nine_ | raydiak: see my FOSDEM talk for a workaround (HTML::Parser example) | 09:55 | |
typing on phones sucks.... | |||
raydiak | nine_: cool thanks, I'll check it out | 09:56 | |
typing on laggy ssh connections isn't all that great either :) | |||
the table implementation is going to be fun...basically one class which supports method calls, positional, *and* assosciative | 09:59 | ||
moritz | like Match | 10:00 | |
raydiak | usually that ambiguity is a problem for translating from lua, b/c no way to know if lua empty table is a hash, array, object, class, etc...but it's p6 so I can just have one object do all the things and respond according to how it's accessed instead of what was returned from lua | 10:01 | |
yeah...or like Capture, but that turned out to be a different complicated story | |||
nine_ | It's really nice that Perl 6 seems to be a superset of other languages' features. | 10:03 | |
raydiak | moritz: btw the docs say "class Capture does Positional does Associative { }", but it actually doesn't do either one in the code...but that description is functionally very useful as far as understanding the intent goes | ||
nine_ | No mstter how complicated the foreign API, we can map it to Perl6 | ||
raydiak | so true | 10:04 | |
afk for a few | |||
FROGGS | nine_: I feel the same with C/C++ interop :o) | ||
10:05
sqirrel_ left
|
|||
moritz | m: say Capture ~~ $_ for Positional, Associative | 10:06 | |
camelia | rakudo-moar 3607d7: OUTPUT«TrueTrue» | ||
moritz | raydiak: ^^ | ||
it does both | |||
nine_ | in p5's Inline::Python it was a real problem that p5 has no real named arguments | ||
FROGGS | a proper type model also helps a lot | 10:08 | |
for the C++ name mangling you would have to pass strings around instead of types to make it work | |||
nine_ | oh yes Types++ | 10:09 | |
raydiak | m: say Capture ~~ Positional | 10:10 | |
camelia | rakudo-moar 3607d7: OUTPUT«False» | ||
raydiak | m: say Capture ~~ Associative | ||
camelia | rakudo-moar 3607d7: OUTPUT«False» | ||
moritz | huh. | 10:11 | |
m: say Catpure.^roles | |||
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/zWzPHM1vu5Undeclared name: Catpure used at line 1. Did you mean 'Capture'?» | ||
moritz | m: say Capture.^roles | ||
camelia | rakudo-moar 3607d7: OUTPUT«» | ||
moritz | m: say Capture.^mro | ||
camelia | rakudo-moar 3607d7: OUTPUT«(Capture) (Any) (Mu)» | ||
raydiak | and not in the code that I could find, either by declaration or by metamodel | 10:12 | |
afk again | |||
jnthn | moritz: Beware ~~ with $_ :) | 10:15 | |
moritz | also I wonder why Iterable is a class, not a role | ||
jnthn: oh right :/ | |||
10:15
virtualsue joined
10:18
virtualsue left
10:19
sqirrel_ joined
10:20
noganex joined
10:23
spider-mario joined,
noganex_ left,
pecastro joined
10:32
telex left,
telex joined
10:37
Ven left
10:44
chenryn left
|
|||
raydiak | back | 10:45 | |
10:50
rindolf joined
10:52
beastd left
|
|||
dalek | c: c2ded1a | (Matthias Krull)++ | CONTRIBUTING.md: added some more introductory information to CONTRIBUTING |
10:53 | |
11:05
thilp joined
|
|||
dalek | c: 83ec926 | paultcochrane++ | htmlify.p6: s/hilight/highlight/ |
11:10 | |
c: ee49c3c | paultcochrane++ | htmlify.p6: Expand single char variable names for clarity |
|||
c: 3b6d55b | paultcochrane++ | lib/Language/traps.pod: Mention how to reference last element of an array |
|||
c: 114c308 | paultcochrane++ | lib/Language/traps.pod: Mention how to capitalize strings |
|||
c: 49f6df8 | paultcochrane++ | CONTRIBUTING.md: Merge branch 'master' of github.com:perl6/doc |
|||
c: 1160afc | paultcochrane++ | CONTRIBUTING.md: Correct pygementize package name for Debian |
|||
c: 5b89eac | paultcochrane++ | htmlify.p6: Append doc source reference link to Type and Language pages |
|||
sergot | hi #perl6 | ||
11:11
sqirrel_ left
|
|||
raydiak | hello sergot | 11:12 | |
11:14
virtualsue joined
11:17
chenryn joined
|
|||
moritz | [ptc]++ | 11:17 | |
arewewebyet.com/ Perl 6 doesn't do too bad in comparison, I'd say :-) | 11:20 | ||
11:20
Ven joined
11:22
sqirrel_ joined
11:25
laouji_ joined
|
|||
masak wishes he had more tuits for his 'isperl6readyforproduction' idea :/ | 11:30 | ||
11:30
laouji_ left
|
|||
masak | I like the color coding and categories. | 11:31 | |
nwc10 | masak: is there a webserver in perl 6 on which to run it? | ||
how is the mini-masak? | |||
masak answers that in privmsg :) | 11:34 | ||
nwc10: yes, there is a webserver. yes, we could totally dogfood it. | 11:35 | ||
nwc10: but if I wanted to be practical in that case, I would statically generate it. no good reason not to. | |||
Ven looks at the smalltalk videos from fosdem.. | 11:36 | ||
moritz | and the pages would load a lot faster :-) | ||
raydiak goes to bed o/ | |||
11:44
chenryn left
|
|||
masak | nwc10: nothing to prevent us from dogfooding an excellent static generator, though. | 11:44 | |
11:44
coffee` joined
11:46
_mg_ joined
11:49
kjs_ left
12:00
wicope left
12:01
xfix left
12:02
chenryn joined
12:05
rurban left
12:06
_mg_ left
12:13
AndChat-458964 joined
12:14
sqirrel_ left,
chenryn left
12:16
Sqirrel left
12:19
rurban joined
12:21
Akagi201 joined
12:26
chenryn joined
12:30
Akagi201 left
|
|||
literal | how do I require a minimum version of a module when loading it with Inline::Perl5? | 12:31 | |
12:43
anaeem1 left
|
|||
moritz | use Inline::Prel5:ver<0.1+> or something like that | 12:44 | |
but I doubt it actually works | |||
12:45
chenryn left
12:48
kjs_ joined
12:51
Akagi201 joined
|
|||
psch | \o | 12:51 | |
doesn't the p5 side of Inline::Perl5 handle that? | 12:52 | ||
oh, i suppose not with our «use» | |||
moritz | oh, I misunderstood literal | 12:57 | |
literal | I would settle for checking $object.VERSION after instantiating the class, but that doesn't work either | 12:58 | |
13:06
leont joined
13:07
pmurias joined
|
|||
pmurias | does a php to Perl 6 translator sound like a sane idea? | 13:08 | |
Ven | sane? no. amazing? Sure :D | ||
literal | sounds saner than a Perl 6 to PHP translator | ||
13:09
sqirrel_ joined
|
|||
psch | literal: VERSION is usually a package sub, not a method i think? | 13:09 | |
although i'll readily admit i don't know much about p5 OO | |||
literal | yeah, but in Perl 5, methods are package subs | ||
psch remembers something about bless | 13:10 | ||
literal | they just do something special with their first argument ($self) | ||
psch | checking the version in a perl5 program is with $Module::Name::VERSION, not with my $obj = Module::Name->new(); $obj->VERSION;, right? does that make a difference? | ||
pmurias | Ven: seems the best way of learning PHP as writing something in it doesn't seem like a good option ;) | 13:11 | |
13:12
laouji_ joined
|
|||
literal | psch: yeah, the former is the conventio, but both work | 13:14 | |
13:16
laouji_ left
|
|||
psch | literal: i see. if VERSION isn't reachable through Inline::Perl5 i suspect nine_++ would want to know | 13:16 | |
literal | actually, you can ignore me, the issue was that the Perl 5 package I was loading was lacking a "our $VERSION = ..." | 13:17 | |
so $object.VERSION actually does give me the version now | |||
"use Perl5Module:ver<0.1>" doesn't work though, and would be Nice To Have | 13:19 | ||
forgot the :from<Perl5> there | |||
pmurias | literal: a Perl 6 to PHP translator doesn't seem possible, it would have to be a compiler as Perl 6 is much more powerful | 13:22 | |
literal | exactly | ||
moritz | nqp-php, I hear you coming | 13:26 | |
13:32
kaleem joined
13:41
kaleem left
13:48
grondilu joined
13:51
sqirrel_ left
13:52
AndChat-458964 left
13:53
laouji left
|
|||
Ven | .oO( nqphp ) |
13:56 | |
tadzik | that was phpish :) | 13:57 | |
nine_ | literal: can you please open a github issue for Perl 5 module version requirement? Sounds somewhat simple to implement. | ||
After my flight instructor's exam tomorrow I should have a lot more spare time :) | 13:58 | ||
Ven | tho, really, code generation backends would be interesting if not so difficult considering p6's ßemantics :).. | 14:00 | |
14:01
mjreed joined
|
|||
nine_ | Writing compilers in Perl 6 is a piece of cake. | 14:01 | |
mjreed | Does %*ENV not work in rakudo-star? Or did the spec change? | ||
moritz | star-m: say %*ENV.perl | 14:02 | |
camelia | star-m 2015.01: OUTPUT«("LANG" => "POSIX", "SHELL" => "/bin/bash", "MANPATH" => "/home/camelia/perl5/perlbrew/perls/perl-5.20.1/man:/usr/local/man:/usr/share/man", "LC_CTYPE" => "en_US.UTF-8", "PERLBREW_BASHRC_VERSION" => "0.71", "LOGNAME" => "camelia", "PERLBREW_MANPATH" => "/home/…» | ||
mjreed | ok. something weird with my local build then | ||
should have just tried that, but not sure what’s supposed to be in the env of the bot, which might have been cleansed for security purposes etc. | 14:03 | ||
Thanks. | |||
14:12
laouji joined
|
|||
Ven | smalltalk's surprising. Why does reversing a symbol give a string? | 14:16 | |
.oO( we're not the only one with a "bad" reverse *g* ) |
|||
14:16
laouji left
|
|||
ab5tract | m: my $x; $x *= 5; say $x | 14:19 | |
camelia | rakudo-moar 3607d7: OUTPUT«5» | ||
literal | nine_: sure | ||
ab5tract | i was a bit surprised by that | ||
not sure if i was only surprised because ++$x autovivs $x as 0, or what | 14:21 | ||
especially in the context of | 14:23 | ||
m: my $x; $x /= 5; say $x | 14:24 | ||
camelia | rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</> in method Numeric at src/gen/m-CORE.setting:14974 in sub infix:</> at src/gen/m-CORE.setting:5144 in block <unit> at /tmp/s2djlLmYE8:1» | ||
ab5tract | (unless i am misreading what zero-arg means there, which i took to mean "can't have a 0 as an operand for infix:</>" | ||
which, yes, i am misreading | 14:25 | ||
colomon | does seem a bit odd that *= works but /= doesn’t. | 14:27 | |
might have something to do with Rats? | 14:28 | ||
btyler | this was in the context of the sharp ends of perl 5's "sometimes autoviv without warning, sometimes warn" behavior with my $foo; $foo (op)= (value) | ||
colomon has to admit he’s not really convinced that the *= example makes sense | 14:29 | ||
btyler | ie in perl5: my $foo; $foo += 1; does not warn, you get 1. my $foo; $foo *= 3; warns, you get 0. | ||
ab5tract | colomon: indeed, it seems to me that the case of autoviving to a number should have a consistent rule | 14:30 | |
colomon | I’m pretty sure these ideas got added to the language for handling [+] and [*] | 14:31 | |
In both cases, using the additive / multiplicitive identity makes great sense | |||
but I don’t know if I’d expect it to autoviv the same way | 14:32 | ||
ab5tract | hmmm. yes i can see it in that context. | ||
btyler | m: say [/] 1 .. 5; | 14:33 | |
camelia | rakudo-moar 3607d7: OUTPUT«0.008333» | ||
btyler | seems to not use the zero-arg multi | ||
at any point | |||
but yeah, the identity makes sense there, also agree | 14:34 | ||
colomon | m: say [/] | 14:36 | |
camelia | rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</> in method gist at src/gen/m-CORE.setting:14976 in sub say at src/gen/m-CORE.setting:17740 in block <unit> at /tmp/jQZOLKWC09:1» | ||
colomon | m: say [*] | ||
camelia | rakudo-moar 3607d7: OUTPUT«1» | ||
colomon | that’s the difference there | ||
it does seem to me that both should return q | 14:37 | ||
errr, 1 | |||
:) | |||
hmmm | |||
m: say [-] | |||
camelia | rakudo-moar 3607d7: OUTPUT«0» | ||
colomon | yeah, definitely 1 | ||
moritz | huh, what's the problem? | 14:40 | |
colomon | moritz: looks like no one ever defined the zero-arg version of infix:</> | ||
or possibly it’s getting muddled up in Rat handling somewhere | 14:41 | ||
FROGGS | does it make sense to have a "zero arg version" | ||
? | |||
ab5tract | well, i don't get why '$x /= 5' could be considered zero arg in the first place | 14:42 | |
moritz | m: say [/] | ||
camelia | rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</> in method gist at src/gen/m-CORE.setting:14976 in sub say at src/gen/m-CORE.setting:17740 in block <unit> at /tmp/aALq4KDilL:1» | ||
FROGGS | I mean, for * it does not matter what is LHS or what is RHS..., but for / it matters | ||
14:42
Ven left
|
|||
ab5tract | FROGGS: same can be said about - | 14:42 | |
14:43
fernando_ left
|
|||
FROGGS | probably... | 14:43 | |
14:43
fernando_ joined
|
|||
ab5tract | only difference is that pesky divide by zero ;) | 14:43 | |
14:43
fernando_ left
14:44
fernando_ joined
|
|||
grondilu thinks binary operators should have a zero arg version only when there is a clearly identified neutral element. | 14:44 | ||
colomon | grondilu: which there is for both subtraction and division | 14:45 | |
FROGGS: I don’t see how LHS vs RHS enters in at all | |||
? | |||
grondilu | not sure about division, 1 is a right-neutral element, but not a left-one. | ||
(same for substraction) | 14:46 | ||
colomon | grondilu: good point | ||
14:48
fernando_ left,
larion left
|
|||
FROGGS | colomon: I understand it that way: zero-arg meaning for + is 0 because 0 + n = 0... and 1 * n = n... but there is no such thing for division or subtraction | 14:49 | |
colomon does think we should be considering this as two different issues: what happens with meta-op reduct and what happens with auto-viv | |||
FROGGS | err, 0 + n = n | ||
colomon | but (as grondilu points out), if you write it the other way it makes perfect sense: n - 0 = n and n / 1 = n | 14:50 | |
[Coke] wonders who the christoph is that replies to all the perl6 questions on StackO. | |||
FROGGS | m: my $x; $x *= 5; say $x # I'd think this should be 0 and that means $x has to autoviv to 0 first, and that it does not do that is a bug | ||
camelia | rakudo-moar 3607d7: OUTPUT«5» | ||
moritz | FROGGS: it's a design decision that it's not 0 | ||
14:51
rmgk_ joined,
rmgk left,
rmgk_ is now known as rmgk
|
|||
FROGGS | ahh, hmmm | 14:51 | |
interesting :o) | |||
colomon | moritz: but I’m certainly willing to question that design decision | ||
FROGGS | [Coke]: probably usev6 / bartolin | 14:52 | |
moritz | colomon: questioning that is best done by collecting use cases | ||
[Coke] | ah. the only matching name in my head was cotto, and I was pretty sure that was wrong. Danke. | ||
FROGGS | [Coke]: kein Thema | ||
nine_ | moritz: do you know the rationale for this design decision? Looks quite surprising to me. | 14:53 | |
14:55
Ven joined
14:57
fernando_ joined
|
|||
grondilu | degenerate cases are tricky anyway. I've suggested once that someone writes a synopsis about them. | 14:57 | |
moritz | nine_: not sure, but maybe the idea was to view a non-existing element like a zero-element list | 15:00 | |
15:01
fernand__ joined
|
|||
moritz | my %weights; %weights{$name} *= 1.05; | 15:01 | |
15:02
fernando_ left
15:05
fernand__ left
|
|||
ab5tract | moritz: it's fair to say "we autoviv to 1 for * because we want [*] to be sane" | 15:05 | |
but then what's going on here? | |||
colomon | but reduction very explicitly does NOT work that way | ||
(autoviv-like, I think) | 15:06 | ||
15:06
fernando_ joined
|
|||
ab5tract | where here is $x /= 5 | 15:06 | |
colomon | actually, maybe I’m not understanding what ab5tract is trying to get at here | 15:07 | |
ab5tract | colomon: well, i can vibe with the argument that for * we autoviv to 1 | 15:08 | |
it's kind of surprising, but in the context of [*] it makes sense | |||
colomon | Ah, I see those as almost completely separate issues | ||
ab5tract | but isn't the idea so that [*] 5, 6, undef, 7 will DWIM | 15:09 | |
? | |||
that seems exactly like autoviv to me | |||
colomon | m: say [*] 3, 4, Int, 5 | ||
camelia | rakudo-moar 3607d7: OUTPUT«Invocant requires an instance, but a type object was passed in method Bridge at src/gen/m-CORE.setting:5458 in sub infix:<*> at src/gen/m-CORE.setting:5369 in sub at src/gen/m-CORE.setting:21008 in block <unit> at /tmp/OHhUe5xM96:1» | ||
PerlJam | colomon: you'd have to use Nil instead | ||
ab5tract | m: [*] 1,2,$x,3 | ||
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SCT6SyfhkoVariable '$x' is not declaredat /tmp/SCT6Syfhko:1------> 3[*] 1,2,$x7⏏5,3 expecting any of: postfix» | ||
ab5tract | m: my $x; [*] 1,2,$x,3 | 15:10 | |
camelia | rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context in block <unit> at /tmp/czu8iVYtsf:1» | ||
FROGGS | m: my $x; say [*] 1,2,$x,3 | ||
camelia | rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context in block <unit> at /tmp/rk4QVI7CAg:10» | ||
colomon | yeah, it’s not supposed to autoviv there | ||
ab5tract | okay, i stand corrected. they are very different issues | ||
15:10
fernando_ left
|
|||
ab5tract | all that is very confusing in my opinion | 15:10 | |
colomon | :) | ||
PerlJam | ab5tract: sometimes autoviv to 0 and other times autoviv to 1 would be *highly* surprising | ||
ab5tract | PerlJam: yet that is exactly the behavior we currently have | 15:11 | |
colomon | issue one: what happens when you do a reduct on the empty list? That’s where the 0 and 1 thing makes sense for sure with [+] and [*] | ||
PerlJam | ab5tract: show me? | ||
colomon | issue two: what happens when you need to autoviv a number into a [math-op]= expression? | 15:12 | |
ab5tract | m: my $x; $x *= 5; say "$x autovivs to 1 for *"; my $y; $y += 5; say "$y autovivs to 0 for +"; | ||
camelia | rakudo-moar 3607d7: OUTPUT«5 autovivs to 1 for *5 autovivs to 0 for +» | ||
PerlJam | ab5tract: ah. | 15:13 | |
I'd call that at least one bug. | |||
ab5tract | m: my $x; $x /= 5; say "$x doesn't autoviv for /"; my $y; $y -= 5; say "$y autovivs to 0 for -"; | ||
camelia | rakudo-moar 3607d7: OUTPUT«No zero-arg meaning for infix:</> in method Numeric at src/gen/m-CORE.setting:14974 in sub infix:</> at src/gen/m-CORE.setting:5144 in block <unit> at /tmp/Hp5Hs3Co__:1» | ||
colomon | BTW, that’s a very LTA error message | 15:14 | |
ab5tract | so yeah, i would claim WAT/YAPAE, if not bug | ||
i also don't get why reduct should ever be else than 0 for an empty list | 15:16 | ||
colomon | ab5tract: en.wikipedia.org/wiki/Product_%28ma..._sequences | 15:17 | |
PerlJam | Does the behavior of my $x; $x *= 5; fall out of the reductio ad nihilo of [*]? What I mean is, was this an accidental by product? | ||
colomon | PerlJam: don’t think so | 15:18 | |
it was explicitly done | |||
PerlJam | Hmm. | ||
[Coke] | m: say [*] Nil | 15:20 | |
camelia | rakudo-moar 3607d7: OUTPUT«1» | ||
15:20
xinming joined
|
|||
ab5tract | colomon: damnit, math wins again ;( | 15:22 | |
15:23
rurban left,
njmurphy joined
|
|||
colomon | ab5tract: where it gets tricky is with subtraction and division. As far as I know, niether one has a standard math eqivalent like [+] and [/] do | 15:24 | |
15:24
xfix joined
|
|||
colomon | like with subtraction, you’d always just say (using p6 instead of standard math notation) n - [+] rather than [-] | 15:25 | |
PerlJam | Still seems to me like my $x; $x *= $blah; # just hides an error that would otherwise be caught. | ||
colomon | PerlJam: yes, as I said above I think autoviv is a separate issue from reduct on empty lists | 15:26 | |
or at least, it’s conceptually different | |||
PerlJam | aye. I'm just agreeing after engaging what little brain power I have this morning :) | ||
PerlJam prepares the caffiene | |||
colomon wonders | 15:31 | ||
m: my $x; say $x * 4 | |||
camelia | rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context in block <unit> at /tmp/Pi1MeECq1T:10» | ||
colomon thinks it is a very bad idea to have $x = $x * 4 and $x *= 4 return different answers | 15:32 | ||
15:32
laouji joined
|
|||
colomon | m: my $x; $x = $x * 4; say $x | 15:32 | |
camelia | rakudo-moar 3607d7: OUTPUT«use of uninitialized value of type Any in numeric context in block <unit> at /tmp/mHXag8h89M:10» | ||
colomon wants to rephrase that Very Bad Idea | |||
15:33
kjs_ left
15:35
rurban joined
15:36
mjreed left
15:39
chenryn joined
|
|||
tadzik | d'oh, github-awards.com/users/search?login=tadzik lists me as #1 in the world in Perl 6 | 15:42 | |
I guess it means "number of repos" :) | |||
colomon | tadzik++ | ||
15:42
njmurphy left
|
|||
colomon | though I’m pretty sure I have more than 7 perl 6 repos | 15:43 | |
Woo-hoo, I’m Midland Michigan’s #1 perl 6 programmer! | 15:44 | ||
moritz | github-awards.com/users?language=pe...type=world show that it's by stars | ||
and panda simply has the most stars of all the perl6 github repos | |||
15:45
kjs_ joined
|
|||
colomon is pretty sure it is misidentifying my p6 repos as p5 repos | 15:45 | ||
Ven now wonders if "Pair" has any kind of.. association with smalltalk's association class :) | |||
Ven should probably ask TimToady about that... | 15:46 | ||
15:46
njm joined,
salv0 left
15:47
njm left
15:48
njmurphy joined
15:52
khisanth_ is now known as Khisanth
15:53
chenryn left
15:54
chenryn joined
|
|||
FROGGS | tadzik: it thinks that my repos are almost all about P5 :o( | 15:54 | |
tadzik | yeah, same here | 15:55 | |
FROGGS | ahh, yeah | ||
PerlJam | well ... Perl is Perl is Perl ;) | ||
15:57
laouji left
15:58
fernando_ joined
|
|||
Ulti | so my bioinformatics code (unchanged) has gone from 35 seconds 61.8% JIT on 22nd August to 8 seconds 80.3% JIT just now mattoates.co.uk/files/perl6/ | 15:59 | |
those are some quite big differences in numbers | |||
pyrimidine | Ulti: \o/ | ||
colomon | \o/ | 16:00 | |
PerlJam | Ulti: nice. | ||
Ulti | in half a year of work | ||
and I didnt have to do anything :) | |||
ab5tract | colomon: FWIW, perl 5 warns in the case of '$x = $x + 5' but not in the case of '$x += 5' | ||
though it _does_ warn in the case of '$x *= 5' | |||
16:05
fernando_ left
16:06
kjs_ left
16:07
sqirrel_ joined
|
|||
hoelzro | o/ #perl6 | 16:11 | |
FROGGS | o/ | ||
PerlJam | hoelzro: o/ | ||
16:14
Ven left
16:17
diana_olhovik left
16:19
chenryn left
16:21
chenryn joined
16:22
Ven joined
16:24
_mg_ joined
|
|||
Ulti | mattoates.co.uk/files/perl6/rakudo_runtime.svg mattoates.co.uk/files/perl6/rakudo_...ations.svg | 16:31 | |
16:32
chenryn left,
chenryn joined
|
|||
Ulti | I suspect the reasons for things not being faster are increasingly algorithmic implementation rather than VM apart from maybe all the list changes coming up | 16:33 | |
the last 10% extra JIT hasn't had much effect on runtime | 16:34 | ||
Ulti goes back to his day job ;3 | 16:35 | ||
16:36
gjeih joined
|
|||
sjn has been naughty and blogged about Perl 6 stuff: code.foo.no/2015/02/13/on-bandwagon...dwagoneers | 16:36 | ||
gjeih | will one-liners in the form of perl6 -ne 'stuff' still be allowed in Perl 6 ? | 16:38 | |
ab5tract | moritz: can you elaborate on why $x *= 5 autovivs for 1 on puprpose? | 16:39 | |
japhb | gjeih: Yes, with the exception of needing to separate out the options: perl6 -n -e 'stuff' | 16:40 | |
16:40
anaeem1_ joined
|
|||
japhb | gjeih: Do 'perl6 -?' for a quick summary of what's supported now. | 16:40 | |
gjeih | japhb ah that sucks a bit but not really a stopper | ||
ab5tract | japhb: i haven't ever had to separate the options... | ||
16:40
zakharyas left
|
|||
japhb | ab5tract: Really? I thought that was one of the limitations still; maybe someone "fixed" it | 16:41 | |
Helps for the equivalent of 'perl -nale' but can't do much to fix the equivalent of 'perl -pi.bak -e', because that already required breaking up the option group | 16:42 | ||
16:43
cschwenz joined,
cschwenz left,
anaeem1_ left
16:44
cschwenz joined,
anaeem1 joined
|
|||
psch | i might be misremembering, but i think my PR allows -pi=.bak | 16:46 | |
but it'd have to be cleaned up and there's some discourse required regarding the implementation | |||
but yeah, multiple shortopts with value can't be grouped ever | 16:47 | ||
also, we already allow -ne i think :l | 16:48 | ||
Ulti | japhb do you remember -nale as sounding like 'nail'? because I write -lane :) | ||
16:49
anaeem1 left
16:52
echowuhao joined
16:53
_mg_ left,
fhelmberger left
|
|||
dalek | rl6-roast-data: 6385541 | coke++ | / (9 files): today (automated commit) |
16:55 | |
16:58
laouji joined
16:59
Ven left
17:01
fernando_ joined
17:03
laouji left,
diana_olhovik joined
|
|||
japhb | Ulti: It depends on my mood. I switch back and forth. And yeah, -nale sounded like 'nail' to me. :-) | 17:04 | |
timotimo | yes, -ne works already | ||
japhb | Very happy to hear that | 17:05 | |
The problem with being around here for years is that sometimes you remember the stuff that didn't work back then better than the stuff that does work now. :-) | |||
ashleydev | I was just watching this video about writing a type-safe printf function in Idris www.youtube.com/watch?v=fVBck2Zngjo and it mentioned at the end that being able to reference values in the type system allowed the language to not need a macro system -- is this kind of thing possible in perl6? | ||
17:06
anaeem1 joined,
fernando_ left
|
|||
nine_ | ashleydev: maybe subsets? blogs.perl.org/users/tyler_curtis/2...patch.html | 17:06 | |
ashleydev | for those who don't know, Idris is like Haskell but with a stronger type system | ||
nine_: will these be checkable at compile time? | 17:08 | ||
mst | Idris strikes me as "what happens if you put haskell and CoQ in a bag with some good acid and shake" | ||
(I mean this as a compliment) | 17:09 | ||
ashleydev | I think the technical term is "dependant type system" | ||
17:09
FROGGS left
|
|||
ashleydev | mst: yes being able to specify more succint function prototypes allows them to express more "theorems" | 17:10 | |
hoelzro | sjn++ # blogging | 17:11 | |
pyrimidine | Ulti: Re: performance, biggest bottleneck I've seen so far is IO. | ||
ashleydev | mst: if one is thinking in terms of the curry-howard correspondance --> see this: codewords.hackerschool.com/issues/...-and-logic | ||
pyrimidine | Ulti: I have a GFF3 grammar that parses FlyBase (w/o FASTA): github.com/cjfields/bioperl6/blob/...ar/GFF.pm6 | ||
Ulti: took ~20 minutes | 17:12 | ||
timotimo | ashleydev: we'd need something that runs "early" that processes the printf format string, so we'd need something macro-like in perl6 at least ... | ||
pyrimidine | so usable (better than 20 hours) but not fast | ||
Ulti | yeah | 17:13 | |
my examples ignore IO but I'm aware its the main problem :'( | 17:14 | ||
pyrimidine one thing I was trying to do to get around it is have the grammar parse chunks of the IO stream in parallel to it being read | |||
since Perl6 has lots of nice constructs for expressing that now | 17:15 | ||
the issue is you need to kind of already split the format before you do the Grammar.parse so I ended up having classes which held action, grammar and some sort of record separator | |||
pyrimidine | Ulti: re: IO, I think this is something that can be fixed. | 17:16 | |
Ulti | pyrimidine: have you tried the newio branch? | ||
pyrimidine | Ulti: not yet but I've planned on doing it | ||
Ulti | yeah I haven't either | 17:17 | |
17:17
Rounin left
|
|||
timotimo | Ulti: froggs has done some nice work on record separators (replacements for \n and such) during and shortly after the APW. i *think* it's been merged already | 17:17 | |
it'd allow you to get splitting (to be used with .lines and friends) at the lowest (fastest!) level with more complicated record separators | 17:18 | ||
pyrimidine | Ulti: re: 'chunking' the data, yep I do that too. But I think the proposal for Cat would allow a sort of 'lazy' grammar parsing. But that's post 6.0.0... | ||
Ulti | yeah | ||
really you could have grammars be parallel too as they sort of go down the tree | |||
17:18
anaeem1 left
|
|||
pyrimidine | timotimo: not merged as of yet. A two char record sep doesn't work with MoarVM (does with JVM though, last I checked) | 17:19 | |
Ulti | so if the top level token is a record one thread is breaking stuff up into that and then another thread deals with the next level | ||
17:19
anaeem1 joined,
anaeem1 left
17:20
anaeem___ joined
|
|||
Ulti | timotimo: cool that has been a longtime feature request by nearly everyone :) FROGGS++ | 17:20 | |
I looked at it when I found it wasn't implemented but stopped at when it dived into nqp needing to be changed because I'm a scaredy cat | |||
17:21
Kristien joined
|
|||
psch | Cats also need moreinput i think? | 17:21 | |
17:21
kjs_ joined
|
|||
psch | or is that just Perl6/Grammar.nqp to emulate what Cats do for the REPL? | 17:21 | |
ashleydev | nine_: read more of your post, yes subset types seem pretty close, what happens when you call the multi with a value outside of any subset covered by the multis? | 17:22 | |
Ulti | pyrimidine I should really take a look at what you've been upto because it sounds like you've been busy recently :) | ||
psch | eh, "just *for* Perl6/Grammar.nqp to emulate for the REPL what Cats do for the user" | ||
timotimo | damn. thanks, pyrimidine | ||
nine_ | ashleydev: then no candidate could be found and you get an error saying that. | ||
pyrimidine | Ulti: feel free to jump in. I do what I can, $job keeps me busy most of the time though :P | 17:23 | |
nine_ | m: subset Foo of Int where * > 2; subset Bar of Int where * < -2; multi sub foo(Foo) { say "yes"; }; multi sub foo(Bar) { say "yes"; }; foo(3); | 17:24 | |
camelia | rakudo-moar 3607d7: OUTPUT«yes» | ||
17:24
chenryn left
|
|||
nine_ | m: subset Foo of Int where * > 2; subset Bar of Int where * < -2; multi sub foo(Foo) { say "yes"; }; multi sub foo(Bar) { say "yes"; }; foo(1); | 17:24 | |
camelia | rakudo-moar 3607d7: OUTPUT«Cannot call 'foo'; none of these signatures match::(Int $ where { ... }):(Int $ where { ... }) in sub foo at /tmp/_I7o6OmegR:1 in block <unit> at /tmp/_I7o6OmegR:1» | ||
ashleydev | nine_: subsets seem pretty specific to run-time checks | ||
I wonder if how Idris eleveates values into the type system | 17:25 | ||
nine_ | ashleydev: I use them extensively in real world code here: github.com/niner/Apache-To-Nginx/b...r/Nginx.pm | ||
17:26
mohij joined
17:28
sqirrel_ left
17:29
MadcapJake joined
17:33
mr-foobar joined
17:36
ninedragon joined
17:37
gfldex joined,
cschwenz left
|
|||
TimToady comes vaguely back to life | 17:38 | ||
17:39
Kristien left
17:43
molaf joined
17:47
gjeih left
|
|||
[Coke] | ho, ZimZomby | 17:48 | |
17:48
pecastro left
17:49
espadrine left
17:50
anaeem___ left,
pmurias left
17:54
virtualsue left
|
|||
TimToady doesn't think .invert should coerce to hash | 18:02 | ||
18:02
fernando_ joined
18:06
fernando_ left
|
|||
mohij | Hey! I'm in search of a way to set and track state during parsing that reverts when backtracked over. | 18:07 | |
PerlJam | mohij: sounds like let to me | 18:08 | |
18:08
dakkar left
|
|||
mohij | I have a gist that rather convincingly fails doing that. | 18:08 | |
gist.github.com/patzim/5fd2380e8bbe140b22f3 | |||
18:09
Kristien joined
|
|||
mohij | PerlJam: doc.perl6.org/routine/let <- looks not that bad at all... | 18:09 | |
PerlJam | mohij: or maybe temp (I'm not sure that "reverts" happens with let0 | ||
ah, apparently it does :) | |||
pyrimidine | timotimo, Ulti: regarding the record separator issues there is a ticket: RT #122971 | 18:10 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=122971 | ||
PerlJam | caveat lector: I've yet to actually use "let" | ||
mohij | assuming a grammar rule sets a value using let, matches, and later on a rule fails causing a backtrack including the first rule. Let wouldn't do anything about that, right? | 18:12 | |
18:14
_mg_ joined
18:15
telex left
18:16
telex joined
|
|||
TimToady sees .invert as primarily an operation on lists of pairs to prepare for pushing into a hash | 18:16 | ||
for one thing, coercing to hash throws away information, and we can't have that | |||
moritz | huh? | 18:17 | |
we have lots of coercions that throw away information | |||
why is this coercion special? | |||
TimToady | invert is about preserving information | ||
moritz | lizmat++, I guess | 18:18 | |
TimToady | what I'd like to see is something that nobody was arguing for | ||
I think .invert on a list should require all the elements to be pairs | 18:19 | ||
18:19
Kristien left
|
|||
PerlJam | TimToady: oh, I like that. | 18:19 | |
TimToady | so @foo.pairs.invert explicitly maps @foo to 0, 1, 2 | ||
and we also don't waste time converting things to hashes just to tear them apart again, quite apart from the info loss | 18:20 | ||
so it would be illegal to invert a kv list, basically | 18:21 | ||
[Coke] is so done with $dayjob, and needs to carve out more p6 time. | |||
TimToady | not without running it through a pairup or whatever we call that operation | ||
dalek | c: 89f2ac4 | moritz++ | / (4 files): Document Scheduler, ThreadPoolScheduler and CurrentThreadScheduler |
18:23 | |
TimToady | m: say pair(1,2,:c(3)) | ||
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_tES6C3Rz4Undeclared routine: pair used at line 1. Did you mean 'pairs'?» | ||
TimToady | no, I meant the specced pair function | ||
PerlJam | TimToady: when you say "require all the elements to be pairs", do you mean that .invert should explicitly check this? like my @a = a => 1, b => 2, "boo", c => 57; # would fail ?? or that it would be checked implicitly through the type system or something? | 18:24 | |
TimToady | well, I see the definition of sub pair is a bit wrongish | 18:25 | |
moritz | TimToady: the specced pair function is mis-named, if it should indeed return a list of pairs | ||
moritz too slow | |||
TimToady | there's the internal op that hash assignment uses to decide whether the next thing is a pair or we should take the next 2 things as a kv | 18:27 | |
that operation needs a name, if it doesn't have one already | |||
moritz | it's currently just Hash.STORE | ||
TimToady | I think we called it .pairwise once | ||
if people have mixed kv and pairs they want @list.pairwise.invert | 18:28 | ||
without actually building a hash | |||
because pairwise doesn't throw away key collisions | |||
it just makes a list of pairs | |||
that's where I'd like to see invert go, for efficiency as well as maximum flexibility | 18:29 | ||
and @list.invert would blow up on a non-pair | |||
or would pair with Nil or something | |||
moritz | are there actually many uses cases where people have mixed lists of kv and pairs? | 18:30 | |
PerlJam | possibly not on purpose. But how are they to know? :-) | ||
TimToady | I dunno, but that's a primitive operation to my mind that we should expose and take advantage of | ||
skids | It's happened to me, don't rememeber why, but not by design. | 18:31 | |
TimToady | I agree that pair() is a bad name for it | ||
.pairup maybe | 18:32 | ||
18:33
fernando_ joined,
laouji joined
|
|||
PerlJam | TimToady: marry :) | 18:33 | |
nine_ | PerlJam: that's too strong. After all the operation is easily reversible :) | 18:34 | |
TimToady | well, mass marriages are something you usually only see in cults, but you often pairup for a dance | ||
and existing pairs tend to stick together :) | |||
PerlJam | nine_: I don't see the problem ;) | ||
TimToady: fwiw, I like pairup. | 18:35 | ||
18:37
fernando_ left
|
|||
skids | pairup makes sense. "partner" maybe but I think pairup is probably better. | 18:37 | |
18:37
sqirrel_ joined
18:38
laouji left
|
|||
TimToady | let's just not use 'hookup' :) | 18:38 | |
18:38
rurban left
|
|||
bartolin | [Coke], FROGGS: it's not me who answers perl6 questions on SO | 18:40 | |
18:41
Kristien joined
|
|||
TimToady | the final message in .pairup would have to change to: Odd number of elements found where key/value pairs expected | 18:42 | |
since it's not a hash initializer | 18:43 | ||
and if we use it for hash STORE, the message is probably adequate, if not completely awesome | 18:44 | ||
or maybe we can keep them separate | |||
anyway, I hope I'm being persuasive, and not just invoking Rule #1 here... :) | 18:45 | ||
18:45
grettir joined
|
|||
TimToady | the same principle (don't waste hash builds) worked out in the other direction with .classify, where we used to return a list of pairs, but then we said, "Duh, we made a hash, just return it, or we'll force people to rebuild the hash." | 18:47 | |
m: say (1...100).classify(* % 7).WHAT | 18:48 | ||
camelia | rakudo-moar 3607d7: OUTPUT«(Hash[Any,Any])» | ||
TimToady | okay, nobody's broken that yet, good :) | ||
Kristien | can you make generic methods? | 18:49 | |
like sub f[T](Hash[A, T] $x, T $y) { … } | 18:50 | ||
it's dangerous to do so | |||
TimToady | we try to restrict full generics to roles | 18:51 | |
we allow a bit of leeway in signatures with ::T though | 18:52 | ||
ashleydev | how does one read that `sub f[T](...` what are the square brackets signifying there? | ||
18:52
bayprogrammer left
|
|||
TimToady | so if you had: sub f'proto(::T, Hash[A,T] $x, T $y) {...} you could then do my $f = $f'proto.assuming(MyType) or so | 18:53 | |
Kristien | this is dangerous: | ||
TimToady | (mebbe) | ||
18:53
fhelmberger joined
|
|||
Kristien | generic methods only work with static typing or lack of deduction | 18:54 | |
skids | ashleydev: Not actual syntax, but Kristien was parameterizing the sub, e.g. defining a family of subs that vary with T. | ||
TimToady | ashleydev: that is not legal P6 | ||
18:55
diana_olhovik left
|
|||
ashleydev | ah | 18:55 | |
Kristien | or without subtyping | ||
ashleydev | So there's no way to say .assuming(SomeType)...? | ||
TimToady | I just said you probably can, just not using [] | 18:56 | |
Kristien | How about allowing later parameter types to refer to values of former parameters and using partial application? | ||
ashleydev wasn't sure what the "(mebbe)" was referring to -- as in the possibility of... | |||
18:57
diana_olhovik joined
|
|||
Kristien | deduction breaks in dynamically typed languages, though. you can't do it well | 18:57 | |
18:57
fhelmberger left
|
|||
Kristien | I don't know why anymore, but I thought about it and found a problem with it a few months back. | 18:58 | |
skids | m: sub foo(::T $f, T $g) { "ok".say }; foo(1,2); foo("a","b"); foo(1,"b"); | 18:59 | |
camelia | rakudo-moar 3607d7: OUTPUT«okokType check failed in binding $g; expected 'Int' but got 'Str' in sub foo at /tmp/nnevRaxfpJ:1 in block <unit> at /tmp/nnevRaxfpJ:1» | ||
TimToady | m: sub same'proto(::T, T $a, T $b) { say $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int 43 | 19:00 | |
camelia | rakudo-moar 3607d7: OUTPUT«TrueTrue» | ||
TimToady | m: sub same'proto(::T, T $a, T $b) { $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int 43 but True | ||
camelia | rakudo-moar 3607d7: OUTPUT«True» | ||
TimToady | m: sub same'proto(::T, T $a, T $b) { $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int (43 but True) | ||
camelia | rakudo-moar 3607d7: OUTPUT«False» | ||
TimToady | m: sub same'proto(::T, T $a, T $b) { $a.WHAT === $b.WHAT }; my &infix:<same-in-Int> = &same'proto.assuming(Int); say 42 same-in-Int "42" | 19:01 | |
camelia | rakudo-moar 3607d7: OUTPUT«Type check failed in binding $b; expected 'Int' but got 'Str' in sub same'proto at /tmp/hHGw6Gs9QV:1 in sub CURRIED at src/gen/m-CORE.setting:4136 in block <unit> at /tmp/hHGw6Gs9QV:1» | ||
TimToady | kaboom \o/ | ||
so there's your generic method | |||
well, function | |||
ashleydev | o/ high 5! | ||
PerlJam | Is someone writing this stuff down in a Perl 6 Cookbook yet? :) | ||
Kristien | m: class A { }; class B is A { }; sub foo(::T $f, T $g) { }; foo(A.new, B.new) | ||
camelia | ( no output ) | ||
Kristien | m: class A { }; class B is A { }; sub foo(::T $f, T $g) { }; foo(B.new, A.new) | 19:02 | |
camelia | rakudo-moar 3607d7: OUTPUT«Type check failed in binding $g; expected 'B' but got 'A' in sub foo at /tmp/Fl5mN4ONgX:1 in block <unit> at /tmp/Fl5mN4ONgX:1» | ||
Kristien | m: sub foo(::T $f, T $g) { say T }; foo(1, 2) | ||
camelia | rakudo-moar 3607d7: OUTPUT«(Int)» | ||
Kristien | interesting | ||
19:03
fernando_ joined,
FROGGS joined
|
|||
ashleydev | is the error message correct to say "CURRIED" vs "partially applied"? | 19:03 | |
TimToady | no | ||
FROGGS | o/ | 19:04 | |
ashleydev | \o (high-5) | ||
TimToady | though many people misuse "curry" to mean partial application | ||
ashleydev | should it be changed? | ||
mabye I can submit my first bug?? | 19:05 | ||
19:05
pierrot left
|
|||
TimToady | the spec (cough) called it 'priming' because 'partial application' is such a mouthful | 19:05 | |
19:05
pierrot joined
|
|||
ashleydev | that's clever | 19:05 | |
TimToady | ashleydev: yes, you may | ||
ashleydev | where's the interface to submit bugs? | ||
FROGGS | mailto:rakudobug@perl.org | 19:06 | |
psch | i suppose changing the name of the sub created by assuming could fall out of fixing #77744 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...l?id=77744 | ||
TimToady | irclog.perlgeek.de/perl6/2015-02-25#i_10180697 | 19:07 | |
psch | seeing as the cause for that bug and the cause for "sub CURRIED" are somewhat related | ||
19:07
fernando_ left
19:08
skids left
|
|||
ashleydev | \o/ Yay, I bugged: # | 19:14 | |
#123938 | |||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123938 | ||
bartolin | speaking of rakudobugs: I wonder what we should do with tickets which are specific for Parrot | 19:15 | |
19:15
rurban joined
|
|||
bartolin | maybe we could change the status to 'stalled'? | 19:15 | |
ashleydev | m: sub foo(::T $f, T $g) { say T }; foo(1, 2) | ||
camelia | rakudo-moar 3607d7: OUTPUT«(Int)» | 19:16 | |
psch | ashleydev: the type check fail is correct though, isn't it? | ||
in your bug, that is | |||
ashleydev | TimToady: is the initial '::' required? | ||
TimToady | yes | ||
ashleydev | why not subsequent ones? | ||
TimToady | in a signature, that captures the type of the incoming argument 'en passant' | ||
you don't want to capture the type later, but use it | |||
bartolin would like to hear other opinions (about tickets specific for rakudo.parrot) | 19:17 | ||
TimToady | m: sub foo(::T $f, ::T $g) { say T }; foo(1,2) | ||
camelia | rakudo-moar 3607d7: OUTPUT«(Int)» | ||
ashleydev | psch: done | ||
TimToady | m: sub foo(::T $f, ::T $g) { say T }; foo(1,"foo") | ||
camelia | rakudo-moar 3607d7: OUTPUT«(Str)» | ||
TimToady | that should probably parsefail as a redeclaration of T | 19:18 | |
psch | ashleydev++ | ||
ashleydev | hey maybe I can submit another bug? | ||
TimToady | shoot first, ask questions after | 19:19 | |
colomon | m: sub foo(::T $f, T $g) { say T }; foo(1,2) | ||
camelia | rakudo-moar 3607d7: OUTPUT«(Int)» | ||
colomon | m: sub foo(::T $f, T $g) { say T }; foo(1,”hello") | ||
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3JDx4skrABUnable to parse expression in argument list; couldn't find final ')' at /tmp/3JDx4skrAB:1------> 3sub foo(::T $f, T $g) { say T }; foo(1,7⏏5”hello") expecting any of: …» | ||
TimToady | or apologize, if you're Han Solo | ||
colomon | m: sub foo(::T $f, T $g) { say T }; foo(1, { a=> 2}) | ||
camelia | rakudo-moar 3607d7: OUTPUT«Type check failed in binding $g; expected 'Int' but got 'Hash' in sub foo at /tmp/74OcctU_gw:1 in block <unit> at /tmp/74OcctU_gw:1» | ||
colomon | sweet | ||
ashleydev | m: sub foo(::T $f, ::T $g) { say T }; foo(1,”hello") | 19:20 | |
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ovPQFoIxPrUnable to parse expression in argument list; couldn't find final ')' at /tmp/ovPQFoIxPr:1------> 3ub foo(::T $f, ::T $g) { say T }; foo(1,7⏏5”hello") expecting any of: …» | ||
ashleydev | m: sub foo(::T $f, ::T $g) { say T }; foo(1,"hello") | ||
camelia | rakudo-moar 3607d7: OUTPUT«(Str)» | ||
ashleydev | oh | ||
is that useful? | |||
or wrong... | 19:21 | ||
TimToady | it's wrong | ||
ashleydev | shoot! | ||
TimToady | m: class T {}; class T {} | 19:22 | |
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DEfyKO4a8PRedeclaration of symbol Tat /tmp/DEfyKO4a8P:1------> 3class T {}; class T 7⏏5{} expecting any of: generic role» | ||
TimToady | and should produce something like that | ||
m: sub foo($f, $f) { say $f }; foo(1,"foo") | 19:23 | ||
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cmb3n16F9TRedeclaration of symbol $fat /tmp/cmb3n16F9T:1------> 3sub foo($f, $f7⏏5) { say $f }; foo(1,"foo") expecting any of: shape declaration» | ||
TimToady | so it catches that one anyway | ||
TimToady wonders if there's a test for it | |||
m: sub foo(\f, \f) { say f }; foo(1,"foo") | 19:24 | ||
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jOb9K83ZHqRedeclaration of symbol fat /tmp/jOb9K83ZHq:1------> 3sub foo(\f, \f7⏏5) { say f }; foo(1,"foo") expecting any of: constraint» | ||
19:24
kjs_ left
|
|||
vendethiel | shouldn't ::T, ::T error out anyways? | 19:24 | |
or should some kind of... "unification"(???) be applied here? | 19:25 | ||
moritz | noooo | ||
[Coke] | bartolin - tickets that are parrot specific already havea an attribute marking them as such (if not, add the parrot VM tag). no need to use stalled also. | ||
timotimo | you'd spell that ::T $foo, T $bar, wouldn't you? | 19:26 | |
moritz would close parrot-only tickets | |||
vendethiel | timotimo: yes | ||
FROGGS | +1 to close parrot only's | ||
bartolin | [Coke]: but I really would like to clean the queue a bit further. | 19:27 | |
ashleydev | #123939 | ||
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123939 | ||
moritz | especially if there are tests | ||
bartolin | [Coke]: for me it's tedious to adjust every search to exclude those "parrot only" tickets | 19:28 | |
moritz | nobody is fixing them, and nobody can use them for reference to consulting if a behavior they observe is a known bug | ||
so, what's the value in keeping them open? | 19:29 | ||
19:29
sqirrel_ left
|
|||
FROGGS | and you can't even fix them while there is no parrot support | 19:29 | |
ab5tract | i think the less ambigious the position of parrot is in relation to rakudo, the better | 19:32 | |
it sounds (and even feels) kind of harsh, but it's got to go | |||
bartolin | from me it's +1 to close "parrot only" tickets as well. in case we get parrot support back later on, it would be possible to re-open the tickets easily. | ||
19:33
spider-mario left
|
|||
psch | \o/ | 19:34 | |
array marshalling work for interop MMD | |||
that's for up to three dimensions! | |||
(i didn't test more, but it's not hard coded :P) | |||
moritz | moritz@pat:~/p6/rakudo/t/spec>git grep '#\?rakudo\.parrot'|wc -l | ||
FROGGS | \o/ | ||
moritz | 102 | ||
FROGGS | psch++ | ||
moritz | moar has 59, jvm 160 | 19:35 | |
psch++ | |||
psch | now i gotta backport that to NQP, because nqp has to know it too for cases where we have a p6 object that nqp::islist() | ||
like utf8 iirc | |||
which is grr, because that's 100+ lines of code duplication | |||
FROGGS | VMArray | ||
19:36
kjs_ joined
|
|||
psch | i was thinking if some kind of ishlllist op could help, but i don't think it could | 19:36 | |
because i still need p6listitems in p6-land | 19:37 | ||
FROGGS: yeah, p6listitems gives a VMArray, but i need to check istype(Array) or istype(List) or it borks | |||
FROGGS | I just meant to say that utf8 is of VMArray repr | 19:38 | |
psch | oh, right | ||
19:38
Rounin joined
|
|||
dalek | ast: 9c17759 | TimToady++ | S06-signature/positional.t: add tests for dup parameter names including ::T |
19:39 | |
ashleydev | nine_: are there multi functions that are final at compile time vs multi methods that dispatch at runtime such that subset types get some compile time typechecking if possible? | 19:42 | |
psch remembers people smarter than him saying "halting problem" around that question occassionally | 19:43 | ||
ashleydev | is multi allows on non methods? | 19:44 | |
Kristien | I want a Br*infuck slang. | ||
ashleydev | not a Brainf*ck one? | ||
Kristien | no | 19:45 | |
ashleydev | :) | ||
[Coke] | bartolin: for me, it's tedious to adjust every search to exclude stalled tickets. | 19:46 | |
no, it would not be possible to reopen the tickets easily. What is the distinguishing mark about these closed tickets as opposed to the ones closed previously? | 19:47 | ||
moritz | so close them | ||
19:47
rindolf left
|
|||
moritz | put a list of the ticket numbers into a file in perl6/mu | 19:47 | |
so that if/when parrot comes back, they can be re-opened easily | 19:48 | ||
bartolin | moritz++ | ||
[Coke] | someone is still going to have to review every ticket closed in this manner to insure that it really is parrot only, and not something that was opened for parrot and now silently impacts other backends. | ||
bartolin | [Coke]: I would do that work. | 19:49 | |
[Coke] | Ok. Please include a message on tickets closed in this way that somehow references the sunset of parrot support. | 19:51 | |
[Coke] is having difficult winning any technical arguments today, and at this point assumes it's just him. :) | 19:52 | ||
bartolin | [Coke]: maybe my use of rt.perl.org is inefficient, but my feeling is that a single queue with 700+ tickets is hard to handle. I'd be fine to move the 'parrot only' tickets to another queue instead of closing them -- but we only have one queue. | 19:55 | |
timotimo | ashleydev: multi works on methods as well as subs | 19:57 | |
moritz | bartolin: with the exception of now-dead backends, I don't see how more queues would help us organize the tickets better | ||
bartolin: though if you have some ideas, do let me know | 19:58 | ||
[Coke] | bartolin: yes, RT sucks. | ||
I've been saying that for years. :) | |||
FROGGS | [Coke]: but you failed to convince masak :o) | ||
nine_ | So why not just crate a new queue for rakudo-parrot? | 19:59 | |
[Coke] | I try to manage it by creating several prebuilt searches, things like "tickets for my os", or "tickets for jvm" or "tickets that haven't been touched in 2+ years". | ||
a queue == a project. perl5 vs. perl6 | |||
20:00
pippo joined
|
|||
nine_ | [Coke]: that's only a convention. And one could consider the rakudo-parrot backend it's own inactive project | 20:00 | |
[Coke] | 1) we all disagree about what tickets are important to see or work on. this pretty much makes a global better view impossible, because we'd all but one, hate it. | ||
bartolin | moritz: I'll speak up if I get a good idea :-) | ||
[Coke] | nine_: I'd rather close the tickets than create a new queue. | ||
timotimo | So why not just create a new ticketing system for rakudo? | ||
[Coke] | ... I don't have a 2 there, apparently. | ||
20:01
pippo left
|
|||
[Coke] | timotimo: like from scratch!? | 20:01 | |
20:01
Sqirrel joined
|
|||
moritz | timotimo: second system syndrome done wrong? :-) | 20:01 | |
[Coke] | or like "move to github" ? | ||
dalek | ecs: 86d7dd5 | TimToady++ | S32-setting-library/Containers.pod: document .pairup and List.invert |
||
FROGGS | timotimo: we could call it PT (speak: pity) | 20:02 | |
:P | |||
nine_ | bartolin: if you close the tickets using Bulk Update, one can easily identify them by their common reject date | 20:03 | |
timotimo | that sounds like a good name, FROGGS | ||
TimToady | X::Hash::STORE::OddNumber is perhaps a bit over-specific as an exception | ||
timotimo | we should write it in rubyish (speak: rubbish) | ||
[Coke] | if this were a $work project, where we had specific marked out tickets that we needed to get for the next release, and the release after that. but since the only release we have is the 2015 xmas release, having those tied to the ticket is "ok". | 20:04 | |
20:04
fernando_ joined
|
|||
TimToady | it could probably just hijack X::Pairup::OddNumber | 20:04 | |
[Coke] | nine_: good luck identifying all the tickets in a way to make bulk update work. :) | ||
[Coke] feels like he's just being negative at this point. sorry, folks. | 20:05 | ||
TimToady | as long as it's negative fun, that's okay :) | 20:06 | |
[Coke] | s/where we had/we'd have/ | 20:07 | |
bartolin | hugme: hug [Coke] | 20:08 | |
hugme hugs [Coke] | |||
20:08
fernando_ left
20:09
[Sno] left
|
|||
nine_ | [Coke]: I thought they are already tagged? | 20:13 | |
20:19
kjs_ left
|
|||
PerlJam | nine_: There's a custom field for the VM, though I'm not sure it has been used consistently or how to search with it. | 20:20 | |
dalek | ecs: ddcd709 | TimToady++ | S99-glossary.pod: mention sink means void elsewhere |
20:21 | |
PerlJam | when I search for "parrot", I only get back 17 results. Not sure how to do that better | ||
(I'nmm not sure how to search using the custom fields at all actually) | 20:22 | ||
20:22
_mg_ left
|
|||
TimToady | broquaint: did anyone ever point you toward S99:sink_context? | 20:24 | |
raydiak: you can often clean out a laptop fan by blowing an air duster into the intake | 20:26 | ||
or sometimes into the output vent, if it's not running | 20:27 | ||
Kristien | can you alias types | 20:28 | |
TimToady | m: constant Mouse = Rat; say Mouse.new(1/3).perl | 20:29 | |
camelia | rakudo-moar 3607d7: OUTPUT«Type check failed in binding nu; expected 'Int' but got 'Rat' in method new at src/gen/m-CORE.setting:12305 in block <unit> at /tmp/iavwjykkrH:1» | ||
Kristien | m: constant UNIVERSAL = Mu; my UNIVERSAL $x = 0; say $x; | ||
camelia | rakudo-moar 3607d7: OUTPUT«0» | ||
moritz | m: constant Mouse = Rat; say Mouse.new(1, 3).perl | ||
camelia | rakudo-moar 3607d7: OUTPUT«<1/3>» | ||
Kristien | nice | ||
TimToady | m: constant Mouse = Rat; say Mouse.new(1,3).WHAT | 20:30 | |
camelia | rakudo-moar 3607d7: OUTPUT«(Rat)» | ||
TimToady | we'll actually rely heavily on type aliasing when we get versioned type definitions | 20:31 | |
20:31
virtualsue joined
|
|||
TimToady | so Int might actually be Int:ver<6.0>:auth<jnthn> or so :) | 20:32 | |
except constant defaults to "our", and these might well default to "my" | 20:33 | ||
m: my constant Mouse = Rat; say Mouse.new(1,3).perl | |||
camelia | rakudo-moar 3607d7: OUTPUT«<1/3>» | ||
TimToady | m: { constant Mouse = Rat }; say Mouse.new(1,3).perl | 20:34 | |
camelia | rakudo-moar 3607d7: OUTPUT«<1/3>» | ||
TimToady | m: { my constant Mouse = Rat }; say Mouse.new(1,3).perl | ||
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VKLmGAhjcoUndeclared name: Mouse used at line 1» | ||
20:34
darutoko left,
krunen left
|
|||
TimToady | or maybe 'our' is okay, if people wanna say things like 'constant MyMouse = ThatModule::Mouse;' | 20:35 | |
that won't work if ThatModule makes it 'my' | |||
m: { constant Mouse = Rat }; constant Mouse = Rat; say Mouse.new(1,3).perl | 20:36 | ||
camelia | rakudo-moar 3607d7: OUTPUT«<1/3>» | ||
TimToady | hmm, that should probably collide in the package | ||
std: { constant Mouse = Rat }; constant Mouse = Rat; say Mouse.new(1,3).perl | |||
camelia | std 28329a7: OUTPUT«ok 00:01 140m» | ||
dalek | : c2bdf44 | usev6++ | misc/rt.perl.org/tickets_closed_parrot_only.txt: Create stub for list of closed 'parrot only' tickets at rt.perl.org |
||
TimToady | I guess STD likes it | ||
std: constant Mouse = Rat; constant Mouse = Rat; say Mouse.new(1,3).perl | 20:37 | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Illegal redeclaration of symbol 'Mouse' (see line 1) at /tmp/YiviE9tkhB line 1:------> 3constant Mouse = Rat; constant Mouse7⏏5 = Rat; say Mouse.new(1,3).perlCheck failedFAILED 00:00 139m» | ||
TimToady | m: constant Mouse = Rat; constant Mouse = Rat; say Mouse.new(1,3).perl | ||
camelia | rakudo-moar 3607d7: OUTPUT«<1/3>» | ||
TimToady | ooh, bug | ||
m: our $x = 42; our $x = 43; say $x | 20:38 | ||
camelia | rakudo-moar 3607d7: OUTPUT«Potential difficulties: Redeclaration of symbol $x at /tmp/Rqh2phmy0c:1 ------> 3our $x = 42; our $x 7⏏5= 43; say $x43» | ||
TimToady | masakbot: ^^^ | ||
moritz | is that really a bug? | ||
'our' creates a lexical alias, and binds it to the symbol table | 20:39 | ||
TimToady | which collides | ||
moritz | the lexical alias is a redeclaration | ||
TimToady | if they're at the same level | ||
moritz | m: my $x = 42; my $x = 43; say $x | ||
camelia | rakudo-moar 3607d7: OUTPUT«Potential difficulties: Redeclaration of symbol $x at /tmp/FE7R_0f8Al:1 ------> 3my $x = 42; my $x 7⏏5= 43; say $x43» | ||
TimToady | it's the Mouse redecl that's the bug | 20:40 | |
std catches it, rakudo doesn't | |||
moritz | oh, I see it now | ||
TimToady | and if we're using aliasing for multiple versions, we really want to know if we've tried to alias two different versions of Int into the lexical scope | 20:41 | |
moritz | aye | ||
TimToady | m: my constant Mouse = Rat; my constant Mouse = Rat; say Mouse.new(1,3).perl | ||
camelia | rakudo-moar 3607d7: OUTPUT«<1/3>» | ||
dalek | ast: b92460c | moritz++ | S06-signature/positional.t: todo-fudge new test |
20:42 | |
TimToady | thanks, I shoulda done that | 20:43 | |
moritz | np | ||
TimToady: do you know where type captures are parsed? | |||
20:43
pippo joined
20:44
pierrot left,
pierrot joined,
pippo_ joined,
pippo_ left,
pippo left
20:45
pippo joined
|
|||
TimToady | src/Perl6/Grammar.nqp line 3377 looks like | 20:45 | |
FROGGS | rakudo/src/Perl6/Grammar.nqp:3377 | ||
found it too :o) | |||
moritz | on a totally unrelated matter, I'd like a shorter way to mark an invocant as :D | 20:46 | |
PerlJam | shorter? | ||
moritz | method(Repeating::The::Class::Name:D:) kinda sucks | ||
FROGGS | ::?CLASS:D ? | ||
moritz | and method(::?CLASS:D:) is also not quite nice, IMHO | ||
it's a lot of shouting and punctation for a pretty common thing | 20:47 | ||
PerlJam | moritz: you want method(*:D: ...) ? | ||
TimToady | Mu:D: probably works | ||
moritz | PerlJam: for example | ||
TimToady: but that's misleading | |||
TimToady: I want it not just for code, but also for documentation | |||
TimToady: and if I document stuff to have a Mu:D invocant, people will invariably be confused | |||
TimToady | we could probably make :D: work | ||
:D would beat : on LTM | 20:48 | ||
alpha- | the lol operator ? | ||
moritz | doesn't that collide with colonpairs as literals? | ||
TimToady | well, :D: would certainly be unique, if we needed to go that far | 20:49 | |
moritz | well, if we allow :D:, we should allow :U: too | 20:50 | |
but ISWYM | |||
alpha- | :^) | 20:52 | |
TimToady | :v) # contrarian | 20:53 | |
vendethiel | ... | ||
moritz | anyway, I like both *:D and :D | ||
TimToady | we could probably force :D and :U to work in any argument position | ||
moritz | and mean Any:D or Mu:D? | 20:54 | |
TimToady | probably Any, since that's longer :) | 20:55 | |
and the usual default | |||
moritz | right | ||
jnthn | evening, #perl6 | 20:57 | |
dalek | kudo/nom: a15a916 | PerlJam++ | src/Perl6/Actions.nqp: Disallow redeclaring constants in the same scope |
||
jnthn | Note that Mu:D is a bad idea if you put it on a multi :) | 20:58 | |
TimToady | well, more of a problem for autothreading junctions, but yeah | ||
I mean, Mu:D is just (almost) a don't care argument | 20:59 | ||
but you can't rely on it to distinguish anything except Mu:U | |||
jnthn | Sure, but if you put Mu:D on the invocant in a subclass but not on that in a parent class, you'll get a mis-sort or a tie :) | ||
TimToady | sure, why we're defaulting the invocant to current class, not Any or Mu | 21:00 | |
moritz++ already argued me out of that | |||
timotimo | jnthn: i'm about to run benchmarks of lastest nom/master/master and native-ref/native-ref/master | ||
21:00
Akagi201_ joined
21:01
Akagi201 left
|
|||
vendethiel would really, really like to have :D as the default, :_ for the current one, and keep :U as it is) | 21:01 | ||
21:01
bjz left
|
|||
moritz | vendethiel: iirc :D as default was even specced once, but never implemented, because we didn't have a good solution for constructors and other :_ methods | 21:01 | |
vendethiel | "good solution"? | 21:02 | |
moritz | vendethiel: a way to specify non-definite invocants | ||
vendethiel | what's wrong with :U and :_ ? | ||
moritz | iirc that was before we had type smilies | ||
vendethiel | :_ is the current default, right? | ||
oh, alright, noted | |||
timotimo | are we going to suggest giving "new" methods a "must be called on a type object" restriction? | ||
TimToady isn't | |||
PerlJam | timotimo: only if they're declared that way :) | 21:03 | |
moritz | vendethiel: also, :_ is pretty new (like, not even documented or implemented) | ||
21:03
echowuhao left
|
|||
vendethiel | oh! | 21:03 | |
timotimo | good | ||
TimToady | also kinda ugly | ||
moritz | before it was either ThatWholeType:_ or or ::?CLASS:_ | ||
vendethiel | I kind-of expected everything I've came to know "since first day" to have been well-established but :P | ||
21:03
echowuhao joined
|
|||
TimToady | :P for...parameter's preference? | 21:04 | |
timotimo | hehehe | ||
21:04
kjs_ joined
|
|||
TimToady | m: sub foo (::T:D $x) { say T }; foo 42 | 21:04 | |
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8R6vnmGfJUUndeclared name: T used at line 1» | ||
TimToady | aww :) | 21:05 | |
jnthn | timotimo: Yay; results will be useful. | ||
timotimo | good :) | ||
21:05
fernando_ joined,
kjs_ left
|
|||
TimToady | m: sub foo (::T:D $x) { say T:D }; foo 42 | 21:05 | |
camelia | rakudo-moar 3607d7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oJIgUNfvkRVariable '&T' is not declaredat /tmp/oJIgUNfvkR:1------> 3sub foo (::T:D $x) { say 7⏏5T:D }; foo 42» | ||
jnthn | timotimo: I'm not even sure what that means... | 21:06 | |
uh, TimToady | |||
TimToady either, but I was just hanging out with a two-year-old | |||
timotimo | i'd like to advocate giving rakudo's and nqp's --gen-moar a higher -j by default ... | ||
dalek | ast: 1cd6489 | usev6++ | S02-names/strict.t: Add test for RT #123696 |
21:07 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=123696 | ||
timotimo | oh gosh | 21:09 | |
git log --oneline --all --graph looks pretty amazing due to newio | |||
21:10
dolmen joined
|
|||
moritz | RT#111734 seems to have argued that re-declaring constants is fine | 21:10 | |
synopsebot | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=111734 | ||
moritz | erm no, just the tests being over-eager :-) | 21:11 | |
jnthn | timotimo: Heh, I thought the "oh gosh" was gonna be "you really hosed performance with native-ref" :P | ||
TimToady | moritz: different scope | ||
dalek | ast: 951c24e | moritz++ | S04-declarations/constant.t: Test that re-declaring constants dies |
||
TimToady | CORE::True and UNIT::True can be different | ||
21:11
fernando_ left
|
|||
moritz | TimToady: the test for the ticket had two different redefinitions for True in the same scope | 21:12 | |
see the first hunk of github.com/perl6/roast/commit/951c24ecf1 | |||
bartolin | moritz++ # fixing faulty test written by me | ||
TimToady | well, the masakbot hasn't filed the actual bug yet | ||
moritz | bartolin++ # writing tests at all | 21:13 | |
TimToady | but putting it near the other one in the tests seems reasonable | ||
moritz | bartolin: I guess a good percentage of the tests I wrote in my first one or two years later turned out to be bogus :-) | 21:14 | |
TimToady | a correct but misnamed or misplaced test is better than no test at all | 21:15 | |
timotimo | benchmarks starting now | ||
TimToady stops typing and holds his breath | |||
bartolin | moritz: *g* | 21:16 | |
21:17
pecastro joined
|
|||
jnthn | timotimo: \o/ | 21:17 | |
timotimo | except i forgot to run "make install" | ||
jnthn | Or maybe /o\ | ||
timotimo | so it ended up not working :P | ||
moritz | I started to contribute in earnest to roast (back then part of the pugs repo) to be able to mentor a GSoC student | 21:18 | |
timotimo | now actually running | 21:19 | |
[Coke] thanks timtoady for not making a language where "yes" eq "true" | 21:21 | ||
m: say "yes" eq "true" | |||
camelia | rakudo-moar a15a91: OUTPUT«False» | ||
[Coke] | woohoo! | ||
TimToady | ,"sau | 21:22 | |
[Coke] | (in coldfusion, that's True) | ||
21:23
sqirrel_ joined
|
|||
TimToady | m: say "yes" !?^ "true" | 21:24 | |
camelia | rakudo-moar a15a91: OUTPUT«True» | ||
TimToady | there you go | ||
;) | |||
21:25
virtualsue left,
virtualsue_ joined
|
|||
moritz | TimToady: wow, you had to go quite obscure to get a True :-) | 21:25 | |
TimToady | there's no ?= to go with ?^ | ||
course I'm sure the semantics different from CF | 21:26 | ||
s/ent// | |||
21:26
molaf left
|
|||
ashleydev | what is ?^ | 21:27 | |
masak | ashleydev: convert both operants to Bool, then check if different | 21:28 | |
ashleydev | is ^ like != then? | ||
geekosaur | != is xor on Bool, yes | ||
[Coke] | coldfusion goes out of it's way to coerce helpful string values to their respective booleans. | 21:29 | |
even if you didn't want that. | |||
gah, its | |||
I'm so mad I can't even grammar. | |||
TimToady | m: say [?^] Bool.roll(10) for ^10 | 21:32 | |
camelia | rakudo-moar a15a91: OUTPUT«FalseFalseFalseTrueTrueTrueTrueFalseTrueTrue» | ||
21:32
espadrine joined,
[Sno] joined
|
|||
timotimo | that can't be random | 21:32 | |
TimToady | there's your parity operator | ||
m: say [?^] Bool.roll(10) for ^10 | |||
camelia | rakudo-moar a15a91: OUTPUT«TrueTrueTrueTrueTrueFalseFalseFalseFalseTrue» | ||
timotimo | look, it's three times False then three times True! | ||
TimToady | m: say [?^] Bool.roll(10) for ^10 | ||
camelia | rakudo-moar a15a91: OUTPUT«TrueTrueFalseTrueFalseFalseFalseTrueFalseFalse» | ||
TimToady | I think it's probably random | 21:33 | |
geekosaur | random can randomly look nonrandome for periods... | ||
*nonrandom | |||
timotimo | i was being facetious :) | ||
TimToady is the guy who flipped 10 heads in a row in biology class | |||
fortunately didn't know about R&G are Dead | 21:34 | ||
come to think of it, that's about when I figured out I was gonna do something special... | 21:36 | ||
dalek | p/native-ref: 4f2e74a | jnthn++ | src/vm/jvm/QAST/Compiler.nqp: Basic mappings for native ref ops on JVM. None implemented yet; this just maps them. |
21:37 | |
TimToady | well, maybe that took another year or two | ||
flussence throws his feed reader out and goes looking for one that isn't broken... was starting to wonder where the p6weekly went :( | 21:47 | ||
TimToady | psch: moreinput was aimed more at a sane REPL | 21:49 | |
geekosaur | are you reading the right feed? the old one went away | 21:50 | |
TimToady | the Cat business was more meant to make something not a string look like a string transparently, and moreinput isn't transparent | 21:51 | |
flussence | geekosaur: yep. pl6anet.org/atom.xml looks fine in my browser, showing last week's stuff in my reader no matter how much I try to refresh it | ||
timotimo | jnthn: at benchmark 50 of 70 for the second version | ||
hoelzro | flussence: what were you using? | 21:52 | |
psch | TimToady: right, that makes sense. moreinput as i understood it happens explicitly as a reaction to a parse failure, doesn't it | ||
flussence | hoelzro: RSSyl plugin in claws-mail 3.11 | ||
TimToady | mohij: to save state in a parse, you should attach the state to the cursor using 'make', and it will automatically be discarded if the cursor is thrown away | 21:53 | |
hoelzro | ah, I ask because I was thinking about writing a web-based RSS aggregator in Perl 6 | ||
TimToady | 'let' is not suitable for parse backtracking because it's scoped to the block, and blocks can get re-entered under backtracking | ||
21:54
xfix left
21:55
vike left
|
|||
dalek | p/native-ref: 57c6dce | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/ (2 files): Stub in NativeRef REPR. |
21:55 | |
p/native-ref: 59de265 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/ (3 files): Extend container API to support natives. Includes updating the code_pair container spec for the API change. |
|||
21:57
diana_olhovik left
|
|||
timotimo | jnthn: t.h8.lv/p6bench/2015-02-26-native_ref.html | 21:57 | |
looks kinda bad | 21:58 | ||
jnthn | timotimo++ | ||
while_int2str_native is the first real regression | 21:59 | ||
timotimo | i'd like UNDO phasers to fire when backtracking over blocks | ||
postwhile_nil_native looks painful, too | |||
TimToady | no, that's not what UNDO is for | 22:01 | |
jnthn | Yeah, I've got a list now of 5 I should look at | ||
TimToady | that's what make is for | 22:02 | |
jnthn | (e.g. where it's factor of 2 difference or worse) | ||
TimToady | but if we ever get actually backtracking controls, maybe an UNMAKE phaser would be in order | ||
s/ly// | 22:03 | ||
jnthn | timotimo: I suspect everything a factor of 2 or worse are because we're not eliding reference taking somewhere we should be. | ||
timotimo | OK | ||
jnthn | timotimo: I'd like to try and deal with those at code-gen time first, and look at a spesh solution only if that fails. | ||
22:04
sqirrel_ left
|
|||
jnthn | The smaller differences are likely because I've still got lexical -> local lowering partly busted. | 22:04 | |
Anyway, 5 things really needing attention is quite tolerable. | 22:05 | ||
So, there's those and JVM porting. | |||
22:06
dolmen left
|
|||
jnthn is hopeful of having it landed by the time the weekend is out | 22:06 | ||
Then next week I can dig into native arrays. :) | |||
moritz | timotimo++ # benchmark | ||
22:07
kaare_ left
|
|||
jnthn | Indeed; thanks timotimo++ | 22:07 | |
22:08
fernando_ joined
22:10
laouji joined
|
|||
FROGGS | I fear IO::Socket::INET is somewhat broken :S | 22:11 | |
Kristien | I/O is always broken. | ||
timotimo | YW | 22:12 | |
FROGGS | well, it appears to send a POST request, but it does not | ||
jnthn | FROGGS: As in, regression? | ||
FROGGS | and it also does not fail | ||
jnthn: dunno yet | |||
22:12
fernando_ left
|
|||
pyrimidine | TimToady: re: Cat I recall someone mentioning (I think on the perl6 mail list) this could be implemented using mmap or similar | 22:13 | |
TimToady: but talk here was that Cat was to be post-6.0.0 | |||
(which I agree with) | |||
dalek | kudo/native-ref: ba2beff | jnthn++ | src/vm/jvm/runtime/org/perl6/rakudo/RakudoContainerSpec.java: Update Rakudo scalar to handle native cont API. |
22:14 | |
TimToady | www.latimes.com/business/la-fi-wome...tml#page=1 | ||
22:15
laouji left
22:19
rurban left
22:20
kaare_ joined
|
|||
TimToady | tl;dr basically we male geeks tend as a culture to put women into an untenable position: if they choose to compete by being as aggressive as men, we punish them for it, and if they choose to compete by being less aggressive than men, we punish them for that too. | 22:22 | |
geekosaur | yep | ||
there are places and groups trying to change that, but "brogrammer" attitudes are disgustingly widespread (not to mention just plain disgusting) | 22:23 | ||
TimToady | we can't fix all of male geek culture, but we can fix some of it here, but as the article says, it's gotta be the guys giving the gals a hand up too, not just the gals fighting their way up | 22:24 | |
'cuz we don't fight fair | |||
pyrimidine | geekosaur, TimToady: same thing in science unfortunately. And the general consensus on a solution is the same (guys need to help even the playing field) | 22:25 | |
22:25
Kristien left
|
|||
FROGGS | ohh! testers.p6c.org seems to work! /o/ | 22:26 | |
TimToady | so ++ to all those who swear to keep from crying, and ++ to all those who cry to keep from swearing, regardless of gender | ||
FROGGS | a new report should appear here in four minutes: testers.p6c.org/dist/I/Inline/FROGGS.html | 22:27 | |
tomorrow I'll panda to send the reports properly to the new address | |||
geekosaur | not just giving a hand up, either. the environment is toxic in general. even to those who appear to thrive in it, really | 22:28 | |
pyrimidine | FROGGS: that's very cool! | ||
FROGGS | pyrimidine: and fast this time :o) | ||
static pages ftw! | |||
geekosaur | and a large part of the fix is to get the toxins out of the environment for everyone | ||
22:28
dolmen joined
|
|||
TimToady | geekosaur: and the either/or approach is also damaging even to the feminist communities, when we should allow them a both/and on the aggression knob | 22:29 | |
geekosaur | yep | 22:30 | |
TimToady always hates to see the women fighting over how to make up for what's really men's problems... :/ | |||
geekosaur | although really I would prefer the aggression dialed down period | ||
TimToady | nodnod | ||
geekosaur | I know an increasing number of people --- regardless of gender --- who won't contribute to any open source project any more because the ones they tried require that "everyone have thick skins" aka "aggression is the only way to do anything" | 22:31 | |
jnthn | FROGGS: Why are authors missing on some modules, ooc? | ||
(Such as mine ;)) | 22:32 | ||
TimToady | yer our sekrit weapon! | ||
FROGGS | jnthn: because you don't know how to META.info? :o) | ||
jnthn | :P | ||
FROGGS | *g* | ||
jnthn | Probably :) | ||
I'm better at guts than modules :) | 22:33 | ||
FROGGS | hehe | ||
I try to do everything equally bad :P | |||
jnthn | After sleeping sub-optimially the last couple of nights I'm not feeling good at anything right now... | ||
FROGGS | :/ | 22:34 | |
hoelzro | jnthn: btw, did you have any ideas on ways to get rid of that dummy parameter bit that I used for S26? | ||
jnthn | hoelzro: No, 'cus I still don't understand why it's needed ;) | ||
FROGGS | I am feeling okayish... just lacking slee^Wcoffee every now and then | ||
hoelzro | jnthn: are you sticking around for a bit, or are you leaving the channel soon?' | 22:35 | |
jnthn | hoelzro: I'll be around a bit longer | ||
hoelzro | ok, then I'll explain now =) | ||
22:35
pmurias joined
|
|||
jnthn | Plodding through the mechanism bits of the native-ref JVM port. :) | 22:35 | |
uh, mechanical | 22:36 | ||
hoelzro | so, basically, when we parse trailing docs, we need to know what the most recent declarand was, right? | ||
jnthn | *nod* | ||
hoelzro | but when we parse a parameter, we don't have all of the information we need to make the parameter | ||
(that assumption may be false) | 22:37 | ||
(I may not know any better) | |||
jnthn | Well, it's certainly the case that we gather info on the sig as a whole and then make them at the moment | ||
We used to make the sig object after parsing the whole routine | |||
hoelzro | so I set up a dummy parameter that I can attach trailing docs to, and I transfer the attached docs at signature (and parameter) creation time | ||
jnthn: that's the change you made for native-ref, right? | 22:38 | ||
jnthn | But that approach already popped up and was like "hey, I suck!", thus my refactor... | ||
hoelzro | ah ha | ||
from what I understood of your change, the signature isn't always created earlier, right? | |||
or perhaps I misread? | |||
jnthn | It should consistently be now when it can be | ||
As in, when there actually *is* a signature | |||
Placeholders still mean we do it later on. | 22:39 | ||
hoelzro | what's one example where it would still be done later? | ||
jnthn | But I guess trailing docs don't apply to those. | ||
{ $^b <=> $^a } | |||
hoelzro | but it's always early for a sub/multi/submethod? | 22:40 | |
jnthn | Yes. | ||
hoelzro | ok | ||
jnthn | Oh, I didn't fix it for regex_def yet | ||
hoelzro | then we may be able to kill the dummy >:) | ||
jnthn | But that's just "not gotten around to it" | ||
hoelzro | hmm | ||
I don't know if parameters to regexen work with decl docs | 22:41 | ||
jnthn | :) | ||
my regex foo(int $a) { <?> { $a = 42 } } # fails to fail, so yeah, I need to do that one. | |||
22:42
hoelzro left,
hoelzro joined
|
|||
hoelzro | irssi just had a panic attach =/ | 22:42 | |
attack, even | |||
hoelzro adds another case to test | |||
jnthn | Looked mor elike a panic detach :P | 22:44 | |
hoelzro | hehe | 22:45 | |
dalek | p/native-ref: ea18ce6 | jnthn++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: Implement assign_[ins]. |
||
jnthn | I think in the end we probably do want to make parameters "as we go" and then fix the real Parameter objects up at a higher level | 22:46 | |
A lot of the code dealing with this stuff dates back to when we didn't actually have nice things like bounded serialization. | |||
hoelzro | ah ha | 22:47 | |
now, I don't even remember why param_var couldn't set things up there | |||
in the action method for param_var, you have everything you need, right? | 22:48 | ||
pmurias | hoelzro: should I try to readd make -j support to nqp-js or do you have something partially done? | ||
hoelzro | pmurias: you can go ahead | ||
I haven't had a lot of nqp-js time lately =/ | |||
Coursera + playing with Elm | |||
jnthn | hoelzro: Well, probably we want to create a Parameter object in the paramter rule | ||
hoelzro | the latter is driving a lot of enthusiasm for helping with nqp-js, though =) | ||
jnthn: oh, right | 22:49 | ||
jnthn | And kill of %*PARAM_INFO | ||
hoelzro | I think that may have been the rule I mean | ||
jnthn | *off | ||
hoelzro | *meant | ||
oh, that sounds awesome | |||
jnthn | Now we can deal with the real meta-object as compile, there's little desire to keep another data structure to represent it around. | ||
It's been possible to tweak this for a while, just never really got to the top of the todo list... | 22:50 | ||
hoelzro | sounds good to me | ||
jnthn: so instead of PARAM_INFO, we could just create the parameter as-is? | 22:53 | ||
sounds like a fairly simple change; is it? =) | |||
jnthn | hoelzro: In theory ;) | 22:54 | |
hoelzro | hehe | ||
22:54
skids joined
|
|||
jnthn | Though probably it'd be good to base the work off the refactors so far in native-ref, if you're interseted in working on it. | 22:54 | |
hoelzro | I would say "I'll take a stab at that", but I've been overcommitting myself to too many things =) | ||
jnthn: if I do, I'll keep that in mind! | 22:55 | ||
jnthn | otoh, if you're interested but not until next week or so, then native-ref will already be merged :) | ||
hoelzro | I would love to remove that crazy from the S26 code | ||
jnthn | Removing crazy ftw :) | 22:56 | |
psch feels like he's piling on some crazy currently | |||
otoh, i also did remove a bit, so maybe that balances out | 22:57 | ||
jnthn | .oO( Principle of conservation of crazy ) |
||
TimToady | geekosaur: and even my "give a hand up" summary sounds quite patronizing; it's more like just valuing everyone for the strengths they bring | 22:58 | |
geekosaur | yes, that was part of why I reacted the way I did | 22:59 | |
psch | downside of the current jvm-interop-array-stuff state is mostly 1) it's reflecting quite a bit and 2) it's implemented in a weird spread between BootJavaInterop and RakudoJavaInterop | ||
geekosaur | not sure a hand up in how to asshole is a good thing for anyone | ||
:/ | |||
psch | which is mostly because islist doesn't know about p6-listy-types | ||
TimToady | I hope I didn't scare Kristien++ away with that summary of what the article was saying | 23:00 | |
psch | which i'm still slightly dissatisifed with, albeit less than a few hours back | ||
TimToady | and I also know that some people get PTSD merely when the discussion comes up, so it's hard to balance everything | 23:01 | |
hoelzro | FROGGS: when did that test site pop up? | ||
23:05
pippo_ joined,
pippo_ left
23:06
pippo left
23:08
Sqirrel left
23:09
Cyrus left,
fernando_ joined,
Cyrus1 joined,
FROGGS left
|
|||
jnthn | Time to try and get some rest, methinks... & | 23:10 | |
psch | 'night jnthn | 23:11 | |
23:14
fernando_ left
|
|||
psch | same here o/ | 23:15 | |
23:16
pmurias left,
BenGoldberg joined
23:22
mohij left
23:23
dolmen left
23:24
skids left
23:28
skids joined
23:33
agentzh joined,
agentzh left,
agentzh joined
23:39
virtualsue_ left
|
|||
timotimo | testers.p6c.org/reports/9803.html my module NPE's :( | 23:44 | |
23:45
grondilu left
23:48
fernando_ joined
23:58
skids left,
gfldex left
|