»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by masak on 12 May 2015. |
|||
00:00
dayangkun joined,
dayangkun left
|
|||
timotimo | all i had was my @pixels = 127 xx 255 * 255; $some_open_handle.write: Blob.new: @pixels | 00:01 | |
00:01
dayangkun joined
|
|||
lizmat | $ 6 'my @p = 127 xx 255 * 255; dd Blob.new(@p).elems' | 00:03 | |
Int $var = 65025 | |||
real0m0.207s | |||
timotimo | huh | 00:05 | |
that seems to already have been fast on my machine ?!? | |||
lizmat | well, it's faster now | 00:06 | |
timotimo | on my machine it only takes 0.2s | ||
was i completely mistaken about this?! | |||
lizmat | $ 6 'for ^1000 { Blob[uint16].new(^100) }' | ||
real0m0.232s | |||
timotimo | it could have been the stringification perhaps? | 00:07 | |
lizmat | $ 6 'for ^1000 { Blob[uint16].new(^100) }' | ||
real0m2.577s | |||
that was before | 00:08 | ||
timotimo | oh | ||
lizmat | seems I got the multiplication factor wrong | ||
I thought it had been 5.912 secds | |||
timotimo | oh | ||
lizmat | ah, no, i *did* get it right | 00:09 | |
subtracting the startup and loop overhead (120 msecs) | |||
timotimo | ah | ||
lizmat | you get to something like 23.85 | ||
so 20x better is not a lie :) | |||
lizmat goes off to get some sleep | 00:10 | ||
timotimo | wait, from 23 to 2.3 isn't 20x | ||
i ... | |||
dunno? | |||
anyway, thanks! | |||
i wonder what i did wrong in my measurements | |||
lizmat | m: say (2577 - 120) / (223 - 120) | 00:11 | |
camelia | rakudo-moar 460d89: OUTPUT«23.854369» | ||
timotimo | oh | 00:12 | |
i thought i had to compare against the 2.5, but that was *before*! | |||
thanks | |||
00:16
Zoffix left,
cygx left
00:20
BenGoldberg joined
00:24
yqt left
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 2295617 | (Zoffix Znet)++ | / (3 files): Make builder script generate db for out app |
00:42 | |
BenGoldberg | j: for 8795..0xeffff { "(timeout at $_)".say, last if now > INIT { now + 3 }; my $name = .chr.uniname; next unless $name ~~ m:i/ << star >> /; say "$_: $name" } | 01:07 | |
m: for 8795..0xeffff { "(timeout at $_)".say, last if now > INIT { now + 3 }; my $name = .chr.uniname; next unless $name ~~ m:i/ << star >> /; say "$_: $name" } | |||
camelia | rakudo-jvm 460d89: OUTPUT«8795: STAR EQUALS8902: STAR OPERATOR(timeout at 8981)» | ||
rakudo-moar 460d89: OUTPUT«8795: STAR EQUALS8902: STAR OPERATOR9055: APL FUNCTIONAL SYMBOL CIRCLE STAR9059: APL FUNCTIONAL SYMBOL STAR DIAERESIS9733: BLACK STAR9734: WHITE STAR9770: STAR AND CRESCENT9885: OUTLINED WHITE STAR10017: STAR OF DAVID10022: BLACK…» | |||
01:09
zacts joined
|
|||
BenGoldberg wonders why jakudo is so much slower. | 01:09 | ||
mst wonders why unicode character names are always in caps | 01:10 | ||
01:11
captainjimboba joined
|
|||
captainjimboba | hey...anybody currently on...never used IRC before | 01:11 | |
awwaiid | greetings captainjimboba | ||
BenGoldberg | Of course there are people on. | ||
captainjimboba | what i assumed...my apologies though :) | 01:12 | |
BenGoldberg | Doesn't your IRC client have a list of who is on the channel? | ||
awwaiid | BenGoldberg: I'm in plenty of channels where there are people in the channel but nobody's "on" :) | ||
BenGoldberg | Mine says there are 274 people on #perl6 right now. | ||
captainjimboba | it has a list on the side, but I'm not sure if those are active or just an overall list | ||
BenGoldberg | It's an overall list. | ||
Some are active, some not. | |||
01:13
mr_ron left
|
|||
captainjimboba | Thanks for the FYI! I am now clued in | 01:13 | |
I've been reading about Perl 6 lately and it is a nifty project. I have a few questions I'd like to ask though | 01:14 | ||
BenGoldberg | Ask them :) | ||
Here in #perl6, as with most channels on freenode, you should not ask whether or not you can ask your question, instead just ask it. | 01:15 | ||
captainjimboba | I was thinking about writing some documentation (something like a free pdf book) for kids on perl 6 at some point. Does anyone know if there is a policy regarding the use of the Perl 6 "Camellia" logo? It wouldn't be a hard copy book, just a PDF posted somewhere. | 01:17 | |
skids | captainjimboba: yes there's a trademark, and a license, which is pretty liberal. | 01:18 | |
captainjimboba | I think I've read its owned by Larry Wall....I'm not sure if it's ok to use the image as long as credit is given for a non-commercial project | ||
mst | I'd hope so | ||
it'd be a bit weird if camelia was under a more restrictive license than perl or perl6 | |||
captainjimboba | I agree lol, but I'd thought I'd ask the question anyway | 01:19 | |
skids | github.com/perl6/mu/blob/master/mi...amelia.txt | ||
mst | captainjimboba: note that the list is clients connected, not necessarily people active at this instant, but there are a lot of people (like me) who both stay connected and will read back when we get online, so even if a channel seems quiet it's often worth saying something anyway then keeping an eye out for a few hours to see if you get a reply | 01:20 | |
captainjimboba | thank you that is perfect | ||
mst | this one and #perl are both busy enough that's not so much of a big deal (#perl being the perl5 channel) | ||
but it's worth knowing for IRC in general | |||
captainjimboba | thank u for the pointer mst! I've known about IRC in general, but this is the first time i've actually tried it out...so far my first impression is great! | 01:21 | |
mst | it often confuses people to begin with because people don't tend to do 'hi/bye' very much except on small socially oriented channels | ||
captainjimboba | makes sense if you're always logged into the background....is anyone aware of how the concurrency/parallel support is coming along? I've heard its supposed to be pretty awesome, but i'm not sure if it will be available for Christmas (if it isn't already) | 01:23 | |
mst | I was under the impression that MoarVM could do quite a bit of it now | ||
skids | jnthn implemented most I think of his latest concurrency streamlining, and intends to fix some bugs WRT IO before xmas I think. | 01:24 | |
docs/spec have to catch up to code a bit in that department. | 01:25 | ||
react/whenever especially seems to already be working. | |||
01:25
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
captainjimboba | that is pretty awesome...i look forward to reading the documentation...i know ya'll have all heard it a 1000x, but perl can be a bit intimidating if you started in something like BASIC or Python with a lot less syntax to remember. I will say that I've been very impressed with the ideals of the Perl 6 project and don't mind learning something new if it has some cool abilities | 01:27 | |
01:27
mr_ron joined
|
|||
skids | gist.github.com/jnthn/a56fd4a22e7c43080078 is a sort of "delta" doc based on what was working prior to that roud of changes. | 01:28 | |
*round | |||
captainjimboba | sweet, i'll check it out....it's always impressive to see these community projects do such awesome things without massive commercial backing | 01:29 | |
last question for the night...does anyone know any names of people planning on having a Perl 6 book out sometime not too terribly long after the xmas release? | 01:30 | ||
I'm assuming the major Perl 5 authors might do something....I think I remember Randal Schwartz was going to wait until things were finalized after trying before when things weren't as stable. | 01:31 | ||
I was just thinking that would be a really fun book to go through...the Perl 6 website is amazing...the doc is pretty good too and will only get better with time, I wish it had a few more examples though | 01:32 | ||
skids | A lot of rosettacode nodes have Perl6 solutions, so there are some additional examples to peruse that way. | 01:34 | |
captainjimboba | I had planned on it..I def appreciate the reference...I might even contribute a few solutions at some point! I wonder how many of the code snippets there are idiomatic p6 and not just a translation | 01:37 | |
skids | Some are better than others, but they do get talked about on the channel, so probably a good number are fine. | 01:39 | |
01:39
pochi left
|
|||
captainjimboba | I'll keep that in mind...thanks for the great help everyone! My thanks to everyone working hard to make this project a reality. | 01:41 | |
awwaiid | captainjimboba: also, the main docs on doc.perl6.org are open-source and welcome contributors. My understanding is you can fork and do PRs on github.com/perl6/doc | 01:42 | |
01:43
raiph left
01:44
pochi joined
|
|||
captainjimboba | i didn't know that..thank you! Just checked out P6 on Rosetta Code for the first time in probably a year. The first one I landed on had a note that it ran with Rakudo version 11-03-2015...now that is impressive | 01:44 | |
"Statistics/Basic" was the code snippet I chose at random | 01:45 | ||
01:46
Actualeyes joined
|
|||
skids | Though a lot of the syntax has been stable for a long time I suspect there are still some idioms yet to be discovered -- every once in a while I see a veteran go "ooh" when someone comes up with a good way to "word" something. | 01:48 | |
01:48
captainjimboba left
01:51
robertmeta joined
01:53
Zoffix joined
01:55
raiph joined
|
|||
dalek | osystem: 7c81f54 | loren++ | META.list: Update META.list add Net::Ftp to ecosystem See github.com/araraloren/Net-Ftp |
02:06 | |
osystem: 8d8d822 | (Zoffix Znet)++ | META.list: Merge pull request #88 from araraloren/master Add Net::Ftp to eco: github.com/araraloren/Net-Ftp |
|||
02:07
softmoth_ joined
02:13
vendethiel joined
02:16
xpen joined
02:18
softmoth_ left
02:22
xpen left,
xpen joined
02:28
owlbird joined
02:36
vendethiel left
02:37
captainjimboba joined
02:38
captainjimboba left
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: c4251c8 | (Zoffix Znet)++ | mojo-app/lib/ModulesPerl6/Model/Dists.pm: Initial work on model |
02:47 | |
02:51
aborazmeh left
03:02
xpen left
|
|||
zengargoyle | oh, eek. anybody have an example of having travis.ci install a package... totally didn't that it wouldn't have a library available. | 03:16 | |
Zoffix | zengargoyle, github.com/zoffixznet/perl6-Pasteb...vis.yml#L7 | ||
zengargoyle, oh, there's a doc too: docs.travis-ci.com/user/languages/p...Management | 03:19 | ||
03:20
labster joined
|
|||
zengargoyle | hrm, found the magic for Ubuntu, now to find if Ubuntu has the package and what it's named, and maybe a bit of shell work that's required. | 03:20 | |
Zoffix | Oh a package. I misunderstood it for module | ||
zengargoyle | Zoffix: i'm meaning a dis.. yeah, that. :) | 03:21 | |
03:21
kaare_ joined
03:26
kid51 left
|
|||
zengargoyle | hrm, there must be a way to make NativeCall use a library.so.1 vs library.so | 03:36 | |
the distro packages for the library i'm using for some reason don't make a .so link | 03:37 | ||
03:37
eliasr left
|
|||
zengargoyle | oh, maybe i have to install the *-dev package to get the symlink... | 03:38 | |
duh | |||
03:40
xpen joined
|
|||
zengargoyle crosses fingers and waits | 03:41 | ||
geekosaur | that would be usual, yes | 03:44 | |
thing is, ideally you would be using the versioned one | |||
because a different version may not be compatible (see for example ncurses 6) | 03:45 | ||
especially for something like nativecall, you probably want to know what API version you are working with | |||
zengargoyle | bah! Disallowing packages: libdatrie-dev | 03:46 | |
zengargoyle wonders how important the flashy badge is. :P | 03:47 | ||
dalek | c: fb75c43 | (Brock Wilcox)++ | doc/ (8 files): Find all the references to curly braces and make them consistent |
03:48 | |
c: 00fc350 | (Zoffix Znet)++ | doc/ (8 files): Merge pull request #186 from awwaiid/curly-braces-consistency Find all the references to curly braces and make them consistent |
|||
03:53
aborazmeh joined,
aborazmeh left,
aborazmeh joined
03:56
raiph left
|
|||
dalek | osystem: 3c1da1c | zengargoyle++ | META.list: Add Algorithm::Trie::libdatrie See: github.com/zengargoyle/p6-Algorith...-libdatrie |
03:57 | |
awwaiid | Zoffix: is there some strategy I should be using for contributing to docs? My default is to just do lots of small PRs so they can be discussed individually, but I don't want it to be annoying if I get on a roll | 03:59 | |
dalek | c: 03e112e | (Brock Wilcox)++ | doc/ (2 files): Fix a few links |
04:00 | |
c: fc36d45 | (Zoffix Znet)++ | doc/ (2 files): Merge pull request #187 from awwaiid/fix-links Fix/add a few links |
|||
geekosaur wonders if he should write something up on the whole shared object thing; the API information in the version number is rather important... | |||
zengargoyle | any NativeCall wizards maybe peek at github.com/zengargoyle/p6-Algorith...-libdatrie and let me know if there's anything i could do better. | 04:02 | |
awwaiid | Zoffix: also, for like the sections in Language/syntax at the bottom (declaration, sub calls, etc), is it OK to PR partial work? Like code example snippets without all the prose. | 04:03 | |
zengargoyle | and/or method to pull down source and build a library.so during installation. (thinking of Linenoise like) | 04:04 | |
04:07
nys left
|
|||
Zoffix | awwaiid, not sure what you mean, but sure, partial work is fine. We need a lot of help :) | 04:07 | |
04:10
tokuhiro_ joined
|
|||
geekosaur | hm, actually ncurses 6 was a bad example, they went out of their way to keep the aspects of the API that NativeCall uses the same. (unless someone is actually grotting around inside WINDOWs) | 04:10 | |
04:11
kaare_ left
|
|||
geekosaur | but API changes in many new library major versions will break scripts assuming that is native("foo") loading foo.so -> foo.so.latest is actually whatever API version they were expecting | 04:11 | |
for example the gnome3 devs have a history of changing stuff constantly with no regard whatsoever for backward compatibility | 04:12 | ||
openssl < 1.0 would be another example, although 1.x versions have some API stability | 04:13 | ||
(openssl < 1.0 was a pathological case, in fact, since the API/ABI was not guaranteed to be compatible even between point releases) | 04:14 | ||
04:25
mr_ron left
04:34
adu joined
04:35
raiph joined
04:36
aborazmeh left
04:39
xpen left
|
|||
awwaiid | Zoffix: ok cool. I'll keep sending PRs as I make changes. | 04:40 | |
04:40
xpen joined
04:45
mr_ron joined
|
|||
zengargoyle | i'm hoping that is native('libfoo') is just some simple case and maybe there's is native('libfoo' :ver('1.2')) or something. | 04:50 | |
dalek | c: 7fc6c40 | (Brock Wilcox)++ | doc/Language/syntax.pod: Add some further stubs for syntax sections |
04:52 | |
c: cecbf7a | LLFourn++ | doc/Language/syntax.pod: Merge pull request #188 from awwaiid/syntax-additions Add some further stubs for syntax sections |
|||
zengargoyle | i also wonder if there's a way to apply is native('foo') to a scope, it gets tiresome to cut/paste all of those is native blah onto every sub. | ||
04:54
skids left
|
|||
zengargoyle | well, it seems you can do is native('libfoo.so.1') and it works.. wonder if that still gets the automagic libfoo.dll on windows that way? | 05:02 | |
05:20
adu left
05:21
raiph left
05:22
sprocket left
|
|||
dalek | c: 0046d89 | (Brock Wilcox)++ | doc/Language/syntax.pod: Clarify Hash literal syntax. Expand on other things. |
05:32 | |
c: 8058cb7 | LLFourn++ | doc/Language/syntax.pod: Merge pull request #189 from awwaiid/syntax-additions Clarify Hash literal syntax. Expand on other things. |
|||
05:33
mr_ron left
05:38
CIAvash joined
05:40
_28_ria left,
baest joined
|
|||
zengargoyle | hrm... $ panda --notests installdeps . | 05:49 | |
resolve stage failed for .: Project . not found in the ecosystem | |||
yay! travis-ci passing obtained. | 05:55 | ||
05:57
BenGoldberg left
05:59
xfix joined
06:16
khw left
06:25
[Sno] left
06:31
[particle] joined
06:32
[particle]1 left
06:39
MadcapJake left
06:54
tardisx left
|
|||
masak | morning, #perl6 | 06:54 | |
yoleaux | 8 Nov 2015 20:15Z <retupmoca> masak: I PR'd HTML::Template to make some warnings go away: github.com/masak/html-template/pull/12 | ||
masak | retupmoca: looks good. merged. | 06:55 | |
geraud | m: my $s; for "\x1F000" .. "\x1F021" -> $c { $s ~= $c x 4;}; say $s.comb.pick(14).perl; | 07:01 | |
camelia | rakudo-moar 460d89: OUTPUT«("🀄", "🀗", "🀈", "🀔", "🀠", "🀃", "🀎", "🀁", "🀟", "🀆", "🀔", "🀙", "🀒", "🀂").Seq» | ||
geraud | nice... | ||
07:02
mr-foobar left,
mr-foobar joined,
diana_olhovik_ joined
07:03
geraud left
|
|||
masak tasks geraud with implementing mahjong in Perl 6 | 07:10 | ||
[Tux] | test 50000 22.665 22.553 | ||
test-t 50000 18.781 18.669 | |||
masak | moin, [Tux] | ||
[Tux] | o/ | 07:11 | |
masak | [Tux]: remind me -- what's the difference between 'test' and 'test-t'? | ||
is the second-last column "yesterday" and the last one "today"? | |||
[Tux] | test is the original implementation without feature, only changed to keep working after GLR and the like | 07:12 | |
test is the full-featured module itself | |||
masak | ...and so what we're seeing is a slight (statistically insignificant?) speedup in both benchmarks? | ||
[Tux] | the second-last column is runtime, the last is runtime with startup subtracted | ||
no news today. this is all within noise | 07:13 | ||
masak | aha. | 07:14 | |
ok, so all the numbers are about today. got it. | 07:15 | ||
07:30
mr_ron joined
07:31
xfix left
07:38
FROGGS joined
07:39
mr_ron left
|
|||
masak | general question: how would you spell an array concatenation operator? | 07:43 | |
(if you were defining it lexically in your program, say) | |||
07:44
sjohnson left
|
|||
masak | I wanted to go with infix:<++> in 007... but since 007 is less whitespace-sensitive than Perl 6, that would clash with any postfix:<++> people would introduce. | 07:44 | |
and I do think postfix:<++> has a better claim to that slot. | |||
currently I'm so out-of-suggestions that I'm thinking of just giving up and making it a sub: `concat(a1, a2)` | 07:45 | ||
walk & | 07:47 | ||
07:48
RabidGravy joined
07:51
_mg_ joined
|
|||
moritz | \o | 07:54 | |
07:57
telex left
07:58
telex joined
|
|||
RabidGravy | marning | 08:02 | |
DrForr | Just barely... | 08:03 | |
08:09
abraxxa joined,
owlbird left
|
|||
RabidGravy | amazing, every year there's an RT, an email, a git hub issue or some other communication about the license of Term::ReadKey | 08:12 | |
every time I reply that I have absolutely no way of knowing what the intent of the original author was beyond the actual words in the files | 08:13 | ||
08:14
rarara left,
darutoko joined
|
|||
moritz | what do they complain about? | 08:20 | |
RabidGravy | well, when I took on the maintenance of the module some fifteen years the original author had "disappeared" completely, the only license statement in the module was "Unlimited distribution and/or modification is allowed as long as this copyright notice remains intact." and the (C) ..... | 08:28 | |
previously I've had IP lawyers from Boeing, VMWare and all sorts of people getting confused because that didn't resolve to a "named open source license form" | 08:29 | ||
and I've consistently said that's the license, in order to preserve what I see as the original intent I wasn't going to change it | 08:31 | ||
moritz | ah, fun | 08:33 | |
sounds pretty similar to the MIT license | |||
RabidGravy | yeah | ||
08:34
pdcawley joined
08:36
ely-se joined
|
|||
RabidGravy | anyway, some point in the last year because I was frankly getting bored of all this, I changed the README stating that you could choose to either accept the original terms or the Artistic license | 08:40 | |
now I've got some guy saying the Artistic isn't as permissive as the original terms. WELL DUH | 08:43 | ||
ACCEPT THE ORIGINAL TERMS | |||
moritz | [ ] you read what I wrote | ||
RabidGravy | :) | 08:46 | |
abraxxa | morning guys! | ||
masak | abraxxa: mornin' | ||
RabidGravy | marnin | 08:47 | |
masak hesitates between Perl's `elsif` and Python's `elif`, and realizes he finds `else if` more defensible syntactically | 08:49 | ||
and on a Q level, allowing the `else` branch to contain either a Q::Block or a Q::Statement::If | |||
moritz | m: if 0 { } elsif my $x = 42 { }; say $x | 08:50 | |
camelia | rakudo-moar 460d89: OUTPUT«42» | ||
masak | m: if 1 { } elsif my $x = 42 { }; say $x | 08:51 | |
camelia | rakudo-moar 460d89: OUTPUT«(Any)» | ||
moritz | masak: as long as the else branch itself doesn't introduce a new scope, that's fine | ||
and I guess it doesn't, because it's not a Block | |||
dalek | kudo/curli: 289fdc5 | jnthn++ | src/core/ (2 files): Sinking an unsuccessful Proc should throw. This means `run` anad `shell` in sink context will not fail silently if they are not successful. |
||
masak | indeed. | ||
kudo/curli: 9fad7b4 | lizmat++ | src/core/Str.pm: Fix several issues reported by Tux++ |
|||
kudo/curli: 13d56d1 | lizmat++ | src/core/ (3 files): Merge branch 'nom' into curli |
|||
moritz | masak: C takes this approach; there's no real "else if", but it falls out of "else" accepting either a block or a statement | 08:52 | |
masak | as does Java. and probably others. | ||
dalek | Heuristic branch merge: pushed 43 commits to rakudo/curli by lizmat | ||
masak | one advantage: easier to write code crawlers. | ||
moritz: the only "sacrifice", model-wise, is that statements don't usually occur contained in something else like that, except in Q::StatementList | |||
masak does a double take on the word "sacrifice", and finds that he digs it immensely as a modeling term -- kind of reminiscent of HPMoR sacrificial rituals | 08:53 | ||
as in "pay attention to what the consequences are down the line of you making this decision" | 08:54 | ||
08:55
ollej left
09:01
[Sno] joined
09:05
lab__ left
09:06
andreoss joined
09:10
robertmeta left
09:11
zakharyas joined
|
|||
dalek | osystem: 80d1688 | loren++ | META.list: Update META.list update module name to Net::FTP |
09:15 | |
osystem: f0a9673 | RabidGravy++ | META.list: Merge branch 'master' of github.com/araraloren/ecosystem |
|||
09:21
dakkar joined
09:30
pippo joined
09:31
mr_ron joined
09:35
Psyche^ left
09:36
eliasr joined,
Psyche^ joined
09:44
TEttinger left
|
|||
lizmat | good *, #perl6! | 09:47 | |
and another day that will see a Perl 6 Weekly! | |||
so if you think you know something that should be in the P6W, let me know! | |||
I'll probably publish in about 10 hours from now | |||
moritz | good morning, lizmat | 09:48 | |
masak | moin, lizmat | ||
lizmat | moritz masak o/ | 09:49 | |
masak .oO( upload.wikimedia.org/wikipedia/com...Moritz.JPG ) | |||
lizmat | an oldy but goody :-) | 09:51 | |
mrf | lizmat: how does one sign up for the p6 weekly | 09:53 | |
lizmat | mrf: there is no mailing list, just a website: p6weekly.wordpress.com | 09:54 | |
mrf | lizmat: that works for me. | ||
mrf bookmarks | |||
moritz | mrf: it's also on the pl6anet.org RSS feed | 09:56 | |
masak | and surely the p6weekly has its own RSS feed too | 09:57 | |
lizmat | masak: I have no idea, but guess so | 09:58 | |
CIAvash | p6weekly.wordpress.com/feed/ | ||
masak | stray Monday thought: the way operators work in Perl 6 (as "funnily-spelled routines") is quite cute/ingenious/wonderful, but... whoever came up with that did not have macros in mind. :) | ||
mst | masak: how so? | 09:59 | |
masak | mst: let me quickly walk you through why it's brain-melty. | ||
mst: using traits like `is looser(infix:<+>)`, the operators specify their precedence (and associativity) | 10:00 | ||
mst: now, imagine a world where you can inject an *operator* into an expression. the exact operator is not known until macro injection time. | |||
mst: usually, quasi-quote-like constructs create an AST with "holes" representing the things we haven't inserted yet. | 10:01 | ||
mst: but with precedence/associativity hanging off the *operator* as in Perl 6, we can't even meaningfully form the tree until we have the operator. | |||
mst: the best we can do is say "hm, we have these terms, operators, and various holes in a sequence" | 10:02 | ||
and then form the tree once we have the operator in question. | |||
moritz | so the problem is that 1 mymacro 2 + 3 could mean (1 <thinginjectedfrommyamcro> 2) + 3 or 1 <thinginjectedfrommyamcro> ( 2 + 3) ? | ||
masak | yeah. | 10:03 | |
moritz | then I'd form the tree based of the precedence and associativity of the macro | ||
masak | though you're in the wrong place. it's not about macros; it's about unquotes ({{{ }}}) | ||
they're like the parameters of the AST world. | |||
in that we don't have them until later, when a (macro) call is made and we eval the quasi. | 10:04 | ||
moritz | because the precedence etc. is a lexical property, so it's fitting to be tied to the macro that's called, not to its result | ||
masak | it's not about macros, it's about unquotes. | 10:05 | |
you're right, of course. if the macro is an operator, it should work just like a sub. | |||
that much is clear, and a non-issue. | |||
moritz | masak: could you please give an example+ | ||
s/\+/?/ | |||
masak | the situation is more like this (syntax conjectural and 007): `1 {{{myop @ Q::Infix}}} 2 + 3` | 10:06 | |
(inside a `quasi { ... }`) | |||
and myop could be tighter or looser than + | |||
timotimo | i could totally see forcing parens directly around the arguments of a quasi'd infix op | ||
as a "please, dear user, understand our plight" thing | |||
masak | yeah, maybe there's some nice compromise there. | ||
timotimo++ # suggestion | |||
moritz | or infix:<{{{ }}}> having a fixed precedence | 10:07 | |
just like any other infix operator | |||
masak | hm. | ||
also a worthy suggestion. | |||
moritz | (though I have no idea what a sensible precende for a generic infix woudl be) | ||
*precedence | |||
masak | "tighter than everything" :) | ||
timotimo | or you could allow the user to put a precedence into the {{{ }}} | ||
masak | timotimo: yes, that has occurred to me too. | ||
timotimo | Q::Infix:like<+> | ||
vs Q::Infix:like<*> | 10:08 | ||
masak | `is equal(infix:<+>)`, surely | ||
timotimo | that's a bit wordier, but the same meaning i meant | ||
masak | aye | ||
(plus or minus a & in Perl 6) :) | |||
timotimo | i meant to mean that, too! | ||
moritz | so, not an unsurmountable problem, just one more thing[tm] to keep in mind/decide/implement | 10:09 | |
masak | ok, I feel we've successfully de-teethed another dragon here which be. :) | 10:10 | |
here be which* | |||
10:10
Actualeyes left
|
|||
masak | thank you for responding positively to my macro-related /me -- mst++ moritz++ timotimo++ | 10:11 | |
lizmat | All tests successful. | 10:12 | |
Files=1071, Tests=49722, 234 wallclock secs (12.70 usr 3.74 sys + 1428.79 cusr 129.70 csys = 1574.93 CPU) | |||
timotimo | sure :) | ||
dalek | kudo/nom: ac750a9 | lizmat++ | src/core/Buf.pm: Make Blob/Buf.list 25% faster |
||
mst | I think I might have unqoutes binds -loosely- so people have to explicitly () | 10:13 | |
i.e. | |||
(1 mymacro 2) | 10:14 | ||
easier to add quotes around the macro than around everything else | |||
er | |||
I mean (1 {{{ thing }}} 2) | |||
CIAvash | Is it possible to provide the MAIN's arguments processing as a core module? | ||
dalek | href="https://modules.perl6.org:">modules.perl6.org: ecf43bf | timotimo++ | web/index.tmpl: move some scripts and sprite.css to the head section |
||
timotimo | CIAvash: what do you mean by "core module"? | 10:15 | |
lizmat: hm, IterationBuffer doesn't like having the contents of an int-typed VMArray nqp::splice'd into it? | 10:16 | ||
andreoss | masak: yapsi works again with my PRs | ||
lizmat | timotimo: you mean, I broke something ? | ||
CIAvash | timotimo: I read perlgeek.de/blog-en/perl-6/how-core-is-core.html but I'm not sure. But something like Date or Test | ||
timotimo | no, i was wondering why you don't do it like that :) | ||
Date is not something you "use", it's "always there" | 10:17 | ||
andreoss | tardis does too, but returns statement in backward order for some reason | ||
masak | andreoss: thanks -- merged! | ||
lizmat | timotimo: because this way was faster ? | ||
masak | mst: good point. | ||
CIAvash | timotimo: You'r right, it's a type | ||
timotimo | lizmat: ah, cool | ||
CIAvash: i think if you "use" a module that exports a MAIN_HELPER (or something?) it would end up being called instead of the one you get by default from the core setting | |||
masak | mst: actually, I might consider dying (at parse time) whenever there's *any* ambiguity. so (in a sense) unquoted operators would have no precedence, or Chthulu precedence. | 10:18 | |
mst | masak: ooh, yes, and better still you can start off doing that and back off the die()s later without breaking anything working | ||
pink_mist | please tell me Chthulhu precedence is an actual thing :P | ||
moritz wants it too | 10:19 | ||
timotimo too | |||
moritz | but it should mean random precedence, really | ||
moritz cackles evilly | |||
timotimo | i think it should actually mean "always the wrong precedence" | ||
10:19
mr_ron left
|
|||
mst | nah, I think "when precedence of this thing is required, Cthulhu happens" | 10:19 | |
timotimo | because with random precedence you have the random chance of making the programmer happy | ||
masak | what mst said. | ||
10:19
eternaleye left
|
|||
mst | I love this concept. | 10:19 | |
masak | it means "you said you wanted this, and now there will be unworldly, abject pain" | ||
the Chthulu that can be described is not the true Chthulu | 10:20 | ||
mst | the Cthulu that can be compiled is not the true Cthulhu | ||
therefore all must die | |||
pink_mist | mst: you were up when I went to bed some 7-8 hours ago ... you're still up? 0_o | ||
10:20
Actualeyes joined
10:21
llfourn left
10:22
xpen left
10:23
xpen joined,
dayangkun left
10:24
CIAvash left
10:27
CIAvash joined
|
|||
andreoss | how do i pre-compile a module with panda? | 10:27 | |
> When pre-compiling a module, its dependencies must be pre-compiled first. | |||
> Please pre-compile /home/andreoss/perl6/moar-nom/install/share/perl6/site/lib/DBIish.pm6 | |||
timotimo | my last change to modules.perl6.org made it the page load complete in 1.5s instead of 2s! | 10:28 | |
CIAvash | timotimo: The reason for that idea was that to be able to do something like this: class App { method run (@args) { self.main: process-cmd-args(|@args); multi method main {...} } } | 10:29 | |
moritz | timotimo++ | ||
timotimo | another thing that could be done is to put loading the list.min.js file into the head, too | ||
it seems i didn't notice that before | |||
10:30
sprocket joined
|
|||
dalek | href="https://modules.perl6.org:">modules.perl6.org: d2167e0 | timotimo++ | web/index.tmpl: forgot one more script file: list.min.js |
10:31 | |
lizmat | andreoss: presently, panda does not precompile anymore (afaik) | ||
RabidGravy | didn't last time I looked | ||
timotimo | andreoss: it looks like you have some wildly outdated .moarvm files or something | ||
like, at least 2 months old | 10:32 | ||
BBIAB | |||
RabidGravy | ooh a git update | 10:33 | |
timotimo | andreoss: if you require precompilation, you can use zef to install your modules | 10:34 | |
it's on github under ugexe/zef | |||
flussence has a nasty `find` command to precompile stuff: | 10:36 | ||
find $install/share/perl6/site/lib/ -name '*.pm' -exec bash -xc 'test -f {}.moarvm || perl6 --optimize=3 --target=mbc --output={}.moarvm {}' \; | |||
(takes 3-4 iterations, but it works...) | 10:37 | ||
masak | one thing that annoys me about Perl 6 script arguments right now is that I can do -e'say 42' or -e 'say 42' with Rakudo, but with a Perl 6 *script* I have to write it as -e='say(42)' (with the `=`) | 10:38 | |
the asymmetry annoys me. | |||
e.g. `perl6 bin/007 -e='say(42)'` | |||
I don't know of a reason it *has* to be the way it currently is, save maybe for "spec says so" | 10:39 | ||
and I posit that allowing -e'say(42)' would harm no-one and make the experience better for those who want it :) | 10:40 | ||
pink_mist | what's bin/007? | ||
flussence | lotsa things about MAIN annoy me. it works pretty well for 80% of cases but it's ugly for the other 80% | ||
masak | pink_mist: masak.github.io/007/ github.com/masak/007 | 10:42 | |
flussence: yes, I have the same experience. | |||
flussence: I do think it's just a matter of polishing it further, though. | |||
flussence: I don't think a raging revolution is called for. just incremental improvements. | 10:43 | ||
pink_mist | masak: so it's a script? looks to me like bin/007 should get the -e='say(42)' argument? not the perl6 interpreter/vm | ||
masak | pink_mist: correct. | ||
flussence | agreed. I've seen most of the language at "80% done" at one point or another. It'll get much better in the end :) | 10:44 | |
masak | pink_mist: what feels inconsistent to me is that Rakudo has this nice -e'...' shortcut, but Perl 6 scripts need to do it like -e='...' | ||
mst | won't "-e '...'" work? | 10:45 | |
10:46
ely-se left
|
|||
flussence | mst: MAIN is kind of primitive. that just sets boolean :$e and a positional arg right now. | 10:47 | |
masak | mst: no :( but I'd like it to. | 10:50 | |
CIAvash | There is a TODO comment in Main.pm: # * Allow both = and space before argument of double-dash args | ||
masak | both forms -e'...' and -e '...' should work. | ||
flussence | (and "primitive" is putting it mildly - `panda list --installed` doesn't work, `panda --installed list` does) | ||
masak | I don't care what happens to the -e='...' form | ||
flussence: ah, yes. that one annoys me to no end as well. | |||
flussence: "please put your named arguments *first*!" (as opposed to named parameters in Perl 6 routines, which have to be after the positionals, and named Perl 6 arguments, which can occur anywhere) | 10:51 | ||
timotimo | now my chrome says "load: 1.21s, domContentLoaded: 1.28s" | 11:01 | |
11:04
azawawi joined
|
|||
azawawi | hi #perl6 | 11:04 | |
timotimo | heyo azawawi! | ||
masak | hi azawawi | 11:05 | |
azawawi is working on github.com/azawawi/language-perl # atom's Perl 6 syntax highlighting | |||
timotimo | awesome! | ||
El_Che | does it include 5? | ||
azawawi | one bug caught my idea... but it is rather severe in windows perl 6 repl | ||
El_Che: yes | |||
El_Che | nice | ||
azawawi | El_Che: im just modifying it to accept start-from-here or is-required ... so it does not highlight keywords | 11:06 | |
perl6 repl gets stuck after evaluating 'sub foo { say "1"; }; foo();' | 11:07 | ||
timotimo | "start-from-here"? "is-required"? | ||
azawawi | timotimo: sub start-from-here { ... } | 11:08 | |
timotimo: that's legal in Perl 6, right? | |||
timotimo | oh | ||
that's right | |||
azawawi | timotimo: sub is-required { ... } | ||
timotimo | i thought those were supposed to be Actual Things | 11:09 | |
azawawi | confirmed... perl6 windows repl gets stuck after executing " sub foo() { say 1; }; foo;" twice... like it is expecting input or something | 11:11 | |
any ideas? | |||
timotimo | :o | ||
you can attach gdb to it and see what the backtrace says? | 11:12 | ||
flussence tries running browser profiler on the modules page, gets an OOM | 11:14 | ||
azawawi | interesting | 11:20 | |
m: sub is-1 { ... } | 11:21 | ||
camelia | rakudo-moar ac750a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Eqa0cC8tDpMissing blockat /tmp/Eqa0cC8tDp:1------> 3sub is7⏏5-1 { ... } expecting any of: new name to be defined» | ||
azawawi | m: is-1; | ||
camelia | rakudo-moar ac750a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/S4a7TGI456Undeclared routine: is used at line 1» | ||
azawawi | that's not right | ||
is-1 is not a valid routine name right? | |||
RabidGravy | I didn't think so | ||
flussence | hyphens are only valid between letters iirc | ||
std: sub is-1 {...} | 11:22 | ||
11:22
camelia left,
Zoffix left,
Zoffix joined
|
|||
azawawi | so basically the message "Undeclared routine" is not correct? | 11:22 | |
11:22
_mg_ left
11:23
camelia joined
|
|||
RabidGravy | other wise | 11:23 | |
m: sub foo { 10 }; say foo-1 | |||
wouldn't be possible | 11:24 | ||
camelia | std : OUTPUT«Can't chdir to '/home/camelia/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 171. EvalbotExecuter::_auto_execute(HASH(0x26c6218), "sub is-1 {...}", GLOB(0x260e8e0), "/tmp/TvW36K2DdN", "std") called at lib/EvalbotExecuter.pm line 119 EvalbotExe…» | ||
11:24
ChanServ sets mode: +v camelia
|
|||
camelia | rakudo-moar ac750a: OUTPUT«9» | 11:24 | |
RabidGravy | there there | 11:25 | |
obviously, though | |||
azawawi | yeah confusing but you're right... the message is right | ||
RabidGravy | m: sub foo { 10 }; sub bar { 1 }; say foo-bar; | ||
camelia | rakudo-moar ac750a: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Js_sdWbm8SUndeclared routine: foo-bar used at line 1» | ||
flussence | std: hello? | ||
11:25
camelia left
|
|||
RabidGravy | tricky | 11:25 | |
azawawi | after working with syntax highlighting regexes, this obviously happens to one :) | ||
flussence | guess it's dead... | 11:26 | |
11:27
camelia joined
|
|||
azawawi | i guess we should have required routine() syntax to remove the ambiguity... | 11:27 | |
so many special cases for Perl 6 lol | |||
timotimo | ah, you mean like routine(foo-bar)(1, 2, 3)? :P | ||
dalek | kudo/nom: d175d00 | lizmat++ | src/core/IO/Handle.pm: Checking for eoffh should be enough |
11:28 | |
timotimo | routine(say)("hello, azawawi!"); routine(say)(1 routine(+) 2) | ||
camelia | std : OUTPUT«Can't chdir to '/home/camelia/std/snap': No such file or directory at lib/EvalbotExecuter.pm line 171. EvalbotExecuter::_auto_execute(HASH(0x26c6218), "hello?", GLOB(0x3da7400), "/tmp/lrriqcsF22", "std") called at lib/EvalbotExecuter.pm line 119 EvalbotExecuter::_…» | ||
11:28
ChanServ sets mode: +v camelia
|
|||
azawawi | timotimo: i meant to require a () for a routine call like javascript and other languages... | 11:29 | |
timotimo: while it is fun, it has edge cases where it does not work | 11:30 | ||
timotimo | :) | ||
11:31
ely-se joined
|
|||
azawawi | github.com/azawawi/language-perl/c...9b477f160d # tests | 11:32 | |
11:33
mr_ron joined,
g4 joined,
g4 left,
g4 joined
|
|||
azawawi | the whole a routine can be inside an identifier if a dash is involved is funny :) | 11:33 | |
11:34
Skarsnik joined
|
|||
azawawi | given that we have a lot of keywords and word operators i bet there is some cases we didnt cover | 11:34 | |
s/is/are | 11:35 | ||
Zoffix | Woohoo \o/ It's a win for OCD :) github.com/araraloren/Net-Ftp/issues/11 | 11:36 | |
azawawi | Zoffix: re the datatables idea, i could work on the frontend/backend since i already have done for countless web projects... :) | 11:37 | |
Zoffix | azawawi, too late :D I already started. And depending on how awesome Fallout 4 will end up, we'll see the final product in a couple of days :P | 11:39 | |
azawawi | Zoffix: then we wont see anything :) | ||
Zoffix | hahaha | ||
azawawi blames his open source laziness on world of warcraft | 11:40 | ||
11:41
Actualeyes left
|
|||
jnthn | afternoon, #perl6 | 11:42 | |
yoleaux | 8 Nov 2015 22:27Z <lizmat> jnthn: when thinking about VM level chomping, I was thinking that chomp would be a VMIO attribute | ||
8 Nov 2015 22:29Z <lizmat> jnthn: is there a reason for not making chomp a VMIO level attribute ? | |||
11:42
kensanata joined
|
|||
timotimo | greetings jnthn! | 11:42 | |
lizmat | jnthn o/ | ||
jnthn: please also see my remarks on #moarvm | 11:43 | ||
11:43
weihan joined
|
|||
jnthn | lizmat: The VM interface is already complex enough; I don't think there's any compelling performance reason to push the "chomp or not" decision there | 11:43 | |
There's not likely to be a performance win. | |||
11:44
Actualeyes joined
|
|||
lizmat | ok, then remains this: | 11:44 | |
$ 6 'spurt("one","\n"); say open("one").get' | |||
(Str) | |||
I would expect an empty line there | |||
jnthn | Is that a behavior change? | ||
If so, it wasn't tested. | |||
lizmat | well, yes, because before we would *always* get the line ending | 11:45 | |
and *then* chomp | |||
so you could check nqp::chars | |||
jnthn | Right, thus why I did the "check eof" change | ||
lizmat | yes, but eof is already set apparently | ||
so it reads the line, notices it is at the end of the file, sets the eoffh flag, then returns the (possibly) chomped line | 11:46 | ||
at the other end, it sees the eoffh flag set and no chars, so done | 11:47 | ||
jnthn | iirc there isn't actually an "eof flag" in syncfile | ||
11:47
rindolf left
|
|||
jnthn | That's quite possibly going to change | 11:47 | |
lizmat | anyway, I'll add a test :-) | 11:48 | |
jnthn | OK. Remember to mark it todo | 11:49 | |
lizmat | yeah... :-) | ||
jnthn | And then if other I/O refactors happen to fix it then we'll notice. | ||
11:50
sprocket left,
xpen left
11:52
FROGGS left
11:56
sufrostico joined
11:58
ely-se left
12:01
dolmen joined
|
|||
dalek | ast: 51c0632 | lizmat++ | S16-io/lines.t: Add some more line ending tests |
12:01 | |
12:01
ely-se joined
12:07
_mg_ joined
12:14
Hor|zon joined
|
|||
azawawi | github.com/atom/language-perl/pull/56 # Better highlighting PR for atom :) | 12:15 | |
12:20
mr_ron left
12:21
pippo left
12:23
azawawi left
|
|||
lizmat | All tests successful. | 12:27 | |
Files=1071, Tests=49977, 233 wallclock secs (12.88 usr 3.73 sys + 1433.93 cusr 130.67 csys = 1581.21 CPU) | |||
^^^ just because it feels good | 12:28 | ||
jnthn | Also, looks like we'll be able to say that 6.c has more than 50,000 tests :) | ||
dalek | kudo/nom: 93f8992 | lizmat++ | src/core/IO/Handle.pm: Streamline IO::Handle.get a bit more Don't check for EOF always first, only *after* having tried to read *and* only when no chars were returned |
12:29 | |
lizmat | jnthn: working on that :-) | 12:31 | |
jnthn has 15 new tests locally also :) | 12:32 | ||
lizmat | jnthn: do you have an opinion about IO::Handle.ins ? | 12:35 | |
I think it should die: in these days of lines.kv, we don't need the overhead for *all* line based reading | |||
dalek | kudo/nom: 65bfb6c | lizmat++ | src/core/IO/Handle.pm: Streamline IO::Handle.getc, now 2x as fast This now returns Str upon reaching EOF rather than a fail. Reasons: - it is more line with .get returning Str at EOF - returning a Str is *much* cheaper than returning a fail - checking most likely was for .getc.defined anyway, so that still works FWIW, no spectest breakage |
12:41 | |
12:41
kid51 joined
|
|||
jnthn | lizmat: No particularly strong views either way | 12:42 | |
lizmat | lemme check the gain and spectest breakage | ||
a loop with .get is 9% faster without the $!ins update | 12:47 | ||
12:49
kid51 left,
CIAvash left
12:50
jevin left
12:51
yqt joined
|
|||
lizmat | jnthn: 3 tests fail in t/spec/S16-filehandles/io.t which specifically test for .ins | 12:54 | |
RabidGravy | a small LTA : | ||
m: my $a = "jsjsjs {"; for <a b> -> $b { say $b } | |||
camelia | rakudo-moar 65bfb6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QteI9KZjBiVariable '$b' is not declaredat /tmp/QteI9KZjBi:1------> 3my $a = "jsjsjs {"; for <a b> -> 7⏏5$b { say $b }» | ||
lizmat | rakudobuggable I would think | ||
12:55
mr_ron joined,
brrt joined
|
|||
RabidGravy | I thought I was going stupid, took me ages to work out where the problem was | 12:56 | |
lizmat | maybe TimToady has a stronger view on IO::Handle.ins | ||
or someone else on the channel | 12:57 | ||
if not, I'll remove it | |||
12:57
weihan left
|
|||
ilmari | m: my $a = "{ 42"; for <a b> -> $b { say $b } # also LTA error | 12:57 | |
camelia | rakudo-moar 65bfb6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/m116oiicsoTwo terms in a rowat /tmp/m116oiicso:1------> 3my $a = "{ 427⏏5"; for <a b> -> $b { say $b } # also LTA expecting any of: infix infix stopper stateme…» | ||
ilmari | "unterminated block in string interpolation" or somesuch? | 12:58 | |
RabidGravy | I'll make an RT and put both in | ||
jnthn | lizmat: +1 to "see what TimToady thinks" | ||
ilmari | m: { 42 | 12:59 | |
camelia | rakudo-moar 65bfb6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QtT7yJq6TZMissing blockat /tmp/QtT7yJq6TZ:1------> 3{ 427⏏5<EOL> expecting any of: statement end statement modifier statement modifier loop» | ||
12:59
cognominal joined
|
|||
ilmari | or at least make it the same as that error? | 12:59 | |
jnthn | Missing block is a tad off there too | 13:00 | |
Good errors. They're really darn hard. :-) | |||
ilmari | "missing end of block" would be more helpful | 13:01 | |
RabidGravy | just added an RT #126596 for the first two | 13:04 | |
13:06
AlexDaniel left
|
|||
andreoss | m: (1,2,3)>>.WHAT>>.say | 13:07 | |
13:07
jevin joined
|
|||
camelia | rakudo-moar 65bfb6: OUTPUT«Memory allocation failed; could not allocate 94208 bytes» | 13:07 | |
andreoss | m: (1,2,3).WHAT>>.say | 13:10 | |
ilmari | what happened to the linkbot? | ||
camelia | rakudo-moar 65bfb6: OUTPUT«Memory allocation failed; could not allocate 94208 bytes» | ||
moritz | m: say 42 | ||
camelia | rakudo-moar 65bfb6: OUTPUT«42» | ||
13:10
silug left
|
|||
ilmari | m: (1,2,3).>>WHAT.say | 13:10 | |
camelia | rakudo-moar 65bfb6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5rXI1v2JjhMissing dot on method callat /tmp/5rXI1v2Jjh:1------> 3(1,2,3).>>7⏏5WHAT.say expecting any of: postfix» | ||
timotimo | i wonder if we should replace things in the core setting that "fail foobar" with "return Failure.new(...)" | 13:11 | |
ilmari | m: (1,2,3)>>.WHAT.say | ||
camelia | rakudo-moar 65bfb6: OUTPUT«(List)» | ||
ilmari | m: ((1,2,3)>>.WHAT).say | ||
camelia | rakudo-moar 65bfb6: OUTPUT«(List)» | ||
13:11
lucasb joined
|
|||
andreoss | why not (Int Int Int)? | 13:11 | |
m: (1,2,3)>>.^name>>.say | 13:12 | ||
camelia | rakudo-moar 65bfb6: OUTPUT«List» | ||
andreoss | m: (1,2,3).map(*.^name)>>.say | ||
camelia | rakudo-moar 65bfb6: OUTPUT«IntIntInt» | ||
jnthn | .WHAT is macro-ish; I'm surprised it works at all with >> | ||
(Rather than compile error) | |||
timotimo | m: List>>.say | 13:13 | |
^ golfed | |||
masak | it's weird to call anything method-like "macro-ish". methods are late-bound; macros are very very early. | ||
camelia | rakudo-moar 65bfb6: OUTPUT«Memory allocation failed; could not allocate 8192 bytes» | ||
lucasb | hmm, it looks method-ish, but it's not | 13:14 | |
masak | something like that. | ||
people have been known to say that `.WHAT` is a postfix operator or something. | |||
maybe that's the way to look at it -- I dunno | |||
13:14
rindolf joined
|
|||
ilmari | m: List>>.who-what-where-now? | 13:14 | |
camelia | rakudo-moar 65bfb6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/cHD0wsyEMHBogus postfixat /tmp/cHD0wsyEMH:1------> 3List>>.who-what-where-now7⏏5? expecting any of: infix infix stopper statement end statement modif…» | ||
ilmari | m: List>>.who-what-where-now | ||
andreoss | m: (1,2,3)>>.^name>>.say | 13:15 | |
camelia | rakudo-moar 65bfb6: OUTPUT«Memory allocation failed; could not allocate 131072 bytes» | ||
rakudo-moar 65bfb6: OUTPUT«List» | |||
andreoss | jnthn: same with .^name? | ||
dalek | kudo-star-daily: d14e317 | coke++ | log/ (9 files): today (automated commit) |
13:16 | |
rl6-roast-data: ea620f8 | coke++ | / (9 files): today (automated commit) |
|||
13:17
pippo joined
|
|||
jnthn | masak: The thing that makes .WHAT not just compile into a method call is *very* compile time :P | 13:18 | |
13:20
xpen joined
|
|||
psch | jnthn: i've been looking at RT #74414, and the obvious way throws X::Multi::NoMatch for e.g. --"x" | 13:22 | |
jnthn: fixing that brought up that find_best_dispatchee might encounter multiple rw-params, and we probably want all listed | |||
masak | jnthn: yes -- I see there are two truths in there. | ||
dalek | kudo/nom: ea87a8f | coke++ | docs/release_guide.pod: Move a bit of historical documentation closer to where it's relevant. |
13:23 | |
masak | jnthn: one is that .WHAT is special-cased in Rakudo, and thus "macro-ish" | ||
psch | jnthn: which in turn needs Binder.bind to also gather all, for consistency's sake | ||
jnthn: is that still reasonable? | |||
masak | jnthn: another is that in a Perl 6 program, it's not reasonable to expect to define a "macro method", because methods are not "macro-ish" | ||
RabidGravy | m: class Foo { has Str $.1024wx1024h; } # also LTA | ||
camelia | rakudo-moar 65bfb6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/g37qNNiLV_Cannot declare an anonymous attributeat /tmp/g37qNNiLV_:1------> 3class Foo { has Str $.7⏏051024wx1024h; } # also LTA» | ||
13:23
stmuk_ joined
|
|||
masak | by syllogism, .WHAT can't be a method call, but we knew that ;) | 13:23 | |
RabidGravy | is there a way in code to determine whether a string contains a valid perl identifier to stop that happening? | 13:25 | |
jnthn | psch: one moment, debugging something odd here... :) | ||
13:26
stmuk left,
kjs_ joined
|
|||
Skarsnik | Hello, hm, does Global (or something else?) contain a way to find what symbol does a particuliar role? | 13:27 | |
13:28
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
moritz | m: say Int ~~ Numeric | 13:28 | |
camelia | rakudo-moar 65bfb6: OUTPUT«True» | ||
moritz | oh, you want it the other way? | ||
RabidGravy | ah | 13:29 | |
m: say "x1024wx1024h" ~~ /^<.ident>$/ | |||
camelia | rakudo-moar 65bfb6: OUTPUT«「x1024wx1024h」» | ||
RabidGravy | m: say "1024wx1024h" ~~ /^<.ident>$/ | ||
camelia | rakudo-moar 65bfb6: OUTPUT«Nil» | ||
Skarsnik | It's more without knowing them, I want to find the classes loaded/defined that does 'something' | 13:30 | |
moritz | m: .say if CORE::($_) ~~ Numeric for CORE::.keys for Skarsnik | ||
camelia | rakudo-moar 65bfb6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/wC6WrqPBpuMissing semicolonat /tmp/wC6WrqPBpu:1------> 3RE::($_) ~~ Numeric for CORE::.keys for 7⏏5Skarsnik» | ||
moritz | m: .say if CORE::($_) ~~ Numeric for CORE::.keys # for Skarsnik | ||
camelia | rakudo-moar 65bfb6: OUTPUT«SIGSEGVSIGHUPPromiseStatusDurationBrokenFileChangeEventUInt64OrderRatStrNumericSIGPIPEInstantSIGBUSSIGWINCHSIGXFSZSIGILLπFileRenamedSIGUSR2Lexical with name '$init-time-num' has a different type in …» | ||
moritz | Skarsnik: ^^ something along this line | ||
Skarsnik: I'm but in general, this is a very bad idea | |||
it might be justifiable for a debugger or an IDE, for example | 13:31 | ||
but for "normal" code, it's an anti pattern | |||
Skarsnik | Yes, that look slow | ||
RabidGravy | Skarsnik, see also Module::Does github.com/tony-o/perl6-module-does/ | 13:32 | |
moritz | not just speed; it breaks encapsulation | ||
RabidGravy | this may well do the same thing under the hood | ||
13:32
pippo left
|
|||
[Coke] belatedly waves at autarch | 13:33 | ||
Skarsnik | RabidGravy, I don't understand at all this module actually x) I have no idea how it supposed to be used | ||
dalek | c: 3c6b9d2 | (Brock Wilcox)++ | doc/Language/syntax.pod: Remove links from headers |
13:35 | |
c: b7b41e1 | RabidGravy++ | doc/Language/syntax.pod: Merge pull request #190 from awwaiid/syntax-links Remove links from headers |
|||
lucasb | m: CORE::('$init-time-num') | 13:39 | |
camelia | rakudo-moar ea87a8: OUTPUT«Lexical with name '$init-time-num' has a different type in this frame in block <unit> at /tmp/q8vJ0vD6yq:1» | ||
RabidGravy | tadzik, you about? | ||
lucasb | I was exploring moritz's eval and run into this ^^ | 13:40 | |
tadzik | RabidGravy: ya | ||
andreoss | m: class Foo { has $.x is required } ; Foo.new | ||
camelia | rakudo-moar ea87a8: OUTPUT«The attribute '$!x' is required, but you did not provide a value for it. in block <unit> at /tmp/eieEvHUtzI:1» | ||
andreoss | is this message correct? why not '$.x'? | 13:41 | |
lizmat | andreoss: the internal name of an attribute is always with ! | ||
13:41
advwp left
|
|||
lizmat | the $.x in the declaration merely indicates it should create an accessor for it, thus making it public | 13:42 | |
jnthn | has $.x means "declare $!x and declare an accessor method" | ||
RabidGravy | tadzik, yo! Would you be interested in a further PR for JSON::Unmarshal that introduces a "json-name" trait? I'm looking at some JSON here with very Perl unfriendly attrribute names :) | 13:43 | |
13:43
Some-body_ joined
|
|||
RabidGravy | i,e, the mixcloud API has a "pictures" structure with "1024wx1024h", "320wx320h", "640wx640h" and "768wx768h" as names | 13:44 | |
dalek | ast: 6cf4972 | jnthn++ | S32-str/utf8-c8.t: Add tests for new UTF-8 C-8 encoding. We'll use this to allow any 8-bit octet stream from the OS to be held in a Str, so we can round-trip non-UTF-8 filenames, environment vars, etc. |
||
timotimo | github.com/MoarVM/MoarVM/issues/193 -- for those who recently worked on newline stuff, please have a quick look. doesn't seem like MoarVM's issue tracker's the right place for at least half of that bug | 13:45 | |
[Coke] wonders if there's a way to make irssi not lose all backscroll when there's too much backscroll. I want it to leave the last page worth so I can know where to start reading on the logs. | |||
psch | m: sub f($a is rw, $b is rw) { }; f 1, 2 | ||
camelia | rakudo-moar ea87a8: OUTPUT«Parameter '$a' expected a writable container, but got Int value in sub f at /tmp/ha0UTLmdH4:1 in block <unit> at /tmp/ha0UTLmdH4:1» | ||
dalek | ast: 1b7676d | lizmat++ | S16-io/lines.t: Add test for multiple line endings |
13:47 | |
timotimo | m: say uniname("") # LTA error. someone want to rakudobug (and search if there's already an RT open?) | ||
camelia | rakudo-moar ea87a8: OUTPUT«Cannot unbox a type object in block <unit> at /tmp/Cn3fnQXTM_:1» | ||
psch | hm, thinking about it my main concern is actually efficiency, but walking through all params again in Binder.bind after we encountered one with insufficient rwness doesn't really matter there anymore, 'cause we're on a fail path already | 13:48 | |
jnthn | timotimo: Well, we won't do the "paragraph mode" magic just for setting an empty string :) | 13:49 | |
Also, it doesn't seem to be a test against latest anyway | 13:50 | ||
As the nl => 'ee' bit was fixed recently | |||
Which makes me question to rest of it too | |||
It also wants an API change that isn't going to happen. | 13:51 | ||
lizmat | All tests successful. | 13:52 | |
Files=1070, Tests=50009, 245 wallclock secs (12.62 usr 4.31 sys + 1406.00 cusr 131.27 csys = 1554.20 CPU) | |||
:-) | |||
13:52
DarthGandalf left,
Some-body_ is now known as DarthGandalf,
risou is now known as risou_awy
13:53
risou_awy is now known as risou
|
|||
jnthn | :-) | 13:53 | |
timotimo | jnthn: right, that bug is a bit old already | ||
jnthn | ah | ||
I'd check if any of it still holds | |||
And if so file that in RT | |||
The only bit that may afaict is what setting the sep as "" means | 13:54 | ||
timotimo | i'm willing to just say "rejected as 1) not a MoarVM thing (any more), b) too much stuff in a single ticket" | ||
setting the sep to "" will just give you .comb-like behavior, obviously :P | |||
13:54
kmel_ joined
|
|||
jnthn | Well, there was one moar bug but it got fixed | 13:54 | |
tadzik | RabidGravy: sounds good :) | ||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 0cf1494 | (Zoffix Znet)++ | web/index.tmpl: Move JS and non-essential CSS back to the end of page See this discussion: github.com/perl6/modules.perl6.org...t-14273618 |
||
tadzik | RabidGravy: and reminds me of Go | ||
timotimo | thank you, Zoffix | ||
tadzik | where I used it a couple times too | ||
13:54
Koth is now known as KotH
|
|||
kmel_ | +"3"; | 13:54 | |
m: +"3#; | 13:55 | ||
camelia | rakudo-moar ea87a8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/U9sLv8I_zDUnable to parse expression in double quotes; couldn't find final '"' at /tmp/U9sLv8I_zD:1------> 3+"3#;7⏏5<EOL> expecting any of: double quotes prefix» | ||
13:55
kjs_ left
|
|||
kmel_ | m: +"3"; | 13:55 | |
camelia | rakudo-moar ea87a8: OUTPUT«WARNINGS:Useless use of "+" in expression "+\"3\"" in sink context (line 1)» | ||
ilmari | m: say +"3" | 13:57 | |
camelia | rakudo-moar ea87a8: OUTPUT«3» | ||
[Coke] | RT: 1060; tests: 12; LTA: 87; WEIRD: 11; NOM: 8; GLR: 7; JVM: 40 | ||
timotimo | anyway, the moarvm issues list is now like 4 or 5 issues shorter | ||
kmel_ | Thanks ilmari | ||
[Coke] | whoops: XMAS: 62 | ||
13:58
brrt left
|
|||
RabidGravy | tadzik, cool. As it will be the same for JSON::Marshal I'll probably make a separate module that has the actual trait in and use that in both places | 13:59 | |
lizmat | jnthn: when opening a handle for writing, shouldn't nl-out default to $?NL ? | 14:00 | |
14:00
Actualeyes left
|
|||
jnthn | lizmat: It *does*, trouble is the $?NL of the setting | 14:01 | |
lizmat: CLIENT::<$?NL> would hopefully work :) | |||
[Coke] | m: say "Note that we have 37 days to close those 62 tickets, at { 62 / 37 } per day" | ||
camelia | rakudo-moar ea87a8: OUTPUT«Note that we have 37 days to close those 62 tickets, at 1.675676 per day» | ||
jnthn | lizmat: You can try setting that as the default | ||
[Coke]: /o\ | |||
jnthn is at least dealing with one of the hairier ones at the moment :) | |||
[Coke] | Sorry. Might have to retriage at some point. | ||
jnthn | So will manage at least one today :) | 14:02 | |
[Coke] | Also, that doesn't count, I assume, tickets created after your initial triage. | ||
Note that I'm doing that until the scheduled december release, which we can consider actually doing on Christmas, if people will be around. that will buy us a few more days. | |||
jnthn | [Coke]: Yeah, we'll need to do a re-scan | ||
[Coke]: Some of the tickets will just be resolved with design rulings or an explicit "that's post-6" though | 14:03 | ||
lunch & | |||
14:05
cxreg left
14:06
cxreg joined
|
|||
dalek | href="https://modules.perl6.org:">modules.perl6.org: 3ac0bc2 | (Zoffix Znet)++ | web/ (2 files): Move inlined JS to JS file |
14:06 | |
[Coke] wonders why locally ".sort({ ... })" works, but ".sort:{ ... }" does not. | 14:07 | ||
14:08
kmel_ left,
skids joined
|
|||
Ulti | jnthn with race() would you expect something like the folloqing to work? (2 .. 1000).race(batch => 250, degree => 4).grep({ (2 .. truncate sqrt $^n).grep($^n %% *).elems == 0 }); | 14:11 | |
and return a list? | |||
14:12
advwp joined
|
|||
Ulti | because it used to maybe a month ago, but now just returns an empty list, if you get rid of the .race() it does the right thing | 14:12 | |
though might be I am just going insane and it never worked | |||
masak | [Coke]: might be the lack of space between `:` and `{ ... }` | 14:13 | |
14:15
kmel_ joined
|
|||
kmel_ | m: say ^5; | 14:15 | |
camelia | rakudo-moar ea87a8: OUTPUT«^5» | ||
14:15
Actualeyes joined
|
|||
kmel_ | How do I make the above statement return: 0,1,2,3,4 ? | 14:16 | |
nine | m: say |^5 | 14:17 | |
camelia | rakudo-moar ea87a8: OUTPUT«01234» | ||
kmel_ | Thanks nine | ||
lizmat | jnthn: why isn't $?NL just an ordinary dynamic like $*NL | ||
with it's default value set up at startup from $*DISTRO ? | 14:18 | ||
FWIW, using CLIENT::<$?NL> breaks building the restricted setting | 14:19 | ||
14:22
kaare_ joined,
Amnez777 left,
Amnez777 joined
|
|||
[Coke] is processing this file: raw.githubusercontent.com/coke/per...ummary.out , and finding that this seems to pick out the number of failed tests, but then doesn't actually sort: pbpaste | grep aborted | perl6 -ne '.sort({ m/'aborted' <.ws> (d+) <.ws> 'test'/ ; +~$/[0] }).say' | 14:23 | ||
kmel_ | m: say | 0..5; | 14:24 | |
camelia | rakudo-moar ea87a8: OUTPUT«1..5» | ||
[Coke] | (er, just processing things after the line with Failure summary, my bad) | ||
14:24
ely-se left
|
|||
kmel_ | m: say | (0 .. 5); | 14:26 | |
camelia | rakudo-moar ea87a8: OUTPUT«012345» | ||
jnthn | Ulti: Sounds like a bug, though .race/.hyper are still (a) untested, and (b) exactly the prototype code I wrote in the GLR proof of concept | 14:27 | |
Ulti: Where I just made sure I was happy with the API :) | |||
lizmat | m: say ^5 .join(",") # kmel_ | ||
camelia | rakudo-moar ea87a8: OUTPUT«0,1,2,3,4» | ||
jnthn | Ulti: Feel free to file that example in RT, then it'll make it into the tests :) | ||
Ulti | jnthn okedoke, thanks | 14:28 | |
kmel_ | lizmat how is |0..5 different than |(0..5) ? | ||
14:28
nowan_ is now known as nowan
|
|||
lizmat | kmel_: not, I would say ? | 14:29 | |
jnthn | Precedence, no? | ||
kmel_ | m: say | 0 .. 5; | ||
camelia | rakudo-moar ea87a8: OUTPUT«1..5» | ||
kmel_ | m: say | (0 .. 5); | 14:30 | |
camelia | rakudo-moar ea87a8: OUTPUT«012345» | ||
kmel_ | See | ||
lizmat | yeah, weird | ||
pink_mist | the first one is wrong even ... starts with 1 instead of 0 | ||
lizmat | m: say Slip.new(0).elems | 14:31 | |
camelia | rakudo-moar ea87a8: OUTPUT«1» | ||
lizmat | that's where the 1 comes from, I think | ||
kmel_ | jnthn: probably | 14:32 | |
lizmat | perhaps we should disallow a Slip as a startpoint of a Range ? | ||
like we disallow a Seq to be a startpoint ? | |||
jnthn | *shrug* | 14:33 | |
Not sure it's common enough to be worth the code, and if it is then why not just disallow any Iterable? | |||
lizmat checks the fallout of that | 14:34 | ||
14:35
yqt left
14:36
cognominal left
|
|||
kmel_ | Webirc on mobile is like hell :( | 14:36 | |
14:36
duncan_dmg joined
|
|||
kmel_ | Anyone tried to compile rakudo on Android? | 14:37 | |
Ulti | lame my first RT is a huge fail, since it looks at the copy pasted REPL lines starting with > as replies | ||
*sigh* sorry | |||
14:43
brrt joined
14:44
aborazmeh left
14:46
raiph joined
14:47
yqt joined
14:48
ely-se joined,
jantore left,
sufrostico left
14:49
jantore joined,
softmoth_ joined
|
|||
RabidGravy | m: class F { has $.foo.bar }; my $f = F.new(); say $f.foo.bar | 14:51 | |
camelia | rakudo-moar ea87a8: OUTPUT«Method 'bar' not found for invocant of class 'Any' in block <unit> at /tmp/pgsQdx56Qt:1» | ||
RabidGravy | SooOOOoo, the question is what does it think it is doing with "has $.foo.bar" | 14:52 | |
moritz | same as (has $.foo).bar maybe? | 14:53 | |
Ulti | m: say ? - ? | 14:56 | |
camelia | rakudo-moar ea87a8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pJ5a7R0ccYPrefix ? requires an argument, but no valid term foundat /tmp/pJ5a7R0ccY:1------> 3say ? - ?7⏏5<EOL> expecting any of: prefix» | ||
lizmat | m: sub a(Slip) { say "foo" }; a(|0) # cannot MMD on a Slip :-( | 14:58 | |
camelia | rakudo-moar ea87a8: OUTPUT«Type check failed in binding <anon>; expected Slip but got Int in sub a at /tmp/uAN7SPwZ92:1 in block <unit> at /tmp/uAN7SPwZ92:1» | ||
jnthn | lizmat: That's an argument list, | means something else there | 14:59 | |
m: sub a(Slip) { say "foo" }; a((|0)) | |||
camelia | rakudo-moar ea87a8: OUTPUT«foo» | ||
jnthn | m: sub a(Slip) { say "foo" }; a(slip(0)) | ||
camelia | rakudo-moar ea87a8: OUTPUT«foo» | ||
lizmat | yeah, but the point was to catch | 0..5 | ||
as you said, it has become an argument list by that time, so we can't MMD on it | 15:00 | ||
jnthn | Not on an operator though? | ||
m: multi infix:<..>(Slip $s, Numeric $n) { die 'oops' }; say |0..5 | |||
camelia | rakudo-moar ea87a8: OUTPUT«oops in sub infix:<..> at /tmp/fEOKKd91b_:1 in block <unit> at /tmp/fEOKKd91b_:1» | ||
jnthn | Seems to work out OK | ||
Guess you're doing this in Range.new which should also be fine | 15:01 | ||
But do check the other candidates there | |||
lizmat | not getting it to work in Range.new | ||
jnthn | What signature are you using? | ||
lizmat | i tried both Iterable and Slip | 15:02 | |
I guess I'm too tired or something... | 15:03 | ||
jnthn | Well, remember that multi sorting factors in all parameters | 15:04 | |
15:04
sprocket joined
|
|||
jnthn | So depending what you pick for the second arg you could get a tie | 15:04 | |
15:07
kmel_ left
|
|||
lucasb | m: my Int constant x = 'abc'; say x.WHAT | 15:07 | |
camelia | rakudo-moar ea87a8: OUTPUT«(Str)» | ||
Ulti | I'm disappointed dice aren't digits in unicode :'( | ||
lucasb | I noticed this usage here: github.com/rakudo/rakudo/blob/nom/...tash.pm#L9 | 15:08 | |
It's not putting a type constraint in the constant, right? I don't know if it should work or not | |||
15:08
colomon_ joined
15:09
colomon left,
colomon_ is now known as colomon
|
|||
[Coke] | m: my @a = 1,2,3); | 15:10 | |
camelia | rakudo-moar ea87a8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/5aPgZIqZ7eUnexpected closing bracketat /tmp/5aPgZIqZ7e:1------> 3my @a = 1,2,37⏏5);» | ||
[Coke] | is that a LTA error? | ||
(should we try for paren instead of bracket?) | |||
15:10
firstdayonthejob left
15:12
sufrostico joined
|
|||
[Coke] | ah, my sort problem before is, because I'm abusing -n there. no worries. | 15:13 | |
dalek | ast: 59686c6 | jnthn++ | S32-str/utf8-c8.t: Test UTF-8 C-8 used as a file encoding also. Just to make sure we cover all the code paths for the encoding. |
15:15 | |
Ulti | is there a way to query unicode meta information from within Perl 6? | 15:17 | |
so if I wanted to get all characters in the Number category? | |||
timotimo | yeah, we have "uniprop" | 15:18 | |
m: say uniprop("1"); say uniprop("a") | 15:19 | ||
camelia | rakudo-moar ea87a8: OUTPUT«NdLl» | ||
timotimo | the default is the general category thingie | ||
15:22
sufrostico left,
kmel_ joined
|
|||
kmel_ | Wait! You can override operators?! | 15:23 | |
jnthn | Sure. And define new ones | 15:25 | |
kmel_ | *newbie in Perl 6 land* | ||
ely-se | you can do that in any respectable language that has operators | ||
15:26
espadrine joined,
virtualsue joined
|
|||
kmel_ | ely-se oh so it's not something specific to P6? | 15:26 | |
timotimo | lizmat: please don't disallow iterables as range constructor/operator endpoints unless you have a very good reason to | ||
lizmat: because i like @foo .. @bar to give ranges for @foo.elems .. @bar.elems | 15:27 | ||
ely-se | kmel_: some other languages that have it: C++, C#, Haskell, Lua, Perl 5. | ||
dalek | ast: f6a5faa | lizmat++ | S16-io/basic-open.t: Add test for RT #126598 |
||
Ulti | m: constant ? = 2; say ?' | ||
camelia | rakudo-moar ea87a8: OUTPUT«5===SORRY!5=== Error while compiling /tmp/oxwF_bxg7rMissing initializer on constant declarationat /tmp/oxwF_bxg7r:1------> 3constant7⏏5 ? = 2; say ?'» | ||
lizmat | timotimo: that idea has been shelved :-) | ||
Ulti | cant you use emojii for constants? | ||
15:28
sprocket left
|
|||
timotimo | thanks | 15:28 | |
jnthn | Ulti: try \ before the name, or failing that term:<emoji> | ||
.u ? | |||
yoleaux | U+003F QUESTION MARK [Po] (?) | ||
15:28
sprocket joined
|
|||
kmel_ | So I should use parentheses then? | 15:28 | |
In |(0..5) | 15:29 | ||
andreoss | m: constant & = *; say (& * &)(1,2) | ||
camelia | rakudo-moar ea87a8: OUTPUT«Use of uninitialized value of type Callable in numeric context in any at gen/moar/m-Metamodel.nqp:1674Use of uninitialized value of type Callable in numeric context in any at gen/moar/m-Metamodel.nqp:1674Cannot find method 'CALL-ME' in block …» | ||
15:29
muraiki joined
|
|||
Ulti | .u ? | 15:29 | |
yoleaux | U+003F QUESTION MARK [Po] (?) | ||
15:30
CIAvash joined
|
|||
kmel_ | Did anyone try to compile rakudo on Android? | 15:30 | |
15:31
ely-se left
|
|||
kmel_ | Is it doable? | 15:31 | |
vytas | .u Ȕ | 15:32 | |
yoleaux | U+0214 LATIN CAPITAL LETTER U WITH DOUBLE GRAVE [Lu] (Ȕ) | ||
vytas | awesome :) | ||
15:33
ely-se joined,
xpen left
15:34
xpen joined
15:35
xpen left
15:36
xpen joined
15:41
xpen left
15:43
kmel_ left
15:44
virtualsue left
15:47
lucasb left
15:53
silug joined
|
|||
dalek | kudo/nom: 87eb661 | lizmat++ | src/core/Str.pm: Make sigs on uni* family of subs stricter So, e.g. 'uniname ""' now returns Str instead of an LTA error message about not being able to unbox a type object. |
15:57 | |
[Coke] | dwarring? | 15:59 | |
also laabs - instead of using say "#" or print "#" in a test file to get diagnostic output, use "diag". | 16:00 | ||
16:01
yqt left
16:02
kjs_ joined,
CIAvash left
|
|||
ilmari | m: say so "0" | 16:04 | |
camelia | rakudo-moar ea87a8: OUTPUT«True» | ||
ilmari | m: say so "" | ||
camelia | rakudo-moar ea87a8: OUTPUT«False» | ||
dalek | ast: b9fa40a | coke++ | S32-io/io-spec-win.t: use diag instead of raw print/say |
||
[Coke] | ^^ that test file has many issues on the JVM. It also has just commented out test data which needs cleaning. | 16:05 | |
dalek | ast: 85f1518 | lizmat++ | S15-unicode-information/uniname.t: uniname tests wrt to type objects & empty strings |
16:06 | |
lizmat | jnthn: looks like there are no tests for uniprop whatsoever: is that an oversight, or is it still in flux ? | 16:08 | |
jnthn | lizmat: Oversight | ||
brrt | every time i try perl6 again i'm amazed at its ergonomics | 16:09 | |
:-) | |||
16:10
Axord left
16:11
dbrock joined
|
|||
dalek | ast: a37b548 | lizmat++ | S15-unicode-information/unival.t: unival tests wrt to type objects & empty strings |
16:11 | |
16:12
yqt joined
16:16
khw joined,
ely-se left
|
|||
sergot | hi #perl6 \o | 16:16 | |
lizmat | sergot o/ | 16:17 | |
16:17
dbrock- joined
|
|||
dalek | ast: dfb702a | lizmat++ | S15-unicode-information/unimatch-general.t: unimatch tests wrt to type objects & empty strings |
16:17 | |
sergot | I have a question | ||
lizmat | this is #perl6, ask away! | ||
sergot | about Camelia :) | 16:18 | |
What should I do to get permission to use this logo? | |||
16:18
uruwi left,
dbrock left
|
|||
ilmari | sergot: raw.githubusercontent.com/perl6/mu...amelia.txt | 16:18 | |
sergot | as a cover of a magazine | ||
lizmat | "permission is | 16:19 | |
granted for non-exclusive use to label anything related to Perl 6, | |||
provided the image is labeled as a trademark when used as a main logo | |||
on a page." | |||
ilmari | sergot: ask TimToady if that's not sufficiently clear | ||
16:21
khw left
|
|||
sergot | thanks ilmari++ lizmat++ ! | 16:21 | |
zengargoyle | good * #perl6 | 16:23 | |
lizmat | zengargoyle o/ | 16:24 | |
zengargoyle | managed to add Algorithm::Trie::libdatrie to ecosystem after a long and hard fought battle with travis-ci | ||
16:24
khw joined
16:25
brrt left
|
|||
Skarsnik | hm, travis is a build system? I mean how you have Nativecall stuff compile on it? since it need an external lib x) | 16:26 | |
lizmat | m: say uniname "\r\n" # shouldn't we need to do something for synthethics ? | ||
camelia | rakudo-moar 87eb66: OUTPUT«CARRIAGE RETURN (CR)» | ||
lizmat | the above behaviour is because ord() returns the base character of a synthetic | 16:27 | |
jnthn ^^^ | |||
16:27
kensanata left
|
|||
jnthn | No, it can have ord semantics | 16:27 | |
m: say uninames "\r\n" | |||
camelia | rakudo-moar 87eb66: OUTPUT«(CARRIAGE RETURN (CR))» | ||
zengargoyle | Skarsnik: you fetch source, compile, install, and use LD_LIBRARY_PATH | ||
jnthn | That is wrong though | ||
lizmat | ok, will look at that then | 16:28 | |
jnthn | lizmat++ | ||
jnthn is about done with the current xmas RT he was working on | |||
Skarsnik | zemmihates, ho travis is a tool you use localy? | ||
dalek | ast: 717046a | jnthn++ | S32-str/utf8-c8.t: Another test to cover improved ergonomics. We spit out valid ASCII bytes as they are, for non-UTF-8-C8 output. |
16:29 | |
ast: ee24fab | lizmat++ | S15-unicode-information/uniprop.t: Add very basic sanity uniprop tests |
16:32 | ||
zengargoyle | i'm eventually going to try to bundle the library and use LibraryMake, it seems simple enough to not really need the automake/configure stuff. | ||
16:33
diana_olhovik_ left
|
|||
Skarsnik | it a wonder there is still thing that use the autotools x) | 16:34 | |
16:34
zakharyas left
|
|||
zengargoyle is now trying to decide if Search::Dict is a good name :P | 16:36 | ||
for WIP module #2 | |||
RabidGravy | Sounds good | 16:37 | |
16:37
xfix joined
|
|||
zengargoyle | and possibly about Perl 6 ifying Algo::Trie. seems it could do some Associative and Positional and Iterator things in an idiomatic way. | 16:38 | |
16:39
_mg_ left,
dalek left
16:40
dalek joined,
ChanServ sets mode: +v dalek
|
|||
Skarsnik | I was wondering is there some sort of low level call to write this sort of stuff? because it's the kind of stuff you are interested in having stuff aligned in memory or matching the size of the cpu cache | 16:40 | |
dalek | p: 03b69e4 | jnthn++ | tools/build/MOAR_REVISION: Get MoarVM with UTF-8 C-8 support. This means we can now cope with environments, filenames, and so forth that contain things that don't decode as UTF-8. |
16:43 | |
kudo/nom: 3fddcb5 | jnthn++ | tools/build/NQP_REVISION: Bump to get MoarVM with UTF-8 C-8 support. |
16:44 | ||
ast: 74ea399 | jnthn++ | S32-str/utf8-c8.t: Tests for RT #125420. |
16:45 | ||
kudo/nom: f298860 | jnthn++ | t/spectest.data: Run S32-str/utf8-c8.t (MoarVM only). |
16:47 | ||
16:53
abraxxa left
|
|||
jdv79 | there's no way to bind inside a list type construction, right? | 16:53 | |
my $a my @b = ("bind $ here", 2 ,3); instead of post @b[0] := $a | 16:54 | ||
*"bind $a" | |||
lizmat | m: my $b = (1,2,3); $b[0] = 42 | ||
camelia | rakudo-moar f29886: OUTPUT«Cannot modify an immutable Int in block <unit> at /tmp/I64I9XpaEN:1» | ||
lizmat | don't use an array | ||
m: my @a := (1,2,3); $b[0] = 42 | 16:55 | ||
camelia | rakudo-moar f29886: OUTPUT«5===SORRY!5=== Error while compiling /tmp/yOmzYuyQXiVariable '$b' is not declaredat /tmp/yOmzYuyQXi:1------> 3my @a := (1,2,3); 7⏏5$b[0] = 42» | ||
lizmat | m: my @a := (1,2,3); @a[0] = 42 | ||
camelia | rakudo-moar f29886: OUTPUT«Cannot modify an immutable Int in block <unit> at /tmp/JYZL_n7WI3:1» | ||
zengargoyle | about I/O, is there any advantage to doing I/O on blocksize chunks? | ||
lizmat | jdv79: or bind it ? | ||
jdv79 | ok | ||
so i guess not | 16:56 | ||
lizmat | so you only want a few of them bound ? | ||
jnthn | m: my @b := (my $a, 2, 3); $a = 42; say @b; | ||
camelia | rakudo-moar f29886: OUTPUT«(42 2 3)» | ||
jdv79 | yes = | ||
zengargoyle | and is blocksize available through IO::Handle anywhere? i couldn't find it at first pass. | ||
psch | m: my $a := ($, 1, 2); say $a[0]++; say $a[0] # i might misunderstand the question..? | ||
camelia | rakudo-moar f29886: OUTPUT«01» | ||
lizmat | zengargoyle: not afaik | ||
jnthn | Not unless blocksize is one of the things stat makes available | 16:57 | |
jnthn ticks RT #125420 off the xmas list | 16:58 | ||
lizmat | cycling& | 16:59 | |
hoelzro | o/ #perl6 | 17:00 | |
zengargoyle couldn't even find a stat method | |||
jnthn | .ask TimToady I'm not sure we've time to get the PRE/POST submethods done and semantics issues ironed out, or at least we've more important things to be doing before xmas. OK to do this feature in a 6.future? Should I note a "potential difficulty" if you write a PRE/POST submethod? | 17:02 | |
yoleaux | jnthn: I'll pass your message to TimToady. | ||
hoelzro | stat *does* expose block size, but afaik, the I/O uses buffered I/O, so it *should* be done in blocksize already | ||
then again, I don't know for sure what libuv does (and that only applies to Moar) | |||
jnthn | We do pull thinks in in chunks, but it's a constant chunk size at the moment | 17:03 | |
zengargoyle | the Search::Dict uses a binary search using blksize to narrow down the block that should have the desired line, then goes to a line by line to find it. | ||
i was wondering if that's better than just doing the binary algo directly. | 17:04 | ||
hoelzro | I would benchmark each and see | 17:06 | |
zengargoyle | i'm guessing there's a trade-off there somewhere... hard to benchmark without knowing the buffer/block size that's used. | 17:07 | |
vs just guessing 8192 or somesuch | |||
RabidGravy | zengargoyle, the blocksize isn't available from IO::* but you can get it from NQP with "nqp::p6box_i(nqp::stat(nqp::unbox_s($path), nqp::const::STAT_PLATFORM_BLOCKSIZE))" | ||
psch | hrm, apparently i need P6EX to build but not throw X::Parameter::RW to build the X::Comp::Group in find_best_dispatchee... | ||
jnthn | psch: Uh...X::Comp::Group is for compile time exceptions | 17:08 | |
psch: The precedent so far on binding errors is we just throw on the first thing that goes wrong | |||
RabidGravy | or something like that | ||
zengargoyle | RabidGravy: thanks i'll add that to my notes and give it a try. | ||
psch | jnthn: okay, so "is this still reasonable" (from two hours ago) was to be answered with "no, just throw on the first mismatch" :) | 17:09 | |
...that's not supposed to sound snarky or anything, sorry | |||
but i guess that also helps wrt the mentioned efficiency concern, because we can bail for a given candidate in find_best_dispatchee as soon as there is an rwness mismatch | 17:10 | ||
jnthn | psch: Sorry, was tied up with the encoding fixes... | ||
psch | jnthn: no worries, as i said i didn't actually mean to sound that entitled | 17:11 | |
jnthn | :) | ||
psch: One thing that may trip things up here: I don't think the multi dispatch cache stuff is too aware of container vs. non-continer | |||
*container | |||
psch | i'm just thinking of e.g. "sub f($a is rw, $b is rw) {...}" from a module and a user calling f 42, 5, getting the error "first param needs a cont", putting a cont there, and getting the same error for the second param | ||
which is somewhat LTA | 17:12 | ||
jnthn | Somewhat, but I don't think "is rw" params are all that common | ||
psch | i'll make a note to look at the cache too, good catch | ||
zengargoyle | so i'm getting 4k blocksize, does libuv use the same as a buffersize? -- most likely overthinking it. :) | ||
psch | right, don't fix what doesn't appear broken often enough (or something like that...) | 17:13 | |
17:13
kjs_ left
|
|||
jnthn | psch: If you get results like, the first time you try a dispatch it does the right thing, and the second time you try it and it should fail it actually works, that's probably the cache gone wrong | 17:13 | |
zengargoyle ... to the Bench-mobile | |||
hoelzro | zengargoyle: I don't know offhand, but stracing a simple example would probably reveal the answer | 17:17 | |
17:19
diana_olhovik joined
17:20
lucasb joined
|
|||
lucasb | m: { constant x = 42 }; say x | 17:23 | |
camelia | rakudo-moar f29886: OUTPUT«42» | ||
lucasb | ^^ I was surprised that the constant worked outside the scope | 17:24 | |
moritz | constants, like classes, are our-scoped by default | ||
jnthn | m: { my constant x = 42 }; say x | ||
camelia | rakudo-moar f29886: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WJsPp5p_1LUndeclared routine: x used at line 1» | ||
lucasb | but it only works if it is a term, not a sigiled variable | 17:25 | |
{ constant $x = 42 }; say $x # <-- this doesn't work like a term constant | |||
jnthn | m: { our $x = 42 }; say $x | 17:27 | |
camelia | rakudo-moar f29886: OUTPUT«5===SORRY!5=== Error while compiling /tmp/auSC9BoG8XVariable '$x' is not declaredat /tmp/auSC9BoG8X:1------> 3{ our $x = 42 }; say 7⏏5$x» | ||
jnthn | Same with our variables | ||
[Coke] | m: say 2**64.comb(3).join(","); | ||
camelia | rakudo-moar f29886: OUTPUT«Cannot call comb(Int: Int); none of these signatures match: (Cool $: *%_) (Cool $: Regex $matcher, $limit = { ... }, *%_) (Cool $: Str $matcher, $limit = { ... }, *%_) in block <unit> at /tmp/kcWNynYNCQ:1» | ||
dalek | kudo/nom: dc512ba | jnthn++ | src/ (2 files): Forbid packages on dynamic variables. |
||
[Coke] | I thought lizmat just added that a few days ago. | 17:28 | |
dalek | ast: 747632a | jnthn++ | S02-names-vars/contextual.t: Tests to cover RT #82790. |
||
17:29
kjs_ joined
17:33
Actualeyes left
|
|||
ugexe | rt 126529 is back | 17:34 | |
j: my $x = Blob.new(1); $x ~= $x | |||
camelia | rakudo-jvm f29886: OUTPUT«java.lang.RuntimeException: This type does not support positional operations in block <unit> at /tmp/D9i1ywswJG:1» | ||
17:35
andreoss left,
andreoss joined
|
|||
jnthn | m: my $x = Blob.new(1); $x ~= $x # curious if it's portable | 17:35 | |
camelia | ( no output ) | ||
17:36
Actualeyes joined
|
|||
ugexe | i sent a pr to fix it 3 days ago, but its since re-emerged | 17:36 | |
17:36
brrt joined
|
|||
jnthn | .ask TimToady Before I go looking at fixing it, you do expect adverbs (like :c) placed after a :heredoc to actually work out, rather than get rejected, yes? rt.perl.org/Ticket/Display.html?id=120788 is the ticket in question. | 17:37 | |
yoleaux | jnthn: I'll pass your message to TimToady. | ||
17:37
AlexDaniel joined
|
|||
ugexe | its used in IO::Socket as well | 17:37 | |
17:40
kjs_ left
|
|||
jnthn afk for a bit | 17:41 | ||
lucasb | m: my Str enum <a b c> | 17:42 | |
camelia | rakudo-moar dc512b: OUTPUT«===SORRY!===Incompatible MROs in P6opaque rebless» | ||
17:44
brrt left
|
|||
zengargoyle | m: my %h = do for 1,4096,8192 -> $b { $b => $b }; %h.say; | 17:44 | |
camelia | rakudo-moar dc512b: OUTPUT«1 => 1, 4096 => 4096, 8192 => 8192» | ||
arnsholt | Does that even make sense as an expression? | ||
17:44
brrt joined
|
|||
psch | m: my enum Str <a b c>; say "foo" ~~ Str # /o\ | 17:45 | |
camelia | rakudo-moar dc512b: OUTPUT«===SORRY!===This type cannot box a native string» | ||
zengargoyle | hrm... i'm getting: Odd number of elements found where hash initializer expected | ||
[Coke] | lucasb, psch: what are you expecting to happen here? | 17:46 | |
TimToady starts to recover from Hackers | |||
yoleaux | 17:02Z <jnthn> TimToady: I'm not sure we've time to get the PRE/POST submethods done and semantics issues ironed out, or at least we've more important things to be doing before xmas. OK to do this feature in a 6.future? Should I note a "potential difficulty" if you write a PRE/POST submethod? | ||
17:37Z <jnthn> TimToady: Before I go looking at fixing it, you do expect adverbs (like :c) placed after a :heredoc to actually work out, rather than get rejected, yes? rt.perl.org/Ticket/Display.html?id=120788 is the ticket in question. | |||
17:46
brrt left
17:47
kjs_ joined
|
|||
psch | [Coke]: if anything i'm expecting a better error. the shadowing of the type Str with the enum is expected | 17:47 | |
lucasb | [Coke]: in regard to 'my Str enum <a b c>', I know the enum values are integers, I just thought the error message looked LTA, since it looks an internal error :) | 17:48 | |
17:52
^elyse^ joined,
diana_olhovik left
|
|||
TimToady | .tell jnthn if we warn, we could hide the warning with a 'use DBC' to enable the experimental feature, I suppose | 17:53 | |
yoleaux | TimToady: I'll pass your message to jnthn. | ||
17:55
llfourn joined,
_mg_ joined,
sjohnson joined
|
|||
TimToady | .tell jnthn quote languages compose by mixin, so I'd expect :c to work after :heredoc since nothing in :heredoc clobbers the <escape> of the language that is used to parse the body of the heredoc | 17:56 | |
yoleaux | TimToady: I'll pass your message to jnthn. | ||
17:57
colomon left
|
|||
hoelzro | is the number of CPUs available to Perl 6 available via a special variable or anything like that? | 18:03 | |
or do users just have to figure that out on a per-OS basis? | |||
18:04
colomon joined
|
|||
TimToady | what if you have a non-uniform CPU architecture, how do you report that? | 18:05 | |
dalek | ast: 13badac | (Lloyd Fournier)++ | S12-class/attributes-required.t: is required used as default checks RT #126436 |
18:06 | |
ast: 08725fd | (Tim Smith)++ | S12-class/attributes-required.t: Merge pull request #78 from LLFourn/is_required_fix is required used as default checks |
|||
18:07
eliasr left
|
|||
hoelzro | TimToady: good question | 18:08 | |
I'm just wondering if I should read from /proc/cpuinfo for my script, or if that information is already available | |||
TimToady | the other thing is that there may be fewer effective CPUs than you'd think, depending on the work mix | ||
RabidGravy | hoelzro, or you know use Linux::Cpuinfo | 18:09 | |
TimToady | I assume my laptop only has 3 CPUs because firefox | ||
18:09
kjs_ left
18:11
kjs_ joined
|
|||
hoelzro | RabidGravy: thanks, I didn't know that existed! | 18:12 | |
TimToady: another good point | |||
18:15
_mg_ left
|
|||
RabidGravy | hoelzro, there may be a bug on multi-core arm chips though | 18:15 | |
hoelzro | that's ok; I really just want my script to spawn N children (where N = # CPUs) | 18:16 | |
and I'm only running it on x86 Linux atm | |||
jdv79 | RabidGravy: dogfooding for everything would be nice in an ideal world | ||
18:17
cognominal joined
|
|||
TimToady | and for IO-heavy workloads, you can usually use twice as many processes as CPUs | 18:17 | |
RabidGravy | I have making a statgrab binding at some point on the todo | ||
timotimo | hoelzro: ideally, your program would measure when adding another worker wouldn't improve performance | 18:18 | |
hoelzro: and then it could try to react to slowdowns by throwing out a worker until the situation improves | |||
(and then you'll get a nicely oscillating system) | |||
TimToady | one could add damping | 18:19 | |
hoelzro | hmm | 18:20 | |
good advice | |||
I'll measure with various worker counts vs CPU counts, see how that affects things | |||
timotimo | ideally your program would do that on every run to always get the best results | ||
hoelzro | it's more of a POC atm, but we'll see about improving it if it actually gets used =) | 18:21 | |
18:21
duncan_dmg left
18:22
liztormato joined
|
|||
zengargoyle | and the blocksize benchmark winner is... 1 | 18:24 | |
18:24
liztorma_ joined
|
|||
liztorma_ | ugexe: will look at jvm breakage in an hour so when I'm home again | 18:24 | |
18:24
dakkar left
|
|||
TimToady | .tell jnthn as an optimization-related language decision, we might decide to simply ignore PRE and POST blocks without a 'use DBC' to turn on that particular set of assertions | 18:24 | |
yoleaux | TimToady: I'll pass your message to jnthn. | ||
liztorma_ | Since I probably caused that regression | 18:25 | |
18:25
telex left,
abaugher left,
liztorma_ left
|
|||
timotimo | zengargoyle: what, 1 byte at a time? | 18:26 | |
18:26
abaugher joined,
telex joined
|
|||
zengargoyle | yep, 103% faster than 4k, 384% faster than 8k, 569% faster than 16k | 18:27 | |
18:27
liztormato left,
FROGGS joined
|
|||
timotimo | wow | 18:27 | |
[Coke] | jvm broke again? | 18:28 | |
timotimo | zengargoyle: have you tried 3k? | ||
[Coke] | (it was working earlier today) | 18:29 | |
zengargoyle | no, but i will... | ||
18:31
spider-mario joined
|
|||
zengargoyle | could also be my test file just isn't big enough... | 18:32 | |
eh 1 is still beating 2k, 3k | 18:34 | ||
18:34
yqt left
|
|||
zengargoyle | 1k is a wee bit faster: 2% | 18:35 | |
psch | [Coke]: fwiw, i've decided (for the time being) to help with the xmas list instead of trying to keep r-j alive. 1.6 tickets a day looks like it could use whatever effort is available to me | ||
ugexe | [Coke]: infix:<~>(Blob:D $a, Blob:D $b) (rt 126529), there just isnt a test for it | 18:40 | |
zengargoyle | looks like 128 is the sweet spot | 18:43 | |
psch | i'm wondering about desired commit granularity | 18:44 | |
zengargoyle notes that Bench needs to sort by Rate before showing the table... | |||
psch | i have "is rw for multis" working, but it has test fallout (probably due to caching, as jnthn++ alluded to earlier) | ||
ilmari | m: (Blob.new(0x61), Blob.new(0x63)).join(Blob.new(0x20)) | 18:45 | |
camelia | rakudo-moar dc512b: OUTPUT«Cannot use a Buf as a string, but you called the Str method on it in block <unit> at /tmp/0jsw9mNxHv:1» | ||
FROGGS | o/ | ||
ilmari | m: say Blob.new(0x61) ~ Blob.new(0x63) ~ Blob.new(0x20) | ||
camelia | rakudo-moar dc512b: OUTPUT«Blob:0x<61 63 20>» | ||
psch | is what i have already a commit? it fixes RT #74414, but a clean spectest would depend on a (as of yet unwritten) patch that solves the caching problem | ||
zengargoyle or that's just me... | |||
psch | it just came to mind because i know that previously i did commit at least a few not-really-isolated-enough chunks... | 18:46 | |
o/ FROGGS | 18:48 | ||
18:49
dha joined
|
|||
zengargoyle | do you think « my &lookup = search-dict($dict, :$block-size); $ret = lookup($word) » is a decent interface? | 18:51 | |
18:52
Peter_R joined
|
|||
zengargoyle | where $ret Bool to found, Str to match (or after), Int to tell | 18:53 | |
18:54
vendethiel joined
18:56
pippo joined
19:01
TEttinger joined
19:03
kjs_ left
|
|||
ugexe | lizmat: i rebuilt jvm (same commit, also the same commit camelia is on) and now -e `say Blob.new(1) ~ Blob.new(2)` is working. but camelia still fails, and inside a bigger application i get `Expected a native int argument for '$a'` | 19:07 | |
19:07
andreoss left
|
|||
Hotkeys | is there simple graphics libraries for p6? | 19:07 | |
like making jpgs and whatnot | 19:08 | ||
19:10
yqt joined
19:11
ZoffixW joined
|
|||
RabidGravy | zengargoyle, yes | 19:12 | |
ZoffixW | Hor|zon, there's a couple on modules.perl6.org/ search for "image" | ||
I meant Hotkeys ^ | |||
Hotkeys | not all us H names are the same person ZoffixW | ||
yeesh | |||
19:12
sivoais joined
|
|||
ZoffixW | :) | 19:13 | |
cognominal | hi, is there a Perl 6 web server supporting TLS or SSL? | ||
ZoffixW | heh, JSON::RPC's logotype is a pair of praying hands next to a set of brackets | 19:15 | |
psch | ugexe: that's b1a465c2c, the jvm Binder doesn't handle "is rw" quite right | 19:16 | |
ZoffixW | cognominal, toss one of the servers on modules.perl6.org/ behind reverse proxy? :) | ||
unless they got native support | |||
Hotkeys | but thanks ZoffixW, I'll forgive the letter-racism because you helped | ||
psch | well, i think at least | ||
ZoffixW | ;) | ||
psch | eh, maybe my last comment should be disregarded. i might be too absorbed in what i'm working on here :P | 19:19 | |
cognominal | ZoffixW, yes I could do that. | ||
19:22
lucasb left
|
|||
RabidGravy | cognominal, or pick on of them and fix it work with IO::Socket::SSL | 19:22 | |
19:23
sivoais left
|
|||
ZoffixW | That would be sweet. | 19:23 | |
19:23
sivoais joined
19:24
sivoais left,
sivoais joined
19:26
rindolf left
|
|||
lizmat is back | 19:27 | ||
[Coke] | psch: thanks for the headsup | ||
lizmat | m: 42 | ||
camelia | rakudo-moar dc512b: OUTPUT«WARNINGS:Useless use of constant integer 42 in sink context (line 1)» | ||
dha | There was some discussion of setting up a wiki along the lines of perl6-most-wanted for the documentation status of modules. Is this something that we've ever gotten any traction on? | 19:30 | |
ZoffixW | Nothing I heard outside of github.com/perl6/modules.perl6.org/issues/16 | 19:32 | |
Buuuttt... | |||
ZoffixW has an idea; comments on Issue | 19:33 | ||
pink_mist | doesn't github provide wiki pages? | ||
dha | Oh good. I like ideas. :-) | ||
pink_mist - I believe that is what was under discussion. | |||
19:34
raoulvdberge joined,
mr_ron left
|
|||
dha | I was thinking of looking at some modules to see if they have documentation (I need purpose in life), but am gunshy about actually setting up the structure for making that information available. | 19:35 | |
ZoffixW - good idea. | 19:36 | ||
ZoffixW | And if anyone writes up Pod::Coverage, those flags could be automatically set :) | ||
RabidGravy | yes | ||
19:37
TimToady left
|
|||
RabidGravy | it would by trivial to determine whether there is pod present at all | 19:37 | |
Hotkeys | hotdang this wifi is slow "Receiving objects: 50% (22136/44271), 17.51 MiB | 501.00 KiB/s" | ||
ZoffixW | That's slow? 0.o Are you in South Korea? :) | 19:38 | |
dha | RabidGravy - well volunteered! | ||
Hotkeys | Canada lol | ||
University connection | |||
ZoffixW | heh | ||
Hotkeys | usually reasonably fast | ||
inb4 500kib/s is reasonably fast | |||
19:38
TimToady joined
|
|||
Hotkeys | when I lived in the dorms the ethernet connection was like gigabit speeds | 19:39 | |
it was wonderful | |||
ZoffixW | RabidGravy, it is and we already do that (the "has readme" badge). But most of them are nothing more than "Port of XYZ" without any description of the API. | ||
Hotkeys | my home connection is pretty quick too, like 100mbit | 19:40 | |
so yeah 500KiB/s seems slow :p | |||
19:40
Khisanth joined
|
|||
dalek | kudo/nom: 8cba886 | peschwa++ | src/Perl6/Metamodel/BOOTSTRAP.nqp: Inspect rwness of Parameters for MMD. This fixes RT #74414. It also presently doesn't do any caching anymore if we encounter a Parameter that "is rw". This potentially carries a performance regression with it, but multicacheadd and multicachefind call things from a realm beyond my comprehension. |
19:40 | |
psch | that'd be RT #74414, minus the caching regression | ||
ZoffixW | So we need a more powerful tool. Something that'll actually try to figure out if stuff's documented, akin to P5's Pod::Coverage metacpan.org/pod/Pod::Coverage | ||
psch | but that's mvm code, and my C is everything but useable | ||
ZoffixW | Hotkeys, 100Mbit? what provider are you using? | 19:41 | |
RabidGravy | ZoffixW, please see my comment from a month ago on that self same issue ;-p | ||
Hotkeys | rogers | ||
ZoffixW | RabidGravy, are you "dwarring"? | ||
Hotkeys | well a bit less | ||
ZoffixW hates Rogers | |||
Hotkeys | speedtest usually is in the 90 range | ||
ZoffixW | I use Acanac. They buy Rogers's unused badwidth and sell it to me for cheap :) | 19:42 | |
I think I have 25-30Mbps | |||
dha | How much adaptation to Perl 5's Pod::Coverage would be needed to make it work for this purpose? | ||
Hotkeys | torrent client and steam etc. is usually 7-8 MiB/s | ||
RabidGravy | ZoffixW, no | ||
DrForr | I usually top out around 740Mb/sec, I haven't found a torrent that maxes it :) | ||
Hotkeys | We used to have around 20 | ||
ZoffixW | RabidGravy, jonathanstowe? | 19:43 | |
RabidGravy | :) | ||
Hotkeys | and then we switch to rogers and idk what my parents did but | ||
now we have stupid quick internet | |||
and I am very okay with that | |||
(We were originally shaw but then rogers bought them) | |||
at least in my area | |||
psch | .tell jnthn i suspect with rakudo 8cba886 we'd just need multicachefind to react properly to rwness of cached captures, but that's a guess and i'm bad at C... :) | 19:44 | |
yoleaux | psch: I'll pass your message to jnthn. | ||
jdv79 | ~30ms to deep clone a shallow obj graph with twiddles. at least it works. | ||
psch | .tell jnthn s/captures/candidates/... | ||
yoleaux | psch: I'll pass your message to jnthn. | ||
Hotkeys | aww the repl is still borked on windows | ||
I still haven't gotten around to pokingaround in it | |||
dha | I note that Pod::Coverage's docs say "It expects to find either a "=head(n>1)" or an "=item" block documenting a subroutine". Could we just use a P5 solution for this provisionally until we get something better? | ||
ZoffixW | dha, quite a lot, since it's looking for Perl 5 stuff. And another issue is our docs could be in .txt .md, p5 pod or p6 pod. And we'd need some magic to figure that out | 19:45 | |
dha | Hm. | ||
Hotkeys | maybe when I get home from uni I'll poke around try and figure out what's wrong/if I can fix it | ||
dha | It strikes me (and I may well be wrong) that, if we could come up with some criteria, whipping up a script to look for those specifics should not be difficult. Not a complete solution, but maybe a start? | 19:46 | |
ZoffixW | dha, but hacking up something trivial and starting to use and (possibly incorrectly) marking modules as lacking docs is a good encouragement stick for those authors to contribute :P | ||
dha | Yes, there is that, too. :-) | ||
And, even if we wanted to be fair, we could actually have humans look at things that get flagged. :-) | 19:47 | ||
ZoffixW | Yeah | ||
dha | (which seems slightly less effort-intensive than looking at everything with humans) | 19:48 | |
raoulvdberge | I really feel like making a Perl clone. | ||
Hotkeys | call it Earl | ||
Erl | |||
raoulvdberge | lol | ||
Hotkeys | or Squerl | ||
ZoffixW | raoulvdberge, why? | 19:49 | |
DrForr | You can call it Al. | ||
ZoffixW | raoulvdberge, and... which Perl? | ||
Hotkeys | Perl 7 | ||
raoulvdberge | I love making compilers and parsers, and Perl is such a beautiful language | ||
19:49
pippo_ joined
|
|||
raoulvdberge | Obviously Perl 6 :-) | 19:49 | |
Hotkeys | just improve the current perl 6 :p | 19:50 | |
DrForr | raoulvdberge: You obviously haven't read toke.c :) | ||
ZoffixW | raoulvdberge, I'm pretty sure a bunch of people here are currently hacking on a compiler :) Why not give a helping hand there? :P | ||
Hotkeys | raoulvdberge: you should fix the repl on windows so I can be lazy and not poke around | ||
<3 | |||
raoulvdberge | Hey, I don't know anything about the Perl compiler / VM itself! | ||
Hotkeys | Not yet | 19:51 | |
raoulvdberge | :-) | ||
Hotkeys | It's okay I don't either it's all magic | ||
19:52
ZoffixW left
|
|||
dalek | ast: c22042a | lizmat++ | S02-names-vars/contextual.t: Add test for #82790 |
19:52 | |
ast: 88b8aa7 | lizmat++ | S02-types/WHICH.t: Add test for new X::Dynamic::Package class |
|||
ast: 5674fd4 | lizmat++ | S (2 files): Merge branch 'master' of github.com/perl6/roast Conflicts: S02-names-vars/contextual.t |
|||
19:52
pippo left
|
|||
psch | ah, what a nice occurence | 19:54 | |
i was about to add tests for dispatch between "is rw" and ro candidates | |||
but they exist \o/ | |||
Hotkeys | woo \o/ | ||
19:55
pippo_ left
|
|||
psch | the file's not being run in spectest though | 19:55 | |
and it's annotated with a ticket that cares about something else, so maybe i do have to look a bit closer... | |||
RT #66588, for reference | 19:56 | ||
19:56
pippo joined
|
|||
psch | the test file is t/S06-multi/by-trait.t | 19:57 | |
19:58
sufrostico joined
|
|||
lizmat | I have the feeling that TimToady does not have any strong feelings about IO::Handle.ins | 19:58 | |
llfourn | m: my \start = now; for ^1000 { require Test }; say now - start | 19:59 | |
TimToady | could be a mixin | ||
camelia | rakudo-moar 8cba88: OUTPUT«7.4682038» | ||
llfourn | m: my \start = now; for ^1000 { if $_ == 0 { require Test } }; say now - start | ||
camelia | rakudo-moar 8cba88: OUTPUT«0.0563663» | ||
lizmat | TimToady: not seeing quite how that could be | ||
dalek | ast: eaf38ff | peschwa++ | S06-multi/by-trait.t: Fudge vm-specific, expand commentary a bit. |
||
llfourn | (shouldn't only the first require take time) | 20:00 | |
dalek | kudo/nom: aaf9fcd | peschwa++ | t/spectest.data: Run t/spec/S06-multi/by-trait.t |
||
lizmat | sure, mixing in an "ins" method would be trivial, but keeping that updated with # lines would basically mean another .get/.lines implementation | ||
TimToady: is that what you mean ? | |||
20:00
hankache joined
|
|||
TimToady | yup | 20:01 | |
lizmat | jnthn: an idea I had during cycling: could we make .ins a VMIO attribute with an nqp::op to fetch it ? | ||
would just be an int++ at C-level in readlinefh / readlinechompfh | |||
20:02
pippo left,
pippo joined
|
|||
jnthn | lizmat: It's really not worth it; I'd hope within the next year our JIT is good enough to not be notably different performance wise on ++'ing a native int attr vs doing it in C | 20:03 | |
yoleaux | 17:53Z <TimToady> jnthn: if we warn, we could hide the warning with a 'use DBC' to enable the experimental feature, I suppose | ||
17:56Z <TimToady> jnthn: quote languages compose by mixin, so I'd expect :c to work after :heredoc since nothing in :heredoc clobbers the <escape> of the language that is used to parse the body of the heredoc | |||
18:24Z <TimToady> jnthn: as an optimization-related language decision, we might decide to simply ignore PRE and POST blocks without a 'use DBC' to turn on that particular set of assertions | |||
19:44Z <psch> jnthn: i suspect with rakudo 8cba886 we'd just need multicachefind to react properly to rwness of cached captures, but that's a guess and i'm bad at C... :) | |||
19:44Z <psch> jnthn: s/captures/candidates/... | |||
jnthn | lizmat: The question is more if we want to commit to always having to track that counter somehow | ||
lizmat | TimToady alluded to it being available as a mixn | 20:04 | |
jnthn | Then the question is "mixin in module space or not" :) | 20:05 | |
lizmat | I interpreted that as implied :-) | ||
jnthn | Ah :) | ||
I think .lines.kv covers the common case quite well | 20:06 | ||
lizmat | that's my line of thought anyway | ||
jnthn | haha..."line" of thought :D | ||
lizmat | :) | ||
timotimo | cute | ||
jnthn | I'd fine with saying if you want .ins functionality then module | ||
20:06
pippo left
|
|||
lizmat | ok | 20:06 | |
about the $?NL being frozen in the setting | 20:07 | ||
the more I think about it, the more I think we need $?NL being %*PRAGMAS driven | |||
jnthn | TimToady: Will fix the heredoc thing tomorrowish. :) | ||
I don't think that'd change anything | |||
lizmat | and not a P6 constant constant :-) | ||
jnthn | If we want it dynamic we can export $*NL instead. | 20:08 | |
20:08
pippo joined,
geraud joined
|
|||
lizmat | yeah, but $*NL lookups for each \n would be very expensive, no ? | 20:08 | |
jnthn | Oh, udh | ||
Yeah, that's why it wants to be compile time | 20:09 | ||
TimToady | well, it wants to be lexical because it's language mutation | ||
Hotkeys | jnthn: the windows moar repl has been broken since 75b2451, any idea what might've borked it? | ||
lizmat | whereas a $*PRAGMAS approach would just be a single nqp::atkey ? | ||
Hotkeys | I'm assuming something to do with the /r/n stuff but I haven't gotten around to poking around | 20:10 | |
jnthn | But wait, isn't the issue really what CLIENT::<$?NL> doesn' twork? | ||
lizmat: I don't think resolving $?NL is much of a performance concern. | |||
lizmat | but $*NL would, no ? | ||
jnthn | lizmat: It's a drop in the ocean | ||
Right, I don't think $*NL is right | |||
I think it's fine as it is, plus we figure out why CLIENT:: is busted in CORE.setting | 20:11 | ||
And then making open default to CLINET::<$?NL> | |||
20:11
darutoko left
|
|||
lizmat | ah, then I misunderstood you | 20:11 | |
jnthn | lizmat: I pondered $*NL for a moment, then realized why it'd not work :) | 20:12 | |
Well, or why it's weird :) | |||
I guesss we could have the compiler lexically resolve that but... | |||
20:12
pippo left
|
|||
lizmat | well, that's why I like the %*PRAGMAS approach | 20:12 | |
jnthn | But %*PRAGMAS is a hack. | 20:13 | |
20:13
pippo joined
|
|||
jnthn | It's there for the things we can't express without hardcoding them into the compiler. | 20:13 | |
lizmat | I still don't see why that is | ||
a hack, I mean | |||
I think it's very elegant, really | 20:14 | ||
jnthn | Everything we implement using it is something we say "no, you can't do this from a module yet" | ||
zengargoyle | m: my class R { has Str $.a handles <Str>; has $.i handles <Numeric>; }; my R $r.=new: :i(1); say $r.Str ~~ Str; say +$r; | ||
camelia | rakudo-moar aaf9fc: OUTPUT«Use of uninitialized value of type Str in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/RkJxWfhbau:1True1» | ||
jnthn | Which kinda goes against language extensibility, slangs, and the like. | ||
lizmat | ok, if you look at it in that way... :-) | 20:15 | |
zengargoyle | why does $r.Str ~~ Str throw warning? | ||
jnthn | I'm fine with %*PRAGMAS for the moment, but I'll be a bit sad if we get macros and slangs done and still need it to do all it currently does. :) | 20:16 | |
lizmat | jnthn: while nqp::getlexrel($ctx, '$?PACKAGE') === $pkg { has a left side of Any | ||
psch | zengargoyle: R.a is Any | ||
lizmat | ^^ that breaks CLIENT:: | ||
zengargoyle | m: my class R { has Str $.a handles <Str> = Str; has $.i handles <Numeric>; }; my R $r.=new: :i(1); say $r.Str ~~ Str; say +$r; | ||
camelia | rakudo-moar aaf9fc: OUTPUT«Use of uninitialized value of type Str in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/r_Jh1_zCKh:1True1» | ||
20:16
TEttinger left
|
|||
zengargoyle | ok, so you can't have typed undefined? | 20:17 | |
psch | zengargoyle: you can, but $smth ~~ Str check if that something can be a Str | ||
m: say Any.Str | |||
camelia | rakudo-moar aaf9fc: OUTPUT«Use of uninitialized value of type Any in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/ii_NH99weR:1» | ||
psch | zengargoyle: and Any.Str always warns | ||
(so does Str.Str, for that matter | |||
) | |||
zengargoyle | ok, think i got it. | ||
and ~$a is $a.gist right? | 20:18 | ||
TimToady | no, that's .Str | ||
psch | no, prefix:<~> calls .Stringy | ||
well, except for str and Str vOv | 20:19 | ||
and int and Int | |||
no, int and num... | |||
psch seems done for today... o.o | |||
jnthn | lizmat: Wait, $ctx is Any, or $?PACKAGE is? | 20:22 | |
lizmat | Cannot call infix:<===>(Any, IO::Handle); none of these signatures match: | ||
I would the result of the nqp::getlexrel | 20:23 | ||
20:23
FROGGS left
|
|||
jnthn | hm, k | 20:24 | |
TimToady | sorry, was on phone; I was thinking we could have a mixin that would add a counter to anything you could do a .get on | ||
jnthn | Will have to look at it further tomorrow | ||
hankache | the ? prefix will return null if the number is 0 and the variable is undefined any other cases? | ||
lizmat | jnthn: ok | ||
hankache | return False* | 20:25 | |
lizmat | TimToady: wouldn't that actually be a .wrap ? | ||
zengargoyle | m: my class R { has Str $.a handles <Str>; has $.i handles <Numeric>; }; my R $r.=new: :i(1); say $r.a.defined; say $r.Str.defined; | ||
camelia | rakudo-moar aaf9fc: OUTPUT«FalseUse of uninitialized value of type Str in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/_6rflFwvKH:1True» | ||
TimToady | lizmat: no, it'd just be a child wrapping its parent method with a nextsame or so | ||
zengargoyle | m: my class R { has Str $.a handles <Str>; has $.i handles <Numeric>; }; my R $r.=new: :i(1); say $r.a.defined; say $r.Str.defined; say (~$r).defined; | 20:26 | |
camelia | rakudo-moar aaf9fc: OUTPUT«FalseUse of uninitialized value of type Str in string contextAny of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/VcLSoFBhNX:1TrueUse of uninitialized value of type Str in string contextAny…» | ||
TimToady | lizmat: and a .wrap is insufficient anyway, since you have to store the line count somewhere, and provide an accessor | ||
hoelzro | is panda list --installed broken? it just shows me panda's help | ||
lizmat | TimToady: true | ||
TimToady | for which "ins" is probably too specific a name | ||
zengargoyle | panda --installed list | 20:27 | |
llfourn | hoelzro: I think so | ||
TimToady | maybe .got :) | ||
llfourn made the same mistake nvm | |||
zengargoyle | evil MAIN needs named before positional | ||
lizmat | m: $*OUT.nl-out = " World\n"; say "Hello" # love the new nl-out | ||
camelia | rakudo-moar aaf9fc: OUTPUT«Hello World» | ||
hoelzro | hmm | 20:28 | |
20:28
nowan left
|
|||
dha | what's nl-out? | 20:29 | |
[Sno] | lizmat: as promised, PR for building on homepilot send (did it a bit more generic ^^) | ||
zengargoyle | hoelzro: use panda --options <command> | ||
lizmat | [Sno]: just saw it | ||
TimToady | m: $*OUT.nl-out = " World\n"; print "hello\n" | ||
camelia | rakudo-moar aaf9fc: OUTPUT«hello» | ||
[Sno] | I start an image build overnight and check it on target tomorrow morning | ||
TimToady | hmm, that's not how a P5 programmer will expect .nl-out to work | ||
[Sno] | PR is primarily for review | ||
lizmat | [Sno]: will need someone more Win32 savvy to check it out | 20:30 | |
[Sno] votes for jnthn ;) | |||
lizmat | TimToady: you expect that to affect \n ? | ||
[Sno] | or maybe froggs | ||
jnthn | There's no way I'm implementing it affecting \n :P | ||
TimToady | well, not that, but in P5 a print would add it | ||
[Sno] | lizmat: but you can prove whether I broke darwin ;) | 20:31 | |
lizmat | [Sno]: that I can and will | ||
TimToady | and say is a bit special-purpose to be relying on it for general .nl-out additions | ||
lizmat | well, apart from the .gist-ing of say, that is what makes say different from print to me | 20:32 | |
20:32
kjs_ joined
|
|||
lizmat | the fact that it adds nl-out at the end | 20:32 | |
20:32
nowan joined
|
|||
TimToady | we need and easy way to have print semantics but add a newline | 20:33 | |
*an | |||
lizmat | $handle.say is not it ? | ||
TimToady | "easy" | 20:34 | |
lizmat | so using .Str rather than .gist, is what you mean ? | ||
not sure what you mean with "print semantics" | 20:35 | ||
TimToady | yes, .Str semantics, so it doesn't, for instance, stop after the 1st 100 elements of a list | ||
m: say 1 xx 100000 | 20:36 | ||
camelia | rakudo-moar aaf9fc: OUTPUT«(1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...)» | ||
TimToady | that ... is a gist truncation, not a camelia truncation | 20:37 | |
lizmat | printnl ? | 20:38 | |
lizmat ducks | |||
raoulvdberge | didn't know gist truncates | ||
TimToady | well, print $foo, nl; might be a bit more general | ||
PerlJam | raoulvdberge: .gist is just so you can get the gist of the thing. It doesn't show the whole data structure. | 20:39 | |
lizmat | .oO( what's all this talk about the NetherLands all of a sudden :-) |
||
PerlJam | :-) | ||
raoulvdberge | makes sense :) | ||
TimToady | why it's call .gist, after all... | ||
jnthn | But how does nl magically become "the nl-out of the handle you're printing on"... | ||
lizmat | but how would the "nl" know which nl-out to use ? | ||
20:40
mr_ron joined
|
|||
lizmat | what jnthn said :-) | 20:40 | |
TimToady | well, print would have to translate it, if we did it that way | ||
or nl would have to magically know somehow which handle was targeted | |||
lizmat | I guess nl could be a constant like IterationEnd | 20:41 | |
TimToady | so maybe we should just find a better verb than printnl | ||
PerlJam | puts :) | ||
TimToady | well, if it's .get coming in, it could be .put going out | 20:42 | |
lizmat | fwiw, I dislike .get | ||
i would more like .line | |||
so we could also have .word and be sensible :-) | 20:43 | ||
[Coke] works on a bisect to find when 'make test' started dying on jvm... | |||
TimToady | the whole point is that it's not a line if you change the delim | ||
PerlJam | lizmat: maybe .record since "line" is fluid | ||
TimToady | that's why it was .ins and not .lines | ||
jnthn | put ain't bad... :) | ||
record doesn't verb right | |||
PerlJam | lizmat: anyway, I like .get because it doesn't commit too far :) | ||
lizmat | ok, I can buy the "it may not be a line", but then I don't get .lines :-) | 20:44 | |
TimToady | no, you don't :P | ||
lizmat | but I guess .gets would be even worse :-) | ||
TimToady | why I suggested .got | ||
20:45
[Sno] left,
Axord joined
|
|||
AlexDaniel | m: dd [xx] ^8 | 20:45 | |
camelia | rakudo-moar aaf9fc: OUTPUT«List $var = $(((((((0,), (0,)), ((0,), (0,)), ((0,), (0,))), (((0,), (0,)), ((0,), (0,)), ((0,), (0,))), (((0,), (0,)), ((0,), (0,)), ((0,), (0,))), (((0,), (0,)), ((0,), (0,)), ((0,), (0,)))), ((((0,), (0,)), ((0,), (0,)), ((0,), (0,))), (((0,), (0,)), ((…» | ||
TimToady | and we'll just use the past tense of "put" to count how many lines we put ;) | ||
PerlJam | .oO( .pot ) |
20:46 | |
jnthn | .oO( and .toke for how many tokens you read in? :) ) |
||
TimToady | "put" Print Using Terminator | 20:47 | |
jnthn going to rest | |||
'night y'all | |||
TimToady | sleep well | 20:48 | |
PerlJam | g'night jnthn | ||
jnthn | One can only hope... :) | ||
o/ | |||
lizmat | gnight jnthn | ||
TimToady launches lunch | 20:49 | ||
AlexDaniel | m: [[[+]]] [[[+]]] | 20:51 | |
camelia | ( no output ) | ||
jdv79 | when and how does that land? | ||
20:52
pippo_ joined,
pippo_ left
|
|||
AlexDaniel | m: [[[[+]]]]>>[[[[+]]]]>>[[[[+]]]]>>[[[[+]]]] | 20:54 | |
camelia | ( no output ) | ||
20:55
pippo left
|
|||
AlexDaniel | say [::]/\/\/\/\/\/\[:/>>[[[[+]]]]>>[[[[+]]]]>>[[[[+]]]]>>[[[[+]]]] # old trick | 20:59 | |
m: say [::]/\/\/\/\/\/\[:/>>[[[[+]]]]>>[[[[+]]]]>>[[[[+]]]]>>[[[[+]]]] # old trick | |||
camelia | rakudo-moar aaf9fc: OUTPUT«12» | ||
dha tries to think of something that needs working on that he's capable of working on... | 21:00 | ||
lizmat | documenting uniprop ? | 21:03 | |
:-) | |||
dha | Heh. | ||
21:03
kjs_ left
|
|||
dha | I guess I could go back to combing through the docs for things that don't have examples. | 21:04 | |
llfourn | dha: proto is not documented if that excites you :) | 21:06 | |
21:06
ZoffixW joined
|
|||
PerlJam | llfourn: regex proto or method/sub proto? ;) | 21:07 | |
llfourn | PerlJam: well I guess they're all the same in the end, but regex just has examples afaik | ||
21:07
Ven_ joined
|
|||
ZoffixW | This is dismal: time panda --help; .... real0m13.399s | 21:08 | |
llfourn | proto as a 'declarator' has no docs | ||
PerlJam was just wondering if the split :skip-empty, :k, :v, :p stuff was finalized and documented. | |||
dha | where is that? | ||
21:08
Ven_ left,
Ven__ joined
|
|||
dha | Or, I suppose, since I'm not finding it, where *should* it be? | 21:10 | |
PerlJam | dha: I assume you're talking about proto? | ||
21:10
sunbeam joined
|
|||
dha | yeah. | 21:10 | |
llfourn | dha: proto should be here: docs.perl6.org/language/functions#Multi-dispatch | ||
dha | Ah, no wonder I couldn't find it. It's not there. :0) | 21:11 | |
llfourn | I guess as a =head3 under multi dispatch | ||
21:12
kjs_ joined
21:13
cosimo joined
|
|||
lizmat | PerlJam: I documented Str.split | 21:13 | |
PerlJam | lizmat++ | ||
dha | Hm. I would have to understand Multi Dispatch for this... | ||
21:13
raiph left
21:15
synbot6 joined
|
|||
PerlJam | dha: S06:77 is a useful paragraph about proto | 21:15 | |
synbot6 | Link: design.perl6.org/S06.html#77_is_a_u...bout_proto | ||
PerlJam | S06:77 | ||
synbot6 | Link: design.perl6.org/S06.html#line_77 | ||
PerlJam | stupid bot | ||
dha | that looks like a bug, there... | 21:16 | |
llfourn | PerlJam,dha actually there are no proto examples or explanation for regex or routines as far as I can tell | ||
21:17
[Sno] joined
|
|||
llfourn | ...which also means that the fun <sym> grammar stuff is not documented | 21:18 | |
which is really useful :\ | |||
PerlJam | More useful proto info is at S05:1342 | ||
synbot6 | Link: design.perl6.org/S05.html#line_1342 | ||
dha | Right. I'm just trying to figure out what to do beyond just copying that paragraph. :-) | ||
llfourn | docs.perl6.org/language/grammars <== in need of proto regex example with <sym>. see github.com/moritz/json/blob/master...Grammar.pm :) | 21:20 | |
21:20
Ven__ left
|
|||
dalek | osystem: 246a6b9 | RabidGravy++ | META.list: Add JSON::Name github.com/jonathanstowe/JSON-Name |
21:20 | |
21:21
Ven_ joined
|
|||
RabidGravy | ignore that one, it will be the dependency of four modules but I thought I'd make it first ;-) | 21:21 | |
21:22
oha joined,
kaare_ left
|
|||
[Coke] | oooh, there's a chance larry broke the jvm. one more bisect iteration to find out! ;) | 21:25 | |
RabidGravy | bad Larry! BAD! BAD! | 21:26 | |
hankache | lazy lists are indexed starting from 0 or 1? | 21:27 | |
21:27
mr_ron left
|
|||
PerlJam | hankache: 0 | 21:27 | |
hankache | m: say (0...9)[3]; | ||
camelia | rakudo-moar aaf9fc: OUTPUT«3» | ||
dalek | osystem: fb1f717 | zengargoyle++ | META.list: Add Search::Dict See: github.com/zengargoyle/p6-Search-Dict |
||
PerlJam | hankache: what an odd question! What prompted it? | 21:28 | |
hankache | PerlJam: say (0...9)[3]; | ||
zengargoyle really needs to read up on POD6 | |||
ZoffixW | hankache, but that answers it :) 0, 1, 2, 3 :) | ||
hankache | i am half asleep | 21:29 | |
ZoffixW | Coffee! | ||
hankache | indeed ZoffixW :( | ||
PerlJam | or get some sleep | ||
ZoffixW | Sleep is for the weak! :) | ||
hankache | Coffee -> figure out how lazy lists work -> Sleep | 21:30 | |
dha | Sleep is for tortoises! | ||
lizmat | p6weekly.wordpress.com/2015/11/09/...ion-today/ # a new Perl 6 Weekly! | 21:31 | |
hankache | yeay! | 21:32 | |
PerlJam | muraiki++ | 21:33 | |
ZoffixW | \o/ | ||
muraiki | yay :D | 21:34 | |
21:36
mr_ron joined
|
|||
hankache | do you zef d | 21:45 | |
or do you panda | |||
zef|panda | |||
ZoffixW | I use panda, but it's ridiculously slow to start up | 21:48 | |
21:49
Ven_ left
21:50
^elyse^ left
21:51
Ven_ joined
|
|||
dha | It is, isn't it? | 21:52 | |
flussence | precomp helps a ton | 21:54 | |
though you've got to do it by hand at the moment... | |||
zengargoyle | instructions anywhere? | 21:55 | |
PerlJam | I thought rakudobrew build-panda would do that. If not, that would help tremendously. | ||
hankache | precomp? | ||
21:56
dha left
|
|||
flussence | zengargoyle: I don't have a good method, just a `find` loop that tries to precompile every installed .pm file. The general command for it is «perl6-m --target=mbc $file.pm -o $file.pm.moarvm» | 21:56 | |
[Coke] | latest jvm test breakage was introduced by lizmat with 4aa63f0f816ed - it's a pretty big commit, so I don't have an easy JVM workaround. | ||
21:56
dha joined
|
|||
[Coke] | .tell lizmat - 4aa63f0f816ed caused 'make test' to start failing on the jvm. | 21:56 | |
yoleaux | [Coke]: I'll pass your message to lizmat. | ||
TimToady | whew! | ||
lizmat | [Coke]: will look at it now, see if have any inspiration :-) | 21:57 | |
yoleaux | 21:56Z <[Coke]> lizmat: - 4aa63f0f816ed caused 'make test' to start failing on the jvm. | ||
[Coke] | good luck, thanks! | ||
I didn't figure out how it's breaking, just that from then on, make test starts bailing on all the test files. | |||
21:57
Ven_ left
|
|||
dalek | kudo/nom: fe48617 | lizmat++ | src/core/Str.pm: Make uninames do the right thing for synthetics say "\r\n".uninames' # (CARRIAGE RETURN (CR) LINE FEED (LF)) |
21:57 | |
[Coke] | (I was hoping it was another one liner I could temporarily wrap in #?if jvm...) | ||
flussence | (whoops, the -o needs to come before the input file or it gets eaten by @*ARGS) | 21:58 | |
ugexe | seems to be split(/regex/), split("string") works | 21:59 | |
21:59
dbrock- left,
dbrock- joined
|
|||
lizmat | [Coke]: building latest JVM now | 21:59 | |
I have some ideas as to the cause | |||
it JTALT | 22:00 | ||
22:00
cosimo left
|
|||
lizmat | meanwhile, anybody up for NativeCalling tensorflow.org ?? | 22:00 | |
[Coke] | lizmat: "just takes a long time" ? Aye.. :) | 22:01 | |
lizmat | yup :-) | ||
Skarsnik | Someone should work on something like swig or clang/lvm to automate binding x) | ||
TimToady | lizmat: I really kinda dislike returning Str (uninitialized) when we really want to convey Nil (the absence of a value) | ||
22:01
xfix left
|
|||
[Coke] | (tensorflow) nifty. | 22:02 | |
lizmat | ok, then I'll Nil it :-) | ||
22:02
cosimo joined
|
|||
TimToady | looking at both uniname and getc patches here | 22:02 | |
lizmat | and .get I assume | 22:03 | |
zengargoyle | Skarsnik: i started looking at C::Parser and thinking about auto-NativeCall (at least to start a skeleton) but couldn't get it to work. | ||
22:03
aaronn joined
|
|||
lizmat | TimToady: and uniprop/unival | 22:04 | |
unimatch; | 22:05 | ||
TimToady | sure, wherever it snuck in | ||
same for any other type object that is being used to mean Nil | 22:06 | ||
lizmat | I'll take care of these first and then scan some more | ||
Skarsnik | zengargoyle, hm weird, I mean most of the case you probably don't even need to preparse macro. you could probably itendify function declaration and struct declaration to already do a lot | 22:07 | |
22:07
kjs_ left
|
|||
lizmat | m: sub a(--> Int) { Nil }; a # TimToady: it makes using return sigs a lot harder | 22:08 | |
camelia | rakudo-moar aaf9fc: OUTPUT«Type check failed for return value; expected Int but got Nil in sub a at /tmp/3inuQt41eq:1 in block <unit> at /tmp/3inuQt41eq:1» | ||
lizmat | m: sub a(--> Int) { Int }; a | ||
camelia | ( no output ) | ||
lizmat | which was my reason for using the type objects :-) | 22:09 | |
TimToady | well, most of those are probably really supposed to be --> Int:D anyway, so Int wouldn't work either | 22:11 | |
I'd rather make Nil behave more like a cheap Failure | |||
22:12
oha left,
cosimo left
|
|||
lizmat | oki | 22:12 | |
zengargoyle | ugg, i hate sites with light gray text on white background. | 22:13 | |
lizmat | [Coke]: so, make t/spec/S02-lexical-conventions/begin_end_pod.t dies with "no subtests run" | 22:17 | |
but ./perl6-j --ll-exception make t/spec/S02-lexical-conventions/begin_end_pod.t works ok | |||
psch: seems like t/spec/S06-multi/by-trait.t broke again ? | 22:18 | ||
22:19
oha joined,
cosimo joined
|
|||
lizmat | [Coke]: how can I see the actual error when using make ?? | 22:19 | |
RabidGravy | .tell tadzik there you go github.com/tadzik/JSON-Unmarshal/pull/11 when you have a minute | 22:20 | |
yoleaux | RabidGravy: I'll pass your message to tadzik. | ||
22:22
diana_olhovik joined
|
|||
RabidGravy | What larks, I may even have a good story viz JSON web services this | 22:24 | |
week | |||
dalek | kudo/nom: dc0238a | lizmat++ | src/core/ (2 files): Use Nil as a cheap failure indicator As per irclog.perlgeek.de/perl6/2015-11-09#i_11509994 |
||
ast: 5a0e7a4 | lizmat++ | S15-unicode-information/uni (4 files): Track the Str -> Nil changes As per irclog.perlgeek.de/perl6/2015-11-09#i_11509994 |
22:25 | ||
lizmat | ++RabidGravy | ||
RabidGravy | I could do with someone knocking up an implementation of tools.ietf.org/html/rfc6570 - mini-languages are not my forté | 22:27 | |
22:28
diana_olhovik left
|
|||
hankache | m: ~3.WHAT.say; | 22:28 | |
camelia | rakudo-moar fe4861: OUTPUT«WARNINGS:Useless use of "~" in expression "~3.WHAT.say" in sink context (line 1)(Int)» | ||
hankache | m: (~3).WHAT.say; | 22:29 | |
camelia | rakudo-moar fe4861: OUTPUT«(Str)» | ||
hankache | what is sink context? (the warning message) | ||
22:29
TEttinger joined
|
|||
lizmat | m: class A { method sink { say "sunk" } }; A | 22:30 | |
camelia | ( no output ) | ||
22:30
raiph joined
|
|||
lizmat | m: class A { method sink { say "sunk" } }; A.new | 22:30 | |
camelia | rakudo-moar fe4861: OUTPUT«sunk» | ||
22:30
dbrock- left
|
|||
hankache | sink sank sonk? | 22:30 | |
lizmat | hankache: in P5 it's usually referred to as "void context" | ||
22:30
skids left,
dbrock- joined
|
|||
dha | Oh dear. | 22:31 | |
lizmat | dha: ?? | ||
dha tries to figure out where that bit of information should go in the 5to6 docs. | |||
hankache | hankache = newbie | ||
22:31
virtualsue joined
|
|||
hankache | don't know what "void context" is | 22:32 | |
PerlJam | hankache: no worries. We're newbie friendly :) | ||
hankache: it's where you don't care about the result of the expression. | |||
hankache | PerlJam: thanks | ||
22:33
prevost_ joined
|
|||
hankache | so it's a matter of precedence then? | 22:33 | |
this is why i need parentheses right? | |||
PerlJam | hankache: if you just say "2 + 2" you'll get 4, but there's no place to store that result and, unless you're returning that result to a caller, it just gets dropped. | ||
22:34
tardisx joined
|
|||
PerlJam | hankache: for your example, yes | 22:34 | |
lizmat | m: 2 + 2 | 22:35 | |
camelia | rakudo-moar dc0238: OUTPUT«WARNINGS:Useless use of "+" in expression "2 + 2" in sink context (line 1)» | ||
hankache | PerlJam: thanks. I am reading doc.perl6.org/language/operators and trying them all | ||
PerlJam | .oO( one day someone will make a circuit slang for P6 where "sink contect" becomes ground ) |
||
hankache: sweet. The more people we have trying that stuff out, the better/clearer we can make the docs for future users | 22:36 | ||
hankache | i just remarked something on my local REPL ~3.WHAT.say; doesn't return a warning | 22:38 | |
PerlJam & | |||
hankache | This is perl6 version 2015.10-30-gab91aea built on MoarVM version 2015.10 | ||
22:39
sunbeam left
22:41
muraiki left
|
|||
RabidGravy | hankache, at one point the REPL was less strict than any other way of running code | 22:41 | |
hankache | oh ok | 22:42 | |
RabidGravy | perl6 -e '~3.WHAT.say' | ||
WARNINGS: | |||
Useless use of "~" in expression "~3.WHAT.say" in sink context (line 1) | |||
but yes it's precedence, that way it's stringifying the return of say | 22:43 | ||
hankache | I should learn how precedence work, that's the second time it tricks me today | ||
ilmari | but the repl shows the return value, so is not in sink context, is it? | ||
hankache | ilmari: yes REPL says (Int) | 22:44 | |
RabidGravy | ah correct | ||
ilmari keeps getting caught out by camelia not showing the return value | |||
22:44
yqt left
|
|||
hankache | i think the REPL evaluates 3.WHAT and then ~ am i right? | 22:45 | |
cognominal | m: say "\n" ~~ / \v ^^ / # is that correct? | ||
camelia | rakudo-moar dc0238: OUTPUT«Nil» | ||
hankache | salut cognominal | ||
cognominal | salut | 22:46 | |
lizmat | cognominal o/ | ||
RabidGravy | hankache, in every way you can run it runs ~(3.WHAT.say) | 22:47 | |
m: ~(3.WHAT.say) | |||
camelia | rakudo-moar dc0238: OUTPUT«WARNINGS:Useless use of "~" in expression "~(3.WHAT.say)" in sink context (line 1)(Int)» | ||
RabidGravy | m: say ~(3.WHAT.say) | ||
camelia | rakudo-moar dc0238: OUTPUT«(Int)True» | ||
lizmat | m: say "\n" ~~ / \v $/ # don't you mean this, cognominal ? | ||
camelia | rakudo-moar dc0238: OUTPUT«「」» | ||
22:47
vendethiel left
|
|||
RabidGravy | anyway, time for bed now. stuff do tomorrow | 22:48 | |
hankache | goodnight RabidGravy | 22:49 | |
tadzik | computer, messages | 22:50 | |
yoleaux | 22:20Z <RabidGravy> tadzik: there you go github.com/tadzik/JSON-Unmarshal/pull/11 when you have a minute | ||
22:52
RabidGravy left
|
|||
cognominal | lizmat, no I really mean what I typed. I consider the end of file after \v being the start of an empty line. I wanted to rely on that on a more complex regex | 22:54 | |
lizmat | then I'm not sure | ||
cognominal | me neither :) | ||
timotimo | lizmat: is "Split.str" just silly or an actual typo? :) | 23:04 | |
lizmat | a silly typo | ||
timotimo | i say we keep it | ||
but Str.comb(Int $n) is 40x faster than what? | |||
Str.comb(/..../) for example? | |||
lizmat | yes | 23:05 | |
23:05
virtualsue left
|
|||
timotimo | should that go in the post, too? | 23:05 | |
cognominal | at least, it is conformant to the spec "C<^^> always matches the beginning of the string and after any C<\n> that is *not* the final character in the string." | ||
I suppose I can write [ ^^ | $ ] in my regex | 23:06 | ||
lizmat | This alternative is about 40x faster than the equivalent /.../ # timotimo++ | 23:07 | |
timotimo | i wonder if / .... / is faster or slower than / . ** 4 / | 23:08 | |
and whether that changes noticably for different numbers of dots vs ** $n | |||
lizmat | can't really try atm, doing a spectest *and* a JVM build at the same time | 23:09 | |
TimToady is experimenting with moving Nil outside of Any, since it's really a concept, not an object | 23:10 | ||
TimToady already has a version where Failure is derived from Nil... | 23:11 | ||
23:11
Psyche^ left
|
|||
lizmat is spectesting some more Nilling | 23:11 | ||
perhaps it would be easier if Nil were a Mu.new like IterationEnd ? | 23:13 | ||
TimToady | well, if this works out, the return check bypass will be ~~ Nil rather than ~~ Failure | ||
lizmat | maybe nqp::eqaddr(Nil) would be cheaper ? | 23:14 | |
aka =:= ? | |||
TimToady | that wouldn't pass Failures as a kind of extended Nil | ||
lizmat | ah, yes | ||
TimToady | and istype is cheap | ||
and I've always thought of Failure as a kind of Nil with extra information | 23:15 | ||
so I'll see if I can make it fly--I think it'll clean up some things if we can make it work | |||
and I've always been itching to move more concepts outside of Any; just having Junctions there feels wrongish | 23:16 | ||
23:17
spider-mario left
|
|||
TimToady | well, it compiles, so that's something... | 23:17 | |
lizmat | :-) | ||
TimToady | kazillions of tests blow up, of course, but that's to be expected when changing something fundamental enough that a few spots may need to have a Mu added | 23:19 | |
dalek | kudo/nom: 2ad739e | lizmat++ | src/core/ (4 files): Some more Nilling |
23:21 | |
TimToady | .oO(Great Nil Refactor...) |
||
23:22
tardisx left
|
|||
lizmat | TimToady: please look at the .of / .default / .name / .dynamic changes | 23:22 | |
(or lack thereof) | |||
[Coke]: I assume the JVM meltdown is somewhere in Str.split(Regex), called from PARSE-INCLUDE-SPECS | 23:23 | ||
23:23
tardisx joined
23:24
Oatmeal joined
|
|||
lizmat | [Coke]: but haven't figured out what exactly triggers it | 23:24 | |
will look again tomorrow, too tired now | |||
TimToady | only failed 166 test files :D | 23:28 | |
lizmat | reminds me of the start of the GLR test file fixing :-) | ||
good night, #perl6! | 23:29 | ||
23:29
prevost_ left
|
|||
timotimo | a friend of mine is disappointed we don't redirect from http to https automatically on perl6.org ... and set HSTS :) | 23:31 | |
ZoffixW | What's HSTS? | ||
23:31
dha left
|
|||
ZoffixW | nm found it | 23:32 | |
23:39
Skarsnik left,
yqt joined,
dbrock joined
|
|||
dalek | href="https://modules.perl6.org/mojo-app:">modules.perl6.org/mojo-app: 666c188 | (Zoffix Znet)++ | mojo-app/ (12 files): Model now passes the test suite mst++ for consulting |
23:42 | |
23:47
ZoffixW left
|
|||
dalek | kudo-star-daily: 18dbf4b | coke++ | log/ (9 files): today (automated commit) |
23:51 | |
23:57
tardisx left
23:59
tardisx joined
|