»ö« 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 masak on 12 May 2015. |
|||
00:00
Ben_Goldberg joined
00:02
BenGoldberg left
00:03
TEttinger left
00:04
TEttinger joined
00:07
sprocket joined
00:09
Actualeyes left,
pippo left
00:24
Actualeyes joined
|
|||
diakopter___ | Ben_Goldberg: lexical lookup in Moar is compiled to something like that; the $OUTER lookup is far slower than the optimized case. if a frame knows it will be looking for a lexical that's more than a few levels up, the compiler makes sure it has a direct pointer to that slot on frame setup | 00:24 | |
Juerd | Just found out that my mqtt thing for Perl 6 is horribly slow. Even though what it really does is just receive messages from a socket and dump them on stdout, it can't even keep up with 10 messages per second. | 00:25 | |
But with supplies and promises going on... how do I even begin to find out what's causing the delays? | |||
diakopter___ | those use libuv threadpools underneath, afaik... and I don't know the polling frequency we've configured | 00:26 | |
Juerd | Earlier today I thought my slow GPRS connection was causing it, but it behaves the same on a 1 Gb/s fiber :) | 00:27 | |
It's weird that a lot of data dumped on the socket at once results in different delays for the different messages contained | 00:28 | ||
diakopter___ | Juerd: how many layers of supplies/promises does it use | ||
Juerd | diakopter___: Maybe 4 or 5. I'm not sure which ones are layers, and which ones are parallel. | 00:29 | |
Code's at github.com/Juerd/p6-mqtt/ if you like to see it | |||
diakopter___ | I'm curious if you've tried the profiler | 00:30 | |
00:30
Psyche^_ joined
|
|||
Juerd | Immediately after connecting, the server sends a burst of "retained messages". They arrive in the right order at weird and uneven intervals. | 00:30 | |
Haven't tried the profiler. Any documentation, urls, or other hints? | |||
diakopter___ | use --profile in the perl6 invocation, and make sure it terminates normally after a while... it'll output an html thingie | 00:32 | |
00:33
average left
|
|||
Juerd | Oh, that's nice. I'll try that | 00:33 | |
Having it terminate is a matter of replacing the "await $m.connection" with "sleep 10" ;) | 00:34 | ||
diakopter___ | it may not help with the supply stuff, but should certainly rule out (or not) any massive parsing slowdowns | ||
00:34
Psyche^ left
|
|||
arnsholt | Juerd: Is checksumming part of the Perl 6 code? | 00:35 | |
Juerd | juerd.nl/tmp/profile-1447979677.99682.html # Haven't read it myself yet | ||
00:35
black_ant left
|
|||
Juerd | arnsholt: In which sense? As in cryptographic checksums? | 00:36 | |
arnsholt | Yeah | ||
diakopter___ | Juerd: did it get any messages in those 10 seconds XD | ||
00:36
tokuhiro_ joined
|
|||
Juerd | diakopter___: Yes, it got all of the messages during the first half second and spent 10 seconds printing most of them... | 00:37 | |
I can tell from tcpdump that the server actually did send the messages immediately | |||
But processing them apparently takes ages | |||
diakopter___ | well, seems it only profiled the main thread? | ||
arnsholt | It says basically all the time was spent in sleep, which is odd | ||
Juerd | Yes, it does look like it. | ||
arnsholt: The main thread actually did spend all that time in sleep. | 00:38 | ||
diakopter___ | maybe try pushing the message processing to the main thread :S | 00:39 | |
Juerd | Hm, this is interesting: if I do a "strace -feread perl6 foo.pl", I see that the reads are spread out. | ||
diakopter___ | just for diagnostic purposes, dunno | ||
Juerd | So perhaps IO::Socket::Async is doing something weird. (I'm guessing, mostly) | ||
diakopter___ | ISTR it uses its own cobbled async emulation... but that was ages ago | 00:40 | |
00:41
tokuhiro_ left
|
|||
Juerd | I see these huge time jumps in strace -tt: | 00:42 | |
5945 01:41:02.513736 futex(0x4d38d94, FUTEX_WAIT_PRIVATE, 29, NULL <unfinished ...> | |||
5939 01:41:03.082356 <... epoll_wait resumed> {{EPOLLIN, {u32=22, u64=22}}}, 1024, 59861) = 1 | |||
diakopter___ | yeah I'd suspect IO::Socket::Async | 00:43 | |
Juerd | I don't know what it means that epoll_wait is "unfinished" and later "resumed" | 00:44 | |
Ben_Goldberg | It got a signal? | 00:45 | |
Juerd | In between there's a lot of futex stuff that I don't understand. | ||
00:45
Actualeyes left
|
|||
leont | futex is locking | 00:45 | |
00:46
sprocket left
|
|||
Juerd | This is way beyond my skill set, so I'll just hope it improves. | 00:48 | |
leont | My first guess is that resumed means signals are in play, but I think that wouldn't make sense in this case | 00:49 | |
Could also be a confusing notation for a syscall that sleeps for some time, I don't know strace that well | 00:50 | ||
00:53
jasanj left
|
|||
leont | Latter seems more likely based on googling around | 00:57 | |
Hotkeys | hola | 00:59 | |
diakopter___ | Juerd: looks like there's some debug output you could uncomment in src/core/IO/Socket/Async.pm | 01:01 | |
(if you rebuild rakudo) | |||
you could study this for mental code reading :) github.com/MoarVM/MoarVM/blob/mast...ncsocket.c | 01:03 | ||
01:03
doublec_ joined
01:04
leont left
01:05
doublec left,
yeahnoob joined,
telex left
|
|||
[Coke] | anyone have a summary of jnthn's latest work on NSA? | 01:06 | |
01:06
telex joined
|
|||
grondilu | gather/take is known to be slow in the core, but what about infix:<...>? Because if it's ok it can be used for permutations: gist.github.com/grondilu/e8536f2389fac5022f2c | 01:06 | |
TimToady | ... uses gather/take internally | 01:07 | |
grondilu | ah, ok. Got to stick to Seq.new I guess. | 01:08 | |
01:13
peterscott joined,
yeahnoob left
|
|||
[Coke] | starting work on cutting the release. let me know of any issues. | 01:14 | |
grondilu gave perms an other shot: gist.github.com/grondilu/e8536f2389fac5022f2c | |||
01:16
tokuhiro_ joined
|
|||
JimmyZ | grondilu: avoid return/last will be faster :P | 01:21 | |
grondilu | I4m not sure how to do without a last | 01:23 | |
I mean I see but that would be a bit silly | |||
oh wait | 01:24 | ||
diakopter___ | .ask lizmat did this make it into a weekly? blog.64p.org/entry/2015/10/30/073514 | ||
yoleaux | diakopter___: I'll pass your message to lizmat. | ||
01:25
peterscott left
|
|||
grondilu got that he must use IterationEnd | 01:25 | ||
dalek | kudo/nom: 65a0af4 | coke++ | docs/announce/2015.11.md: Add first pass at release announcement |
||
01:28
diakopter___ left
01:32
quietfanatic left
|
|||
JimmyZ | yes, IterationEnd is recommanded there | 01:32 | |
grondilu recompiles racido with his rewrite of permutations | 01:33 | ||
*rakudo | |||
mattp_ | /b/ 1 | 01:36 | |
grondilu | FYI compilation failed | 01:40 | |
with a very helpful message: Cannot auto-generate a proto method for 'splice' in the setting | 01:44 | ||
01:47
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:51
doublec_ is now known as doublec
01:53
Herby_ joined
|
|||
Herby_ | Good evening, everyone! | 01:53 | |
Are there any tutorials for basic web scraping with Perl 6? | 01:54 | ||
grondilu | I doubt there are tutorials for such specific things. But there is a rosettacode example that does that. | 01:55 | |
I'm thinking of the one that ranks programming languages | 01:56 | ||
Herby_ | Doh, completely forgot about looking at rosettacode examples | ||
thanks! | |||
Skarsnik | perl6 is kind of slow for webscrapping x) | ||
Ben_Goldberg | m: (^5).WHAT.say | ||
camelia | rakudo-moar : OUTPUT«(Range)» | ||
Ben_Goldberg | m: (^5).reverse.WHAT.say | ||
camelia | rakudo-moar : OUTPUT«(List)» | ||
Ben_Goldberg wonders why there's no ReversedRange class. | 01:57 | ||
Herby_ | Just trying to do it as a learning exercise | ||
gfldex | m: (3..1).WHAT.say; | 01:58 | |
camelia | rakudo-moar : OUTPUT«(Range)» | ||
gfldex | Ben_Goldberg: you may want to file a bug report | ||
m: (3..1).reverse.reverse.WHAT.say; | |||
camelia | rakudo-moar : OUTPUT«(List)» | ||
gfldex | a range can be rather long, so turning it into a list is a bad idea | 01:59 | |
dalek | kudo/nom: 78a9cfc | coke++ | docs/ChangeLog: Add one line about jnthn++'s shaped arrays Fix typos |
02:00 | |
kudo/nom: b33872d | coke++ | docs/announce/2015.11.md: add committers |
|||
kudo/nom: 9e3e2ed | coke++ | docs/announce/2015.11.md: add changeloggy bits |
|||
kudo/nom: c6626db | coke++ | docs/release_guide.pod: Name release in the guide |
|||
Skarsnik | Herby_, if you want an example gist.github.com/Skarsnik/cc6a997fe72b1caae73d | ||
Herby_ | Thanks, Skarsnik | 02:01 | |
dalek | kudo/nom: dfa0c05 | coke++ | tools/build/NQP_REVISION: [release] bump NQP revision |
02:02 | |
kudo/nom: 20c9510 | coke++ | VERSION: [release] bump VERSION |
|||
gfldex | m: say so (3..1).min < (3..1).max; # :-> | 02:04 | |
camelia | rakudo-moar : OUTPUT«False» | ||
gfldex | m: say min 3..1; | 02:05 | |
camelia | rakudo-moar : OUTPUT«Inf» | ||
gfldex | m: say [min] 3..1 | 02:06 | |
camelia | rakudo-moar : OUTPUT«Inf» | ||
gfldex | m: say [min] (3..1).list | 02:07 | |
camelia | rakudo-moar : OUTPUT«Inf» | ||
grondilu | m: say min () | ||
camelia | rakudo-moar : OUTPUT«Inf» | ||
gfldex | m: say [min] 1..3 | ||
grondilu | m: say 0 < min () | ||
camelia | rakudo-moar : OUTPUT«1» | ||
rakudo-moar : OUTPUT«True» | |||
gfldex | m: .say for 3..1; | 02:09 | |
camelia | ( no output ) | ||
gfldex | m: .say for 1..3, |3..1; | ||
camelia | rakudo-moar : OUTPUT«1..31..1» | ||
02:10
kid51 joined
|
|||
gfldex | i will rakudobugS this tomorrow | 02:10 | |
02:11
raiph left
|
|||
gfldex | m: (3..1).elems.say; | 02:11 | |
camelia | rakudo-moar : OUTPUT«0» | ||
grondilu | well, my &perms does not compile. Even if I only put "IterationEnd" in pull-one | ||
gfldex | that may not work well with github.com/rakudo/rakudo/blob/nom/...nge.pm#L89 | ||
Skarsnik | Herby_, parse-html is from the Gumbo module if you are wondering, not in perl6 x) | 02:12 | |
Herby_ | k | 02:13 | |
i'm walking my way through, trying to figure out whats going on :) | 02:14 | ||
[Coke] | how do I revert a merge commit? | 02:19 | |
Skarsnik | I think there is a revert on merge? | 02:20 | |
Ben_Goldberg | m: (3...1).say | 02:21 | |
camelia | rakudo-moar : OUTPUT«(3 2 1)» | ||
Ben_Goldberg | gfldex, Is that what you wanted? | ||
m: (3...1).WHAT.say | |||
camelia | rakudo-moar : OUTPUT«(Seq)» | ||
gfldex | Ben_Goldberg: no, i actually want a inverted Range literal either work or fail at compile time | 02:22 | |
grondilu | making it fail at compile time would make sense. | 02:23 | |
(imho) | |||
gfldex | m: my $a = 3; my $b = 1; .say for $a .. $b; # that should fail at runtime | 02:24 | |
camelia | ( no output ) | ||
gfldex | well actually, that should just work | ||
02:24
ShimmerFairy joined
|
|||
grondilu | you were talking about "range literal" | 02:24 | |
gfldex | i were | ||
grondilu | $a .. $b is not a literal | ||
gfldex | sometimes i change what i talk about without further notice | 02:25 | |
grondilu | ok | ||
lizmat | computer: messages | 02:26 | |
yoleaux | 01:24Z <diakopter___> lizmat: did this make it into a weekly? blog.64p.org/entry/2015/10/30/073514 | ||
02:27
kaare_ joined
|
|||
lizmat | diakopter: I don't think so | 02:27 | |
gfldex | m: my @l = <a b c>; dd @l[3..1]; | ||
camelia | rakudo-moar : OUTPUT«List $var = $()» | ||
02:29
Herby_ left
02:30
Skarsnik left
02:31
dayangkun joined
02:32
xpen joined,
raiph joined
|
|||
dalek | kudo/nom: d9dde76 | coke++ | src/core/IO/Handle.pm: Revert "Merge pull request #592 from pmurias/tty-checking" This reverts commit 3806c1011edbe1bf1632d4955dd9810e8cafbc83, reversing changes made to 46c7c074910d1fef36071f925128602bedc22b9f. Build failed on JVM |
02:32 | |
gfldex | TimToady: should (3..1).elems > 0 ? | 02:33 | |
m: say (3..1).elems | |||
camelia | rakudo-moar : OUTPUT«0» | ||
lizmat | [Coke]: did you see grondilu's request at reverting the permutations optimization ? | 02:34 | |
[Coke]: ah, too late... | |||
m: say (3...1).elems # gfldex | 02:36 | ||
camelia | rakudo-moar : OUTPUT«3» | ||
lizmat | gfldex: simple ranges are always increasing | ||
if the end is lower than the start, you get 0 elems | |||
sequences (aka infix:<...>) can be descending, thus yielding 3 elems in example | 02:37 | ||
gfldex | that's even documented in doc.perl6.org/type/Range :-> | 02:38 | |
at least for Range literals it should warn/fail | 02:39 | ||
02:45
bpmedley joined
|
|||
lizmat | re tokuhiro_ 's log: gist.github.com/lizmat/5d452c8a8eb7a000bd2c | 02:45 | |
it does not require nqp, which is a good thing :-) | 02:46 | ||
AlexDaniel | wow NativeCall! Now it seems like I am going to write tests for a C library in perl6… At least I see no reasons not to do so. Has anybody tried that? | ||
lizmat | gfldex: you mean "Ranges always go from small to larger elements; if the start point is bigger than the end point, the range is considered empty." | ||
? | |||
gfldex | yes | 02:47 | |
tokuhiro_ | lizmat: thanks. this entry is a note about reading rakudo code :) | ||
02:47
sprocket joined
|
|||
grondilu | AlexDaniel: that's a fun idea | 02:47 | |
lizmat | AlexDaniel: a long time ago (well, about 13 years now), I wrote Perl 5 tests for a system written in C, so the idea at least is not new | ||
AlexDaniel | lizmat: nice! | 02:48 | |
lizmat | tokuhiro_: ok, I was just surprised about the use of nqp::decont() when it wasn't necessary | ||
AlexDaniel | grondilu: yeah! I am a bit worried about NativeCall limitations, but perhaps these could be solved as I move on… :) | 02:49 | |
02:49
finanalyst joined
|
|||
lizmat now wonders whether we could use syntactic sugar for "until ($foo := iter.pull-one) =:= IterationEnd | 02:49 | ||
02:50
sprocket left
|
|||
lizmat | something like: | 02:50 | |
iterate $iter -> $value { } | 02:51 | ||
grondilu | shouldn't 'for' already do that? | 02:52 | |
02:52
yqt left
|
|||
lizmat | for doesn't automatically do a pull-one and check on IterationEnd afaik | 02:52 | |
02:53
aborazmeh left
|
|||
gfldex | m: my @a = do for 1..5 -> $i { $i }; dd @a; # for is doing a bit more then that | 02:53 | |
camelia | rakudo-moar : OUTPUT«Array $var = $[1, 2, 3, 4, 5]» | ||
grondilu | like creating the array? Isn't that what 'do' does? | 02:54 | |
lizmat | do only makes sure the final value of each iteration isn't sunk | ||
again, afaik | 02:55 | ||
grondilu | then what you want is map, no? | 02:56 | |
map -> $value {...}, $iter | |||
I mean if there's a difference, it's subttle | |||
dalek | kudo/nom: b8160db | lizmat++ | src/core/native_array.pm: Revert "improve permutations" This reverts commit 57b83f4ad7803bb2dc96313c42636229ca76bf6d. As requested by the original PR author, grondilu++ |
02:57 | |
lizmat | grondilu: map and for *request* an iterator for what they get | 02:58 | |
AlexDaniel | lizmat: oh, so the idea is getting to the age of consent! And I am not surprised, actually | ||
lizmat | they don't use the iterator directly (yet, anyway) | ||
gfldex | from S04: Arguments bound to the formal parameters of a pointy block are by default readonly within the block. You can declare a parameter read/write by including the "is rw" trait. The following treats every other value in @values as modifiable: | 02:59 | |
synbot6 | Link: design.perl6.org/S04.html#Arguments..._the_block | ||
gfldex | that may not be a good idea for iterators | 03:00 | |
however, having a smarter for would be better then intruducing another keyword | 03:01 | ||
03:01
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
gfldex | for and given are doing fance stuff to $_ too | 03:02 | |
03:04
kaare_ left
|
|||
[Coke] | 2 failing tests, will skip them for the release. | 03:06 | |
03:08
kid51_ joined
|
|||
[Coke] | ... dammit. | 03:09 | |
Please hold off on any further commits. | |||
03:10
kid51 left
|
|||
[Coke] | now kicking off a fresh test to make sure I've gotten lizmat's latest work. | 03:10 | |
03:10
kid51_ is now known as kid51
|
|||
lizmat | [Coke]: I thought you had already tagged | 03:10 | |
? | |||
:-( | |||
lizmat kicks off another spectest as penance | 03:11 | ||
[Coke] | no. I'm in the middle of the release. | ||
lizmat | [Coke]: my apologies for the misunderstanding | 03:12 | |
03:14
doublec_ joined
03:15
doublec left
03:17
kid51 left
|
|||
lizmat | [Coke]: I guess the two failures are due to the revert of the .t / isatty functionality on account of it breaking the JVM build ? | 03:17 | |
[Coke] | eh. I'm not running the java tests, so it's not as painful as it would have been in the past. | 03:18 | |
very likely. | |||
lizmat | [Coke]: so perhaps the revert should be changed into a conditional for jvm/!jvm ? | 03:19 | |
[Coke] | I'd rather not do any surgery when we don't really support the jvm at this point. | 03:21 | |
we just want to ship something that compiles. You can fix it better post-release. | |||
lizmat | okidoki (which is what I thought I was doing :-) | 03:22 | |
03:24
noganex joined
|
|||
[Coke] | I'm also seeing 2 hangs in the test suite. | 03:25 | |
IO-Socket-Async.rakudo.moar | 03:26 | ||
dalek | c: 8b0e97e | (Kamil Kułaga)++ | doc/Language/classtut.pod: Comment about new method to not confuse new users Due to first example contains custom `new` it may give impression that writing `new` is something that programmer want to do. Maybe it would be good to mark it as non standard behavior and say that probably want to write build method? |
||
c: 288e717 | (Zoffix Znet)++ | doc/Language/classtut.pod: Merge pull request #179 from perl6/teodozjan-patch-1 Comment about new method to not confuse new users |
|||
[Coke] | t/spec/S17-supply/syntax.t | ||
03:27
noganex_ left
03:28
doublec_ is now known as doublec
03:29
sprocket joined
|
|||
dalek | kudo/nom: 7a4fa6a | coke++ | t/spectest.data: These tests were causing trouble. They'll have to be fixed before Christmas :( |
03:31 | |
lizmat | [Coke]: fwiw, onlt t/spec/S17-supply/syntax.t is a flapper for me | 03:36 | |
diakopter | lizmat: also the Crust blog entry there | 03:38 | |
[Coke] | lizmat: danke. | ||
diakopter | lizmat: this is the one I meant to paste above actually blog.64p.org/entry/2015/10/08/104052 | 03:41 | |
lizmat | diakopter: yes, Crust was mentioned as an ecosystem addition, afaik | 03:42 | |
diakopter | oh | ||
lizmat | on October12 | ||
diakopter | and then there's this.. mattn.kaoriya.net/software/lang/per...144119.htm | 03:43 | |
well, and this mattn.kaoriya.net/software/lang/per...183138.htm | 03:44 | ||
SyoboiScript | |||
truly great: method call($/){ make $func{$<ident>.Str}(self.expr($<expr>)); } | 03:46 | ||
lizmat | diakopter: if there would be an easy translation link to English somewhere, we could think about mentioning them ? | ||
diakopter | i dunno | 03:47 | |
Ben_Goldberg | Google Chrome offers to translate the page for me ;) | 03:48 | |
diakopter | it boinks the code box though | ||
Ben_Goldberg | Yeah, newlines and indentation in the example code get trashed. | 03:49 | |
diakopter | tokuhiro_: have you measured how many requests/s Crust can handle? | 03:57 | |
dalek | c/initial-styleguide: 75af98e | (Brock Wilcox)++ | / (2 files): Add initial styleguide |
||
lizmat goes to bed | 04:01 | ||
tokuhiro_ | diakopter: yes. i measured few months ago. but i lost the data :( | 04:03 | |
04:06
pyrimidi_ joined
|
|||
[Coke] | tag is pushed, go ahead. | 04:06 | |
MadcapJake | I'm stuck at an impasse, looking for some ideas. bare regexes (/.../) without `rx|m` are also capturing whenever division `/` happens. Any ideas for how to avoid this? I've tried selecting a bunch of different common chars that wouldn't appear right next to a regex but it still catches when the division operator is separated by whitespace `$a / 2` etc. | ||
04:07
jevin_ joined
|
|||
MadcapJake | I thought maybe they are single-line only and you need `rx|m` for multiline form, but that appears to be untrue. | 04:08 | |
[Coke] | tarball for #93, "Bend" is available. | ||
As per last time, I'll send out the release email in the morning. | |||
04:08
frew left,
zostay left
04:09
frew joined
|
|||
dalek | kudo/nom: e88196a | coke++ | t/spectest.data: unskip tests post release. (Note that one of these wasn't skipped. whoops. it was just hanging, should be fine, don't worry about it) |
04:09 | |
04:09
zostay joined
04:10
Actualeyes joined,
colomon left
04:11
Ben_Goldberg left
04:12
colomon joined
|
|||
[Coke] | .tell pmurias please feel free to try to add those patches again now that the release is done; sorry I had to back them out, hopefully we can get the issue fixed easily. Thanks. | 04:14 | |
yoleaux | [Coke]: I'll pass your message to pmurias. | ||
04:23
zengargoyle left
04:26
FD0_ joined
04:27
FD0_ left,
finanalyst left
04:46
zengargoyle joined
|
|||
MadcapJake | In case anyone's curious, I decided to go with a more inclusive rule with bare regexes that only highlights in a couple cases (the only times you'd really use a regex) rather than trying to list all the possible times a `/` wouldn't be a regex beginning delimiter. Only issue with this is that I might've missed a case but I'm pretty confident that's not the case. :P | 04:58 | |
04:58
raiph left
|
|||
ugexe | grammars are the bane of text highlighting perl6 in sublime text for the same reason :( | 04:59 | |
using ModernPerl (not a actual perl6 highlighter) | 05:00 | ||
05:01
sprocket left
|
|||
skids | m: Str.^methods.grep({.name eq "Num"}).perl.say; Str.?Num # should .? be ignoring the :D candidate? | 05:01 | |
camelia | rakudo-moar : OUTPUT«(method Num (Str:D $: *%_) { #`(Method|58877176) ... },).SeqInvocant requires an instance of type Str, but a type object was passed. Did you forget a .new? in block <unit> at /tmp/rDmXHLZ66u:1» | ||
grondilu | my Seq implementation of permutations works in the core :) I'll submit a PR soon. | 05:02 | |
(it seems pretty fast too) | |||
05:04
finanalyst joined
|
|||
grondilu | ah shoot I thought it worked, but it doesn't. | 05:10 | |
Hotkeys | Darn | 05:11 | |
grondilu | debuging some code in the core is tedious. How could I test a piece of code "as if it was" in the core? | 05:13 | |
05:30
khw left
|
|||
MadcapJake | ugexe: you should give mine a try then! :) It's really very richly highlighted. Just a couple minor little bits and it'll be v1.0.0 | 05:37 | |
grondilu | std: say "hi" | 05:51 | |
camelia | std : OUTPUT«No such file or directory» | ||
std : OUTPUT«(timeout)cat: /home/camelia/std/snap/revision: No such file or directory» | |||
grondilu | m: { }(rand) | ||
camelia | rakudo-moar : OUTPUT«Cannot find method 'CALL-ME' in block <unit> at /tmp/L861GubJdF:1» | ||
grondilu | m: { $_ }(rand) | ||
camelia | ( no output ) | ||
grondilu | m: { $_ }(rand;) | ||
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/r4Et69LS9YUnable to parse expression in argument list; couldn't find final ')' at /tmp/r4Et69LS9Y:1------> 3{ $_ }(rand7⏏5;)» | ||
grondilu | ^I had made a mistake like that while writing in the core and I had no error at compilation. | 05:52 | |
more precisely it was: | 05:55 | ||
m: Seq.new(class :: does Iterator { }.new();) | 05:56 | ||
camelia | rakudo-moar : OUTPUT«===SORRY!===Method 'pull-one' must be implemented by <anon|60375552> because it is required by a role» | ||
grondilu | m: Seq.new(class :: does Iterator { method pull-one { IterationEnd } }.new();) | ||
camelia | rakudo-moar : OUTPUT«Too many positionals passed; expected 2 arguments but got 3 in block <unit> at /tmp/dqKMF0QmMN:1» | ||
grondilu | ^this | ||
m: Seq.new(class :: does Iterator { method pull-one { IterationEnd } }.new()) | |||
camelia | ( no output ) | ||
06:03
larion left
06:04
breinbaas left
06:10
xiaomiao left
06:14
skids left,
AlexDaniel left,
xiaomiao joined
06:16
molaf joined
06:20
molaf left
06:36
domidumont joined
06:44
domidumont left
|
|||
grondilu | m: say Seq.new(class :: does Iterator { method pull-one { IterationEnd } }.new()).is-lazy | 06:53 | |
camelia | rakudo-moar : OUTPUT«False» | ||
grondilu | not sure why Seq(s) are not lazy by default. | ||
that prevents .elems to return when they are lazy. | |||
I wanted to define C<method count-only { [*] 1 .. $!n }> but that won't work with a lazy Seq :( | 06:54 | ||
06:57
domidumont joined,
domidumont left,
domidumont joined
06:58
diana_olhovik_ joined
06:59
Phagus joined,
abraxxa joined
07:01
geraud left
07:02
aborazmeh left
07:07
abraxxa left
07:21
abraxxa joined
07:26
cgfbee left,
rindolf joined
07:35
darutoko joined
07:40
softmoth_ left
|
|||
masak | morning, #perl6 | 07:47 | |
grondilu: why not spectest a change where they're lazy by default? | |||
[Tux] | test 50000 21.241 21.127 | ||
test-t 50000 18.103 17.989 | |||
csv-parser 50000 28.644 28.529 | |||
moritz | if they are lazy by default, things like @list.map(...).elems would not work | 07:48 | |
07:53
cgfbee joined
07:54
rurban joined
07:57
rurban left
07:58
sprocket joined
07:59
rurban joined
08:00
zhmylove left,
zhmylove joined
08:03
yeahnoob joined
08:14
bpmedley left
|
|||
grondilu | it's not so much that they are not lazy by default that bothers me, it's the fact that we can't call .elems when they are lazy. Seems a bit strong a constraint, imho. For instance with permutations, we really want it to be lazy because it can be very big a list. Yet its number of elements is very well known and can be computed immediately. | 08:15 | |
moritz | but that's a very specific case, unusual case | 08:17 | |
grondilu | I suppose I can use a role { method elems {...} } | 08:18 | |
moritz | one could always mix in a role that provides .elems | ||
right | |||
or a subclass | |||
grondilu | I'll try using a role | ||
08:22
Phagus left
|
|||
grondilu | yeah I got something that passes t/roast/S32-list/permutations.t | 08:28 | |
08:29
meilin joined
|
|||
grondilu recompiles with Seq.new(...) but role { method elems { [*] 1 .. $n } } | 08:31 | ||
08:40
zakharyas joined
08:46
meilin left
08:52
kjs_ joined
|
|||
grondilu | hum I still get "Cannot .elems a lazy list" | 08:55 | |
08:55
black_ant joined
|
|||
grondilu | m: say Seq.new(class :: does Iterator { method pull-one { IterationEnd }; method is-lazy { True } }.new()).elems | 08:57 | |
camelia | rakudo-moar : OUTPUT«Cannot .elems a lazy list in block <unit> at /tmp/CKKA9ZrkIq:1Actually thrown at: in block <unit> at /tmp/CKKA9ZrkIq:1» | ||
psch | m: my $x = Seq.new(class :: does Iterator { method pull-one { IterationEnd } }.new()) but role { method elems { 5 } }; say [+] $x.elems # .sum already cheat somehow iirc..? | ||
camelia | rakudo-moar : OUTPUT«5» | ||
psch | +s | ||
grondilu | m: say (Seq.new(class :: does Iterator { method pull-one { IterationEnd }; method is-lazy { True } }.new()) but role { method elems { 0 } }).elems | ||
camelia | rakudo-moar : OUTPUT«0» | ||
grondilu | m: say (Seq.new(class :: does Iterator { method pull-one { IterationEnd }; method is-lazy { True } }.new()) but role { method elems { 0 } }).list.elems | 08:58 | |
camelia | rakudo-moar : OUTPUT«Cannot .elems a lazy list in block <unit> at /tmp/Wrx0AB8vLQ:1Actually thrown at: in block <unit> at /tmp/Wrx0AB8vLQ:1» | ||
grondilu | I'm losing the role when converting into list | ||
and t/roast/S32-list/permutations.t has explicit conversion to list | |||
m: say (Seq.new(class :: does Iterator { method pull-one { IterationEnd }; method is-lazy { True } }.new()) but role { method elems { 0 } }).list.eager.elems | 09:01 | ||
camelia | rakudo-moar : OUTPUT«0» | ||
grondilu | maybe there should be an eager in t/roast/S32-list/permutations.t | ||
psch | m: say (Seq.new(class :: does Iterator { method pull-one { IterationEnd }; method is-lazy { True } }.new()) but role { method elems { 5 } }).list.eager.elems | ||
camelia | rakudo-moar : OUTPUT«0» | ||
psch | doesn't help you *keep* the elems from the role | 09:02 | |
09:02
softmoth_ joined
|
|||
psch | grondilu: you'd probably have to adapt List.from-iterator to carry that over | 09:02 | |
grondilu | not sure how to do it. try { $iter.elems } or somthing like that? | 09:03 | |
psch | which would also mean having an $!elems in List or reify anyway... | ||
maybe a PermutationsResult or somesuch would be the better idea, i don't think having explicit $!elems in List is a good idea... | 09:04 | ||
grondilu: right, that's how you'd get it, but there's not really a spot in List to store it | 09:05 | ||
'cause elems reifies and asks nqp about the size | 09:06 | ||
09:07
softmoth_ left
|
|||
grondilu | moritz pointed out that having a .elems for a lazy list is very peculiar, so this possibility should not influence the behavior of List | 09:07 | |
I think we'd rather just add an eager in t/roast/S32-list/permutations.t | |||
psch | i agree with that, which is why i'm thinking PermutationsResult (or maybe KnownSizeLazyList, for general applicability) which isa List could be a workable solution | 09:08 | |
adding the eager doesn't help (and changes the language requirements) | |||
09:09
bpmedley joined
|
|||
psch | it just throws away the .elems on the Seq, reifies the list and gives you that count | 09:09 | |
grondilu | in any case as it is, this test file can not work with a lazy list of permutations. This is LTA. | 09:10 | |
though I don't understand how it can currently work with the gather/take implementation. | |||
09:13
lab_ left
|
|||
grondilu | the following passes the test but is not lazy: gist.github.com/grondilu/e8536f2389fac5022f2c | 09:13 | |
09:13
lab_ joined
|
|||
finanalyst | I've been working on a Citation index for Perl6 modules. Table can be seen at finanalyst.github.io/ModuleCitation/ | 09:13 | |
I hope to update it and look at the change over time. Is it interesting? | 09:14 | ||
grondilu | oh it does not hang with large n though. I guess I don't quite understand what "lazy" really means. | 09:15 | |
09:16
kjs_ left
|
|||
grondilu submitted a PR. | 09:19 | ||
finanalyst: not sure 'citation' is the best word for this. | 09:25 | ||
timotimo | yo | 09:33 | |
grondilu | m: say permutations(10)[*-1] | ||
camelia | rakudo-moar : OUTPUT«(timeout)» | 09:34 | |
grondilu | m: say permutations(6)[*-1]; say now - INIT now | ||
camelia | rakudo-moar : OUTPUT«(5 4 3 2 1 0)0.74277174» | ||
grondilu | m: say permutations(8)[*-1]; say now - INIT now | ||
camelia | rakudo-moar : OUTPUT«(timeout)» | ||
grondilu | m: say permutations(7)[*-1]; say now - INIT now | ||
camelia | rakudo-moar : OUTPUT«(6 5 4 3 2 1 0)5.98858588» | 09:35 | |
09:36
sprocket left
|
|||
dalek | rl6-bench: 6ca4e0d | timotimo++ | perl6/ (3 files): fix insertion-sort, merge-sort and pi-seq-iter for scale == 0 |
09:37 | |
timotimo | i need to get my desktop unbusy and re-run the benchmarks uh-gain~ | 09:38 | |
but now there's a 2015.11 tag; that'll look better in the results page | |||
and also it'll actually pull in the latest nqp and moar; not sure how far back the last ones were when i ran benchmarks | 09:42 | ||
09:44
espadrine joined
09:48
kjs_ joined
09:52
yeahnoob left
|
|||
psch | good news! the FAIL in t/nqp/90-findmethod.t on jvm isn't a regression! | 09:55 | |
well, NPE not FAIL | |||
it just never worked in the first place \o/ | |||
grondilu: re your PR: can the die call actually ever happen? and if so, is there a way you can prevent that instead of dying from there? | 10:02 | ||
10:04
ribasushi left
10:06
domidumont left
10:07
domidumont joined
10:08
domidumont left,
espadrine left
10:09
domidumont joined
10:12
telex left
10:14
telex joined
10:16
doublec_ joined
10:17
doublec left
10:20
ribasushi joined
|
|||
arnsholt | timotimo: I pushed some stuff to iperl6kernel last night. Now it can evaluate code properly! =D | 10:20 | |
psch | arnsholt++ | ||
still not sure how functional we want the stock REPL | 10:21 | ||
like, moreinput is quite a beast :/ | |||
jnthn | morning, #perl6 | ||
psch | o/ jnthn | 10:24 | |
arnsholt | The hard part of making it work was network communication and such | ||
Evaluating code and capturing stdout was really, really simple | 10:25 | ||
10:26
domidumont left,
salv0 joined
10:27
domidumont joined
|
|||
finanalyst | grondilU: if not citation, then what? It mirrors citation indices in academic papers | 10:28 | |
konobi | morning all | ||
psch | so the NPE in t/nqp/90-findmethod.t happens because the method it finds is a CodeRef that pretty much directly points at KnowHOWMethods.methods, and the parameterized constructor for CodeRef doesn't set the STable | 10:31 | |
and that constructor is what we use to bootstrap the knowhow | |||
10:33
espadrine joined
10:35
finanalyst left
|
|||
jnthn | Maybe some fool played fast and loose when doing the bootstrap... :) | 10:36 | |
psch | i mainly don't know how to figure out which STable fits there... vOv | ||
jnthn | Is there a BOOTCode type somewhere? | 10:37 | |
psch | yeah, the KnowHOWBootstrapper stuffs that into the gc | 10:38 | |
so that means we should also already have it, right? | |||
jnthn | Maybe we have to come back and fix up things created "early"? | ||
10:39
pdcawley joined
|
|||
psch | oh, right. we don't have the BOOTCode STable yet | 10:41 | |
10:50
softmoth_ joined
10:51
znpy joined
10:54
softmoth_ left
|
|||
psch | testing now | 10:55 | |
the file on its own worked, but running the full nqp tests seems sensible :P | |||
jnthn | :P | 10:56 | |
jnthn is digging into getting native shaped arrays working | |||
El_Che | TimToady: I saw your craiglist talk yesterday. \o/ | 10:57 | |
10:59
breinbaas joined
|
|||
dalek | p: 3647cc5 | peschwa++ | src/vm/jvm/runtime/org/perl6/nqp/sixmodel/KnowHOWBootstrapper.java: Get t/nqp/90-findmethod.t passing. Apparently someone "played fast and loose" with bootstrapping the KnowHOW, we just didn't notice before. pmurias++ for the test and jnthn++ for a hint or two. |
11:01 | |
psch | there we go, clean nqp-j tests | ||
jnthn | :) | 11:02 | |
"someone"...wonder who? :D | |||
psch | ...no idea, i wasn't around then :) | ||
dalek | kudo/nom: a2e5a00 | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java: Revert "Properly fix RT #126673." This reverts commit 7781481936a6673953a781c2b0c9a8c77a1e8174. |
11:03 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126673 | ||
dalek | kudo/nom: 9c82d4c | peschwa++ | src/vm/jvm/runtime/org/perl6/rakudo/RakOps.java: Turns out we can fix this much simpler, as here. The original problem, as it turns out, was the operands to istype being the wrong way aroud. Additionally, renaming the variable containing the type that's supposed to bypass the type check to "bypassType" seems like a good code-as-documentation decision. |
||
psch | and with this i fixed that ticket 3 times and revert two of the solutions... :S | ||
moritz | does that actually increase or decrease your confidence that it's fixed properly now? :-) | 11:04 | |
11:04
doublec joined
|
|||
psch | each iteration increased the confidence, of course | 11:04 | |
11:05
black_ant left,
eliasr joined
|
|||
psch | but well, in general i don't develop much of that anyway... confidence that is :P | 11:05 | |
11:07
doublec_ left
|
|||
moritz | IME there's a drop-off point | 11:11 | |
after the 5th iteration or so I believe that the problem has no good solution, and my confidence is very low again | |||
psch | well, in this instance the previous iterations had to be discarded because i didn't pay enough attention to see the actual problem... :S | 11:17 | |
11:18
rurban left
11:20
Skarsnik joined
|
|||
jnthn | Darn, wish I was feeling cleverer today... | 11:22 | |
11:27
dayangkun left
|
|||
nine | jnthn: it can always be worse. Today I've failed so far in checking if the modification times of a list of precomp files are all before the one I'm checking against. This is a stupid beginner's exercise, damn it :) | 11:39 | |
jnthn | all($those-times) < $current-time # :) | 11:41 | |
Well, @those-times :) | |||
11:42
pecastro_ joined,
pecastro left
11:50
zakharyas left
|
|||
nine | Is all() actually smart enough to stop looking once one element violates the condition? | 11:52 | |
11:53
rurban joined
|
|||
jnthn | Not sure in this case. On Bool and ACCEPTS it is | 11:53 | |
11:53
doublec left
|
|||
nine | I tried something along not $store.path(any(@ids)).modified >= $since which works when I try it separately but when I do it for real, it still fails to recompile the outdated module. | 11:54 | |
Well I will find the reason in the afternoon . Probably some stupid mistake somewhere. | |||
jnthn | Probably :) | 11:55 | |
11:56
doublec joined
11:58
leont joined
|
|||
JimmyZ | Isn't it any() ? | 12:00 | |
jnthn | Uh, yes :) | 12:01 | |
12:02
black_ant joined
12:06
black_ant left
|
|||
grondilu | psch: no, the die can not logically happen. I did put it there to catch a coding error or something. I guess I should remove it but I thought it was quite cheap so I left it as is. | 12:06 | |
12:06
CQ joined
12:07
black_ant joined
|
|||
psch | grondilu: my concern was mostly from an end user perspective. assuming it could happen it should throw something from X::, and if it can't it doesn't need to be there | 12:07 | |
12:07
black_ant left
|
|||
dalek | kudo/nom: ec6220f | jnthn++ | src/core/ (2 files): Factor out shaped storage alloc/interning. So we can use it for both Array and array. |
12:07 | |
kudo/nom: 27b1ab6 | jnthn++ | src/core/native_array.pm: Add a default .shape method to array. |
|||
kudo/nom: 8122895 | jnthn++ | src/core/native_array.pm: Allocate shaped storage for native arrays. This gets the fixed size case working already, but not multi-dim cases. |
|||
12:18
doublec left
12:20
rindolf left,
doublec joined
12:21
kaare_ joined
12:23
bombless joined
12:26
bbarker joined
12:28
sufrostico joined
|
|||
dalek | kudo/nom: ccd386b | jnthn++ | src/core/native_array.pm: EXISTS-POS for native shaped arrays. |
12:29 | |
12:30
Upasaka left
12:31
bombless left,
TEttinger left
12:32
kjs_ left
|
|||
grondilu | psch: ok, removed from the patch | 12:33 | |
12:37
pdcawley left
12:38
kid51 joined,
softmoth_ joined
12:42
black_ant joined,
black_ant left,
softmoth_ left
12:45
black_ant joined
|
|||
dalek | c: 032c382 | (Brock Wilcox)++ | doc/Language/classtut.pod: Minor grammar fix |
12:46 | |
12:49
Ven joined
|
|||
Ven | \o | 12:50 | |
yoleaux | 19 Nov 2015 22:59Z <Zoffix> Ven: could you look at modules.perl6.org/ and try pressing SPACE or Down Key. Does the same issue happen as on docs.perl6.org that you can't scroll? | ||
12:50
kid51 left
|
|||
dalek | kudo/nom: e53be19 | jnthn++ | src/ (2 files): Add missing optimization of multi-dim assign. |
12:52 | |
kudo/nom: 9fb2183 | jnthn++ | src/core/ (2 files): Implement access to native shaped arrays. |
|||
12:53
pecastro_ left
|
|||
dalek | ast: ab1cf9a | jnthn++ | S09-multidim/ (2 files): Some initial tests for native shaped arrays. |
12:53 | |
jnthn | lunch & | 12:54 | |
12:54
ab6tract joined
|
|||
ab6tract | jnthn: i'm curious about the junction internals ... why are they not implemented using the reduce op? | 12:55 | |
pink_mist | he /just/ went off to lunch | ||
ab6tract | we would get short-circuiting for free... | ||
[&&] $current-time X> @all-the-times | 12:56 | ||
i guess the difference is that this does not return a junction, so is more equivalent to so all(@the-times) > $current-time | |||
but i'm also at a loss as to when the bare junction is really worth it | 12:57 | ||
considering they are too slow to use in core, and seem to be generally discouraged for production as well | |||
hmm, i guess the semantics change very significantly as well | 12:58 | ||
13:00
pecastro joined
13:02
xpen left
|
|||
Ven | urgh, I was writing a script to parse some c++ for $work, then I got remainded I was writing a script to parse some c++ | 13:05 | |
Skarsnik | good luck lol | 13:07 | |
13:09
pippo joined
|
|||
Ven | Skarsnik: I gave up :). no way to track namespaces easily. it'd be easier to use some clang api at this point | 13:10 | |
grondilu | the guy from www.quickperm.org/ authorized the use of his algorithm inside the code. I can forward the email for archive purposes or something. | ||
s/code/core/ | |||
Skarsnik | Ven, if you are bored, write something to parse c/cpp headers and extract definition! | 13:11 | |
13:11
ab6tract left
|
|||
dalek | c: 0284491 | (Ricardo Signes)++ | lib/Language/classtut.pod: fix anchor link The old link was to `#Object Construction` but the live page has an underscore in place of space. |
13:11 | |
c: 1f5df41 | (Zoffix Znet)++ | doc/Language/classtut.pod: Merge branch 'patch-1' of github.com/rjbs/doc into rjbs-patch-1 |
|||
c: b420ad8 | (Zoffix Znet)++ | doc/Language/classtut.pod: Merge branch 'rjbs-patch-1' |
|||
Ven | Skarsnik: well, I already extract definition, but it's just "one-off". I don't know about the context. So, I can't parse c++ | ||
Skarsnik | I am not kidding, it could be useful to write C/Cpp binding x) | 13:12 | |
Ven | Parsing C++ is *very* hard | 13:16 | |
leont | Yeah | ||
For reasons similar to perl5 | |||
13:16
abraxxa left
|
|||
Ven | the result of a function in C++ can change a program between "parse error" and "working" | 13:17 | |
leont | though the ambiguities are in slightly different places | ||
Ven | constexpr functions, SFINAE, etc, are things you need to take into account *at parsing time* | ||
13:17
pecastro left
|
|||
Ven | m: BEGIN { say 'hey'; }; $xxx++; # look | 13:17 | |
camelia | rakudo-moar : OUTPUT«hey5===SORRY!5=== Error while compiling /tmp/fhn7Yb2YvLVariable '$xxx' is not declaredat /tmp/fhn7Yb2YvL:1------> 3BEGIN { say 'hey'; }; 7⏏5$xxx++; # look» | ||
Ven | ^ exactly this kind of crazy stuff ;) | ||
13:19
pecastro joined,
CQ left
13:20
black_ant left
|
|||
dalek | c: 297b8a1 | (Wenzel P. P. Peppmeyer)++ | doc/Language/control.pod: Fix example for Language/control/last. |
13:21 | |
c: f41e3a4 | (Wenzel P. P. Peppmeyer)++ | doc/Language/control.pod: Fix indentation for example of Language/control/next. |
|||
c: c1ba6f4 | (Zoffix Znet)++ | doc/Language/control.pod: Merge pull request #203 from gfldex/master Fix last example and indentation for next example. |
|||
13:26
yqt joined
13:34
pecastro left,
pecastro joined
13:36
domidumont left
|
|||
jnthn | ab5tract_: We often implement hot-path-ish stuff in CORE in unidiomatic ways to squeeze performance out, for pragmatic reasons. While it'd be wonderful if we had the resources to have optimized the heck out of everything already and not have to do such things, in reality careful optimization of various built-ins can make a big difference to the performance of people's Perl 6 programs. | 13:39 | |
13:39
domidumont joined
|
|||
dalek | kudo/nom: 60e149f | coke++ | docs/announce/2015.11.md: don't scare anyone |
13:41 | |
kudo/nom: 1538532 | coke++ | docs/announce/2015.11.md: remove reference to old release scheduling |
|||
jnthn | Phew! :P | 13:42 | |
13:43
zakharyas joined
|
|||
[Coke] | email sent | 13:43 | |
dalek | href="https://modules.perl6.org:">modules.perl6.org: 8ba9ad4 | (Zoffix Znet)++ | / (3 files): List missing prereqs / Update deployment docs Closes #29 |
13:44 | |
[Coke] | Anyone have any feedback to moving the monthlies to the 3rd saturday of a month? | ||
dalek | href="https://modules.perl6.org:">modules.perl6.org: a97752d | (Zoffix Znet)++ | DEPLOYMENT.md: Write code blocks in Markdown, not POD |
13:46 | |
jnthn | [Coke]: I'm not sure whether moving it to a weekend makes it easier to get volunteers, harder to get volunteers, or means we get a different set of volunteers. :) | ||
13:46
pecastro left
|
|||
jnthn | [Coke]: I'm certainly +1 to simplifying the rule, anyway. | 13:47 | |
[Coke]: I don't have any strong feelings on what it is. | |||
13:48
ZoffixW joined,
zakharyas left
|
|||
jnthn | (So long as it's not like "the first time the moon is full" or something :)) | 13:48 | |
13:48
pecastro joined
|
|||
ZoffixW | [Coke], there's a typo here: "insure" -> "ensure": github.com/rakudo/rakudo/commit/60...58731a9R61 | 13:48 | |
.oO( technical debt insurance... ? ) |
13:49 | ||
jnthn | .oO( Mustn't prevent werewolves cutting releases ) |
||
[Coke] | jnthn: The release process takes hours to do. As someone who has done the last 2 releases, I'm more likely to find time to do this on the weekend than on a school night. | ||
ZoffixW: yes, well, that just went out in an email. too late, sorry. :| | 13:50 | ||
jnthn | [Coke]: OK, that's a useful data point. | ||
[Coke] thinks there's enough slop in ensure/insure that his honor will be ok here. :| | |||
moritz | what do you guys think about automating part of the release process? | ||
jnthn | Short of a bunch of people jumping up saying "I do releases but won't if it's on a weekend", I'm good with third Saturday. | 13:51 | |
moritz: +1 | |||
13:51
zakharyas joined
|
|||
moritz has been doing some continuous delivery for $work :-) | 13:51 | ||
jnthn | Good automation removes tedium and helps avoid mistakes. | ||
[Coke] | moritz: we need CI, we need a better branching strategy... yes to all that. | ||
Ven | did someone not look into CI 1/2months ago? I seem to remember something along those lines | 13:52 | |
dalek | href="https://modules.perl6.org:">modules.perl6.org: 242aaeb | (Zoffix Znet)++ | README.md: Fix code sample indents and Markdown errors |
||
zengargoyle | good * #perl6 | ||
ZoffixW | \o | ||
[Coke] | jnthn: no issue with doing a moar release closer to that cycle? | 13:53 | |
You could do it friday night, even. | |||
Ven | o/ zengargoyle | 13:54 | |
MadcapJake | ZoffixW: do you think that sigilless variables should be highlighted? I feel like, as they aren't containers, maybe they should be left unhighlighted. When you subsequently access them, you don't use the backslash so it won't highlight there. I could highlight the backslash though. | 13:55 | |
ZoffixW | MadcapJake, I don't think it's really that important, TBH | 13:56 | |
jnthn | [Coke]: Yeah, doing it on Fridays works for me. | ||
Ven | ZoffixW: I'll test the space/arrow scrolling issue tomorrow when I get back home | ||
ZoffixW | cool | ||
jnthn | [Coke]: Either I'm working at home so it's no issue, or I'm on my wake back from teaching, in which case it's something to do on a train/airport/plane | ||
13:56
g5 is now known as g4
|
|||
Ven | ZoffixW: at least I know it works here ;-) | 13:56 | |
13:57
g4 left,
g4 joined
|
|||
ZoffixW | :P | 13:57 | |
[Coke] | do we need to start marking "Supported" releases? | ||
We're still releasing something every month, but I would expect that 2016.01 might not be expected to an automatic upgrade to 2015.12 | 13:58 | ||
perhaps, "Recommended" instead of Supported? | |||
nine | [Coke]: why? Shouldn't it be the exact opposite? Since after christmas we have to care about backwards compatibility, upgrades should be much safer | 13:59 | |
grondilu | m: say first * !%% 3, :last, ^20; | ||
camelia | rakudo-moar : OUTPUT«Unexpected adverb 'last' passed to first on List in block <unit> at /tmp/wPys4pKHCC:1Actually thrown at: in block <unit> at /tmp/wPys4pKHCC:1» | ||
grondilu | lizmat: ^not sure how to use :last | ||
[Coke] | nine: yes, we care, so we don't want people installing something where some idiot (like me) accidentally breaks backward compatibility | 14:00 | |
this is less of a concern if we move to a more conservative branching setup | 14:01 | ||
14:02
samb1 left
|
|||
[Coke] | our monthlies are more like p5 odd numbered releases, in my mind. | 14:03 | |
14:03
samb1 joined,
AlexDaniel joined
14:04
nmp joined
|
|||
grondilu | m: say first * !%% 3, :end, ^20; | 14:07 | |
camelia | rakudo-moar : OUTPUT«19» | ||
grondilu | m: say first * !%% 5, :end, ^20; | ||
camelia | rakudo-moar : OUTPUT«19» | ||
jnthn | [Coke]: Generally, I feel that if something is considered difficult (like making releases that don't break back-compat) then we want to do what we can to enable us to do it regularly and reliably, rather than make it a big deal. | ||
arnsholt | Argh. Can't push to github for some reason >.< | ||
ZoffixW | arnsholt, same | ||
dalek | href="https://modules.perl6.org:">modules.perl6.org: d440899 | (Zoffix Znet)++ | / (3 files): Fix typos, formatting, and links |
||
jnthn | [Coke]: I'm somewhat considering a spectest re-org whereby all the spectests we consider "the 6.c spec" move into a 6.c/S0*-* structure | ||
ZoffixW | Oh. never mind :) It git push sat there for like a minute | ||
grondilu | m: say first * %% 5, :end, ^20; | 14:08 | |
camelia | rakudo-moar : OUTPUT«15» | ||
Ven | grondilu: cute | ||
arnsholt | ZoffixW: Oh! So it might actually be a GitHub issue. I'll try to be more patient | ||
jnthn | [Coke]: And then we make the 'use v6.c' and treat those as things we shouldn't touch/change. | ||
*them | |||
arnsholt | I just have terrible troubles with the WiFi here at work; assumed that was the cause | ||
14:10
brrt joined
|
|||
jnthn | [Coke]: So "did we break back-compat for 6.c" is largely "did we break the spectests for 6.c". We'll of course find holes (in fact, I think a task for 6.d will be using coverage analysis to greatly improve the test suite). | 14:10 | |
brrt | good * #moarvm | ||
what's 6.d? | |||
(i suppose 6.c is christmas... i'd expect 6.e for easter) | 14:11 | ||
jnthn | brrt: We'll have to pick a holiday/event :P | ||
Devali? :) | |||
moritz | d: "definitively awesome" | 14:12 | |
arnsholt | I'd vote for Christmas, Diwali, Eid =) | ||
brrt | what's diwali | ||
jnthn | Oh wow, you can even spell it right :) | ||
arnsholt | brrt: Hindu festival of light | ||
brrt | ah, ok, cool | 14:13 | |
arnsholt | jnthn: My girlfriend studies Hinduism. I've learned a lot just by osmosis, TBH =) | ||
jnthn | :) | ||
I'm mostly aware of it 'cus of regularly visiting Indian restaurants. ;) | 14:14 | ||
arnsholt | That'll do it too =D | 14:15 | |
ilmari | diwali has just been, though | ||
11 November | |||
arnsholt | Although regarding spelling, there's a pile of different romanisations | 14:16 | |
jnthn | ilmari: Good news: there'll be another one next year. | ||
ilmari | jnthn: true | ||
jnthn | ilmari: This is for *langauge* version, not implementation version. A year is probably about right. :) | ||
arnsholt | Divali is a common variant as well, I think | ||
[Coke] | jnthn: (make important things easy) it sounds convincing, ja. | ||
arnsholt | Also deepavali, from the Sanskrit name of the festival (Diwali being the Hindi name, IIRC) | ||
grondilu | I did try quickperm in the core and it seems pretty good, but it does not return the same order. Does the order in t/roast/S32-list/permutations.t matter? | 14:17 | |
jnthn | Yes, transliteratin is an imprecise art :) | ||
arnsholt | Not to mention a serious case of xkcd.com/927/ | ||
14:18
gar joined
|
|||
jnthn | arnsholt: And...transliteration schemes don't round-trip. :) | 14:19 | |
(In general, at least) | |||
14:21
Actualeyes left
|
|||
dalek | kudo/nom: 287d191 | coke++ | / (2 files): Change release schedule starting in 2016 |
14:21 | |
kudo/nom: 9e48f15 | coke++ | docs/release_guide.pod: Going forward, we're probably not using mongers |
|||
kudo/nom: c1010d4 | coke++ | docs/release_guide.pod: name the Christmas release already |
|||
kudo/nom: 9115a85 | coke++ | docs/release_guide.pod: Put next year's planned dates out there |
|||
[Coke] | Please feel free to discuss any of these release related changes I'm making. | 14:22 | |
I threw out my commit that marked Christmas as "recommended" based on the comments here. | |||
arnsholt | jnthn: Scholarly transliteration schemes (transcription, really) generally do quite well. But transliterations that normal people use generally don't, yeah | ||
Of course, scholarly schemes tend to look vaguely like Vietnamese orthography =) | 14:23 | ||
zengargoyle | i has the wicked thought last nite... get a P6 <-> neovim thiing happening and make P6 highlight itself. | ||
jnthn | arnsholt: Turns out if you get an official translit of my surname into Ukrainian, and then they translit it back to English, it comes out as "Vorsinhton" :) | 14:24 | |
dalek | kudo/nom: fde57e9 | jnthn++ | src/core/native_array.pm: Give array a sink method. |
14:26 | |
kudo/nom: 4aaa663 | jnthn++ | src/core/ (3 files): Share some shaped array methods in a common role. This means they can be used by Array and array. |
|||
14:26
softmoth_ joined
14:27
znpy left
|
|||
arnsholt | jnthn: Hee hee. I'd probably guess at Washington rather than Worthington for that =D | 14:28 | |
14:29
molaf joined
14:31
softmoth_ left
14:35
Actualeyes joined
14:38
skids joined,
znpy joined
14:40
rindolf joined
|
|||
dalek | kudo/nom: 22e51b7 | jnthn++ | src/core/native_array.pm: Fix native array's .flat method to give Seqs. |
14:43 | |
frastructure-doc: 9b5586b | (Zoffix Znet)++ | hosts/www.p6c.org.pod: Mention Zoffix has root acces |
14:44 | ||
14:45
tokuhiro_ left
|
|||
dalek | kudo/nom: 58d05f3 | jnthn++ | src/core/ (3 files): Move many more methods to shared shape role. |
14:47 | |
kudo/nom: 6d8ca4c | jnthn++ | src/core/Array.pm: Fix shaped array type name. |
|||
ast: ba47c16 | jnthn++ | S09-multidim/methods.t: Test methods on shaped native arrays. |
|||
14:48
ZoffixW left
14:51
gar left
|
|||
[Coke] | коледа! | 14:53 | |
I am half tempted, btw, to name the 2015.12 release коледа | |||
(which is both the likely original Belrussian spelling of my surname, and "Christmas" in several languages. | 14:54 | ||
jnthn | ooh :) | ||
14:54
pdcawley joined
|
|||
[Coke] | I know, right? Plus it's unicode. :) | 14:55 | |
ok, having said that out loud, now it's more like 85% tempted. | 14:56 | ||
[Coke] hurls en.wikipedia.org/wiki/Koliada as a reference. | 14:57 | ||
tadzik | Kolęda! | 15:00 | |
ooooh | |||
how it fits together | |||
15:04
rorx left
|
|||
Ven | I just wrote as part of some doc "you need to use nullptr and not 0, because (converted) constant expression are forbidden to implicitly convert integers to null pointer constants". Please, Perl 6, never get so confused (or your users) about your own language :P. | 15:05 | |
15:05
sprocket joined
|
|||
Ven goes back to writing some perl6 script and (hopefully) manage to automate this code generation... | 15:05 | ||
15:06
softmoth_ joined
15:08
domidumont left
15:10
xpen joined
|
|||
Ven | tadzik++ # File::Find | 15:11 | |
tadzik | :) | ||
arnsholt | timotimo: I've pushed a couple more commits to iperl6kernel. At this point, I think you can mention it in the weekly on monday =D | 15:12 | |
It supports the basics of capturing IO, returning reults and handling errors | 15:13 | ||
I'm gonna open some issue tickets too, to point the way for other people to continue hacking on it | 15:14 | ||
Skarsnik | damn modules.perl6.org stopped opening a new tab when you click on a module name x) | 15:18 | |
dalek | kudo/nom: 5777a46 | jnthn++ | src/core/Array.pm: Liberalize "is it shaped" checking. So the code works if the source isn't Array, but is shaped. |
||
kudo/nom: 67f8715 | jnthn++ | src/core/ (3 files): Support assignment to native shaped arrays. |
|||
tadzik | Skarsnik: yay! | 15:19 | |
dalek | ast: a1f83cb | jnthn++ | S09-multidim/assign.t: Tests for assignment to native shaped arrays. Along with tests for assignment from native shaped to non-native shaped and vice versa. |
||
tadzik | I demand a liberty to choose whether my clicks open in a new tab or not | ||
Skarsnik | I don't like it! | 15:20 | |
tadzik | why! | ||
now you can open in a new tab or in the same tab :) | |||
15:20
nwc10 joined
|
|||
tadzik | twice as many choices depending on your scenario | 15:20 | |
15:21
nwc10 left
|
|||
jnthn | OK, with around 300 passing tests for shaped arrays now (covering native and non-native) that should cover most of the ground, I'm going to close the RT about it. We'll likely find some bits and pieces, but they can get their own tickets as we run into them. | 15:21 | |
zengargoyle | tadzik: amen brother! | ||
stmuk | github.com/rakudo/rakudo/pull/595 *bump* | 15:22 | |
arnsholt | jnthn++ # Much shape, very array, wo! | 15:23 | |
*w | |||
15:24
domidumont joined
|
|||
MadcapJake | language-perl6fe launches! v1.0.0 adds set/bag/mix operators, concurrency functions, and more numbers (nums, rats, radix numbers) github.com/MadcapJake/language-perl6fe/releases | 15:25 | |
tadzik | nice! | 15:26 | |
dalek | rl6-bench: 2bd9f8a | timotimo++ | minibenchmarks.pl: these benchmarks initialize with rand, so don't expect 0. |
15:27 | |
15:31
kjs_ joined
|
|||
dalek | ast: 37a7757 | jnthn++ | S09-typed-arrays/native- (2 files): Update tests for .flat behavior on native arrays. |
15:32 | |
jnthn | Down to 38 xmas tickets | 15:33 | |
15:35
ZoffixW joined,
loren joined
|
|||
ZoffixW | Skarsnik, what browser are you using? | 15:36 | |
Skarsnik | Chrome | ||
on win7 | |||
Ven | jnthn++ :-). that's a great feature, and it's nice to see it landing | ||
flussence has noticed the "Stage parse:" line hovering around 80/89s recently, but no inbetween values. Weird. | 15:38 | ||
jnthn | Ven: Thanks. I'm glad to have got that in. ) | 15:39 | |
Ven | m: my constant $a = 3; my @a[$a]; | 15:40 | |
camelia | ( no output ) | ||
ZoffixW | Skarsnik, the most obvious suggestion is to click with the middle click. It'll open in a new tab. But you can also install Tampermonkey (tampermonkey.net/) plugin and rewrite all <a> elements to have target="_blank". | ||
Ven | that's really neat :-). | ||
15:40
brrt left
|
|||
jnthn | Ven: oh, it's more dynamic than that even | 15:40 | |
ZoffixW | Skarsnik, as to why it was removed: (a) it existed for just a week or two; (b) it's horrible practice and significantly impacts usability. | ||
jnthn | m: my $a = 2; my $b = 3; my @a[$a;$b]; say @a.shape | ||
camelia | rakudo-moar : OUTPUT«(2 3)» | ||
Skarsnik | ZoffixW, I mean for a whilte it opened a new tab and it was nice! it's just complaining to compain x) | ||
Ven | jnthn: oh, it's all dynamic then? no compile-time shenanigans? ok! | ||
ZoffixW | Skarsnik, heh. OK :) | ||
jnthn | Well, number of dimensions is static-er :) | 15:41 | |
There's an escape hatch for that too | |||
Ven | ||, right? | ||
jnthn | We push enough info VM-wards that we should be able to do nice code-gen later | ||
Yeah, ||. I didn't implement that yet. | |||
Ven | that's what it seemed from looking at the commits :) | ||
jnthn | Not sure whether we need it for 6.c. TimToady may think so. :) | ||
ZoffixW is dissapointed this went nowhere: www.w3.org/TR/css3-hyperlinks/ | 15:42 | ||
Ven | All the "big" S09 parts might not be needed for xmas | ||
jnthn | Most remaining S09 bits besides this were alerady on my "not for xams" list :) | ||
Skarsnik | does that look good so far? (It's a blog post about scrapping html with perl6) skarsnik-stuff.blogspot.com/b/post...;type=POST | 15:43 | |
This crazy huge link x) | |||
jnthn | Scrapping? Or scaping? :D | ||
15:43
kjs_ left
|
|||
jnthn | *scraping | 15:43 | |
ZoffixW | hehe | ||
jnthn | bah, the irony, I point out a spello and make one while doing it :) | 15:44 | |
zengargoyle | is there a difference when dealing with the web. :P | ||
ZoffixW | Skarsnik, you also used "scrap" instead of "scrape" in the first sentence :) | ||
flussence | ZoffixW: normally I'm in the "all this fancy stuff doesn't belong in CSS" camp, but defining how links act totally makes sense in there | ||
jnthn | OK, time for a break, shopping, etc. bbl o/ | ||
Skarsnik | screw you, it's not easy to write english xD | 15:45 | |
zengargoyle | i was wondering a few days ago what POD would look like using Tufte.css styling. | 15:46 | |
Skarsnik | but, yeah I will fix it | ||
15:46
tokuhiro_ joined
|
|||
flussence | (I think CSS as a whole should be burned down and redesinged from scratch, mind you) | 15:46 | |
zengargoyle | edwardtufte.github.io/tufte-css/ | ||
15:46
xpen left
|
|||
ZoffixW | flussence, it ain't bad when you use CSS | 15:46 | |
err SASS | 15:47 | ||
15:47
rorx joined
|
|||
huf | syntax is hardly the problem with css | 15:47 | |
15:47
brrt joined
|
|||
flussence | repetition ain't my main beef, it's more that if you squint hard enough, it resembles PHP :) | 15:48 | |
huf | :) | ||
zengargoyle | along with a dist-zilla type tool to create github.io pages from POD automagically. | ||
ZoffixW doesn't see any other serious problems that'd warrant a rewrite | |||
huf | my problem is with the thing css lets you adjust. it's a completely insane machine full of one-purpose hacks, lacking general solutions. | ||
gfldex | while your zeal is hitting CSS hard, could you direct it towards font-size: \d+px too? Pixels don't work well with modern displays, you know. | ||
huf | :D | 15:49 | |
yeah, that's the sort of stuff... | |||
so basically css is fine, browsers are terrible :) | |||
Skarsnik | I hate css, it's always trial and error to get something right xD | ||
ZoffixW | Skarsnik, I'd suggest removing this entire bit: i.imgur.com/2ORwavs.png It just sounds like incoherent rambling and makes a jab at Perl 5, which is a very sore point at the moment. | ||
dalek | rl6-bench: 1af2f3e | timotimo++ | minibenchmarks.pl: fix the filename of pi-sequential-iteration ... |
15:50 | |
15:50
tokuhiro_ left
|
|||
Skarsnik | ZoffixW, make a jab at perl 5? I don't even mention it xD | 15:50 | |
15:50
Ven left
|
|||
Skarsnik | oh I dumb, the first sentence >< | 15:51 | |
ZoffixW | Skarsnik, second sentence :) | ||
15:51
Khisanth left
|
|||
huf | also, the word is "scrape" i think. or "scraping" | 15:51 | |
ZoffixW | Yeah | ||
huf | "scrap" the verb means to throw it out, which is probably not what you want | 15:52 | |
15:52
Khisanth joined
|
|||
ZoffixW | Skarsnik, and my other comment would be to modify or even remove the "Perl 6 Issue" section. Judging by how much people over-read the FAQ section (doc.perl6.org/language/faq#Is_Perl_...or_me%3F), I imagine there might be an issue of people misreading your comment as "ZOMFG! Perl 6 is horribly slow and it's a major issue". Next thing it goes viral and does a lot of damage. Does that section need to be there at all? You quote 5-20 se | 15:53 | |
conds for start up, but that sounds like your modules aren't precompiled. Also, machines are different: a test that takes 30 seconds on my $work box to run, completes in just 3 seconds on my home box. | |||
15:54
n0tjack joined
|
|||
Skarsnik | Well it was/is really annoying when I was messing around with this stuff | 15:54 | |
ZoffixW | Skarsnik, and this reference too: "...and being perl6 native is very slow.. takes 30 secs to parse the web page" | 15:55 | |
Skarsnik, sure, I can understand that, but your writing in its current form suggests Perl 6 has a major problem with being slow. | |||
zengargoyle | heh, i take scrap as fight | ||
Skarsnik | I switched to write perl5 script the time to figure stuff x) | ||
ZoffixW | Skarsnik, Perl 5 had decades to optimize itself. Perl 6 hasn't had a chance. It's an entirely unfair comparison. | ||
arnsholt | People more on top of Rakudo and MoarVM development: Do we have a Github issue or RT ticket for the threads hang issue? | 15:56 | |
Skarsnik | I don't want to troll. It's just well, a reality and it's annoying | ||
ZoffixW | Skarsnik, someone not overly involved in the language could look at your "30 secs to parse a page" roll their eyes, laugh, and never look at P6 again. | ||
Skarsnik, what's the sample code you used to get those numbers? | |||
timotimo | Skarsnik: it'd be nice if you could use zef in the mean time if you're going to do performance measurements. because zef still precompiles stuff | 15:57 | |
ZoffixW | Skarsnik, (and if it's the one on the page.. I can't copy/paste it) | ||
Skarsnik | Oh yeah, this preview stuff is dumb | 15:58 | |
15:58
n0tjack left
|
|||
timotimo | for rakudo star we could ship a panda with the ability to precompile monkey-patched back in :P | 15:59 | |
16:01
n0tjack joined
|
|||
Skarsnik | root@testperl6:~/piko# perl6 -e 'use HTML::Parser::XML; my $html = slurp(@*ARGS[0]); my $time = now; my $xml = HTML::Parser::XML.new().parse($html); say now - $time;' /home/skarsnik/Téléchargements/favourites.htm | 16:02 | |
37.0458354 | |||
root@testperl6:~/piko# | |||
ZoffixW | Where do I get this "zef" from? | ||
Skarsnik, what do you get with? perl6 -e 'use HTML::Parser::XML;' | 16:04 | ||
Skarsnik, time perl6 -e 'use HTML::Parser::XML; | |||
' | |||
Skarsnik | I downloaded the page x) | ||
timotimo | t.h8.lv/p6bench/2015-11-19-release_10_11.html - this looks nice - still the same results as last night, but one additional benchmark now has output for one of the two. | ||
Skarsnik | I just wanted to point out the time to parse the webpage, not the compile time ^^ | 16:05 | |
16:05
polettix joined
|
|||
timotimo | ZoffixW: rakudobrew build-zef | 16:05 | |
16:05
n0tjack left
|
|||
ZoffixW | Thanks. | 16:05 | |
flussence | timotimo: are the first two graphs measuring startup time? | ||
timotimo | yeah | 16:06 | |
flussence | oh, makes sense. looks like it's getting better too :D | ||
timotimo | i don't know how, but yeah :) | ||
16:07
pecastro left
|
|||
polettix | std: my ($x,) = 1 Z 1; say $x.WHAT; | 16:07 | |
camelia | std : OUTPUT«No such file or directory» | ||
flussence | I'm about 90% sure that's from all the paper cuts lizmat++ has been fixing | ||
polettix | p6: my ($x,) = 1 Z 1; say $x.WHAT; | ||
camelia | rakudo-moar: OUTPUT«(List)» | ||
std : OUTPUT«(timeout)cat: /home/camelia/std/snap/revision: No such file or directory#perl6 <polettix> Perl6: my ($x,) = 1 Z 1; say $x.WHAT;cat: ~/rakudo-m-inst/revision: No such file or directory» | |||
16:08
pecastro joined
|
|||
polettix | p6: my ($x,) = 1 Z 1; say "{$x.WHAT}"; | 16:08 | |
camelia | rakudo-moar: OUTPUT«Use of uninitialized value of type List in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/tmpfile:1» | ||
timotimo | i don't think anything liz has done would have improved bare startup time? | ||
Skarsnik | ZoffixW, hm real 0m42.170s user 0m31.564s (the time the script show remain the same) the web page is www.fimfiction.net/bookshelf/75144...date_added | ||
flussence | thinking about it... maybe not | ||
everything's precompiled there so making bits of the compiler faster wouldn't do much. | |||
polettix | is there anything implicitly wrong in calling $x.WHAT in the block {} inside quotes? | 16:09 | |
timotimo | polettix: that'll get you the type object, which will give you that warning when you try to stringify it | ||
polettix: but it also tells you ".^name, .perl, .gist or .say" would work | |||
polettix | timotimo: then I can’t get the difference wrt say $x.WHAT | ||
flussence | polettix: .^name seems like what you really wanted there | 16:10 | |
timotimo | polettix: say $x.WHAT directly calls .gist on $x.WHAT. when you put it into a string, that uses the ~ operator to interpolate the value into the string | ||
dalek | kudo/nom: 09acf19 | coke++ | docs/release_guide.pod: float an alternate tag/name for Christmas. See en.wikipedia.org/wiki/Koliada |
||
16:11
domidumont left
|
|||
[Coke] | The doc answer to "are we slow" should be that rakudo's architecture offers many chances for optimization, and we are pursuing them. | 16:11 | |
polettix | timotimo: so there’s something “more” to putting stuff in the args list of say as opposed to using interpolated blocks | 16:12 | |
thanks | |||
timotimo | polettix: no, not really | ||
polettix: the difference is really just "say $x.WHAT.gist" vs 'say "hello! " ~ $x.WHAT ~ " is my friend!"' | |||
well, in the second example it should read $x.WHAT.Str for clarity | |||
and the difference between .Str (which is what ~ does for you) and .gist (which is what say does for you) is what you experience | 16:13 | ||
16:13
modcure joined
|
|||
timotimo | to be really precise, the second one should read: | 16:13 | |
polettix | timotimo: ok, so not “more”, but “different” (.gist instead of .Str) | ||
timotimo | say ("hello! " ~ $x.WHAT ~ " is my friend!").gist' | ||
yeah | |||
polettix | thanks | 16:14 | |
ZoffixW | timotimo, hm. How do I make zef install stuff? zef install HTML::Parser::XML says it got installed but trying perl6 -MHTML::Parser::XML -e1 tells me it can't find it | ||
timotimo | at the time say gets to call .gist on its argument, the $x.WHAT has already had .Str called on it by the ~ operator | ||
polettix | and I have to apologize with you all, I entered here without even saying “hello”, which was very rude of me :) | ||
timotimo | haha, don't worry :) | ||
that's better than coming in, saying hello, waiting for a minute, and leaving again :D | |||
polettix | (but my “discover” was eating too much brain cycles) | ||
jnthn | .tell nine Would be good to check/test how the updated repo stuff handles rt.perl.org/Ticket/Display.html?id=126688 - hopefully it catches the error and reports it...but good to check :) | 16:17 | |
yoleaux | jnthn: I'll pass your message to nine. | ||
[Coke] | (slow) and also pointers on how to investigate speed issues (e.g. --profile) | ||
16:17
diana_olhovik_ left
16:19
lab_ left,
lab_ joined
|
|||
Skarsnik | ZoffixW, ok, should be less trolly skarsnik-stuff.blogspot.com/b/post...;type=POST x) | 16:20 | |
16:21
loren left
|
|||
skids | jnthn++ yay!! NSAs!! And not the creepy listen-to-your-phone-calls kind!! | 16:21 | |
ZoffixW | Skarsnik, looks good :) | ||
Skarsnik | It's not finished. I wanted to know if that enought/clear explanation | 16:22 | |
16:22
n0tjack joined
|
|||
hoelzro | o/ #perl6 | 16:22 | |
ZoffixW | \o | ||
ZoffixW is tempted to spin up this baby to test out Perl 6: "Linode 98304 1920GB DISK 20 CPU Cores 20TB XFER $960/mo" | 16:23 | ||
Skarsnik | lol | 16:24 | |
ZoffixW | :) | ||
Skarsnik | I am curious, how much time it take to parse the page on your box? | ||
16:24
lab_ left
|
|||
ZoffixW | I was trying to install get zef to install HTML::Parser::XML... gave up... now installing it with panda. | 16:25 | |
timotimo | hey hoelzro | ||
we only have a docker image for rakudo star, right? not for regular compiler releases? | |||
ZoffixW | But I'm on a crappy work box ATM (hence my thought to spin up an uber linode box for half an hour or so :P | ||
16:25
rurban left
|
|||
Skarsnik | On my vm it's like 35 sec vs 0.05 sec on a C parse x) | 16:26 | |
timotimo | oof | 16:27 | |
well, comparing us to C on a complex task, that's got to doom us. we're not pypy :( | |||
El_Che | what the deal with zef and panda? just competing projects? and other take? | ||
timotimo | yeah, that's pretty much it | 16:28 | |
ZoffixW | Ooohh :( "Initial orders are pro-rated from today to the end of the month. Total: $1,325.59" | ||
No thanks :P | |||
hoelzro | o/ timotimo | ||
timotimo: correct | |||
(re: docker) | 16:29 | ||
ZoffixW | Skarsnik, my results are much more terrible than yours :) | ||
16:29
loren joined
|
|||
ZoffixW | Skarsnik, fpaste.scsys.co.uk/501712 | 16:29 | |
16:29
kjs_ joined
|
|||
flussence | ZoffixW: holy crap, that's expensive. OVH does 8 cores for 5% the price. | 16:29 | |
ZoffixW | 97 seconds >_< Versus 0.472s using Perl 5's Mojo::DOM parse | ||
Skarsnik | ZoffixW, lol | ||
ZoffixW | flussence, but 20 cores / 98GB RAM are a lot more than 8 cores :P | 16:30 | |
timotimo | ZoffixW: damn. | 16:31 | |
16:31
n0tjack left
|
|||
flussence | oh, that's a lotta RAM | 16:31 | |
TimToady | someday you'll have that in your wristwatch... | ||
timotimo | damn. now i notice i forgot to change the commandline to use 2015.11 instead of the 7e3d0b8 commit :| | ||
stmuk | [Coke]: the FAQ answer for speed already says that | ||
Skarsnik | ZoffixW, not bad for Mojo lol. with gumbo pastebin.com/zsd007dy (gumbo_parse call is the C call) | ||
16:32
brrt left,
lab_ joined
|
|||
timotimo | t.h8.lv/p6bench/2015-11-19-release_09_10_11.html - that doesn't look so happy after all | 16:33 | |
ZoffixW | looks fine to me. | 16:34 | |
timotimo | ZoffixW: well, yesterday i just looked at .10 vs .11 and there were many performance improvements to be seen | 16:35 | |
ZoffixW: now it's mostly the fact that .10 was much slower than .09 that shows | |||
ZoffixW | Ah :( | ||
timotimo | .11 still wins on a bunch of benchmarks | ||
16:36
loren left
16:37
eliasr left
16:38
raiph joined
|
|||
flussence | (ahh, looking at the price of ovh's own 20 core offerings, $960/mo doesn't sound so insane...) | 16:38 | |
Skarsnik | ZoffixW, I am curious, can you display the number of elements the tree generated by Mojo::Dom contain? I know www-mechanize-tree-builder fail to get the right DOM for this page | 16:39 | |
16:39
dbrock- joined
|
|||
dalek | c: 4f458ad | (Zoffix Znet)++ | doc/Language/faq.pod: Toss runtimes from bench codes Leave a little mystery; we won't be updating these numbers with each improvement in Rakudo (Closes #205) |
16:39 | |
16:39
n0tjack joined
|
|||
ZoffixW | flussence, exact same price as Linode. The $1,325.59 price is until end of December methinks | 16:40 | |
But they advertise it as $960/mo | |||
m: say 960/1325.59 | 16:41 | ||
camelia | rakudo-moar : OUTPUT«0.7242058» | ||
16:41
lab_ left,
loren joined
|
|||
raiph | m: my \foo = $; foo = 1; say foo; foo = 2; say foo # MadcapJake: "do you think that sigilless variables should be highlighted? I feel like, as they aren't containers" | 16:41 | |
camelia | rakudo-moar : OUTPUT«12» | ||
16:42
lab_ joined
|
|||
stmuk | ZoffixW: the "Is Perl 6 fast enough for me?" FAQ is probably a bit of a minefield but I don't think the current wording is that bad | 16:42 | |
Skarsnik | The issue with sigilles variable is knowing they are a variable and not a route call x) | ||
*routine | |||
jnthn | They're not really variables. | ||
Since you can't vary them :) | 16:43 | ||
ZoffixW | :D | ||
MadcapJake | raiph: What do you mean? | ||
oh, but i thought you coulnd't actually assign to them. | 16:44 | ||
16:44
n0tjack left
|
|||
ZoffixW | stmuk, yeah; I read it in full now and I think it's fine. And good point about removing the runtime numbers | 16:44 | |
MadcapJake | raiph: but you are assigning foo to a container, so that's a special case, right? | 16:45 | |
timotimo | perl6-bench still gives 2015.09 100 points, 2015.10 76.6 points and 2015.11 155.4 points | ||
16:45
lab_ left,
ZoffixW left,
lab_ joined
|
|||
raiph | MadcapJake: I wouldn't call it a special case | 16:46 | |
MadcapJake | why would you do that though and not do `$foo = 1`? | ||
16:47
tokuhiro_ joined,
hankache joined
|
|||
raiph | MadcapJake: afaik the two main uses are 1) for when you want a noun to be SSA or 2) when you want to skip the sigil 'cuz reasons | 16:50 | |
(SSA = single static assignment) | |||
16:51
dbrock- left
16:52
tokuhiro_ left
16:53
lab_ left
|
|||
raiph | m: my \foo =@= 1,2,3; say foo.WHAT # MadcapJake: perhaps a notable use case will be tweetable one liners | 16:53 | |
camelia | rakudo-moar : OUTPUT«(Array)» | ||
16:53
zakharyas left
|
|||
psch | huh, where did =@= come from? o.o | 16:54 | |
16:54
loren left
|
|||
gfldex | m: my $b = 1; my \a = Proxy.new(FETCH => { $b * 2}, STORE => -> $, $new { $b = $new + 1 } ); say a; a = 4; say a; a.VAR.^name.say; | 16:54 | |
camelia | rakudo-moar : OUTPUT«210Proxy» | ||
gfldex | m: my $b = 1; my $a := Proxy.new(FETCH => { $b * 2}, STORE => -> $, $new { $b = $new + 1 } ); say $a; $a = 4; say $a; $a.VAR.^name.say; | ||
camelia | rakudo-moar : OUTPUT«210Proxy» | ||
raiph | MadcapJake++ # perl6fe | ||
16:55
lab_ joined,
oceanpollen joined
|
|||
raiph | psch: = container = | 16:55 | |
16:58
lab_ left,
lab joined
17:01
grondilu left
|
|||
psch | raiph: neat, thanks | 17:02 | |
17:03
pecastro left
|
|||
zengargoyle | not sure whic will come first, more RAM than you could ever want locally, or network so fast it doesn't matter. | 17:05 | |
17:05
loren joined
|
|||
MadcapJake | raiph: Thanks! I still feel that it makes sense to just leave them unhighlighted. There's no way for Atom's grammars to detect that `foo` is a sigilless variable and not a routine so the only time it would be highlighted is on assignment. | 17:06 | |
17:07
khw joined
|
|||
MadcapJake | and in a way, leaving it unhighlighted feels mnemonically relavant seeing as the sigiled variables are all highlighted. | 17:08 | |
dalek | c: 32ab73c | (Zoffix Znet)++ | doc/Language/control.pod: Use more common language Maybe I live under a rock, but after 15 years of living in English speaking countries, I never heard of "tamale". Its appearance in a technical doc was an unwelcome distraction to a dictionary :) |
17:09 | |
c: ce45cde | (Zoffix Znet)++ | doc/Language/control.pod: Grammar fix |
|||
zengargoyle | at 100Gb/s it's a challenge to build boxes fast enough to keep up and the network becomes akin to higher-latency memory. | 17:10 | |
pink_mist | 0_o I've heard 'hot tamale' used often in english | ||
17:11
espadrine left
|
|||
stmuk | I've never heard it and I'm English | 17:11 | |
oceanpollen | you don't live in a rock, but you don't live in Texas, that's for sure. | ||
17:11
lab left,
lab_ joined
|
|||
TimToady | or California | 17:11 | |
stmuk | is it Mexician food? | ||
MadcapJake | pink_mist: yeah but it was only used as a regular `tamale` uncooked :p | ||
flussence | zengargoyle: looks like HP's decided to just make both things the same. "The Machine" looks like a really interesting project. | ||
MadcapJake | stmuk: yeah it's a fried burrito I believe | ||
oceanpollen | stmuk - it's "guy at the parking lot of walmart sells five of them for a dollar" Mexican food. | 17:12 | |
MadcapJake | stmuk: correction, fried corn husk burrito :P | ||
stmuk | I shall seek one out on my next visit to the West Coast :) | ||
17:12
g4 left
|
|||
zengargoyle | yeah, i'm sorta paraphrasing stuff i hear floating around at conferences. | 17:12 | |
MadcapJake | I'm more of a chimichanga kind of guy xD | 17:13 | |
zengargoyle had a 40Gb/s test going this week for supercomputing. | |||
17:15
hpd left
17:16
hankache left,
kmel joined,
kmel left
|
|||
flussence gets over-excited when my wifi sustains >100Mb/s... | 17:17 | ||
17:18
sufrostico left
17:19
ZoffixW joined
|
|||
ZoffixW | In the last paragraph of else/elsif section (docs.perl6.org/language/control#else%2Felsif) it says "Each block must individually say whether it wants to know what the conditional expression evaluated to." How would I get the value inside an elsif {} tho? | 17:20 | |
m: if False { } elsif True -> $a { say $a } # expecting a "False" | |||
camelia | rakudo-moar : OUTPUT«True» | ||
MadcapJake | m: if False { } elsif True { say $_ } # expecting a "False" | 17:21 | |
camelia | rakudo-moar : OUTPUT«(Any)» | ||
17:21
abaugher left
|
|||
MadcapJake | m: if False { } elsif Bool(True) { say $_ } # expecting a "False" | 17:21 | |
camelia | rakudo-moar : OUTPUT«(Any)» | ||
zengargoyle | m: if False { } elsif True { say $^a } | ||
camelia | rakudo-moar : OUTPUT«True» | ||
psch | "[...] whether it wants to know what its conditional expression evaluated to." makes it a bit clearer i guess? | 17:22 | |
zengargoyle | think you have to 'declare' a var to get the value passed | ||
block of arity-1 | |||
17:22
abaugher joined
|
|||
ZoffixW | psch, I am right now. But I also want to clarify the code example and I see it doesn't include the variant for elsif {} | 17:22 | |
17:22
kjs_ left
|
|||
ZoffixW | psch, or does this not work in elsif: | 17:23 | |
m: if False { } else -> $a { say $a } | |||
camelia | rakudo-moar : OUTPUT«False» | ||
17:23
xfix joined
|
|||
psch | ZoffixW: well, the elsif has its own condition to evaluate | 17:23 | |
zengargoyle | yeah, elsif will always get a True or it wouldn't be there | ||
psch | ZoffixW: else deviates from the if behavior, elsif doesn't | ||
(because elsif could be else { if ... { } }) | 17:24 | ||
zengargoyle | psch: i believe that's the way it actually is. | ||
down in QAST land | |||
ZoffixW | zengargoyle, why would it always get a True? It can get whatever the previous if/elsif used | 17:25 | |
m: if 0 { } else -> $a { say $a } | |||
camelia | rakudo-moar : OUTPUT«0» | ||
psch | m: state $foo; if $foo++ { } elsif $foo++ -> $bar { say $bar } else { say "vOv" } | ||
camelia | rakudo-moar : OUTPUT«1» | ||
ZoffixW | m: if Nil { } else -> $a { say $a } | ||
camelia | rakudo-moar : OUTPUT«Nil» | ||
timotimo | ZoffixW: why would you expect False for an "elsif True -> $a"? | ||
zengargoyle | but the body won't be run unless the value was True | ||
psch | m: state $foo; if $foo++ { } elsif $foo++ > 2 -> $bar { say $bar } else { say "vOv" } | ||
camelia | rakudo-moar : OUTPUT«vOv» | ||
psch | zengargoyle: might well be, yeah | ||
m: state $foo; if $foo++ { } elsif $foo++ > 2 -> $bar { say $bar } else -> $else { say $else } # bit more info | 17:26 | ||
camelia | rakudo-moar : OUTPUT«False» | ||
ZoffixW | timotimo, that was merely my attempt to transpose else -> $a { say $a } to an elsif | ||
17:26
pippo left
|
|||
zengargoyle | ... elsif foo() -> $b { never here if $b ~~ False } | 17:26 | |
psch | m: state $foo; if $foo++ { } elsif $foo++ does role { method Bool { False } } -> $bar { say $bar } else -> $else { say $else } | 17:27 | |
camelia | rakudo-moar : OUTPUT«1» | ||
psch | m: state $foo; if $foo++ { } elsif $foo++ does role { method Bool { False } } -> $bar { say $bar } else -> $else { say so $else } | ||
camelia | rakudo-moar : OUTPUT«False» | ||
ZoffixW | I wonder if that bit even needs to be in the docs. | 17:28 | |
psch | ZoffixW: well, i didn't know about it, fwiw :) | ||
ZoffixW | psch, but it seems more of an artifact than something you'd actually use. | ||
17:28
loren left
|
|||
psch | i don't know... | 17:29 | |
ZoffixW | Since you'd only ever get falsey stuff | ||
Can Objects be false in P6? | |||
psch | yes | ||
zengargoyle | bingo | ||
ZoffixW | k, then I'll reword it | ||
psch | note the last two examples :) | ||
ZoffixW | oh lol :P | ||
psch | we get a 1 but False | ||
also, False *is* an Object in the first place :P | 17:30 | ||
dalek | c: d5e1442 | (Zoffix Znet)++ | doc/Language/control.pod: Reword for clarity |
17:31 | |
ZoffixW | Oh, hah. Right! :) | ||
17:31
Upasaka joined
|
|||
dalek | c: a44ce9b | (Zoffix Znet)++ | doc/Language/control.pod: Grammar fix |
17:32 | |
17:32
pecastro joined,
Peter_R joined
17:35
ZoffixW left
17:36
diana_olhovik_ joined
|
|||
psch | r: say $*PERL.compiler | 17:36 | |
camelia | rakudo-moar: OUTPUT«rakudo (2015.11.23.g.9.acf.19)» | ||
..rakudo-jvm 09acf1: OUTPUT«rakudo (2015.10.134.g.273.e.895)» | |||
17:37
raiph left,
pecastro left
|
|||
psch | m: say "a b".split(/\s/, :v) | 17:51 | |
camelia | rakudo-moar : OUTPUT«(a 「 」 b)» | ||
psch | m: class A { has int $.x }; my A $a .= new; say nqp::getattr(nqp::decont($a), A, '$!x') # a bit of that underneath | ||
camelia | rakudo-moar : OUTPUT«This representation (P6int) cannot unbox to other types in block <unit> at /tmp/FgIDkYvrfy:1» | ||
psch | i don't get why getattr for an int attr works in Str.split | 17:52 | |
i mean, it really shouldn't, right? | |||
for reference, src/core/Str.pm:794 | |||
Skarsnik | blogger is not the best for code formatting, but well skarsnik-stuff.blogspot.fr/2015/11/...nt-to.html | 17:53 | |
17:56
diana_olhovik_ left
|
|||
psch | m: class A { has int $.x }; my A $a .= new; my int $x = nqp::getattr(nqp::decont($a), A, '$!x'); say $x # hrm... | 17:56 | |
camelia | rakudo-moar : OUTPUT«0» | ||
17:57
jandeman joined
|
|||
psch | well, i guess that means i'll have to hack getattr to check the contspec, or moar has to complain as well... | 17:57 | |
17:57
jandeman left
17:58
Upasaka left
18:00
telex left
18:01
n0tjack joined
18:02
rgrau joined,
telex joined
18:05
n0tjack left
18:06
Upasaka joined
18:14
n0tjack joined
18:15
raiph joined
18:19
n0tjack left
18:24
kjs_ joined
18:25
Upasaka left
|
|||
[Coke] | btw, anyone who has chrome, I recommend setting up an "rt" search helper. I can do "new tab, rt<tab>123456" and go right to the ticket. | 18:26 | |
18:28
Upasaka joined
|
|||
nine | Actually that's a good idea in any browser | 18:29 | |
yoleaux | 16:17Z <jnthn> nine: Would be good to check/test how the updated repo stuff handles rt.perl.org/Ticket/Display.html?id=126688 - hopefully it catches the error and reports it...but good to check :) | ||
18:33
n0tjack joined,
domidumont joined,
Upasaka left
|
|||
AlexDaniel | m: sub foo { FIRST { say 'hi' } }; foo; foo; | 18:36 | |
camelia | ( no output ) | ||
AlexDaniel | what's the right way to do it? | ||
I mean, call something during the first execution of the sub | 18:37 | ||
ugexe | once { } ? | ||
psch | FIRST only works in iterations | 18:38 | |
i'd suggest unles $++ { } | |||
+s | |||
pink_mist | m: sub foo { $ = say 'hi'; }; foo; foo; # why doesn't this work? | ||
camelia | rakudo-moar : OUTPUT«hihi» | ||
18:38
Upasaka joined
|
|||
psch | pink_mist: what doesn't work? | 18:39 | |
pink_mist | I thought $ was a state variable so it should only get assigned to the first time foo is run | ||
so the second time foo is run, 'say hi' shouldn't be executed | |||
psch | state variables aren't about assigning only once, state variables are about keeping values across reexecution of the same block | ||
AlexDaniel | ugexe: nice! | 18:40 | |
m: for 1..5 { once { say 'ok' } } | |||
camelia | rakudo-moar : OUTPUT«ok» | ||
AlexDaniel | m: for 1..5 { FIRST { say 'ok' } } | ||
camelia | rakudo-moar : OUTPUT«ok» | ||
psch | m: sub f { once { say "hi" } }; foo; foo | ||
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/RrE6DVgZXOUndeclared routine: foo used at line 1» | ||
AlexDaniel | what's the difference here? | ||
psch | m: sub f { once { say "hi" } }; f; f | ||
camelia | rakudo-moar : OUTPUT«hi» | ||
psch | ^^^ that's the difference | ||
18:40
n0tjack left
|
|||
AlexDaniel | psch: one works in subs and another one doesn't? | 18:41 | |
psch | AlexDaniel: exactly, FIRST fires at loop initialization time | ||
AlexDaniel: once { ... } is apparently a concise "... unless $++" | |||
AlexDaniel | psch: yeah, great. Why not just have “once” then? :) | ||
ugexe | if you go back into a subroutine with a loop using FIRST, you would expect it to fire again | 18:42 | |
psch | m: sub f($max) { for ^$max { once { say "once" }; FIRST { say "FIRST" } }; f 1; f 1 | ||
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/RjIPxqCufBMissing block (taken by some undeclared routine?)at /tmp/RjIPxqCufB:1------> 3ce" }; FIRST { say "FIRST" } }; f 1; f 17⏏5<EOL> expecting any of: postfix statement en…» | ||
psch | m: sub f($max) { for ^$max { once { say "once" }; FIRST { say "FIRST" } } }; f 1; f 1 | ||
camelia | rakudo-moar : OUTPUT«FIRSTonceFIRSTonce» | ||
psch | hrm | ||
with that i'd expect the once only, well... | 18:43 | ||
AlexDaniel: that's what i think the difference should be, at least | |||
18:43
lab_ left
|
|||
mspo | is there a reason for moar to not be static compiled by default? | 18:44 | |
psch | AlexDaniel: oh, but another difference can be seen in the order of the output | 18:45 | |
AlexDaniel | ugexe: right, it kinda makes sense | ||
psch | AlexDaniel: as in, the FIRST came before once in both cases | ||
18:45
n0tjack joined
|
|||
AlexDaniel | m: sub f($max) { for ^$max { FIRST { say "FIRST" }; once { say "once" }; } }; f 1; f 1 | 18:45 | |
camelia | rakudo-moar : OUTPUT«FIRSTonceFIRSTonce» | ||
AlexDaniel | yeah right | 18:46 | |
ugexe | curious why `once` shows up twice as well... | ||
b2gills | m: val '' | ||
camelia | rakudo-moar : OUTPUT«Cannot invoke this object in block <unit> at /tmp/6NhUhlFytT:1» | ||
18:47
cygx joined
|
|||
AlexDaniel | interestingly you can have multiple “once” and “FIRST” | 18:47 | |
cygx | mspo: someone might want to embed it | ||
also, I suspect we want to generate proper executables for perl6 and nqp eventually instead of shellscripts | 18:48 | ||
AlexDaniel | ugexe: well, if you think that it is a bug then I can report it | ||
18:48
tokuhiro_ joined
|
|||
cygx | jnthn: github.com/rakudo-p5/v5/blob/maste...5/Terms.pm breaks pre-compilation | 18:49 | |
MadcapJake | m: sub f($max) { for ^$max { FIRST { say "FIRST" }; once { say "once" }; } }; f 2; f 2; | ||
camelia | rakudo-moar : OUTPUT«FIRSTonceFIRSTonce» | ||
nine | .tell jnthn RT 126688 is actually a bit of a challenge since the process doing the precompilation doesn't know which modules the other process already loaded. I'll have to communicate that between processes. | ||
yoleaux | nine: I'll pass your message to jnthn. | ||
cygx | you can pre-compile that file just fine, but anything that uses it then fails to precompile with Serialization Error: missing static code ref for closure 'MAIN' | ||
18:51
n0tjack left
|
|||
cygx | .tell jnthn | 18:51 | |
yoleaux | cygx: I don't know what you want me to say to jnthn. | ||
18:51
hankache joined
|
|||
cygx | .tell jnthn github.com/rakudo-p5/v5/blob/maste...5/Terms.pm makes pre-compiltion of modules that use it die with Serialization Error: missing static code ref for closure 'MAIN' | 18:51 | |
yoleaux | cygx: I'll pass your message to jnthn. | ||
AlexDaniel | ugexe: as I understand it, “once” should do exactly what it says. From S04 “run only once, suppressing additional evaluations” | 18:52 | |
ugexe | yea im looking around to see if i misunderstand something, because that seems wrong | ||
psch | m: my $var; sub f($x) { once { $var += $x } }; f(2); f(3); say $var | ||
camelia | rakudo-moar : OUTPUT«2» | ||
psch | m: my $var; sub f($x) { once { $var += $x; say "adding $x to $var"; } }; f(2); f(3); say $var | 18:53 | |
camelia | rakudo-moar : OUTPUT«adding 2 to 22» | ||
18:53
tokuhiro_ left
|
|||
AlexDaniel | ugexe: otherwise it is «run “once” except for a couple of edge cases when it will evaluate more than once» | 18:53 | |
psch | m: my $var; sub f($x) { once { say "adding $x to $var"; } }; f(2); f(3); say $var | ||
camelia | rakudo-moar : OUTPUT«Use of uninitialized value $var of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block at /tmp/bVVnLgceZc:1adding 2 to (Any)» | ||
psch | m: my $var = 0; sub f($x) { once { say "adding $x to $var"; } }; f(2); f(3); say $var | ||
camelia | rakudo-moar : OUTPUT«adding 2 to 00» | ||
ugexe | m: my $x; sub f($max) { for ^$max { once { $x++; }; } }; f 2; f 2; say $x; | ||
camelia | rakudo-moar : OUTPUT«2» | ||
psch | m: my $var = 0; sub f($x) { once { say "adding $x to $var"; }; FIRST { say "so?" } }; f(2); f(3); say $var | ||
camelia | rakudo-moar : OUTPUT«adding 2 to 00» | ||
cygx | bye again o/ | ||
psch | hmm, loop opts breaking it maybe? | 18:54 | |
18:54
cygx left
18:55
Upasaka left
|
|||
psch | m: sub f { { once { say "hi" } } }; f; f; | 18:57 | |
camelia | rakudo-moar : OUTPUT«hihi» | ||
psch | it only binds one scope outwards | ||
m: for ^10 { if $_ % 2 { FIRST { say $_ } } else { FIRST { say $_ } } }; # same here though | |||
camelia | ( no output ) | ||
psch | m: L: for ^10 { if $_ % 2 { FIRST L { say $_ } } else { FIRST L { say $_ } } }; # ...i wonder | 18:58 | |
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/pUcbJY7an9Unexpected block in infix position (missing statement control word before the expression?)at /tmp/pUcbJY7an9:1------> 3L: for ^10 { if $_ % 2 { FIRST L7⏏5 { say $_ } } else { FIRST L { say $_ …» | ||
psch | aww :P | ||
18:59
Upasaka joined
|
|||
hankache | hello perl 6 | 18:59 | |
psch | in any case, yes, that seems not once-y enough | ||
18:59
kjs_ left
|
|||
AlexDaniel | psch: okay. I'll submit a bug report then | 19:00 | |
19:00
pmurias joined
|
|||
MadcapJake | m: sub g($val) { if $val > 10 { once { return $val } }; return 0; }; g 100; g 5; g 50; | 19:01 | |
camelia | ( no output ) | ||
MadcapJake | m: sub g($val) { if $val > 10 { once { return $val } }; return 0; }; say g(100); say g(5); say g(50); | ||
camelia | rakudo-moar : OUTPUT«100050» | ||
pmurias | the FAQ answer for the "Is Perl 6 fast enough for me?" with the Moose "benchmark" seems a bit lame | 19:02 | |
yoleaux | 04:14Z <[Coke]> pmurias: please feel free to try to add those patches again now that the release is done; sorry I had to back them out, hopefully we can get the issue fixed easily. Thanks. | ||
pmurias | [Coke]: you reverted the tty jvm patch or something more? | ||
hankache | MadcapJake thanks for Perl 6 FE | 19:03 | |
19:04
Upasaka_ joined
|
|||
[Coke] | pmurias: the jvm patch in nqp broke the nqp build. that in turn broke the rakudo build. I backed both of them out so we could get the release out. | 19:04 | |
so you can probably revert my reversion on both of them, adding in whatever was missing. | |||
MadcapJake | hankache: no problem! hope you like it! | ||
hankache | MadcapJake i definitely like it. Great job. Looking forward to more features | 19:05 | |
19:06
Upasaka left
|
|||
ugexe | if that once {} stuff is a bug, i wonder if fixing it will speed this Str.Match? github.com/rakudo/rakudo/blob/nom/...tr.pm#L423 | 19:06 | |
19:07
rurban joined
|
|||
MadcapJake | hankache: on there way! I've never hooked into the linter package before but it's well documented. atom-runner and atom-build will be pretty simple to setup. The autocomplete could be more of a challenge but it'll really be great once it's working! | 19:07 | |
ugexe | once @matches := $matches.list, where @matches is 3 scopes outside | 19:08 | |
19:08
johan joined,
pecastro joined
|
|||
pmurias | [Coke]: I can't redo the rakudo commit as I don't have a commit biy | 19:09 | |
* bit | |||
[Coke]: I recommited the changes to nqp-jvm as soon as I noticed the file was missing | |||
nine | pmurias: you mean revert the revert? | ||
timotimo | psch, AlexDaniel, ugexe, "once" gives you the exact same semantics as state variables. when the block it's in gets cloned, they get reset. | ||
AlexDaniel | timotimo: in other words it is fine that “once” can run twice? | 19:10 | |
timotimo | i'd say so, yeah | 19:11 | |
hankache | MadcapJake Good luck mate | ||
psch | ah | ||
psch ponders adding a test for that semantic | |||
19:12
kjs_ joined
|
|||
psch | 'cause the name makes it seem more literal | 19:12 | |
AlexDaniel | yeah | ||
timotimo | AFK | ||
pmurias | nine: yes | ||
psch | right, S04 mentions it the other way around, but yes | 19:13 | |
19:13
n0tjack joined
|
|||
psch | 'But state automatically applies "once" semantics to any initializer,[...]' | 19:13 | |
and a bit above too | |||
pink_mist | psch: that sounds like my earlier example should have worked 0_o | 19:14 | |
dalek | kudo/nom: a030922 | (Stefan Seifert)++ | src/core/IO/Handle.pm: Revert "Revert "Merge pull request #592 from pmurias/tty-checking"" This reverts commit d9dde76fc1be441fb0ad7394bfd28d6e5c2dab7e. Release is out, now let's fix this. |
19:15 | |
nine | pmurias: can you make a pull request with the missing file? | 19:16 | |
19:16
zengargoylew joined
|
|||
pmurias | nine: no, it's already commited to nqp | 19:16 | |
nine | pmurias: so we're done? | ||
pmurias | I think nqp needs to be bumped | 19:17 | |
psch | pink_mist: ...i'm not sure. i think specs is worded badly, fwiw vOv | ||
19:17
pecastro left
|
|||
psch | pink_mist: i don't think 'sub f { $ = say "hi" }' *can* execute the say only once, because of side-effects | 19:19 | |
...that doesn't quite express what i mean :/ | 19:20 | ||
19:20
n0tjack left
|
|||
psch | these language design things are hard /o\ | 19:21 | |
nine | Where do I get the NQP revision from? | ||
psch | nine: either nqp-$be --version or git describe | ||
nine: the former obviously only if you are on master/HEAD and built that :) | |||
(which, incidentally, i did wrong at least once so i only use git describe now :P ) | 19:22 | ||
MadcapJake | m: my $i = 0; sub g($v) { once { $i += $v } }; say g(1); say g(2); | ||
camelia | rakudo-moar : OUTPUT«11» | ||
MadcapJake | m: my $i = 0; sub g($v) { once { $i += $v } return $i }; say g(1); say g(2); | 19:24 | |
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/1x3XvKCUWNStrange text after block (missing semicolon or comma?)at /tmp/1x3XvKCUWN:1------> 3my $i = 0; sub g($v) { once { $i += $v }7⏏5 return $i }; say g(1); say g(2); expecting any of: …» | ||
MadcapJake | m: my $i = 0; sub g($v) { once { $i += $v }; return $i }; say g(1); say g(2); | ||
camelia | rakudo-moar : OUTPUT«11» | ||
19:24
kjs_ left
19:26
ZoffixW joined,
Begi11111 joined
|
|||
dalek | kudo/nom: 7c70c69 | (Stefan Seifert)++ | tools/build/NQP_REVISION: Bump NQP revision for JVM build fix |
19:26 | |
19:26
lab_ joined
|
|||
dalek | rl6-roast-data: 3009add | coke++ | / (9 files): today (automated commit) |
19:26 | |
ZoffixW | MadcapJake, if you care; stuff in module names seems to be highlighted sometimes: i.imgur.com/Rn2VZoH.png | 19:28 | |
[Coke] | pmurias++, psch++, nine++ | ||
MadcapJake | m: my @l = 0,0,0; sub g($v) { once { for @l { $_ += $v } }; return @l }; say g(1); say g(2); | 19:29 | |
camelia | rakudo-moar : OUTPUT«[1 1 1][1 1 1]» | ||
MadcapJake | Ok, I can fix that. | ||
ZoffixW | What's $*META-FILE? It's the only time I see it mentioned in that code github.com/jonathanstowe/Test-META...ETA.pm#L83 and I don't see it in the Dynamic Vars section: docs.perl6.org/language/variables#D..._variables | 19:30 | |
hm... there's $*DIST-DIR and $*TEST-DIR too | |||
19:31
Upasaka_ left,
hankache left
|
|||
ZoffixW | m: $*META-FILE // 42; say $*META-FILE | 19:32 | |
camelia | rakudo-moar : OUTPUT«Dynamic variable $*META-FILE not found in block <unit> at /tmp/nNn5mSuLwz:1Actually thrown at: in block <unit> at /tmp/nNn5mSuLwz:1» | ||
ZoffixW | m: sub zmeta-file { $*META-FILE // 42 }; say zmeta-file | ||
camelia | rakudo-moar : OUTPUT«42» | ||
ZoffixW | What sorcery is this? | ||
zengargoylew | m: sub f { $ ||= say "once" }; f; f; | ||
camelia | rakudo-moar : OUTPUT«once» | ||
MadcapJake | ZoffixW: patch released | ||
19:33
kjs_ joined
|
|||
ZoffixW | MadcapJake++ # works. Thanks | 19:33 | |
zengargoylew | hrm, thought it would have to be: for @l <-> $_ { $_ += $v } | 19:35 | |
ZoffixW | Ah, OK. There's a whole section under the * twigil: docs.perl6.org/language/variables#The_*_Twigil | 19:36 | |
zengargoylew | don't you still have to make $_ rw if you want it to be rw? | ||
dalek | c: 22ecbc8 | (Zoffix Znet)++ | doc/Language/variables.pod: Remove duplicate word |
||
ugexe | m: sub f { $_ ||= say "once" }; f; f; | 19:39 | |
camelia | rakudo-moar : OUTPUT«onceonce» | ||
19:39
znpy left
19:40
Upasaka joined
|
|||
zengargoylew | oops, guess not: If you rely on C<$_> as the implicit parameter to a block, then C<$_> is considered read/write by default. | 19:42 | |
AlexDaniel | how can I write Num literals? One way is to append “e0” to the end, but is there anything better? | ||
jnthn | psch: Sounds like the code should really use nqp::getattr_i | ||
yoleaux | 18:49Z <nine> jnthn: RT 126688 is actually a bit of a challenge since the process doing the precompilation doesn't know which modules the other process already loaded. I'll have to communicate that between processes. | ||
18:51Z <cygx> jnthn: github.com/rakudo-p5/v5/blob/maste...5/Terms.pm makes pre-compiltion of modules that use it die with Serialization Error: missing static code ref for closure 'MAIN' | |||
zengargoylew | m: say 1.Num.WHAT | ||
camelia | rakudo-moar : OUTPUT«(Num)» | ||
AlexDaniel | m: say 0.25.Num.WHAT | 19:44 | |
camelia | rakudo-moar : OUTPUT«(Num)» | ||
AlexDaniel | okay! | ||
jnthn | psch: I'd not worry about trying to replicate the Moar behavior in JVM. | ||
psch: Just fix the usage. | 19:45 | ||
zengargoylew | i think that's the proper way... though i often wish they would auto coerce sometimes. | ||
jnthn | nine: Darn, you're right. :-) | 19:47 | |
nine: Dunno how you were communicating what we compiled back though. | |||
nine | jnthn: right now? STDOUT ;) Will write that information directly to the appropriate file though. | 19:48 | |
jnthn | .tell cygx I don't actually see a MAIN in that module; any idea which one it's referring to? The issue may be something to do with the code in the mainline assigning to variables, which it then exports. But the error isn't what I'd expect... | 19:49 | |
yoleaux | jnthn: I'll pass your message to cygx. | ||
nine | jnthn: oh and I now write a .deps and a .rev-deps file for each precomp file. That way all lookups are O(1) and it's also the cheapest way to store the information. | ||
jnthn | Neat! | ||
nine | jnthn: and I can write just one precomp id per line which makes it ridiculously simple to handle :) | ||
jnthn | :D | ||
nine++ # simple designs | |||
nine | And everything is managed by PrecompilationRepository. | 19:50 | |
19:51
diakopter___ joined,
znpy joined
19:53
diana_olhovik_ joined
19:55
ZoffixW left
19:57
Upasaka left,
lab joined
19:58
lab_ left
|
|||
ugexe | nine++ very cool | 19:58 | |
19:58
espadrine joined
20:00
lab left
|
|||
dalek | kudo/curli: 4c4d9d7 | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm: Use a dependencies file per precomp file and fix thinko Using a file per module scales O(1) since we can look up the information directly by name. This commit also fixes a thinko in transitive dependencies checking. Of course we have to ensure that no dependency is newer than the precompilation file we're about to load. The precomp file must be newer than the source. No dependency may be newer than the precomp file. |
20:00 | |
20:00
hankache joined,
lab joined
|
|||
dalek | kudo/curli: 795dff2 | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm: Avoid shell() at all cost! Especially, when it's quite cheap and makes the code more robust. |
20:01 | |
kudo/curli: 83b9a24 | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm: Write a reverse dependencies file for every precomp file. This way we know in O(1) which modules have to be recompiled when we update a precomped module. |
20:02 | ||
ugexe | nine: the first argument to run() is still 2 arguments | ||
s/$lle"/",$lle/ | 20:03 | ||
nine | ugexe: oh, thanks for the hint! | ||
psch | jnthn: well, yes, the code should use getattr_i, but i distinctly remember this not being the first time that this exact bug appears | ||
hankache | if you were to publish a document under which license would you do it? | ||
psch | jnthn: because when developing against moar (and assigning to a native container) getattr works just fine, but then someone tries to build r-j and stuff is broken | ||
jnthn: so in the interest of ticket-minimization i'd like consistency :S | 20:04 | ||
20:04
ZoffixW joined
|
|||
ZoffixW | Was $foo:defined a thing? What's the new variant? $foo.defined? | 20:04 | |
20:04
bpmedley left
|
|||
pink_mist | :D | 20:04 | |
ZoffixW is fixing some code in ecosystem | |||
pink_mist | (maybe?) | 20:05 | |
ZoffixW | m: my $foo; say $foo:D ?? "Y" !! "N"; $foo = 42; say $foo:D ?? "Y" !! "N"; | ||
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/BsVP3b83UQVariable '$foo:D' is not declaredat /tmp/BsVP3b83UQ:1------> 3my $foo; say 7⏏5$foo:D ?? "Y" !! "N"; $foo = 42; say $fo» | ||
ZoffixW | pink_mist, I believe that's just a type "hint" that says it must be defined | ||
pink_mist | right, you're correct :( | ||
ZoffixW | m: sub foo (Int $x:D) {say $x;}; foo(42); foo(); | ||
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/iLgvmNXQfqInvalid typename 'D' in parameter declaration.at /tmp/iLgvmNXQfq:1------> 3sub foo (Int $x:D7⏏5) {say $x;}; foo(42); foo();» | ||
jnthn | :D does on types, not variables | 20:06 | |
ZoffixW | lol. it looks like we're talking in smileys :P | ||
20:07
Upasaka joined
|
|||
[Coke] | m: .:D | 20:07 | |
camelia | rakudo-moar : OUTPUT«Default constructor for 'Any' only takes named arguments in block <unit> at /tmp/xFCYX95F33:1» | ||
dalek | kudo/curli: 772b73e | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm: Fix precompilation when running with --ll-exception Thanks to ugexe++ for pointing this out! |
||
ZoffixW | tony-o_, sent you a PR. See if you can merge it. I'm using that module for a new test module that will be used by the modules.perl6.org build script soon: github.com/tony-o/perl6-pluggable/pull/1 | 20:10 | |
(and currently that error makes it fail) | |||
20:10
bpmedley joined
|
|||
jnthn | psch: Understand...I fear it's one of those places where the thing Moar does is easy in C, but a Java equivalent may not be | 20:11 | |
psch | jnthn: which makes me think that maybe moar shouldn't apply its branch of magic there. similarly to 9bc5a0a, which again is moar magically decont'ing where jvm needs it explicitly | 20:12 | |
anyway, it's not really bad, of course, i'm probably just a bit annoyed right now because i had to ride to the store twice 'cause i forgot my wallet | 20:13 | ||
jnthn | Why doesn't that code just use self? | 20:14 | |
Then the problem wouldn't happen | |||
(Instead of $self) | |||
I guess it captures it for a reason, but it doesn't need to use it there. | 20:15 | ||
The decont is probably nothing to do with Moar at the VM level, but rather because we compile signatures on Moar and it elides the container in that csae | |||
*case | |||
(Getting that working on JVM will help performance a load too, I suspect...) | 20:17 | ||
Skarsnik | Does someone can test rt.perl.org/Ticket/Display.html?id=126645 on win32 (or os X) or jvm? x) | 20:19 | |
20:22
ZoffixW left
|
|||
leont | jnthn: have you tried my harness branch with TEST_JOBS=2? That should show the async issue I mentioned before. Possibly you can make more out of it than I can. | 20:22 | |
20:22
hankache left,
darutoko left
|
|||
jnthn | leont: Not yet; I've been tied up with a bunch of other non-concurrency things, and figured I'd look at it along with the various concurrency RTs on the xams list (since it may end up being one of those issues anyway) | 20:25 | |
leont: Planning to work on those next week... This week largely went on getting the shaped array stuff sorted. | |||
nine | jnthn: I think...we should actually use the precomp ids for storing the source files, too. For the user it doesn't matter if it's a number or a sha1. And with using the sha1, I can find the corresponding source file to recompile in O(1). Precomp ids have to be sufficiently unique anyway. | 20:27 | |
leont | If I find the tuits I may try to minimize the problem, but I have no idea how easy that's going to be (given concurrency) | ||
20:28
CQ joined
|
|||
arnsholt | So, here's a puzzle: Given a Rakudo compiler object, would it be possible to figure out if a string is a *partial* Perl 6 program? | 20:28 | |
20:28
molaf left
|
|||
arnsholt | That is, given a string that doesn't parse, is it possible to distinguish those that could parse if you add more stuff at the end, and those that couldn't? | 20:29 | |
pink_mist | surely any string could be a partial perl6 program; any string can be a string in a perl6 program after all 0_o | ||
CQ | just randomly generate stuff before and after, and if it ever parses, it's perl6 : ) | 20:30 | |
jnthn | nine: I could go with that... | ||
nine | + the repo doesn't have to keep the count of the source files anymore. Less state! | ||
jnthn | arnsholt: Well, you can see where the highwater mark is and if it's at the end of the string, you know it got there, and was looking for more stuff | ||
arnsholt | I guess I could look at the high water mark of a parse failure and see if it reached all the way to the end of the string | ||
jnthn | hah | 20:31 | |
:) | |||
arnsholt | I'm glad you agree =D | ||
jnthn | leont: Yes...that's concurrency :) | ||
Skarsnik | I just wondering, is there a nice way to say: A; { some code } B; and I want to wait if A -> B take less than a 1 sec? An usage is for example $ua.get("some html"); do stuff with it; wait before doing anohter request | 20:36 | |
moritz | Skarsnik: sleep()? | 20:38 | |
20:38
CQ left
|
|||
pink_mist | Skarsnik: you could fire off A into another thread and sleep for 1 sec in the current thread and do B after | 20:38 | |
ugexe | depends, if he is using sockets that could get messy | 20:39 | |
Skarsnik | I mean I could write my $time = now; {get web, parse}; sleep 1 - now - $time if (now - $time < 1); | 20:41 | |
it to ensure I wait enought between 2 http request | 20:42 | ||
pink_mist | or you could just sleep 1 anyway :P | ||
ugexe | throttling | ||
pink_mist | sometimes throttling is /between/ requests, not /between start times/ of requests =) | 20:43 | |
zengargoylew | sleep min 1, (1-now-$time); -ish | ||
min 0, ... | |||
tony-o_ | and he can't read from that socket if he goes to another thread | ||
zengargoylew | max 0, (1-now-$time) | 20:44 | |
dalek | kudo/nom: 0b6328c | peschwa++ | src/core/Str.pm: Fix RT #126679. The JVM backend needs type-specific getattr invocations for native Attributes. |
20:45 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=126679 | ||
zengargoylew | sleep max 0, 1-(now-$time); | 20:49 | |
20:50
tokuhiro_ joined
|
|||
dalek | c: 280f7e3 | (Zoffix Znet)++ | doc/Language/objects.pod: Grammar fix |
20:53 | |
20:53
jpoehls_ left
|
|||
dalek | c: b3fd082 | (Zoffix Znet)++ | doc/Language/objects.pod: Grammar fix |
20:54 | |
kudo/curli: 2046957 | (Stefan Seifert)++ | src/core/CompUnit/PrecompilationRepository.pm: Fixup: superfluous space in front of --ll-exception |
|||
pmurias | jnthn: if a closure is taken on MoarVM it should get the same code_object as the code ref it's built from? | 20:55 | |
20:55
tokuhiro_ left
|
|||
pmurias is confused why his nqp-js copy of the MoarVM closure model is sometimes breaking | 20:55 | ||
jnthn | pmurias: code object as in the HLL code object? | 20:56 | |
They should point to each other, though, if that's what you mean | |||
pmurias | jnthn: yes | 20:57 | |
point to each other? | |||
dalek | c: d10e4d6 | (Zoffix Znet)++ | doc/Language/objects.pod: Reword |
||
jnthn | Sure | 20:58 | |
code ref points to HLL code object | |||
HLL code object points to same code ref | |||
Though the latter isn't the VM's job to make happen. | 20:59 | ||
pmurias | how is the HLL code object updated? | ||
jnthn | Just by nqp::bindattr | 21:00 | |
In Rakudo's code objects to a $!do | |||
Think similar in NQP | |||
dalek | c: c82e355 | (Zoffix Znet)++ | doc/Language/objects.pod: Reword for clarity When reading code examples in detail, it is not immediately obvious the sentence refers to the example a paragraph earlier and "in the method describe" looks like a typo |
21:04 | |
pmurias | jnthn: I'm looking at src/vm/moar/QAST/QASTCompilerMAST.nqp:833 and the $!do doesn't seem to be updated | ||
21:05
domidumont left
|
|||
jnthn | It doesn't happen there | 21:06 | |
It's done by HLL code | |||
See src/core/NQPRoutine.nqp | |||
21:07
gfldex left
|
|||
pmurias | jnthn: you mean in the clone method? | 21:08 | |
jnthn | pmurias: Yes | 21:09 | |
pmurias | jnthn: and what call the clone method? it seems like only the moarvm takeclosure op is called | 21:11 | |
* calls | |||
21:13
grondilu joined
|
|||
jnthn | pmurias: In Rakudo we code-gen calls to .clone. I thought the same in NQP... In NQP we only use code objects in some cases, though, iirc. | 21:13 | |
pmurias: By code-gen I mean that Actions spits out such code | 21:14 | ||
Skarsnik | can something write a small code that create like a buck of nested structure of a class A {has A $.parent; has A @.children} like with 50 depth (I am too dumb to write this or what). I think the GC don't know to release the memory when you can copy something like that | ||
jdv79 | so parameterized roles and require not mix well? | 21:15 | |
21:15
zengargoylew left
|
|||
jdv79 | *do | 21:15 | |
dalek | kudo/curli: 11116b6 | (Stefan Seifert)++ | src/core/CompUnit/Repository/Installation.pm: Recompile reverse dependencies after installing a precomp file |
21:16 | |
21:16
diakopter____ joined
|
|||
nine | ^^^ this is actually 12 insertions(+), 16 deletions(-) :) | 21:16 | |
21:17
tokuhiro_ joined
|
|||
jdv79 | gist.github.com/anonymous/54c68dd756572eae51fe | 21:17 | |
pmurias | jnthn: in NQP code we don't seem to call clone | ||
21:18
gfldex joined
|
|||
jnthn | pmurias: Maybe we only do it when dealing with multi-dispatch or role cloning... | 21:18 | |
21:18
soggybread left,
rindolf left
|
|||
pmurias | in !cursor_start_all we set $!regexsub to nqp::getcodeobj(nqp::callercode()) | 21:19 | |
21:19
diakopter___ left
|
|||
jnthn | nine: Nice! | 21:20 | |
21:22
tokuhiro_ left
|
|||
dalek | c: 9767a51 | (Zoffix Znet)++ | doc/Language/objects.pod: Fix POD |
21:23 | |
21:25
Begi11111 left
21:28
n0tjack joined,
diana_olhovik_ left
|
|||
arnsholt | jnthn: Hmm. How do I get at the highwater mark after a failed parse? | 21:29 | |
timotimo | could be in the exception | 21:30 | |
arnsholt | Oh, nm | ||
Yeah, it's in the exception | |||
I derped while grepping through the src/core/Exception.pm | |||
I saw the X::Comp { ... } stub and misparsed it as an empty declaration | 21:31 | ||
21:31
diana_olhovik joined
|
|||
arnsholt | But the real declaration of X::Comp has stuff | 21:31 | |
21:32
n0tjack left,
softmoth_ left
|
|||
grondilu | hello everyone | 21:33 | |
how's everything going? Still confident for Xmas? | 21:34 | ||
21:35
xfix left
|
|||
dalek | kudo-star-daily: 516c172 | coke++ | log/ (3 files): today (automated commit) |
21:36 | |
21:36
diana_olhovik left
21:39
ollej_ joined
|
|||
grondilu remembers to read announce/2015.11.md | 21:40 | ||
21:42
eliasr joined
21:54
pdcawley_ joined
21:55
pdcawley left
21:56
kaare_ left,
pdcawley_ left
21:59
pdcawley joined
|
|||
leont | Is there a cute syntax for a constant method? | 22:05 | |
dalek | c: e65755d | (Steve Mynott)++ | doc/ (2 files): input-line-separator is now nl-in |
22:06 | |
c: f8c77d5 | (Steve Mynott)++ | doc/Type/IO/Socket/INET.pod: correct default network line terminator |
22:07 | ||
22:07
kjs_ left
22:09
skids left
|
|||
zengargoyle | constant how? | 22:09 | |
jnthn | leont: Can you show your not-cute syntax, so I understand what you want? :) | 22:10 | |
leont | I think I just want to drop my habit of explicit returns for these kinds of methods, nm | 22:12 | |
arnsholt | Does the Rakudo Linenoise code do tab-completion stuff? | 22:15 | |
22:16
TEttinger joined
22:17
Upasaka_ joined
|
|||
grondilu | m: say map * + *, ^10; # TIL I can do that | 22:17 | |
camelia | rakudo-moar : OUTPUT«(1 5 9 13 17)» | ||
22:17
kjs_ joined,
Upasaka left,
Upasaka_ left
|
|||
zengargoyle | pretty sure Linenoise just does basic line editing and session history | 22:18 | |
arnsholt | Yeah, I didn't expect it too, TBH. But if it did, it'd be an interesting reference | 22:19 | |
zengargoyle | that's part of why i asked yesterday about using readline instead. | ||
arnsholt | Cheers! | ||
22:19
rgrau left
|
|||
AlexDaniel | m: my $↑↓ = 5; say $↑↓ | 22:19 | |
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/J5izXwSG4nName must begin with alphabetic characterat /tmp/J5izXwSG4n:1------> 3my $7⏏5↑↓ = 5; say $↑↓ expecting any of: constraint infix infix stopper …» | ||
arnsholt | Those aren't letters =) | 22:21 | |
AlexDaniel | arnsholt: Hm, I see! | ||
arnsholt: still, any way to make it work? | 22:22 | ||
dalek | c: 2b3e34a | (Steve Mynott)++ | CREDITS: extend CREDITS using CREDITS.p6 |
||
22:22
Upasaka joined
22:23
kjs_ left
22:26
nmp left
22:30
johan left
|
|||
AlexDaniel | m: my term:<↑↓> = 25; say ↑↓ | 22:34 | |
camelia | rakudo-moar : OUTPUT«5===SORRY!5===Type 'term:<↑↓>' is not declaredat /tmp/I5AudUE4up:1------> 3my term:<↑↓>7⏏5 = 25; say ↑↓Malformed myat /tmp/I5AudUE4up:1------> 3my term:<↑7⏏5↓> = 25; say ↑↓» | ||
22:34
roguelazer joined
|
|||
jnthn | m: my \term:<↑↓> = 25; say ↑↓ | 22:35 | |
camelia | rakudo-moar : OUTPUT«25» | ||
AlexDaniel | right | ||
m: my $term:<↑↓> = 25; say $term:<↑↓> | |||
camelia | rakudo-moar : OUTPUT«25» | ||
22:35
kjs_ joined
|
|||
arnsholt | timotimo: Sorry for spamming you with iperl6kernel issues. I'm done now =) | 22:36 | |
AlexDaniel | m: sub term:<࿖> { die }; ࿖ # heh… | 22:38 | |
camelia | rakudo-moar : OUTPUT«Died in sub term:<࿖> at /tmp/7RL9rTqKXY:1 in block <unit> at /tmp/7RL9rTqKXY:1» | ||
timotimo | arnsholt: issues? | ||
oh, on github/email? | 22:39 | ||
Skarsnik | nice AlexDaniel x) | ||
AlexDaniel | m: sub term:<☠> { die }; ☠ # ok this one is more appropriate | 22:40 | |
camelia | rakudo-moar : OUTPUT«Died in sub term:<☠> at /tmp/PAXQTWOCml:1 in block <unit> at /tmp/PAXQTWOCml:1» | ||
timotimo | arnsholt: linenoise actually does tab completion. | 22:41 | |
zengargoyle | my grip it that it doesn't do unicode well. and it that weird horizontal scroll thing. | 22:45 | |
22:45
kjs_ left
22:46
kjs_ joined,
pmurias left
|
|||
zengargoyle | i'm trying rlwrap now, had to remove Linenoise.pm first. | 22:46 | |
22:46
TEttinger left
|
|||
AlexDaniel | m: my %h; say %h.default | 22:47 | |
camelia | rakudo-moar : OUTPUT«(Any)» | ||
22:48
diakopter____ left
|
|||
AlexDaniel | m: my %h is default(42); say %h<nice> | 22:48 | |
camelia | rakudo-moar : OUTPUT«42» | ||
22:48
diakopter___ joined
22:49
diakopter___ left
|
|||
AlexDaniel | m: my %h is default(42); say %h<nice>; say keys %h | 22:49 | |
camelia | rakudo-moar : OUTPUT«42()» | ||
22:49
diakopter___ joined
|
|||
hahainternet | so is it possible to manipulate the 'global' grammar? i'm just about starting to grok std.pm but i want to add support for superscripts and subscripts using this | 22:49 | |
but it's quite hard to find reference material | |||
Skarsnik | m: my @array is default(-1); @array[2] = 4; say @array; | 22:52 | |
camelia | rakudo-moar : OUTPUT«[(Any) (Any) 4]» | ||
Skarsnik | m: my @array is default(-1); @array[2]; say @array; | ||
camelia | rakudo-moar : OUTPUT«[]» | ||
AlexDaniel | m: my @array; say @array.default | 22:54 | |
camelia | rakudo-moar : OUTPUT«(Any)» | ||
AlexDaniel | m: my @array is default(42); say @array.default | ||
camelia | rakudo-moar : OUTPUT«42» | ||
AlexDaniel | m: my @array is default(42); say @array.default; say @array[100] | ||
camelia | rakudo-moar : OUTPUT«4242» | ||
Skarsnik | damn I though it will feel missing key with default | ||
*feed | |||
AlexDaniel | m: my @array is default(42); say @array.default; @array[100] = 100; say @array[50] | 22:55 | |
camelia | rakudo-moar : OUTPUT«4242» | ||
AlexDaniel | m: my @array is default(42); @array[10] = 10; say @array[5]; say @array | ||
camelia | rakudo-moar : OUTPUT«42[(Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) 10]» | ||
Skarsnik | hm | 22:56 | |
AlexDaniel | it is a bit weird | ||
in fact, it feels wrong… | |||
m: my @array is default(42); @array[10] = 10; say @array[5]; say @array[3..5] | |||
camelia | rakudo-moar : OUTPUT«42()» | ||
AlexDaniel | or maybe not | 22:57 | |
psch | hahainternet: i'd suggest starting with looking at the Slangs in the ecosystem, coupled with (potentially a lot of) looking at Perl6/Grammar.nqp and Perl6/Actions.nqp | ||
Skarsnik | :m: my @array is default(42); for 0..10 -> $i {@array[$i]}; say @array; | ||
m: my @array is default(42); for 0..10 -> $i {@array[$i]}; say @array; | |||
camelia | rakudo-moar : OUTPUT«[]» | ||
hahainternet | psch: ack, i know about slangs but nqp is a stage beyond what i've done so far | ||
psch | hahainternet: nqp is just perl6 with lots less convenience :) | 22:58 | |
hahainternet | psch: i just don't have much time unfortunately, and i don't know if my contributions would be welcome | ||
psch | hahainternet: i'm pretty sure it would be a fringe-useful Slang, if i understand your intent correctly | 22:59 | |
timotimo | m: my @array is default(42); say @array[10]; say @array[10]:exists; @array[20] = 100; say @array[10]:exists; | ||
camelia | rakudo-moar : OUTPUT«42FalseFalse» | ||
timotimo | AlexDaniel, Skarsnik: perhaps this helps? ^ | ||
hahainternet | psch: 2² = 4 and $x₁ or whatever = $x_1 | ||
seems to me that this should be core, as we embrace the rest of unicode | |||
AlexDaniel | timotimo: right! | ||
timotimo | m: my $x₁ = 10; | ||
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/17bLiudIdtBogus postfixat /tmp/17bLiudIdt:1------> 3my $x7⏏5₁ = 10; expecting any of: constraint infix infix stopper postfix statement end …» | ||
hahainternet | and this is standard notation | ||
timotimo | aaw. | ||
AlexDaniel | hahainternet: I agree! | 23:00 | |
psch | hahainternet: standard *math* notation, maybe. i don't know of any mainstream programming language that allows it | ||
AlexDaniel | hahainternet: but… | ||
timotimo | m: say uniprop("₁") | ||
camelia | rakudo-moar : OUTPUT«No» | ||
psch | hahainternet: but that's the thing, it can work as a module quite easily | ||
timotimo | what does No stand for? | ||
hahainternet | m: say unival("₁") | ||
camelia | rakudo-moar : OUTPUT«1» | ||
psch | timotimo: "other number" | ||
timotimo | ah, hm. | ||
psch | -" " | ||
timotimo | so we allow regular numbers at the end of identifiers, but not "other number"? | ||
hahainternet | anyhow psch i will write as a module first | ||
psch | timotimo: cf nqp/src/vm/jvm/runtime/Ops.java:4230 | 23:01 | |
AlexDaniel | hahainternet: some time ago there was a discussion about ≤ ≥ ≠ and stuff | ||
hahainternet | but i don't know if anyone would notice | ||
AlexDaniel: i assume those are supported, i haven't actually checked :) | |||
AlexDaniel | hahainternet: and IMO these should be allowed, why not? | ||
psch | hahainternet: it'd probably get mentioned on the perl6weekly if you pout it into the ecosystem | ||
hahainternet | i agree AlexDaniel | ||
psch | s/pout/put/ | ||
AlexDaniel | hahainternet: however, some people felt that it is a bit “too much”… | ||
hahainternet: so the suggestion was to implement it as a module first | |||
hahainternet: and then, well, perhaps some parts of it colud become core | 23:02 | ||
hahainternet | well, i need to learn how to manipulate the default grammar before i can write the module | ||
23:02
diakopter___ left
|
|||
AlexDaniel | hahainternet: in fact, I've always wanted to create such module, just didn't had enough time | 23:02 | |
psch | hahainternet: the challenge, as i see it, is that you'd need to extract the operator function from the operator symbol | ||
zengargoyle | i like ₁ being in a var, not so sure about ² being a power. | ||
psch | hahainternet: well, except if you want to implement e.g. ²² manually | ||
hahainternet | psch: i don't know enough about grammars and new regexes to be able to comment | 23:03 | |
psch | 'cause those only become really useful if they are composable, i.e. $x²² eqv $x ** 22 | ||
timotimo | m: my $fooⅣ = 4; | ||
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/qCcF8no4ChBogus postfixat /tmp/qCcF8no4Ch:1------> 3my $foo7⏏5Ⅳ = 4; expecting any of: constraint infix infix stopper postfix statement end …» | ||
hahainternet | psch: that is precisely the intention i had | ||
timotimo | ah, that's also not allowed, eh? | ||
psch | hahainternet: right, but that means that for every No (but hopefully there's a narrower category that limits it to superscript) you have to generate the appropriate potentiation operator | 23:04 | |
hahainternet | obviously these are the more trivialities of unicode, what really matters is the ability for people to write perl in their own language without hinderance | ||
AlexDaniel | hahainternet: but you can start with something small, I think. There's a bunch of other stuff like ∞ × ÷ ⋅ | ||
psch | hahainternet: it definitely sounds like an interesting project! | ||
timotimo | m: say uniprop("Ⅳ") | ||
camelia | rakudo-moar : OUTPUT«Nl» | ||
hahainternet | psch: i figured it could be matched earlier in the parsing really | 23:05 | |
but again, i know very little | |||
std.pm is a hard read :D | |||
timotimo | Nl is "number letter" so why not allow that? :P | ||
AlexDaniel | by the way, I wonder if More::Unicode is a good way to name that module | 23:06 | |
timotimo | i'd put Slang in the name | ||
psch | timotimo: i think we allow only L* at the moment..? | ||
timotimo | maybe | ||
psch | timotimo: maybe it doesn't even match well with unicode categories... | ||
AlexDaniel | .oO( no More::Unicode; ) |
23:07 | |
hahainternet: anyway, just wanted to say that whether it is a core thing or not, I'll definitely use it | 23:09 | ||
hahainternet | well, the chances of me making it anytime soon are small | ||
grondilu | is it possible to have a sigilless named parameter? | ||
hahainternet | but if i do make a start i'll make it public and chat in here | ||
AlexDaniel | grondilu: \var ? | ||
m: my \var = 25; say var | |||
camelia | rakudo-moar : OUTPUT«25» | ||
grondilu | parameter, not variable. Like: sub (:\var) {...} | 23:10 | |
AlexDaniel | hahainternet: thanks! | ||
El_Che | grondilu: yes, it's called Ruby ;) | ||
AlexDaniel | m: sub test(\foo) { say foo }; test(25) | ||
camelia | rakudo-moar : OUTPUT«25» | ||
23:10
lostinfog joined
23:11
salv0 left
|
|||
AlexDaniel | ah, named | 23:11 | |
AlexDaniel has to learn to read | |||
psch | hahainternet: well, a module can overwrite the current language | ||
hahainternet: which effectively means you get to decide how stuff is parsed in your module (terms and condition apply) | |||
hahainternet | psch: yep, that's what i intend to try | 23:12 | |
but we'll see, not tonight as it's friday :) | |||
grondilu | I'm asking this because I wanted to use 'δ' as a named parameter for a sub, but writing $δ looks very ugly. | ||
jnthn | Epic blog post on what I've been working on recently: 6guts.wordpress.com/2015/11/21/wha...een-up-to/ | 23:13 | |
23:13
diakopter___ joined
|
|||
psch | ++hahainternet | 23:13 | |
hahainternet | Posted on November 21, 2015 | ||
holy crap jnthn you're from the future | |||
that explains everythin | |||
AlexDaniel | hahainternet: me too | ||
jnthn | Shhh! | ||
23:14
lostinfog left
|
|||
hahainternet | jnthn: if you have 2 secs, thoughts on what we've just been discussing? ie 2²=4, $x₁ as a valid variable name | 23:14 | |
23:14
lostinfog joined
|
|||
hahainternet | as well as a bunch of other fancy unicode character supports | 23:14 | |
AlexDaniel | hahainternet: hold on, I thought that $x₁ would be $x[1] | ||
hahainternet | does $x[1] make any sense anymore with sigil invariance? i have no idea, but it's down to whatever the most common use of it is i guess | 23:15 | |
jnthn | m: say 2² | 23:16 | |
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/tQwXOMDdC5Bogus postfixat /tmp/tQwXOMDdC5:1------> 3say 27⏏5² expecting any of: infix infix stopper postfix statement end statement modifier …» | ||
hahainternet | i was thinking more the denoting of different instances of $x like in math formulas, but i'm very ignorant :) | ||
jnthn | m: sub postfix:<²>($n) { $n ** 2 }; say 2² | ||
camelia | rakudo-moar : OUTPUT«4» | ||
jnthn | Well, that one works out like that :) | ||
hahainternet | sorta, but there's say, 2³⁰ | ||
which is a bit more complex :) | 23:17 | ||
jnthn | Especially when the final char shows up as a replacement char here :P | ||
hahainternet | anyway more interested in your thoughts about how, if i was to write a module, it should be implemented | ||
AlexDaniel | hahainternet: well, if you have x1 then you probably have x2 and maybe x0… which sounds like an array | ||
23:17
polettix left
|
|||
jnthn | .u ⁰ | 23:17 | |
yoleaux | U+2070 SUPERSCRIPT ZERO [No] (⁰) | ||
jnthn | Ah | ||
hahainternet | AlexDaniel: some latin chars can be subscripted too | ||
so you can have the equiv of $x_a | |||
it's not a particularly well fleshed out part of unicode | 23:18 | ||
but the only way it ever will be is adoption :) | |||
AlexDaniel | hahainternet: which is %x<a> | ||
psch | m: sub term:<x₁> is rw { $ }; x₁ = 5; say x₁ # this can also work, fwiw | ||
camelia | rakudo-moar : OUTPUT«5» | ||
23:19
tokuhiro_ joined
|
|||
psch | if we get this as a module it's gonna be an amazing opportunity for improving performance of language recomposition... :P | 23:19 | |
jnthn | hahainternet: I think if you want it scale well rather than defining a ton of postfixes, then you'd need to write a slang that provides a token postfix:sym<superscript> { <[²³...]>+ } | ||
AlexDaniel | psch: yeah, last time I tried that stuff it was horribly slow | ||
hahainternet | jnthn: yep that is exactly what i plan to do, that example is perfect though as now i can look up similar examples | ||
pink_mist | is there a superscript /? so one can have ^1/3? :P | 23:20 | |
psch | AlexDaniel: yeah, it has something to do with how we recreate the existing grammar when we have to, because we get a new operator | ||
jnthn | hahainternet: Not sure if anyone's really done that yet, but it's probably an easier slang than, say, Tuxic :) | ||
Skarsnik | m: my @a[10] is default(42); say @a; | ||
camelia | rakudo-moar : OUTPUT«[(Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any)]» | ||
hahainternet | pink_mist: not quite, but there is ½ and ¾ etc :) | ||
Skarsnik | that infortunate x) | ||
m: my @a[10] = 42; say @a; | 23:21 | ||
pink_mist | hahainternet: err, those aren't superscript though :P | ||
camelia | rakudo-moar : OUTPUT«[42 (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any)]» | ||
hahainternet | jnthn: well i don't think i can really contribute in any other way | ||
pink_mist: nope, but as close as you can get i believe | |||
jnthn | :) | ||
OK, I'm going to go rest... | |||
'night, #perl6 | |||
psch | m: say unival ½ | ||
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/aw6UTHw076Bogus termat /tmp/aw6UTHw076:1------> 3say unival 7⏏5½ expecting any of: argument list infix infix stopper postfix prefix st…» | ||
Skarsnik | good night | ||
psch | m: say unival "½" # of course... | ||
camelia | rakudo-moar : OUTPUT«0.5» | ||
hahainternet | night jnthn, blog post looks good | 23:22 | |
only skim read so far | |||
psch | night jnthn o/ | ||
pink_mist | they have superscript + - = ( and ) .. but no / =( | ||
AlexDaniel | pink_mist: what about ÷? | ||
pink_mist | nope | 23:23 | |
hahainternet | pink_mist: yep, only one way to fix though, make it feasible for these to actually be used :D | ||
23:23
tokuhiro_ left
|
|||
pink_mist | they also have n, i, a, and h | 23:26 | |
AlexDaniel | ⅒ | ||
pink_mist | AlexDaniel: I wanted it as superscript though :P | 23:27 | |
AlexDaniel | hmm, is there any superscript modifier? | ||
nope | 23:29 | ||
.u ℁ | |||
yoleaux | U+2101 ADDRESSED TO THE SUBJECT [So] (℁) | ||
AlexDaniel | .u ℆ | ||
yoleaux | U+2106 CADA UNA [So] (℆) | ||
AlexDaniel | ᵃ ᵇ ᶜ ᵈ ᵉ ᶠ ᵍ ʰ ⁱ ʲ ᵏ ˡ ᵐ ⁿ ᵒ ᵖ ʳ ˢ ᵗ ᵘ ᵛ ʷ ˣ ʸ ᶻ ₐ ₑ ₕ ᵢ ⱼ ₖ ₗ ₘ ₙ ₒ ₚ ᵣ ₛ ₜ ᵤ ᵥ ₓ | 23:30 | |
pink_mist | ℆ later :P | ||
AlexDaniel: oh, nice | |||
AlexDaniel | oh: ᴬ ᴮ ᴰ ᴱ ᴳ ᴴ ᴵ ᴶ ᴷ ᴸ ᴹ ᴺ ᴼ ᴾ ᴿ ᵀ ᵁ ⱽ ᵂ | 23:31 | |
pink_mist | no F? | ||
or C | |||
AlexDaniel | it's not too bad, but it is so stupid that some of the characters are missing… | ||
pink_mist | yeah | ||
really ordd | |||
*err odd | |||
AlexDaniel | it's unicode! Let's have arrows in all directions except one! | ||
.u ₑ | 23:33 | ||
yoleaux | U+2091 LATIN SUBSCRIPT SMALL LETTER E [Lm] (ₑ) | ||
AlexDaniel | .u ᵥ | ||
yoleaux | U+1D65 LATIN SUBSCRIPT SMALL LETTER V [Lm] (ᵥ) | ||
23:34
sprocket left
23:35
pecastro joined,
ZoffixGameBox joined
|
|||
ZoffixGameBox | huh? | 23:37 | |
Can someone say something | |||
hahainternet | hi :) | ||
23:37
sprocket joined
|
|||
ZoffixGameBox | This is annoying. Camelia's "nl" at the end makes Freenode webchat beep :S | 23:37 | |
psch | "Attention, there was a non-standard line break" | 23:38 | |
ZoffixGameBox | hahainternet: I joined 'cause I thought I figured out how to solve for any power, but then realized I was wrong :( | ||
zengargoyle | lol, DOS ZoffixGameBox | ||
ZoffixGameBox | Ah. it's not nl, it's addressed/PM. Mighty annoying sound | ||
hahainternet: oh wait. I *do* know how to make any power! | |||
psch | m: say unival ² | 23:39 | |
camelia | rakudo-moar : OUTPUT«5===SORRY!5=== Error while compiling /tmp/C88DE_PuoCBogus termat /tmp/C88DE_PuoC:1------> 3say unival 7⏏5² expecting any of: argument list infix infix stopper postfix prefix st…» | ||
psch | m: say unival "²" | ||
camelia | rakudo-moar : OUTPUT«2» | ||
psch | still needs to hook into %*LANG | ||
also those superscripts don't combine, so you'd have to do it on a per-character basis | |||
m: say unival "²³" | 23:40 | ||
camelia | rakudo-moar : OUTPUT«2» | ||
psch | m: say univals "²³" | ||
camelia | rakudo-moar : OUTPUT«(2 3)» | ||
ZoffixGameBox | hahainternet: make postfix and infix ops of 0-9 and minus. Make the infix return a custom object that would tell the OTHER infix to combine previous power and then the postfix op can take care of all that object stuff and return a proper number | ||
Skarsnik | psch, do you remember if the multi method issue with role and class (with multi method foo {...} doing weird stuff)get into a bug repport or something? | ||
psch | Skarsnik: tbh i thought you'd report it..? | 23:41 | |
ZoffixGameBox | hahainternet: that's works only in my head for now though. I'll see if I can extend Operators::Math::Superscripts for any power. That would make it more than a toy :P | ||
psch | ZoffixGameBox: put it in a slang that parses the superscripts and gets the univals | ||
ZoffixGameBox: that seems much easier from my POV :P | |||
ZoffixGameBox | psch: oh | ||
hahainternet | ZoffixGameBox: have a look at the web chat logs | ||
we had a brief chat about it for the hour before you joined | 23:42 | ||
ZoffixGameBox | psch: I know nothing about slangs other than it's a stands for "sublanguage" :) Gonna check 'em out | ||
hahainternet | ZoffixGameBox: what jnthn mentioned: > hahainternet: I think if you want it scale well rather than defining a ton of postfixes, then you'd need to write a slang that provides a token postfix:sym<superscript> { <[²³...]>+ } | ||
AlexDaniel | what about creating an operator that is empty but does lookahead? Then superscript+ can be a simple numeric literal… | ||
ZoffixGameBox | An empty operator? How? | 23:44 | |
AlexDaniel | ZoffixGameBox: no idea, but I'm just thinking that lookahead can probably do it, maybe | 23:45 | |
ZoffixGameBox | Oh, in a slang. | ||
AlexDaniel | ZoffixGameBox: it sounds a bit better than trying to reconstruct the number | ||
ZoffixGameBox 's head hurts from coding for the last 12 hours :) Time for chicken wings and playing Warframe :) | 23:46 | ||
\o 'night | |||
23:46
ZoffixGameBox left
|
|||
Skarsnik | psch, can't find it ~~ | 23:46 | |
AlexDaniel | grondilu: have you found any solution? | 23:47 | |
grondilu: I've tried different things but no luck | |||
psch | AlexDaniel: LTM forbids operators that define themselves via lookahead | 23:52 | |
(at least if i understand LTM correctly...) | |||
AlexDaniel | psch: but there would be no alternative | 23:53 | |
psch | AlexDaniel: of there's an alternative. just match the superscripts, figure out what numeric value they stand for, construct that value as an Int, call postfix:<**> with that number as 2nd arg | ||
AlexDaniel | psch: no, I mean LTM thing | 23:54 | |
(at least if I understand LTM at least partially…) | |||
psch | ...no alternative to LTM? | ||
AlexDaniel | psch: well, LTM is about matching the longest alternative, right? | 23:55 | |
psch | the longest token, yes | ||
AlexDaniel | psch: well, if we are in front of ²³ then there would be nothing else to match besides this lookahead thing | ||
psch | but LTM doesn't lookahead | 23:56 | |
AlexDaniel | ah | ||
psch | i mean, i think i get what you're saying | ||
but LTM brings that for free | |||
you don't need the lookahead | |||
$x is matches as variable, next it finds a superscript and there's only one token to match those | 23:57 | ||
so it matches them with that token | |||
s/is matches/is matched/ | |||
AlexDaniel | psch: alright. Well, I was thinking that maybe there's a way to shove an operator in between, it would have made a couple of things easier, perhaps. | 23:58 | |
23:58
n0tjack joined
|
|||
psch | well, functionally i'd expect the superscript to parse equivalent to a postfix | 23:59 | |
...which is where jnthn++ put them too |