»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
00:05
bjz left
|
|||
AlexDaniel | samcv: 2.9G here :) | 00:06 | |
00:07
bjz joined
|
|||
rightfold | Why does S:g sometimes return a slip instead of a string? | 00:07 | |
notviki | samcv: replied and rejected. | ||
rightfold: your rakudo is too old. | |||
rightfold | I have Rakudo 2016.11. To which version should I upgrade? | 00:08 | |
00:08
kurahaupo__ joined
|
|||
notviki | rightfold: are you using Rakudo Star? | 00:08 | |
rightfold | no | ||
notviki | rightfold: then 2016.12 | 00:09 | |
rightfold | where can I find it? | ||
notviki | rightfold: where did you find 2016.11? | ||
rightfold | perl6.org/downloads/ | 00:10 | |
notviki | rightfold: there are multiple instructions on that page. Which did you follow? | ||
samcv | i just made Send an email to rakudobug at perl.org. on the rakudo wiki in bold | ||
rightfold | The one that is no longer there, apparently. | ||
samcv | so people can easily find it by scanning the page | ||
rightfold | Maybe I did get Rakudo Star by accident. How do I check? | 00:11 | |
notviki | unsure | ||
samcv | perl6 --version | ||
idk what does it say | |||
rightfold | This is Rakudo version 2016.11 built on MoarVM version 2016.11 implementing Perl 6.c. | ||
samcv | 2016.11 is the newest on rakudo.org/how-to-get-rakudo/ | 00:12 | |
notviki | There's no final 2016.12 R* release yet, just the beta: pl6anet.org/drop/rakudo-star-2016.1...eta.tar.gz | 00:13 | |
rightfold: or you can download just the compiler and build it: rakudo.org/downloads/rakudo/ | |||
rightfold | I'll just work around the slip | ||
notviki | rightfold: or you can just use .subst(:g) instead of S:g/// and wait for next star | ||
rightfold | Thanks :) | 00:15 | |
00:16
CQ joined
00:17
BenGoldberg left
00:18
BenGoldberg joined
|
|||
SmokeMachine | m: use Test; pass Q[\] | 00:27 | |
camelia | rakudo-moar a687d9: OUTPUT«ok 1 - \\» | ||
SmokeMachine | is the "\\" expected? | 00:28 | |
m: say Q[\] | 00:29 | ||
camelia | rakudo-moar a687d9: OUTPUT«\» | ||
geekosaur | looks like it | 00:30 | |
artifact of Test.pm | |||
m: use Test; pass chr(92) | |||
camelia | rakudo-moar a687d9: OUTPUT«ok 1 - \\» | ||
00:32
lukaramu left
|
|||
notviki | SmokeMachine: yes, there's an explicit code that backslashes the backslashes so that backslashes backslashing the # don't get backslashed if the message contains backslashes | 00:33 | |
also backslashes. | |||
geekosaur managed to parse that somehow. and it even makes sense... | |||
SmokeMachine | notviki: so: I can't use only 1 backslash as test description? | 00:34 | |
notviki: I got a little confused... | 00:35 | ||
geekosaur | try this: the response needs to be parseable by TAP, so it needs to backslash stuff that TAP might interpret, so it needs to escape actual backslashes | 00:36 | |
notviki | SmokeMachine: you can, but it'll be backslashed in the output. | 00:37 | |
SmokeMachine | geekosaur: ok... now I got it! | ||
00:38
CQ left
|
|||
SmokeMachine | will prove remove that extra backslash if it shows the test description? | 00:38 | |
in case of an error, for example... | |||
00:38
shayan_ left
|
|||
notviki | Don't think so | 00:39 | |
SmokeMachine | no, it didn't with -v... | ||
:( | 00:40 | ||
I was trying to say that the fund received a Capture... but it shows: ok 189 - test-func received \\(42) | 00:41 | ||
:( | |||
notviki | SmokeMachine: well, it needs to backslashes prior to '#' char (ensuring the backslash backslashing # doesn't get backslashed accidentally). See if you can achieve that without backslashing all the backslashes: github.com/rakudo/rakudo/blob/nom/...#L617-L623 | 00:43 | |
It's very very very preferable for that code to be very fast. | |||
00:44
rindolf left
00:54
TimToady left
00:59
curt_ left
|
|||
dugword | Woo! First pull request merged! Thank you all very much for the help and guidance! | 01:00 | |
notviki | dugword++ | 01:01 | |
keep 'em coming. | |||
dugword | I'm hooked now | ||
01:02
realityeuphoria joined
01:03
newbie1 left,
newbie1 joined
|
|||
japhb | .oO( Hook, line, and sinker ... ) |
01:10 | |
01:11
bwisti left
|
|||
dugword | Anyone using the default vim perl 6 syntax highlighting? It is unusably slow for me on files larger than a few hundred. Suggestions for a better one? | 01:14 | |
few hundred lines* | |||
SmokeMachine | notviki: if I understood it well, it's backslashing the #, not preventing it... am I wrong? | 01:20 | |
geekosaur | # has a meaning to TAP, so if you use it in a description it needs to be escaped | 01:22 | |
SmokeMachine | "#" Will become "\#" and "\#" Will become "\\\#". Is it it? | ||
geekosaur | yes | ||
SmokeMachine | If I don't backslash the backslash, so "\#" will become "\\#", and the backslash will be escaped... | 01:24 | |
I think I got the problem... | 01:25 | ||
notviki | SmokeMachine: and "\\#" => "\\\#" | ||
wait | |||
geekosaur | actually \\# becomes \\\\# | ||
er | |||
actually \\# becomes \\\\\# | |||
leaning toothpicks, ho! | 01:26 | ||
notviki | SmokeMachine: the big picture goal is to escape "#" using a backslash. The extra fuffing is to ensure that the backslash we add to escape the "#" doesn't get backslahed by any previous backslashes | ||
SmokeMachine | Is it possible to use regex? | 01:27 | |
notviki | SmokeMachine: you can try, but my guess it'll be slow. | ||
01:28
floutenvy joined
|
|||
SmokeMachine | Ok... | 01:28 | |
notviki | SmokeMachine: and we want this very fast. This code is used literally by every test. Currenty Rakudo's stresstest has 130902 top-level tests (even more if you count stuff in subtest) and on my box it takes 507 wallclock secs to run. | ||
SmokeMachine | It's using nqp::* to be faster? | 01:29 | |
notviki | Yes | ||
SmokeMachine | Probably I shouldn't mess with it... | ||
notviki | And core devs have to run the spectest on every change (that subset of tests is ~55K of tests and takes 3-5 minutes to run). | ||
SmokeMachine: why not? :) | 01:30 | ||
SmokeMachine | I'm not the best one to make a change that can affect so many places... | 01:31 | |
notviki | But it'll be reviewed | ||
SmokeMachine | But I'll think how would I do that... | ||
01:33
Ven joined
01:35
claytonrowe left
|
|||
SmokeMachine | notviki: I jus want every # backslashed, right? | 01:36 | |
notviki | pretty much | 01:37 | |
SmokeMachine | # wrong; \# ok; \\# wrong; \\\# ok; right? | ||
notviki | right | ||
01:37
Ven left
|
|||
SmokeMachine | Not a very good solution, but I could change the "#" for " \#" | 01:38 | |
With the space... | |||
*to | 01:40 | ||
notviki | That could work. | ||
01:42
newbie1 left
|
|||
SmokeMachine | m: say "\ " | 01:42 | |
camelia | rakudo-moar 37941d: OUTPUT« » | ||
notviki | well, for ' \#' to be more accurate | ||
Double quotes would turn it back into plain '#' unless you escape the backslash | |||
01:43
floutenvy left
|
|||
SmokeMachine | Right! | 01:43 | |
notviki: but it will change the message... is that ok? | |||
notviki | Though note that '\#' will end up as '\ \#' when it could stay unchanged; would people be similarly disappointed with that as you were with the scaped backslash? | 01:45 | |
SmokeMachine: if it passes roast tests, then it's fine. | |||
01:48
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
wamba left
|
|||
SmokeMachine | notviki: but it will affect only messages with # (that is the real problem) not every message with \ | 01:50 | |
notviki | yeah | ||
SmokeMachine | Probably it will be faster, it'll be only 1 pair of split/join | 01:51 | |
Not 2 | |||
01:52
floutenvy joined
|
|||
SmokeMachine | notviki: I'll try to write a pull request tomorrow (I'm out of my computer now (I'd love to have perl6 on iOS)) | 01:52 | |
notviki | SmokeMachine: and put a comment above that code, saying that space is there to prevent previous backslashes from interfering. Otherwise, some future programmer might assume the space is accidental and remove it. | 01:54 | |
SmokeMachine | notviki: ok! Thank you very much! | 01:56 | |
notviki: are there tests to test the print of tests? Tests that might be affected by the change? | 01:58 | ||
01:58
shayan_ joined
|
|||
notviki | No(t yet) | 01:59 | |
For now the roast itself serves as a test for tests. | 02:00 | ||
(which doesn't cover failure modes, which is why eventually we'd want proper tests for test routines) | |||
mst | a script to diff 'current t/ output' versus 'last commit t/ output' might be a neat first step | ||
02:00
floutenvy left
|
|||
SmokeMachine | notviki: ok | 02:01 | |
mst: doesn't looks hard... | |||
mst: wouldn't be a problem when testing random, pick, roll, etc? | 02:02 | ||
mst, sorry! Of course not! | |||
mst | I've no idea, but you can make a stable mode for tests like that with a fixed seed usually | ||
notviki | diff probably won't help you much in this case, because you *are* changing the output. | 02:03 | |
SmokeMachine | It will test the test output... | ||
notviki: sure! But probably would help after the change... | |||
mst | notviki: the way I find it useful is to be able to see "this all passed, *and* other than my specific change, it passed the *way* I expected" | 02:04 | |
notviki: like, if you get a diff in a test file you didn't expect, you can go look and work out if there's a problem with that test or if that change makes sense | |||
SmokeMachine | But how could that be done? Run the tests again getting the output? | ||
mst | well on my projects where I use this I strive for stable test output | 02:05 | |
and commit the output | |||
and juust overwrite those files and then git diff them | |||
this is not a fully general answer | |||
but it turns out, for me, for those projects, to be really handy | |||
SmokeMachine | Or write a file with the output while running the tests and test that file? | ||
mst | basically, what I'm talking about is, roughly | 02:06 | |
'git checkout HEAD~1; <run tests>; git checkout HEAD; <run tests>; <diff>;' | |||
it's not clever, it's not complicared, it's not always useful, but sometimes it's well worth it | |||
I have no opinion beyond that | 02:07 | ||
I'm not saying it's necessarily worth it, just "I have done this on projects that are language-ish and it was helpful to me" | |||
SmokeMachine | mst: makes sense for me... | 02:08 | |
02:09
espadrine left
|
|||
dalek | c: 35b6eb9 | coke++ | doc/Language/ (2 files): remove trailing whitespace |
02:09 | |
c: 86b1beb | coke++ | xt/words.pws: allow non-american spelling |
|||
c: 97173d2 | coke++ | xt/code.pws: new code snippet |
|||
02:13
BenGoldberg left,
shayan_ left
02:15
BenGoldberg joined
|
|||
rightfold | Do slangs still require nqp calls? | 02:17 | |
To install them | |||
02:19
shayan_ joined
02:27
BenGoldberg left
02:29
BenGoldberg joined
02:38
kalkin- left,
kalkin-_ joined
|
|||
notviki | buggable: slang | 02:38 | |
buggable: eco slang | |||
buggable | notviki, Found 5 results: Slang::Tuxic, Slang::Piersing, v5, Slang::SQL, Slang::Roman. See modules.perl6.org/#q=slang | ||
02:42
realityeuphoria left
02:45
labster left
02:46
ilbot3 left,
labster joined
02:47
ilbot3 joined
02:51
bjz left
02:55
kyan joined
|
|||
BenGoldberg | m: my $f = proto multi(Int) { * }; { $f.add_dispatchee(multi sub fac (0) { 1 }); $f.add_dispatchee(multi sub fac ($n) { $n * $f($n-1) }) }; say $f(5) | 03:02 | |
camelia | rakudo-moar 37941d: OUTPUT«120» | ||
BenGoldberg | m: my $f = proto multi(Int) { * }; { $f.add_dispatchee(multi sub (0) { 1 }); $f.add_dispatchee(multi sub ($n) { $n * $f($n-1) }) }; say $f(5) | ||
camelia | rakudo-moar 37941d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>An anonymous routine may not take a multi declaratorat <tmp>:1------> 3 { $f.add_dispatchee(multi sub (0) { 1 }7⏏5); $f.add_dispatchee(multi sub ($n) { $n expecting any of: horizo…» | ||
BenGoldberg | m: my $f = proto multi(Int) { * }; { $f.add_dispatchee(sub (0) { 1 }); $f.add_dispatchee(sub ($n) { $n * $f($n-1) }) }; say $f(5) | 03:03 | |
camelia | rakudo-moar 37941d: OUTPUT«120» | ||
BenGoldberg | Whee! Anonymous multi sub. A bit wordy, but it works :) | 03:04 | |
03:05
dugword left
03:08
bjz joined
03:12
pyrimidine left
03:13
pyrimidine joined
03:14
noganex joined
03:17
noganex_ left
03:23
dugword joined
|
|||
BenGoldberg is confused by this error message: | 03:27 | ||
m: sub ack(*@stack) { my $n = @stack.pop; proto helper(Int) { * }; multi helper(3) { 2 ** ( $n + 3 ) - 3 }; multi helper(2) { 2 * $n + 3 }; multi helper($m where 0|1) { $n + $m + 1 }; multi helper($m is copy) { push @stack, (--$m) x $n; push @stack, reverse 3 .. --$m; 13 }; while @stack { $n = helper(pop @stack) }; $n }; say ack(3,4); | |||
camelia | rakudo-moar 37941d: OUTPUT«125» | ||
03:27
dugword left,
pyrimidi_ joined
|
|||
BenGoldberg | m: sub ack(*@stack) { my $n = @stack.pop; proto helper(Int) { * }; multi helper(3) { 2 ** ( $n + 3 ) - 3 }; multi helper(2) { 2 * $n + 3 }; multi helper($m where 0|1) { $n + $m + 1 }; multi helper($m is copy) { push @stack, (--$m) x $n; push @stack, reverse 3 .. --$m; 13 }; while @stack { $n = helper(pop @stack) }; $n }; say ack(4, 1); | 03:27 | |
camelia | rakudo-moar 37941d: OUTPUT«Type check failed in binding to <anon>; expected Int but got Seq (().Seq) in sub ack at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
03:27
mr-foobar left
03:29
pyrimidine left
03:47
aborazmeh left
03:49
lichtkind__ joined,
diakopter joined
03:52
lichtkind_ left
03:57
shayan_ left
03:59
shayan_ joined
04:06
shayan_ left
04:07
shayan_ joined
04:11
pyrimidi_ left
04:12
pyrimidine joined
04:21
dugword joined
04:24
TimToady joined
04:33
aborazmeh joined,
aborazmeh left,
aborazmeh joined
04:50
xtreak joined
04:54
mr-foobar joined
04:57
pyrimidine left,
aborazmeh left
04:58
pyrimidine joined
05:07
kurahaupo__ left
05:14
BenGoldberg left
05:40
bwisti joined
05:43
shayan_ left
05:55
Cabanossi left
05:57
Cabanossi joined
06:01
tojo joined
06:02
tojo left
06:03
tojo joined
06:05
tojo left
06:06
dugword left
06:08
tojo joined,
khw left,
tojo left,
grondilu left
06:09
grondilu joined
06:12
tojo joined
06:13
tojo left
06:14
tojo joined,
tojo left,
skids left
06:25
tojo joined
06:28
CIAvash joined
06:32
tojo left
|
|||
CIAvash | .ask TimToady any thoughts on this: irclog.perlgeek.de/perl6/2016-12-22#i_13784143 | 06:34 | |
yoleaux | CIAvash: I'll pass your message to TimToady. | ||
06:44
AlexDaniel left
06:45
labster left
06:46
labster joined
06:48
kyan left
06:50
rburkholder left
06:56
dugword joined
|
|||
samcv | wooooo. 100%%%% passing with my branch of MoarVM for unicode 9.0 | 06:58 | |
will be a bit til that is merged though because makes too many changes and might break things | 06:59 | ||
but the other one that is less drastic gets us down to only failing 7 | |||
and should be much easier for us to extend things for future unicode version being able to save state between parsing charcaters | |||
i'm excited | 07:00 | ||
Woodi | hi #perl6 :) | 07:01 | |
samcv: I have serious problems with accepting Unicode in forms other then UTF8. maybe there are more ppls lik me... so some blog post or introduction or other form of mind educating would be helpfull... | 07:04 | ||
samcv | hi | ||
which formats? | |||
UTF-16? | 07:05 | ||
Woodi | samcv: all up to you, even that if you want to do such thing :) | ||
samcv | well what formats do you need | 07:06 | |
no I want to do it | |||
i want everything unicode | |||
all of the things | |||
Woodi | and UTF-16 is something I for reasons not known to me realy hate :) | ||
samcv | non-standard number of bytes to character | ||
well. 'standard' from an 8bit per char world | |||
Woodi | probaby becouse it is a "change"... | ||
samcv | yeah. and it is sort of wasteful for small numbers and stuff | 07:07 | |
er like ascii gets larger | |||
07:07
Wanderer68 joined
|
|||
samcv | Moar stores them as 32 bit ints though | 07:07 | |
TEttinger | wooo samcv, 100% is great | ||
samcv | each grapheme seperately and they're negative if it's a synthetic grapheme | ||
yeah i know | |||
now it is crashing randomly tho :P | |||
well not randomly. but. like 1/2 of the types you start it, it immediately crashes. other than that it works perfect | 07:08 | ||
so that's probably not too bad since there must be some place it's getting mad at | |||
idk | |||
Woodi | samcv: all that subject seems to be "embaded" somehow, eg. not straight way to move from vt100 to Unicode graphemes :) | ||
samcv | embaded? | 07:09 | |
embedded and a bad thing? | |||
Woodi, if you have seen i'm also imlementing Unicode Collation Algorithm | |||
Woodi | you need some box like vm for that, far from "natural" machine representations :) | ||
samcv | so you can sort strings by alphabetic type order | ||
my goal is that the user shouldn't even care about the encoding | 07:10 | ||
so if we switched from unicode to like. some format different 100 years from now | |||
things would still appear the same | |||
well at least from the sorting standpoint for sorting strings | |||
also Woodi what formats | 07:14 | ||
did you want | |||
Woodi | define "formats" pls :) | 07:17 | |
samcv | encodings | ||
unicode encoding | |||
formats. | |||
Woodi | I like A4, more then 80x25... ah | ||
samcv | encodings of the unicode format :) | 07:18 | |
Woodi | I like utf-8 | ||
samcv | but we already have that! | ||
also anybody here good with gdb | |||
i'm trying to debug the random crashes. i run perl6-gdb-m, type run | |||
Unhandled exception: should eventually be unreachable | |||
Woodi | samcv: for what formats are used ? storing in file ? | ||
samcv | type 'backtrace' | ||
> no stack | 07:19 | ||
how can i backtrace when no stack | |||
ahh | |||
do i need to set breakpoints or something | |||
still have no clue where it's screwing up | |||
Woodi | maybe compile with debugging symbols ? | ||
samcv | should still have a stack. if no debugging symbols should just print out random junk | 07:20 | |
Woodi | call stack, memory stack ? | 07:21 | |
samcv | it says no stack. so. idk! | ||
the program has terminated though so i assume it just can't find it | 07:22 | ||
cause it's closed already | |||
geekosaur | or it's dying in ld.so | 07:27 | |
(which typically ends with it SIGKILL-ing itself) | |||
samcv | not sure why it would die there though | ||
but anything's possible | |||
geekosaur | (and which can't be intercepted, so no chance for the debugger to intervene) | ||
samcv | ack | 07:28 | |
and it doesn't crash every time so i don't know how to proceed | |||
TEttinger | samcv: maybe an issue with your computer, rather than Perl6? | 07:29 | |
samcv | uhm it works fine if i revert to before my changes | ||
TEttinger | hm nvm | ||
07:30
darutoko joined
|
|||
samcv | github.com/samcv/MoarVM/compare/mo...0?expand=1 these are the changes since it broke | 07:31 | |
07:35
bjz left
07:38
holli left,
mr-foobar left
07:41
bjz joined
|
|||
samcv | ok actually it broke from just this commit github.com/samcv/MoarVM/commit/86c...0667d05738 | 07:42 | |
i feel really lucky that i can at least track it to some smaller change, cause the commit before it was tons of changes | |||
07:42
RabidGravy joined
|
|||
samcv | should_break is only called in that file FYI | 07:43 | |
maybe should_break isn't returning a MVMint32? | 07:45 | ||
could the type be causing that? i wasn't having problems with changes before | |||
since i basically did similarish changes so i can retain state across a different section of it | 07:46 | ||
i mean it says static MVMint32 should_break, so i'd think it would return all things as MVMint32 or cast or whatever if it's not, though i've never had any problems in C before | 07:47 | ||
07:51
pierre_ joined,
pierre_ left,
pierre_ joined
07:53
nine joined
07:54
camelia left,
chienjo joined
07:55
camelia joined
07:56
ChanServ sets mode: +v camelia
07:57
shayan_ joined
07:58
CQ joined
07:59
chienjo left,
chienjo joined,
chienjo is now known as hchienjo
|
|||
CQ | hello, is there something like cpanm-reporter for perl6? I can offer to build modules under a freenas jail (freebsd 10) | 07:59 | |
08:02
thayne joined
08:03
bwisti left
|
|||
RabidGravy | well, there is testers.perl6.org/ | 08:09 | |
I'm not sure if there is any other client for it than panda, but I haven't checked recently | 08:11 | ||
but it's just a POST of some JSON to testers.perl6.org/report | 08:13 | ||
CQ | github.com/perl6/cpandatesters.perl6.org ... not touched in a while... | ||
08:14
Tonik joined
|
|||
RabidGravy | yes that's the same code | 08:14 | |
seems to work fine | 08:16 | ||
08:16
dugword left
08:18
nine left
08:19
pyrimidine left,
camelia left
08:20
nine joined,
pyrimidine joined,
camelia joined
08:22
ChanServ sets mode: +v camelia
08:23
petrutrimbitas joined
08:27
pyrimidi_ joined,
pyrimidine left
08:29
tokomer joined
08:31
petrutrimbitas left
08:34
thayne left
08:37
thayne joined
08:38
hchienjo left
08:40
wamba joined
08:43
abraxxa joined
08:46
xtreak left
08:49
bjz_ joined
08:50
bjz left
08:51
xtreak joined
|
|||
dalek | c: 8a2f868 | (Nic Q)++ | doc/Type/ (2 files): Add header to 'is default' |
08:58 | |
c: dbcefef | (Nic Q)++ | doc/Type/Sub.pod6: Made the 'is default' a sub-heading in the Sub type |
|||
synopsebot6 | Link: doc.perl6.org/type/Sub | ||
c: 1d48c87 | Altai-man++ | doc/Type/ (2 files): Merge pull request #1100 from nicqrocks/master Edit headers to 'is default' sections |
|||
09:03
jonas1 joined
09:06
shayan_ left
|
|||
masak | morning, #perl6 | 09:09 | |
gfldex: I'm available to discuss macros if you like | |||
I find it difficult to summarize the situation in small non-scary words, but I also remain hopeful that macros do have a place in the design of Perl 6 | 09:10 | ||
it won't be easy to sneak them in, but it will be worth it | |||
think of it as an API for the program structure | |||
09:18
petrutrimbitas joined
09:25
romrador joined
|
|||
arnsholt | masak: I'm not gfldex, but since you mentioned the topic: What's your current vision of macros for Perl 6? | 09:26 | |
I haven't been able to follow 007, unfortunately | |||
09:28
petrutrimbitas left
|
|||
gfldex | is this a bug? www.reddit.com/r/perl6/comments/5l...v/dbwdem2/ | 09:30 | |
09:31
kaare_ left
|
|||
jast | so... what's the situation in not-so-small, not-so-non-scary words? ;) | 09:31 | |
09:31
mst joined
|
|||
arnsholt | gfldex: The issue might be something to do with lexical scoping of things, since the new multi candidate isn't in the lexical scope of the array eqv definition | 09:33 | |
ISTR reading something about a way to lift an operator to the caller's scope in one of the synopses, but not sure what the current state of that is | |||
gfldex | arnsholt: I believe to remeber that TimToady had the same opinion until I convinced him otherwise. | 09:34 | |
masak | arnsholt: can you read this? github.com/masak/007/issues/176#is...-240849038 | 09:37 | |
(if not, I'll be happy to walk you through it) | |||
it's about parsing something like `[+]` or `[||]` in 007 | |||
09:37
domidumont joined
|
|||
arnsholt | masak: Meeting now, but I'll read it later! | 09:38 | |
masak | cool | ||
I want to reply concretely to your question about my current vision; that definition of `term:reduce` is part of my vision :) | |||
gfldex | arnsholt: see (for operator overloading discussion) irclog.perlgeek.de/perl6/2010-08-11#i_2691533 | ||
masak | the fact that it contains a closure both in macro-space and runtime-space pleases me immensely. that feels like *using* macros, for reals | 09:39 | |
samcv | also guys. so is UTF-16 NYI or what is the status of that | ||
gfldex | i'm inclined to give myself a bonus point for remembering stuff from 6 years ago :-> | ||
samcv | because i have never had to use it | 09:40 | |
masak | well, not a closure in runtime-space. just a slurpy parameter. | ||
but still. | |||
samcv | m: say "string".encode("utf-8").elems | 09:41 | |
camelia | rakudo-moar 37941d: OUTPUT«6» | ||
samcv | m: say "string".encode("utf-16").elems | ||
camelia | rakudo-moar 37941d: OUTPUT«6» | ||
samcv | m: say "string".encode("utf-32").elems | ||
camelia | rakudo-moar 37941d: OUTPUT«Unknown string encoding: 'utf32' in block <unit> at <tmp> line 1» | ||
samcv | m: say "string".encode("utf-32LE").elems | ||
camelia | rakudo-moar 37941d: OUTPUT«Unknown string encoding: 'utf-32le' in block <unit> at <tmp> line 1» | ||
samcv | m: say "🐧".encode("utf-16").elems | ||
camelia | rakudo-moar 37941d: OUTPUT«2» | ||
samcv | m: say "🐧".encode("utf-8").elems | ||
camelia | rakudo-moar 37941d: OUTPUT«4» | ||
samcv | so i guess we have it implemented right | ||
09:41
domidumont left
|
|||
RabidGravy | gfldex, that's winning, I can't remember stuff from a week and a half ago | 09:42 | |
09:42
domidumont joined
|
|||
gfldex | RabidGravy: don't worry, that just alsheimers | 09:43 | |
RabidGravy | that's fine then ;-) | 09:46 | |
09:52
pyrimidi_ left
09:53
pyrimidine joined
|
|||
samcv | m: say "\x[6F]\x[34F]\x[323]".chars | 09:55 | |
camelia | rakudo-moar 37941d: OUTPUT«1» | ||
samcv | hmm looks like i broke multiple extending marks somehow | ||
m: "\x[6F]\x[34F]\x[323]".uniprops("GCB").say | 09:57 | ||
camelia | rakudo-moar 37941d: OUTPUT«(Other Extend Extend)» | ||
09:58
TEttinger left
10:06
grondilu_ joined
10:08
CQ left,
grondilu left
10:17
bjz joined
10:18
xtreak left,
bjz_ left
10:20
xtreak joined
10:25
jonas1 left
10:26
jonas1 joined
10:27
pyrimidine left,
pyrimidine joined
10:33
rindolf joined
10:34
dogbert2 left
10:35
dogbert17 joined
10:41
kalkin-_ is now known as kalkin-
10:44
avalenn joined
|
|||
masak | toolforger: found it! it's called "Zermelo's construction" by Wikipedia: en.wikipedia.org/wiki/Natural_numb...structions | 10:46 | |
I would say Zermelo's construction is simpler than von Neumann's, but it also misses some nice properties that the latter has | 10:47 | ||
(notably, in von Neumann's construction, less-than comparison comes down to set membership) | 10:48 | ||
10:51
ralisch joined,
brrt joined,
labster left
11:01
petrutrimbitas joined
11:08
wamba left
11:11
zakharyas joined
|
|||
arnsholt | masak: I *think* I can read it. Basically, a term:reduce is a term that looks like /\[ <infix> \]/ and expands to "(sub macro_reduce_or_whatever(*values) { values.reduce($op.identifier) })" | 11:12 | |
I'm not *quite* sure how the values after the term get turned into arguments to a call, except I guess maybe "(sub ($arg) { $arg + 1 }) 1" does that already? | |||
And having a closure both in macro- and code-space is very neat! | 11:13 | ||
I also like how it falls out entirely naturally of the macro definition that the reduce op uses op multis from the lexical scope where it's used | 11:14 | ||
DrForr | El_Che: Around finally. | 11:16 | |
arnsholt | masak: Anyways, does this mean that macros will mean hooking into well-defined bits of the parser (like term and expr, and maybe atoms)? | 11:22 | |
masak | arnsholt: basically `[+]` parses to a function (created at macro-time) that reduces with infix:<+> on its arguments | 11:25 | |
DrForr | Oo, polishing up my code *just* in time to have the grammar internals rewritten :) | ||
masak | arnsholt: yes, full agreement about "falls out entirely naturally" -- it feels like the first "reward" for insisting on having Perl 6's scoping rules even inside macros/quasis | 11:26 | |
11:27
toolforger joined
|
|||
masak | arnsholt: basically, the macro comes down to using slurpy params and array reduce to define the reduce metaop. | 11:27 | |
toolforger: hiya. backlog for you, sir: irclog.perlgeek.de/perl6/2017-01-02#i_13835698 | 11:28 | ||
toolforger | thx | ||
masak | (or madam. or bot.) | ||
toolforger | ask my significant other :-) | ||
11:28
hankache joined
|
|||
masak | arnsholt: as you can see from that issue, my early attempts included parsing also the argument list. but I gradually realized that it's better to leave that to the underlying language. | 11:29 | |
arnsholt: also, having the macro create an anonymous function that DTRT at runtime feels *very* Lispy and right in some way | 11:30 | ||
basically "aaah, yes. this is how I want to write macros." and then we just make sure to have a supporting toolset around that. | |||
11:31
pierre_ left
|
|||
masak | TimToady seems not to believe so much in `is parsed` anymore. I've lately come to like it more. it has limits, yes, similar to how one shouldn't use small regexes for big-enough parsing problems. but for making individual additions to a language, they're very nice. | 11:31 | |
philosophical question remain regarding `is parsed`, and I'd be happy to discuss them here. but for now, they seem like the way forward and the natural next step for 007 | 11:32 | ||
11:33
jonas1 left
11:34
Actualeyes left
11:36
zakharyas left,
lukaramu joined
11:37
Actualeyes joined
|
|||
toolforger | BTW what's the status of auth: ? | 11:38 | |
is there a consensus? | |||
arnsholt | masak: `is parsed` seems sensible enough to me | 11:43 | |
RabidGravy | I'm not quite sure I understand the question, "auth" is a thing, it's part of the long name of a module | 11:44 | |
arnsholt | It feels like it's basically equivalent to an addition to the grammar of "token $macro-name { $is-parsed-bit }" with a corresponding action method that does whatever the macro code does | ||
toolforger | RabidGravy: there were some discussions about it lately, but I missed the conclusion, if any, and probably context as well | 11:45 | |
arnsholt | The argument to is parsed is a regex, sure, but it's no different from a token/rule/regex except in notation | ||
11:47
xtreak left
|
|||
arnsholt | masak: But in the concrete example of your reduce metaop above, I guess it has the drawback of having to be used like `[+](1, 2, 3)`? | 11:47 | |
Given that "(sub { $^a + 1 }) 1` is TTIAR | 11:48 | ||
toolforger | What does TTIAR mean? | 11:50 | |
arnsholt | Two terms in a row | ||
toolforger | ah ok thx | 11:51 | |
arnsholt | masak++ has a blog post (about macros, appropriately) which describes it in some detail: strangelyconsistent.org/blog/macros...s-in-a-row | 11:52 | |
11:55
Actualeyes left
11:56
pmurias joined
|
|||
DrForr | Looks like I've got a new post to read :) | 12:00 | |
toolforger | read it, understood about 75% (as I expected) | 12:01 | |
ralisch | masak++ | ||
toolforger | at least I now understand what the fuss is about :-) | ||
RabidGravy | "Looks like you failed 18 tests of 18" | 12:04 | |
top job | |||
12:05
xtreak joined
|
|||
masak | arnsholt: yes. 007 is "a simpler Perl 6" in many ways. one of those ways is that it eschews listops. | 12:06 | |
arnsholt: for a while I had an error message in the parser that caught listops, because I kept typing `say x;` in my 007 programs :) | |||
arnsholt | =D | 12:07 | |
masak | but the parser error was problematic, and I had to remove it for reasons I don't remember | ||
m: say [+](1, 2, 3) | |||
camelia | rakudo-moar 37941d: OUTPUT«6» | ||
masak | anyway, the `[+](1, 2, 3)` syntax works in Perl 6 as well as in (coming soon to a computer near you) 007 | 12:08 | |
arnsholt | Hmm. I guess in full Perl 6 making it prefix:reduce might let you use the paren-less syntax as well? | 12:09 | |
Assuming operator macros are on the table | 12:10 | ||
masak | ah; yes. here's what the listop error ended up tripping on: github.com/masak/007/issues/76 | ||
arnsholt: operator macros already work in 007. | |||
ralisch | When are we getting an "Inline::007"? | ||
masak | arnsholt: as I've been known to say more than once, implementing macros in 007 was way easier than implementing operators :) | ||
ralisch: that should be entirely doable. they could even share a runloop. | 12:11 | ||
ralisch: contributions welcome! :D | |||
arnsholt | masak: Hee hee! | 12:12 | |
masak | arnsholt: hm. looking at #76 with fresh eyes makes me think that the fault wasn't really with the parse error. | ||
arnsholt | I like the EXPR rule I see in the commit linked from that issue, BTW | ||
masak | yeah. | 12:13 | |
arnsholt | token EXPR { <term> +% <infix> } # SO much easier that operator precedence =D | ||
*than | |||
ralisch | masak: did you improve the "{{{ }}}" construct yet? | ||
masak | arnsholt: 007 still has operator precedence. | ||
arnsholt: it's <termish>, not <term> -- the former includes pre- and postfixes | |||
arnsholt: 007 has a slight simplification compared to Perl 6, where prepostfixes are always tighter than infixes | 12:14 | ||
arnsholt | Right. And then you do the infix precedence stuff in the EXPR action instead? | ||
masak | makes us get away with that simpler parsing rule | ||
yeah, kinda | |||
arnsholt | Cool | ||
masak | there's one batch of precedence handling in the termish action (the prepostfixes), and one in EXPR (the infixes) | ||
arnsholt | Makes sense | 12:15 | |
masak | the one takeaway from implementing operator precedence from scratch on my own terms is this: | ||
arnsholt | "Don't"? =) | ||
masak | associativity should hang off the precedence level hook, not the operator hook | ||
Perl 6 messes that one up slightly, unfortunately | |||
I'm definitely not saying don't :) | 12:16 | ||
arnsholt | (Incidentally, I'm doing something similar; trying to write up how to implement an EXPR for Perl 6 as a tutorial-y blog post) | ||
masak | sure, there are various "fun" ways to abuse precedence and associativity and make your program an unreadable mess | ||
but Perl is all about those double-edged features. with great power *mumble* responsibility *mumble*, etc | |||
there are so many nice things that precedence/associativity enables that count towards readability -- on balance, it's worth it, IMO | 12:17 | ||
arnsholt | method EXPR in HLL/Grammar.nqp seems to be something of a dark corner of the internals, so I thought I'd try to write something moderately elightening about the topic | ||
masak | arnsholt: neat! go for it! let me know if you want something proofed | ||
arnsholt | Will do! | ||
RabidGravy | someone be a love and make an SQL parser, changing these tests every time I change the way the density of parentheses is beginning to become annoying | ||
arnsholt | I was hoping to get it done for the advent calendar, but you know, babies and stuff =) | 12:18 | |
DrForr | I intend to take care of that once the low-hanging fruit for Perl6:Parser is plucked. | 12:21 | |
masak | arnsholt: babies? since when? congratulations! | ||
12:21
Actualeyes joined
|
|||
DrForr | Oh, indeed. Yes, I've heard they take up valuable coding time :) Congrats! | 12:22 | |
arnsholt | Thanks! =) | ||
He was born in mid-June, so getting more used to now, but I've gotten a new relationship to the whole "copious spare time" thing =D | 12:23 | ||
12:23
grondilu_ left
12:27
grondilu joined,
xtreak left
|
|||
ralisch | Lisp is so fucking ugly. | 12:27 | |
12:28
petrutrimbitas left
12:29
wamba joined
12:30
rburkholder joined
12:31
pierre_ joined
|
|||
pmurias | ralisch: how is that Perl 6 relevant? ;) | 12:32 | |
rightfold | (say (infix:<+> 1, 2)) | 12:33 | |
ralisch | People were talking about sytatic macros, which masak is stealing from lisp. So I went to have a look. | ||
rightfold | Lisp is no more | ||
Name the specific lisp | |||
RabidGravy | all programming languages are ugly, it's just some are uglier than others | 12:34 | |
ralisch | Lisp Machine Lisp | ||
RabidGravy | RPG/III now that's a *really* ugly language | 12:35 | |
masak | arnsholt: re "copious spare time" -- 2yo at home. it gets (slightly) better. | ||
12:35
pierre_ left
|
|||
CIAvash | rightfold: Just in case you missed it: irclog.perlgeek.de/perl6/2017-01-01#i_13831144 | 12:36 | |
masak | ralisch: it's a bit of a "pick your poison" thing, though. either you choose the raw simplicity of Lisp syntax (which some have called ugly, yes) or your AST formats takes on some irreducible complexity. | ||
format* | |||
rightfold | CIAvash: nice thanks | 12:37 | |
DrForr | I didn't think there was a single LispM left alive, at least one that could be hooked up to the interwebs. | ||
12:38
hankache left
|
|||
DrForr | Not discounting your story, just genuine surprise that there's a machine out there and available. | 12:38 | |
masak | RabidGravy: re "all programming languages are ugly, it's just some are uglier than others" -- I think that's too defeatist. there are *some* aspects of *some* languages that I consider genuinely beautiful. but that kind of beauty often transcends syntax and goes into semantics. anyway, that's what I want to encourage/signal-boost, in any language I'm using. | ||
ralisch | "AST formats takes on some irreducible complexity" -> Doesn't more clues help the compiler, though? | ||
masak | I'd say extra complexity such as op precedence is for humans, not for the computer | 12:39 | |
the computer parses Lisp or Perl 6 with the same ease | |||
but Perl 6 might be nicer to read (in some ways) (sometimes) (according to some) | |||
:P | |||
ralisch | Anyone that actually likes lisp has the same problem from people that think programming languages should actually have broken math: their brains are already fried. | 12:41 | |
masak | ralisch: I don't think such exclusionist rhetoric is necessary | 12:42 | |
I've learned a lot from studying Lisp | |||
ralisch | sorry, it was meant as a joke | ||
masak | aha -- that was not apparent to me ;) | 12:43 | |
stmuk | timotimo: ping | ||
lucs | m: say 42.WHAT # Okay. | ||
camelia | rakudo-moar 37941d: OUTPUT«(Int)» | ||
RabidGravy | # Looks like you failed 2 tests of 18 | ||
lucs | m: say "moo " ~ 42.WHAT # ? | ||
camelia | rakudo-moar 37941d: OUTPUT«Use of uninitialized value of type Int in string context.Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block <unit> at <tmp> line 1moo » | ||
RabidGravy | there that's better | ||
psch | m: say Int; say "moo " ~ Int | 12:44 | |
camelia | rakudo-moar 37941d: OUTPUT«(Int)Use of uninitialized value of type Int in string context.Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block <unit> at <tmp> line 1moo » | ||
psch | m: say Int; say "moo " ~ Int.gist | ||
camelia | rakudo-moar 37941d: OUTPUT«(Int)moo (Int)» | ||
psch | lucs: what exactly is the question? :) | ||
12:45
wamba left,
bjz left
|
|||
lucs | Why does say "moo " ~ 42.WHAT fail? | 12:45 | |
psch | lucs: it doesn't, it warns and stringifies to "" | ||
pmurias | masak: isn't a Lisp much easier to parse for a computer than Perl6? | ||
psch | lucs: &say calls .gist on its arguments. &infix:<~> calls .Str | ||
(or .Stringy maybe i think) | |||
rightfold | It is easier to write a lisp parser than to write a Perl 6 parser | ||
masak | pmurias: maybe in the sense that Perl 6 makes the fan whir more. not in the sense I meant, of the computer going "man, this is *hard*" | 12:46 | |
rightfold | However a machine just does what it's told, and has no notion of difficulty | ||
lucs | psch: Ah, I see, thanks. | ||
psch | m: print 42.WHAT | ||
camelia | rakudo-moar 37941d: OUTPUT«Use of uninitialized value of type Int in string context.Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block <unit> at <tmp> line 1» | ||
pmurias | masak: parsing Perl 6 is undecidable | ||
rightfold | No it's not | ||
masak | pmurias: I don't like that description. | ||
arnsholt | Lisp isn't necessarily very easy to parse, at least not in the "easy to implement" sense | ||
rightfold | It's undecidable if you assume you can't execute arbitrary Perl 6 code during parsing | 12:47 | |
masak | what rightfold said. | ||
rightfold | But you can so the assumption is moot | ||
masak | "only Perl 6 can parse Perl 6" | ||
arnsholt | Macros require you to have the whole language working at compile-time, so it's pretty tricky | ||
masak | if you try to parse Perl 6 *without* Perl 6, you are in a state of sin ;) | ||
arnsholt | And Common Lisp has symbol macros, so even *lexing* uses the whole language runtime | 12:48 | |
rightfold | Well tbh | ||
There are some Perl 6 programs that can't be parsed | |||
Those that throw or loop indefinitely during parse time | |||
DrForr | Those sound like bugs we need to work with :) | ||
masak | not sure I'd count that as "can't be parsed" | ||
I mean, not worse than any syntax error, anyway | 12:49 | ||
arnsholt | Can't be parsed *in finite time* | ||
masak | if the code you run at parse time sinks your program, how are you in any way more excused from the consequences than if the code you run at runtime does? | ||
arnsholt | Exactly | ||
masak | "doctor, it hurts when I set my compiler on fire!" | 12:50 | |
arnsholt | The "parsing Perl is undecidable" meme is kind of annoying, because every other language that lets you execute code compile-time has the same problem | ||
rightfold | At parse time | ||
arnsholt | Python *can* be parsed statically, but only because it shunts lots of stuff you'd think is compile time off to run time | 12:51 | |
masak | hm, I guess 007 has that problem too, then | ||
it has BEGIN blocks | |||
arnsholt | And macros =) | ||
masak | oh right | ||
arnsholt | macro yes { loop { say "y" } } # =) | 12:52 | |
masak | I just tried that in 007 :) | 12:53 | |
gist.github.com/masak/340bc4bfdfc2...ee66e36fcf | 12:54 | ||
:P | |||
pmurias | arnsholt: "parsing $lang is undecidable" meme is annoying because it seems to imply that the language is not "readable" which is not true, but that doesn't change the fact that sacrifice a valuable property by allowing code execution at compile time | 12:55 | |
s/compile time/parse time/ | |||
masak | yes, exactly | ||
still, it *is* a tradeoff | |||
toolforger | indeed | 12:56 | |
masak | one I can imagine making differently depending on context | ||
toolforger | It limits what tools can do | ||
DrForr | My main issue with that is static code analysis becomes in a sense impossible, because in order to analyze the text you have to run at least certain portions. | ||
masak | Java: boring, but much more analyzable | ||
toolforger | say, "please find me all references to function Foo::Bar" | ||
masak | Perl 6: exciting, but tools can do less | ||
toolforger | Heh. We're in violent agreement. | ||
masak | tending towards the ultra-violent, even | 12:57 | |
jnthn | "Tools can do less" - I'd say "generic tools can do less", but as I argued in the "beyond static vs. dynamic" talk, when the compiler is opened up for programs to participate in their own compilation, you can enrich compile time to be useful in domain-specific ways. | ||
yoleaux | 1 Jan 2017 01:55Z <samcv> jnthn: new PR github.com/MoarVM/MoarVM/pull/477 want your input on the return values and if they seem sane | ||
1 Jan 2017 01:57Z <samcv> jnthn: when you get around to it, need some help properly iterating over the codepoints (NFC codepoints) in unicmp_s | |||
1 Jan 2017 07:50Z <samcv> jnthn: why is the very important MVM_unicode_normalizer_process_codepoint in normalize.h and not in normalize.c? confused | |||
DrForr | I'm over on the oter side of te spectrum, nearing infra-dead :) | ||
masak | jnthn: yes. good point. | ||
samcv | why isn't there just one yoleaux | ||
masak | jnthn: that is a very powerful point that I'm dimly aware of but haven't fully internalized yet ;) | 12:58 | |
arnsholt | *groan* | ||
masak | samcv: are you confusing "three yoleaux" with "three messages from yoleaux", perchance? | ||
jnthn | samcv: On the latter question - I think 'cus it's MVM_STATIC_INLINE | ||
pmurias | masak: re making the fan spin harder, that's also a very serious tradeoff | ||
psch | masak: well, we do have yoleaux2 in #perl6-dev | ||
samcv | oh i see jnthn | 12:59 | |
arnsholt | masak and jnthn: the punster pair of #perl6 =D | ||
masak | pmurias: I don't write programs for the fan in my computer ;) | ||
arnsholt: what -- what have we done? :) | |||
oh, the "ultra-violent" bit | |||
that's from H2G2, btw | 13:00 | ||
jnthn is amused that H2G2 offers no compression over HHGG :P | |||
DrForr | So was mine :) though the damn keyboard keeps screwing me over. | ||
pmurias | masak: there is a whole possible world of awesome live programming stuff that sort of depends on your programs being parsable efficently | ||
masak | jnthn: depends how thin your 2s are :P | 13:01 | |
pmurias: hey, I'm not knocking efficient parsing, don't get me wrong | |||
ralisch | About tools: Is exporting the AST enough? | 13:02 | |
masak | pmurias: just saying I like much of the expressive power some of the higher-abstraction languages give me | ||
pmurias: but yeah, it's far from black-and-white, granted | |||
pmurias: some days I really like the algebraic manipulations Haskell affords me, where refactoring feels like rewriting math formulas | |||
ralisch: the question is interesting but a bit vaguely stated | 13:03 | ||
ralisch | In the emacs-GCC sense, where Stallman wanted to stop GCC from dumping it's internal state so that emacs could understand the code. | 13:04 | |
pmurias | masak: Sean Mcdirmid is an interesting researcher to follow for such things | ||
masak | pmurias: also, an argument could be made that if the problem is that your fan spins too hard too often, it's possible you need a hardware upgrade | ||
"throw more hardware at the problem" is not just a flippant non-solution; sometimes it makes a difference, especially for developer efficiency | |||
DrForr | ralisch: For tools like tidiers, I'd say so, but more complex transformations really need richer annotations | 13:05 | |
masak | pmurias: will look him up; thanks | ||
ralisch | masak: or to clean up the dust | ||
RabidGravy | the fan on this laptop is continuously spinning | ||
masak .oO( I'm not a big fan of spinning continuously ) | |||
RabidGravy | I think I need to disassemble it and give it a good cleaning | ||
ralisch 's $DAYJOB is desktop support | 13:06 | ||
The company call's them "distributed systems". | 13:07 | ||
jast | "them"? the users? :) | ||
13:07
petrutrimbitas joined
|
|||
ralisch | the desktops | 13:07 | |
jast | are they web scale? | 13:08 | |
masak | the apostrophes | ||
ralisch | sorry for my bad grammar's | ||
masak | at least it's not bad Grammer | ||
images-na.ssl-images-amazon.com/im...17_AL_.jpg | 13:09 | ||
ralisch | I saw it as soon as I hit enter | ||
jast | that's the best moment to notice these things, speaking from personal experience | ||
masak | IRC has this nice message undo mechanism wherein you stare at the screen, weeping in frustration | ||
doesn't fix the typo, but feels kinda good afterwards | 13:10 | ||
ralisch | And here it gets archived forever. | ||
13:10
xiaomiao left
|
|||
masak waves to future historians | 13:10 | ||
heelllloooooo! you can't answer baaaaaaack! | 13:11 | ||
ralisch | historian's | ||
jast | I have it on good authority that the channel logfiles are laser-etched into huge marble slabs in hard realtime | ||
masak | well, they can answer back, but I can't hear them | ||
they can only leave messages for even later future historians | |||
and so on, and so forth | |||
arnsholt | masak: At least the weeping is cathartic =) | ||
ralisch | You can't hear them yet. | ||
jast | one-way messaging... so basically like twitter and facebook? | 13:12 | |
masak | jast: more like message-in-a-bottle | ||
pmurias | m: sub foo(Str $arg) {say VAR($arg).^name};sub bar($arg) {say VAR($arg).^name};foo('str');bar('str') | ||
camelia | rakudo-moar 37941d: OUTPUT«StrScalar» | ||
ralisch | TIMTOADY probably can tell you about historians answering back after a few years. You're still young. | 13:13 | |
masak | jast: with a strong current | ||
jast | currents have been known to reverse direction | ||
RabidGravy | wee! those tests passing now | ||
pmurias | jnthn: ^^ how does a type constraint cause decontainerization? | ||
m: sub foo(Str $arg) {say VAR($arg).^name};sub bar($arg) {say VAR($arg).^name};foo('str');bar('str') | |||
camelia | rakudo-moar 37941d: OUTPUT«StrScalar» | ||
masak | jast: as far as we know, this happens all the time with the flow of time :P | ||
s/as far as we know/for all we know/ | 13:14 | ||
SmokeMachine | Is there a documentation for the "is parsed" trait? | ||
13:14
xiaomiao joined
|
|||
ralisch | SmokeMachine: strangelyconsistent.org/ | 13:15 | |
masak | SmokeMachine: only some very handwavy spec. | ||
SmokeMachine: but I'm here if you want to talk. | |||
SmokeMachine | Thanks! | 13:16 | |
masak | SmokeMachine: if you want to start somewhere, maybe do strangelyconsistent.org/blog/macros...long-break and then subsequent posts | ||
man, that post is wrotten more than two years ago! | |||
SmokeMachine | Reading! Thanks! | 13:17 | |
masak | fun fact: 007 and Noa were born in the same month. | ||
(December 2014) | |||
arnsholt: I recently taught Noa a song that goes like this: "八八八, 八八八八, 八八八八八. 十六!" -- it warms his coder pappa's heart to hear him sing it :> | 13:22 | ||
jnthn | pmurias: It's an optimization, in fact. When we don't have a type constraint there we assume that we should wrap any incoming argument up in a readonly Scalar container just in case it is Iterable. | 13:26 | |
pmurias: But when the constraint is a non-Iterable type and not one of Any/Cool/Mu then we assume that can never happen and don't waste time wrapping it. | 13:27 | ||
pmurias: The wrapping is needed to make sure $foo will never flatten in flattening context. | |||
arnsholt | masak: That's more Chinese than I grok, unfortunately =) | ||
masak | arnsholt: "eight, eight, eight ... sixteen!" | 13:28 | |
arnsholt | \o/ | ||
(If they're all eight, why the varying ny | 13:29 | ||
masak | just the rhythm of the melody | ||
arnsholt | Aha | ||
masak | actually, the song can be sung with any N and 2*N. I made it up to get Noa used to the concept of doubling. | ||
but the 8-16 version made me especially happy | |||
arnsholt | Obviously! =D | ||
13:29
petrutrimbitas left
|
|||
arnsholt | (Speaking of, the missus has some trouble seeing the innate roundness of numbers like 16 and 32 =) | 13:30 | |
masak | she might not see binary when she closes her eyes, then | 13:31 | |
I've known people like that | |||
ralisch | My coder dad knows COBOl, C and Java. Yesterday morning he was on about how every programming language is just the same. He doesn't even know C++. I sang a little P6 for him and he kept trying to understand functional programming all morning. | 13:32 | |
13:32
pierre_ joined
|
|||
masak | "every programming language is just the same" -- I've come to believe this both *more* and *less* in the past year or two | 13:33 | |
it's like there are senses in which it's true, and senses in which it's false (or irrelevant) | |||
jast | of course | ||
ralisch | Yes, the way he means it is false. | ||
jast | the end result can always be the same, but the style and the ways in which you can express yourself... that's not at all irrelevant | 13:34 | |
masak | ralisch: you should show him INTERCAL, Brainfuck, and Befunge :P | ||
ralisch | Like I said, just a fragment of P6 was enough to send him spinning. | ||
moritz | try writing a CRUD web application with COBOL, for once :-) | ||
masak | moritz: www.coboloncogs.org/INDEX.HTM :P | 13:35 | |
13:35
cibs left
|
|||
jast | still, you can adapt to a different style and you're back doing essentially the same things as in any other languages, only a little differently | 13:35 | |
arnsholt | Also, fortran.io/ | ||
moritz | masak: :) | 13:36 | |
jast | (I re-assigned $DAYJOB recently and started using Python. It's both less and more frustrating than I thought it would be.) | ||
13:36
cibs joined
|
|||
ralisch | Moritz: modern COBOl is even object-oriented, and he's used to calling BAL subprograms. | 13:36 | |
masak | Python is a cute little language with clear beginner benefits | ||
moritz | arnsholt: I believe modern fortran isn't too bad; it's just that soo much code is still stuck with F77 | ||
13:36
pierre_ left
|
|||
moritz | jast: that's been my experience as well | 13:37 | |
ralisch | Theyre taking first-order functions out of the language. | ||
jast | you can do some pretty trippy stuff in Python, too. all the same, I think some of it is vexingly inconsistent, and I appreciate TIMTOWTDI quite a bit, too | ||
ralisch | Can't have two ways to write something. | ||
13:38
Ven joined
|
|||
moritz | jast: one of my constant frustrations with python is how modules are located. Writing a script foo.py in the current directory means that an 'import foo' now takes that one, and that can be a real pain to debug when you're not aware that that's happening | 13:38 | |
jast | also I'm not a huge fan of the way the official documentation is structured | ||
moritz | and after about two years of using, I'm still not warming up to the idea of not declaring variables, or by having everything in a module public by default | 13:39 | |
jast | with Perl 6 the structure Just Makes Sense(tm). with Python I often have to resort to Google to find the right part of the official docs... | ||
moritz | \o/ somebody likes the p6 docs! | 13:40 | |
jast | one thing I found interesting is that 'import foo' and 'from foo import bar' have entirely different runtime behaviour | ||
with the former you can't run into recursion, with the latter you get an utterly vague import failure if there is recursion | 13:41 | ||
masak | jast: that doesn't bother me so much | ||
they have different use cases | |||
jast | still I had to rewrite a huge chain of imports after adding a single new one | ||
plus all references to all of these imports | |||
pmurias | jnthn: any hints how that optimalization is done on the JVM backend? the JVM backend is using the bind_sig method for everything right? | 13:42 | |
13:42
Ven left
|
|||
psch | ISTR that happens in the Java-level Binder, actually. the ro-recont that is | 13:42 | |
jast | really it's all just minor annoyances. like how, in Python 2, you have to manually pass the instance and the current class when using super | 13:43 | |
psch | pmurias: ^^^ that's also where we do the bind failover stuff, which sounds like it should be related | ||
pmurias | psch: I found the ro-recont, I'm just now trying to figure out how the case when it's not called works | 13:44 | |
masak | jast: I find the `super` wart in Python 2 an interesting topic of study from a language design perspective | ||
I mean, it's clear that it *is* a wart, not least because Python 3 fixed it | |||
jnthn | pmurias: It maybe is ismply not done. | ||
*simply | |||
masak | but one can also explain why it's not easily fixable in Python 2 | 13:45 | |
jnthn | pmurias: I *think* it's done on Moar when we lower the signature, emitting code to bind it. | ||
pmurias: And the slow-path binder doesn't worry abou tit | |||
*about it | |||
jast | masak: I wasn't too interested in the details at the time, but what you just said id what I took away from my experience basically | 13:46 | |
pmurias | j: sub foo(Str $arg) {say VAR($arg).^name};sub bar($arg) {say VAR($arg).^name};foo('str');bar('str') | 13:47 | |
camelia | rakudo-jvm 8ca367: OUTPUT«StrScalar» | ||
pmurias | jnthn: ^^ | ||
jnthn | Hm, interesting. | 13:48 | |
Then no, I don't know where it happens, but it'll check against Iterable somewhere in binder-related code, which should help you grep it out :) | |||
13:52
wamba joined
13:53
tokomer left
|
|||
masak | m: sub circumfix:<d[ ]>([Int $year, Int $month, Int $day]) { Date.new(:$year, :$month, :$day) }; say d[2014, 12, 24] | 13:55 | |
camelia | rakudo-moar 37941d: OUTPUT«2014-12-24» | ||
masak | \o/ | ||
arnsholt | moritz: The "import from ." behaviour has bitten me once too. I had a directory of helper python scripts, one of which happened to have the same name as a Python built-in module. And another script that used said built-in module >.< | 13:58 | |
IIRC Python 3 fixes that one too, no? | |||
moritz | no | 13:59 | |
I've experienced that in python 3 | |||
masak .oO( that's your problem right there -- python 3 should not be *experienced*, it should only be ranted at from a distance in python community blog posts ) :P | 14:00 | ||
14:01
pyrimidine left
|
|||
arnsholt | Ah, never mind me then | 14:01 | |
14:01
pyrimidine joined
|
|||
arnsholt | super() is a somewhat magical function in Python, BTW | 14:02 | |
ralisch | masak: same thing with Perl6? | ||
moritz | arnsholt: s/somewhat/very/ | ||
arnsholt | One of the fun cases where the Zen of Python happens to be "implicit is better than explicit" | ||
moritz | uhm | ||
other way round, no? | |||
arnsholt | That's the usual formulation, yes =) | ||
moritz | ah | 14:03 | |
arnsholt | But there are a few cases where IMO it's the other way 'round. Like variable declarations | ||
moritz | the Zen of Python also states that there should be one, and preferrably only one obvious way to do things | ||
and look at string formatting. | |||
arnsholt | (Or variable scoping, more properly, I guess) | ||
masak | ralisch: I wish Perl 6 had the rants Python 3 does... :/ | ||
jast | Python 2 has a number of interesting ways to output to stderr | 14:04 | |
masak | moritz: "one and only one" is an ideal, hence the "should" | ||
moritz | masak: but 4 is a bit excessive, IMHO | ||
masak | moritz: at any given moment, Python and its community are in a state that diverges from the one-and-only way | 14:05 | |
ralisch | See how historians can talk back to you, but it takes them some years: www.reddit.com/r/perl/comments/5lj...k_at_nasa/ | ||
masak | moritz: more seriously, though, I believe that the redundancy offered by for loops/HOP functions/list comprehensions is largely good and can be used to increase readability | 14:06 | |
ralisch | "4 is a bit excessive, IMHO" -> 4 is not nearly enough ways to do something. | ||
moritz | masak: which is fine, it#s just that I feel some sense of superiority from pyhton folks talking about perl, and then it rubs me the wrong way when python doesn't keep up with its own ideal | ||
masak, ralisch: there's a reason that I hang out in #perl6 rather than #python :-) | |||
masak | moritz: I had the same thought when I started out with Python. especially since the dictum is clearly a reaction to Perl's promiscuous "more than one way" approach | 14:07 | |
dalek | c: 1265f5d | (Tom Browder)++ | doc/Language/modules.pod6: change to preferred name |
||
synopsebot6 | Link: doc.perl6.org/language/modules | ||
masak | moritz: but I've since made peace with that, somehow. it doesn't bug me anymore that Python people can't see that they often live by TIMTOWTDI ;) | ||
jast | in any case, I can work with Python and I guess that is all that matters for the most part | ||
14:08
xinming_ left
|
|||
RabidGravy | the most python I see these days is in the backend parts of Airtime | 14:09 | |
frankly some of it is scary | |||
DrForr | Woof. This apartment may be soundproof but it's not smellproof. Someone's chopping onions somewhere close. | 14:10 | |
masak | oh CRAP the `is parsed` macro in E06 o.O | ||
I had repressed that one | |||
14:10
xinming joined
|
|||
masak | it contains a `(.*?)` :( | 14:10 | |
arnsholt | Oh noes! | 14:11 | |
What could possibly go wrong?! | |||
masak .oO( mentally cue blog post: "that's not what a responsible parser author does" ) | |||
jast | I find that (.*?) works great for parsing HTML | ||
jast waits for it....... | |||
masak | pony | ||
DrForr targets the OADS. | 14:12 | ||
stmuk | blogs.perl.org/users/steve_mynott/2...uture.html | ||
masak | jast: ZAxCDxA0xCCxA1xCDx8AxCDx9DLGΌ ISͮ̂҉̯͈͕̹̘̱ TOxCDx85xCDx87xCCxB9xCCxBAxC6x9D̴ȳ̳ TH̘ExCDx84xCCx89xCDx96 ͠P̯͍̭O̚N̐Y̡ HxCDxA8xCDx8AxCCxBDxCCx85xCCxBExCCx8ExCCxA1xCCxB8xCCxAAxCCxAFExCCxBExCDx9BxCDxAAxCDx84xCCx80xCCx81xCCxA7xCDx98xCCxACxCCxA9 xCDxA7xCCxBExCDxACxCCxA7xCCxB6xCCxA8xCCxB1xCCxB9xCCxADxCCxAFCxCDxADxCCx8FxCDxA5xCDxAExCDx9FxCCxB7xCCx99xCCxB2xCCx9DxCDx96Oͮ͏̮̪̝͍MxCDx8AxCCx92xCCx9AxCDxAAxCDxA9xCDxACxCCx9AxCDx9CxCCxB2xCCx96ExCCx91xCDxA9xCDx8CxCDx9DxCCxB4xCCx9FxCCx9FxCDx99xCCx9ESxCDxAFxCCxBFxCCx94xCCxA8xCDx80xCCxA5xCDx85xCCxABxCDx8ExCCxAD | ||
masak wonders what he just did to IRC clients the world over | |||
jast | mine feels fine | ||
DrForr | Induced some tweets to @FakeUnicode? | 14:13 | |
moritz | stmuk: are you on twitter? | ||
stmuk | yes | ||
moritz | ah, @steve_mynott, it seems | 14:14 | |
notviki | wwwyyyyyyyy | ||
masak | oh, today's autopun spotting: twitter.com/MicroSFF/status/815613223839944706 | ||
stmuk | I just tweeted | ||
moritz too | |||
notviki | masak: well, you completely fucked up my terminal. So thanks. | 14:15 | |
moritz | masak: nice one | ||
diakopter FALLS OVER | |||
masak | diakopter: was it the autopun, or E06? | ||
moritz | or the new year? or the old one? | 14:16 | |
masak | notviki: anytime :) | ||
ralisch | TxCCx8FxCCx86xCCxBFxCDxAExCDxAFxCDxAFxCDxAExCDx83xCCxBDxCCx8DxCDx90xCCxBFxCDx86xCCx84xCDx8AxCDxAExCCxBDxCDxA6xCDx9DxCDx9DxCCxBCxCCx99xCCxA5xCCxAFxCCx98xCDx94xCCxA3xCCxBCxCDx87xCCx96xCCxAExCDx88xCCxA6xCCxAAxCDx94xCCxAAxCCx96ExCCx88xCCx94xCCx82xCDx8AxCCxA1xD2x89xCCxA5xCCxA6xCCx99xCCx9ExCCx96xCCxB0RxCCxBFxCDxABxCCx89xCCxA8xCDx81xCCx9BxCCxA5xCDx9AxCDx87xCCxBCxCDx85xCCxABxCDx88xCCx9ExCCxA5xCDx93xCCxB0xCCxACxCDx9AxCDx9AxCCxA9xCCx99xCCx98MxCCx92xCCx88xCDx8BxCDx90xCCx82xCCx8ExCCx90xCDx86xCDx8BxCDxA3xCDx8AxCDxA3xCDxACxCDx9CxCCxA2xCCx99xCCxAAxCDx89xCCx9FxCDx95xCCxAAxCCxA0xCCx98xCCxA3xCCx9CxCCxAAxCCx9DxCCxAAxCDx95xCDx85xCDx88xCCx98xCDx8DIxCCx94xCCx82xCCx86xCDxA6xCCx81xCDxADxCDx8CxCDxABxCCx81xCDxA6xCCx94xCDxABxCCx87xD2x89xCDx80xCCx95xCCxB6xCDx8ExCDx96xCCxAExCDx96xCCxA9xCDx9AxCDx8DxCCx96xCDx89xCCxA0xCDx9AxCCxBAxCCxB9xCCxBCxCDx96xCCxB1xCCxA0xCCxACxCDx94NxCCx8BxCDx91xCCxBFxCCxBExCCx88xCCx8ExCCx83xCCx90xCDx9BxCDxA5xCCxBExCDxA2xCCx95xCDxA2xCCxB4xCDx88xCCxA4xCCx9CxCCxA3xCCxABAxCCx8DxCCx94xCDx86xCDx84xCCx8BxCDxA3xCCxBFxCDxA8xCCx82xCCx9AxCDxAAxCDx80xCDxA2xCCxA5xCCxB3xCDx93xCCx9CxCDx95LxCDx91xCCx94xCCx82xCCx83xCDx82xCDx82xCDxA3xCDxA7xCCx81xCDx82xCCxBFxCCxB8xCDx8DxCCxA4xCCxA6xCCxA5xCCxAFxCDx85xCCxB9 ̍̄̃̄̐̔̔ͬ̐͌̃̈ͬ́͑xCD | ||
masak .oO( the new year hit me, like a ton of bricks ) | |||
diakopter | broke synopsebot6 | ||
masak | ralisch: you killed synopsebot6! D: | ||
14:16
synopsebot6 joined
|
|||
masak | ETOOMANYMARKS | 14:16 | |
EUNICODE | |||
diakopter | i can't see my own typing | 14:17 | |
is anyone seeing this | |||
test | |||
jast | I � Unicode | ||
notviki | barely | ||
ralisch | @FakeUnicode broke archive.is | ||
notviki | it's spilling into the second channel too | ||
ralisch | sorry guys | 14:18 | |
masak | diakopter: no, I can't see what you're writing, sorry | ||
ralisch | the bots really dislike me now | ||
diakopter | hrm | ||
DrForr | diakopter: reset ; stty sane | ||
diakopter | reset ; stty sane | 14:19 | |
notviki | reset ; stty name | ||
moritz | you can always check the IR clogs for reference | ||
notviki | IT"S NOT WORKING! | ||
DrForr | stty INSANE IN DA BRANE | ||
masak suddenly wants an stty(1) where that works | 14:20 | ||
dalek | c: db9a46e | (Tom Browder)++ | doc/Language/modules.pod6: modernize, use META6.json |
14:21 | |
synopsebot6 | Link: doc.perl6.org/language/modules | ||
ralisch | Only after the terminal emulator is running out of the kernel. kmscon and systemd-consoled projects go in that direction, but are frozen for now because lack of volunteers. | ||
tbrowder | ref doc change: is zef installed with Rakudo Star yet? | 14:23 | |
14:23
grumble left
14:24
grumble joined
|
|||
pmurias | psch: why was trial_bind moved from java into nqp land? | 14:24 | |
masak | TIL about "fused multiply-add": en.wikipedia.org/wiki/Multiply%E2%...2.80.93add | ||
notviki obtains immunity from unicode by installing a different terminal | 14:25 | ||
masak | notviki: is that some kind of challenge? :P | ||
14:26
cdg joined
14:27
pierre_ joined
14:30
kurahaupo__ joined
|
|||
notviki | ugh, can't get the colour and fonts same as in the old terminal... | 14:30 | |
diakopter watches a funnel descend from the roaring green sky | 14:31 | ||
14:32
aindilis joined,
dogbert2 joined,
dogbert17 left,
rburkholder left,
rpburkholder joined
|
|||
dalek | c: 4ac813e | (Tom Browder)++ | doc/Language/modules.pod6: use complete words |
14:35 | |
synopsebot6 | Link: doc.perl6.org/language/modules | ||
14:36
Gasher joined
|
|||
tbrowder | .ask ugexe is zef installed with Rakudo Star yet | 14:36 | |
yoleaux | tbrowder: I'll pass your message to ugexe. | ||
14:36
skids joined
|
|||
SmokeMachine | is the current commit on rakudo breaking on make? | 14:38 | |
notviki | No | ||
14:40
yyy joined
|
|||
SmokeMachine | I'm getting this: www.irccloud.com/pastebin/qGlsH06G/ | 14:40 | |
with no changes... | 14:41 | ||
14:42
AlexDaniel joined
|
|||
SmokeMachine | notviki: ^^ | 14:42 | |
notviki | SmokeMachine: you need a full build cycle so it picks up updated nqp | 14:46 | |
perl Configure.pl --gen-moar --gen-nqp --backends=moar; make; make test; make install | |||
SmokeMachine | hum... thanks! | ||
AlexDaniel | hmm | 14:51 | |
m: my @a = 1 ... ∞; say @a[^50] | |||
camelia | rakudo-moar 6ffbbf: OUTPUT«(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50)» | ||
AlexDaniel | so this is lazy | ||
m: my @a = 1 ... 99999999999999; say @a[^50] | |||
and this is not… hmmm | |||
camelia | rakudo-moar 6ffbbf: OUTPUT«(timeout)» | ||
AlexDaniel | do we have anything in our documentation that explains this? | 14:52 | |
docs.perl6.org/language/operators#..._%E2%80%A6 | |||
“The sequence operator is a generic operator to produce lazy lists.” | |||
o-oops… | |||
masak | yes, I don't see why both above should work | 14:53 | |
shouldn't* | |||
AlexDaniel | I couldn't sleep yesterday because of this ticket | 14:54 | |
notviki | I don't see why 1...Inf doesn't hang | ||
m: my @a = gather { say "hi" }; | |||
camelia | rakudo-moar 6ffbbf: OUTPUT«hi» | ||
masak | notviki: it's a bit of a special case. | ||
notviki | Well, so that' your answer. | 14:55 | |
masak | notviki: when assigning something known-infinite to an array. | ||
notviki | :S | ||
masak | it doesn't eagerly try to expand it | ||
largely because people expect it not to, rather than hang | |||
notviki | masak: what sort of special case is it? Considering we have no indication for what is infinite | ||
AlexDaniel | so why do we default to implicit “eager” rather than “lazy”? | ||
masak | I believe pmichaud wrote all of this up somewhere long ago | 14:56 | |
is it... S07? | |||
notviki | m: my @a = 1 ... { -1; }; say @a[^50] | ||
camelia | rakudo-moar 6ffbbf: OUTPUT«(1 (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (…» | ||
masak | no, that's written by jnthn | ||
notviki | m: my @a = 1 ... { 999999999999; }; say @a[^50] | ||
camelia | rakudo-moar 6ffbbf: OUTPUT«(1 (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (…» | ||
masak | S03 mentions "mostly eager" and refers to S07, but S07 doesn't mention "mostly eager | ||
" | |||
so probably that was an earlier version of S07 that did that :/ | 14:57 | ||
notviki | m: my @a = 1 ... * < Inf; say @a[^50] | ||
camelia | rakudo-moar 6ffbbf: OUTPUT«(1 (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (…» | ||
notviki gives up | |||
masak | ah, jnthn re-wrote S06 back in Sep 2015 | ||
jnthn++, I mean | |||
notviki: github.com/perl6/specs/commit/89b9...770cd2fbb6 | 14:58 | ||
notviki: search for "Levels of laziness" | |||
I don't know why that section is gone from most-recent -- it still makes sense to me | 14:59 | ||
notviki | m: my @a = 1, * + 1 ... { 999999; }; say @a[^50] | 15:00 | |
camelia | rakudo-moar 6ffbbf: OUTPUT«(1 (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (…» | ||
notviki | m: my @a = 1, * + 1 ... { False }; say @a[^50] | 15:01 | |
camelia | rakudo-moar 6ffbbf: OUTPUT«(timeout)» | ||
notviki | m: my @a = 1 ... Inf-1 | ||
camelia | ( no output ) | ||
SmokeMachine | notviki: running the spec tests for that we talked yesterday... | ||
notviki | Ok, well, makes sense to me then. It's eager unless it can detect the infinite | 15:02 | |
m: my @a = 1 ... NaN | 15:04 | ||
heh | |||
camelia | rakudo-moar 6ffbbf: OUTPUT«(timeout)» | ||
SmokeMachine | How do I run the spec tests in parallel? | 15:05 | |
15:05
grondilu left
|
|||
notviki | TEST_JOBS=7 make spectest | 15:06 | |
And since you're changing a test function, I'd recommend running TEST_JOBS=7 make stresstest | |||
for more thorough test | 15:07 | ||
AlexDaniel | notviki: there's a ticket for NaN | 15:08 | |
15:08
grondilu joined
|
|||
notviki | AlexDaniel: what sort of ticket? | 15:08 | |
The above code doesn't look like a bug to me | 15:10 | ||
AlexDaniel | notviki: hmmm | 15:11 | |
notviki | Well, other than whatever "detect the infinite" special case does | ||
AlexDaniel | notviki: but still, RT #125336 ← all ranges listed there are not marked as infinite | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=125336 | ||
AlexDaniel | m: say (NaN..0).infinite | ||
camelia | rakudo-moar 6ffbbf: OUTPUT«False» | ||
AlexDaniel | m: say (NaN..0)[^20] | ||
camelia | rakudo-moar 6ffbbf: OUTPUT«(Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil Nil)» | ||
AlexDaniel | oh wait… | ||
m: .say for (Inf..0)[^10] | 15:12 | ||
camelia | rakudo-moar 6ffbbf: OUTPUT«NilNilNilNilNilNilNilNilNilNil» | ||
AlexDaniel | m: .say for (NaN..NaN)[^10] | ||
camelia | rakudo-moar 6ffbbf: OUTPUT«NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN» | ||
AlexDaniel | m: say (NaN..NaN).infinite | ||
camelia | rakudo-moar 48e8cc: OUTPUT«False» | ||
rightfold | m: say "Batman!" | ||
camelia | rakudo-moar 48e8cc: OUTPUT«Batman!» | ||
AlexDaniel | well, this | ||
the rest seems to be fixed I guess? | |||
notviki | we have an infinite method :o | ||
AlexDaniel | m: say (0..NaN)[^10] | 15:13 | |
camelia | rakudo-moar 48e8cc: OUTPUT«(0 1 2 3 4 5 6 7 8 9)» | ||
AlexDaniel | m: say (0..NaN).infinite | ||
camelia | rakudo-moar 48e8cc: OUTPUT«False» | ||
notviki | m: .say for (NaN..0)[^20+1024] | ||
camelia | rakudo-moar 48e8cc: OUTPUT«NilNilNilNilNilNilNilNilNilNilNilNilNilNilNilNilNilNilNilNil» | ||
notviki | m: .say for (NaN..0)[^20] | 15:14 | |
camelia | rakudo-moar 48e8cc: OUTPUT«NilNilNilNilNilNilNilNilNilNilNilNilNilNilNilNilNilNilNilNil» | ||
notviki | s: ^1, 'infinite', \() | ||
SourceBaby | notviki, Sauce is at github.com/rakudo/rakudo/blob/6ffb...nge.pm#L77 | ||
15:15
khw joined
|
|||
notviki | Yeah, it just checks for two infinites: github.com/rakudo/rakudo/blob/6ffb...nge.pm#L53 | 15:15 | |
AlexDaniel | also does this for whatevers | 15:16 | |
15:16
pyrimidine left,
pyrimidine joined
|
|||
notviki | m: say Inf cmp NaN | 15:16 | |
camelia | rakudo-moar 48e8cc: OUTPUT«Less» | ||
timotimo | stmuk: what's up? :) | ||
AlexDaniel | m: say (*..50)[^10]' | 15:17 | |
camelia | rakudo-moar 48e8cc: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Two terms in a rowat <tmp>:1------> 3say (*..50)[^10]7⏏5' expecting any of: infix infix stopper postfix statement end statement modifier…» | ||
AlexDaniel | m: say (*..50)[^10] | ||
camelia | rakudo-moar 48e8cc: OUTPUT«(-Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf -Inf)» | ||
AlexDaniel | m: say (*..50).infinite | ||
camelia | rakudo-moar 48e8cc: OUTPUT«True» | ||
AlexDaniel | m: say (-Inf..50).infinite | ||
camelia | rakudo-moar 48e8cc: OUTPUT«True» | ||
notviki | unsure of whether we should add NaN to the list. | 15:18 | |
ralisch | m: say Inf.infinite | ||
camelia | rakudo-moar 48e8cc: OUTPUT«No such method 'infinite' for invocant of type 'Num' in block <unit> at <tmp> line 1» | ||
notviki | There are many other instances where the range would be infinite | 15:19 | |
and we don't detect those either | |||
m: say (1e200 .. 1e300)[^10] | |||
camelia | rakudo-moar 48e8cc: OUTPUT«(1e+200 1e+200 1e+200 1e+200 1e+200 1e+200 1e+200 1e+200 1e+200 1e+200)» | ||
notviki | m: say (1e200 .. 1e300).infinite | ||
camelia | rakudo-moar 48e8cc: OUTPUT«False» | ||
ralisch | m: say (1e200 .. 1e300).elems | 15:20 | |
camelia | rakudo-moar 48e8cc: OUTPUT«(timeout)» | 15:21 | |
notviki | that'll try to reify everything | ||
and fail because it's infinite | |||
SmokeMachine | Thanks! | ||
ralisch | m: say (1e200 .. 1e300).end | ||
notviki | .oO( we have an .end method? ) |
||
camelia | rakudo-moar 48e8cc: OUTPUT«(timeout)» | 15:22 | |
notviki | m: ^5 .end.say | ||
camelia | rakudo-moar 48e8cc: OUTPUT«4» | ||
ralisch | m: say (0 .. 10 ).end | ||
camelia | rakudo-moar 48e8cc: OUTPUT«10» | ||
notviki | -_- | ||
m: ^5 .tail.say | |||
camelia | rakudo-moar 48e8cc: OUTPUT«4» | ||
notviki | m: ^5 .first(:end).say | ||
camelia | rakudo-moar 48e8cc: OUTPUT«4» | ||
notviki | m: ^5 .[*-1].say | ||
camelia | rakudo-moar 48e8cc: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Malformed postfix call (only alphabetic methods may be detached)at <tmp>:1------> 3^5 .7⏏5[*-1].say» | ||
notviki | m: (^5).[*-1].say | ||
camelia | rakudo-moar 48e8cc: OUTPUT«4» | ||
15:23
thayne left
|
|||
notviki | We should add another method... that does the same thing by randomly choosing to call any of those ^ | 15:23 | |
ralisch | m: say (^10).end === (^10).[*-1] | ||
camelia | rakudo-moar 48e8cc: OUTPUT«True» | ||
notviki | I guess the trick here is .end can tell you the answer without reifying everything when it can | 15:24 | |
m: say (-Inf..5).end | |||
camelia | rakudo-moar 48e8cc: OUTPUT«Cannot .elems a lazy list in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
notviki | um... | ||
That's nice. | |||
Ah, right, int ranges only | 15:25 | ||
m: say (-9999999999..999999999999999).end | |||
s: ^1, 'end', \() | |||
SourceBaby | notviki, Sauce is at github.com/rakudo/rakudo/blob/48e8...Any.pm#L86 | ||
notviki | wtf | ||
camelia | rakudo-moar 48e8cc: OUTPUT«(signal SEGV)» | ||
notviki | It's not even a Range method. | ||
ah, end returns an index | 15:26 | ||
m: <a b c d>.end.say | |||
camelia | rakudo-moar 48e8cc: OUTPUT«3» | ||
notviki | m: <a b c d>.first(:end, :k).say | 15:27 | |
camelia | rakudo-moar 48e8cc: OUTPUT«3» | ||
ralisch | m: say (-9999999999..999999999999999).last | ||
camelia | rakudo-moar 48e8cc: OUTPUT«No such method 'last' for invocant of type 'Range' in block <unit> at <tmp> line 1» | ||
15:32
grondilu left
15:33
Dunearhp joined
15:35
grondilu joined
|
|||
SmokeMachine | notviki: looks like its working... | 15:39 | |
cosimo_ | -win 21 | ||
15:40
brrt left
|
|||
SmokeMachine | MacBook-Pro-de-Fernando:rakudo fernando$ ./perl6 -Ilib -MTest -e'pass Q[\]' | 15:40 | |
ok 1 - \ | |||
15:40
telex left
|
|||
ralisch | m: say (-9999999999..999999999999999).perl | 15:41 | |
camelia | rakudo-moar 48e8cc: OUTPUT«-9999999999..999999999999999» | ||
notviki | SmokeMachine: what does ./perl6 -Ilib -MTest -e'todo 1; pass Q[\]' | ||
give you? | |||
SmokeMachine | ok 1 - \ | ||
notviki | :S | ||
What happened to the todo? | |||
SmokeMachine | sorry! | 15:42 | |
ok 1 - \# TODO 1 | |||
15:42
telex joined
|
|||
ralisch | m: say dd (-9999999999..999999999999999) | 15:42 | |
camelia | rakudo-moar 48e8cc: OUTPUT«-9999999999..999999999999999Nil» | ||
notviki | SmokeMachine: that's broken | ||
SmokeMachine | notviki: why? | ||
notviki | SmokeMachine: you escaped the TODO | 15:43 | |
SmokeMachine | :( | ||
Yes... :( www.irccloud.com/pastebin/tB2ijXc0/ | 15:44 | ||
15:45
cdg_ joined
|
|||
notviki | SmokeMachine: and I bet if you run this script in harness it'll fail the run: gist.github.com/zoffixznet/b15a5f5...10e9b44d55 | 15:45 | |
instead of noticing the TODO | |||
15:46
cdg left,
kaare_ joined
|
|||
notviki | "<notviki> That could work." | 15:46 | |
I guess I was wrong :P | |||
SmokeMachine | notvick www.irccloud.com/pastebin/vlRcAsUr/ | 15:47 | |
sorry! no -Ilib! | 15:48 | ||
www.irccloud.com/pastebin/AAfiSqW9/ | |||
15:48
mr-foobar joined
|
|||
SmokeMachine | notviki: I think you are right... :( | 15:49 | |
samcv | i think the backslash is my least favorite key | 15:50 | |
notviki | SmokeMachine: there's one more hack available: Add an extra space here too: github.com/rakudo/rakudo/blob/nom/...t.pm6#L342 | ||
samcv | because it makes things look ugly | ||
notviki | with a comment that space is important | ||
ralisch | Because of leaning toothpick syndrome? | ||
samcv | ralisch, yes | 15:51 | |
just read the source grammar for the atom syntax highlighter (in CSON) | |||
it's got two levels of escaping one for the CSON then one for the regex engine | |||
both requiring different things escaped | |||
and dealing with escapes differently | 15:52 | ||
SmokeMachine | notviki: do you mean " # TODO"? | ||
samcv | nowdays i just have a script i use with `xclip` to just pipe stuff from clipboard, unescape/escape and put it back | ||
work with it in sane form, where it's only escaped as far as for the regex engine | |||
notviki | SmokeMachine: yes | 15:53 | |
AlexDaniel | samcv: is there any preprocessor for this? | 15:55 | |
samcv | uh. well it parses the CSON and unescapes it then passes it to Onigumura regex engine | 15:56 | |
there's a ticket for an enhancement to allow YAML files, but not seeing them implementing that unless somebody random just contributes it or something | |||
dalek | c: d048c11 | (Steve Mynott)++ | doc/Language/faq.pod6: 6.d answer |
16:01 | |
synopsebot6 | Link: doc.perl6.org/language/faq | ||
16:02
TimToady left
16:06
holli joined
16:11
troys joined
16:16
dalek left
16:17
dalek joined,
ChanServ sets mode: +v dalek,
jonas1 joined
|
|||
AlexDaniel | .in 14600d use 6.za after 6.y | 16:22 | |
yoleaux | AlexDaniel: I'll remind you on 23 Dec 2056 16:22Z | ||
16:23
jonas1 left
16:25
dalek left
16:26
dalek joined,
ChanServ sets mode: +v dalek
16:29
yyy left
|
|||
SmokeMachine | notviki: www.irccloud.com/pastebin/SmEPbFrA/ | 16:31 | |
16:32
abraxxa left
16:33
abraxxa joined
|
|||
notviki | SmokeMachine: what does "prove -e './perl6 -Ilib' -vlr foo.t " give? | 16:33 | |
16:33
Khisanth left
|
|||
SmokeMachine | www.irccloud.com/pastebin/7woEElwf/notviki | 16:34 | |
notviki: only the space on # TODO wouldn't make the magic? | 16:35 | ||
notviki | No, because then apperance of '# TODO' in test description would be interpreted as a TAP command | 16:36 | |
SmokeMachine | I mean: the space on # TODO and change "#" to "\#" without space | 16:39 | |
no... | 16:40 | ||
16:40
cibs left
|
|||
SmokeMachine | it needs the space | 16:40 | |
16:42
cibs joined
|
|||
SmokeMachine | notviki www.irccloud.com/pastebin/kzxjjPhG/ | 16:44 | |
16:46
Khisanth joined
|
|||
notviki | Well, yeah, add space before "#TODO" and change "#" to " \#" | 16:50 | |
16:50
abraxxa left
16:51
abraxxa joined
|
|||
samcv | notviki, can there be leading spaces before #?rakudo.moar in test TODO's | 16:52 | |
notviki | I don't know | ||
16:54
troys is now known as troys_
|
|||
SmokeMachine | notviki: github.com/rakudo/rakudo/pull/985 | 16:56 | |
16:56
pierre_ left
16:57
pierre_ joined
16:58
abraxxa left
|
|||
samcv | m: say '«'.uniprop('Bidi_Mirroring_Glyph') | 16:59 | |
camelia | rakudo-moar 7c8b70: OUTPUT«»» | ||
samcv | m: say '['.uniprop('Bidi_Mirroring_Glyph') | ||
camelia | rakudo-moar 7c8b70: OUTPUT«]» | ||
samcv | nice | ||
AlexDaniel, how often does unicodable rebuild? | 17:00 | ||
evalable6, say 'test' | |||
evalable6 | samcv, rakudo-moar 7c8b705: OUTPUT«test» | ||
ralisch | m: say '﴾'.uniprop('Bidi_Mirroring_Glyph') | 17:01 | |
camelia | rakudo-moar 7c8b70: OUTPUT«» | ||
samcv | u: { .uniprop-int('Bidi_Mirroring_Glyph') } | ||
m: "﴾".uniname.say | |||
camelia | rakudo-moar 7c8b70: OUTPUT«ORNATE LEFT PARENTHESIS» | ||
unicodable6 | samcv, U+0028 LEFT PARENTHESIS [Ps] (() | ||
samcv, U+0029 RIGHT PARENTHESIS [Pe] ()) | |||
samcv, U+003C LESS-THAN SIGN [Sm] (<) | |||
notviki | samcv: I guess not, since /spec/S05-mass/properties-general.t is now failing for me. | ||
unicodable6 | samcv, gist.github.com/fb0ab77b1294ef82eb...8119008ebc | ||
samcv | my least favorite ralisch | ||
17:01
pierre_ left
|
|||
SmokeMachine | My second pull request... I'm so happy! :) | 17:03 | |
ralisch | samcv: Shh bby is ok | ||
17:05
cibs left
17:07
cibs joined
|
|||
ralisch | SmokeMachine, which city are you in? I will buy you a beer. | 17:07 | |
toolforger | gratz :-) | 17:08 | |
Not sure whether I already have 2 - does a retracted PR count? ;-) | 17:09 | ||
notviki | SmokeMachine: which city are you in? I'll buy you some cocaine. | 17:10 | |
17:11
bwisti joined
|
|||
ralisch | I would buy some magic powder for him, but I'm not prepared to deal with him horny. | 17:11 | |
17:13
cibs left
|
|||
SmokeMachine | ralisch: Rio de Janeiro! I want that beer! 😃 | 17:13 | |
17:13
cibs joined
|
|||
SmokeMachine | notviki: no, thanks! | 17:13 | |
ralisch | I'm in Curitiba. | ||
toolforger | No thanks, I have Coke :-) | 17:14 | |
17:15
girafe joined
|
|||
timotimo | ralisch: what is "shh bby is ok" supposed to mean? | 17:16 | |
ralisch | knowyourmeme.com/memes/shh-bby-is-ok | 17:17 | |
timotimo | weird. | 17:18 | |
SmokeMachine | ralisch: mais fácil p/ te cobrar então! :) | ||
17:18
colomon joined,
troys_ is now known as troys
|
|||
ralisch | SmokeMachine: Sim sim | 17:18 | |
Te perguntei a cidade por reconhecer o nome zuca. | 17:19 | ||
colomon just managed to create a Wunderlist task for himself using perl6 and Inline::Python. :) | |||
skids | General Web2.0 survival rule: if it's nonsense, google it with the word "meme" after it. | 17:20 | |
toolforger | lol | ||
ugexe | tadzik: can you merge github.com/tadzik/rakudobrew/pull/110 ? | 17:22 | |
yoleaux | 14:36Z <tbrowder> ugexe: is zef installed with Rakudo Star yet | ||
ugexe | .tell tbrowder stmuk is heading that. afaik he has it working so it should be in the next release or so | 17:23 | |
yoleaux | ugexe: I'll pass your message to tbrowder. | ||
17:24
Ven joined
|
|||
SmokeMachine | Merged! \o/ | 17:26 | |
colomon | nine++ # Inline::Python is wonderful | 17:28 | |
17:29
Ven left
17:31
zacts joined
17:32
leego joined
|
|||
notviki | SmokeMachine: did you run spectest? | 17:32 | |
17:32
shayan_ joined
|
|||
notviki feels like a badguy... chasing after roast breakers >_< | 17:33 | ||
timotimo | captain planet~ | ||
notviki | it's even part of 6.c-errata :/ | 17:34 | |
colomon | Roastbreaker: The latest Bond flick. | ||
17:35
leego left,
leego joined
17:42
girafe2 joined
|
|||
colomon | nine: is there a way to use named arguments with python method calls? It’s the first thing that didn’t Just Work for me on this project… | 17:43 | |
17:44
girafe left
|
|||
toolforger | yes, for any Python method or function | 17:48 | |
colomon | afk # noms with fam | ||
17:52
hartenfels joined,
PotatoGim left
17:53
tbrowder joined,
w4and0er96 left,
clkao left
|
|||
SmokeMachine | notviki: I'm not sure if I did it after the space on # TODO... I'm sorry... | 17:54 | |
I'm out of my computer now... :( | 17:55 | ||
17:55
PotatoGim joined
17:56
dugword joined
|
|||
nine | colomon: not yet, but I'd love to support them. In contrast to Perl 5's Inline::Python they were a real hassle. | 17:56 | |
17:56
peteretep joined
17:57
w4and0er96 joined,
domidumont left
|
|||
notviki | SmokeMachine: there was a failure, but in this case we were able to amend the test. | 17:57 | |
17:57
BuildTheRobots joined
17:59
wamba left
18:00
olinkl joined
18:02
lizmat left
|
|||
SmokeMachine | I'll be out of my computer by 8 days... | 18:03 | |
notviki | crazy | ||
timotimo | oh no, you'll remain stuck inside your computer for 8 days? | 18:04 | |
18:05
lizmat joined
|
|||
AlexDaniel | samcv: “how often does unicodable rebuild?” – depends. Stuff in { … } is executed on the latest rakudo (which is built almost immediately) | 18:06 | |
samcv: however, if you are not using a code block, it will use whatever it is currently running on | |||
which is usually one or two weeks old | |||
18:08
clkao joined
|
|||
SmokeMachine | notviki: so is it fixed? | 18:10 | |
notviki | SmokeMachine: yes | 18:11 | |
SmokeMachine | Great! What was it? | ||
notviki | SmokeMachine: test that tested output of TODO | ||
SmokeMachine | notviki: so there was a test that tests tests?! :P | 18:12 | |
notviki | yes | 18:13 | |
SmokeMachine | notviki: thanks for all the help! | 18:14 | |
lizmat starts working on the Perl 6 Weekly before her battery runs out (because of power outage) | |||
18:17
curt_ joined
18:18
rafaschp joined,
CIAvash left
18:19
ralisch left
|
|||
curt_ | p6: say (1..10).Set eqv (1..10).reverse.Set; class MyObj { has Set $.s }; say MyObj.new(s => (1..10).Set) eqv MyObj.new(s => (1..10).reverse.Set); | 18:20 | |
camelia | rakudo-moar 618877: OUTPUT«TrueFalse» | ||
timotimo | only works if you turn your MyObj into a value type by giving it a proper WHICH | 18:21 | |
m: say (1..10).Set.WHICH; class MyObj { has Set $.s }; say MyObj.new(s=>(1..10).Set).WHICH | 18:22 | ||
camelia | rakudo-moar 618877: OUTPUT«Set|Int|1 Int|10 Int|2 Int|3 Int|4 Int|5 Int|6 Int|7 Int|8 Int|9MyObj|61563736» | ||
notviki | timotimo: what's a value type? | 18:23 | |
curt_ | I agree there are ways to make it work, but why doesn't the default Any eqv Any just call eqv() on each attribute instead of string comparing their .perl()s? | 18:24 | |
timotimo | a type whose identity is defined by its contents | ||
18:24
shayan_ left
|
|||
notviki | Ah | 18:24 | |
timotimo | i don't have a good answer, curt_ | 18:25 | |
lizmat | curt_: that would then only be the public attributes, like the ones that .new accepts, right ? | 18:26 | |
perhaps we should make a ticket for that, so the idea won't fall through the cracks | 18:27 | ||
notviki | curt_: in your case it doesn't get to .perls it fails because they're different object instances | ||
m: say (1..10).Set.perl | 18:29 | ||
camelia | rakudo-moar 618877: OUTPUT«set(5,7,9,4,8,3,1,6,2,10)» | ||
notviki | m: say (1..10).reverse.Set.perl | ||
camelia | rakudo-moar 618877: OUTPUT«set(5,9,7,8,4,3,6,1,10,2)» | ||
notviki | m: say (1..10).reverse.Set.perl | ||
camelia | rakudo-moar 618877: OUTPUT«set(5,9,7,8,4,3,6,1,10,2)» | ||
notviki wonders if that order is random and so <eqv> comparison of string .perl is flawed due to that | |||
lizmat | notviki: not true | ||
curt_ | p6:say (1..10).Set eqv (1..10).reverse.Set; class MyObj { has Set $.s; method perl { 'foo' }}; say MyObj.new(s => (1..10).Set) eqv MyObj.new(s => (1..10).reverse.Set); | 18:30 | |
lizmat | it does get to the .perl | ||
curt_ | p6: say (1..10).Set eqv (1..10).reverse.Set; class MyObj { has Set $.s; method perl { 'foo' }}; say MyObj.new(s => (1..10).Set) eqv MyObj.new(s => (1..10).reverse.Set); | ||
camelia | rakudo-moar 618877: OUTPUT«TrueTrue» | ||
notviki | lizmat: ah right | ||
18:35
troys is now known as troys_,
shayan_ joined
|
|||
AlexDaniel | m: say bag(<a b c>).Set.Bag.Set.Mix.Hash.Mix.Bag.Set | 18:36 | |
camelia | rakudo-moar 618877: OUTPUT«set(a, c, b)» | ||
AlexDaniel | xD | ||
timotimo | Set-it.Bag-it.Mix-it.now-upgrade-it | ||
toolforger | m: say bag(<a b c>) | 18:37 | |
camelia | rakudo-moar 618877: OUTPUT«bag(a, c, b)» | ||
18:37
pierre_ joined
|
|||
toolforger | m: say bag(<a b c>).Set | 18:37 | |
camelia | rakudo-moar 618877: OUTPUT«set(a, c, b)» | ||
toolforger | That's a surprising order - I don't mind, but I guess it will confuse some people | 18:38 | |
rafaschp | Why would it keep the order? | 18:39 | |
timotimo | the order is due to how the hash function works internally | 18:40 | |
notviki | toolforger: setties and baggies are not ordered | ||
timotimo | j: say bag(<a b c>) | ||
camelia | rakudo-jvm 8ca367: OUTPUT«bag(c, a, b)» | ||
toolforger | :-D | ||
something to mention in the docs | |||
conditions under which you can depend on the sort order being the same | 18:41 | ||
typically, stable within the same run of the same VM | |||
timotimo | never rely on this | ||
psch doesn't see any sort there | |||
notviki | toolforger: those conditions are none | ||
timotimo | also, when you increase the size of the bag, it'll switch the order of the first few around, too, i think | 18:42 | |
toolforger | timotimo, that would be a good idea to mention | ||
rephrasing | |||
AlexDaniel | if you need order, you don't want set/bag/mix/hash etc. | ||
toolforger | sometimes you don't care about the order but you need the order to be "the same as last time" | 18:43 | |
AlexDaniel | no, it's not a good idea to mention how the order might change | ||
18:43
lizmat left
|
|||
AlexDaniel | because there is no order | 18:43 | |
timotimo | correct | ||
toolforger | Actually it is important to mention that | 18:44 | |
I have experienced in-team discussions | |||
18:44
lizmat joined
|
|||
RabidGravy | if you want them in a predicatable order then it's sort them | 18:44 | |
toolforger | A says "let's avoid depending on the order because the docs say don't" | ||
then B says "but it is stable" | |||
18:44
xinming_ joined
|
|||
toolforger | challenges A to show situations where the order changes | 18:44 | |
psch | and then you get epsilon delta for comparisons | 18:45 | |
toolforger | now A needs to know how to trigger order-changing mutations | ||
psch | oh, wait, that was ieee754 | ||
AlexDaniel | no, A checks out roast | ||
and sees that there are no tests that check that the order is stable | |||
toolforger | that's not going to convince B | ||
AlexDaniel | therefore it is not | ||
toolforger | I have seen that kind of discussions | 18:46 | |
AlexDaniel | well sorry but then B can go f… | ||
toolforger | B often is the project leader... | ||
RabidGravy | hand them a broom and tell them to go amuse themselves | ||
psch | xkcd.com/1172/ | ||
toolforger | I have been A more often than I care to remember | ||
psch | that's B, innit :l | ||
well, one version of B i suppose | |||
"i tested it, it's stable, who cares what the docs say" is what i see the same | 18:47 | ||
AlexDaniel | toolforger: anyway, we don't doc what is not specced | ||
toolforger: and we're not going to spec how the order should or should not change | |||
toolforger | I'm not talking about speccing | ||
RabidGravy | also isn't there a CERT advisory regarding hashing that mentions this stuff? | ||
from like ten years ago | |||
18:47
xinming left
|
|||
AlexDaniel | toolforger: but there's no doccing without speccing | 18:47 | |
toolforger | now that's a horrible approach | 18:48 | |
because it leaves A out in the cold | |||
AlexDaniel | but at least A is right :) | ||
rafaschp | The docs start like this: "Unordered collections of unique and weighted objects in Perl 6" | ||
toolforger | and you can't handwave real-world workplace problems away by sloganning | ||
psch | well, the established practice in dev is "A does CYA, shit breaks, B complains, A proves B is to blame" | 18:49 | |
and "find a new job if it doesn't change" | |||
timotimo | what is CYA again? | ||
rafaschp | It's mentioned 5 times they have no order. | ||
psch | cover your ass | ||
timotimo | ah | ||
toolforger | psch, not everybody has the kind of luxury you're taking for granted with that | ||
blaming your lead or your boss isn't always an option | |||
finding another job isn't either, not for everybody | |||
AlexDaniel | rafaschp: there are still some issues on these pages though | 18:50 | |
toolforger | and outright refusal to help people with real-world problem... sounds pretty un-Perlish to me | ||
AlexDaniel | rafaschp: for example, “reverse” is added to all of them | ||
skids | Weren't we randomizing at some point just to deal with that? | ||
mst | toolforger: if they're explicitly documented as unordered I don't understand what real-world problem you still have he4re | ||
timotimo | toolforger: there are no technological solutions to social issues | ||
AlexDaniel | rafaschp: it the docs for reverse say “Returns a list with the same elements in reverse order.” | ||
mst | toolforger: please stop insulting the channel and let's concentrate on the actual problem here | ||
psch | skids: yeah, i think we explicitly randomize | ||
or, at least used to | |||
18:51
MasterDukeLaptop joined
|
|||
toolforger | mst, I just explained; if you disagree with some of the points, we can discuss that | 18:51 | |
rafaschp | There may be, but the fact that they are unordered is mentioned 6 times. | ||
mst | toolforger: your explanation was that it isn't documented. but it is. | ||
AlexDaniel | rafaschp: now, that being on that page might suggest there is some order… which is a bit unfortunate | ||
geekosaur | the randomization was for one of the things that can autothread, iirc, not hashes | ||
AlexDaniel | rafaschp: I'll create an issue for that, let's see if we can fix it… | ||
toolforger | timotimo in this case it could | ||
mst | toolforger: I'm looking for a problem based on this reality, rather than one you made up | ||
toolforger: what, specifically, are you finding not-sufficiently-guaranteed here? | 18:52 | ||
MasterDukeLaptop | toolforger: did you get my email? and if so, did it make sense? | ||
toolforger | what's the reasons against putting in an example? I agree it cannot be spec, but it could be advice | ||
mst | toolforger: an example of what? | ||
toolforger | MasterDukeLaptop yes, thanks, I didn't get around to trying things out | ||
mst | I'm sorry, I got distracted by all your shouting 'unperlish' when you didn't immediately get your way | ||
toolforger | mst an example of how ordering assumptions could break | ||
psch | ah, there's the problem | ||
RabidGravy | the observation that the order of the keys may be stable in some circumstances is just that, an observation, that is not what is documented | ||
MasterDukeLaptop | toolforger: np, just wanted to make sure i got it to the right place | 18:53 | |
mst | ah, hmm | ||
AlexDaniel | these examples won't work on all implementations though | ||
psch | you're assuming order when dealing with unordered collection types | ||
mst | ok, hang on, let's step back a moment | ||
you're arguing paast each other | |||
psch | mst++ | ||
mst | (1) we cannot produce an example that will reliably work on all implementations, and in fact, you will often get the problem with unordered things that once every N runs the thing produces the same order anyway | 18:54 | |
so I don't believe that we can produce a runnable or specifyable answer here | |||
toolforger | exactly | ||
mst | *however* the whole "this is unordered, but may initially to a naive developer appear ordered" problem is very real | ||
rafaschp | m: say bag(<a b c>).reverse | ||
camelia | rakudo-moar 618877: OUTPUT«(b => 1 c => 1 a => 1)» | ||
toolforger | mst, exactly my thinking | ||
rafaschp | m: say bag(<a b c>) | ||
camelia | rakudo-moar 618877: OUTPUT«bag(a, c, b)» | ||
mst | note that lots and lots of people (including past-mst) run face-first into the fact that lots of SQL database implementations | 18:55 | |
return things in PK order -most- of the time because that's more convenient to the implementation | |||
thereby leading to people not realising that the order is 'whatever the db feels like' unless you provide ORDER BY | |||
toolforger | oh yeah | ||
mst | toolforger: am I right in thinking that you're scared of basically the same mistake here? | ||
toolforger | exactly, mst | 18:56 | |
rafaschp | m: say (1+1i) < (2+1i) | ||
camelia | rakudo-moar 618877: OUTPUT«Can not convert 1+1i to Real: imaginary part not zero in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
mst | ok, so, while you can't document *all* the things that aren't specified | ||
because, y'know, infinite number of possible things to do wrong | |||
skids | Liberally peppering docs with conspicuous ".sort" calls might serve as a clue. | ||
mst | I've seen so many people blow their own feet off with this particular thing | ||
that I think it might be worth calling it out a bit more clearly | 18:57 | ||
toolforger | +1 | ||
AlexDaniel | so we should stress yet again that it is unordered? | ||
mst | AlexDaniel: "yet again" is not constructive, please remain quiet until you've remembered how to be nice | ||
AlexDaniel | :X | ||
rafaschp | One smaller thing we can take is that calling .reverse on them shouldn't work? Like '<' doesn't work in Complex numbers? | ||
timotimo | .reverse is a method on Cool which calls .list on your thing for you | 18:58 | |
m: say 5.reverse | |||
camelia | rakudo-moar 618877: OUTPUT«(5)» | ||
mst | the trick is to try and avoid people falling into the trap, and the word 'unordered' being in several places is, humans being humans, probably sadly not sufficient | ||
toolforger | "stress again" isn't going to convince newbies who didn't care the first time they read it | ||
mst | more they probably skipped over the word anyway | ||
toolforger | true | ||
mst | and lots of people will be coming from languages with only arrays and hashes and therefore it won't even occur to them this is a problem | 18:59 | |
rafaschp | Well, above they were talking about CYA, which the docs already do. Now were moved to LTA. | ||
toolforger | what's CYA and LTA? | ||
mst | cover your arse and less than awesome | ||
toolforger | ah thx | 19:00 | |
mst | and, no, everyody else inferred CYA from toolforger wanting to stop the junior doing the LTA thing | ||
and also I don't care which it is, the question is "will this stab newbies in the foot?" | |||
now, getting back to the point | |||
I would -love- to insert the SQL comparison somewhere, but that would require some sort of tutorialish spot to insert it into, and I dunno if we have one of those yet | 19:01 | ||
*however* | |||
is there a specific requirement currently that documentation examples produce exactly the ooutput from the examples on the current rakudo? | |||
mst is wondering if we could build multiple return orderings into a SYNOPSIS or similar | |||
so, like, the 'this is not the order I expected' hopefully sinks in from them reading the code | 19:02 | ||
which newbies are more likely to do, since the examples are what they're about to copy-paste | |||
toolforger | That would be awesome to have; it's called doctests in Python, and it helped a ton because it would tell you if one of your changes would break example doce in the docs | ||
mst | toolforger: the whole point is we can't have that for this. | ||
toolforger | "would be awesome" unfortunately isn't "we can", I know | 19:03 | |
mst | toolforger: well, no, it's more ... argh | ||
toolforger | heh | ||
still, doctests would help | |||
mst | my point is that for *most* things we *can* do something like that in *theory* | ||
toolforger | if every doctest includes a sort call, that should help | ||
mst | ok, but ... yes. that's exactly what I'm -not- suggesting | 19:04 | |
because it exactly causes the exact problem you had in the first place | |||
mst grumbles | |||
ok, gimme a second to swig more coffee, and I shall try this again | |||
MasterDukeLaptop | there are some tests for the examples in the docs. not sure if they check output, it may just be that they compile | ||
mst | because going from 'AlexDaniel and toolforger are talking apst each other' to 'mst is talking past everybody' is not actually an improvement. | 19:05 | |
AlexDaniel | alright folks | ||
github.com/perl6/doc/issues/1105 github.com/perl6/doc/issues/1106 github.com/perl6/doc/issues/1107 | |||
feel free to edit these issues or comment on them | 19:06 | ||
mst | oooh | ||
traps! | |||
AlexDaniel | but I think if these three are resolved, then we won't have any issues… | ||
mst | comment added to 1107 wrt the SQL SELECT thing | 19:07 | |
RabidGravy | As a slightly tangential thing I started a thing a while back that is intended to test the SYNOPSIS in some POD, because that is a major cause of bug reports for my stuff :) | ||
mst | yes. what I was trying to make sense about, and will try to do so again in a minute, is to suggest better ways to achieve the same goal as 1106 | ||
but I need to get my thought process together | 19:08 | ||
and try and produce an explanation that doesn't confuse everybody like my last attempt did | |||
19:08
pierre_ left
|
|||
toolforger | comment added to #1106 to favor tangible advice over mere highlighting | 19:11 | |
skids wonders if order can change during GC promotion | |||
19:11
wamba joined,
espadrine joined
|
|||
mst | ok, so, what I was thinking is | 19:11 | |
where we have examples that show return values | |||
if we make sure the return values are different orders in each example | 19:12 | ||
toolforger | would an order change confuse running iterators? | ||
mst | that might imply to people that the orders are going to be weird | ||
am I making any sense here? | |||
toolforger | oh, there's the general question what happens to an iterator if the underlying collection is mutated | ||
mst | "shuffle the results in the examples" seems like a neat approach to me | 19:13 | |
toolforger | is there anything official about that? | ||
mst | and maybe a bit more visceral than just words | ||
toolforger | problem is that result shuffling means manual editing instead of simple copy&paste | ||
with the added risk of introducing typos | 19:14 | ||
skids | Reversing key/value mappings in a bag might work. | ||
rafaschp | "shuffle the results in the examples" We should shuffle the results in the implementation. | ||
notviki | heh | ||
mst | rafaschp: the trouble with that is that it tends to be a pessimisation | ||
timotimo | or maybe always have .sort in the examples? | ||
toolforger | Actually results shuffling might be a good idea | ||
skids | @a{@a.keys.sort} = @a{@a.keys.sort.reverse} | ||
erm, damn, % | |||
toolforger | not for normal mode, but for test runs | ||
rafaschp | mst: I know, it's but a joke. | 19:15 | |
AlexDaniel | I remember we were doing it for » but then suddenly stopped? | ||
mst | rafaschp: yeah, not really | ||
what toolforger said is potentially totally sane | |||
notviki | I have an idea how to make myself productive.... | ||
19:15
notviki left
|
|||
mst had been thinking about that earlier | 19:15 | ||
AlexDaniel | c: all <a b c d e f g h i>».say | ||
mst | a test module that randomises it | ||
committable6 | AlexDaniel, gist.github.com/3ec5be837a2f7d80f5...e1394bc331 | 19:16 | |
skids | So, having a CLI flag that pathologically shuffles everything that is unordered might not be a bad thing. | ||
AlexDaniel | yea, so what changed… | ||
toolforger likes to be potentially sane :-D | |||
rafaschp | s/CLI flag/pragma/ | ||
mst | pragma only works lexically | ||
for test files you want to screw over -everybody- | |||
timotimo | yup | 19:17 | |
explode everything | |||
rafaschp | Would that appear in the docs? | ||
19:17
jabowery left
|
|||
AlexDaniel | bisect: old=2015.07 <a b c d e f g h i>».say | 19:17 | |
toolforger | If the pragma is being checked by all implementations? | ||
bisectable6 | AlexDaniel, Bisecting by output (old=2015.07 new=6188771) because on both starting points the exit code is 0 | ||
AlexDaniel, bisect log: gist.github.com/d4440b7e2dec7325ef...44dcdd3908 | |||
AlexDaniel, (2015-08-22) github.com/rakudo/rakudo/commit/a5...45458185fe | |||
AlexDaniel | c: a5193055^,a5193055 <a b c d e f g h i>».say | ||
committable6 | AlexDaniel, ¦«a5193055^»: igecahfdb¦«a519305»: abcdefghi | ||
toolforger | It would need to be a global flag | 19:18 | |
AlexDaniel | soooo… why? | ||
toolforger | to be able to screw everybody | ||
timotimo | why did we stop randomizing hyper? | ||
AlexDaniel | yes | ||
timotimo | most probably performance | ||
toolforger | Yeah, you have to be smart about performance | 19:19 | |
AlexDaniel | the comment tells nothing about it | ||
rafaschp | And then copy-paste the examples when using the flag, to show newbs that it can be lopsided. | ||
toolforger | Probably use a subclass to avoid performance issues | ||
AlexDaniel | I'll go file a rakudo ticket for this, just so that we have a documented decision on why it is this way | ||
mst | this is the annoying thing, having the implementation work in the way most likely to confuse newbies | 19:20 | |
is also almost always the fastest way for it to work | |||
toolforger: don't you just love the real world | |||
toolforger | In Java land they use factories for that kind of performance issue, but it's complicating things hugely there; Perl might have better ways for switching in a different implementation | ||
yeah, real world can be a real pain :-) | |||
or really sweet | 19:21 | ||
AlexDaniel | well, in theory, we don't really have to shuffle it. Just process the first element as the last one and that's it, it's no longer in order | ||
skids | Any reason not to make that part of the debugger build? | ||
toolforger | though stable-within-the-VM order tends to be a net win | ||
mst | if the real world is 'really sweet' IME it usually means some &*$% put sugar in my coffee again | ||
AlexDaniel | and the rest is as sequential as it can be, so no performance issues | ||
toolforger | it's still an extra test | 19:22 | |
would that test be on the code path for every call? | |||
BTW sort order problems came up pretty often in SymPy | 19:23 | ||
they adressed that by xor-ing in a random seed into hash values | |||
mst | lots of perl5 test suites started failing after we added hash randomisation | 19:24 | |
toolforger | the seed was logged in the output, and could be manually set via command line, so test results stayed repeatable as needed | ||
otherwise, the random seed was initialized from timestamp | |||
mst | toolforger: heh. compare: metacpan.org/pod/Test2::Plugin::SRand | ||
toolforger | I think they monkey-patched the hashtable classes | 19:25 | |
rafaschp | P5 does the same thing for security. | ||
timotimo | right, there's an attack that trashes performance by knowing/guessing what buckets values will end up in and giving many of those values | ||
toolforger | Test2::Plugin::SRand does the same thing for random numbers, yes | 19:26 | |
AlexDaniel | wait, wasn't there a ticket for ».say ? | ||
a doc one | |||
timotimo | yeah we wanted to make sure we never have >>.say in the docs | ||
mst | toolforger: I just thought it was interesting that roughly the same behaviour had been independently invented | 19:27 | |
skids | .oO(siphash) |
19:28 | |
toolforger | mst, yeah it's a pretty repeating pattern. For SymPy (symbolic math in Python) it was that some algorithms turned out to critically depend on term order in inputs, but no test would detect that unless you actively shuffled terms | 19:29 | |
so it seems to be a recurring theme | |||
and not just for randomized stuff | 19:30 | ||
mst | where possible, I sort() away such problems | ||
rafaschp | So, the answer is that we should xor salt wih the hashes in every run? | ||
toolforger | Actually that's what Java does, it does not have unordered collections | ||
mst | Moo (a lightweight perl6-style OO system in perl5) always populates attributes in dictionary order | ||
toolforger | I think the reasoning is that usually collections get sorted anyway | ||
19:31
pyrimidine left,
pyrimidine joined
|
|||
toolforger | unsorted collections just tend to get sorted multiple times during their lifetime | 19:31 | |
but of course that's just assumptions, YMMV | |||
AlexDaniel | ok, another ticket RT #130485 | 19:32 | |
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130485 | ||
AlexDaniel | ok, here is the old ticket for ».say github.com/perl6/doc/issues/960 | ||
tadzik | ugexe: done :) | ||
AlexDaniel | timotimo: it's not just the docs, we want to clearly say that people should not do that | 19:33 | |
timotimo | ah | ||
good point | |||
AlexDaniel | anyway, does anybody have any other concerns regarding the order of things? | ||
I can file more tickets if you tell me about the actual issues that could be solved | 19:34 | ||
mst pokes github.com/perl6/doc/issues/1106 | |||
19:34
darutoko left
19:35
labster joined
|
|||
toolforger | I'm somewhat unsure about repeating the same mantra everywhere | 19:36 | |
it might make the point more clear | |||
but it might confuse people if it's forgotten somewhere | |||
mst | oh, true | ||
toolforger | they'd start to be unsure whether the omission is intentional or not | ||
AlexDaniel | mst: we can do that, yea. Normally we want our examples to be runnable so that we can find broken examples automatically by comparing the actual output and the output in the docs, but there are many exceptions to that so it's cool. | ||
mst | AlexDaniel: I asked about comparing output earlier and nobody answered me :) | 19:37 | |
toolforger: there we go, apparently they do -mostly- work like doctests :) | |||
(it was in the middle of my wall of text, mind, I'm not complaining) | |||
AlexDaniel | and we don't enforce that currently | 19:38 | |
toolforger | I have a pretty fiendish idea: have a "doctest mode" that switches all unordered collections to ordered ones, and produce example output with that so all outputs will ge sorted | ||
this makes doctest outputs easier to read for humans | |||
19:38
nowan_ left
|
|||
toolforger | BUT as soon as people try the doctests at home, they will get different results and instantly be unsure that they can get repeatable order in their unordered collections | 19:39 | |
AlexDaniel | I don't think these are supposed to be used by regular users, this is just to keep our docs right | 19:40 | |
toolforger | people copy&paste example code when exploring stuff | ||
19:41
nowan joined
|
|||
AlexDaniel | well, if it comes with “# order is NOT guaranteed” comment that I guess it's ok | 19:41 | |
then* | |||
toolforger: anyway, thanks for bringing up the issue :) | 19:43 | ||
toolforger | :-) | ||
AlexDaniel | toolforger: it was a bit tough but I guess there's a clear way forward now | 19:44 | |
toolforger | sorry for being tough myself | ||
AlexDaniel | toolforger: if you want to tackle this more, perhaps consider submitting a PR? | ||
well, it was a problem on our end too | 19:45 | ||
toolforger | I'm just learning Perl, and I have too little insight into the ecosystem right now | ||
19:45
Ven joined
|
|||
toolforger | Big thanks to mst for deescalation | 19:46 | |
rafaschp | toolforger: I'm sorry I didn't understand your question, I assumed things I shouldn't have. | ||
AlexDaniel | toolforger: well, it's not so much about the ecosystem? I think you're the right person to document why the whole thing is a trap. But it's up to you, of course | 19:48 | |
toolforger | ah, documentation is not a problem | ||
I thought you were talking about implementing the shuffle and/or the sort-all modes | 19:49 | ||
AlexDaniel | and we can always start with something basic and then build upon | ||
toolforger | true | ||
on it | |||
give me a bit | |||
AlexDaniel | toolforger++ | ||
toolforger | that's going to be ma 2nd accepted PR then - break out the confetti! | 19:50 | |
:-D | |||
s/ma/my/ | |||
19:50
Ven left
19:58
petrutrimbitas joined
20:00
wamba1 joined
20:01
wamba left
20:02
bjz joined
20:09
pierre_ joined
20:14
pierre_ left
20:16
rafaschp left,
hankache joined
20:19
cibs left
20:20
cibs joined
20:21
TEttinger joined,
dugword left
20:22
pyrimidine left
20:23
pyrimidine joined
|
|||
dalek | osystem/MARTIMM-patch-1: 0b910d1 | (Marcel Timmerman)++ | META.list: Tinky::Hash as an extension on Tinky |
20:26 | |
osystem: 0b910d1 | (Marcel Timmerman)++ | META.list: Tinky::Hash as an extension on Tinky |
20:27 | ||
osystem: 18f69bd | (Marcel Timmerman)++ | META.list: Merge pull request #277 from perl6/MARTIMM-patch-1 Tinky::Hash as an extension on Tinky |
|||
20:28
kjs_ joined
20:31
cibs left
20:32
Tonik left,
cibs joined
20:33
sufrostico joined,
pierre_ joined
20:38
cdg_ left
20:40
cdg joined
|
|||
dalek | osystem: 04dd61b | (Alexey Melezhik)++ | META.list: Update META.list Sparrowdo module to manage Ruby gems via Ruby bundler. |
20:40 | |
osystem: 3500bcb | RabidGravy++ | META.list: Merge branch 'master' into master |
|||
osystem: 51d7cbe | RabidGravy++ | META.list: Merge pull request #278 from melezhik/master Add Sparrowdo::Ruby::Bundler to ecosystem |
|||
20:42
kjs_ left
20:44
cdg left
|
|||
RabidGravy | all groovy, surprised that doesn't happen more often (merge conflicts on the META.list) | 20:45 | |
20:45
sufrostico left
|
|||
RabidGravy | Also MARTIMM++ # most groovy, I was thinking of doing that myself :) | 20:46 | |
20:47
kjs_ joined
20:49
zakharyas joined
|
|||
stmuk | w00t! FOSDEM train tickets! 2 EU Belgium beers + Perl | 20:49 | |
20:53
sjohnsen joined
|
|||
RabidGravy | rarr! | 20:53 | |
21:00
sjohnsen left,
Ven joined
21:01
sjohnsen joined
|
|||
DrForr | I need to arrange my time off. | 21:02 | |
masak | while we're on the subject of macros (as we were earlier today): | ||
I have an open grant for bringing macros to Rakudo | |||
I got it to the halfway point, and I feel pretty pleased with the correspondence between the grant and the work done on that part | 21:03 | ||
but then my re-thinking and the blog post I linked to made the second half of the grant largely moot | 21:04 | ||
and I can tell empirically that my time for non-$work things isn't as realiable as it used to be before I became a parent | 21:05 | ||
21:05
Gasher left,
Gasher joined
|
|||
masak | I guess I should at some point have a small chat with my grant manager, pmichaud ;) | 21:06 | |
anyway, that's the lay of the land. as you all know, I'm still very eager to bring macros to Perl 6 and to Rakudo | |||
the 007 experiment has been fantastic in mapping out what needs doing | 21:07 | ||
DrForr | I'm looking forward to testing them :) | ||
lizmat | .oO( is that newspeak? "realiable" :-) |
21:08 | |
21:08
sjohnsen left
|
|||
masak | no, it's just me being a klutz with the keyboard :P | 21:09 | |
r-e-l-i-a-b-l-e | |||
21:09
setty1 joined,
hankache left
21:10
hankache joined
21:15
Ven left
21:18
bjz left
21:21
Ven joined
21:27
rindolf left
21:28
Ven left
21:31
petrutrimbitas left,
shayan_ left
|
|||
geekosaur hides under a rock during the mailstorm... | 21:34 | ||
21:35
Ven joined
21:36
ilmari left,
ufobat joined
|
|||
ufobat | what would be the right way to say that a variable my $foo should by of the type of a role Foo? | 21:38 | |
my Foo $foo? | |||
m: role Foo {method n{...}}; class Bar does Foo {method n{"n"}}; my Foo @a = (); @a.push: Bar.new; say @a[0].n | 21:40 | ||
camelia | rakudo-moar 618877: OUTPUT«n» | ||
ufobat | m: role Foo {method n{...}}; class Bar does Foo {method n{"n"}}; my Foo @a = (); say @a[0].n | ||
camelia | rakudo-moar 618877: OUTPUT«Method 'n' must be implemented by Foo because it is required by roles: Foo. in any compose_method_table at gen/moar/Metamodel.nqp line 2832 in any apply at gen/moar/Metamodel.nqp line 2843 in any compose at gen/moar/Metamodel.nqp line 3015 …» | ||
dalek | href="https://perl6.org:">perl6.org: fed5600 | (Tom Browder)++ | source/whatever/index.html: change link reword text |
||
toolforger | New PR: github.com/perl6/doc/pull/1109 - could probably use some feedback before merging it | 21:41 | |
ufobat | m: role Foo {method n{...}}; class Bar does Foo {method n{"n"}}; my @a = (); say @a[0].n | ||
camelia | rakudo-moar 618877: OUTPUT«No such method 'n' for invocant of type 'Any' in block <unit> at <tmp> line 1» | ||
toolforger | it's about the unordered-collections traps we discussed earlier | ||
21:42
dugword joined
21:43
kjs_ left,
kjs_ joined
21:44
dalek left
21:45
bjz joined,
dalek joined,
ChanServ sets mode: +v dalek
21:46
pierre__ joined
21:47
kjs_ left
21:49
pierre_ left
|
|||
rightfold | Is gather/take safe to use with parallelism? | 21:52 | |
dalek | href="https://perl6.org:">perl6.org: 5cf3628 | (Tom Browder)++ | source/whatever/index.html: fix typo |
21:54 | |
21:54
troys_ is now known as troys
21:55
hartenfels left
21:58
pecastro joined
21:59
bjz left
|
|||
RabidGravy | toodles! | 22:01 | |
dalek | href="https://perl6.org:">perl6.org: 8660918 | (Tom Browder)++ | source/whatever/index.html: change emphasis |
||
dugword | In the Perl6 core modules, where does "nqp" get defined? I.e. in IO::Socket::INET there is a call to `nqp::socket`. Where does that live? | 22:02 | |
22:02
hankache left
|
|||
toolforger | I dimly recall it's a special namespace that exposes various internals | 22:03 | |
RabidGravy | it's an nqp operator defined in er NQP | ||
AlexDaniel | samcv: here? | ||
22:05
toolforger left
22:06
petrutrimbitas joined
|
|||
dalek | href="https://perl6.org:">perl6.org: d9f8f1c | (Tom Browder)++ | source/whatever/index.html: add comma |
22:06 | |
22:06
pierre__ left
22:08
RabidGravy left
22:09
Ven left
|
|||
skids | rightfold: you could do Supply.from-list(gather { }) as an event source, or, if you want multiple workers in a block-on-receive, you'd have to figure out how to get it into a Channel instead. | 22:11 | |
22:11
bronco_creek joined
|
|||
skids | I don't think you can just pull from a Seq from multiple threads. | 22:11 | |
dugword | I was after the socket operator, the details I was looking for are in the MoarVM repo. Thanks | 22:12 | |
bronco_creek | I'm having panda problems on mac OS X. Module installs always fail with "Failed cloning git repository" Any suggestions? | ||
yoleaux | 6 Aug 2016 01:01Z <b2gills> bronco_creek: Windows has always accepted both kinds of slashes, it's only some programs that have a problem with forward slashes. | ||
bronco_creek | b2gills: ? | 22:14 | |
b2gills | That was a response to your last message. C:\Windows C:/Windows both work natively in Windows ( and has worked that way since directories were added in DOS 2.0 ) | 22:16 | |
22:17
Tonik joined
|
|||
dugword | Did it use to work bronco_creek? File permissions perhaps? I've seen similar problems with cpanm and npm where if you install a module once with sudo/root it changes the ownership of key files. chown -R `whoami`:staff ./perl6 | 22:17 | |
~/.perl6 rather | 22:18 | ||
22:18
zakharyas left,
skids left
22:24
kurahaupo__ left
|
|||
dugword | bronco_creek: There is also zef as an alternative to panda | 22:25 | |
AlexDaniel | .tell samcv perhaps you can take a look at #130419 ? I wonder what you think. | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130419 | ||
yoleaux | AlexDaniel: I'll pass your message to samcv. | ||
22:25
kurahaupo__ joined
22:26
ccakes left
|
|||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/01/02/...rime-time/ | 22:27 | |
22:30
Wanderer68 left
|
|||
AlexDaniel | \o/ | 22:30 | |
lizmat++ | |||
kalkin- | I think i found a bug in zef. If you use the perl6-tester and run zef test on Perl6::Parser it will hang on this test t/11-package-declarator.t | ||
22:32
troys is now known as troys_,
notviki joined,
shayan_ joined
|
|||
notviki | dugword: NQP is a compiler toolkit. You can get some docs at github.com/perl6/nqp/blob/master/d...s.markdown github.com/perl6/nqp/blob/master/d...t.markdown and there's also an internals course: edumentab.github.io/rakudo-and-nqp-...ls-course/ | 22:33 | |
22:34
ccakes joined
|
|||
dugword | Nice, that internals course looks magical | 22:36 | |
22:40
shayan_ left,
troys_ is now known as troys
22:43
petrutrimbitas left
22:44
TEttinger left
22:46
TEttinger joined
22:50
awwaiid joined
|
|||
dalek | href="https://perl6.org:">perl6.org: 3e85dac | (Tom Browder)++ | source/resources/index.html: add a section on Perl 6 books |
22:58 | |
href="https://perl6.org:">perl6.org: ca2d0d1 | (Tom Browder)++ | source/resources/index.html: Merge pull request #63 from tbrowder/add-books add a section on Perl 6 books |
|||
AlexDaniel | oh. The first one was corrected to 6.c, good. | 22:59 | |
23:00
troys left
|
|||
bronco_creek | dugwood: turns out that, after my upgrade to sierra, I needed to run 'xcode-select --install' from the command line to fix communications with git. I wonder if other p6ers have run into this. | 23:02 | |
dugword | crazy, I'm on a mac and didn't have that issue. | 23:06 | |
Did you have to agree to new terms or something? I've seen something similar with xcode | 23:07 | ||
23:08
Gasher left
23:10
labster left
23:11
labster joined,
cibs left
|
|||
dalek | href="https://perl6.org:">perl6.org: a5b6bc1 | (Tom Browder)++ | source/resources/index.html: shorten section title |
23:13 | |
href="https://perl6.org:">perl6.org: 0348e41 | (Tom Browder)++ | /: Merge branch 'master' of github.com/perl6/perl6.org into add-books Correcttion |
|||
href="https://perl6.org:">perl6.org: 4eb3fc2 | (Tom Browder)++ | source/resources/index.html: Merge pull request #64 from tbrowder/add-books Add books |
|||
23:13
cibs joined
|
|||
23:13
rpburkholder left
23:14
labster left
|
|||
bronco_creek | dugwood: yes, had to agree to install new developer tools | 23:14 | |
23:15
labster joined
23:18
bstamour joined
|
|||
tbrowder | um, i need some help from an expert on the change i made to perl6.org/resources/index.html | 23:19 | |
yoleaux | 17:23Z <ugexe> tbrowder: stmuk is heading that. afaik he has it working so it should be in the next release or so | ||
notviki | tbrowder: what is it? | ||
tbrowder | i added a section on books to the last row on the resources page, but the section title is blue while all the others are black and i cannot see why | 23:20 | |
ugexe: thanks! | 23:21 | ||
dalek | href="https://perl6.org:">perl6.org: 2c014ca | (Zoffix Znet)++ | source/resources/index.html: Fix unclosed <a> |
23:22 | |
notviki | tbrowder: ^ that should fix it | ||
tbrowder | thanks, notviki--i knew i should have checked with xmllint but what could go wrong...NOT | 23:26 | |
BTW, i thought you would morph away with the new year! | 23:27 | ||
23:33
bronco_creek left,
pmurias left
23:36
lukaramu left
23:47
kurahaupo__ left
23:49
rpburkholder joined
23:54
espadrine left
23:55
kybr joined
23:56
wamba1 left
23:57
skids joined
23:59
Tonik left
|