»ö« 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:02
koo6 left
00:05
yqt left
00:12
gfldex left
00:30
AlexDaniel joined
00:51
AlexDaniel left
00:52
telex left
00:54
telex joined
00:55
skids left
01:03
quester left
01:13
skids joined
01:18
AlexDaniel joined
01:42
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:45
ilbot3 left
01:49
ilbot3 joined
01:57
aborazmeh left
01:58
aborazmeh joined,
aborazmeh left,
aborazmeh joined
02:02
noganex joined
02:05
noganex_ left
02:29
rmgk_ joined,
rmgk is now known as Guest16329,
Guest16329 left,
rmgk_ is now known as rmgk
02:59
noganex_ joined
|
|||
raydiak looks around and doesn't see hugme | 02:59 | ||
03:02
noganex left
03:34
cognominal left
03:35
zacts joined
03:45
kurahaupo1 joined,
jack_rabbit left
03:46
jack_rabbit joined
03:48
Sqirrel left
|
|||
zostay | FROGGS: life insanity has begun, but been trying out the cunion branches... i think your code dealing with unions is very close to working | 03:57 | |
this might be a more general issue, but nativesize is not quite calculating what sizeof does when i write a similar C program for my structs, so i suspect some of the internal address offsets are off which is still leading to segfaults here and there | 03:59 | ||
04:05
Sqirrel joined
04:54
jepeway left
04:56
jepeway joined
04:59
AlexDaniel left
05:11
raiph left
05:13
kaare_ joined
05:24
dolmen joined
05:26
quester joined
05:45
Patterner joined
05:48
dolmen left
05:50
Psyche^ left
06:15
aborazmeh left
06:17
bjz left
|
|||
dalek | ast: 9a8babf | usev6++ | S12-class/basic.t: Fix test for inline use of class trait 'is' to the synopsis |
06:17 | |
06:20
BenGoldberg left
07:03
chenryn joined
07:07
chenryn left,
xfix joined
07:16
FROGGS joined
|
|||
FROGGS | zostay: can you provide examples? | 07:16 | |
07:17
rindolf joined
|
|||
FROGGS | zostay: is the difference eight bytes by any chance? than it is most likely the vtable pointer | 07:17 | |
zostay: you need to add that manually atm | 07:18 | ||
TimToady: the unit keyword warning somehow breaks a precomp test in Inline::Perl5 | 07:22 | ||
TimToady: gist.github.com/FROGGS/f200d30c9cdaa58b8853 | 07:23 | ||
07:27
[Sno] left,
[Sno] joined
07:32
dolmen joined
|
|||
FROGGS | ohh! | 07:32 | |
TimToady: CompUnit.precomp (in rakudo) spawn a child process with 2>&1, so everything on stderr breaks it (and so does RAKUDO_MODULE_DEBUG=1) | 07:33 | ||
FROGGS tests a fix | 07:38 | ||
07:41
skids left,
dayangkun joined,
koo6 joined
|
|||
dalek | kudo/nom: a25bf49 | FROGGS++ | src/core/CompUnit.pm: let CompUnit.precomp not chocke on msgs on STDERR Warnings like about missing unit keyword or just using RAKUDO_MODULE_DEBUG=1 were able to let it fail. |
07:43 | |
FROGGS | that fixes Inline::Perl5 ^^ | ||
[Tux]: ^^ | |||
choke* | |||
07:47
dayangkun left
|
|||
lizmat | FROGGS++ | 07:57 | |
08:08
diana_olhovik_ joined
08:10
RabidGravy joined,
dolmen left
08:21
espadrine joined
08:23
gfldex joined
08:44
rindolf left
08:45
berekuk joined
08:56
FROGGS left
08:59
rindolf joined,
darutoko joined
09:03
berekuk left
09:04
FROGGS joined
|
|||
lizmat | TimToady: re introduction of "unit", that takes me back: en.wikipedia.org/wiki/TUTOR_(progra...TOR_lesson | 09:07 | |
09:09
berekuk joined
09:12
berekuk left
09:17
eli-se joined
|
|||
jnthn | There is nothing new under the sun... :) | 09:18 | |
09:19
araujo left
09:20
araujo joined
09:21
berekuk joined
|
|||
[Tux] | FROGGS, gist.github.com/Tux/f155efad071d66080e22 | 09:23 | |
09:24
domidumont joined
09:25
eli-se left
09:28
coffee` left,
domidumont left
09:29
domidumont joined
09:33
FROGGS left
09:36
diana_olhovik_ left
09:46
FROGGS joined
|
|||
FROGGS | [Tux]: what does that paste mean? all looks good | 09:49 | |
[Tux]: is that a confirmation that I::P5 works? | 09:50 | ||
jnthn: you already had a cuppa? (wanna talk about inlined structs/unions) | 09:51 | ||
lizmat: you can review the curly branch in rakudo and panda if you want... I'm pretty happy with it | 09:52 | ||
lizmat: TL | 09:53 | ||
hmpf | |||
lizmat: TL;DR we use CompUnits now where we mixed CompUnits and hashes, and it moves towards a 'master index' | 09:54 | ||
lizmat: and a very important thing to make panda work: %*CUSTOM_LIB contains CURs again... | 09:55 | ||
09:55
RabidGravy left
|
|||
jnthn | FROGGS: I'd like to, but unfortunately must head off to the airport right now | 09:55 | |
09:55
berekuk left
|
|||
masak | good noon, #perl6 | 09:55 | |
lizmat | FROGGS: haven't looked yet | 09:56 | |
but having %CUSTOM_LIB contain CUR objects, feels wrong | |||
FROGGS | jnthn: k | ||
lizmat | it should contain CUR specifications | ||
FROGGS | lizmat: why ooc? | 09:57 | |
lizmat | to be looked up / instantiated when they are needed | ||
FROGGS | lizmat: to increase performance? | ||
lizmat | because you may not need any of them | ||
indeed | |||
FROGGS | lizmat: we have like *no* slowdown when we create CURs today | 09:58 | |
because there is no json and we lazily deserialize the MANIFEST file (a moarvm blob) | |||
lizmat | still it feels like overkill to me when you're doing e.g. the REPL of -e | 09:59 | |
jnthn bbl & | |||
lizmat | *or | ||
CompUnitRepo.new($spec) should be quick as well :-) | |||
also: fwiw, I think CUSTOM_LIB should never contain any "file#..." specs (in the future) | 10:00 | ||
FROGGS | lizmat: ahh, this is how we do it? dang, I did use INCLUDE-SPEC2CUR directly :o) | ||
lizmat | well, that's ok for internal use | ||
FROGGS | lizmat: yes, it only contains inst# right now | ||
yeah, thought so... | |||
lizmat | cool | ||
FROGGS | np, I can put inst# string in CUSTOM_LIB, and panda calls CUR.new on these... | 10:01 | |
lizmat | in the future, by default, @?INC should not contain any "file#" specs either | ||
but we need one now for the pragma-like modules such as Test / NativeCall etc | |||
(which I had fixed, until I found out about the way how module loading is precomped :-( ) | 10:02 | ||
FROGGS | I see | ||
lizmat | make install in the future should use CURLI.install | 10:03 | |
rather than moving files in place | |||
but that's for later, I would think | |||
FROGGS | lizmat: make install calls CURLI.install for ages now | ||
lizmat | huh? | ||
FROGGS | ahh, you are talking about the rakudo makefile | 10:04 | |
lizmat | /usr/local/bin/perl -MExtUtils::Command -e cp lib/NativeCall.pm lib/Test.pm lib/lib.pm6 /Users/liz/Github/rakudo.moar/install/share/perl6/lib | ||
doesn't look like 'CURLI.install' to me :-) | |||
yes | |||
dalek | ast: 1aa6326 | usev6++ | S32-list/rotor.t: Fudge dying tests for rakudo.jvm UnwindException, see RT #124279 |
10:05 | |
[Tux] | FROGGS, yes, confirm | ||
10:05
mr-foobar left
10:06
mr-foobar joined
|
|||
FROGGS | lizmat: sorry, was thinking panda | 10:06 | |
lizmat | ah, ok :-) | ||
10:07
spider-mario joined
|
|||
FROGGS | but yeah, I want to make CURLF.install also work in near future | 10:07 | |
lizmat | FROGGS: why? | ||
why treat Test.pm different from any other installed module ? | |||
FROGGS | lizmat: to then the Panda::Installer.install is a single line method | ||
s/to// | |||
lizmat | I'm not saying Test should be installed using panda, it should be installed with CURLI.install | 10:08 | |
FROGGS | I dont want to treat Test.pm differently... | ||
yes, correct | |||
lizmat | ok, :-) | ||
FROGGS | we install compiler stuff via CURLI to 'perl', but also extend CURLF | ||
lizmat | I would almost be against having CURLF.install work | 10:09 | |
it is intended for dev work, in my book | |||
it is for hysterical reasons that we use it for installed modules at all | |||
FROGGS | I don't mind to have an alternative # TIMTOWTDI | ||
10:10
rindolf left
|
|||
FROGGS | like, if CURLI is unable to cope with C libs or other resources, one might want to use a CURLF instead | 10:10 | |
lizmat | If you install a module A in a CURLF, you're effectively hiding *all* module A's in CURLI's following it | ||
FROGGS | depends on the order of the CURs clearly | ||
lizmat | true, but CURLF's usually appear in -I | 10:11 | |
so are at the front | |||
FROGGS | well, the defaults are up to us | ||
panda for example prefers site, which is a CURLI | 10:12 | ||
lizmat | well, my feeling is that if you're trying to install something with a CURLF, you're doing it wrong :-) | ||
CURLF functionality in my vision, is for development only and never for production | |||
FROGGS | providing only one way is wrong :o) | ||
lizmat | install implies production to me | ||
FROGGS | and what if the CURLI does not work for you application? switch to python? | 10:13 | |
lizmat | when would CURLI not work for your application? Maybe we need to fix CURLI then | ||
? | |||
FROGGS | atm C libs are a problem | ||
lizmat | agree, and that should be fixed | ||
FROGGS | which is quite hard | 10:14 | |
lizmat | that to me is not a reason to use CURLF's (other than to now work around that problem) | ||
It was never going to be easy, I'm told :-) | |||
FROGGS | I am just saying that I cannot predict what problems will occour in future, so I'm saying we shall not restrict the usage of anything, just we think one thing is better than the other | 10:15 | |
that's not perlish | |||
lizmat | true, but I don't want to make it easy to descend into Perl5 dependency hell either | 10:16 | |
which I think is what CURLF + install in the end is | |||
FROGGS | then CURLF should not be a default installation target | 10:17 | |
lizmat | agree :-) | ||
FROGGS | m: say %*CUSTOM_LIB<site> | ||
camelia | rakudo-moar a25bf4: OUTPUT«/home/camelia/rakudo-inst-2/share/perl6/site» | ||
FROGGS | that should have 'inst#' at front me thinks... | ||
lizmat | that should probably have an "inst#" prefixed | ||
yup | 10:18 | ||
FROGGS | I'll make it so in the curly branch | ||
lizmat | cool! | ||
FROGGS | m: say CompUnitRepo.new('inst#/tmp') | ||
camelia | rakudo-moar a25bf4: OUTPUT«inst:/tmp» | ||
FROGGS | why do we have that colon there? that's wrong, right? | ||
lizmat | yeah, | 10:19 | |
fixing | |||
dalek | kudo/nom: f1a21af | lizmat++ | src/core/CompUnitRepo/Locally.pm: Fix gist, spotted by FROGGS++ |
10:20 | |
FROGGS | why do we have 'inst#.../site' in @*INC at all? | 10:21 | |
err, 'file#...site' | |||
lizmat | I don't know | 10:22 | |
hysterical raisings | |||
FROGGS | k | ||
lizmat | in the work I did, that was stopped by the precomping use issue, it had only none | 10:23 | |
and Test.pm and friends were loaded directly as if they were pragmas | |||
moritz | journal.stuffwithstuff.com/2010/10/...pe-system/ # some fun read for those who like bootstrapping chainsaws | ||
lizmat | alas, I can't push that as it will break e.g. Inline::Perl5 | ||
or any other module that has a 'use' in a precomped file :-( | 10:24 | ||
specifically for NativeCall | |||
:-( | 10:26 | ||
FROGGS | lizmat: I can look at that in the next days | ||
lizmat | cool, am looking at it as well, apart frok | ||
from backlogging and some other stuff I need to do :-) | 10:27 | ||
dalek | kudo/curly: dff8eca | FROGGS++ | src/core/Inc.pm: let %*CUSTOM_LIB only contain cur-specs (strings) |
10:36 | |
FROGGS | panda works with this now too | 10:37 | |
lizmat | FROGGS++ | 10:40 | |
FROGGS | now I need stuff to jvm :o( | 10:43 | |
need to port* | |||
lizmat | :-( | 10:45 | |
dalek | pan style="color: #395be5">perl6-examples: 8a0f35b | paultcochrane++ | t/categories/cookbook/03dates-and-times.t: [cookbook] match today's date output more generally |
10:48 | |
pan style="color: #395be5">perl6-examples: b5db17c | paultcochrane++ | lib/Benchmark.pm: Remove Benchmark.pm It's not used by any of the code in the examples project anymore. |
|||
pan style="color: #395be5">perl6-examples: 554f0c2 | paultcochrane++ | lib/ (4 files): Remove old configuration-related files These are no longer required in the examples project in its current form. |
|||
pan style="color: #395be5">perl6-examples: 2c5122d | paultcochrane++ | lib/P (3 files): Add unit keyword to module definitions This is now required when defining a module whose scope is only within the current unit. |
|||
pan style="color: #395be5">perl6-examples: 2766d32 | paultcochrane++ | t/categories/cookbook/03dates-and-times.t: [cookbook] handle hires time check better |
|||
10:50
ssqq joined
|
|||
ssqq | m: grammar G { our token foo is export { foo } }; import G; if 'foo' ~~ / <foo> / { say ~$/ } | 10:53 | |
camelia | rakudo-moar f1a21a: OUTPUT«Type check failed in binding <anon>; expected 'G' but got 'Cursor' in regex foo at /tmp/ALsRyTT5pH:1 in block <unit> at /tmp/ALsRyTT5pH:1» | ||
FROGGS | ssqq: yes, that's not fixed yet | ||
m: grammar G { our token foo(Mu:) is export { foo } }; import G; if 'foo' ~~ / <foo> / { say ~$/ } | |||
camelia | rakudo-moar f1a21a: OUTPUT«foo» | ||
FROGGS | I guess the fix is about a single line in our actions | 10:54 | |
lizmat | afk for a bit& | ||
ssqq | FROGGS: I think irc interpreter have been use newest version. | 10:55 | |
FROGGS | ssqq: yes, camelia here rebuilds rakudo every hour | 10:56 | |
10:56
vendethiel joined
|
|||
ssqq | FROGGS: not at all, It's a bug, then next version would fix it. | 10:57 | |
FROGGS | ssqq: I don't get what you are saying | ||
ssqq | FROGGS: pls ignore it. | 10:59 | |
10:59
ssqq left
|
|||
FROGGS | ó.ò | 11:00 | |
11:08
araujo left
11:13
BizarreCake joined,
BizarreCake left
11:20
araujo joined,
araujo left,
araujo joined
|
|||
dalek | c: 0a73e46 | paultcochrane++ | lib/Language/regexes.pod: Add examples to general quantifier discussion |
11:25 | |
c: 17222ff | paultcochrane++ | lib/Pod/ (2 files): Add 'unit' declarator to module definitions |
11:29 | ||
11:31
diana_olhovik joined
11:32
spider-mario left
11:48
rindolf joined
11:49
eli-se joined
|
|||
dalek | pan style="color: #395be5">perl6-examples: a6f5d56 | paultcochrane++ | categories/shootout/revcomp-v2.p6: [shootout] replace Nil with Empty The meaning of Nil has been changed and it is appropriate in some cases to use Empty instead. |
11:50 | |
11:54
diana_olhovik left
11:59
lolisa joined
|
|||
[Tux] | m: my@x=(1..3).map({{c3=>3}});@x.perl.say | 12:01 | |
camelia | rakudo-moar f1a21a: OUTPUT«[{:c3(3)}, {:c3(3)}, {:c3(3)}]<>» | ||
[Tux] | my@x=(1..3).map({{c3=>~(10*$_+3)}});@x.perl.say | ||
m: my@x=(1..3).map({{c3=>~(10*$_+3)}});@x.perl.say | |||
camelia | rakudo-moar f1a21a: OUTPUT«[:c3("13"), :c3("23"), :c3("33")]<>» | ||
[Tux] | isn't that extremely inconsistent? | 12:02 | |
I for sure expected a list of hashes the second time too | |||
12:03
bjz joined
|
|||
[Tux] | should I RT that? lizmat ? | 12:06 | |
12:11
koo6 left,
spider-mario joined
12:19
cognominal joined
12:20
AlexDaniel joined
12:26
sue_ joined
|
|||
FROGGS | [Tux]: can't you make use of whitespace? just a little? | 12:31 | |
[Tux] | i can, but I removed all of the whitespace to be sure not to conflict with Slang::Tuxic | 12:35 | |
this was golfing down from a larger example | |||
m: my @x = (1..3).map({ { c3 => 3 } }); @x.perl.say | |||
camelia | rakudo-moar f1a21a: OUTPUT«[{:c3(3)}, {:c3(3)}, {:c3(3)}]<>» | ||
[Tux] | m: my @x = (1..3).map({ { c3 => ~(10 * $_ + 3) } }); @x.perl.say | 12:36 | |
camelia | rakudo-moar f1a21a: OUTPUT«[:c3("13"), :c3("23"), :c3("33")]<>» | ||
[Tux] | m: my $x = 1; my @x = (1..3).map({ { c3 => $x } }); @x.perl.say | ||
camelia | rakudo-moar f1a21a: OUTPUT«[{:c3(1)}, {:c3(1)}, {:c3(1)}]<>» | ||
DrForr scratches his head over select(). | |||
More accurately, the replacement(s). | 12:37 | ||
FROGGS | [Tux]: it is not inconstant btw | 12:39 | |
{ c3 => 3 } is a hash | |||
{ c3 => ~(10 * $_ + 3) } is a closure generating a pair | 12:40 | ||
m: say { c3 => 3 }.perl | |||
camelia | rakudo-moar f1a21a: OUTPUT«{:c3(3)}» | ||
FROGGS | m: say { c3 => ~(10 * $_ + 3) } | ||
camelia | rakudo-moar f1a21a: OUTPUT«-> ($_? is parcel) { #`(Block|60593520) ... }» | ||
FROGGS | m: say { c3 => ~(10 * $_ + 3) }(1) | ||
camelia | rakudo-moar f1a21a: OUTPUT«c3 => 13» | ||
[Tux] | how frustrating | ||
FROGGS | that happens when we use curlies for both hashes and codes | 12:41 | |
err, blocks | |||
[Tux] | what would be the correct syntax for returning a hash? | ||
[Tux] tried an extra pair of {} but to no avail | |||
12:42
RabidGravy joined
|
|||
FROGGS | m: my @x = (1..3).map({ :c3(~(10 * $_ + 3)).hash.item }); @x.perl.say | 12:43 | |
camelia | rakudo-moar f1a21a: OUTPUT«[{:c3("13")}, {:c3("23")}, {:c3("33")}]<>» | ||
FROGGS | m: my @x = (1..3).map({ $%(:c3(~(10 * $_ + 3))) }); @x.perl.say # linenoisify al the things /o/ | ||
camelia | rakudo-moar f1a21a: OUTPUT«[{:c3("13")}, {:c3("23")}, {:c3("33")}]<>» | ||
12:45
koo6 joined
|
|||
dalek | p/curly: 22827fa | FROGGS++ | src/vm/jvm/ (3 files): first stab at implementing scdisclaim for jvm |
12:47 | |
[Tux] | hmm, so a for-loop it is :P | 12:49 | |
FROGGS | [Tux]: the scdislaim stuff, or your .map? | 12:51 | |
[Tux] | the map | ||
for (1..9) -> $x { @rx.push: { c3 => ~(10 * $x + 3) }}; | |||
FROGGS | yes | 12:52 | |
12:53
BenGoldberg joined
|
|||
FROGGS wants to play with post-GLR stuff | 12:53 | ||
13:04
eli-se left
13:05
dolmen joined
13:08
domidumont left
13:15
raiph joined
|
|||
FROGGS | nqp: my $l := nqp::list_s(); say(nqp::join('', $l)) # :o( | 13:19 | |
13:19
camelia left
|
|||
FROGGS | ups | 13:19 | |
13:20
camelia joined
13:21
ChanServ sets mode: +v camelia
|
|||
FROGGS | nqp-m: my $l := nqp::list_s(); say(nqp::join('', $l)) # :o) | 13:22 | |
camelia | nqp-moarvm: OUTPUT«» | ||
FROGGS | nqp-j: my $l := nqp::list_s(); say(nqp::join('', $l)) # :o( | ||
camelia | nqp-jvm: OUTPUT«(signal ABRT)*** Error in `java': free(): invalid pointer: 0x00007fe28401d740 ***#» | ||
FROGGS | how do I join a list_s? | ||
13:23
cognominal left
13:25
diana_olhovik_ joined
|
|||
FROGGS | huh, it works locally with nqp-j... | 13:25 | |
13:27
raiph left
|
|||
FROGGS | j: use nqp; my Mu $l := nqp::list_s(); nqp::push_s($l, "huh"); say(nqp::join("", $l)) | 13:27 | |
camelia | rakudo-jvm f1a21a: OUTPUT«huh» | ||
13:30
raiph joined
|
|||
bartolin | j: say { $^a }.assuming(123)() # leads to spectest failures on JVM (S06-currying/assuming-and-mmd.t) | 13:34 | |
camelia | rakudo-jvm f1a21a: OUTPUT«Method 'Mu' not found for invocant of class 'Parcel' in block <unit> at /tmp/6T13UDTaeW:1» | ||
bartolin | strangly, the following "patch" makes it work: gist.github.com/usev6/d29f551093a704624663 | ||
I have no idea why adding a line '1;' to 'method assuming' changes this ... | 13:35 | ||
FROGGS | uhh | ||
bartolin | that's what I thought, too *g* | 13:37 | |
FROGGS | yeah, I guess it is an optimizer bug | ||
bartolin | yes, that would explain. I'll rakudobug it | 13:39 | |
13:40
eli-se joined
13:59
rindolf left
|
|||
leedo_ | folks are aware that Inline::Perl5 is currently busted, I assume? | 14:01 | |
(had a thought to play around with wrapping some Plack stuff with perl6) | |||
well, anyways, here is the error I'm seeing when building it: gist.github.com/leedo/b237669f1e6ad88dc92a | 14:04 | ||
dalek | ast: 6302ae8 | usev6++ | S (3 files): Fudge tests for method assumoing on JVM, RT #125207 |
14:05 | |
14:06
dolmen left,
eli-se left
|
|||
FROGGS | leedo_: that's an issue on your end | 14:07 | |
leedo_: you have compiled your perl 5 without -fPIC | 14:08 | ||
leedo_ | ah, ok | ||
now to figure out how ot tell plenv to include that option | |||
14:09
fhelmberger joined
|
|||
FROGGS | yeah... | 14:09 | |
I know that Inline::Perl5 works because I just fixed latest rakudo in that regard :o) | 14:10 | ||
leedo_ | cool, good to know! thanks :) | 14:11 | |
14:12
diana_olhovik_ left
14:13
fhelmberger left
14:14
telex left
14:16
telex joined
|
|||
dalek | p: ab80bb3 | TimToady++ | src/QRegex/Cursor.nqp: faster cstack traversal Cut down statement lists by 3/4 by not pushing cursors that MATCH won't be interested in. In MATCH, if there's only one destination, don't keep looking up the same hash entry over and over. |
14:16 | |
kudo/nom: 550b8c3 | TimToady++ | src/core/Cursor.pm: faster cstack traversal Don't keep looking up the same hash entry over and over, if there's only one. (Stage parse looked up statement 2000 times in a row.) |
14:18 | ||
TimToady | well, that last one was nqp's fault, really | 14:19 | |
this is mostly prep work for making lazier Match generation | 14:20 | ||
FROGGS | uhh, TimToady++ | 14:22 | |
araujo checks perl6/rakudo after a while | 14:25 | ||
14:27
rindolf joined
14:38
jack_rabbit left
|
|||
masak | araujo: \o | 14:42 | |
14:47
sue__ joined
14:57
FROGGS left
|
|||
araujo | masak, hola, how that goes? :) | 14:57 | |
15:00
eli-se joined
|
|||
masak | too distracted by $work and @family to get much Perl 6 done... but alive and well, and happy with things :) | 15:01 | |
araujo: how's with you? | |||
araujo | masak, hehe, real life taking most of my time too, but trying to check cool stuff around whenever I can :) | 15:02 | |
masak | :) | 15:04 | |
oh, that reminds me | |||
15:04
diana_olhovik_ joined
|
|||
masak | my send+more=money recursive solution broke after TomToady's `for flat` change | 15:05 | |
TimToady* | |||
it's here gist.github.com/masak/7a1d84435d2b...endmore-p6 | |||
and it doesn't work anymore :/ | |||
all the obvious things I tried failed | 15:06 | ||
could someone help me? when it works, it's "supposed to" run for 28 minutes and produce 1 solution. | |||
15:11
kurahaupo1 left
15:12
kaare_ left
15:14
molaf_ joined
|
|||
masak | ok, just tried it, and it seems to work :) | 15:14 | |
false alarm. | 15:15 | ||
15:17
molaf left
15:20
zakharyas joined,
eli-se left
15:25
kurahaupo joined
15:29
cognominal joined,
anaeem1 joined
15:31
skids joined
15:38
BenGoldberg left,
BenGoldberg joined,
BenGoldberg left
15:39
BenGoldberg joined
15:40
xfix left
|
|||
timotimo | i like the sound of those cstack patches | 15:42 | |
noticable change in parse time? | |||
15:42
TimToady left
|
|||
dalek | ast: 19da7de | usev6++ | S01-perl-5-integration/ (4 files): Make sure to skip p5 integration tests when no perl5 compiler is available |
15:46 | |
ugexe | hmm moar is failing to build for me today: Stage parse : Internal error: zeroed target thread ID in work pass | 15:51 | |
well, rakudobrew on moar | |||
DrForr | .tell hoelzro I've got a primitive callback example ready, easy enough to write but the C-specific stuff like FD_ZERO and select() needs thinking about. | 15:52 | |
yoleaux | DrForr: I'll pass your message to hoelzro. | ||
ugexe | er rakudo | ||
DrForr | .tell hoelzro It's a direct translation of the C code, look at examples/cb-echo.pl6 | 15:53 | |
yoleaux | DrForr: I'll pass your message to hoelzro. | ||
15:53
koo6 left
|
|||
raydiak | rakudobrew build moar just completed successfully here (64-bit linux) | 15:59 | |
ugexe | i tried 3 times and got the same error every time (nuked and cleared git_reference) | 16:01 | |
raydiak | can you think of any env vars set or other relevant customizations or applicable special cases that might make your system different from any other in this regard? | 16:07 | |
raydiak wonders what besides env vars might affect it... | 16:08 | ||
like the build tools or something *shrug* | 16:09 | ||
ugexe | no... jvm builds tho | 16:12 | |
time to regress backwards and see which commit doesn't like me | 16:13 | ||
16:13
kaare_ joined
|
|||
ugexe | looks like its the faster cstack traversal for nqp or rakudo that my system isnt happy with | 16:20 | |
AlexDaniel | I've seen a snippet in p6weekly for finding all unicode characters that represent numbers, but is there anything to check the equivalence of letters? For example, I want to find all characters that are equivalent to letter R. The snippet was: say (0..0xFFF0).chrs.join('') ~~ m:g/<:NumericValue({+$_ > 0})>+/ | 16:21 | |
yoleaux | 17 Nov 2014 05:26Z <Mouq> AlexDaniel: github.com/lue/p6mode | ||
ugexe | i take that back, it just makes it past stage 0. just died on stage 2 with Stage mast : No registered operation handler for 'scdisclaim' | ||
AlexDaniel | yoleaux: oh what's that? | 16:22 | |
ohhh | |||
ugexe | not sure how that jvm code is affecting my moar build | ||
timotimo | ugexe: sounds like we need to bump the moar revision? | 16:25 | |
ugexe | possibly... not sure i know how to test for that. although its odd that raydiak was able to build ok | 16:29 | |
dalek | ast: 2126474 | usev6++ | S05-metasyntax/unicode-property-pair.t: Extend scope of fudging, use 'skip' instead of 'todo' |
16:31 | |
skids | Moar just built OK for me. | 16:32 | |
r-m actually | |||
.oO(the disadvantage of maintaining Sum is waiting for the tests to complete on every panda refresh) |
16:33 | ||
ugexe | i was able to build moar at f1a21af (thats the newest i can successfully do) | 16:35 | |
16:37
spider-mario left
|
|||
raiph | m: my $str = 768.chr; say $str.chars # perhaps it would be better if an isolated combining character counted as zero length? | 16:52 | |
camelia | rakudo-moar 550b8c: OUTPUT«1» | ||
16:52
eli-se joined
|
|||
raiph | m: my $str = "e" ~ 768.chr; say $str.chars | 16:52 | |
camelia | rakudo-moar 550b8c: OUTPUT«1» | ||
rjbs | A single combining mark is a combining character sequence. | 16:55 | |
It's in line with Unicode suggestions to count it as one. | |||
16:57
noganex_ left
|
|||
raiph | rjbs: to count it as a combining character sequence or to count it as length one? | 17:03 | |
rjbs | To count it as a character. | ||
17:04
domidumont joined
|
|||
raiph | rjbs: "character" -> Unicode "grapheme" or "character" -> Unicode "character"? | 17:05 | |
rjbs | Str.chars returns the "count of graphemes." | ||
which I assume means "Extended grapheme clusters" | |||
a single mark alone is a grapheme cluster | 17:06 | ||
So I would expect .chars to return 1. | |||
raiph | m: say 768.chr | 17:07 | |
camelia | rakudo-moar 550b8c: OUTPUT«̀» | ||
17:07
xfix joined,
xfix left,
xfix joined
17:17
RabidGravy left
|
|||
raiph | say 768.chr # rjbs: what leads you to expect 1 for a .chars of this string? (other than following the Unicode standard suggestion) | 17:22 | |
m: say 768.chr # rjbs ^^ | |||
camelia | rakudo-moar 550b8c: OUTPUT«̀» | ||
rjbs | Nothing else, only that. | ||
I can imagine other reasons, though. It keeps equivalent "string is empty === (.chars == 0)" | 17:24 | ||
masak approves of that reason | 17:27 | ||
raiph | rjbs: right. so that trumps the fact you can add two length 1 strings to get a length 1 string | ||
17:29
zakharyas left,
cygx joined
|
|||
cygx | o/ | 17:29 | |
m: subset Past of Instant where * < now; subset Present of Instant where * == now; subset Future of Instant where * > now; say "now is the { given now { when Past { "past" }; when Present { "present" }; when Future { "future" } } }" | |||
camelia | rakudo-moar 550b8c: OUTPUT«now is the past» | ||
vendethiel | :D | 17:30 | |
jnthn | raiph: The 1 + 1 = 1 thing is true even under *NFC*, let alone NFG. | 17:40 | |
And yes, there's a whole chunk in the Unicode normalization conformance section on initial isolateds | 17:42 | ||
raiph | m: say EVAL 200.chr.perl; EVAL 768.chr.perl | ||
camelia | rakudo-moar 550b8c: OUTPUT«È5===SORRY!5=== Error while compiling EVAL_1Bogus statementat EVAL_1:1------> 3<BOL>7⏏5"̀" expecting any of: prefix term» | ||
jnthn | So it's a little bit stronger than "suggestion" :) | ||
raiph | jnthn: when I read (and reread, and rereread it) it seemed it was slightly less strong than an official suggestion | 17:43 | |
rjbs | Yes, and imagine a string that's "\c[DIAERESIS]Your face." | ||
If "\c[DIAERESIS]".chars was 0, that string above might be length 10. | 17:44 | ||
raiph | rjbs: and would take up the space of 10 graphemes | 17:45 | |
rjbs | raiph: The "space"? | ||
What kind of space? | |||
raiph | rjbs: the space a character visually occupies | ||
moritz | not all graphemes take up the same amount of space | 17:46 | |
rjbs | Doees that mean that "\c[HALFWIDTH HANGUL LETTER E]\c[HALFWIDTH HANGUL LETTER E]" should be lenth 1? | ||
cognominal | in that sense does the space character occupy any space? | ||
rjbs | Or what about "\c[INVISIBLE TIMES"? | 17:47 | |
raiph | cognominal: if the typical human would say yes, then yes | ||
moritz | cognominal: there are zero-width chars (zero-width spaces, for example), "normal" ones and "full width" characters | ||
rjbs | That takes up zero width. | ||
moritz | .chars is *not* supposed to return the display width | ||
yoleaux | * a d e h i l n o p r s t u w y | ||
moritz | yoleaux: wtf? | 17:48 | |
geekosaur | presumably .chars is a command | ||
.help | |||
yoleaux | geekosaur: I'm yoleaux. Type .commands to see what I can do, or see dpk.io/yoleaux for a quick guide. | ||
cognominal | that would be a property of the glyph corresponding to the grapheme in given font | ||
geekosaur | yep unique characters in the string | ||
rjbs | There are other documents about determining visual fit, like UAX 14. | ||
geekosaur | visual width is an attribute of a font, not of a character... | 17:49 | |
cognominal | m: my method infix:sym<+>(Code $f, $n) { $f($n) }; &[+].assuming(42) + 666 | ||
camelia | rakudo-moar 550b8c: OUTPUT«Cannot call Numeric(Sub: ); none of these signatures match: (Mu:U \v: *%_) in block <unit> at /tmp/gM3ZQg1hhl:1» | ||
rjbs | That, too. | ||
cognominal | too bad automatic conversion goes against the grain of cool stuff | 17:50 | |
dalek | osystem: f48decd | (Steve Mynott)++ | META.list: add Text::VimColour |
||
BenGoldberg | .char zyxabc | 17:54 | |
.chars zyxabc | |||
yoleaux | No characters found | ||
18:23
raiph left
18:25
FROGGS joined
18:26
jack_rabbit joined
|
|||
dalek | p/curly: 2844001 | FROGGS++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: map new scdisclaim op on moar |
18:28 | |
p/curly: e7b8aef | FROGGS++ | src/vm/jvm/ (3 files): first stab at implementing scdisclaim for jvm |
|||
18:28
raiph joined
18:29
rindolf left
|
|||
dalek | kudo/curly: ae2045c | FROGGS++ | src/core/CompUnitRepo/Local/Installation.pm: shift null_s of string heap in CURLI.serialize |
18:31 | |
18:47
berekuk joined
|
|||
lizmat wonders what if nqp::ord($onlyname) < 58 means | 18:49 | ||
FROGGS | lizmat: where did you spot that? | 18:51 | |
18:52
berekuk left,
spider-mario joined
|
|||
masak | src/core/Cursor.pm, apparently | 18:52 | |
lizmat | in TimToady's last commit | ||
masak | that 58 is begging to be explained, yes. | 18:54 | |
also, that commit introduced commented-out debug lines :( | |||
FROGGS | that is about $0 and $<foo> | ||
m: say '9'.ord | 18:55 | ||
camelia | rakudo-moar 550b8c: OUTPUT«57» | ||
FROGGS | we have other spots where we check that the capture key is either numeric or alpha | 18:56 | |
masak | I'm going to go ahead and "forgiveness > permission" remove them | ||
FROGGS++ # for explaining the 58 | |||
++whoever # for making the code explain it too | |||
FROGGS | this shows it better: github.com/rakudo/rakudo/commit/55...c29d576R47 | ||
so, might deserve a comment line | 18:57 | ||
masak | in a perfect world with reliable constant folding, I'd love to see it as `<= '9'.ord` | ||
lizmat will do | |||
masak notices, to his amusement, that he can't make his fingers decrement TimToady karma on channel :> | 18:58 | ||
FROGGS | the comment might mention positional vs. named captures | ||
hehe | |||
vendethiel | TlMTOADY-- # *g* | ||
vendethiel could also have used a 1 here | |||
18:59
anaeem1 left
|
|||
masak | good, someone else as craven as I :P | 18:59 | |
s/craven/respectful/ | |||
18:59
anaeem1_ joined
|
|||
dalek | kudo/nom: 0d93f2b | lizmat++ | src/core/Cursor.pm: Some clarification and cleanup |
18:59 | |
FROGGS | lizmat++ | 19:00 | |
masak | lizmat++ | ||
cognominal | ++lizmat++ | 19:04 | |
19:04
anaeem1_ left
19:07
domidumont left
|
|||
masak | m: my $lizmat = 42; ++$lizmat++ | 19:07 | |
camelia | rakudo-moar 550b8c: OUTPUT«Cannot assign to an immutable value in block <unit> at /tmp/Vu3bvGiyFi:1» | ||
masak | I *think* that should actually be a parse error. | ||
std: my $lizmat = 42; ++$lizmat++ | 19:08 | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5==="++" and "++" are not associative at /tmp/EJ51kKgIYi line 1:------> 3my $lizmat = 42; ++$lizmat++7⏏5<EOL>"++" and "++" are not associative at /tmp/EJ51kKgIYi line 1:------> 3my $lizmat = 42; ++$lizmat++7⏏5<EOL>FAILED 0…» | ||
masak | yeah. like that. | ||
masak submits rakudobug | |||
pro tip: you can make rakudobugs out of *anything*! :P | |||
lizmat feels honoured :-) | |||
19:08
jack_rabbit left
|
|||
raydiak | FROGGS: what should panda do when you call a command which can take multiple modules in a list, but one of them has multiple candidates? a single --auth/--ver won't work for a list of modules | 19:13 | |
FROGGS | raydiak: it should perhaps print a list of available dists, and prompt for a pick | ||
raydiak | FROGGS: afaik panda has no runtime interaction, maybe intentionally...are you sure I should add interactive prompts? | 19:15 | |
FROGGS | raydiak: hmmm, is there another way to solve it? | ||
raydiak | FROGGS: let it fail for that one and print a list at the end when it shows failures maybe? | 19:16 | |
FROGGS | that would also work | ||
19:17
jack_rabbit joined
|
|||
raydiak | alright...for now, it already takes a failure and reports it, so I can just fail, and then add the part for stuffing the list of alternatives into the failure and showing them in the error report after the more important pieces are done :) | 19:18 | |
FROGGS | yeah :o) | ||
the heck... a {} used in the setting is a Block on the jvm, not a hash | 19:19 | ||
raydiak has --auth/--ver working for install, and is hoisting the solution into a more suitable place to reuse for all the commands | 19:20 | ||
heh, bad jvm! *shakes finger scoldingly* | |||
FROGGS | raydiak++ | 19:21 | |
raydiak | FROGGS: should I be basing my work on something other than panda/master? | ||
FROGGS | no, master is fine | 19:22 | |
panda/curly touches other places, and panda/CPAN won't get merged soon | |||
19:23
jack_rabbit left
|
|||
raydiak | cool...just thought to ask b/c the way it installs, the files/dirs are just named by shortname, so they overwrite each other, but I figured maybe curly fixes that | 19:24 | |
19:24
araujo left
|
|||
FROGGS | it will, aye | 19:24 | |
raydiak | neat...alright, off to write code instead of english for a bit :) | 19:25 | |
FROGGS | :o) | ||
19:26
coffee` joined
19:29
cygx left,
jack_rabbit joined
|
|||
hoelzro | DrForr: thanks, I'll check it out | 19:31 | |
yoleaux | 15:52Z <DrForr> hoelzro: I've got a primitive callback example ready, easy enough to write but the C-specific stuff like FD_ZERO and select() needs thinking about. | ||
15:53Z <DrForr> hoelzro: It's a direct translation of the C code, look at examples/cb-echo.pl6 | |||
19:34
dolmen joined
|
|||
raydiak | m: my $r = rx/./; say ?$r | 19:34 | |
camelia | rakudo-moar 0d93f2: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/5_LnzPHxKV:1» | ||
raydiak | are regexes supposed to do something special when you boolify them? | ||
FROGGS | m: $_ = "foo"; my $r = rx/./; say ?$r | ||
camelia | rakudo-moar 0d93f2: OUTPUT«Method 'match' not found for invocant of class 'Any' in block <unit> at /tmp/N6KEtZ_ZlS:1» | ||
raydiak | I just want to know if there is a defined object in the var, but it may be a regex, and I get this instead if it is | 19:35 | |
well, not just defined, but true | |||
hoelzro | DrForr: does rl_callback_read_char block at all? | 19:36 | |
19:36
anaeem1 joined
|
|||
hoelzro | and do you have to use the callback variants for reading things + invoking a callback? | 19:36 | |
raydiak | for regex I thought/hoped true would be anything besides the Regex type object | ||
DrForr | hoelzro: I really haven't tested much about it, I can do some quick checks. | 19:39 | |
dalek | kudo/curly: 5fb7fd8 | FROGGS++ | src/core/Distribution.pm: restructure Distribution; do work once |
19:40 | |
rakudo/curly: c4767a3 | FROGGS++ | src/core/CompUnitRepo/Locally.pm: | |||
rakudo/curly: do no create CURL directories "automagically" | |||
19:40
dalek left
|
|||
FROGGS | (sorry dalek) | 19:40 | |
hoelzro | DrForr: if it blocks, you could probably just ignore using select (for now, anyway) and use threads | ||
19:40
koo6 joined
|
|||
hoelzro | I don't know how *stable* that will be, but... | 19:40 | |
19:40
dalek joined,
ChanServ sets mode: +v dalek
19:41
anaeem1 left
19:42
anaeem1 joined
|
|||
DrForr | I'm getting one time through the loop per keypress so it appears to be blocking. The code works fine when I don't do any FD operations (which I really can't until either POSIX is fleshed out, or we figure out how it's going to be done.) | 19:43 | |
I haven't turned off buffering, and it's running inside tmux, so that may affect things as well. | |||
skids | m: .perl.say for (for ^5 { 41; next if $_ == 2; $_}) | 19:44 | |
camelia | rakudo-moar 0d93f2: OUTPUT«0134» | ||
skids | m: .perl.say for (1,(),2) | ||
camelia | rakudo-moar 0d93f2: OUTPUT«1()2» | ||
skids | I don't know which is right at this point. | 19:45 | |
vendethiel | skids: what seems wrong? | 19:47 | |
for doesn't flatten | |||
vendethiel is surprised the "41" doesn't warn here | |||
skids | the inside for returns a flattened result. | ||
19:49
coffee` is now known as coffee,
coffee is now known as coffee``
|
|||
skids | (Which is better than returning Nil, but when I wrote that test I didn't expect that to happen when it got fixed.) | 19:49 | |
19:49
coffee`` left
|
|||
dalek | ast: d821762 | usev6++ | S12-construction/new.t: Use existing ticket number |
19:49 | |
19:50
coffee` joined
|
|||
skids | OK, I think the test remains correct and there should indeed be a '()' in the first result. | 19:52 | |
raydiak | skids: I'm not sure that's flattening...I think maybe the next just doesn't give a value for that iteration at all, instead of a flattened empty list | ||
m: .perl.say for (for ^5 { $_ == 2 ?? () !! $_ }) | |||
camelia | rakudo-moar 0d93f2: OUTPUT«01()34» | ||
raydiak | not flattening there | 19:53 | |
skids | S04 says: Iterations that return C<()> ... return that C<()> as the next value which will therefore disappear when interpolated in flat context, but will interpolate an empty C<Parcel> into slice context. | 19:54 | |
FROGGS | for does not flatten anymore, right? | 19:55 | |
m: .perl.say for flat (for ^5 { $_ == 2 ?? () !! $_ }) | |||
camelia | rakudo-moar 0d93f2: OUTPUT«0134» | ||
raydiak | "Iterations that return C<()>" being the operative term there :) | ||
ah, I see..."such as by calling next with no extra return arguments" | 19:56 | ||
19:56
jack_rabbit left
|
|||
skids | Ok maybe I should not have cut out the part that says: "such as by calling C<next> with no extra | 19:56 | |
return arguments" | |||
:) | |||
raydiak | certainly something here or there or both seems awry, in that case | 19:57 | |
doesn't even need nesting or anything: | 20:04 | ||
m: say do for ^5 { $_ != 2 ?? $_ !! next }.perl | |||
camelia | rakudo-moar 0d93f2: OUTPUT«(0, 1, 3, 4)» | ||
skids | Yeah, that was superstituous. But in GLR-churn days superstition sometimes pays off. | 20:05 | |
.oO(always use the place last fixed to not flatten to test something that's not flat :-) |
20:07 | ||
20:08
RabidGravy joined
|
|||
raydiak | :) | 20:08 | |
20:10
jack_rabbit joined
|
|||
raydiak | in terms of what to plan for going forward, for shouldn't flatten, but dunno about the next behavior until someone else chimes in about whether that part is changing for the glr or not | 20:13 | |
20:13
diana_olhovik_ left
|
|||
skids | I get the impression the GLR is sort of like trying to get all the wrinkles out of wall-to-wall carpeting. (Gotta Lay Rug) | 20:13 | |
raydiak | you're not flattening it properly! :) | 20:14 | |
20:15
diana_olhovik_ joined
|
|||
raydiak | several programming puns to be had with carpet now that I think about it...flattening...unrolling...magic... | 20:17 | |
dalek | kudo/nom: 88b1203 | FROGGS++ | src/Perl6/Actions.nqp: allow to use our scoped tokens, RT #125169 |
||
20:22
anaeem1 left
|
|||
AlexDaniel | is there any list of existing unicode operators? | 20:23 | |
20:23
anaeem1_ joined
|
|||
arnsholt | Probably not listing just the Unicode ones, but doc.perl6.org should have all of them | 20:25 | |
lizmat | FROGGS: I'm not sure you need 7106131a0080aa6cb4fc6f ? | ||
the id of the CompUnit is an absolute path, no? | |||
or is this meant to be purely informational ? | |||
FROGGS | lizmat: this is about the 'master index' | 20:26 | |
so I keep a list of CompUnits per symbol name, and filter these by auth/name/ver instead of filtering dists (which can be huge) | |||
20:27
TimToady joined
|
|||
lizmat | FROGGS: so it is an optimisation, really | 20:27 | |
20:27
anaeem1_ left
|
|||
FROGGS | yes, I think so | 20:28 | |
lizmat | okidoki :-) | ||
FROGGS | :o) | ||
20:29
xfix left
|
|||
FROGGS | m: class Foo { method bar is export {} }; import Foo; &bar.signature | 20:32 | |
camelia | ( no output ) | ||
FROGGS | m: class Foo { method bar is export {} }; import Foo; say &bar.signature | ||
camelia | rakudo-moar 0d93f2: OUTPUT«(Foo: *%_)» | ||
AlexDaniel | arnsholt: hm, maybe I can grep for unicode characters from here somehow github.com/perl6/std/blob/master/STD.pm6 | ||
20:32
diana_olhovik_ left
20:38
jack_rabbit left
|
|||
FROGGS | m: grammar D4 { token doo4 is export { doo4 }; }; import D4; 'doo4' ~~ &doo4 | 20:44 | |
camelia | rakudo-moar 0d93f2: OUTPUT«Type check failed in binding <anon>; expected 'D4' but got 'Cursor' in regex doo4 at /tmp/shPOxpe_Y3:1 in block <unit> at /tmp/shPOxpe_Y3:1» | ||
FROGGS | TimToady: do we want to allow that? | ||
20:45
jack_rabbit joined
|
|||
Ulti just fixed bitrot in the Stats module | 20:45 | ||
turns out .kv.map({$^k * $^v}) doesnt work so well post GLR :D | 20:46 | ||
FROGGS | and we are not yet post GLR :o) | ||
Ulti | .pairs is now the way to go for .key .value which is nicer anyway | ||
TimToady | .kv is still supposed to be flat | 20:48 | |
m: my @foo = <a b c>. say @foo.kv.perl | 20:49 | ||
camelia | rakudo-moar 0d93f2: OUTPUT«5===SORRY!5=== Error while compiling /tmp/q9kOISTYzjUnsupported use of . to concatenate strings; in Perl 6 please use ~at /tmp/q9kOISTYzj:1------> 3my @foo = <a b c>. 7⏏5say @foo.kv.perl» | ||
masak | hee | ||
TimToady | m: my @foo = <a b c>; say @foo.kv.perl | ||
camelia | rakudo-moar 88b120: OUTPUT«(0, "a", 1, "b", 2, "c")» | ||
TimToady | so that map should work | ||
sorry, in a meeting, so a bit distracted | |||
20:51
jack_rabbit left
|
|||
masak | m: my @foo = <a b c>; say @foo.kv.elems | 20:54 | |
camelia | rakudo-moar 88b120: OUTPUT«6» | ||
masak | \o/ | ||
m: my @foo = <a b c>; say @foo.kv.tree.perl | |||
camelia | rakudo-moar 88b120: OUTPUT«(0; "a"; 1; "b"; 2; "c").item» | ||
raydiak | m: my %foo = ^6; say %foo.kv.map: {$^k * $^v} | 20:55 | |
camelia | rakudo-moar 88b120: OUTPUT«20 0 6» | ||
masak | m: my @foo = <a b c>; say @foo.pairs.perl | ||
camelia | rakudo-moar 88b120: OUTPUT«(0 => "a", 1 => "b", 2 => "c")» | ||
masak | m: my @foo = <a b c>; say @foo.pairs.map({ .key, .value }).perl | ||
camelia | rakudo-moar 88b120: OUTPUT«((0, "a"), (1, "b"), (2, "c"))» | ||
masak wonders if there's a shorter way to do that | |||
raydiak | m: say <a b c>.kv.rotor(2).perl | 20:58 | |
camelia | rakudo-moar 88b120: OUTPUT«((0, "a"), (1, "b"), (2, "c"))» | ||
20:59
darutoko left
|
|||
raydiak | m: say <a b c>.pairs».kv.perl | 20:59 | |
camelia | rakudo-moar 88b120: OUTPUT«((0, "a"), (1, "b"), (2, "c"))» | ||
TimToady | we could treat subsigs on pair-ish types as splitting the pair into a list of two things, so .pairs -> ($k,$v) {...} | 21:00 | |
likewise for Rat and Complex | |||
21:03
noganex joined
|
|||
masak | could work. | 21:05 | |
I assume you're not saying we should special-case 2-tuples, but it should work for arbitrary N-tuples? | |||
Ulti | either way I ran Tim King's benchmarks from a couple years ago and modern Rakudo runs them quite a bit faster and more predictably | 21:06 | |
gist.github.com/MattOates/c2e19950f46d1a1c241a | |||
though I am also using a quite modern CPU :S | 21:07 | ||
*shrug* | |||
skids | m: for (1,2,3).pairs -> $p [:key($k), :value($v)] { $p.say; $k.say; $v.say;} # what do square brackets do here as opposed to parens? | 21:10 | |
camelia | rakudo-moar 88b120: OUTPUT«0 => 1011 => 2122 => 323» | ||
masak | think they're equivalent. | 21:11 | |
skids | m: for (1,2,3).pairs -> [:key($k), :value($v)] { $k.say; $v.say;} # that works with parens | 21:12 | |
camelia | rakudo-moar 88b120: OUTPUT«Type check failed in binding <anon>; expected 'Positional' but got 'Pair' in block <unit> at /tmp/di7RXKHy1x:1» | ||
21:12
mohij joined
|
|||
dalek | ast: b159d9b | FROGGS++ | S05-grammar/methods.t: add test for our scoped tokens RT #125169 |
21:14 | |
Ulti | 11x speed up since Sept 2013 kind of doubt my CPU is that many times faster | 21:15 | |
everyone++ ? | |||
FROGGS | Sep 13? | 21:16 | |
Ulti | yeah | ||
sd.jtimothyking.com/2013/09/17/how-...is-perl-6/ | |||
increasingly more on the side of how fast is perl 6 :) | |||
using native types slows things down because I assume you just introduce loads of (un)boxing for the .is-prime | 21:17 | ||
FROGGS | probably, yeah | 21:18 | |
though, I must say that I am not a performance expert :o) | 21:19 | ||
but yeah, Perl 6 feels overall quite 'fast enough' | |||
masak | tell that to my 26-minute script :/ | 21:20 | |
yes, I was surprised too | 21:21 | ||
lizmat gets some shuteye | 21:23 | ||
good night, #perl6! | |||
masak | 'night, lizmat++ | ||
21:32
kurahaupo left,
kurahaupo joined
|
|||
raydiak wonders what masak is asking of rakudo which takes 26 minutes | 21:40 | ||
masak | gist.github.com/masak/7a1d84435d2b...endmore-p6 | 21:41 | |
ok, I just got slightly more impressed. | 21:42 | ||
I ported it to Perl 5... gist.github.com/masak/7a1d84435d2b...version-pl | |||
...and... | |||
that version takes 8 minutes. | |||
m: say 26 / 8 | 21:43 | ||
camelia | rakudo-moar 88b120: OUTPUT«3.25» | ||
raydiak | that's...actually not so bad, then? | ||
21:43
espadrine left
|
|||
masak | a factor of 3.25 really isn't bad. | 21:43 | |
(Perl 6)++ | |||
still, I think we can get closer :) | |||
raydiak | will the internals/performance part of the glr help much with that? | 21:44 | |
TimToady | profile it and see how much gimme and reify there is | 21:46 | |
21:47
[Sno] left
21:48
Zoffix joined
|
|||
cognominal | TimToady, how come that classes like Match don't do Positional or Associative? | 21:49 | |
masak | m: say Match ~~ Positional; say Match ~~ Associative | ||
camelia | rakudo-moar 88b120: OUTPUT«FalseFalse» | ||
TimToady | don't remember offhand, and still distracted in a meeting... | ||
cognominal | m: say Cursor.does(Associative) | ||
camelia | rakudo-moar 88b120: OUTPUT«False» | ||
masak | Cursor certainly shouldn't be Associative | 21:50 | |
cognominal | m: say Capture.does(Associative) | ||
camelia | rakudo-moar 88b120: OUTPUT«False» | ||
21:50
[Sno] joined
21:51
Zoffix left
|
|||
raydiak | wait, what? even Array...???... | 21:55 | |
m: say Array ~~ Positional | |||
camelia | rakudo-moar 88b120: OUTPUT«True» | ||
raydiak | hrm | ||
m: say Array.^mro | |||
camelia | rakudo-moar 88b120: OUTPUT«(Array) (List) (Iterable) (Cool) (Any) (Mu)» | ||
21:55
Zoffix joined
|
|||
masak | Positional is a role | 21:56 | |
m: say Array.^roles | |||
camelia | rakudo-moar 88b120: OUTPUT«(Positional)» | ||
raydiak | yeah got that part, I did...something else weird, looking for my mistake | ||
m: say any(Array,Hash) ~~ any(Positional,Associative) | 21:57 | ||
camelia | rakudo-moar 88b120: OUTPUT«False» | ||
raydiak | that's a variant of what I did | ||
what does that do? | |||
masak | m: say Array ~~ any(Positional, Associative) | 21:58 | |
camelia | rakudo-moar 88b120: OUTPUT«True» | ||
masak | easiest explanation is that the lhs doesn't autothread. | 21:59 | |
m: say any(1, 2) ~~ 1 | |||
camelia | rakudo-moar 88b120: OUTPUT«any(True, False)» | ||
masak | m: say so any(1, 2) ~~ 1 | ||
camelia | rakudo-moar 88b120: OUTPUT«True» | ||
raydiak | heh we're doing almost the exact same things (locally on my end) | ||
masak | hm. | ||
m: say so any(1, 2) ~~ any(2, 3) | 22:01 | ||
camelia | rakudo-moar 88b120: OUTPUT«True» | ||
masak | I don't really understand why that works -- but not the one with type objects. | ||
raydiak | m: []|[] ~~ Positional | 22:02 | |
camelia | ( no output ) | ||
raydiak | m: say []|[] ~~ Positional | ||
camelia | rakudo-moar 88b120: OUTPUT«False» | ||
masak | m: say ([]|[]) ~~ Positional | ||
camelia | rakudo-moar 88b120: OUTPUT«False» | ||
raydiak | m: 1|2 ~~ Int | ||
camelia | ( no output ) | ||
raydiak | m: say 1|2 ~~ Int | ||
camelia | rakudo-moar 88b120: OUTPUT«False» | ||
masak | ok, new hypothesis: | 22:03 | |
type checking is a bit different from value checking | |||
m: say any(Array,Hash) ~~ Junction | |||
camelia | rakudo-moar 88b120: OUTPUT«True» | ||
masak | ok, that one seems true. | ||
raydiak | ah, hm | ||
m: say (1|2).does: Int | 22:04 | ||
camelia | rakudo-moar 88b120: OUTPUT«False» | ||
masak | er, `.does` on a class? | ||
m: say Int.does(Int) | 22:05 | ||
camelia | rakudo-moar 88b120: OUTPUT«True» | ||
masak | heh. | ||
raydiak | then, perhaps the LHS of the type membership row in design.perl6.org/S03.html#Smart_matching should s/Any/Mu/ to indicate that it doesn't autothread (if this is intended behavior) | 22:06 | |
masak | 'night, #perl6 | 22:08 | |
raydiak | g'night antipodal masak o/ | 22:09 | |
from the same section of S03: All smartmatch types are "itemized"; both ~~ and given/when provide item contexts to their arguments, and autothread any junctive matches so that the eventual dispatch to .ACCEPTS never sees anything "plural". | 22:11 | ||
22:12
RabidGravy left
|
|||
raydiak | which I guess implies that smartmatch cannot test for a Junction (use .does for that?), and the current behavior is wrong? | 22:13 | |
22:16
dolmen left
22:20
Zoffix left
|
|||
dalek | ast: 4e044e9 | usev6++ | S11-modules/require.t: Use existing ticket number |
22:23 | |
22:23
Zoffix joined
22:28
Zoffix left
22:30
eli-se left
22:32
raiph left
22:34
molaf_ left
22:40
telex left
22:42
telex joined
22:48
raiph joined,
kaare_ left
22:49
bjz left
22:51
mohij left
22:54
quester left
23:02
dayangkun joined
23:06
kurahaupo left
23:10
raiph left
23:12
koo6 left
23:16
spider-mario left
23:22
lizmat left,
spider-mario joined
23:36
raiph joined
23:49
Sqirrel left
23:50
BenGoldberg left,
Ben_Goldberg joined
|