»ö« 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
telex left
|
|||
RabidGravy | right enough of this, nighty night people | 00:01 | |
00:02
telex joined
00:03
llfourn left
|
|||
dalek | kudo-star-daily: 9f688a2 | coke++ | log/ (9 files): today (automated commit) |
00:05 | |
rl6-roast-data: 182ff9f | coke++ | / (10 files): today (automated commit) |
|||
00:05
RabidGravy left
00:06
yqt left
00:34
lizmat joined
|
|||
lizmat | good * from YAPC::Asia | 00:34 | |
00:36
mjgardner left
00:41
cibs_ joined
00:43
mjgardner joined
|
|||
jdv79 | ok | 00:47 | |
00:47
vendethiel left
00:52
mjgardner left
00:54
mjgardner joined
|
|||
lizmat | Larry just began... | 00:56 | |
00:58
colomon left
|
|||
AlexDaniel | at least there will be a video, right? | 01:00 | |
yoleaux | 20 Aug 2015 10:01Z <FROGGS> AlexDaniel: I think timotimo meant the state we already had when we spoke last time | ||
AlexDaniel | because I was a little bit disappointed because of fosdem… | ||
and I am a bit unhappy because of qx// | 01:02 | ||
:) | |||
lizmat | trying to make a video right now :-) | 01:03 | |
01:04
colomon joined
01:15
jkva joined,
colomon left,
colomon joined
01:17
aborazmeh left
01:19
jkva left
01:20
cibs joined
01:22
khw joined
01:24
cibs_ left
01:25
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:35
aborazmeh left
01:37
dayangkun joined
01:41
hryk joined
01:42
hryk left
01:54
aborazmeh joined,
lizmat left,
aborazmeh left,
aborazmeh joined
01:56
lizmat joined
|
|||
lizmat | argh... camera kicks out every 20 mins or so, stupid EU regulations | 01:57 | |
so missed a few seconds twice | |||
not sure how good the audio is | |||
it *was* an audience recording :-) | |||
colomon | EU regulations? | 01:58 | |
lizmat | video cameras are taxed much higher than still cameras | ||
colomon | :( | ||
lizmat | so you buy a still camera with a video feature | ||
it is only allowed to record 20 mins max | 01:59 | ||
or it will be taxed as a video camera | |||
and become 20% more expensive | |||
01:59
llfourn joined
|
|||
colomon | yow! | 02:00 | |
lizmat | yeah | ||
they *are* hacks to change the firmware to allow longer recording | |||
but I just never bothered :-( | 02:01 | ||
colomon | should just buy a camera next time you’re in the states. ;) | 02:02 | |
lizmat | come to think of it, this camera *was* bought in the States | 02:04 | |
maybe there are similar regulations? | |||
colomon | huh not that I know of? | ||
www.tested.com/tech/photography/444...ing-limit/ | 02:06 | ||
not really a good explanation | |||
honoring the EU regs just because it’s convenient for them? | 02:07 | ||
photo.stackexchange.com/questions/1...e-duration | 02:08 | ||
02:08
lizmat left
02:09
lizmat joined
|
|||
lizmat | well, that was a hard crash. 2nd time this week :-( | 02:09 | |
timotimo | I had a rather hard crash today too... | 02:14 | |
02:16
mjgardner left
02:26
noganex_ joined
02:28
noganex left
02:34
vendethiel joined
02:35
inokenty joined,
mr-foobar left
|
|||
dalek | kudo/glr: a49eb3d | lizmat++ | tools/build/makeSLICE.pl6: Fix deprecation when generating new slice code |
02:40 | |
cognominal | colomon, the media industry seems to make the law in Europe. At least, with a pirate deputy with a very conservative proposal in the european parlement, one can see in action with their proposed amendments. | 02:47 | |
02:48
aborazmeh left
|
|||
lizmat | looking at why multi-element hash slices don't work in GLR | 02:50 | |
it looks like the $more value is containerized one level too many | 02:51 | ||
$ 6 'my %h = a => [1,2,3], b => 42; say (%h<a b>:delete).perl' | |||
$more = \(("a", "b")) | |||
$ 6 'my @a = [1,2,3],42; say (@a[0,1]:delete).perl' | |||
$more = $(0, 1) | |||
adding a $more = $more[0] in the hash case gives me: | 02:54 | ||
$ 6 'my %h = a => [1,2,3], b => 42; say (%h<a b>:delete).perl' | |||
($[1, 2, 3], 42) | |||
as expected | |||
since the postcircumfix is just passing on \key | 02:55 | ||
hmmm... | 02:56 | ||
argh, looks like we had a typo there for a *long* time that was hidden by excessive flattening | 02:57 | ||
dalek | kudo/glr: fa0c50c | lizmat++ | src/core/hash_slice.pm: Fix an old thinko that was uncovered by GLR This should fix all has slices (at least for now) |
03:00 | |
lizmat | *hash | ||
03:03
vendethiel left
03:04
kaare_ joined
03:05
mr-foobar joined
03:07
AlexDaniel left
|
|||
dalek | kudo/glr: 7f6f85d | lizmat++ | src/core/hash_slice.pm: Fix (for now) hash zen/whatever slices Perhaps we should do this in SLICE_MORE_HASH, not sure yet |
03:08 | |
ShimmerFairy | I personally love when fixing things uncovers bugs that managed to slip by :) | 03:09 | |
lizmat | yeah, and the extra Capture creation / flattening that was done, was not good for performance :-) | 03:10 | |
03:10
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
ShimmerFairy | lizmat: looking at that thinko, would a warning on using \var for declared sigil-less vars be useful or too superfluous? (e.g. warn on the second \a in my \a = 42; say \a ) | 03:13 | |
03:13
lizmat left,
CQ_ joined
|
|||
ShimmerFairy | On the one hand it seems like it would be silly to add a warning for that, but on the other hand I do get the feeling that a lot of people could trip up on thinking \ was just another sigil there. | 03:15 | |
03:15
CQ left,
CQ_ is now known as CQ
03:19
BenGoldberg joined,
BenGoldberg left
03:35
fling joined
03:43
cantaberry joined
|
|||
skids thinks we need an opt-in category of warnings, and it should go there. | 03:49 | ||
btw this needs error to be demoted similarly: | 03:51 | ||
m: my $a = {}; $a.perl.say; {}.perl.say; EVAL '${}'; | |||
GLRelia | rakudo-moar 7f6f85: OUTPUT«${}{}5===SORRY!5=== Error while compiling EVAL_0Unsupported use of ${}; in Perl 6 please use $()at EVAL_0:1------> 3${}7⏏5<EOL>» | ||
camelia | rakudo-moar 815fff: OUTPUT«{}{}5===SORRY!5=== Error while compiling EVAL_0Unsupported use of ${}; in Perl 6 please use $()at EVAL_0:1------> 3${}7⏏5<EOL>» | ||
ShimmerFairy | skids: I think everything that's disallowed on the basis of me expecting P5 behavior should be removable, since I don't know that :) | 03:59 | |
skids: I frequently think that 'use/no warnings' should be given options based on category, like gcc's -W flags | |||
04:00
lizmat joined
|
|||
japhb | ShimmerFairy: Would you accept the idea of disallowing P5 behavior for 6.Christmas, and then allowing reuse in 6.Future? | 04:00 | |
ShimmerFairy | e.g. 'no warnings :Perl5' or 'yes warnings :sigilless' (I know that my use of 'yes' should be 'use', but I think it reads nicer in this particular example) | 04:01 | |
japhb | I ask because it seems like a windmill you tilt at with some regularity. | ||
skids | ShimmerFairy: figuring out where to hold the line between "use warnings" and what belongs some sort of Log:: module is the problem. | 04:02 | |
ShimmerFairy | japhb: To be clear, I'm fine with P5 warnings, errors, and paranoid protections being on by default. I don't run into those warnings/errors often, admittedly, but it is a little LTA that stuff causes noisy warnings, or is paranoid-ly disallowed just because it's P5 syntax even though it'd make sense here, can't be turned off yet. | ||
m: say qw//.perl | 04:03 | ||
GLRelia | rakudo-moar 7f6f85: OUTPUT«()» | ||
camelia | rakudo-moar 815fff: OUTPUT«()» | ||
ShimmerFairy | m: say <>.perl | ||
GLRelia | rakudo-moar 7f6f85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KZTDCaHL1RUnsupported use of <>; in Perl 6 please use lines() to read input, ('') to represent a null string or () to represent an empty listat /tmp/KZTDCaHL1R:1------> 3say <7⏏5>.perl» | ||
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9ohlp4HVM9Unsupported use of <>; in Perl 6 please use lines() to read input, ('') to represent a null string or () to represent an empty listat /tmp/9ohlp4HVM9:1------> 3say <7⏏5>.perl» | ||
lizmat | once we get async stuff sufficiently stable, I would like to see warnings issued on a supply | 04:04 | |
ShimmerFairy | ^ simple example. I think it's pretty clear that the <> should be eqv. to qw[] (i.e. an empty list), but you can't do it. I'm fine with dieing on it by default, but some kind of way to disable it would be nice | ||
lizmat: I was thinking, maybe we don't want to call it warnings (except for 'warn' keywords used in P6), but worries/sorrows/panicks(?) for the compiler-related pragmas. | 04:05 | ||
lizmat | perhaps.... in any case, for production you would like to have warnings accumulated for a request / or a run | 04:06 | |
04:06
skids left
|
|||
lizmat | and issued somewhere else then in a log, presumably | 04:06 | |
ShimmerFairy | lizmat: yeah, I think some kind of concurrency attached to warnings and/or errors would be nice. Would be nice to provide something more featureful than 2>my.log for putting warnings elsewhere, for instance :) | 04:07 | |
lizmat | indeed, like deprecation warnings are handled now | ||
ShimmerFairy | I also think that enabling pragmas should use 'yes' as a keyword instead of 'use', since (to my P6 eyes), pragmas aren't like modules at all. Unless perhaps you are still supposed to be able to write your pragmas, like I heard you can in P5. | 04:08 | |
but that's mostly a "would be nice" kind of thing for me :) | 04:09 | ||
lizmat | well, I would be in favour of "yes" for pragma's | ||
04:10
khw left
|
|||
lizmat | as the "no" functionality of *modules* from P5 won't ever work in P6 | 04:10 | |
because the import happens at compile time already | |||
and cannot be undone, afaik | |||
ShimmerFairy | it also reads better for what pragmas do, I think: no warnings; ... { yes warnings :P5; ... } | ||
oh, there's a "no" usage for modules there? huh. | |||
lizmat | not in P6, I don't think | 04:11 | |
ShimmerFairy | I know, I meant in P5. Sorry for not clarifying :) | ||
lizmat | calling the "unimport" methods on a class...not sure what that would mean in P6 context | ||
ShimmerFairy | looking at the breakdown of use in S11, I'm not sure which part is the "import" equivalent, and thus would need to be reversed | 04:14 | |
04:15
Loren_ joined
|
|||
ShimmerFairy | lizmat: if we even needed an opposite to 'use', I'd be tempted to say it should be called 'disuse' or some other verb more indicative of what it means (and then disuse -> unimport + needn't , hypothetically) | 04:16 | |
lizmat | somehow I feel this discussion has happened before... so maybe we should wait until TimToady chimes in (if he has an opinion about this, of course) | 04:17 | |
ShimmerFairy | lizmat: I certainly mentioned 'yes' as a possible alternate keyword before, but I don't think it led to a discussion. Not sure if it's been discussed otherwise :) | 04:18 | |
lizmat | m: say [<a b c>].perl # fine! | 04:19 | |
GLRelia | rakudo-moar 7f6f85: OUTPUT«["a", "b", "c"]» | ||
camelia | rakudo-moar 815fff: OUTPUT«["a", "b", "c"]» | ||
lizmat | m: say [<a b c>,42].perl # how do I get the <a b c> to flatten ??? | ||
camelia | rakudo-moar 815fff: OUTPUT«["a", "b", "c", 42]» | ||
GLRelia | rakudo-moar 7f6f85: OUTPUT«[$("a", "b", "c"), 42]» | ||
ShimmerFairy | lizmat: looking at perldoc, "A pragma is a module which influences some aspect of the compile time or run time behaviour of Perl", I immediately thought "we can do that with slangs and macros from modules, we don't need pragmas the way P5 calls 'em" | 04:20 | |
m: say [<a b c>.Slip,42].perl | |||
GLRelia | rakudo-moar 7f6f85: OUTPUT«["a", "b", "c", 42]» | ||
camelia | rakudo-moar 815fff: OUTPUT«Method 'Slip' not found for invocant of class 'Parcel' in block <unit> at /tmp/GPXjGDXIRU:1» | ||
lizmat | ShimmerFairy++ # it had Slipped my mind | ||
ShimmerFairy | it needs to be a Slip in order to "slip" into the list :) | ||
lizmat | wonder if we could make a prefix = act as a slip | 04:23 | |
ShimmerFairy | lizmat: my initial guess is that, if we have user-made pragmas in P6, they would be based on slangs, and would not involve import/unimport. And I still say a keyword separation between modules and pragmas ('use' vs. 'yes'/'no') would be helpful :) | ||
lizmat | I agree.... | ||
moritz | \o | 04:24 | |
lizmat | moritz o/ | 04:25 | |
ShimmerFairy | The only place where I wouldn't want the 'yes' keyword is 'use nqp;' , since I imagine an 'nqp' module in that case, which rakudo happens to provide integrated for free. | ||
o/ | |||
lizmat | yes MONKEY-TYPING | ||
ShimmerFairy | (but if that's not the intended view of 'use nqp', then nevermind :P) | ||
lizmat | well, that's not what it's doing, it's just allowing nqp:: in userland code | ||
so "yes nqp" would make sense to me | 04:26 | ||
04:26
xinming left,
xinming joined
|
|||
lizmat | m: use nqp; nqp::say("foo"); no nqp; nqp::print("bar") | 04:26 | |
GLRelia | rakudo-moar 7f6f85: OUTPUT«===============================================================================The use of nqp::operations has been deprecated for non-CORE code. Pleasechange your code to not use these non-portable functions. If you really wantto keep using nqp:…» | ||
camelia | rakudo-moar 815fff: OUTPUT«===============================================================================The use of nqp::operations has been deprecated for non-CORE code. Pleasechange your code to not use these non-portable functions. If you really wantto keep using nqp:…» | ||
ShimmerFairy | lizmat: in my imagination non-rakudo Perl6s could theoretically want to provide an nqp module for 'use nqp'. Though then again it could just as easily support the pragma form too. | ||
lizmat | m: use nqp; nqp::say("foo") | 04:27 | |
GLRelia | rakudo-moar 7f6f85: OUTPUT«foo» | ||
camelia | rakudo-moar 815fff: OUTPUT«foo» | ||
lizmat | m: my $x = 42; my $y = 666; ($x,$y) = ($y,$x); dd $x, $y # this is known to be an issue, right ? | 04:28 | |
GLRelia | rakudo-moar 7f6f85: OUTPUT«$x = 666$y = 666» | ||
camelia | rakudo-moar 815fff: OUTPUT«$x = 666$y = 42» | ||
ShimmerFairy | I remember that being provided as a simple example of something a few days back, but not sure | 04:29 | |
moritz | m: say List.new.eager.^name | ||
GLRelia | rakudo-moar 7f6f85: OUTPUT«Seq» | ||
camelia | rakudo-moar 815fff: OUTPUT«List» | ||
ShimmerFairy | I remember that being provided as a simple example of something a few days back, but not sure | 04:32 | |
woops :P | |||
moritz | lizmat: I know it to be an issue, because I saw the test failing :-) | 04:34 | |
04:34
shinobi-cl joined
|
|||
lizmat | I seem to recall jnthn finding out STORE had to be 2-pass because of this | 04:34 | |
but maybe he just didn't do that yet... or is waiting to put in the compile time magic to only do 2-pass if really needed | 04:35 | ||
m: (1,2,3).map({ $_ xx 3 }).perl # not, not saying anything, just .perling | 04:36 | ||
GLRelia | rakudo-moar 7f6f85: OUTPUT«This Seq has already been iterated, and its values consumed in block <unit> at /tmp/yRtSIYCmBD:1» | ||
camelia | ( no output ) | ||
lizmat | m: say (1,2,3).map({ $_ xx 3 }) # now saying it | ||
GLRelia | rakudo-moar 7f6f85: OUTPUT«This Seq has already been iterated, and its values consumed in block <unit> at /tmp/uz9LDUaJff:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«1 1 1 2 2 2 3 3 3» | ||
lizmat | m: (1,2,3).map({ $_ if $_ > 5 }).perl.say # glad to see this still sorta works | 04:38 | |
GLRelia | rakudo-moar 7f6f85: OUTPUT«().iterator» | ||
camelia | rakudo-moar 815fff: OUTPUT«()» | ||
lizmat | m: (1,2,3).map({ next if $_ > 5; $_ }).perl.say # glad to see this still sorta works | 04:39 | |
GLRelia | rakudo-moar 7f6f85: OUTPUT«(1, 2, 3).iterator» | ||
camelia | rakudo-moar 815fff: OUTPUT«(1, 2, 3)» | ||
lizmat | m: (1,2,3).map({ next if $_ > 5; $_ }).perl.say # so we don't need to use next | ||
GLRelia | rakudo-moar 7f6f85: OUTPUT«(1, 2, 3).iterator» | ||
camelia | rakudo-moar 815fff: OUTPUT«(1, 2, 3)» | ||
lizmat | m: (1,2,3).map({ next if $_ <= 5; $_ }).perl.say # what I actually meant | ||
GLRelia | rakudo-moar 7f6f85: OUTPUT«().iterator» | ||
camelia | rakudo-moar 815fff: OUTPUT«()» | ||
dalek | ast/glr: fc4fb81 | lizmat++ | integration/advent2011-day23.t: Fix a test by slipping it |
04:41 | |
lizmat | m: <a b c>[0].say | 04:45 | |
GLRelia | rakudo-moar 7f6f85: OUTPUT«a» | ||
camelia | rakudo-moar 815fff: OUTPUT«a» | ||
04:45
jkva joined
|
|||
lizmat | m: <a b c>[0] = 42 | 04:45 | |
GLRelia | rakudo-moar 7f6f85: OUTPUT«Cannot modify an immutable Str in block <unit> at /tmp/Uk0AqENVRf:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«Cannot modify an immutable Str in block <unit> at /tmp/yDP8d2YQ0D:1» | ||
lizmat | m: say <a b c> === <a b c> | 04:46 | |
GLRelia | rakudo-moar 7f6f85: OUTPUT«False» | ||
camelia | rakudo-moar 815fff: OUTPUT«True» | ||
lizmat | I would posit that Lists generated with <a b c> should actually be a subclass of List that would be a value type | ||
the immutability is already handled at the nqp level | 04:47 | ||
ShimmerFairy | considering you can't interpolate anything mutable into a qw[] (afaik), that sounds fair to me. | 04:48 | |
04:49
jkva left
|
|||
dalek | kudo/glr: a1c19d8 | moritz++ | src/core/Range.pm: Implement a basic Range.elems special-cases infinite lists, and optimizes for the Int..Int case |
04:53 | |
lizmat | m: my $a = 42; say <$a b c> # doesn't work | ||
GLRelia | rakudo-moar 7f6f85: OUTPUT«$a b c» | ||
camelia | rakudo-moar 815fff: OUTPUT«$a b c» | ||
moritz | m: my $a = 42; <<$a b c>>[0] = 23; say $a | 04:54 | |
GLRelia | rakudo-moar 7f6f85: OUTPUT«Cannot modify an immutable Str in block <unit> at /tmp/ptuMLMhiC7:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«Cannot modify an immutable Str in block <unit> at /tmp/D17TEnonFk:1» | ||
lizmat | m: (1..Inf).max.WHAT.say | ||
GLRelia | rakudo-moar 7f6f85: OUTPUT«(Num)» | ||
camelia | rakudo-moar 815fff: OUTPUT«(Num)» | ||
lizmat | m: (1..Inf).max.say | 04:55 | |
GLRelia | rakudo-moar 7f6f85: OUTPUT«Inf» | ||
camelia | rakudo-moar 815fff: OUTPUT«Inf» | ||
lizmat | m: (1..*).max.say | ||
GLRelia | rakudo-moar 7f6f85: OUTPUT«Inf» | ||
camelia | rakudo-moar 815fff: OUTPUT«Inf» | ||
lizmat | moritz: * is not stored in $!min or $!max | ||
it's either -Inf or Inf | |||
moritz: so I think the first 2 checks are unnecessary | 04:56 | ||
04:56
rangerprice left
|
|||
moritz | lizmat: ok; there's another check for nqp::istype($!max, Whatever) in Range.pm; I'll kill that too | 04:58 | |
04:58
mr-foobar left
|
|||
lizmat | :-) | 04:58 | |
05:00
cgfbee joined
05:02
cognominal left
|
|||
dalek | kudo/glr: 45c62e2 | moritz++ | src/core/Range.pm: Remove redundant Whatever checks for Range endpoints, lizmat++ |
05:05 | |
lizmat | m: my $a = (101..104); say 1 + $a.max - $a.min - $a.excludes-min - $a.excludes-max # moritz | 05:08 | |
GLRelia | rakudo-moar a1c19d: OUTPUT«4» | ||
camelia | rakudo-moar 815fff: OUTPUT«4» | ||
dalek | ecs: 1d9fd64 | lizmat++ | S22-package-format.pod: Mention CUR.uninstall |
05:15 | |
ecs: b4d76e3 | lizmat++ | S (2 files): Merge branch 'master' of github.com/perl6/specs |
|||
05:18
lizmat left
|
|||
ugexe | typo my $removed = $repo.install( $dist ); | 05:20 | |
install also takes :$dist... if its supposed to be that | 05:21 | ||
05:23
lizmat joined
05:26
lizmat_ joined
05:27
lizmat left
05:28
lizmat joined
05:29
lizmat_ left
|
|||
dalek | ecs: e2a4087 | lizmat++ | S22-package-format.pod: Fix type, ugexe++ |
05:30 | |
lizmat | ugexe: re :$dist, I don't think the current impl is up to spec | 05:31 | |
hope to have this resolved after the SPW | |||
05:34
KCL left
05:39
xinming left
|
|||
dalek | ast/glr: ca092df | lizmat++ | integration/advent2012-day20.t: Fix a test by slipping and itemizing |
05:40 | |
05:41
xinming joined
|
|||
dalek | ast/glr: 9320d1d | lizmat++ | integration/advent2012-day20.t: Fix another test by slipping and itemizing |
05:43 | |
05:45
xinming left
05:46
xinming joined
05:50
jkva joined
05:53
vendethiel joined
05:54
vendethiel left
|
|||
masak | morning, #perl6 | 05:57 | |
moritz | good morning, masak | 05:59 | |
dalek | ast/glr: f8c114f | moritz++ | S12-methods/defer-call.t: Add explicit flat() to defer-call.t |
||
lizmat | m: Set.grep(Set) # do we expect this to work ? | 06:00 | |
GLRelia | rakudo-moar 45c62e: OUTPUT«Cannot look up attributes in a type object in block <unit> at /tmp/vmKoBokcv0:1» | ||
camelia | ( no output ) | ||
lizmat | m: Set.grep(Set).say | ||
GLRelia | rakudo-moar 45c62e: OUTPUT«Cannot look up attributes in a type object in block <unit> at /tmp/BoZbFL3YQR:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«(Set)» | ||
06:00
rurban joined
|
|||
lizmat | m: set().grep(Set).say | 06:00 | |
GLRelia | rakudo-moar 45c62e: OUTPUT«» | ||
camelia | rakudo-moar 815fff: OUTPUT«» | ||
lizmat | m: set(1,2,3).grep(Set).say | ||
GLRelia | rakudo-moar 45c62e: OUTPUT«» | ||
camelia | rakudo-moar 815fff: OUTPUT«» | ||
moritz | S32-list/map.t expects thing.map(*) to be a no-op | 06:01 | |
why? is that specced? Is it useful? | |||
ShimmerFairy | I can't think of a case where you want to do thing.map($a) and be able to assign $a a Whatever to make the .map do nothing | 06:02 | |
moritz | but why call .map in the first place if you don't want to even potentially transform anything? | ||
06:03
jkva left
|
|||
moritz | ah well, maybe it doesn't hurt to have a neutral element | 06:03 | |
lizmat | moritz: it was intended to create an infinite list afaicr | ||
ShimmerFairy | moritz: exactly :) I don't see why you'd do a literal .map(*) , so I can only see thing.map($a) where $a = Whatever.new | ||
lizmat | I think it can go actually now | 06:04 | |
06:04
aborazmeh left
|
|||
ShimmerFairy | and I don't see why you wouldn't have another indicator beforehand, like if $want-transform { ... } or even @a.map($_) with $transform-func | 06:04 | |
06:06
jkva joined
|
|||
dalek | ast/glr: 2a492d2 | lizmat++ | integration/advent2012-day13.t: Fix 2 tests by Slipping |
06:07 | |
ast/glr: 6c6edcc | lizmat++ | integration/advent2012-day13.t: DeTAB and whitespace alignment No functional change |
|||
ast/glr: 8d5f2a4 | moritz++ | S32-list/map.t: Remove .map(*) tests consensus on #perl6 was that it is not really needed |
06:08 | ||
masak | I could maybe see .map($tfn) being useful, and then $tfn is sometimes * | ||
moritz | though {$_} would do too, no? | ||
masak | but frankly, if I did something like that, I'd do .map(&tfn), and then have &tfn = sub id { $^x }; | 06:09 | |
moritz: yes, of course. but {$_} is longer than * | |||
moritz: I think the design "wants" to find and support all the cases where * means {$_} | |||
even though * is more general than that, and can sometimes mean Inf, etc | 06:10 | ||
moritz | let's see how much of the ecosystem breaks when .map(*) doesn't work anymore | ||
masak | :) | ||
moritz | and if the fallout is significant, re-add it | ||
06:10
freeze joined
|
|||
moritz | (it's a one-liner) | 06:10 | |
I posit that "somebody might find it useful" isn't a strong enough reason to keep a feature anymore | |||
06:12
diana_olhovik joined,
jkva left
|
|||
ShimmerFairy | masak: {$_} may be longer, but not by much, and it more clearly says "identity function" :) | 06:15 | |
06:18
freeze left,
domidumont joined
06:19
freeze joined
|
|||
dalek | kudo/glr: 6b907ab | lizmat++ | src/core/ (2 files): Add some signatures that we need in GLR |
06:20 | |
lizmat | this makes integration/advent2012-day13.t at lest pas now | ||
*least | |||
06:22
domidumont left
06:25
domidumont joined
|
|||
lizmat | m: say *.map({42.rand}) | 06:25 | |
GLRelia | rakudo-moar 45c62e: OUTPUT«WhateverCode.new» | ||
camelia | rakudo-moar 815fff: OUTPUT«WhateverCode.new» | ||
masak | my argument wasn't "somebody might find it useful". | 06:26 | |
lizmat | so not a way to create an infinite list of random numbers | ||
masak | but I have noticed that people reach for * meaning {$_} now and then because they expect it to work due to consistency. | ||
lizmat | m: my @a = *.map({42.rand}); say @a | ||
camelia | rakudo-moar 815fff: OUTPUT«WhateverCode.new» | ||
GLRelia | rakudo-moar 45c62e: OUTPUT«WhateverCode.new» | ||
masak | like, they are likely to go from *-1 or */2 to just * | ||
m: my @a = 1, 2, 3; say @a[*-1]; say @a[*] | 06:27 | ||
GLRelia | rakudo-moar 6b907a: OUTPUT«31 2 3» | ||
camelia | rakudo-moar 815fff: OUTPUT«31 2 3» | ||
masak | ...which isn't always a reasonable assumption :) | ||
anyway, I'm fine with removing support for .map(*) | |||
lizmat | Files=1036, Tests=41628, 200 wallclock secs (11.02 usr 3.28 sys + 1195.67 cusr 90.63 csys = 1300.60 CPU) | ||
masak | I didn't even know we had it :) | 06:28 | |
lizmat | I think we're seeing the efficiency improvements of the GLR starting to shine through in the spectest wallclock and CPU usage | 06:29 | |
ShimmerFairy | can it be seen in CORE compilation yet? | ||
lizmat | not really, not much P6 lazy listing going on while compiling core I don't think | 06:31 | |
06:32
espadrine joined
|
|||
dalek | kudo/glr: 46290dc | lizmat++ | src/core/Mu.pm: Add .munch canary for now |
06:38 | |
lizmat | advent2010-day11.t was testing with it | ||
masak | we can't do heredocs in src/core ? | 06:45 | |
lizmat | well, not sure anymore: they didn't use to work in core at one point | 06:47 | |
TimToady | hasn't someone been working with electron here? | 06:48 | |
lizmat | yes, but I can't find it in the ecosystem :-( | 06:49 | |
ShimmerFairy | yes, azawawi IIRC | ||
lizmat | github.com/azawawi/perl6-electron | 06:50 | |
06:51
Ven joined
06:52
amurf joined
|
|||
lizmat | for ^9 {take <. X>[@i=map {%r{@i[($_-1)%19,$_,($_+1)%19].join}},^19].join}; # perl 6 line noise | 06:54 | |
and something's wrong in there... :-( | 06:55 | ||
lizmat goes to another test file | |||
ShimmerFairy | first thing I notice is that $_ isn't being %19'd in the middle term | 06:56 | |
06:56
lizmat left,
amurf left
|
|||
masak | lizmat: I knew it! Perl 6 is just as unmaintainable as Perl 5 -- this one line you pasted proves it. :P | 06:58 | |
masak .oO( "is observation bias common?" -- "yes! I see it everywhere!" ) | 06:59 | ||
07:02
cognominal joined
07:06
shinobi-cl left
07:08
domidumont left,
Ven left
07:16
darutoko joined
07:22
zakharyas joined
07:28
Possum left
07:37
davercc`` left
07:47
dg_subrata joined
|
|||
dg_subrata | In our project log rotating is done via perl script. All cout and cerr prints of a C++ server are piped to a perl script which then rotate the log. But this is creating some problem. Most of the time logs are not coming instantly in the log file. Seems perl is doing some amount of buffering. How can I overcome this issue. | 07:47 | |
07:47
Ven joined
07:49
telex left,
notch left
07:50
cognominal left,
telex joined
|
|||
nine | dg_subrata: man perlvar, look for autoflush. Also this is #perl6, you're probably looking for #perl :) | 07:51 | |
Woah, we're down to 177/1047 spec test files failing :) | 07:52 | ||
.tell lizmat re commit 6b907ab9540de63941959252b3880fc6f67836c7, I'd be interested in _why_ we need those signatures now? | 07:53 | ||
yoleaux | nine: I'll pass your message to lizmat. | ||
07:53
leont joined
07:55
Ven left
|
|||
dalek | kudo/glr: 979d2d4 | (Stefan Seifert)++ | src/core/Hash.pm: Fix Hash.perl creating code that throws an error when EVALing .perl on an empty, itemized hash generated ${} which throws an error about ${} no longer being the correct syntax and using $() instead. {}.item means the same and is EVALable |
07:56 | |
07:57
Ven joined
|
|||
leont is still looking for a roommate for YAPC::EU, if interested please mail me at leont@cpan | 08:03 | ||
nine | m: say (<a b c>).perl; | 08:06 | |
GLRelia | rakudo-moar 979d2d: OUTPUT«("a", "b", "c")» | ||
camelia | rakudo-moar 815fff: OUTPUT«("a", "b", "c")» | ||
nine | m: say (42, <a b c>).perl; | ||
GLRelia | rakudo-moar 979d2d: OUTPUT«(42, ("a", "b", "c"))» | ||
camelia | rakudo-moar 815fff: OUTPUT«(42, ("a", "b", "c"))» | ||
nine | m: my @a = (42, <a b c>); for @a -> $o { say $o.perl; } | 08:07 | |
GLRelia | rakudo-moar 979d2d: OUTPUT«42$("a", "b", "c")» | ||
camelia | rakudo-moar 815fff: OUTPUT«42"a""b""c"» | ||
nine | Ah, another decade old bug in a spec test uncovered by GLR! | ||
dalek | ast/glr: 14ba91b | (Stefan Seifert)++ | S02-names-vars/perl.t: Update S02-names-vars/perl.t to this decade We don't have references anymore in Perl 6. Test captures instead of non-existing scalar refs. Fixes the deprecation warnings. |
08:11 | |
ast/glr: a1a1468 | (Stefan Seifert)++ | S02-names-vars/perl.t: Fix wrong test count in S02-names-vars/perl.t The test count has been wrong since forever since the <a b c> got flattened and the list never tested. Instead we tested three single character strings. Now with the sane flattening semantics, we actually test test the list and thus run 4 fewer tests. Verified by manual test count. |
|||
FROGGS | Guten Morgen | 08:12 | |
.tell AlexDaniel the qx//|run|shell issue is not a very big one on my list btw... there are more important issues we need to address | 08:14 | ||
yoleaux | FROGGS: I'll pass your message to AlexDaniel. | ||
ShimmerFairy | FROGGS: did you see my qwx// as a quoting version of 'run' suggestion the other day? | 08:21 | |
08:22
Ven left
|
|||
masak | morning, FROGGS | 08:23 | |
08:23
Ven joined
|
|||
FROGGS | ShimmerFairy: no, I didn't | 08:24 | |
hi masak | |||
ShimmerFairy: why qWx ooc? | |||
ShimmerFairy | FROGGS: basically, if we really _need_ a shorter version of run for Huffman or something, qwx and qqwx would be my suggestions for run | ||
FROGGS | and how does such a call look like? | 08:25 | |
DrForr | That smells like cdaddr... | ||
ShimmerFairy | FROGGS: because run is supplied a list of arguments, and one of the examples given in the complaint was run(«echo stuff»), which only goes to support the 'quotewords' thinking :) | ||
08:25
cwDYKARN joined
|
|||
ShimmerFairy | FROGGS: basically, in my mind, qx/qqx is to shell like qwx/qqwx is to run | 08:26 | |
(though I'm still of the opinion that there's nothing that needs to be changed in the language, fwiw) | |||
FROGGS | hmmm | ||
08:26
cognominal joined
|
|||
FROGGS | brb | 08:27 | |
08:27
FROGGS left
|
|||
ShimmerFairy | Waitaminute | 08:27 | |
m: my $b = 3; say «1 $b» | |||
GLRelia | rakudo-moar 979d2d: OUTPUT«13» | ||
camelia | rakudo-moar 815fff: OUTPUT«13» | ||
ShimmerFairy | m: my $b = 3; say qww/1 $b/ | ||
GLRelia | rakudo-moar 979d2d: OUTPUT«1$b» | ||
camelia | rakudo-moar 815fff: OUTPUT«1$b» | ||
ShimmerFairy | m: my $b = 3; say qqw/1 $b/ | ||
GLRelia | rakudo-moar 979d2d: OUTPUT«1 3» | ||
camelia | rakudo-moar 815fff: OUTPUT«1 3» | ||
ShimmerFairy | ok, so it is qqw :) | ||
dalek | ast/glr: 7a9e0c3 | (Stefan Seifert)++ | S02-names-vars/perl.t: Fix comparison of a Seq with a list in S02-names-vars/perl.t |
08:28 | |
nine | And another file passing :) | ||
ShimmerFairy | or not, I didn't notice the space in qqw | ||
08:29
FROGGS joined
|
|||
ShimmerFairy | S02 doesn't list a name for «», like <> has with qw// O_o (only says that «» is eqv. to qq:ww:v/.../) | 08:30 | |
m: my $b = 3; say qqww/1 $b/ | 08:31 | ||
GLRelia | rakudo-moar 979d2d: OUTPUT«13» | ||
camelia | rakudo-moar 815fff: OUTPUT«13» | ||
ShimmerFairy | ah, so I guess technically it should be qx//, qqx//, qwx//, and qqwwx// :) | ||
FROGGS | quotewords style parsing occurred to me as well... but I'd probably favour qxs// and qx// over qwx | 08:32 | |
08:33
RabidGravy joined
|
|||
FROGGS | where qxs invokes the shell and is therefore one char longer | 08:33 | |
I think we should experiment with this idea... | |||
masak | is qww a new thing? | ||
FROGGS | qx// would then default to qx:out// perhaps... | ||
ShimmerFairy | masak: no, apparently you can remove the colon with a short-form adverb | 08:35 | |
nine | m: my $f = ("f fo foo" ~~ m:nth(0)/fo+/) | ||
GLRelia | rakudo-moar 979d2d: OUTPUT«Attempt to retrieve before :1st match -- :nth(0) in block <unit> at /tmp/YwVWWiEo9p:1Actually thrown at: in block <unit> at /tmp/YwVWWiEo9p:1» | ||
camelia | ( no output ) | ||
ShimmerFairy | m: say Qb"Hello\n$World" | ||
GLRelia | rakudo-moar 979d2d: OUTPUT«Hello$World» | ||
camelia | rakudo-moar 815fff: OUTPUT«Hello$World» | ||
nine | Why isn't this failing on nom? | ||
m: my $f = ("f fo foo" ~~ m:nth(0)/fo+/); say $f.WHAT; | |||
camelia | rakudo-moar 815fff: OUTPUT«(Bool)» | ||
GLRelia | rakudo-moar 979d2d: OUTPUT«Attempt to retrieve before :1st match -- :nth(0) in block <unit> at /tmp/MkDMSE_QrY:1Actually thrown at: in block <unit> at /tmp/MkDMSE_QrY:1» | ||
nine | m: my $f = ("f fo foo" ~~ m:nth(0)/fo+/); say $f; | 08:36 | |
GLRelia | rakudo-moar 979d2d: OUTPUT«Attempt to retrieve before :1st match -- :nth(0) in block <unit> at /tmp/EMUo5So3N8:1Actually thrown at: in block <unit> at /tmp/EMUo5So3N8:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«False» | ||
ShimmerFairy | FROGGS: I'd prefer not clobbering the qx// and qqx// meanings (of being like shell() ), since it's of little value and so close to the RC and christmas. | 08:37 | |
FROGGS | wow, only 175 test files left | 08:38 | |
ShimmerFairy: we could still experiment with it in a branch, is all | 08:39 | ||
I'm not saying it is urgent... :o) | 08:40 | ||
ShimmerFairy | FROGGS: like I said, I think it's a non-issue in the first place, at least as far as language design is concerned :) | 08:41 | |
FROGGS | yeah, I tend to agree | 08:42 | |
m: say 'xxy'.index( 'y', -1e35 ) | |||
GLRelia | rakudo-moar 979d2d: OUTPUT«2» | ||
camelia | rakudo-moar 815fff: OUTPUT«Nil» | ||
FROGGS | m: say 'xxy'.index( 'y', -1e34 ) | ||
GLRelia | rakudo-moar 979d2d: OUTPUT«Nil» | ||
camelia | rakudo-moar 815fff: OUTPUT«Nil» | ||
FROGGS | m: say 'xxy'.index( 'y', -1e36 ) | 08:43 | |
GLRelia | rakudo-moar 979d2d: OUTPUT«2» | ||
camelia | rakudo-moar 815fff: OUTPUT«Nil» | ||
08:44
domidumont joined
08:45
kanl joined
|
|||
kanl | dg_subrata: if your project runs on linux/unix, djb's daemontools + multilog may be preferable to your perl script solution. check out cr.yp.to if you're interested. | 08:46 | |
dg_subrata: daemontools is basically djb's replacement for xinetd. while your c++ server is guarded by daemontools, its stdour/stderr is hooked to multilog and rotated according to configuartion (by size, number of logs to keep etc..) | 08:49 | ||
nine | kanl: aren't daemontools obsoleted by systemd now? | 08:50 | |
ShimmerFairy | only if you use systemd, I'd imagine :) | 08:51 | |
kanl | also true, i have a bunch of legacy systems.. | ||
for compatibility i just deploy daemontools, which works just fine. | 08:52 | ||
ShimmerFairy | I don't use systemd, but only because there's no incentive to actually doing the switching over for me. | 08:53 | |
RabidGravy | coo do people still use djb-ware? real blast from the past there. | ||
dalek | kudo/glr: c292e13 | moritz++ | src/core/operators.pm: Fix infix:<does> with several roles at once Makes S14-roles/mixin.t pass |
08:54 | |
08:54
luiz_lha joined
08:55
luiz_lha is now known as Guest2181
|
|||
kanl | RabidGravy: we have about 20K servers running centos 5.4 in production :) | 08:55 | |
FROGGS | m: use nqp; say nqp::unbox_i(-1e35) | 08:56 | |
GLRelia | rakudo-moar 979d2d: OUTPUT«(signal SEGV)» | ||
camelia | rakudo-moar 815fff: OUTPUT«This type cannot unbox to a native integer in block <unit> at /tmp/QvhU7ZhEvH:1» | ||
FROGGS | ups | ||
RabidGravy | that'll do it to you every time :) | 08:57 | |
moritz | m: my $latin-chars = [~] chr(0)..chr(0xFF); say $latin-chars.comb(/<space>/)>>.ord.join(",") | ||
GLRelia | rakudo-moar c292e1: OUTPUT«9,10,11,12,13,32,133,160» | ||
camelia | rakudo-moar 815fff: OUTPUT«9,10,11,12,13,32,133,160» | ||
dalek | ast/glr: 0893808 | moritz++ | S05-mass/charsets.t: Enforce range interpolation |
08:58 | |
FROGGS | sad, locally I don't get a segfault | ||
m: use nqp; say nqp::unbox_i(-1e35) | 08:59 | ||
GLRelia | rakudo-moar c292e1: OUTPUT«This type cannot unbox to a native integer in block <unit> at /tmp/OVR8FJtZPA:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«This type cannot unbox to a native integer in block <unit> at /tmp/8iOTB0nXUr:1» | ||
FROGGS | ahh :/ | ||
that was either the commit before or during rebuild | |||
El_Che | kanl: I don't know what's more impressive. Having 20k server or still running centos 5.4 ;) | 09:00 | |
dalek | ast/glr: e6ab8ae | moritz++ | S05-mass/properties-general.t: Enforce range interpolation |
||
nine | moritz: what would be the difference between "my \real-roles = eager @roles.map" and "my \real-roles := eager @roles.map"? | 09:01 | |
kanl | El_Che: 20k is modest deployment scale for a search engine. and 5.4 is the stablest system if you rely on XFS .. | 09:02 | |
moritz | nine: uhm, nothing; should probably be = in both cases | ||
nine | moritz: oh, interesting. I've mostly seen (and thus used) := for assignment to sigilless vars | ||
El_Che | On the other hand I used --/me puts his old white beard on-- to run a huge solaris 8 farm almost single-hadled (my collegues back then where just escaping the mainframe) :) | 09:03 | |
moritz | nine: since sigilless vars can't be re-asssigned (or re-bound), and don't force a container, I don't think there's much practical difference anyway | ||
El_Che | perl5 helped me keep my sane state (it was before the configuration management time) :) | 09:04 | |
kanl: ddg? | |||
nine | moritz: that they don't have a container makes it more logical to me to only bind them. But probably the compiler is smart enough to just do the same on assignment :) | ||
TEttinger | kanl: yandex? | 09:06 | |
kanl | El_Che,TEttinger: no, but i have friends that work there :) | 09:07 | |
dalek | kudo/glr: 9f58110 | lizmat++ | src/core/Cool.pm: Handle out-of-bounds pos in index/rindex better Fixes #125784 |
09:13 | |
09:14
leont left
09:31
abraxxa joined
09:34
Ven left,
espadrine left
|
|||
JimmyZ | :q | 09:34 | |
09:34
Guest2181 is now known as luiz_lha
09:36
pflanze joined
|
|||
JimmyZ | FROGGS: re 9f581101ad, we seems to already do the check in MoarVM | 09:45 | |
FROGGS | JimmyZ: and there we throw probably? | ||
JimmyZ | I cant follow you .. | 09:46 | |
MoarVM returns -1 alreay | 09:47 | ||
*already | |||
FROGGS | hmmm, I dont think so | ||
m: use nqp; my int $i = nqp::index(nqp::unbox_s("abc"),nqp::unbox_s("c"),nqp::unbox_i((-1e35).Int)); say $i | |||
GLRelia | rakudo-moar 9f5811: OUTPUT«2» | ||
camelia | rakudo-moar 815fff: OUTPUT«2» | ||
JimmyZ | m: use nqp; my int $i = nqp::index(nqp::unbox_s("abc"),nqp::unbox_s("c"),nqp::unbox_i((-nqp::pow(2,65)).Int)); say $i | 09:49 | |
GLRelia | rakudo-moar 9f5811: OUTPUT«===SORRY!===No registered operation handler for 'pow'» | ||
camelia | rakudo-moar 815fff: OUTPUT«===SORRY!===No registered operation handler for 'pow'» | ||
JimmyZ | m: use nqp; my int $i = nqp::index(nqp::unbox_s("abc"),nqp::unbox_s("c"),nqp::unbox_i((-nqp::pow_I(2,65)).Int)); say $i | 09:50 | |
GLRelia | rakudo-moar 9f5811: OUTPUT«===SORRY!===Arg count 2 doesn't equal required operand count 5 for op 'pow_I'» | 09:51 | |
camelia | rakudo-moar 815fff: OUTPUT«===SORRY!===Arg count 2 doesn't equal required operand count 5 for op 'pow_I'» | ||
09:51
cwDYKARN_ joined
09:52
leont joined
09:53
espadrine joined,
cwDYKARN_ left
|
|||
RabidGravy | m: class Foo { subset Format of uint16 where * < 3; }; my Foo::Format $a = 0 | 10:01 | |
GLRelia | rakudo-moar 9f5811: OUTPUT«Type check failed in assignment to '$a'; expected 'Format' but got 'Int' in block <unit> at /tmp/kKcTG6AIJ7:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«Type check failed in assignment to '$a'; expected 'Format' but got 'Int' in block <unit> at /tmp/nQNlh4TUt8:1» | ||
RabidGravy | m: say uint16 ~~ Int | 10:02 | |
GLRelia | rakudo-moar 9f5811: OUTPUT«True» | ||
camelia | rakudo-moar 815fff: OUTPUT«True» | ||
10:02
xinming left
|
|||
RabidGravy | this confuses me | 10:02 | |
JimmyZ | m: use nqp; say nqp::unbox_i(-1e35.Int); | 10:03 | |
GLRelia | rakudo-moar 9f5811: OUTPUT«0» | ||
10:03
cwDYKARN_ joined
|
|||
camelia | rakudo-moar 815fff: OUTPUT«0» | 10:03 | |
JimmyZ | m: use nqp; say nqp::unbox_i(-1e34.Int); | ||
GLRelia | rakudo-moar 9f5811: OUTPUT«-3458764513820540928» | ||
camelia | rakudo-moar 815fff: OUTPUT«-3458764513820540928» | ||
10:03
xinming joined
10:05
cwDYKARN_ left
10:07
rindolf joined
10:09
cwDYKARN_ joined
|
|||
JimmyZ | .tell jnthn looks like we have pow_i in MoarVM, but it never be used in nqp/rakudo | 10:10 | |
yoleaux | JimmyZ: I'll pass your message to jnthn. | ||
ShimmerFairy | JimmyZ: not surprised about rakudo (tends to use _I bigint ops instead), but nqp not using it anywhere is interesting. | 10:13 | |
10:15
pmurias joined
|
|||
JimmyZ | well , since nqp is a compiler .. | 10:16 | |
pmurias | JimmyZ: ? | 10:21 | |
nine | I guess you don't need pow that often in a compiler ;) | 10:22 | |
10:24
leont left
|
|||
ShimmerFairy | Right now I'm working on getting $¢ working properly (because I found I'm typing $/.CURSOR a bit too much atm). Enabling it in nqp was scarily easy, but it's proving quite a bit harder in rakudo, at least outside of regex/token/rule decls :P | 10:24 | |
10:26
domidumont left
10:28
xfix joined
10:29
virtualsue joined,
virtualsue left,
amurf joined
10:30
TEttinger left
|
|||
FROGGS | ShimmerFairy: can't you just make it a term:sym<¢> and let the actions turn it into $/.CURSOR? | 10:32 | |
ShimmerFairy | Well, $¢ is what's spec'd, and I can easily enable it in NQP and in token foo { } regexes. It's the inline ~~ // stuff in P6 that's acting weird. | 10:33 | |
oh, you mean in my own code :) | |||
RabidGravy | time for either more coffee, find my glasses or use a bigger font. I can barely tell the difference between $c and $¢ | ||
10:33
amurf left
10:34
Ven joined
|
|||
ShimmerFairy | FROGGS: I of course could (though defining a term:sym<> didn't occur to me), but 1) I don't know how that would conflict with the ¢ sigil, if that ever makes a miraculous comeback, and 2) might as well put in support for the spec'd thing if I'm going to do anything :) | 10:34 | |
FROGGS | ShimmerFairy: it would not conflict with a sigil, because of LTM | 10:36 | |
10:42
Possum joined
10:50
zakharyas left
|
|||
dalek | kudo/glr: f9e6df2 | FROGGS++ | src/core/Str.pm: fix Str.split and Str.match wrt GLR |
10:55 | |
moritz | m: map { 2 * $_ } 2..5 | 10:58 | |
GLRelia | rakudo-moar f9e6df: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3rvpuZTUAgMissing comma after block argument to mapat /tmp/3rvpuZTUAg:1------> 3map { 2 * $_ }7⏏5 2..5 expecting any of: infix infix stopper» | ||
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/S8XWjtIOt1Missing comma after block argument to mapat /tmp/S8XWjtIOt1:1------> 3map { 2 * $_ }7⏏5 2..5 expecting any of: infix infix stopper» | ||
moritz | m: say map { 2 * $_ }, 2..5 | ||
GLRelia | rakudo-moar f9e6df: OUTPUT«4 6 8 10» | ||
camelia | rakudo-moar 815fff: OUTPUT«4 6 8 10» | ||
moritz | m: say [+] 1, map { 2 * $_ }, 2..5 | ||
GLRelia | rakudo-moar f9e6df: OUTPUT«5» | ||
camelia | rakudo-moar 815fff: OUTPUT«29» | ||
nine | m: say [+] flat 1, map { 2 * $_ }, 2..5 | 10:59 | |
GLRelia | rakudo-moar f9e6df: OUTPUT«29» | ||
camelia | rakudo-moar 815fff: OUTPUT«29» | ||
nine | I'd really love to see | as flattening operator | 11:01 | |
moritz | or a separate operator for list concatenation | ||
nine | m: say [+] 1, | map { 2 * $_ }, 2..5 | ||
GLRelia | rakudo-moar f9e6df: OUTPUT«29» | ||
camelia | rakudo-moar 815fff: OUTPUT«29» | ||
dalek | p: 9d35d8d | (Jimmy Zhuo)++ | src/vm/moar/QAST/QASTOperationsMAST.nqp: map pow_i opcode |
||
nine | Which in this case it even is | ||
moritz loves "! [rejected]" during git push; it means other folk were busy! | 11:02 | ||
dalek | kudo/glr: 8d70a3a | moritz++ | src/core/Temporal.pm: Fix Datish.day-of-year |
||
11:03
abraxxa left
11:04
zakharyas joined
11:12
dayangkun left
|
|||
moritz | TimToady: do we need List.tree post-GLR? the original intent (making inner lists not flatten) is the default now, and the stuffed-on extra functionality doesn't seem to fit the method name anymore | 11:13 | |
nine | Does anyone have an idea why LoL had to go? | ||
moritz: seems like we're investigating the same case :) | 11:14 | ||
moritz never understood the point of LoL, except if it was to disable flattening of sublists | |||
nine | Ok for that we can just use List now | ||
moritz | nine: no, I was looking at S32-lists/tree.t, which predates implementation of LoL | ||
nine | But then what's the point of having the (1;2;3) syntax? | 11:15 | |
moritz | no idea | ||
maybe compact storage? | |||
nine | moritz: you probably mean S02-lists/tree.t and I was indeed investigating the same | 11:16 | |
moritz | nine: ok; looking at reduce next | 11:17 | |
11:21
smls joined
|
|||
nine | I wonder what code would trigger Array.ASSIGN-POS | 11:21 | |
ShimmerFairy | oh, another thing about choosing to implement $¢ instead of a local solution: I don't imagine the difference is that great, but I imagine $¢.MATCH.CURSOR is probably less optimal than $¢ :) | ||
moritz | nine: my @a = 42; @a[0] = 2 | 11:22 | |
ShimmerFairy | (since $/ is just $¢.MATCH, if I understand the existing code correctly) | ||
nine | moritz: how can that be? Array.ASSIGN-POS is commented out in GLR | ||
moritz | nine: there might be a fallback if ASSGIN-POS does not exist | ||
smls | there is | 11:23 | |
it uses AT-POS then | |||
(which is expected to return an rw container) | |||
moritz | m: class A { method ASSIGN-POS($idx, \val) { say val } }; A.new[0] = 42 | ||
GLRelia | rakudo-moar 8d70a3: OUTPUT«42» | ||
camelia | rakudo-moar 815fff: OUTPUT«42» | ||
moritz | ASSIGN-POS is both an implementation convenience and an optimization | 11:24 | |
nine | ok | ||
11:24
domidumont joined
|
|||
nine | Looks like ASSIGN-POS will be very much like AT-POS. I'll just go for it :) | 11:25 | |
smls | documented at doc.perl6.org/language/subscripts#M...bscripting btw, though it does not yet document the multi-dim extension that jnthn was working on. | 11:26 | |
moritz | m: my $a = [1, 2, 3]; my @b = $a; say @b.items | 11:31 | |
GLRelia | rakudo-moar 8d70a3: OUTPUT«Method 'items' not found for invocant of class 'Array' in block <unit> at /tmp/N62vXUR7fI:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«Method 'items' not found for invocant of class 'Array' in block <unit> at /tmp/wfLjvp10uK:1» | ||
moritz | m: my $a = [1, 2, 3]; my @b = $a; say @b.elems | ||
GLRelia | rakudo-moar 8d70a3: OUTPUT«1» | ||
camelia | rakudo-moar 815fff: OUTPUT«1» | ||
11:31
Ven left
11:32
RabidGravy left,
Ven joined
11:38
FROGGS_ joined
11:40
dayangkun joined
11:42
FROGGS left
11:43
rurban left
11:48
smls left,
smls joined
|
|||
rarara | smls: 'multi-dim extension', are you planning fortran style arrays (many indices) in perl 6? | 11:54 | |
smls | yeah, one index per dimension | 11:55 | |
like @a[1; 1; 1] | |||
by default it will just be sugar for nested indexing, i.e. @a[1;1;1] would become @a[1][1][1] | |||
*but* if the object supports it, it may handle all dimensions directly | 11:56 | ||
and compact native arrays support that, for example | |||
rarara | ah that's amazing! So there could also be a compact Matrix object | ||
nine | exactly | 11:57 | |
rarara | and maybe even some easy to use sparse matrix library | ||
smls | in fact I thing it already partially works | ||
rarara: Yeah, it's been designed with PDL-like usecases in mind | 11:58 | ||
dalek | kudo/glr: 6a86a67 | (Stefan Seifert)++ | src/core/Array.pm: Implement Array.ASSIGN-POS |
12:01 | |
nine | That was quite pain free :) | ||
We're now at 169/1047 btw. | 12:02 | ||
Ven | nine++ | ||
12:06
rurban joined
|
|||
arnsholt | nine: 169 failing test files? | 12:14 | |
nine | arnsholt: yes | ||
12:14
dayangkun left
12:16
rindolf left
12:19
amurf joined
|
|||
timotimo | o/ | 12:20 | |
12:20
dg_subrata left
|
|||
timotimo | good news: after catapulting my thinkpad off a table, the only things broken are: a bit of plastic has exploded off of the side, and the plug of the power adapter is a tiny bit slanted now | 12:20 | |
nine | Thinkpads++ | 12:21 | |
timotimo | yeah. i opened it up and was amazed - not for the first time - at how well it's built | ||
ShimmerFairy | .oO(bad news: there wasn't any downside to make this setup work right) |
12:22 | |
timotimo | ShimmerFairy: the bad news is that if i had had a macbook, i wouldn't have been able to pull it off of the table via its power cord | ||
ShimmerFairy | timotimo: true, though I suppose you could turn that around and say "Macbooks have flimsy plug connectors" :P | 12:23 | |
12:23
amurf left
|
|||
timotimo | i think that'd be dishonest | 12:23 | |
on the other hand, i'm pretty sure a macbook would have taken a bit more damage than my thinkpad | 12:24 | ||
actually | |||
i'm not sure at all | |||
ShimmerFairy | timotimo: it's Marketing Honest™, which is good enough in some circles :) | ||
timotimo | argh :) | ||
ShimmerFairy | timotimo: I can say that I got two old powerbooks from a teacher years ago, and the difference between the G3 and G4 laptops in terms of take-apart-ability was significant (and interesting) | 12:26 | |
timotimo | i've heard many things are fastened via glue rather than screws or latches | ||
but that's probably not for old powerbooks, just for the newer models? | 12:27 | ||
ShimmerFairy | probably | ||
nine | timotimo: that reminds me of the PQAH where the Apple magnetic power plug was quite flimsy and wouldn't connect right most of the time. | 12:28 | |
timotimo | perl quality assurance hackathon? | ||
nine | timotimo: I rather have a sturdy laptop that survives a fall, whatever the reason. | ||
timotimo: yes | |||
ShimmerFairy | The shiny one (G4) had early signs of the signature Apple Don't-Open-This design style, but the black G3 had it where the keyboard could easily be pulled out via two tabs on the top (there was a lock to prevent that, but amusingly it was broken :P) | ||
timotimo | mhm | 12:29 | |
timotimo remembers a horrible photograph of a macbook that had been bent out of shape to reveal the hard drive | 12:30 | ||
with the flavor text "this is not how you replace a hard drive" or something | |||
dalek | kudo/glr: 6b3930e | moritz++ | src/core/ (2 files): Restore some .reduce functionality |
||
12:33
dnmfarrell joined
|
|||
dnmfarrell | Hi all. Is there a way to loop through a match objects sub-matches in the order they were match? The docs say .list() but it is empty for me github.com/dnmfarrell/Pod-Perl5/bl...TML.pm#L47 | 12:35 | |
moritz | dnmfarrell: .caps | ||
timotimo | .list probably only gives you positional submatches, not named ones | 12:36 | |
right? | |||
moritz | right | ||
.caps gives you both, order by .from | |||
*ordered | |||
ShimmerFairy | m: say "ABC" ~~ /<alpha>+/; for @($/) { say $_ } | 12:37 | |
GLRelia | rakudo-moar 6b3930: OUTPUT«「ABC」 alpha => 「A」 alpha => 「B」 alpha => 「C」» | ||
camelia | rakudo-moar 815fff: OUTPUT«「ABC」 alpha => 「A」 alpha => 「B」 alpha => 「C」» | ||
ShimmerFairy | m: say "ABC" ~~ /(\w)+/; for @($/) { say $_ } | ||
GLRelia | rakudo-moar 6b3930: OUTPUT«「ABC」 0 => 「A」 0 => 「B」 0 => 「C」「A」 「B」 「C」» | ||
camelia | rakudo-moar 815fff: OUTPUT«「ABC」 0 => 「A」 0 => 「B」 0 => 「C」「A」 「B」 「C」» | ||
dnmfarrell | ahh thanks :) | ||
ShimmerFairy | seems to work OK | ||
moritz | m: say "ABC" ~~ /<alpha>+/; say .git for $/.caps | 12:38 | |
GLRelia | rakudo-moar 6b3930: OUTPUT«「ABC」 alpha => 「A」 alpha => 「B」 alpha => 「C」Method 'git' not found for invocant of class 'Pair' in block <unit> at /tmp/f_csbQvMlj:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«「ABC」 alpha => 「A」 alpha => 「B」 alpha => 「C」Method 'git' not found for invocant of class 'Pair' in block <unit> at /tmp/3HHomSGbSf:1» | ||
moritz | m: say "ABC" ~~ /<alpha>+/; say .Str for $/.caps | ||
GLRelia | rakudo-moar 6b3930: OUTPUT«「ABC」 alpha => 「A」 alpha => 「B」 alpha => 「C」alpha Aalpha Balpha C» | ||
camelia | rakudo-moar 815fff: OUTPUT«「ABC」 alpha => 「A」 alpha => 「B」 alpha => 「C」alpha Aalpha Balpha C» | ||
moritz | m: "ABC" ~~ /<alpha>+/; say .Str for $/.caps | ||
GLRelia | rakudo-moar 6b3930: OUTPUT«alpha Aalpha Balpha C» | ||
camelia | rakudo-moar 815fff: OUTPUT«alpha Aalpha Balpha C» | ||
moritz | m: "ABC" ~~ /<alpha>+/; say .value.Str for $/.caps | ||
GLRelia | rakudo-moar 6b3930: OUTPUT«ABC» | ||
camelia | rakudo-moar 815fff: OUTPUT«ABC» | ||
12:39
pnu left,
hobbs joined
|
|||
dnmfarrell | moritz: it works ! :D | 12:40 | |
12:40
rurban_ joined
|
|||
dalek | p: b6c791b | (Jimmy Zhuo)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java: add pow_i to jvm backend |
12:41 | |
12:44
Ven left,
rindolf joined
|
|||
dalek | p: ebfd308 | (Jimmy Zhuo)++ | src/vm/jvm/QAST/Compiler.nqp: map pow_i opcode to jvm backend |
12:44 | |
12:44
Ven joined
12:45
lizmat joined
12:48
FatalNIX joined,
pnu joined
|
|||
JimmyZ | .tell jnthn ignore it, I make it being used now. | 12:55 | |
yoleaux | JimmyZ: I'll pass your message to jnthn. | ||
timotimo | ignore what? | ||
JimmyZ | timotimo: pow_i | ||
timotimo | ah, ok | ||
JimmyZ | it'd be nice someone merge my pr and bump nqp version :) | 12:56 | |
masak | jnthn: I saw your "Inf ~~ Int will never happen" in the backlog. I'd like to talk about that sometime. I remember vividly how TimToady (perhaps a year or so ago) provided a way forward on that. | 12:58 | |
jnthn: it wasn't so much an *exact* implementation plan as it was an assurance that it could be done. | 12:59 | ||
jnthn: I remember it because it convinced me. | |||
jnthn: and I was wondering whether you've seen it, and whether it convinced you. | |||
13:03
skids joined
|
|||
masak | fwiw, I just had a MAIN sub where I wanted to write `Int $max = Inf`... | 13:04 | |
jnthn | masak: I'm basically burned out with the topic and wish it'd go away. | ||
yoleaux | 20 Aug 2015 16:51Z <japhb> jnthn: I am seriously loving gist.github.com/anonymous/6607717a5d201a9acf82 ... I'm using it for language bragging rights with various friends. Can't wait to be using the finished API. :-) | ||
10:10Z <JimmyZ> jnthn: looks like we have pow_i in MoarVM, but it never be used in nqp/rakudo | |||
12:55Z <JimmyZ> jnthn: ignore it, I make it being used now. | |||
masak | jnthn: ok. | ||
jnthn | masak: I'm beyond the point of being interested in being convinced. | 13:05 | |
masak: If anything's going to happen, then it's SEP. | |||
dalek | kudo/glr: 55b3264 | (Stefan Seifert)++ | src/core/native_array.pm: Implement native array iterators |
||
masak | sad to hear that, but that's an acceptable response. | ||
jnthn | (I won't get in the way of somebody else working on it, of course.) | ||
nine | Those were so simple, I wonder why noone has picked this LHF before :) | ||
masak | I'm mostly interested in us resolving it one way or another. | 13:06 | |
either eradicating the dream from the spec, or implementing the dream. | |||
moritz | masak: one problem is that whatever you do, you have to create a layer of indirection to prevent us from passing Inf to the underlying bigint lib (which doesn't support Inf) | ||
masak | aye. | 13:07 | |
guess there are some operations that should simply die, even post-Inf~~Int | |||
but I think jnthn is right, that the most central problem is "what type?" | |||
moritz | down to 166 spectest file fail (before nine++'s patch) | 13:08 | |
masak | if we want to support Inf for Int/Num/Str, for example, that suggests that the type must be `Int & Num & Str` | ||
nine | jnthn: I wasted several hours yesterday trying to make hllization of nqp::list bind the list as IterationBuffer to $!reified, since almost all list code is expecting that. Can you tell me why that's a stupid idea? | ||
masak | or is that `Int | Num | Str`? whatever makes Inf (and -Inf) assignable to each of those types. | 13:09 | |
jnthn | nine: afaik it only cares that it is an IterationBuffer if the List has unreified parts | ||
nine: And when we hllize things they're never lazy | 13:10 | ||
moritz | class InfOrMinusInf is Num is Int is Str { } | ||
jnthn | nine: So I figured it'd be no problem to bind an NQP array directly to $!reified | ||
13:11
dnmfarrell left
|
|||
jnthn | nine: Does it turn out to be a problem somewhere? :) | 13:11 | |
skids | The issue raised in PR#502 may bear on that matter, depending on the decision made there. | ||
lizmat wonders whether she has messages | |||
yoleaux | 07:53Z <nine> lizmat: re commit 6b907ab9540de63941959252b3880fc6f67836c7, I'd be interested in _why_ we need those signatures now? | ||
nine | jnthn: I wanted to use FLATTENABLE-LIST there: github.com/rakudo/rakudo/blob/glr/...ps.pm#L488 which failed because in line 495 we then call nqp::elems on a List instead of a VMArray | ||
lizmat | nine: Set.grep(Set) was calling the Set.list, which had no restrictor on the object | 13:12 | |
ShimmerFairy | masak: as I understand it, the problem is that Inf and NaN are literally just names for the IEEE values, so of course they'd only work with Num :) | ||
lizmat | this caused "cannot use attributes on a type object" error | ||
adding the signature, caused it to be not selected but instead the generic .list | |||
nine | lizmat: ah, thanks | ||
ShimmerFairy | (and when you think about it like that, I'm tempted to say it shouldn't work on non-Num, since they're clearly Num values) | 13:13 | |
lizmat | I'm not sure why that wasn't a problem pre-GLR | ||
m: say Set.grep(Set) | |||
GLRelia | rakudo-moar 55b326: OUTPUT«» | ||
camelia | rakudo-moar 815fff: OUTPUT«(Set)» | ||
jnthn | nine: The trouble is that calling a method automatically does hllize on whatever it returns | ||
nine | lizmat: several things worked mysteriously pre-GLR | ||
13:13
rmgk is now known as Guest26049,
rmgk_ joined,
Guest26049 left,
rmgk_ is now known as rmgk
|
|||
hoelzro | good perl6, #morning! | 13:13 | |
lizmat | m: say [Set].grep(Set) | ||
GLRelia | rakudo-moar 55b326: OUTPUT«(Set)» | ||
camelia | rakudo-moar 815fff: OUTPUT«(Set)» | ||
jnthn | nine: FLATTENABLE_LIST is only used for |@foo style things, and since the compiler emits the call it can avoid thta hllize | 13:14 | |
nine | jnthn: that's what I figured. Hence I tried to hllize the nqp::list to an IterationBuffer before assigning to $!reified of the List object. I patched MoarVM to allow rebless on VMArray and nqp to allow is repr on a stub but then ran into a nightmare of debugging | ||
jnthn | eww | 13:15 | |
No, users should never normally see IterationBuffer | |||
nqp::list should hllize to List | |||
If you want the $!reified from List then you should just getattr it | |||
masak | ShimmerFairy: just because IEEE 754 defines Inf doesn't mean it has exclusive rights to it. | ||
nine | jnthn: it would. I just reblessed $!reified to IterationBuffer | ||
jnthn | nine: But why do you need to dothat? | ||
masak | ShimmerFairy: also there's no doubt that (a) there's a use case here, nor that (b) Inf makes sense as "extreme comparison values" for a lot of comparable types. even user-defined types could theoretically get in on the game. | 13:16 | |
ShimmerFairy | masak: sure, I'm just saying that when you think of Inf as a name for the IEEE value (which it currently is), then of course it shouldn't work. :) | ||
nine | jnthn: so the List code can be sure it will be an IterationBuffer (it already assumes in countless places) regardless of where the List is coming from. | ||
JimmyZ | stupid questiond: re IterationEnd, is there a reason we can't s/IterationEnd/Nil/? | ||
masak | ShimmerFairy: well, it isn't only that, by spec. | ||
jnthn | JimmyZ: Yes | ||
moritz | jnthn: the problem is/was that $!refified of a normal List (contstructed via List.new) is an IterationBuffer, but, but hllize create a List where $!refied was an NQP-level array | ||
jnthn | moritz: I'm aware, but when I implemented List the ONLY places that relied on it being an IterationBuffer were code-paths where the List had a $!todo | 13:17 | |
And that's *never* true for hllize'd things. | |||
nine | So @a>>.say would work, but @a.^methods>>.say would fail | ||
moritz | ok | ||
ShimmerFairy | masak: my thinking is that Inf would have to be something like Nil or Empty, and I'm not sure if that's desired. | ||
moritz | jnthn: maybe that assumption was broken somewhere along the way | 13:18 | |
jnthn | nine: If so, then >>.say is probably assuming the thing it gets is an IterationBuffer, not just any old VMArray | ||
13:18
woolfy joined
|
|||
jnthn | moritz: Yes, I'm guessing so...I think I'd prefer to unbreak it :) | 13:18 | |
ShimmerFairy | (and btw, I definitely don't think NaN has much (if any) utility beyond floating point. It is, after all, not a number in the first place ☺) | ||
jnthn | JimmyZ: Of note, Nil can actually exist in a List 'cus it does not vanish inside of them | 13:19 | |
moritz | ShimmerFairy: NaN as an integer would serve mostly the same function as the Int type object | ||
nine | jnthn: yes, that was just me trying to be clever and use FLATTENABLE-LIST which looked like a perfect match for what I did | ||
On the bright side: we're at 167/1047 failing spec test files :) | |||
jnthn | nine: Ah. Yeah, I'd probably not do that :) | ||
JimmyZ | jnthn: thanks :) | ||
jnthn | Wow...that's really nie progress :) | ||
skids | Well, wouldn't a .plan be able to add a $!todo to a List gotten via hllization? | ||
jnthn | *nice | ||
13:19
rindolf left
|
|||
ShimmerFairy | moritz: exactly my thinking. we have plenty of not-numbers already, NaN is just useful for floating point because it's a real thing we can get out of floating-point. | 13:20 | |
jnthn | skids: .plan is a method on Array, not List | ||
skids | Ah. | ||
jnthn | skids: List is immutable, you can't .plan | ||
(That also ties quite strongly into my hllize assumption :)) | |||
skids | Anyway, any inclination as to what to do about the Failure transparency issue? | ||
jnthn | skids: I need to look at it when I've got more brain | 13:21 | |
(My body is not doing at all well with the jet lag :() | |||
skids | :-) well, good luck crusing for brainnnz :-) | ||
masak | ShimmerFairy: agree on NaN not being useful outside of floating-point. | 13:22 | |
ShimmerFairy | masak: of course, what we really need is role HyperReal does Real { ... } :P | ||
moritz | for some values of "really" | ||
masak | ShimmerFairy: no, not really. | ||
anyway, I think TimToady's helpful handwave was also something like what you're saying, ShimmerFairy. | 13:24 | ||
that Inf was a kind of "bottom type" for certain comparable types. | |||
ShimmerFairy | the HyperReal was a joke, btw | ||
hoelzro finally understands the difference between "das gleiche" and "das selbe" due to 'eqv' and '===' | 13:25 | ||
nine | jnthn: if you find any time at all for some glr hacking it would be great if you could have a look at t/spec/S02-types/flattening.t. Would be enough if you review the tests, then we can fix the implementation. I'm just still too unsure about the wanted semantics :/ | ||
FROGGS_ | 167 test files left... | ||
smls | ShimmerFairy: 'Surreal' would be an even better name than "HyperReal'... :P | 13:26 | |
FROGGS_ | (on 2015.07.1-399-g6b3930e at least) | ||
ShimmerFairy | smls: not if you just want to support infinity and infinitesimal. Counting nesting would be horrendous :P | ||
13:26
FROGGS_ is now known as FROGGS
|
|||
jnthn | nine: OK, will see if I've any energy left after finishing slides | 13:27 | |
nine | jnthn: thanks :) And no worry, there's still some plain old implementation tasks to do before we have to figure that out | 13:28 | |
masak | ShimmerFairy: if you really wanted to implement hyperreals, it feels like that wouldn't be all that hard with a (user-defined) class wrapping around Num, adding infinitesimals | 13:31 | |
nine | jnthn: btw. I really internalized the iterator based approach over the last week of hacking. I just love how we're now both much lazier than before and have saner and simpler semantics at the same time. | ||
ShimmerFairy | Yeah, I don't really think it's the right solution to the problem with Inf, though :) | ||
moritz | yes, the iterators are really nice | 13:32 | |
smls | yeah | ||
jnthn | nine: Yeah, I worked at "simple but powerful enough" :) | 13:33 | |
moritz | and simple enough to use directly | ||
jnthn | Glad it's working out as hoped :) | ||
moritz: That was also very much a goal | |||
smls | btw, I wonder what English word we should use to casually refer to Seq objects in p6doc - "generator"? "sequence"? "lazy sequence" | 13:34 | |
jnthn | smls: "one-shot" might be good to get in there more than lazy | 13:35 | |
smls | good point | ||
jnthn | I think generator may be a bit too loaded from other languages | 13:36 | |
I did use the word a bit here once and found it was already quite overloaded. | |||
And haven't done so again :P | |||
13:36
rurban left
|
|||
timotimo | since my python involvement, "generator" means "coroutine" to me | 13:37 | |
nine | Why do I get a "Cannot auto-generate a proto method for 'Int' in the setting" when trying to add a multi method Int to array? | ||
timotimo | you may want to just put a "proto method Int" in there? | 13:38 | |
jnthn | timotimo: Yeah, and while a gather/take *does* give a Seq, Seq is more general than that | ||
timotimo | aye | ||
nine | timotimo: none of the other classes needs it? | ||
But of course the other classes are not repr('VMArray') | 13:39 | ||
jnthn | nine: Should it not be inherited from List? | ||
lizmat | nine: the core settings do not auto proto | ||
[Coke] | . # messages | ||
yoleaux | 20 Aug 2015 22:51Z <lizmat> [Coke]: re github.com/perl6/roast/commit/0452...5bf2e7f183 I have *no* idea, I just reran the generate script | ||
20 Aug 2015 22:51Z <lizmat> [Coke]: I assumed it to be a hash ordering thing | |||
nine | jnthn: native array? | ||
jnthn | nine: Ooh | ||
13:39
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
nine | Ah, just adding the darn proto helped :) | 13:40 | |
13:40
muraiki joined
|
|||
jnthn | nine: I'd guess because it inherits from something that doesn't provide a multi, but rather an only | 13:40 | |
dalek | kudo/glr: 481a5ad | (Stefan Seifert)++ | src/core/native_array.pm: Add an Int method to native array Pre-GLR we inherited it from class Iterable |
13:41 | |
moritz | wait, native arrays aren't Iterable anymore? | 13:42 | |
hoelzro | in GLR-land, $[...] is equivalent to [...].item, right? | ||
nine | m: say (1,2) === (1,2) | ||
GLRelia | rakudo-moar 55b326: OUTPUT«False» | ||
camelia | rakudo-moar 815fff: OUTPUT«True» | ||
nine | jnthn: oh, since you're here. Is that ^^^ expected? | ||
jnthn | moritz: Yes, but the Iterable role doesn't imply that you can ask for the number of elements | 13:43 | |
hoelzro: yes | |||
moritz | ah, good | ||
jnthn | nine: I think TimToady said that should be True also in glr | ||
nine | jnthn: that's...going to be interesting. Not even the slightest idea how to fix that :) | 13:44 | |
masak | they need to produce the same .WHICH | ||
no? | |||
lizmat | masak: they need to be value types, .WHICH is an implementation detail :-) | ||
moritz | the case where .is-lazy is False is easy, no? | ||
hoelzro | so for [1, 2, 3] { ... } should run 3 iterations, and for $[1, 2, 3] { ... } should run 1? (along with $([1, 2, 3]) and [1, 2, 3].item) | 13:45 | |
lizmat | moritz: not so | ||
m: [my $, my $, my $][0] = 42 | |||
GLRelia | rakudo-moar 55b326: OUTPUT«5===SORRY!5=== Error while compiling /tmp/g_s8aft9KIUnsupported use of $] variable; in Perl 6 please use $*PERL.version or $*PERL.compiler.versionat /tmp/g_s8aft9KI:1------> 3[my $, my $, my $]7⏏5[0] = 42» | ||
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/M0hhCiBPqEUnsupported use of $] variable; in Perl 6 please use $*PERL.version or $*PERL.compiler.versionat /tmp/M0hhCiBPqE:1------> 3[my $, my $, my $]7⏏5[0] = 42» | ||
lizmat | m: [my $, my $, my $ ][0] = 42 | ||
GLRelia | ( no output ) | ||
camelia | ( no output ) | ||
lizmat | m: say [my $, my $, my $ ][0] = 42 | 13:46 | |
GLRelia | rakudo-moar 55b326: OUTPUT«42» | ||
camelia | rakudo-moar 815fff: OUTPUT«42» | ||
lizmat | so [...] can be mutable inside | ||
moritz | lizmat: so it needs to respect the .WHICH of the container, if there's a container, right? | ||
lizmat | only if all elements are immutable, do we have a value type | ||
nine | ok @arr.list === @arr, "$t array .list returns identity"; # I'm not sure how we can keep this up. .list does now a List.from-iterator(self.iterator) to keep e.g. Str.join from looping infinitely | 13:47 | |
lizmat | personally, I think we need to deal with it at compile time | ||
in the case of (1,2,3), the code gen should create a immutable subclass of Int that has a custom .WHICH | |||
(well, that would be my approach) | |||
ShimmerFairy | subclass of List, you mean? | ||
lizmat | ShimmerFairy: correct: s/Int/List/ | 13:48 | |
:-) | |||
moritz | lizmat: or have a WHICH that includes the WHICH of the container elements | ||
that way even my $a; ($a, 1) === ($a, 1) will return True | |||
lizmat | m: my $a = 42; say $a.WHICH | ||
camelia | rakudo-moar 815fff: OUTPUT«Int|42» | ||
GLRelia | rakudo-moar 481a5a: OUTPUT«Int|42» | ||
moritz | which isn't bad, IMHO | ||
ShimmerFairy | I wouldn't mind an immutable class Tuple , fwiw | ||
lizmat | m: my $a = 42; say $a.VAR.WHICH | ||
GLRelia | rakudo-moar 481a5a: OUTPUT«Scalar|68089432» | ||
camelia | rakudo-moar 815fff: OUTPUT«Scalar|58390160» | ||
ShimmerFairy | (which is what TimToady was talking about the other day) | ||
moritz | m: say 42.VAR.WHICH | ||
GLRelia | rakudo-moar 481a5a: OUTPUT«Int|42» | ||
camelia | rakudo-moar 815fff: OUTPUT«Int|42» | ||
nine | ShimmerFairy: where's the difference to a List where all items are bound to containerless values? | 13:49 | |
lizmat | so yeah, that could work at runtime | ||
ShimmerFairy | nine: apparently List isn't immutable, so there's the difference :) | ||
jnthn | nine: I think .list on @arr really should return identity; I'd see if we can't fix the join thing another way... | 13:50 | |
nine | ShimmerFairy: List _is_ immutable. It's the items that are not if they are containers | ||
jnthn | nine: Why *is* join a problem? ) | ||
nine | jnthn: 15:50 < jnthn> nine: Why *is* join a problem? ) | ||
ShimmerFairy | nine: well, List isn't currently a value type, so as far as P6 is concerned, it's not immutable :) | ||
nine | jnthn: I get a weird endless recurion of .list if method list(array:D:) { self } | ||
jnthn | nine: Oh, you're on native arrays here rather than Array? | 13:51 | |
nine | jnthn: yes | 13:52 | |
That's basically the only native tests still failing. | 13:57 | ||
dalek | ast/glr: 0bdfd2e | (Stefan Seifert)++ | S09-typed-arrays/native- (2 files): Need to flatten manually now in list assignment |
13:58 | |
lizmat | jnthn: re making [ |<a b c> ] work | 13:59 | |
FROGGS | jnthn: btw, I made Seq Cool, are you okay with that? | ||
nine | FROGGS: you really should have asked if jnthn is cool with that :) | 14:00 | |
FROGGS | ;o) | ||
14:00
aborazmeh left
|
|||
lizmat | jnthn: I basically removed the sorry from prefix:sym<|> { <sym> <O('%symbolic_unary')> } | 14:00 | |
but am at a loss where to continue to get this to work | 14:01 | ||
I don't see anything with prefix:sym<|> in Actions | |||
FROGGS | m: say "forty-two".comb() ~~ Positional; say "forty-two".comb().WHAT | 14:02 | |
camelia | rakudo-moar 815fff: OUTPUT«True(List)» | ||
GLRelia | rakudo-moar 481a5a: OUTPUT«False(Seq)» | ||
[Coke] will get an updated daily glr report with all these lovely fixes as soon as the JVM run finishes. Oi. | |||
jnthn | lizmat: You don't need anything in actions | ||
FROGGS: Think I'm gool with it | |||
*cool | |||
damn, that ruined the pun | |||
FROGGS | :D | ||
nine | Everybody be cool | ||
jnthn | lizmat: You just write sub prefix:<|)(\x) { x.Slip } in CORE.setting somewhere | ||
lizmat: That should do it | |||
lizmat | ok, will do | 14:03 | |
ugexe | it seems like MAIN($arg, :@args) { } used to accept `--args="x" pos1`, but im seeing now it only works if i do `--args=x --args=x2 pos1`. (in moar-nom). is there a different way to do this, or is it just bugged right now? | ||
FROGGS | jnthn: now you're looking like a ghul in pyjamas | ||
14:04
rindolf joined
|
|||
ugexe | as in, for MAIN arguments Positional needs more than 1 element. i just thought it was weird because it happens on nom | 14:05 | |
moritz | ugexe: should probably coercive in MAIN | 14:06 | |
ugexe | so just use :$args in the signature? | ||
JimmyZ | lizmat: I think prefix | need to be in src/core/precedence.pm too | ||
[Coke] | jnthn's al ghul. | ||
lizmat | JimmyZ: good point | 14:07 | |
nine | Oh, of course! array inherits Any's join which does self.list.join. Since self.list returns self we get a nice endless recursion ;) | 14:08 | |
dalek | ast/glr: b7b35ef | FROGGS++ | S32-str/comb.t: check that .comb() returns something Iterable |
14:09 | |
nine | m: my int @a = 1, 2, 3; @a.Supply(); | 14:13 | |
GLRelia | ( no output ) | ||
camelia | rakudo-moar 815fff: OUTPUT«Memory allocation failed; could not allocate 61792 bytes» | ||
nine | There, same endless recursion in nom ^^^ | ||
It's just that on nom much fewer of Any's methods did self.list.foo | 14:14 | ||
m: my int @a = 1, 2, 3; @a.Parcel(); | |||
GLRelia | rakudo-moar 481a5a: OUTPUT«Method 'Parcel' not found for invocant of class 'array[int]' in block <unit> at /tmp/q6WKrcrfcV:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«Memory allocation failed; could not allocate 61792 bytes» | ||
[Coke] | I need to rewrite roast's test_summary in perl6 so I can more easily run the tests in parallel and report on them in the original order. | ||
nine | jnthn: ^^^ good enough reason to just kill the array.list returns identity test? | ||
[Coke]: I think few people will try to stop you from doing that ;) | 14:15 | ||
moritz | [Coke]: +1 | 14:17 | |
[Coke]: it'll make it much easier to diff the outputs | 14:18 | ||
jnthn | nine: Hmm...well, might well be | 14:19 | |
nine: Makes me a little confomrtable, somehow, but I can't put my finger on why | |||
skids | nine: I rememeber stubbing my toe on that .join problem before too | ||
[Coke] will see about doing that on the incredibly long day on the way to Olten. :) | 14:20 | ||
.seen pmichaud | |||
yoleaux | I saw pmichaud 14 Aug 2015 18:03Z in #perl6: <pmichaud> r: (12,24,13,97,11,10,100).pick(7).say | ||
nine | jnthn: the alternative would be to add implementations of all of Any's methods that do the self.list.foo trick | ||
jnthn | nine: Aye...that is probably not too expedient | ||
nine | jnthn: I can do either. I just don't see a real good reason to require .list to return identity | ||
jnthn | nine: Though we may want some of them for performance. | 14:21 | |
dalek | kudo/glr: 0b1722b | lizmat++ | src/ (3 files): Enable | as a generic flattener $ 6 'say [|<a b c>,|<d e>].perl' ["a", "b", "c", "d", "e"] jnthn++, JimmyZ++ for support |
||
jnthn | lizmat++ | ||
Glad it was as easy as hoped :) | |||
nine | lizmat++ # I've wished for that for a week :) | ||
lizmat | yup, it was *much* easier | ||
nine: yeah, wished for it today as well.. :-) | 14:22 | ||
jnthn | Glad you slipped it in :) | ||
skids | Oh yay, glad to see that won't be a wart in the end. | 14:24 | |
14:26
mr-foobar joined
|
|||
dalek | ast/glr: ebda77c | (Stefan Seifert)++ | S09-typed-arrays/native- (2 files): Remove dubious test for native array's list method I see no good reason for requiring native array's list method to return the native array (it isn't a List after all). Implementing it this way would generate endless recursions in all of Any's methods that follow the method foo() { self.list.foo } pattern. There were a few of those pre-GLR and many more now. |
14:26 | |
nine | I decided to just go for forgiveness ;) | ||
smls | m: say [1, 2, 3].list.WHAT | 14:29 | |
GLRelia | rakudo-moar 0b1722: OUTPUT«(Array)» | ||
camelia | rakudo-moar 815fff: OUTPUT«(Array)» | ||
smls | nine: Will this ^^ change? | 14:30 | |
dalek | ast/glr: 09cf434 | lizmat++ | integration/advent201 (3 files): Use | to slip instead of .Slip |
||
nine | smls: no, that's no native array (my int @native_array;) | ||
jnthn | smls: No, Array ~~ List | ||
array ain't though | |||
smls | ah, ok | 14:31 | |
[Coke] likes |<c a m e l i a> | |||
examples is again chewing a lot of CPU - one process, 2.5 cpus, 3CPU-hours. | 14:32 | ||
not sure if this is expected or not. | |||
14:33
cognominal left
|
|||
[Coke] nices it. | 14:34 | ||
moritz | [Coke]: it's a "panda install" process | 14:35 | |
it surely shouldn't take that long | |||
moritz kills it | |||
[Coke] | that's 2 days in a row it's gone crazy, I think. | 14:36 | |
dalek | pan style="color: #395be5">perl6-examples: 7e850ef | moritz++ | util/update-and-sync: Set memory and CPU limit in util/update-and-sync this script has been running wild on hack two days in a row, so better stop it from doing that again |
14:39 | |
[Coke] | moritz++ | 14:41 | |
moritz | .tell [ptc] I've set some ulimits in perl6-examples' update-and-sync, and updated the checkout on hack; that was in a detached HEAD previously. If master sounds wrong to you, please use "git reflog" to restore the old state (and fix the issue otherwise) | 14:42 | |
yoleaux | moritz: I'll pass your message to [ptc]. | ||
moritz | ah, I see now it that it operates in detached head state by default; no trouble | 14:43 | |
[Coke] sees a copy of vim taking 75% of cpu sustained on hack. weird. | |||
... 100% | |||
stmuk? | |||
moritz | [Coke]: probably one doing syntax hilighting through Text::VimColor | 14:44 | |
[Coke] | gentle reminder, everyone's automated stuff on hack should probably be nice'd. | ||
moritz | and CPU time limited | ||
14:45
RabidGravy joined
|
|||
timotimo | your syntax highlighter doesn't need to spend more than two days of cpu time per document! | 14:46 | |
dalek | ast/glr: a72e84e | (Stefan Seifert)++ | S09-typed-arrays/native- (2 files): Update test counts after killing .list identity tests |
14:47 | |
14:47
woolfy left
|
|||
jnthn | OK, slides done, I'm going to relax | 14:47 | |
Who knows, maybe I'll be lucky enough to sleep... | 14:48 | ||
o/ | |||
[Coke] | jnthn++ | ||
nine | jnthn: wish you luck :) | ||
jnthn | Thanks :) | ||
timotimo | good luck, jnthn! | ||
dalek | p/js: 3b7c094 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Fix bug |
||
p/js: 5814760 | (Pawel Murias)++ | src/vm/js/nqp-runtime/reprs.js: WIP P6int deserialization |
|||
p/js: b6021ce | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Compile subcapture rxtype |
|||
p/js: 1a24561 | (Pawel Murias)++ | src/vm/js/bin/run_tests: Add passing test 50 |
|||
[Coke] | pmurias++ | ||
nine | pmurias++ indeed :) | 14:49 | |
[Coke] | pmurias: github.com/coke/perl6-roast-data/b...ummary.out shows an npm failure on the last run. haven't bisected to figure out when that started happening. | 14:51 | |
pmurias | checking that... | ||
dalek | osystem: 800afdc | Carlin++ | META.list: add FCGI; FastCGI module using NativeCall |
||
14:52
FatalNIX left
|
|||
pmurias | [Coke]: that sort of error is caused by debian renaming the node.js executable | 14:53 | |
14:54
rurban joined
|
|||
lizmat also calls it a day | 14:55 | ||
good night, #perl6! | |||
pmurias | [Coke]: there seems to be a nodejs-legacy to solve that | ||
nine | lizmat: good night :) | ||
dalek | frastructure-doc: 9521e13 | moritz++ | hosts/hack.p6c.org.pod: Add instructions for running automated jobs |
14:56 | |
moritz | [Coke], [ptc], FROGGS, others: github.com/perl6/infrastructure-do...a49fcd7b4d | 14:57 | |
[Coke] | pmurias: it worked until August 1st. | 14:58 | |
possibly someone mucked with node.js on hack that day. | |||
14:58
luiz_lha left
|
|||
masak | congratulations to everyone for prefix:<|> in GLR \o/ | 14:58 | |
[Coke] | moritz++ thanks. | 14:59 | |
moritz | colomon: you have a smoker job running that's already used up 32 CPU hours. Is that intentional? If not, please CPU-limit your cron jobs (compare github.com/perl6/infrastructure-do...49fcd7b4d) | ||
pmurias | [Coke]: I have no control over that in nqp-js | ||
moritz | [Coke], pmurias: should I install nodejs-legacy on hack? | 15:01 | |
pmurias | moritz: yes | 15:02 | |
assuming when don't do any amature radio on hack | |||
15:03
diana_olhovik left
|
|||
dalek | p/js: 88d6626 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Fix bug |
15:04 | |
p/js: 9d8900e | (Pawel Murias)++ | src/vm/js/bin/run_tests: Run passing test 34 |
|||
lizmat | now that we have | for flattening, I wonder whether we need the one arg rule still # jnthn TimToady | 15:05 | |
colomon | moritz: not intentional, but I thought we set limits on smoke processes last month? looking now | ||
lizmat | m: my @a = (1,2,3); say @a.perl | 15:06 | |
GLRelia | rakudo-moar 0b1722: OUTPUT«[1, 2, 3]» | ||
camelia | rakudo-moar 815fff: OUTPUT«[1, 2, 3]<>» | ||
lizmat | m: my @a = |(1,2,3); say @a.perl # not much worse | ||
GLRelia | rakudo-moar 0b1722: OUTPUT«[1, 2, 3]» | ||
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/I46fPk1bghArg-flattening | is only valid in an argument listat /tmp/I46fPk1bgh:1------> 3my @a = |7⏏5(1,2,3); say @a.perl # not much worse» | ||
lizmat | my @a = |(1,2,3) # feels completely consistent to me | 15:07 | |
[Coke] | moritz: maybe add "nice" to the list ? | 15:08 | |
lizmat | really afk& | ||
[Coke] | lizmat: ~~ | ||
colomon | did hack just go down? I suddenly cannot reach it. :\ | ||
ShimmerFairy | It looks like unnecessary noise to me. prefix:<|> feels more like it's meant for places where single-arg doesn't kick in for you | 15:09 | |
[Coke] | colomon: I'm on hack. | ||
(my irc client is there) | |||
colomon | ssh hack.p6c.org | ||
ssh: connect to host hack.p6c.org port 22: No route to host | |||
[Coke] | still able to open new connections from my local box, also. | 15:10 | |
colomon | and the ssh login I had died. | ||
weird | |||
obviously I’ve still got some sort of connectivity here... | |||
timotimo | did the host key for hack.p6c.org recently change? | ||
[Coke] tries some hot tea with lime instead of lemon. | |||
Hey, I've just been roped into doing a Q&A with TimToady at SPW. Feel free to privmsg or email me questions you'd like to see to see answered. | 15:14 | ||
moritz | timotimo: I hope not :-) | 15:16 | |
timotimo: my client verifies the ECDA host key, and that didn't change | 15:17 | ||
timotimo | ECDSA key fingerprint is SHA256:zcE9BYoYGXmc2tm+g1eB/SYtHpiFcU+7KMBEVgNDY10. | ||
does that seem right? | |||
also, it's surprisingly difficult to verify fingerprints sometimes | 15:18 | ||
i tried to ssh to a friend's computer and we had a really tough time to get the same format of fingerprint shown on both machines | |||
moritz | timotimo: ssh -v says: "debug1: Server host key: ECDSA 99:47:b8:06:bb:ea:5c:35:37:9b:64:d6:e5:2d:9b:da | 15:19 | |
debug1: Host 'hack.p6c.org' is known and matches the ECDSA host key. | |||
" | |||
timotimo | debug1: Server host key: ecdsa-sha2-nistp256 SHA256:zcE9BYoYGXmc2tm+g1eB/SYtHpiFcU+7KMBEVgNDY10 | 15:21 | |
this is what i get instead | |||
see what i mean with regards to fingerprint format? :D | |||
dalek | kudo/glr: 05e46f5 | (Stefan Seifert)++ | src/core/Range.pm: Implement general Range iterator using .pred and .succ Spec says the Range iterator should just the .succ method to get the next element. So that is what we do if we have no specialized iterator. |
||
15:22
khw joined
15:32
Ven left
|
|||
nine | How can I prevent infix:<minmax>(*@args) from flattening its arguments and thus prevent is (1..100000000000000000 minmax 2..999999999999999999).gist, (1..999999999999999999).gist from hanging? | 15:33 | |
JimmyZ | nine: how about **args is rw | 15:34 | |
**@args is rw | |||
nine: irclog.perlgeek.de/perl6/2015-08-13#i_11051703 # if you missed it | 15:36 | ||
nine | JimmyZ: brilliant! Many thanks! | ||
15:42
abuck05 joined
15:43
Loren_ left
15:46
pmurias left
15:47
Ven joined
|
|||
dalek | kudo/glr: b11bd66 | (Stefan Seifert)++ | src/core/Any-iterable-methods.pm: Fix almost endless loop on 1..1000000000000 minmax 2..9999999999999 minmax should not flatten its arguments. Many thanks to JimmyZ++ for pointing out the correct fix. |
15:48 | |
nine | 163 to go | ||
Ven puts down his talk and clones the glr branch | 15:50 | ||
15:51
carlin joined
|
|||
carlin | timotimo: the incantation you want is: ssh -oFingerprintHash=md5 | 15:52 | |
timotimo | thank you! | ||
that's magical! | |||
also, can you consider giving your fcgi module a different name? there's already a fastcgi module and perhaps yours could be FastCGI::NativeCall or FastCGI::C ? | 15:53 | ||
carlin | that sounds reasonable | ||
I called it FCGI because it uses the same C library and a similar interface as Perl 5's FCGI module but I'm not attached to the name at all | 15:54 | ||
15:54
abuck05 left
15:55
telex left
|
|||
JimmyZ | m: (1..100000000000000000 minmax 2..999999999999999999).gist | 15:56 | |
GLRelia | ( no output ) | ||
camelia | ( no output ) | ||
15:56
amurf joined,
telex joined
|
|||
JimmyZ | m: say (1..100000000000000000 min 2..999999999999999999).gist | 15:56 | |
GLRelia | rakudo-moar b11bd6: OUTPUT«1..100000000000000000» | ||
camelia | rakudo-moar 815fff: OUTPUT«1..100000000000000000» | ||
JimmyZ | m: say (1..100000000000000000 max 2..999999999999999999).gist | ||
GLRelia | rakudo-moar b11bd6: OUTPUT«2..999999999999999999» | ||
camelia | rakudo-moar 815fff: OUTPUT«2..999999999999999999» | ||
JimmyZ | m: say (1..100000000000000000 minmax 2..999999999999999999).gist | 15:57 | |
GLRelia | rakudo-moar b11bd6: OUTPUT«1..999999999999999999» | ||
camelia | rakudo-moar 815fff: OUTPUT«1..999999999999999999» | ||
tony-o | it broke | 15:58 | |
nine | did it? | 15:59 | |
15:59
KCL_ joined
16:00
amurf left
|
|||
dalek | kudo/glr: 6d1d307 | (Stefan Seifert)++ | src/core/Range.pm: Fix "Can't elems a lazy list" on (1e0..3e0).elems Lazy in general means that we can't know how many elements it will be. In this case we do. |
16:01 | |
JimmyZ | nine: I think min/max needs 'is rw' too. | 16:02 | |
16:02
raiph joined
|
|||
nine | 162 to go | 16:03 | |
JimmyZ: you're probably right. Do you know some tests that would fix? | 16:05 | ||
raiph | <moritz> sigilless vars ... don't force a container .... <nine> that they don't have a container ... nine: moritz is right you've gone too far (sigilless vars *can* be bound to a container) | ||
m: my \array = @; array[3] = 1; say array | 16:06 | ||
GLRelia | rakudo-moar b11bd6: OUTPUT«(Any) (Any) (Any) 1» | ||
camelia | rakudo-moar 815fff: OUTPUT«(Any) (Any) (Any) 1» | ||
16:06
Ven left
|
|||
raiph | m: my \array =@= [1,2,3,4]; array[3] = 1; say array | 16:07 | |
GLRelia | rakudo-moar 6d1d30: OUTPUT«1 2 3 1» | ||
camelia | rakudo-moar 815fff: OUTPUT«1 2 3 4 (Any) (Any) 1» | ||
JimmyZ | I don't, but it seems that using List always uses a bit less memory when we don't need array. | ||
nine: ^^ | |||
16:08
ab6tract joined
|
|||
raiph | m: my \array =@= 1,2,3,4; array[3] = 1; say array | 16:09 | |
GLRelia | rakudo-moar 6d1d30: OUTPUT«1 2 3 1» | ||
camelia | rakudo-moar 815fff: OUTPUT«1 2 3 1» | ||
JimmyZ | m: (1e0..*).elems | ||
GLRelia | ( no output ) | ||
camelia | ( no output ) | ||
JimmyZ | m:say (1 ..*).elems | ||
m:(1 ..*).elems | 16:10 | ||
moritz | m: say (1..*).elems | 16:11 | |
GLRelia | rakudo-moar 6d1d30: OUTPUT«Inf» | ||
camelia | rakudo-moar 815fff: OUTPUT«Inf» | ||
PerlJam | heh | ||
JimmyZ: "m: " is significant :) | 16:12 | ||
JimmyZ | :) | ||
moritz | yes, the whitespace is necessary, otherwise nqp::op would trigger the "nqp:" target | ||
ab6tract | lizmat: github.com/perl6/roast/commit/ca092df7f9 <---- that explicit itemization makes me sad | 16:13 | |
PerlJam | wait ... that's needed for glr? | 16:14 | |
ab6tract | is that going to be permanent going forward? | 16:15 | |
PerlJam: I hope not :( | |||
16:15
domidumont left,
laben joined
|
|||
laben | hello p6'ers | 16:16 | |
ab6tract | but probably so.. Array will flatten if it is a single arg? | ||
timotimo | huh! | ||
m: say ("circle" => ["a" => 1, "b" => 2, "c" => 3]).perl | |||
GLRelia | rakudo-moar 6d1d30: OUTPUT«:circle($[:a(1), :b(2), :c(3)])» | ||
camelia | rakudo-moar 815fff: OUTPUT«:circle([:a(1), :b(2), :c(3)])» | ||
timotimo | seems like it already gets itemized there | ||
PerlJam | that's what I thought | ||
ab6tract exhales deeply | 16:18 | ||
timotimo++ # a better approach to the question than holding one's breath | |||
laben | nine++ still glr-ing out there? | 16:20 | |
hoelzro | in post-GLR, does my @a := $[1, 2, 3] make sense? does it result in @a having 1, 2, and 3 as its elements? | ||
laben | m: dd $[1, 2, 3] | 16:21 | |
GLRelia | rakudo-moar 6d1d30: OUTPUT«$[1, 2, 3]» | ||
camelia | rakudo-moar 815fff: OUTPUT«(Any, Any, Any)» | ||
laben | m: my @a = $[1, 2, 3]; dd @a | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«@a = [$[1, 2, 3]]» | ||
camelia | rakudo-moar 815fff: OUTPUT«@a = [Any, Any, Any]<>» | ||
nine | ab6tract: especially since [] itemizes its items. So I really don't see how the $[] should be necessary | ||
laben | m: my @a := $[1, 2, 3]; dd @a | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«[1, 2, 3]» | ||
camelia | rakudo-moar 815fff: OUTPUT«(Any, Any, Any)» | ||
nine | laben: well I should shift my focus on making dinner now, before the shops close :) | 16:22 | |
ab6tract | m: my @a := [1,2,3]; dd @a | ||
camelia | rakudo-moar 815fff: OUTPUT«[1, 2, 3]<>» | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«[1, 2, 3]» | ||
laben | m: my @a = [1, 2, 3]; dd @a | ||
camelia | rakudo-moar 815fff: OUTPUT«@a = [[1, 2, 3]]<>» | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«@a = [1, 2, 3]» | ||
ab6tract | nine: thank you for confirming that. I was close to losing faith there for a second | ||
ab6tract spins up a blank presentation template. time to prepare for SPW and YAPC::EU! | 16:23 | ||
nine | Oh yes, that's still a big TODO for this weekend :( | ||
hoelzro | I'm just wondering with my @a := $[1, 2, 3]; my @b = @a, 4, 5; if @a would flatten in @b's initialization | 16:24 | |
nine | it shouldn't | ||
m: my @a := $[1, 2, 3]; my @b = @a, 4, 5; say @b.perl; | 16:25 | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«[$[1, 2, 3], 4, 5]» | ||
camelia | rakudo-moar 815fff: OUTPUT«[Any, Any, Any, 4, 5]<>» | ||
nine | m: my @a := $[1, 2, 3]; my @b = |@a, 4, 5; say @b.perl; | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«[1, 2, 3, 4, 5]» | ||
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/80T__LT92VArg-flattening | is only valid in an argument listat /tmp/80T__LT92V:1------> 3my @a := $[1, 2, 3]; my @b = |7⏏5@a, 4, 5; say @b.perl;» | ||
nine | Explicit flattening FTW | ||
hoelzro | so the "flattening-ness" of $[...] is attached the object? it's not just sugar for [...].item? | ||
PerlJam | glr++ | ||
timotimo | what's wrong with rakudo/nom in there? | ||
why do things turn into Any there? | |||
nine | m: my @a := [1, 2, 3]; my @b = @a, 4, 5; say @b.perl; | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«[$[1, 2, 3], 4, 5]» | ||
camelia | rakudo-moar 815fff: OUTPUT«[1, 2, 3, 4, 5]<>» | ||
nine | m: my @a = [1, 2, 3]; my @b = @a, 4, 5; say @b.perl; | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«[$[1, 2, 3], 4, 5]» | ||
camelia | rakudo-moar 815fff: OUTPUT«[[1, 2, 3], 4, 5]<>» | ||
nine | all the same | ||
timotimo: I have no idea...and I don't particularly care ;) I'm really just focusing on GLR | 16:26 | ||
laben | File::Find problem is golfed down to this thing m: my @a = 1..3; my @b = 2..4; say @a >>~~<< @b>>.pred | 16:27 | |
m: my @a = 1..3; my @b = 2..4; say @a >>~~<< @b>>.pred | |||
GLRelia | rakudo-moar 6d1d30: OUTPUT«True True True» | ||
camelia | rakudo-moar 815fff: OUTPUT«True True True» | ||
laben | m: my @a = 1..3; my @b = 2..4; say @a >>~~<< @b.map(*.pred) | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«This Seq has already been iterated, and its values consumed in block <unit> at /tmp/tf1eS5jF_8:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«True True True» | ||
laben | nine: is this expected? | ||
ab6tract | m: my @a = 1..3; my @b = 2..4; say @a >>~~<< @b.list.map(*.pred) | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«This Seq has already been iterated, and its values consumed in block <unit> at /tmp/KElQqvaDeP:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«True True True» | ||
ab6tract | laben: that's an interesting corner case indeed | 16:28 | |
nine | laben: I'm inclined to say yes. That would be one of those cases where you have to store the list yourself. | ||
laben | but @b is an Array, why would i expect it to become a Seq after .map? | 16:29 | |
ab6tract | m: my @a = 1..3; my @b = (2..4)>>.pred; say @a >>~~<< @b | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«True True True» | ||
camelia | rakudo-moar 815fff: OUTPUT«True True True» | ||
nine | laben: in other words: being explicit about wanting that list to be stored. A big reason for the GLR was that we stored always, even when in most cases we never reused the produced values. This cost a lot of performance. | ||
tony-o | m: say 'hello'.split('').perl | ||
camelia | rakudo-moar 815fff: OUTPUT«("", "h", "e", "l", "l", "o", "")» | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«("", "h", "e", "l", "l", "o", "").iterator» | ||
hoelzro | in github.com/perl6/roast/commit/ca09...c4ea2424f, is the new $ prefix on the circle value necessary? | 16:30 | |
tony-o | should there be empty '' in there?.. | ||
hoelzro | sorry for the all the questions, I'm just trying to familiarize myself with the GLR | ||
on the off chance I have time to work on it this weekend, but also for the WS next week | |||
nine | m: my @a = 1..3; my @b = (2..4)>>.pred; say @a >>~~<< @b.map(*.pred).List | ||
camelia | rakudo-moar 815fff: OUTPUT«False False False» | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«False False False» | ||
laben | nine: why doesn't >> create a Seq too, then? | 16:31 | |
PerlJam | tony-o: yes. hold on a sec, let me find where TimToady said as much. | ||
timotimo | hyperops are eagerer than eager | ||
people - including me - seem to forget this quite often :) | |||
laben | m: my @a = 1..3; my @b = 2..4; say @a >>~~<< @b.map(*.pred).List | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«True True True» | ||
camelia | rakudo-moar 815fff: OUTPUT«True True True» | ||
timotimo | hm, though a bunch of hyperops chained don't really need to store stuff on every step of the way | 16:33 | |
nine | I'd say it's mostly a matter of finding the time to refactor them. | ||
First priority for me is to get stuff working | |||
laben | i understand eager and lazy, but the problem here is that somehow the Seq is iterated multiple times even though i would expect only once... | ||
PerlJam | tony-o: RT#112868 | 16:34 | |
rt.perl.org/Ticket/Display.html?id=112868 | |||
nine | laben: feel free to investigate further :) There could still be a bug or five somewhere in there. | ||
PerlJam plays the part of the bot for a second | |||
tony-o | PerlJam thank you | 16:35 | |
nine | laben: 10 days ago I knew pretty much nothing about the GLR or hyper operators (just learned about the >> << thing two days ago) or much else. So I would be very surprised if everything I did in the mean time was even vaguely correct. | 16:36 | |
16:36
carlin left
|
|||
laben | nine: a hint to know where to look for >>~~<< op? | 16:36 | |
16:37
synbot6 joined
|
|||
nine | laben: src/core/metaops.pm line 384 | 16:38 | |
ab6tract | m: (1,*,2).WHAT.perl.say | ||
camelia | rakudo-moar 815fff: OUTPUT«Parcel» | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«List» | ||
16:40
lucasb joined
|
|||
ab6tract | hoelzro: that same thing just about gave me a heart attack! but no, the explicit itemization should not be necessary. not sure what lizmat ran into that led her to add it | 16:40 | |
m: say ('circle' => [<k v r>]).perl | 16:41 | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«:circle($["k", "v", "r"])» | ||
camelia | rakudo-moar 815fff: OUTPUT«:circle(["k", "v", "r"])» | ||
PerlJam | laben: When you List-ify the Seq, you can iterate any number of times. | ||
ab6tract: probably the first attempt to fix was to add explicit itemization, and then when that didn't work, she added the .Slip and since that *did* work ... commit! | 16:42 | ||
ab6tract | laben: afaict it's that the hyper is trying to consume the map'd Seq, which explodes | ||
m: my @a = 1..3; my @b = 2..4; say @a >>~~<< @b.map(*.pred).list | |||
GLRelia | rakudo-moar 6d1d30: OUTPUT«True True True» | ||
camelia | rakudo-moar 815fff: OUTPUT«True True True» | ||
ab6tract | (I tried something similar earlier, but put the list-ify in the wrong place) | 16:43 | |
nine | m: my @a = 1..3; my @b = (2..4)>>.pred; say (@a >>~~<< @b).map(*.pred) | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«False False False» | ||
camelia | rakudo-moar 815fff: OUTPUT«False False False» | ||
nine | m: my @a = 1..3; my @b = (2..4)>>.pred; say @a >>~~<< (@b.map(*.pred)) | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«This Seq has already been iterated, and its values consumed in block <unit> at /tmp/43KpsbDp8d:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«False False False» | ||
FROGGS | o/ | ||
ab6tract | m: my @a = 1..3; my @b = (2..4)>>.pred; say @a >>~~<< (my @c = @b.map(*.pred)) | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«False False False» | ||
camelia | rakudo-moar 815fff: OUTPUT«False False False» | ||
ab6tract | :) | ||
m: my @a = 1..3; my @b = (2..4)>>.pred; say @a >>~~<< my @c = @b.map(*.pred) | 16:44 | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«False False False» | ||
camelia | rakudo-moar 815fff: OUTPUT«False False False» | ||
ab6tract | (overly cautious parens) | ||
though stylistically I would include them for clarity's sake | 16:46 | ||
lucasb | i'm newbie in IRC, so do you know if there is a way to put both GLRelia and camelia in the same /query window? | 16:48 | |
16:49
rurban left,
zakharyas left
|
|||
PerlJam | lucasb: I think you can do "/msg nick1,nick2 foo", but it's not something I've ever done. | 16:51 | |
dalek | ast/glr: 3ee1cd0 | PerlJam++ | integration/advent2012-day20.t: Remove unneeded explicit itemization |
16:54 | |
hoelzro | ab6tract: alright, thanks for confirming! | ||
nine++ and PerlJam++ are just killing it lately on the GLR stuff | 16:55 | ||
(jnthn++ too!) | |||
PerlJam | hoelzro: I just want to know who's going to pull the trigger on merging GLR into nom (and master for roast). | 16:56 | |
[Coke] | FFFFFFFFFFFFFFUUUUUUUUUU | ||
PerlJam | (might also be a good time to rename nom to master if that's in the cards) | ||
[Coke] has to rerun the daily run today because he's an idiot. | 16:57 | ||
ab6tract | PerlJam: I don't think there will be a merge, but rather s/glr/master | ||
that's as I understood it | |||
ShimmerFairy | ab6tract: that was just a jocular suggestion once, that's not likely to happen | ||
PerlJam | ab6tract: oh. whichever ... I'm waiting on the release until it happens. And if its put off until Sunday, someone else may have to do the release. | 16:58 | |
ab6tract | ShimmerFairy: no, afaik TimToady and jnthn both want 'glr' to become 'master' | ||
ShimmerFairy | I was there when jnthn made the suggestion in jest, and I don't recall TimToady saying anything. | 16:59 | |
16:59
mjgardner joined
|
|||
PerlJam | ShimmerFairy: how do you know it was in jest? ;) | 16:59 | |
ab6tract | ShimmerFairy: I was there too, and remember it differently :) | ||
ShimmerFairy | PerlJam: because I was pointing out how having a years-old "_new_ object model" branch was kinda silly :P | ||
ab6tract | but not enough time to dig through the backlog | ||
it has been mentioned more than once, to be sure | 17:00 | ||
dalek | rl6-roast-data: e094bf2 | coke++ | perl6_pass_rates.csv: Remove run from yesterday with bad nqp req. Did another run after that. |
||
ShimmerFairy | there were later clarifications that it was unlikely, as well | ||
ab6tract | does anyone have exciting examples of Whatever (but not WhateverCode) outside of Range? | ||
PerlJam | ShimmerFairy: everyone I know in Baton Rouge Louisian calls the I-10 bridge over the Mississippi River the "new bridge". that bridge has got to be 50+ years old. :) | ||
ab6tract | ShimmerFairy: okay, maybe I missed those | ||
RabidGravy | are the details important? except by way of someone knowing from what to make a release? | 17:01 | |
ShimmerFairy | PerlJam: yeah, I still remember TimToady's(?) example from Oxford :) | ||
smls | ab6tract: array slicing | ||
PerlJam | exactly :) | ||
ab6tract | smls: thanks | ||
[Coke] | I would recommend combinging "merging glr to mainline" with "making master mainline" | 17:02 | |
ShimmerFairy | RabidGravy: as long as the divergent work between nom and glr come together in the end, not really :) | ||
[Coke] | ugh. | ||
I would recommend NOT combinging "merging glr to mainline" with "making master mainline" | |||
*combining | |||
because we still don't have a clear picture of the git repo layout post christmas. | |||
smls | ab6tract: also, list repetition ($foo xx *) | 17:03 | |
[Coke] kicks off YA daily run, arglebargles. | |||
tony-o | is there a way to anonymous sub a >> | 17:04 | |
m: 'hello'.index('e')>>.&(sub ($pos) { $pos.say; }); | |||
GLRelia | rakudo-moar 6d1d30: OUTPUT«1» | ||
camelia | rakudo-moar 815fff: OUTPUT«1» | ||
tony-o | guess so | ||
full blown perl6 | 17:05 | ||
ab6tract | smls: any thoughts on when such a list repetition would be useful? ;) | 17:06 | |
PerlJam | tony-o: it's weird that you used >> on index instead of indices :) | ||
ab6tract: it's used in the implementation of .rotor() | 17:07 | ||
lucasb | PerlJam: thanks. /msg works but not the exact way I wanted | ||
17:08
espadrine left
|
|||
PerlJam | :q | 17:08 | |
oops | |||
smls | m: my @rnd := rand xx *; say @rnd[0..5]; # ab6tract | ||
camelia | rakudo-moar 815fff: OUTPUT«0.562594830679797 0.589118153674792 0.210635966825477 0.678320062315838 0.931913591991977 0.340109058192961» | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«Type check failed in binding; expected 'Positional' but got 'Seq' in block <unit> at /tmp/Pd5KeKJjhU:1» | ||
17:09
rurban joined
|
|||
ab6tract | smls, PerlJam: thanks! | 17:09 | |
m: my @a = [[50..55],[1..5]],[[60..66],[1..6]],[[70..77],[1..7]]; dd @a[*][0] | |||
camelia | rakudo-moar 815fff: OUTPUT«@a = [[50, 51, 52, 53, 54, 55], [1, 2, 3, 4, 5]]» | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«@a = $[$[50, 51, 52, 53, 54, 55], $[1, 2, 3, 4, 5]]» | ||
tony-o | PerlJam: always curious of different ways to do some of this stuff..i kind of like that more than the if $str.index -> $pos { } syntax | 17:10 | |
dalek | kudo/glr: 1fdc7a8 | (Jimmy Zhuo)++ | src/core/Any-iterable-methods.pm: Added sub min/max args with 'is rw' We don't need Array here, List is enough, which is the same as sub minmax() |
17:11 | |
kudo/glr: 5873e1a | niner++ | src/core/Any-iterable-methods.pm: Merge pull request #507 from zhuomingliang/patch-5 Added sub min/max args with 'is rw' |
|||
ab6tract | m: my @a = [50..55],[60..66],[70..77]; dd @a[*][1] # I would have expected 51,61,71 .... | 17:12 | |
GLRelia | rakudo-moar 6d1d30: OUTPUT«@a = $[60, 61, 62, 63, 64, 65, 66]» | ||
camelia | rakudo-moar 815fff: OUTPUT«@a = [60, 61, 62, 63, 64, 65, 66]» | ||
tony-o | m: 'hello'.index('e')>>.&({ .say; }); | 17:13 | |
GLRelia | rakudo-moar 6d1d30: OUTPUT«1» | ||
camelia | rakudo-moar 815fff: OUTPUT«1» | ||
smls | m: my @a = [50..55],[60..66],[70..77]; dd @a[*]»[1] # ab6tract | 17:14 | |
camelia | rakudo-moar 815fff: OUTPUT«(51, 61, 71)» | ||
GLRelia | rakudo-moar 6d1d30: OUTPUT«(51, 61, 71)» | ||
smls | m: my @a = [50..55],[60..66],[70..77]; dd @a[*;1] # ab6tract | 17:15 | |
GLRelia | rakudo-moar 6d1d30: OUTPUT«Method 'lol' not found for invocant of class 'List' in block <unit> at /tmp/IHxwjGJyoN:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«(51, 61, 71)» | ||
PerlJam | tony-o: just don't rely on side-effects if you really need to use >> like that. | ||
tony-o: for instance ... | |||
m: 'hello cruel world'.indices('l')>>.&({ .say }); | |||
GLRelia | rakudo-moar 6d1d30: OUTPUT«153102» | ||
camelia | rakudo-moar 815fff: OUTPUT«153102» | ||
timotimo | really, you want to use the multi-dimensional slice syntax for that, as smls has shown | ||
ab6tract | ahh....! [][] is not equivalent to [;] | ||
timotimo | very muhc not | ||
much not* | |||
tony-o | PerlJam++ | 17:16 | |
17:16
LitterallyTriggr joined
|
|||
LitterallyTriggr | Hi | 17:17 | |
has the perl6 performance been fixed for debian | |||
and other linux distros | |||
PerlJam | lucasb: define "fixed" :) | ||
ab6tract | so in my earlier broken example, the first [*] is just ignored, and it takes the [1] of the array | ||
PerlJam | er, LitterallyTriggr | ||
ab6tract | which explains why I could add as many of them as I wanted and nothing would change :) | ||
tony-o | m: my $str = 'hello literally'; $str.index('l')>>.&({ .say; $str.index('l', $_+1)>>.&?BLOCK; }); | ||
GLRelia | rakudo-moar 5873e1: OUTPUT«2361213The 'gimme' method was an internal method used by rakudo before the GreatList Refactor. The fact that you are seeing this message, means that youhave code that was using that unsupported rakudo internal API.Please refa…» | ||
camelia | rakudo-moar 815fff: OUTPUT«2361213» | ||
LitterallyTriggr | Slow compiling and execution times | ||
tony-o | PerlJam: i know there is indices :-), just interesting | 17:18 | |
raiph | LitterallyTriggr: what's your perl6 -v ? | ||
LitterallyTriggr | tony-o: BLOCK literal | ||
tony-o | LitterallyTriggr: huh? | ||
LitterallyTriggr | This is perl6 version 2014.07 built on parrot 6.6.0 revision 0 | ||
PerlJam | LitterallyTriggr: I understand the problem, I don't know what you mean by "fixed". The compilation and execution times are getting better. They are adequate for most of my purposes | ||
LitterallyTriggr: yikes! | |||
LitterallyTriggr | they're horrendous. | ||
tony-o | you might want to build p6 with rakudobrew LitterallyTriggr | 17:19 | |
LitterallyTriggr | Let me guess. I'm severely out of date? | ||
ab6tract | LitterallyTriggr: indeed. Parrot was deprecated earlier this year, and has not been a preferred vm fro much longer than that | ||
tony-o | by over a year now LitterallyTriggr | ||
LitterallyTriggr: github.com/tadzik/rakudobrew | |||
LitterallyTriggr | I might hold out for now | 17:20 | |
Wait for perl6 to get more adoption | 17:21 | ||
tony-o | you can parse json with perl6 already, what more adoption do you need, really? | ||
PerlJam | LitterallyTriggr: it's fun to play with in the mean time :) | ||
LitterallyTriggr | tony-o: I rather use Javascript with Node.js | ||
raiph | LitterallyTriggr: a current rakudo will be a fundamentally different experience | ||
PerlJam | LitterallyTriggr: Do you use Perl 5 or Python? | ||
LitterallyTriggr | both | 17:22 | |
I prefer Java to them all. | |||
tony-o | sadist | ||
PerlJam | LitterallyTriggr: You can use Perl 5 and/or Python from within Perl 6 with the Inline::Perl5 and Inline::Python modules. Quite handy that. | ||
LitterallyTriggr | p6: def hi(){say("hi");} my $v = &hi; $v(); | ||
GLRelia | rakudo-moar 5873e1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileStrange text after block (missing semicolon or comma?)at /tmp/tmpfile:1------> 3def hi(){say("hi");}7⏏5 my $v = &hi; $v(); expecting any of: infix infix stopper…» | ||
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileStrange text after block (missing semicolon or comma?)at /tmp/tmpfile:1------> 3def hi(){say("hi");}7⏏5 my $v = &hi; $v(); expecting any of: infix infix stopper…» | ||
ab6tract | m: sub hi(){say("hi");} my $v = &hi; $v() | 17:23 | |
GLRelia | rakudo-moar 5873e1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/z3e1XuoynnStrange text after block (missing semicolon or comma?)at /tmp/z3e1Xuoynn:1------> 3sub hi(){say("hi");}7⏏5 my $v = &hi; $v() expecting any of: infix infix stop…» | ||
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/h90S6Et_oPStrange text after block (missing semicolon or comma?)at /tmp/h90S6Et_oP:1------> 3sub hi(){say("hi");}7⏏5 my $v = &hi; $v() expecting any of: infix infix stop…» | ||
raiph | LitterallyTriggr: if your interest is as a user, not contributor, waiting makes sense too because it continually improves | ||
LitterallyTriggr | ^ | ||
tony-o | and the syntax changes week to week | ||
LitterallyTriggr | What's wrong with my syntax | ||
p6: def hi(){say("hi");} my $v = &hi(); $v(); | 17:24 | ||
GLRelia | rakudo-moar 5873e1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileStrange text after block (missing semicolon or comma?)at /tmp/tmpfile:1------> 3def hi(){say("hi");}7⏏5 my $v = &hi(); $v(); expecting any of: infix infix stopper…» | ||
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileStrange text after block (missing semicolon or comma?)at /tmp/tmpfile:1------> 3def hi(){say("hi");}7⏏5 my $v = &hi(); $v(); expecting any of: infix infix stopper…» | ||
lucasb | "def"? So you *do* like Python :) | ||
tony-o | need a ; after the block end for the one liners LitterallyTriggr | ||
17:24
rurban_ left
|
|||
LitterallyTriggr | p6: def hi(){say("hi");}; my $v = &hi; $v(); | 17:24 | |
GLRelia | rakudo-moar 5873e1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileUndeclared routines: &hi used at line 1 def used at line 1 hi used at line 1» | ||
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfileUndeclared routines: &hi used at line 1 def used at line 1 hi used at line 1» | ||
tony-o | m: sub hi { 'hi'.say; }; my $v = &hi; $v(); | ||
camelia | rakudo-moar 815fff: OUTPUT«hi» | ||
GLRelia | rakudo-moar 5873e1: OUTPUT«hi» | ||
LitterallyTriggr | That is what I do like about Perl6 | ||
Assigning functions to variables | 17:25 | ||
PerlJam | .oO( which you can do in loads of other languages too) |
||
17:25
llfourn left
|
|||
LitterallyTriggr | I can dynamically reassign a variable to a new function on the fly to make a more cryptic program that is harder to understand | 17:25 | |
PerlJam: Java? | |||
;) | |||
(No reflectionP) | |||
17:25
xinming left
|
|||
PerlJam | and you *like* Java? | 17:25 | |
raiph | LiterallyTriggr: if you get an error message, the ⏏ tries to point to the exact location | ||
[Coke] | j: say "hi" # from rakudo running on the JVM. | 17:26 | |
GLRelia | rakudo-jvm 5873e1: OUTPUT«Can't open perl script "/home/steve/rakudo-inst/bin/eval-client.pl": No such file or directory» | ||
camelia | rakudo-jvm 815fff: OUTPUT«hi» | ||
[Coke] | GLRelia, maybe you could ignore things you can't run. :P | ||
LitterallyTriggr | Java is a nice language. | ||
tony-o | lol | ||
LitterallyTriggr | Reflection is a bit confusing but I'm learning it. | ||
p6: sub hi(){say("hi");}; my $v = &hi; $v(); sub bye(){say("bye");}; $v = &bye; $v(); | 17:27 | ||
GLRelia | rakudo-moar 5873e1: OUTPUT«hibye» | ||
camelia | rakudo-moar 815fff: OUTPUT«hibye» | ||
LitterallyTriggr | Perl6 can finally be used to write an emulator. | ||
No more switch cases. Use a noun with an array instead. | |||
17:27
xinming joined
|
|||
PerlJam | "finally"? You're not even hitting a feature that's changed much since close to the first functional implementations. | 17:28 | |
LitterallyTriggr | Perl6 performance pickups are great enough to do it. | ||
Perl5 wasn't fast enough. | |||
It's simply a change from a custom interpreter to using the JVM / a propper VM | 17:29 | ||
You could write one in BrainFuck but it would have massive timing issues | |||
Does Perl6 have OpenGL bindings yet? | 17:30 | ||
I know ACME is being ported over. | |||
Found it: POGL | 17:31 | ||
lucasb | Wouldn't it look better if "*@a" were non-flattening and "**@a" were flattening? That would give the impression that "**" is "one step further". What do you think? | ||
ab6tract | lucasb: is it currently the other way around? | 17:32 | |
lucasb | ab6tract: just a second, let me double check :) | ||
17:33
xinming left
|
|||
smls | lucas: I guess it's a matter of making the more common one shorter | 17:33 | |
LitterallyTriggr | I'm going to ask the stupid question of the year. Can Perl6 generate custom packets / packet payloads and send them over standard sockets? | ||
IE things like generating SYN, ACK, ARP | |||
17:34
xinming joined
|
|||
LitterallyTriggr | Specifically without external libraries | 17:34 | |
lucasb | ab6tract: yes, it is the other way around | ||
17:34
Ven joined
|
|||
RabidGravy | LitterallyTriggr, no not at the present | 17:35 | |
LitterallyTriggr | RabidGravy: is there plans to support that? | ||
It would open Perl6 up to SDN uses | |||
RabidGravy | to be honest unlikey because it is something that would have to be provided by a VM and some of the targetted VMs will never support that | 17:36 | |
making a library to do it wouldn't be too hard though | |||
LitterallyTriggr | At that point you might aswell drop Perl6 then | ||
RabidGravy | fair enough | 17:37 | |
raiph | m: say -> *@a {@a.perl}(1,[2,3,[4,5]]); say -> **@a {@a.perl}(1,[2,3,[4,5]]); | ||
GLRelia | rakudo-moar 5873e1: OUTPUT«[1, 2, 3, $[4, 5]][1, $[2, 3, $[4, 5]]]» | ||
camelia | rakudo-moar 815fff: OUTPUT«[1, [2, 3, [4, 5]]]<>(1; 2, 3, [4, 5])» | ||
LitterallyTriggr | I do admit I am liking how Perl6 is turning out | 17:38 | |
ab6tract notes the absence of []<> syntax in GLR and rejoices | |||
17:39
domidumont joined
|
|||
ab6tract | m: my $b = EVAL (* xx 9) # damn, the evil can only go so far... but, a good example of how WhateverCode's are compiler transforms | 17:40 | |
GLRelia | rakudo-moar 5873e1: OUTPUT«5===SORRY!5=== Error while compiling EVAL_0Two terms in a rowat EVAL_0:1------> 3Whatever<140087682768992>7⏏5 Whatever<140087682768992> Whatever<1400 expecting any of: infix infix stopper statement end…» | ||
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling EVAL_0Two terms in a rowat EVAL_0:1------> 3Whatever<140103699014488>7⏏5 Whatever<140103699014488> Whatever<1401 expecting any of: infix infix stopper statement end…» | ||
ab6tract | wait, forgot the question mark at the end of that statement | 17:41 | |
LitterallyTriggr | loil | ||
FROGGS | huh | 17:43 | |
a Seq with zero elems is Trueish? | |||
m: say so Seq.new | 17:44 | ||
GLRelia | rakudo-moar 5873e1: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in block <unit> at /tmp/VF0BWq1jRV:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5=== Error while compiling /tmp/OH_gQnZcqgUndeclared name: Seq used at line 1. Did you mean 'Set'?» | ||
17:45
LitterallyTriggr left,
amurf joined
|
|||
ab6tract | m: my $b = * * * * *; say $b( 3 xx 3 ) | 17:45 | |
GLRelia | rakudo-moar 5873e1: OUTPUT«Too few positionals passed; expected 3 arguments but got 1 in block <unit> at /tmp/v8l0T3JBJJ:1» | ||
camelia | rakudo-moar 815fff: OUTPUT«Too few positionals passed; expected 3 arguments but got 1 in block <unit> at /tmp/tpokhQbDpu:1» | ||
ab6tract | so it still needs a | in GLR | 17:46 | |
FROGGS | nine / jnthn: Seq is missing a .Bool, right? | 17:48 | |
17:50
amurf left
|
|||
FROGGS | nine / jnthn: either that or grep shouldn't return a Seq... | 17:52 | |
m: say so (^42).List | 17:53 | ||
GLRelia | rakudo-moar 5873e1: OUTPUT«1» | ||
camelia | rakudo-moar 815fff: OUTPUT«True» | ||
moritz | huh, &so should never return 1 | ||
FROGGS: would need to be self.list.Bool | |||
FROGGS | moritz: I can fix the List.Bool easily... | 17:54 | |
moritz: the other comment was about Seq.Bool? | |||
moritz | FROGGS: Seq.Bool would need to return self.list.Bool | 17:55 | |
FROGGS | mkay | ||
testing this now | |||
ab6tract | moritz: ooc, why .list and not .List ? | ||
I'm not sure what the distinction between coercer and constructor are in this context | 17:56 | ||
s/are/si | |||
ab6tract wonders why he even bothers .. ;) | |||
moritz | ab6tract: .list is cached | 17:57 | |
hoelzro | this ticket (rt.perl.org/Ticket/Display.html?id=63350) no longer applies for GLR, right? | ||
ab6tract | ah. cached on the Seq object? | ||
moritz | ab6tract: yes | ||
17:57
jack_rabbit_ joined
|
|||
hoelzro | .say for (1, 2, 3).item should now print 3 lines? | 17:57 | |
17:57
jack_rabbit_ left
|
|||
smls | I the language of the design docs, .list is neither a coercer nor a composer, but a "contextualizer". | 17:58 | |
17:58
muraiki left,
Ven left
|
|||
ab6tract | smls: intriguing | 17:58 | |
smls | m: say [1, 2, 3].list.WHAT | 17:59 | |
GLRelia | rakudo-moar 5873e1: OUTPUT«(Array)» | ||
camelia | rakudo-moar 815fff: OUTPUT«(Array)» | ||
smls | probably because of that ^^ | ||
m: my @a = 1, 2, 3; @a.list»++; say @a | 18:00 | ||
GLRelia | rakudo-moar 5873e1: OUTPUT«2 3 4» | ||
camelia | rakudo-moar 815fff: OUTPUT«2 3 4» | ||
smls | i.e. it may return the object itself, if it is already sufficiently list'y | ||
"Note that, since these are coercions to roles, they are allowed to return any actual type that does the role in question." -- design.perl6.org/S03#line_2476 | 18:02 | ||
ab6tract | yowch! I had no idea the hotel options in Olten were so darn expensive :( | ||
hopefully that won't affect my expensing of said hotel! | 18:05 | ||
btw, where are the cool kids staying in Granada? | 18:09 | ||
18:11
ChoHag joined
18:16
rangerprice joined
|
|||
ab6tract | m: my $b = * + *; say $b; # I could have sworn that recently I was seeing the actual transformed block via .gist | 18:19 | |
GLRelia | rakudo-moar 5873e1: OUTPUT«WhateverCode.new» | ||
camelia | rakudo-moar 815fff: OUTPUT«WhateverCode.new» | ||
ChoHag | Does a subclass have direct access to its parent's attributes? | ||
moritz | no | ||
otherwise subclass would break encapsulation | |||
*subclassing | |||
ab6tract | is there a mechanism for getting the actual block? | 18:20 | |
moritz | m: say { $^a + $^b }.perl | ||
GLRelia | rakudo-moar 5873e1: OUTPUT«-> $a, $b { #`(Block|60784936) ... }» | ||
camelia | rakudo-moar 815fff: OUTPUT«-> $a, $b { #`(Block|58246464) ... }» | ||
moritz | m: say { $^a + $^b }.gist | ||
GLRelia | rakudo-moar 5873e1: OUTPUT«-> $a, $b { #`(Block|47227176) ... }» | ||
camelia | rakudo-moar 815fff: OUTPUT«-> $a, $b { #`(Block|48548768) ... }» | ||
moritz | ab6tract: I think that only works for regexes | ||
18:21
xinming left
|
|||
ab6tract | moritz: okay, that must be what I was thinking of... so no means for getting the transformed block back from a whatevercode currently | 18:21 | |
(and you are totally right! I wasn't expecting the actual code in the block, but rather the signature plus the #`(Block|stuff) | 18:22 | ||
18:23
xinming joined
|
|||
ab6tract | thanks for helping moritz :) | 18:23 | |
ChoHag | Do you need a method to do so if the parent trusts the subclass, or does trust give access to the attributes? | 18:24 | |
rangerprice | Hi | ||
How about low level and system programming in perl ? | 18:25 | ||
18:27
ab6tract left
|
|||
masak | rangerprice: I don't see why not. | 18:29 | |
rangerprice | Hi masak, how are you ? :) | 18:30 | |
18:32
brrt joined
|
|||
laben | .tell nine is it intented for .elems to consume a Seq? if it is, the code in src/core/metaops.pm line 388-389 will need to change. i dont think it's right for hypers to consume Seq multiple times | 18:36 | |
yoleaux | laben: I'll pass your message to nine. | ||
18:41
nowan left
|
|||
dalek | kudo/glr: 6f9ce0b | FROGGS++ | src/core/List.pm: make List.Bool return a boolean, not a number |
18:43 | |
kudo/glr: d6049e4 | FROGGS++ | src/core/Seq.pm: add Seq.Bool, so we can boolify the result of e.g. grep moritz++ |
18:44 | ||
18:46
nowan joined
18:48
zakharyas joined
18:58
cognominal joined
|
|||
FROGGS | we are down to 155 failing test files now | 19:00 | |
brrt | \o/ | ||
[Coke] | jeez, I'm still trying to get one daily run collected. :) | 19:02 | |
raiph | ChoHag: afaict trust is only for providing access to private methods, not attributes; so you can set up a private accessor and share that only with trusted classes | 19:04 | |
nine | FROGGS++ # epic! | 19:07 | |
yoleaux | 18:36Z <laben> nine: is it intented for .elems to consume a Seq? if it is, the code in src/core/metaops.pm line 388-389 will need to change. i dont think it's right for hypers to consume Seq multiple times | ||
19:09
pullphinger15 joined
19:11
brrt left
19:13
pullphinger15 left
|
|||
nine | laben: indeed. I think the whole sub could use a rework to make better use of the iterators | 19:17 | |
Seq.Bool could be optimized as well, since we should only need to pull-one to know the result. No changes after that. | 19:18 | ||
19:18
dwarring joined,
pullphinger joined,
pullphinger left
19:19
pullphinger joined,
pullphinger left
|
|||
nine | Ok, back to my girlfriend on the terrace now ;) | 19:19 | |
FROGGS | m: my $foo = "FOO"; my $bar = "BAR"; my $gorch = "foo bar"; say «$foo $gorch $bar» | 19:20 | |
GLRelia | rakudo-moar d6049e: OUTPUT«FOOfoobarBAR» | ||
camelia | rakudo-moar 815fff: OUTPUT«FOOfoo barBAR» | ||
FROGGS | m: my $foo = "FOO"; my $bar = "BAR"; my $gorch = "foo bar"; say «$foo $gorch $bar».perl | ||
GLRelia | rakudo-moar d6049e: OUTPUT«("FOO", ("foo", "bar"), "BAR")» | ||
camelia | rakudo-moar 815fff: OUTPUT«("FOO", ("foo", "bar"), "BAR")» | ||
FROGGS | m: my $foo = "FOO"; my $bar = "BAR"; my $gorch = "foo bar"; say «$foo $gorch $bar».elems | ||
camelia | rakudo-moar 815fff: OUTPUT«3» | ||
GLRelia | rakudo-moar d6049e: OUTPUT«3» | ||
FROGGS | m: my $foo = "FOO"; my $bar = "BAR"; my $gorch = "foo bar"; say (@ = «$foo $gorch $bar»).elems | 19:21 | |
GLRelia | rakudo-moar d6049e: OUTPUT«3» | ||
camelia | rakudo-moar 815fff: OUTPUT«4» | ||
FROGGS | m: my $foo = "FOO"; my $bar = "BAR"; my $gorch = "foo bar"; say (@ = «$foo $gorch $bar»).perl | ||
GLRelia | rakudo-moar d6049e: OUTPUT«["FOO", $("foo", "bar"), "BAR"]» | ||
camelia | rakudo-moar 815fff: OUTPUT«["FOO", "foo", "bar", "BAR"]<>» | ||
19:24
domidumont left
|
|||
laben | .tell nine both map and grep return Seq, but couldn't the generated Seq already know its number of elems? after all .map applies to every item while .grep knows wheter an item passes the test and then gets included or not | 19:25 | |
yoleaux | laben: I'll pass your message to nine. | ||
19:29
lucasb left
|
|||
nine | laben: what makes you think that .map and .grep know how many elements they will process before they are done? | 19:33 | |
yoleaux | 19:25Z <laben> nine: both map and grep return Seq, but couldn't the generated Seq already know its number of elems? after all .map applies to every item while .grep knows wheter an item passes the test and then gets included or not | ||
nine | laben: both do not return lists but Seq, i.e. an iterator. Only when some consumer (like HYPER) pulls values out of the iterator, the acutal mapping and grepping is performed | 19:35 | |
And all of this can happen on lazy or infinite lists. | |||
19:37
zakharyas left
|
|||
nine | FROGGS: both me an moritz++ have looked at the $gorch issue. Sadly none of us has a good answer to what the most useful behavior should be. | 19:37 | |
FROGGS | ahh | 19:38 | |
I am about making it act like on nom | |||
laben | nine: then the HYPER needs to begin the operations and only while running check the elem numbers / send the exceptions | 19:41 | |
19:42
ab6tract joined
|
|||
nine | laben: exactly! That's what I'm thinking when talking about refactoring. Sadly, we will have to save the elements of both lists to an IterationBuffer unless we know one or both to be lazy. | 19:46 | |
19:48
ChoHag left
19:49
muraiki joined
|
|||
skids | I do think using .elems to reify should be discouraged somehow, as later on we could have things find out .elems from chained Seqs which are not lazy, before work is performed. | 19:50 | |
But if that information is to be useful to optimizers, it might mean Seqs need to have introspection as to whether they are going to emit any Slips. | 19:53 | ||
anyway, random thoughts I'll shut up now. | 19:54 | ||
dalek | rl6-roast-data: 8269141 | coke++ | / (10 files): today (automated commit) |
19:59 | |
[Coke] | not sure why rakudo.jvm isn't running anywhere near as many tests as rakudo.moar | 20:00 | |
github.com/coke/perl6-roast-data/b..._rates.csv | |||
colomon is suspicious that if you’re sending a Seq to hyper, something is already messed up. | |||
[Coke] | rakudo.moar-glr has 2463 failing tests out of 116528. | 20:01 | |
ab6tract notes that design.perl6.org/S02.html#The_Whatever_Object says that 'currying' is not the right way to talk about Whatever, but that seems to be how it is generally discussed | 20:03 | ||
20:05
darutoko left
20:06
pullphinger joined,
pullphinger left
|
|||
raiph | ab6tract: Here's how I might put it. Whatever is a completely generic "whatever". Even if a bunch of folk talked about the tasty curries they eat as "whatevers" doesn't mean other folk have to think "whatever" means a curry. | 20:08 | |
ab6tract also notes with some despair that 'orwith' is smashcased | |||
20:09
bartolin joined
|
|||
ab6tract | raiph: I like it :D | 20:09 | |
raiph | :) | ||
20:10
pullphinger joined,
pullphinger left,
pullphinger joined,
pullphinger left
|
|||
raiph | ab6tract: orwith is not the same as "or with", right? | 20:11 | |
ab6tract | raiph: indeed. however, I would have hoped for 'or-with', I guess. But then, matching 'elsif' makes some sense there. | 20:12 | |
jdv79 | how does one pay for spw | ||
i didn't but it says i ddid | 20:13 | ||
20:13
zakharyas joined
|
|||
ab6tract | I'm not sure that my fear of ending up with PHP-like degrees of inconsistency in the core setting is universally shared | 20:13 | |
[Coke] | I have concerns about consistency, ab6tract. | 20:14 | |
ab6tract | [Coke]: glad to hear it ain't just me :) | ||
jdv79 | they can be changed an deprecated later maybe | 20:15 | |
bike shedding wastes a lot of time | |||
ab6tract | jdv79: it would be nice to have that part wrapped before 6.0.0. bike shedding is not necessary if there is a simple rule to follow: kebab case, no abbreviations | 20:16 | |
otherwise, yes, it's all bike shedding | |||
though no one wants to see min/max become minimum/maximum, I expect | 20:17 | ||
20:17
xfix left
|
|||
bartolin | [Coke]: I think rakudo.moar runs a lot of NFG tests from S15-nfg which are not run on rakudo.jvm | 20:19 | |
[Coke] | bartolin: oh, right. Thanks. | ||
[Coke] commutes | 20:21 | ||
raiph | ab6tract: as I understand it the key is irclog.perlgeek.de/perl6/2015-03-25#i_10339632 | 20:22 | |
20:24
zakharyas left
|
|||
raiph | ab6tract: because the point is to enable technically unconstrained evolution | 20:27 | |
20:29
KCL joined
|
|||
raiph | ab6tract: and not worry about getting it exactly right before you ship | 20:29 | |
20:31
KCL_ left
20:34
rindolf left
|
|||
raiph | (otoh, I've not seen anyone else say that, which is a tad disconcerting ;)) | 20:34 | |
skids | I for one am a bit sick of dealing with released-too-early products at $DAYJOB, so I find it hard to jump on that bandwagon. | 20:36 | |
raiph | s/exactly right before you ship/permanently linguistically "right"/ | 20:37 | |
skids | Sure, there are degrees to that. | ||
I think the proposed doc/rationale should be done pre-release to get people on the same page and as a hedge against any unnoticed glaring PAEs. | 20:39 | ||
(and if we had that now I'd have less stupid questions for jnthn/TimToady) | 20:40 | ||
raiph | skids: do you mean Larry's "identity, identity, identity" thing? | 20:41 | |
skids | No, there was a proposal for rearranging doc a bit and one of the new pages was "why some things are the way they are" | ||
The design docs do go into some things pretty well, but you have to fish around in them. | 20:44 | ||
raiph | Ah. I was thinking of "why it matters a whole lot less than one might think that things are the way they are now", but I agree that's not helpful to those just trying to use what is available at any given time without interest in things improving | 20:45 | |
skids | Well, from a user's standpoint (the non-naive user) you try to get a feel for the stability of a feature before using it, and if something has a good reason to be that way, it helps improve confidence. | 20:47 | |
skids very glad GLR is now on track. | 20:48 | ||
raiph | skids: well, consider whether orwith is spelled or-with or not; will that decision, or any other, get baked in to Perl 6 once 1.0 ships? | ||
afaict the entire language is spectacularly malleable and that's perhaps its #1 long-term killer feature | 20:50 | ||
skids | I think the current spelling is correct, personally, both because I actually don't like kebab case and because I do not think else-if would be at all popular. But to the question, thos features that get use out of the gate are likely to get frozen that way. | ||
20:50
silug joined
|
|||
ab6tract | inertia is inevitable, it's true | 20:51 | |
PerlJam | I don't think anything will ever be "frozen". But there's a bit of pressure to get it right early-ish so that you don't have to carry so much backwards compatibility baggage with you into the future. | 20:53 | |
timotimo | i wonder why literallytriggr suggested to give perl6 something built-in for constructing packets like tcp | 20:55 | |
raiph | PerlJam: Agreed. Afaict the identity aspects of Perl 6 are designed to minimize the weight of decisions. | ||
ab6tract | and we should also be aware of the fact that "early-ish" is already "15 years in", as the outside world will perceive it | 20:56 | |
timotimo | when other languages have sophisticated libraries to do that kind of thing | ||
ab6tract | there is a *lot* of pressure to have 6.0.0 as-right-as-possible. if we launch with all manner of smash,snake,and kebab case, some abbreviations here and other full names there.... | 20:57 | |
people will (rightfully, imo) have the opinion that the language is still half baked | |||
(rightfully to perceive it, not rightfully considerable as half baked) | 20:58 | ||
skids | (Also, FWIW, despite the fact that kebab case got the nod (I'll have to deal) it is good that there is a convention, however, I do not think applying a convention like that to a foreign API is ever a good idea. For example, remapping all your C constants to kebab-case in a NativeCall mod would be silly.) | ||
ab6tract | skids: indeed. but that's not core, right? | ||
skids | Right, just a sidenote. | ||
RabidGravy | the thing is can you write software with it | 21:00 | |
well | |||
ab6tract | RabidGravy: is that the thing? because I don't need Perl 6 to write software. and no one else will buy that as a justification for using a language that after 15 years of development can manage to feel inconsistent | 21:02 | |
and that's the ultimate rub! the language is unbelievably consistent | 21:03 | ||
it would only be a surface level, completely superficial naming convention level of inconsistency | |||
skids | Consistency does not have to be monolithic, just segmented and logically arranged. | ||
ab6tract | sure, but where is the rhyme or reason for why .uniq became .unique, but .substr isn't .substring ? | 21:05 | |
skids | "Stuff we stole from C you already knew how to spell" | 21:06 | |
RabidGravy | You've lost me. You're going into microscopic detail there. If you don't wamt people to make software using the language then fine. I'd go with stabilise. | ||
ab6tract | orwith/elsif has a stronger argument, to be sure | ||
RabidGravy: my point is that Perl in general, and Perl 6 in particular, face an up hill battle in convincing programmers that they offer something significantly better | 21:07 | ||
skids | At least then, people can know that, hey, I'm picking up a bit of C when I learn this, too. | ||
anyway, decommute. | |||
21:07
skids left
|
|||
ab6tract | it's like making sure you comb your hair and wear shoes to a job interview | 21:07 | |
RabidGravy | er | 21:08 | |
ab6tract | or don't, but you can't be shocked when they laugh you out of the room | ||
considering you had a decade and a half to get dressed | 21:09 | ||
RabidGravy | I've been doing that for thirty years | ||
21:09
yqt joined
|
|||
ab6tract | I'm really not sure what we are discussing any more. Perl 6 has a chance to make a first impression. Why would we let surface level cosmetic issues get any traction in discussion, if we can avoid it? | 21:10 | |
21:13
diana_olhovik_ joined
|
|||
RabidGravy | that's lost me too | 21:14 | |
21:14
pmurias joined
|
|||
pmurias | We should have consistently named core methods/subs. | 21:15 | |
Having inconsistent names has no real benefit. | |||
21:16
mr-foobar left
|
|||
RabidGravy | I'm going to say this only once, but Perl 6 has taken 15 years because no-one took it and ran with it in the first couple of years leaving open a space fore every next generation of CS graduate and bikeshedder to have their say. This is being fixed this year. | 21:18 | |
rangerprice | RabidGravy: yes | ||
ab6tract | RabidGravy: well, inconsistent naming conventions sure will deliver the confidence that it is not a hodge podge of bike shedding... | 21:21 | |
(sarcasm) | |||
RabidGravy | fix it then :) | 21:22 | |
21:23
amurf joined
|
|||
ab6tract | RabidGravy: I've had my fill of sweeping PRs that go nowhere, thanks | 21:25 | |
rangerprice | Is LWP module only available for Perl ? | ||
21:27
amurf left
|
|||
RabidGravy | well we're working up HTTP::UserAgent to fill its boots but you know, contributions help | 21:27 | |
ab6tract | I would gladly put in the work if it were commissioned in advance, but it's too much trouble to approach it without any certainty that it would get merged | ||
anyway, I'm out for now | |||
good *, all | |||
21:27
ab6tract left
|
|||
RabidGravy | grumpy | 21:28 | |
what's the telll bot? | 21:30 | ||
raiph | .tell RabidGravy ... | 21:32 | |
yoleaux | raiph: I'll pass your message to RabidGravy. | ||
RabidGravy | .tell ab6tract the touchstone of any language is whether you can write great software in it not whether the language is perfect. It's going to be great | 21:34 | |
yoleaux | 21:32Z <raiph> RabidGravy: ... | ||
RabidGravy: I'll pass your message to ab6tract. | |||
RabidGravy | raiph, cheers :) | ||
21:36
muraiki left
|
|||
RabidGravy | see also PHP | 21:37 | |
21:38
diana_olhovik_ left
|
|||
pmurias | RabidGravy: you can write great software in really crappy languages | 21:40 | |
RabidGravy: you may have to suffer a lot to do it though | 21:41 | ||
RabidGravy | yes see PHP | 21:42 | |
but Perl 6 is a good language now, there's no point worrying to much in detail unless people fail to write good software with it :) | 21:44 | ||
21:45
simcop2387 left
|
|||
raiph | .tell ab6tract I share your passion to get things right. If I upset you, that was the opposite of my intent and I apologize. | 21:45 | |
yoleaux | raiph: I'll pass your message to ab6tract. | ||
21:45
simcop2387 joined
|
|||
laben | .tell nine good that there is a plan forward for that, i guessed it would be something like that :) | 21:46 | |
yoleaux | laben: I'll pass your message to nine. | ||
laben | good night|work #perl6 | 21:47 | |
21:47
laben left
|
|||
rangerprice | i hope that Perl 6 don't lose the simplicity of Perl 5 | 21:47 | |
RabidGravy | It has all the simplicity and more consistency | 21:48 | |
21:55
cwDYKARN left,
cwDYKARN_ left
|
|||
RabidGravy | sorry if I came over a bit humphy there but I think the aim is to make a language that you want to use, not necessarily one your CS professor would wet herself over | 21:57 | |
pmurias | Perl 5 doesn't have that much simplicity | 22:00 | |
it has ease of use, but the language itself is pretty complex (with all the weird special cases) | |||
22:01
lucasb joined
|
|||
RabidGravy | then it's broken and no one should use it ;-P | 22:02 | |
dalek | p/js: f33f56a | (Pawel Murias)++ | src/vm/js/ (2 files): Pass test 34. Implement rxtype qastnode. |
||
p/js: 2a7d1d8 | (Pawel Murias)++ | src/vm/js/bin/run_tests: Add passing test 62 to run_tests. |
|||
22:03
nowan left
|
|||
RabidGravy | ;-P | 22:03 | |
pmurias | RabidGravy: isn't that a pretty common opinion? | ||
not in Perl 6 land | 22:04 | ||
dwarring | m: say $_ for ^3 | 22:05 | |
GLRelia | rakudo-moar d6049e: OUTPUT«012» | ||
camelia | rakudo-moar 815fff: OUTPUT«012» | ||
dwarring | m: say $_ for ^3.0 | ||
GLRelia | rakudo-moar d6049e: OUTPUT«12» | ||
camelia | rakudo-moar 815fff: OUTPUT«012» | ||
dwarring noticed that in advent2009-day17.t | |||
22:06
nowan joined
|
|||
timotimo | oh, whoops | 22:06 | |
that's interesting to say the least | |||
probably a very simple thing to fix | |||
want me to look at it, or want to do it yourself? :) | 22:07 | ||
probably using .succ too early? | |||
m: say $_ for "a".."f" | |||
GLRelia | rakudo-moar d6049e: OUTPUT«abcdef» | ||
camelia | rakudo-moar 815fff: OUTPUT«abcdef» | ||
timotimo | here it works though | ||
dwarring | timotimo: have a look | ||
just seems to be Rats | |||
timotimo | m: say $_ for ^3.0e1 | 22:08 | |
GLRelia | rakudo-moar d6049e: OUTPUT«1234567891011121314151617181920212223242526272829» | ||
camelia | rakudo-moar 815fff: OUTPUT«01234567891011121314151617181920212223242526272829» | ||
timotimo | Nums as well | ||
lucasb | m: say @ = 1.0^..3 | ||
GLRelia | rakudo-moar d6049e: OUTPUT«3» | ||
camelia | rakudo-moar 815fff: OUTPUT«2 3» | ||
dwarring | erm and Nums | 22:09 | |
lucasb | dwarring++ # funny bug | ||
rangerprice | Where can i find good reference to a book that explain how to create a programming language ? | ||
22:11
mjgardner left
|
|||
pmurias | rangerprice: design a programming language or create an interpreter/compiler for one? | 22:12 | |
22:12
mjgardner joined
|
|||
rangerprice | pmurias: design a programming language | 22:12 | |
22:16
kaare_ left
|
|||
pmurias | I'm not aware of any such book | 22:18 | |
hoelzro | if I have a sub foo, and I do my @a = 1, 2, foo(); does the return value from foo() flatten out into @a post-GLR? | 22:19 | |
timotimo | grrrr | ||
22:20
mr-foobar joined
|
|||
timotimo | i make changes to the optimizer and it causes rakudo to build a core setting that asplodes immediately after starting up | 22:20 | |
22:22
TEttinger joined
|
|||
lizmat | good *, #perl6 | 22:25 | |
down to 154 failing test files, woot! | |||
(for the glr of course) | |||
[Coke] has travel booked most of the way to SPW now. whee. | |||
colomon right still has to get train tickets. :) | 22:27 | ||
s/right// | 22:28 | ||
pmurias | lizmat: re replacing use with yes/no for pragmas isn't the idea that pragmas are just modules with lower case names? | 22:30 | |
lizmat | that's P5, why does P6 have to be that way ? :-) | 22:31 | |
22:32
smls_ joined,
smls left
|
|||
pmurias | lizmat: what do we gain from it not being that way? | 22:32 | |
lizmat | less IO during compilation | 22:33 | |
22:34
mjgardner left
|
|||
lizmat | the other thing is, that pragma's, I think, are typically versionless (or at least, hooked to a version of the system) | 22:35 | |
22:37
gagalicious joined
|
|||
pmurias | you mean the version of the pragma is determined by the the version of the language we use? | 22:37 | |
lizmat | I would say so, yes | 22:38 | |
for the pragmas provided for by the system | |||
dalek | kudo/nom: 28faf19 | lizmat++ | src/core/IO/Path.pm: Allow 0 as a valid file name in .IO Re-imagined PR #508 by ugexe++ |
22:40 | |
pmurias | lizmat: for me the module/pragma distinction seem really arbitrary | ||
lizmat | perhaps it is... we will figure it out :-) | 22:42 | |
ugexe | for me it would be useful because i may want to turn off all pragmas without knowing what they are, ala `no pragmas` or something | 22:43 | |
pmurias | ugexe: what would be the use of something like that? | 22:45 | |
22:46
skids joined
|
|||
labster | lizmat++ I was thinking of doing that last commit, but you beat me to it. | 22:47 | |
ugexe | off the top of my head? i dunno, but it would be the same as anywhere you would use `no warnings` `no strict` in p5 except you dont have to remember them all | 22:48 | |
RabidGravy | no | 22:50 | |
those things are only present in 5 because people don't fix their code | 22:51 | ||
we don't have that burden | |||
ugexe | ive had plenty of valid reasons in perl5 to turn off warnings or strict or fatal. especially if you are testing things | 22:52 | |
RabidGravy | oh I have, but let's say you can't to that in 6 | 22:54 | |
22:54
leont joined
|
|||
timotimo | we have "no strict" | 22:56 | |
... or maybe i don't understand what you mean? | |||
ugexe | right. we have no strict, no fatal etc already. i was just suggesting a `no pragmas` to turn them all off | 22:57 | |
timotimo | "no fatal" is the default outside of "try", isn't it? | ||
RabidGravy | but it's still compeled to crap out on type not found or my Int $a = "foo" | 22:58 | |
pointless | |||
timotimo | "crap out on type not found"? | 22:59 | |
RabidGravy | m: my Foo $a; | 23:00 | |
camelia | rakudo-moar 815fff: OUTPUT«5===SORRY!5===Type 'Foo' is not declaredat /tmp/0WI4IaKrb2:1------> 3my Foo7⏏5 $a;Malformed myat /tmp/0WI4IaKrb2:1------> 3my7⏏5 Foo $a;» | ||
GLRelia | rakudo-moar d6049e: OUTPUT«5===SORRY!5===Type 'Foo' is not declaredat /tmp/nVlHbSQBn7:1------> 3my Foo7⏏5 $a;Malformed myat /tmp/nVlHbSQBn7:1------> 3my7⏏5 Foo $a;» | ||
timotimo | yeah, but that's not "crapping out" | ||
that's a compile-time error | |||
RabidGravy | pedant | ||
timotimo | are you playing devil's advocate right now or something? | 23:01 | |
timotimo is confused | 23:02 | ||
RabidGravy | possibly | ||
23:02
yqt left
|
|||
ugexe | m: BEGIN no fatal; | 23:03 | |
GLRelia | rakudo-moar d6049e: OUTPUT«===SORRY!===Cannot find method 'ann'» | ||
camelia | rakudo-moar 815fff: OUTPUT«===SORRY!===Cannot find method 'ann'» | ||
RabidGravy | "strictness" is within the coontrol of the programmer | ||
what? | 23:04 | ||
timotimo | that's very redundant, as pragmas are *already* compile-time ... but the error is definitely LTA | 23:05 | |
lucasb | m: BEGIN { no fatal } | 23:07 | |
GLRelia | ( no output ) | ||
camelia | ( no output ) | ||
ugexe | if you want to control order better you can do tricks like that though | 23:08 | |
im not sure if that ordering works with pragmas though. i do it for modules at least | |||
23:09
rurban left
|
|||
pmurias | ugexe: turning of a one specific pragma makes sense | 23:11 | |
ugexe: turning them all off with "no pragmas" makes zero sense to me | |||
ugexe: if you don't remember what you are turning off you shouldn't do it | |||
should we have a "use pragmas" that would turn all the pragmas on? | 23:12 | ||
23:15
RabidGravy left
|
|||
timotimo | let's have a "use modules" that imports all modules the user has installed | 23:17 | |
arnsholt | Heh. What could possibly go wrong!? =D | ||
dalek | p/js: fb0e205 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Add a Chunk.void helper method for more concise definition of chunks that don't return a value. |
23:20 | |
p/js: e365704 | (Pawel Murias)++ | src/vm/js/QAST/Compiler.nqp: Avoid using ~ to concatenate Chunks |
|||
timotimo | arnsholt: something different and exciting for every day of the week! | 23:21 | |
also "panda install Whatever" to install a random module | |||
ugexe | perl6 -M"no pragmas" some-script.pl6 | 23:22 | |
that doesn't do anything, just demonstrates a use case | 23:23 | ||
timotimo | heh, a use case. | 23:24 | |
23:25
mjgardner joined
|
|||
ugexe | heh yea i clearly do not know what that means. i mean to say it is an example that makes sense to me | 23:25 | |
timotimo | hm | 23:26 | |
do we have (or will we have) a use statement with multiple things to be used on the RHS? | |||
23:28
lucasb left
|
|||
timotimo | having just seen a python script with an "import foo, bar, baz, quux, ..., ..., ..., ..., ..., ..., ..., ..., ..." line in it ... | 23:29 | |
ugexe | use lib <a b c>; | 23:31 | |
cheating | |||
timotimo | that's not the right thing | ||
TimToady | well, where do you put the import list then? | ||
timotimo | TimToady: embrace the TTIAR fully :P | ||
otherwise, a list of pairs could do | 23:32 | ||
TimToady | it seems to have more of a use case for classes than for modules, so it's easier to have 'need' take a list, since classes don't usually import | 23:33 | |
japhb | TimToady: What day(s) are you and jnthn (and any other #perl6'ers) doing your talks? | 23:36 | |
TimToady | I did my talk yesterday | 23:37 | |
jnthn is today | |||
yesterday there was a talk by someone who tried rakudo/jvm, and was pleasantly surprised at all it could do, except for start up fast :) | 23:38 | ||
timotimo | oh, neato | ||
lizmat | 14:20 local time, 5:20 GMT if I'm not mistaken | ||
I haven't seen any streams yet :-) | |||
japhb can't wait for slide decks and recordings | 23:39 | ||
Anyone happen to know what Matz is going to talk about? I saw him on the talks list and did a double take. | 23:40 | ||
TimToady | already talked about yesterday | ||
timotimo | japhb: "error while compiling. undeclared routine: wait" | ||
TimToady | something called 'streem' I gather | ||
japhb | Oh yeah, saw that on his github page with a bazillion stars | 23:41 | |
23:47
telex left
23:48
telex joined
23:49
leont left
23:59
davercc joined
|