»ö« 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. |
|||
ugexe | the promise is also marked as kept | 00:04 | |
m: say Proc.new(:exitcode(42)) | 00:06 | ||
camelia | rakudo-moar 91212c: OUTPUT«Proc.new(in => IO::Pipe, out => IO::Pipe, err => IO::Pipe, exitcode => -1, pid => Any, signal => Any)» | ||
ugexe | FROGGS: github.com/rakudo/rakudo/blob/nom/...roc.pm#L14 BUILD needs :$!exitcode | 00:13 | |
for this line in Proc::Async: $!exit_promise.keep(Proc.new(:exitcode(status))) | 00:14 | ||
japhb | ugexe: Send a PR? The collection of people with commit rights in Rakudo is much larger (and spans many more timezones). | 00:30 | |
ugexe | im testing it right now | ||
japhb | Excellent! | 00:34 | |
timotimo | atweiden, raiph: you want "my Silo @silos" rather than "my Array[Silo] @silos", otherwise you're declaring an AoA | 00:41 | |
00:42
ShimmerFairy left
00:48
Ben_Goldberg joined
|
|||
atweiden | timotimo: intended to be multidimensional array | 00:52 | |
00:56
][Sno][ left
|
|||
tony-o | m: enum Silo <ASSETS EXPENSES INCOME LIABILITIES EQUITY>; my Array[Silo] @silos; my Silo @assets = ASSETS; @silos.unshift($(@assets)); say @silos.perl | 00:56 | |
camelia | rakudo-moar 91212c: OUTPUT«Array[Array[Silo]].new(Array[Silo].new(Silo::ASSETS))» | ||
00:57
[Sno] joined
|
|||
tony-o | atweiden ^^ | 00:58 | |
ugexe | nqp-m: nqp::say(nqp::istype(-1, Int)); | ||
camelia | nqp-moarvm: OUTPUT«0» | ||
ugexe | m: use nqp; say nqp::istype(-1, Int); | ||
camelia | rakudo-moar 91212c: OUTPUT«1» | ||
tony-o | nqp-m: nqp::say(nqp::istype(-1, int)); | 00:59 | |
camelia | nqp-moarvm: OUTPUT«0» | ||
tony-o | nqp-m: nqp::say(nqp::istype(-1, twitter)); | ||
camelia | nqp-moarvm: OUTPUT«0» | ||
tony-o | nqp-m: nqp::say(nqp::istype(-1, int8)); | 01:00 | |
camelia | nqp-moarvm: OUTPUT«0» | ||
timotimo | oh, now i see that, too | 01:05 | |
01:13
yqt left
01:16
[Sno] left,
[Sno] joined
01:42
atroxaper joined
01:46
atroxaper left
01:58
ShimmerFairy joined
02:05
aborazmeh joined,
aborazmeh left,
aborazmeh joined
02:09
noganex_ joined
02:12
noganex left
|
|||
raiph | m: constant #`( s/constant/term/? ) scalar = $ = 42; say scalar; scalar--; scalar.say; | 02:12 | |
camelia | rakudo-moar 91212c: OUTPUT«4241» | ||
raiph | m: constant #`( s/constant/term/? ) dict = { pi=>i, e=>now }; say dict; dict<pi>--; say dict.invert | ||
camelia | rakudo-moar 91212c: OUTPUT«e => Instant:1435371205.021879, pi => 0+1iInstant:1435371205.021879 => e -1+1i => pi» | ||
raiph | m: constant #`( s/constant/term/? ) list = [pi, e]; list[2] = True; say list; list>>--; say list; say [+] @(list) | ||
camelia | rakudo-moar 91212c: OUTPUT«3.14159265358979 2.71828182845905 True2.14159265358979 1.71828182845905 False3.85987448204884» | ||
02:14
rubz joined
02:16
rubz left
02:23
sue__ joined
|
|||
raiph | m: constant dict =%= pi, i, e, now; say dict; dict{pi}--; say dict.invert | 02:24 | |
camelia | rakudo-moar 91212c: OUTPUT«2.71828182845905 => Instant:1435371876.325275, 3.14159265358979 => 0+1iInstant:1435371876.325275 => 2.71828182845905 -1+1i => 3.14159265358979» | ||
02:24
sue__ is now known as sue
|
|||
raiph | .oO ( enjoying a few rounds of sigil golf ) | 02:25 | |
m: constant scalar =$= 10; scalar += 5; say [1,2] >>+>> scalar; | 02:27 | ||
camelia | rakudo-moar 91212c: OUTPUT«16 17» | ||
raiph | m: constant list =@= 10; list += 5; # compile error? | 02:28 | |
camelia | ( no output ) | ||
raiph | m: my @list = 10; @list += 5; # compile error? | ||
camelia | ( no output ) | ||
raiph | m: constant list =@= 10,20; say list >>+>> 5 | 02:29 | |
camelia | rakudo-moar 91212c: OUTPUT«15 25» | ||
raiph | .oO ( s/constant/a/, where 'a' introduces a term, to enable "a foo =@= ..." etc.) | 02:32 | |
02:38
rmgk_ joined,
rmgk is now known as Guest30350,
Guest30350 left,
rmgk_ is now known as rmgk
02:39
atweiden left
02:44
rjbs left,
vendethiel left
|
|||
ugexe | Proc::Async exitcode PR sent | 02:50 | |
raiph | ugexe++ | 02:51 | |
ugexe: Do you like or dislike the sigilless idiom (see ^^)? Do you know what it's downsides are? | 02:52 | ||
ugexe | i like sigils, because i feel it explains more naturally while reading left to right | 02:56 | |
raiph | ugexe: Me too. I think it's a mistake to leave out the sigils in serious code. | 02:57 | |
Ben_Goldberg | m: my @list = 10; @list += 5; say @list | ||
camelia | rakudo-moar 91212c: OUTPUT«6» | ||
02:57
colomon left
02:58
colomon joined
|
|||
raiph | ugexe: Unless serious code includes code for beginners. | 02:58 | |
Ben_Goldberg: great example | 02:59 | ||
m: constant foo = 1,2; #`( code much later ) foo += 5; say foo # not obvious that the increment of foo is wrong | 03:02 | ||
camelia | rakudo-moar 91212c: OUTPUT«Cannot modify an immutable Int in block <unit> at /tmp/DMcRrUSE1g:1» | ||
raiph | Heh, interesting | ||
ugexe | problem is, if you put code like that out there for beginners it will become what people think is standard. sort of like how perl5 was plagued with terrible google results like matts script archive | 03:03 | |
03:04
nys left
03:05
kaare_ joined
|
|||
Ben_Goldberg | m: my @x = 'Just Another Perl/Bidi Hacker,'.comb; print(chr(8237) ~ @x.shift ~ chr(8238) ~ @x.pop) while @x; | 03:08 | |
camelia | rakudo-moar 91212c: OUTPUT«J,ursetk cAanHo tihdeirB /Pler» | ||
ugexe | if i have to write some ugly C-like code for whatever reason i might find it useful to have a slang to do that so I can make the code more terse | ||
Ben_Goldberg | m: my $x = +my @x = 'Just Another Perl/Bidi Hacker,'.comb; print 8237.chr, @x.shift, 8238.chr, @x.pop while @x; print 8236.chr x $x; | 03:15 | |
camelia | rakudo-moar 91212c: OUTPUT«J,ursetk cAanHo tihdeirB /Pler» | ||
raiph | ugexe: I meant as introductory, lies-to-children code. Create an alias for | 03:16 | |
oops | |||
Ben_Goldberg | Lies-to-children are important. If noone told you: When playing, Reversi (aka Othello), whomever has the most corners at the end of the game wins... you'd play extraordinarily poorly, at least at first. | 03:19 | |
raiph | m: constant foo = 1,2; #`( code much later ) foo += 5; say foo | 03:24 | |
camelia | rakudo-moar 91212c: OUTPUT«Cannot modify an immutable Int in block <unit> at /tmp/NwKu2T8_p_:1» | ||
raiph | m: constant foo =@= 1,2; #`( code much later ) foo += 5; say foo | ||
camelia | rakudo-moar 91212c: OUTPUT«7» | ||
raiph | m: constant @foo = 1,2; #`( code much later ) foo += 5; say foo | 03:25 | |
camelia | rakudo-moar 91212c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/0WWo3E3sqjPrefix + requires an argument, but no valid term foundat /tmp/0WWo3E3sqj:1------> 3 @foo = 1,2; #`( code much later ) foo +7⏏5= 5; say foo expecting any of: prefix» | ||
raiph | m: constant @foo = 1,2; #`( code much later ) @foo += 5; say @foo | ||
camelia | rakudo-moar 91212c: OUTPUT«Cannot modify an immutable Int in block <unit> at /tmp/Owht8dqc0b:1» | ||
raiph | m: constant @foo = [1,2]; #`( code much later ) @foo += 5; say @foo | ||
camelia | rakudo-moar 91212c: OUTPUT«7» | ||
03:49
aborazmeh left
04:12
Ben_Goldberg left
04:13
Ben_Goldberg joined
04:18
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
tony-o | m: \foo = Int.new(10); foo +=5; foo.say | 04:24 | |
camelia | rakudo-moar 91212c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/slJwFu7BUZPreceding context expects a term, but found infix = insteadat /tmp/slJwFu7BUZ:1------> 3\foo =7⏏5 Int.new(10); foo +=5; foo.say» | ||
tony-o | m: my \foo = Int.new(10); foo +=5; foo.say | ||
camelia | rakudo-moar 91212c: OUTPUT«Default constructor for 'Int' only takes named arguments in block <unit> at /tmp/Ws2FHwOh59:1» | ||
tony-o | m: my \foo = $(1,2); foo +=5; foo.say | 04:36 | |
camelia | rakudo-moar 91212c: OUTPUT«Cannot assign to a readonly variable or a value in block <unit> at /tmp/AKn0reHeu0:1» | ||
04:39
khw left
04:50
amurf joined
04:55
amurf left
04:57
tinyblak joined
05:11
[Sno] left,
[Sno] joined
05:18
Ben_Goldberg left
05:19
StavroMueller joined,
atroxaper joined
05:20
bjz left
05:24
atroxaper left
05:31
aborazmeh left
05:37
telex left
05:38
telex joined
05:46
bjz joined,
bjz left
05:54
tinyblak left
05:56
skids left
|
|||
dalek | kudo/nom: 254eff9 | (Nick Logan)++ | src/core/Proc.pm: bugfix: exitcode for Proc::Async Proc::Async sets the exitcode via `Proc.new(:exitcode(1))` so BUILD requires a :$exitcode argument See github.com/rakudo/rakudo/blob/nom/...nc.pm#L176 |
06:04 | |
kudo/nom: 0ff4557 | FROGGS++ | src/core/Proc.pm: Merge pull request #449 from ugexe/patch-4 bugfix: exitcode for Proc::Async |
|||
06:15
RabidGravy joined
|
|||
raiph | .tell tony-o I've realized that use of {(...)} entirely eliminates the problems ("fooling around with ending a block and restarting a block or whatever ... buffering crap into a temp str to use that as the return value") | 06:17 | |
yoleaux | raiph: I'll pass your message to tony-o. | ||
raiph | .tell tony-o (Also, that the say-in-say approach will end in tears) | 06:18 | |
yoleaux | raiph: I'll pass your message to tony-o. | ||
raiph | .tell tony-o I've updated github.com/tony-o/perl6-template-p...e/issues/1 | 06:19 | |
yoleaux | raiph: I'll pass your message to tony-o. | ||
06:30
xfix joined,
xfix left,
xfix joined
06:34
araujo_ joined,
rindolf joined
06:35
araujo left
06:40
amurf joined
06:41
araujo__ joined
06:42
araujo_ left
06:44
amurf left
06:58
tinyblak joined
06:59
gfldex joined
|
|||
dalek | c: 5e2a992 | RabidGravy++ | lib/Type/IO/Path.pod: Add link/symlink |
07:18 | |
07:23
tinyblak left
07:25
tinyblak joined
|
|||
dalek | c: 0b24f07 | RabidGravy++ | lib/Type/IO/Path.pod: Add chdir() |
07:59 | |
08:02
darutoko joined
08:08
vendethiel joined
08:09
atroxaper joined
08:13
atroxaper left
08:22
rurban joined
08:23
xfix_ joined,
xfix_ left,
rurban left
08:26
xfix left
08:35
jaffa4 joined
|
|||
jaffa4 | hi all | 08:35 | |
How can I translate binmode? | 08:36 | ||
I guess it is :bin in open | |||
I would like to be able to set it independently | |||
not at open | |||
labster | jaffa4: what do you mean by independently? | 08:40 | |
jaffa4 | like binmode in Perl 5 | ||
labster | Ah, you mean setting it on a filehandle outside of an open call. | 08:42 | |
my $fh = "foo".IO.open(); $fh.encoding('bin'); # should work, not sure if it does | 08:44 | ||
hm, no test cases for this, not an encouraging sign | 08:49 | ||
jaffa4: if you want binmode with a layer, like utf-8 or iso-8859-1 or windows-1252 -- all of those will work by passing it to the encoding function. I'm just not sure about actual binary binmode yet. | 08:51 | ||
*encoding method | |||
jaffa4 | where is the source? | 08:52 | |
labster | for this? /src/core/IO/Handle.pm, but it looks like I'll need to dig into NQP to see how it actually handles binary. | 08:53 | |
jaffa4 | what is the url? | 08:59 | |
[Tux] | m: IO::Handle.^methods».name.say | 09:00 | |
camelia | rakudo-moar 0ff455: OUTPUT«FALLBACK gist new» | ||
labster | github.com/rakudo/rakudo/blob/nom/...le.pm#L572 | ||
[Tux] | hmm, locally I get this: pipe open input-line-separator nl close eof get getc words lines read seek tell write opened t print print-nl slurp slurp-rest spurt copy chmod IO path flush encoding DESTROY e d f s l r w x modified accessed changed watch umask say Str gist perl <anon> <anon> | ||
labster | [Tux]: probably RESTRICTED.setting | 09:01 | |
m: say "/home/camelia/test".IO.open.^methods | 09:04 | ||
camelia | rakudo-moar 0ff455: OUTPUT«pipe open input-line-separator nl close eof get getc words lines read seek tell write opened t print print-nl slurp slurp-rest spurt copy chmod IO path flush encoding DESTROY e d f s l r w x modified accessed changed watch umask say Str gist perl <anon> <a…» | ||
09:04
spintronic joined
|
|||
RabidGravy | looking at the code for IO::Handle it would seem that the only major thing that :bin does at that level is *not* set any encoding | 09:08 | |
jaffa4 | yes, but encoding is set, how to undo it | 09:09 | |
09:09
diana_olhovik_ joined
|
|||
labster | read it in as ascii, and then call .encode on the string to get a Buf? not awesome. | 09:09 | |
RabidGravy | read will just get the bytes anyway doesn't it? | 09:10 | |
labster | yes. | 09:11 | |
m: "test".IO.open.read(20).say | 09:12 | ||
camelia | rakudo-moar 0ff455: OUTPUT«Buf[uint8]:0x<>» | ||
labster | perhaps I should try that on a bigger file :D | ||
09:14
[Sno] left
|
|||
labster | I wish there was someone around who could give a more definitive answer, but early Saturday morning is not the best time for this channel. | 09:14 | |
This is something that should work and be documented, though. | 09:15 | ||
And tested, of course. | |||
09:15
spintronic left
|
|||
RabidGravy | there isn't an nqp op for the opposite of setencoding as far as I can tell | 09:16 | |
09:16
domidumont joined
|
|||
labster | QASTOperationsMAST.nqp:QAST::MASTOperations.add_core_moarop_mapping('setencoding', 'setencoding', 1); It's just sent straight down the the VM anyway. | 09:17 | |
09:17
Foxcool joined
09:18
spintronic joined
09:20
[Sno] joined
09:21
domidumont left
09:22
domidumont joined
09:25
atroxaper joined
|
|||
labster | night, #perl6 | 09:27 | |
RabidGravy | erp | ||
Woodi | hallo #perl6 | 09:29 | |
RabidGravy | erp | ||
Woodi | grammars kills me constantly :) gist.github.com/anonymous/bcb011dc022b76857855 | ||
09:29
atroxaper left
|
|||
Woodi | G1 works, G2 IMO should be simple replacement but don't work... | 09:29 | |
RabidGravy | Woodi, change the "rule parts" to "token parts" | 09:31 | |
09:32
domidumont left
|
|||
Woodi | yay :) | 09:34 | |
RabidGravy | a, er, rule of thumb is that a "rule" is the combination of some tokens | ||
not strictly accurate but it helps me remember ;-) | 09:35 | ||
Woodi | so tokens as "leaves" and rules as "nodes", will try that. thanx :) | 09:36 | |
RabidGravy | pretty much, it's down to the difference between the implicit flags applied to the "rule", "token" and "regex" largely | 09:38 | |
09:44
raiph left
|
|||
RabidGravy | right, off out now | 09:50 | |
09:51
Al-Caveman joined
09:52
diana_olhovik_ left
09:55
RabidGravy left
10:01
spider-mario joined
10:04
spintronic left
10:13
gagalicious left
10:17
amurf joined
10:22
amurf left
10:23
domidumont joined
10:35
dpk left
10:37
dpk joined
10:41
cognominal left
10:46
tinyblak left
10:47
cognominal joined,
xfix joined,
xfix left,
xfix joined,
xfix left
10:49
cognominal left,
leont joined,
cognominal joined
10:50
aborazmeh joined,
aborazmeh left,
aborazmeh joined
10:51
cognominal left
10:55
bin_005 left
|
|||
lizmat | good *, #perl6! | 11:03 | |
m: Proc::Status.new # where did it go? | 11:04 | ||
camelia | rakudo-moar 0ff455: OUTPUT«Could not find symbol '&Status' in block <unit> at /tmp/_JwT2ZYuIi:1» | ||
lizmat | there's a Proc::Status class in the setting... | 11:05 | |
11:11
domidumont left
|
|||
jaffa4 | how would you translate this &(%linkage{$opt})($A,$B.$C) from Perl 5 | 11:13 | |
? | |||
moritz | %linkage{$opt}($A, $B, $C) | 11:16 | |
jaffa4: but I doubt that what you wrote is actually valid perl 5 code | |||
jaffa4 | moritz: ... and you are right | 11:17 | |
let us approximately | |||
moritz | no, it's good to be precise when talking about syntax | 11:18 | |
11:24
Alina-malina left
11:25
Alina-malina joined
|
|||
dalek | kudo/nom: acaeb17 | lizmat++ | src/core/IO/Handle.pm: Revive Proc::Status This is a bandaid. Some recent changes made Proc::Status disappear from the world when still having code defining it. Suspect some sort of MOP messup with creating parent packages. By creating a stub for the parent package beforehand, we seem to have quelched the issue. Something that needs to be investigated further! |
11:33 | |
lizmat | interestingly, now test 13 in t/spec/S17-procasync/basic.t (line 39) fails because the returned object is a Proc rather than a Proc::Status | 11:37 | |
whereas the other tests work out ok afterward | |||
.tell jnthn you might want to have a look at why github.com/rakudo/rakudo/commit/acaeb17897 was needed to revive Proc::Status | 11:38 | ||
yoleaux | lizmat: I'll pass your message to jnthn. | ||
lizmat | .tell jnthn as an added datapoint, check why test 13 in t/spec/S17-procasync/basic.t (line 39) fails | 11:41 | |
yoleaux | lizmat: I'll pass your message to jnthn. | ||
11:43
AlexDani` joined
11:46
tinyblak joined
11:54
diana_olhovik joined
11:57
tinyblak left,
tinyblak joined
11:59
rurban joined
|
|||
lizmat | looking at #125485, I guess | 12:00 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125485 | ||
lizmat | m: "{ @_ }" # is just an expression of: | 12:01 | |
camelia | rakudo-moar acaeb1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/V4Li3mqwS1Placeholder variable @_ may not be used here because the surrounding block takes no signatureat /tmp/V4Li3mqwS1:1------> 3"{ @_ }7⏏5" # is just an expression of: expecting any of…» | ||
lizmat | m: -> { @_ } # this one | ||
camelia | rakudo-moar acaeb1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FbH2YyCuDCPlaceholder variable '@_' cannot override existing signatureat /tmp/FbH2YyCuDC:1------> 3<BOL>7⏏5-> { @_ } # this one» | ||
12:10
aborazmeh left
|
|||
lizmat | perhaps use of @_ and $^a in blocks should be referring to the first outer code instead ? | 12:10 | |
12:13
pmurias joined
|
|||
moritz | but then you couldn't say reduce { $^a + $^b }, @vals | 12:13 | |
just write explicit signatures for routines that contain other blocks, and you're fine | 12:14 | ||
jaffa4 | Is perl6-debug-m supoosed to work? | ||
What is the state of perl6-debug-m? | 12:15 | ||
lizmat | moritz: good point | 12:17 | |
well, hmmm... then perhaps only if the block is part of an interpolated string? | 12:18 | ||
I can see that as something that would help p5 -> 6 migration | |||
anyways, afk until later today& | |||
12:23
ShimmerFairy left
|
|||
jaffa4 | What could help? | 12:24 | |
12:33
bjz joined,
rindolf left
12:36
ShimmerFairy joined
12:45
colomon left
13:02
atroxaper joined
13:07
atroxaper left
13:09
domidumont joined
13:10
RabidGravy joined
|
|||
jaffa4 | I have a code which seems to fail without saying a word | 13:11 | |
13:11
Fleurety joined
13:12
spintronic joined
13:15
tinyblak left
13:17
rindolf joined
13:18
nowan joined
13:19
Fleurety left
|
|||
Woodi | RabidGravy++ # mixing rules with tokens works :) | 13:24 | |
13:24
Fleurety joined
|
|||
Woodi | about GLR: for me "tuples" sound weird too. they was used in old relational database texts so they have v. old-ish conotations... | 13:27 | |
pmurias | nqp-js: say("still alive...?"); | ||
camelia | nqp-js: OUTPUT«/bin/sh: node: command not found» | ||
Woodi | Nil is planned to disappear ? so how to get results with NULLs from db ? | 13:28 | |
13:29
araujo__ left
|
|||
pmurias | would just having it as DBI::NULL be a problem? | 13:29 | |
Woodi | also in 1990 Mr. Codd augmented relational database theory with one more NULL, some 4th-valued-logic... | 13:30 | |
timotimo | and why wouldn't a type object be a good fit? | ||
Woodi | pmurias: you get data from db, ( "J.Kowalski", male, Nil, Nil), this looks nice... | 13:31 | |
timotimo | the cool thing about type objects is you still get to know what type the column has | 13:32 | |
also: oh god, NULL values are EVIL in SQL :) | |||
Woodi | timotimo: I don't know. but we have some Mu's so maybe someone already thinking about this :) | ||
timotimo: but 'we don't know value for that' is proper answer... at least to keep shape of tables :) | 13:33 | ||
13:36
sjn_phone_ joined,
araujo joined,
araujo left,
araujo joined
13:47
AlexDani` is now known as AlexDaniel
|
|||
AlexDaniel | So, how can I run a shell command, get its output, and have the parameters quoted correctly? This link describes everything besides shell quoting perl6advent.wordpress.com/2014/12/...om-perl-6/ | 13:50 | |
this was a painful perl5 problem which required CPAN dependency (ShellQuote) | 13:52 | ||
moritz | AlexDaniel: doc.perl6.org/type/Proc::Async | ||
13:53
sjn_phone_ left
|
|||
AlexDaniel | moritz: are you sure that it actually answers my question? | 13:53 | |
geekosaur | um? you could do it without ShellQuote | ||
unless your notion of how to do it is incorrect from the start, which tbh is suggested by that response | 13:54 | ||
(the correct answer is *don't use the shell*) | |||
AlexDaniel | thanks, that does not help as well | ||
moritz: you see, most people will not bother with that | 13:55 | ||
moritz: look at that perl6advent link and notice this line | |||
my @commit_results = qqx/git commit -am "$message"/.lines; | |||
clearly a mistake | |||
13:55
amurf joined,
FROGGS[mobile] joined
|
|||
AlexDaniel | so I'm asking how to fix that, and you tell me that the answer is to use Proc::Async. If that's true, do you understand that we will keep seeing shell injection everywhere? | 13:56 | |
FROGGS[mobile] | AlexDaniel: use: run($prog, ..., :out) | ||
moritz | AlexDaniel: I'm just saying hat Proc::Async offers capturing and no need for quoting | 13:57 | |
FROGGS[mobile] | that's available since yesterday | ||
moritz | oooh | ||
AlexDaniel | m: say run 'echo' 'test' | ||
camelia | rakudo-moar acaeb1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SBoxeFPZi0Two terms in a rowat /tmp/SBoxeFPZi0:1------> 3say run 'echo'7⏏5 'test' expecting any of: infix infix stopper postfix statement end …» | ||
FROGGS[mobile] | comma | 13:58 | |
moritz | no &run in camelia either, I think | ||
AlexDaniel | m: say run 'echo', 'test' | ||
camelia | rakudo-moar acaeb1: OUTPUT«run is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting:1 in sub run at src/RESTRICTED.setting:14 in block <unit> at /tmp/ci9sXRssZo:1» | ||
AlexDaniel | okay I'll recompile | ||
FROGGS[mobile] | AlexDaniel: look at S32-io/pipe.t | ||
there are examples | |||
AlexDaniel | FROGGS[mobile]: thanks | 13:59 | |
13:59
amurf left
14:02
araujo left
14:05
lichtkind joined
14:06
nys joined
|
|||
moritz | FROGGS[mobile]: why does sub run do a 'try $proc.spawn(@args)'? (I mean, why the 'try'?) | 14:08 | |
FROGGS[mobile] | moritz: I dunno, I forgot | 14:12 | |
moritz | FROGGS[mobile]: looks dangerous to me | ||
FROGGS[mobile] | then we should remove it and test | 14:14 | |
moritz | I'm doing a spectest as is, and hope that I'll remember to remove it and re-test when it finishes :-) | 14:15 | |
(or maybe I should do it on hack, not on my workstation :-) | |||
14:15
tinyblak joined
|
|||
FROGGS[mobile] | :o) | 14:18 | |
I guess it was about a "cmd not found" issue | |||
ohh dang, I forgot to test run/shell on windows :S | 14:19 | ||
moritz | but the API is *very* nice, FROGGS[mobile]++ | 14:20 | |
and FROGGS++ too, I guess :-) | |||
AlexDaniel | $output = run('echo', $test, :out).out.get; | ||
$output = qqx/echo $test/; | |||
Huffmanly speaking, which one is better and why? | |||
FROGGS[mobile] | good question | 14:22 | |
14:24
diana_olhovik__ joined
|
|||
AlexDaniel | FROGGS[mobile]: thanks for listening, I always feel ignored when I raise questions about shell quoting | 14:24 | |
14:25
diana_olhovik left
|
|||
moritz | I realize the defaults are maybe still the wrong way around, but now Perl 6 has a much nicer API for capturing err/out and no need for quoting | 14:25 | |
compared to p5 | |||
AlexDaniel | the typical answer is "well, it works, so what's your problem?". Well, you can inject any arbitrary shell thing into it, that's the problem... | ||
and if it had better Huffman coding I think that the problem will fade away | 14:26 | ||
well, at least it will get better | |||
FROGGS[mobile] | AlexDaniel: I'll think about a sane and safe short-cut | ||
moritz | maybe have a quoting for that preserves scalars as single items, and only splits literals on spaces? | 14:27 | |
AlexDaniel | that's what I though, actually | 14:28 | |
which basically means that it should autoquote variables, but then again, what does it mean to quote things correctly? | |||
it depends on the underlying shell | |||
jaffa4 | Is this ok grep ($_ eq $opt, @hits)? | ||
moritz | so that my $foo = "a b"; my @list = q:w:S<echo $foo> is equivalent to my @list = ('echo', $foo) | 14:29 | |
jaffa4: it doesn't do what you want | |||
jaffa4 | std: grep ($_ eq $opt, @hits) | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Variable $opt is not predeclared at /tmp/7hVV_j54vO line 1:------> 3grep ($_ eq 7⏏5$opt, @hits)Variable @hits is not predeclared at /tmp/7hVV_j54vO line 1:------> 3grep ($_ eq $opt, 7⏏5@hits)Check failedFAILED 00:00…» | ||
geekosaur | I feel like insistence that making the naive shell quoting solution "work" is just encouraging security holes | ||
moritz | jaffa4: if $opt is a string, you can just do @hits.grep($opt) | 14:30 | |
AlexDaniel | geekosaur: what do you mean? | ||
moritz | geekosaur: the point is to not need shell quoting | ||
geekosaur | yes, I understand this is not popular. the widest proof being how the Internet is rife with such security holes (mostly in the related area of SQL quoting) | ||
moritz | geekosaur: but always pass the argument list out-of-band | ||
geekosaur | moritz, but I was informed that avoiding the shell was not the correct answer | ||
moritz | geekosaur: who informed you, and it wasn't the correct answer to what question? | 14:31 | |
geekosaur | because the question was shell quoting. never mind thaty the question is wrong | ||
sigh | |||
moritz minds that the question is wrong | |||
geekosaur | yes, I understand the point was to ask about shell quoting itself | ||
moritz | appeal to authority doesn't work well in here, sorry | 14:32 | |
geekosaur | but, from a security standpoint,m the answer to that is "avoid it at all costs" | ||
AlexDaniel | yea the question was a bit wrong, you are right | ||
geekosaur: if the answer is "use 'run'" then it is OK though | |||
geekosaur | because even when you think uyou've covrred all the cases, you get hit by shellshock *sigh* | ||
(I mean, who expects their dhcp client is vulnerable to shell injection attack?) | 14:33 | ||
moritz | only those who you call "paranoid" | 14:34 | |
AlexDaniel | geekosaur: so what do you recommend? Make 'run' better Huffmanly coded and that's it? | ||
geekosaur | I don't know. I feel like there is a tendency to say "people will use the simple solution so let's make it secure" and this fails when there is demonstrably no way to make it secure. But also demonstrably steering people away from the simple solution doesn't work | 14:35 | |
AlexDaniel | geekosaur: good point | ||
FROGGS[mobile]: backticks are not used? We can use backticks for that! Haha | 14:37 | ||
FROGGS[mobile] | AlexDaniel: with an argument list? :o) | ||
AlexDaniel | yeah :) | 14:38 | |
14:41
bjz left
|
|||
dalek | c: 9d2b828 | moritz++ | lib/Type/Proc.pod: Document type Proc (and &run) |
14:44 | |
c: d1bcc0a | moritz++ | lib/Type/IO.pod: Fix documentation for &run in type IO |
|||
moritz | FROGGS[mobile]: a short proof-read of those docs would be very much appreciated | 14:45 | |
AlexDaniel | actually, we should listen to what geekosaur said | 14:47 | |
and after reading "Piping several commands is easy too." I realize that he is absolutely right | |||
which probably means that qx should actually go away | 14:49 | ||
14:49
araujo joined
|
|||
geekosaur | unclear actually. the problem is if you remove it, someone will re-add it (probably in an even worse way) for convenience | 14:53 | |
see "steering people away from the simple solution doesn't work" | |||
AlexDaniel | what about qwx or something? | 14:55 | |
moritz | FROGGS[mobile], jnthn: it's a bit unfortunate that Proc.out and Proc::Async.stdout have a diverging naming scheme | ||
AlexDaniel | that will split stuff by spaces and pass that to run | ||
14:55
FROGGS joined
|
|||
FROGGS[mobile] | moritz: aye, and I'd vote for shorter names fwiw | 14:58 | |
FROGGS | moritz: I'll proofread the docs this evening | ||
I've got currently about five kids under age 6 around me | 14:59 | ||
jaffa4 | This is ok, right? return (0) if $passthrough; | 15:02 | |
timotimo | i'd propose "return 0 if $passthrough" instead | 15:05 | |
15:05
FROGGS left
15:10
rindolf left
15:11
shlomif joined,
tinyblak left,
tinyblak joined
|
|||
AlexDaniel | FROGGS: "with an argument list? :o)" hm, it can do the same thing < > is doing | 15:12 | |
FROGGS[mobile] | I was thinking about that, but I'm not sure about that yet | 15:14 | |
15:16
skids joined
|
|||
japhb | Apologies that I've only skimmed, but doesn't the quoting of << >> get what most people want from "shell quoting" when they don't *actually* want a shell? | 15:19 | |
Note << >> instead of < > | 15:20 | ||
AlexDaniel | japhb: I'm not really following you, can you show a code example? | 15:21 | |
japhb | AlexDaniel: Well, I'm not caught up with the details of FROGGS++'s new implementations, but in the old days I might have said something along the lines of run(<< echo "foo $bar" @baz <<wheee>> >>) and expected it to work safely | 15:25 | |
15:25
JimmyZ_ joined
|
|||
japhb | I guess that should have been @baz[] | 15:26 | |
But my point was that << >> has a lot of the DWIM that people want from shell quoting without the danger of an actual shell parsing. | 15:27 | ||
15:27
nys left
|
|||
jnthn | evening, #perl6 | 15:30 | |
yoleaux | 11:38Z <lizmat> jnthn: you might want to have a look at why github.com/rakudo/rakudo/commit/acaeb17897 was needed to revive Proc::Status | ||
11:41Z <lizmat> jnthn: as an added datapoint, check why test 13 in t/spec/S17-procasync/basic.t (line 39) fails | |||
japhb | o/ jnthn | 15:31 | |
nwc10 | good UGT heresy, jnthn | ||
DB are less late than the scandawedigian railways? | |||
15:31
CIAvash joined
|
|||
AlexDaniel | $output = run('echo', $test, :out).out.get; | 15:32 | |
$output = run(<<echo $test>>, :out).out.get; | |||
$output = qqx/echo $test/; | |||
timotimo | << >> is still not properly implemented, right? | ||
15:32
CIAvash left,
CIAvash joined
|
|||
AlexDaniel | japhb: you see, it does make it easier | 15:32 | |
japhb: maybe just a bit | |||
japhb | AlexDaniel: Of course, you can use real guillemots, but the keyboard I am on is less than awesome for entering Unicode ... | 15:33 | |
timotimo | « » | ||
japhb | And then it gets more readable | ||
AlexDaniel | oh right | ||
and it is actually one character shorter then | 15:34 | ||
15:34
tinyblak left
|
|||
AlexDaniel | still not shorter than qqx... | 15:34 | |
ugexe | i look forwarding to writing my first run(<<$cmd $var>>.list>>.value>>) | ||
15:34
araujo left
|
|||
japhb | I find I often "spend" that minor savings by adding an extra space before the first item and after the last. | 15:34 | |
Since Windows doesn't actually have multiple arguments, how is run() implemented there? | 15:35 | ||
dalek | kudo-star-daily: ff22ac7 | coke++ | log/ (2 files): today (automated commit) |
15:36 | |
rl6-roast-data: 25f8ebd | coke++ | / (9 files): today (automated commit) |
|||
japhb | (For precision, I mean that at the C runtime level, processes receive a single giant string, rather than pre-split command and args as in the *nix world -- and then they do their own command string parsing) | ||
ugexe | im not sure what the answer is, but you use %* in powershell | ||
FROGGS[mobile] | japhb: libuv handles it in some way | 15:37 | |
japhb fears that implementation | |||
15:37
lichtkind_ joined
|
|||
FROGGS[mobile] | we pass it a char ** | 15:37 | |
japhb | Good for libuv for at least presenting the better API to its callers, I suppose. But man, I hope they've implemented something that all the C runtimes will handle correctly .... | 15:38 | |
15:38
nys joined
15:39
lichtkind left
|
|||
jnthn | I suspect they've had more resources to think it through than we'd have been able to give to it if we'd solved it ourselves... :) | 15:41 | |
Plus it's presumably been exercised plenty thanks to node.js using libuv. | 15:42 | ||
japhb | True! | ||
skids also looked at better commandline parsing (emulating legacy syntaxes) a couple weeks ago. | 15:51 | ||
15:52
Ven joined
|
|||
skids | There wer a couple blockers for what I wanted to do. | 15:52 | |
The primary one was that Cursor doesn't work right yet from inside rules. | |||
15:53
shlomif left
|
|||
skids | So there was no way to build something like a <bag($bag)> subrule that would match strings from a bag anywhere in a grammar, but only as many times as they were in the bag. | 15:53 | |
Also I had to punt and rejoin ARGS with '\0' separators, for lack of matching against structural data. | 15:54 | ||
15:56
tinyblak joined
|
|||
TimToady is home again, and finds the air at sea level is too thick now... :) | 15:57 | ||
16:00
Ven left
|
|||
jnthn | I think the structural matching stuff is very post-6.0 :) Not sure what "Cursor doesn't work right yet" means, though... | 16:03 | |
skids | You don't get a current .pos. | 16:04 | |
Or a current partial match. | |||
jnthn | Depends. | ||
japhb | Welcome back to the lowlands, TimToady! | ||
jnthn | You should if in, say, a code block | 16:05 | |
skids | You don't though. | ||
jnthn | m: 'a' ~~ /(.) { say $/[0] } / | ||
camelia | rakudo-moar acaeb1: OUTPUT«「a」» | ||
skids | On the first time, sometimes you do. It is not reliable. | 16:06 | |
jnthn | It'd help if you actualy showed code. | ||
*actually | |||
skids digs around in his stuff. | 16:07 | ||
mst | skids: you're currently telling one of the authors you know his code better than him, without showing any examples | ||
skids: this is ... unlikely to help anybody | |||
jnthn | On the <bag($bag)> thing, where did you plan to keep the "how many we saw" state? | ||
skids | Dynamic probably. | ||
jnthn | In TOP? | ||
skids | Likely defined in a custom .parse. | 16:08 | |
mst | perl5 has a rule for regexp questions where we ask for input, expected output, and what code you have so far | 16:09 | |
generally for fiddly stuff an example of that form is the only way to clearly communicate | |||
so maybe that would be the best next step? | |||
16:10
estrabd joined,
khw joined
|
|||
skids | mst: I actually have to be somewhere right now, so I can't do that right now. Was looking for a quick example but looks like I was doing it on cli, so I'll have to go see if it's still in my history. | 16:11 | |
mst | skids: ok, just, "you don't though" isn't desperately easy to diagnose :) | 16:12 | |
TimToady pictures jnthn as a desperado... | 16:13 | ||
mst | if I was a gun fighter with his eyesight I'd be pretty desperate too | ||
vendethiel | *g* | 16:14 | |
jnthn | m: grammar G { method parse(*@, :$bag) { my %*BAGGED := $bag.BagHash; my $*BAG-RX = /| @($bag.keys)/; callsame; }; token TOP { <.bag>+ }; token bag { (<{ $*BAG-RX }>) <?{ %*BAGGED{~$0}-- }> } }; say G.parse('aabbc', bag => bag <c b a a b >); say G.parse('aaabbc', bag => bag <c b a a b >); | 16:15 | |
camelia | rakudo-moar acaeb1: OUTPUT«「aabbc」(Any)» | ||
jnthn | There's a quickly thrown together solution for the problem (or one like the problem) I think you're wanting to solve, btw. | 16:16 | |
oh, now I look at it it can be a tad simpler too | 16:17 | ||
m: grammar G { method parse(*@, :$bag) { my %*BAGGED := $bag.BagHash; my $*BAG-RX = /| @($bag.keys)/; callsame; }; token TOP { <.bag>+ }; token bag { ($*BAG-RX) <?{ %*BAGGED{~$0}-- }> } }; say G.parse('aabbc', bag => bag <c b a a b >); say G.parse('aaabbc', bag => bag <c b a a b >); | |||
camelia | rakudo-moar acaeb1: OUTPUT«「aabbc」(Any)» | ||
jnthn | a thing of type Regex already interpolates proper | ||
skids | jnthn: yeah that's about where I started but it eventually started breaking in alternations/backtracking. | ||
timotimo | yeah, you can't do backtracking withouta bit of extra thought | 16:18 | |
jnthn | Yeah, if you want to go backtracking you'll have fun with that approach | ||
timotimo | i actually had hoped we could get an UNDO phaser fired when backtracking over an embedded closure | ||
TimToady | backtracking doesn't tend to work with dynvars | ||
skids | I don't think you can do it at all, actually. I could not find a way. | ||
timotimo | you can detect you've backtracked by looking at your match object's "from" | 16:19 | |
record what you've matched so far at what position and subtract that from the original bag | |||
AFK for a bit | |||
jnthn | Aye, I guess a lot of our usage of them in the Perl 6 grammar works out 'cus we do one-pass parsing. | ||
TimToady | indeed | 16:20 | |
skids | timotimo: that was what I was trying to do but the .from was not carrying the value it should have been. And yes an undoish thing would obviate the need to do that. But I don;t knwo syntactically where we'd put it. | ||
16:20
uncleyear left
|
|||
timotimo | { check if item is in the bag and remove item from bag, return success; UNDO { put item back into the bag } } | 16:20 | |
but it's NYI and also not specced to work at all | 16:21 | ||
skids | timotimo: and in some cases, .from isn't quite enough you need the current partial match, which was also not always showing wat it should have. | ||
jnthn | I suspect the problem isn't immediate backtacking, but backtracking higher up the tree. | ||
16:21
uncleyear joined
|
|||
skids | timotimo: I do think that's a good possibility. It keeps the code in one place. | 16:22 | |
Anyway, got to go now. I'll circle back on it later with a not-working example. :-) | 16:23 | ||
jnthn | If you're willing to mark those places you can probably write a method bag-transaction($rx) { my %rollback = %*BAG-HASH; my \result = self.$rx(); %*BAG-HASH = %rollback unless result; result }, which you'd call as <bag-transaction <foo-that-calls-bag>> | ||
Not tested! :) | 16:24 | ||
(But the mechanism - receiving and invoking a regex on the current Cursor - is the exact one that things like before and after use.) | 16:25 | ||
fwiw, I don't think rt.perl.org/Ticket/Display.html?id=125485 is a bug at all; a block in an interpolation is just a normal block. | 16:27 | ||
(We parse it exactly the same as one, and we'd better had, or people will get mighty upset if lexicals they declare in one leak out) | 16:28 | ||
16:28
skids left
|
|||
TimToady | m: sub dump_array { say "({join ')(',OUTER::<@_>})\n"; } | 16:29 | |
camelia | ( no output ) | ||
TimToady | that is the correct way to write it | ||
(me agreeing with jnthn++ here) | 16:30 | ||
jnthn | I do, however, somewhat fear we're not smart enough to go and placeholderize the surroudning block. | ||
TimToady | m: sub dump_array { say "({join ')(',OUTER::<@_>})\n"; }; dump_array(1,2,3) | ||
camelia | rakudo-moar acaeb1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FPkjZk6By8Calling dump_array(Int, Int, Int) will never work with declared signature ()at /tmp/FPkjZk6By8:1------> 3{ say "({join ')(',OUTER::<@_>})\n"; }; 7⏏5dump_array(1,2,3)» | ||
jnthn | ('cus we don't look so deeply into OUTER:: yet) | ||
Should you be able to OUTER::<$^a> to declare a placeholder in your outer's scope too? :) | 16:31 | ||
TimToady | m: sub dump_array { @_; say "({join ')(',OUTER::<@_>})\n"; }; dump_array(1,2,3) | ||
camelia | rakudo-moar acaeb1: OUTPUT«(1)(2)(3)» | ||
TimToady | jnthn: well, as long as the code is being compiled in-line, seems like it's reasonable for it to work; can't do it from an EVAL of course | 16:32 | |
jnthn | *nod* | ||
While we're on it: do we also want OUTER::<$does-not-exist> to complain, or do we keep that late-bound? | 16:33 | ||
TimToady | std: { say OUTER::<$does-not-exist> } | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Variable OUTER::<$does-not-exist> is not predeclared at /tmp/TIHwEpx1SD line 1:------> 3{ say 7⏏5OUTER::<$does-not-exist> }Check failedFAILED 00:00 137m» | ||
jnthn | m: { say OUTER::<$does-not-exist> } # think it's not even an error | ||
camelia | rakudo-moar acaeb1: OUTPUT«(Any)» | ||
jnthn | std: { say OUTER::<$does-not-exist> }; say $does-not-exist | 16:34 | |
camelia | std 28329a7: OUTPUT«5===SORRY!5===Variable OUTER::<$does-not-exist> is not predeclared at /tmp/Al8jRu6sFb line 1:------> 3{ say 7⏏5OUTER::<$does-not-exist> }; say $does-noVariable $does-not-exist is not predeclared at /tmp/Al8jRu6sFb line 1:------> 3{ say OUTE…» | ||
jnthn | oops | ||
std: { say OUTER::<$does-not-exist> }; my $does-not-exist | |||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Variable OUTER::<$does-not-exist> is not predeclared at /tmp/8gls_dbEUh line 1:------> 3{ say 7⏏5OUTER::<$does-not-exist> }; my $does-notCheck failedFAILED 00:00 138m» | ||
jnthn | OK, so it really really does want a pre-decl. | ||
TimToady | yup | ||
16:34
diana_olhovik__ left
|
|||
jnthn | OK...guess that and the placeholder thing make sense to fix together. | 16:35 | |
I should probably think about some shopping and dinner first, though... | |||
TimToady | this also fits in with the hypothetical COMPILING::, which doesn't even have to be lexically inside | ||
would you mind picking up some half-and-half while you're out? 2% tastes funny in my coffee... | 16:37 | ||
jnthn | You...put dairy products in your coffee? o.O | ||
vendethiel | he did say it tasted funny... | 16:38 | |
jnthn | :D | ||
16:38
raiph joined
|
|||
jnthn | I guess this is what 5 years in Scandinavia gets me. :) | 16:38 | |
mst | whole milk or cream in a very dark coffee is nice occasionally | 16:39 | |
otherwise, yeah, wat | |||
TimToady brews his coffee very dark | |||
16:40
atroxaper joined
|
|||
TimToady | and half-and-half provides just about the right number of calories for bootstrapping one's brane if one is not a breakfast eater | 16:40 | |
16:40
JimmyZ_ left
|
|||
mst | ah, right, which probably approximates whole milk with maybe a touch of extra cream | 16:42 | |
mst had to google to work out what it was ;) | |||
jnthn | mst: heh, me too :) | 16:43 | |
anyways, bbiab | 16:44 | ||
TimToady | well, supposedly half milk, half cream, but I doubt anyone hits that exactly... | ||
16:45
atroxaper left
16:49
araujo joined
|
|||
raydiak | g'morning #perl6 | 16:57 | |
dalek | kudo/nom: 243e400 | moritz++ | src/core/Int.pm: Give Int a constructor |
||
kudo/nom: 99724b1 | moritz++ | src/core/Proc.pm: Avoid swallowing exceptions from Proc.{spawn,shell} ... though I cannot find a case where it matters; at best it is a micro optimization |
|||
17:06
rindolf joined
17:21
domidumont left
17:25
telex left
17:26
telex joined
|
|||
zostay | is there a maximum line length for buffered IO? say when slurping or reading lines? | 17:27 | |
TimToady | shouldn't be, or it's a bug | 17:28 | |
ever since Perl 1 | |||
zostay | hmmm... ok, trying to figure out why panda has trouble reading the projects.json file on travis-ci.org | 17:29 | |
the file is downloading correctly onto the server, but something is going wrong when it slurps it or the JSON module parses it | |||
trying to pin down which | |||
might be related to the file system used there | 17:30 | ||
17:30
FROGGS[mobile] left
|
|||
ugexe | dont know why the filesystem would manifest problems now suddenly | 17:30 | |
17:30
diana_olhovik_ joined
|
|||
zostay | dunno, looks like the file is slurped correctly | 17:30 | |
got the correct number of bytes at least in my test | 17:31 | ||
17:31
FROGGS joined
|
|||
zostay | still can't figure out why JSON::Tiny chokes on the parse then, but doesn't choke on my own machine ever | 17:32 | |
in fact, it's not even consistent across builds, some of my builds are fine and some aren't, it seems | |||
but the ones that aren't are consistently bad, but have an identical .travis.yml file | |||
17:33
amurf joined
|
|||
zostay | debugging this is a PIT | 17:33 | |
PITA | |||
17:35
FROGGS left
|
|||
ugexe | do you know what error it gives when it chokes? | 17:36 | |
RabidGravy | memory? | 17:37 | |
17:37
amurf left
|
|||
zostay | travis-ci.org/zostay/perl6-ArrayHa...3264#L1072 | 17:38 | |
17:39
tinyblak left
|
|||
ugexe | i take it that also happens if you dont wget the projects.json yourself? | 17:39 | |
zostay | yes, i've checked the file and it's downloading all 123153 bytes (or whatever) | ||
unless something is getting corrupted, it has the file | 17:40 | ||
i don't see anything weird and json_pp will parse it just fine on travis-ci | |||
ugexe | and JSON::Tiny will not parse it? | 17:41 | |
zostay | apparently not, it would be nice if JSON::Tiny could report where it is having the trouble | ||
ugexe | try 'from-json' (not loading JSON::Tiny) | 17:42 | |
dalek | c: bf45d64 | FROGGS++ | lib/Type/IO.pod: fix documentation of shell() |
||
ugexe | the built in json deal | ||
your `cat ~/.rakudobrew/moar-nom/install/share/perl6/site/panda/projects.json` show no output | 17:44 | ||
zostay | that's weird, travis CI must have dropped the long line from the file, it was definitely there before | 17:50 | |
i've done ls -l in other builds in this troubleshooting series that shows the correct number of bytes still ;) | 17:51 | ||
travis-ci.org/zostay/perl6-ArrayHa...17337#L172 | |||
cat is empty there too for some reason | |||
i was first fooled though because travis cuts off extra long lines, it does not handle them well | 17:52 | ||
ah... you can download the log and see the cat output | 17:53 | ||
vendethiel | moritz: thanks | 17:56 | |
zostay | trying a new build with from-json() parsing lines to see what the output is | ||
i give up for now... it just parsed correctly for me using both a pretty-printed version of the JSON and the original one-line long JSON | 18:02 | ||
or i'm a complete moron | 18:03 | ||
and my own META.info is wrong and i've been running down the wrong rabbit hole | 18:04 | ||
dalek | kudo/nom: 4638656 | TimToady++ | src/Perl6/Grammar.nqp: explicitly disallow ::$foo and such |
18:05 | |
vendethiel | TimToady: aren't those $ going to interpolate? | 18:07 | |
oh, i'm dumb. it's by design obviously | |||
18:08
FROGGS joined
|
|||
jnthn | m: ::$foo | 18:08 | |
camelia | rakudo-moar 99724b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hC88J5S53PTwo terms in a rowat /tmp/hC88J5S53P:1------> 3::7⏏5$foo expecting any of: infix infix stopper statement end statement modifier s…» | ||
jnthn | std: ::$foo | ||
camelia | std 28329a7: OUTPUT«5===SORRY!5===Two terms in a row at /tmp/okNtYcj63O line 1:------> 3::7⏏5$foo expecting any of: POST feed_separator infix or meta-infix infixed function postcircumfix postfix postfix_prefix_meta_operator postop sta…» | ||
TimToady | m: ::%foo | 18:10 | |
camelia | rakudo-moar 99724b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/drMnUERr7OUndeclared routine: foo used at line 1» | ||
TimToady | well, yesterday timotimo++ was attempting ::&foo | ||
which also looks like an infix | |||
TimToady should also point out that he has already classified STD as a prototype that is being thrown away, so is not inclined to maintain it | 18:12 | ||
ugexe | m: FOO: my $bar = gather for ^5 { next FOO if $_ > 2; take $_ }; # is label on gather NYI? or is this just wrong? | 18:14 | |
camelia | rakudo-moar 99724b: OUTPUT«Unhandled exception: No exception handler located for next_label at src/gen/m-CORE.setting:13092 (/home/camelia/rakudo-inst-1/share/perl6/runtime/CORE.setting.moarvm:next:34) from src/gen/m-CORE.setting:716 (/home/camelia/rakudo-inst-1/share/perl…» | ||
jnthn | ugexe: You want the label next to the for | ||
TimToady | otoh, there are still some things that STD does better, like implementing backtrack controls, and actually closing over its backtrack points... | 18:16 | |
ugexe | ah ha | ||
FROGGS | jnthn: have you spectested today already? I wonder if my run()/shell() changes break anything there | 18:24 | |
jnthn: I no access to my windows box currently | |||
especially S32-io/pipe.t is of interest | 18:25 | ||
jnthn | FROGGS: No, but I've got a fresh build done :) | 18:26 | |
FROGGS | \o/ | ||
jnthn runs spectest | |||
TimToady | m: ::&foo | 18:27 | |
camelia | rakudo-moar 463865: OUTPUT«5===SORRY!5=== Error while compiling /tmp/alDUeYFgUiMalformed lookup of ::&foo; please use ::('&foo'), ::{'&foo'}, or ::<&foo>at /tmp/alDUeYFgUi:1------> 3<BOL>7⏏5::&foo expecting any of: term» | ||
18:28
colomon joined
18:47
AlexDaniel left
18:50
colomon left
|
|||
dalek | ast: 4d56eb4 | FROGGS++ | S17-procasync/basic.t: replace Proc::Status by Proc |
18:51 | |
jnthn | FROGGS: ohnoes! | 18:53 | |
t\spec\S32-io\pipe.t (Wstat: 1024 Tests: 11 Failed: 4) Failed tests: 4, 6, 8, 10 Non-zero exit status: 4 Parse errors: Bad plan. You planned 13 tests but ran 11. | |||
FROGGS | ó.ò | 18:54 | |
jnthn | hm, and it hangs when I run it at the command line after test 11, rather than failing | ||
FROGGS | and the other failures are potentially about line endings | 18:55 | |
though, I'm not sure | |||
18:56
bin_005 joined
|
|||
FROGGS | ahh no, test 4 is about the exit code | 18:56 | |
18:56
molaf__ joined
|
|||
FROGGS | I'll look into it on Monday | 18:56 | |
jnthn | FROGGS: gist.github.com/jnthn/285493f9cba44ba7f006 | ||
18:57
colomon joined
|
|||
FROGGS | huh | 18:57 | |
that probably mean that libuv does the autoquoting wrong? | 18:58 | ||
jnthn | my $sh1 = run($*EXECUTABLE, '-e', 'say join "\n", reverse lines', :in, :out); | ||
maybe so :S | |||
18:59
molaf_ left
|
|||
japhb | That's sounds just like what I was afraid of. :-( | 18:59 | |
FROGGS | $ perl6 -e "run('perl6', '-e','say 42')" | 19:01 | |
42 | |||
I guess that explodes for you? | |||
which means, it does not quote things containing whitespace | |||
jnthn | FROGGS: No explosion for that one | 19:02 | |
oh, but | |||
japhb | Embedded spaces *and* embedded quotes, perhaps? | ||
jnthn | perl6 -e "say run('perl6', '-e','say 42')" | ||
Proc.new(in => IO::Pipe, out => IO::Pipe, err => IO::Pipe, exitcode => -16, pid => Any, signal => 38) | |||
sad exit code is sad | |||
FROGGS | true | 19:03 | |
japhb | Ah, so it just needs the spaces. :-( | ||
FROGGS | but anyway | ||
jnthn | Dammit. | ||
FROGGS | jnthn: I'll investigate | ||
jnthn | FROGGS++ | ||
japhb | Are the pipes readable even with failed exitcode? | ||
(So you can read the error message?) | |||
FROGGS | japhb: yes | ||
japhb | OK, good. | ||
jaffa4 | I have a bug, the compiler just quits silently, no error message.. I know it idid not finish compiling | 19:10 | |
What dod you do if that happens? | |||
FROGGS | jaffa4: can you paste the output you got? | 19:11 | |
jaffa4 | no output | ||
no error message | |||
FROGGS | but there was output before it just stopped, right? | ||
jaffa4 | before? | ||
FROGGS | aye | ||
jaffa4 | no | ||
FROGGS | I'd try to find out what the next step would be, and run that manually (under valgrind or gdb) | 19:12 | |
dalek | kudo/nom: b197408 | FROGGS++ | src/core/IO/Handle.pm: fix deprecation begin for pipe()/open(:p) |
19:13 | |
jnthn | If you think it's a compiler crash, also try running with --stagestats | 19:14 | |
jaffa4 | it is a compiler crash because I know there are still some unresolved variables | 19:15 | |
tage start : 0.000 then Stage parse :... that it | 19:16 | ||
19:16
yqt joined
|
|||
FROGGS | jaffa4: what is the command you are running? | 19:18 | |
jaffa4 | perl6-m.bat --stagestats D:\m\p6\getopt_LONG\lib\Getopt\Long.pm6 | ||
FROGGS | ahh | ||
jaffa4: is that code in a repository somewhere? | 19:20 | ||
jaffa4 | FROGGS: gist.github.com/jaffa4/18c3e7816ecdb518ecec | 19:22 | |
FROGGS | jaffa4: I replied with the output I get | 19:24 | |
jaffa4 | ok I used star which is not sensitive about unit | 19:26 | |
if you add missing unit, what do you get? | 19:27 | ||
FROGGS: | 19:33 | ||
FROGGS | jaffa4: I replied again | 19:36 | |
jaffa4 | so it is a compiler bug, but current compiler does not have any more | 19:37 | |
It just exists in the last Rakudo start | |||
dalek | ast: 14607d6 | FROGGS++ | S05-match/capturing-contexts.t: RT #125345, test (non-)capturing and cursor pos |
||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125345 | ||
FROGGS | jaffa4: yeah possible... sadly I have no old star to confirm that | 19:38 | |
19:41
uncleyear left,
uncleyear joined
19:49
mj41 joined
19:50
AlexDaniel joined
|
|||
dalek | kudo/nom: 4cfec0c | FROGGS++ | src/Perl6/Actions.nqp: propagate ignorecase into regex subrules, RT #116256 |
19:58 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=116256 | ||
dalek | ast: 6ecf415 | FROGGS++ | S05-modifier/ignoremark.t: add tests for subrules under ignoremark, RT #116256 |
19:59 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=116256 | ||
jaffa4 | How do I clear configure settings? | 20:01 | |
FROGGS | make realclean or make clean? | ||
jaffa4 | no it uses bad make | 20:02 | |
japhb prefers the Aliens option: delete the whole tree and start from scratch ... but then he's seen all the configure/make bugs over the years | |||
FROGGS | gnight | 20:03 | |
20:03
FROGGS left
|
|||
japhb | (It's why I keep my local clone separate from my build tree) | 20:03 | |
o/ FROGGS | |||
TimToady | you're current configuration is in config.status | 20:06 | |
*your | 20:07 | ||
Each of you're possessive pronouns should have it's own apostrophe. | 20:08 | ||
20:10
leont left,
diana_olhovik_ left
|
|||
geekosaur | apos'trophe's ar'e f'un? | 20:11 | |
jaffa4 | kool | ||
20:12
darutoko left
|
|||
raydiak | .oO( as long as they aren't in you'r Package'Names, cuz that's ugly ) |
20:15 | |
20:17
atroxaper joined
|
|||
TimToady | "aren't" and "that's" arent possessive, so should be spelled "arent" and "thats" :-) | 20:18 | |
20:21
atroxaper left
|
|||
ugexe | m: say Version.new("1").ACCEPTS(Version.new("v1")); # should these compare to Order::Same? i.e. treat /^v [\. || \d || '*']/ differently | 20:23 | |
camelia | rakudo-moar 4cfec0: OUTPUT«False» | ||
geekosaur | (Package'Names? is that perl5? :p ) | 20:24 | |
japhb | I'm reminded of the apostropocalypse (in Neal Stephenson's novel Reamde, in reference to an actual linguist getting frustrated at a fantasy author's penchant for added apostrophes in every other word in his made-up languages.) | 20:27 | |
geekosaur | I was roughly channeling that with the "are fun" comment, yes | 20:28 | |
s/roughly/loosely/ | |||
20:28
rindolf left
|
|||
jaffa4 | make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4ff283) | 20:28 | |
raydiak | geekosaur: yes you can use ' instead of :: in p5; I think it actually started in an earlier version though | 20:29 | |
geekosaur | yes, that was the joke | ||
perl 5 introdiuced :: as an alternative to ' | |||
raydiak | ah | ||
geekosaur | (' was in use as package separator at least back to perl 3) | 20:30 | |
TimToady | yes, was poorly borrowed from Ada | ||
raydiak | I'm glad to have been spoiled by the better syntaxes of my time :) | 20:31 | |
jaffa4 | :: is more visible than . . is easier to tyoe | ||
Dont' you agree, TimToady? | 20:32 | ||
20:32
Khisanth left
|
|||
TimToady | well, we do try to avoid confusing those two concepts visually | 20:33 | |
20:34
Ven joined
20:36
Khisanth joined
20:42
colomon left,
CIAvash left
20:43
mj41 left
20:45
domidumont joined
20:47
mj41 joined
20:49
domidumont left
20:51
rindolf joined,
rurban left
20:52
gcole left
20:54
rurban joined
20:56
rindolf left
20:57
Ben_Goldberg joined
21:03
VinceDee joined
21:05
diana_olhovik joined,
kaare_ left,
bin_005 left
21:06
bin_005 joined
21:12
pmurias left,
diana_olhovik left
|
|||
jnthn | sleep; should have some hacking time tomorrow, and certainly will in the next week :) o/ | 21:13 | |
lizmat | good night, jnthn! | 21:14 | |
hmmm... at appears HEAD has failures in t/spec/S14-roles/parameterized-type.t and t/spec/S04-blocks-and-statements/temp.t | 21:15 | ||
dalek | kudo/nom: bbe2ffa | lizmat++ | src/Perl6/Grammar.nqp: Turn a print on STDERR into a worry Fixes #125495 |
21:16 | |
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125495 | ||
21:18
jaffa4 left
|
|||
lizmat | fwiw, I had run into the print on STDERR and was thinking to myself: WTF ? | 21:19 | |
21:19
rurban left
21:22
rurban joined
21:29
rurban left
|
|||
dalek | ast: 1f37c47 | lizmat++ | S06-signature/multi-invocant.t: Add some Signature.multi-invocant tests |
21:43 | |
kudo/nom: 89ff9b3 | lizmat++ | t/spectest.data: Add some Signature.multi-invocant tests |
21:44 | ||
lizmat | m: (sub a(;;$a)).signature.perl.say # seems we don't handle this one correctly (anymore) | 21:45 | |
camelia | rakudo-moar 4cfec0: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hkUKiD2XCbMissing blockat /tmp/hkUKiD2XCb:1------> 3(sub a(;;$a)7⏏5).signature.perl.say # seems we don't  expecting any of: new name to be defined» | ||
lizmat | m: (sub a(;;$a) {}).signature.perl.say # seems we don't handle this one correctly (anymore) | ||
camelia | rakudo-moar 4cfec0: OUTPUT«:($a)» | ||
lizmat | expected to see (;;$a) there | ||
21:45
zakharyas joined
|
|||
lizmat | m: (sub a($b;;$a) {}).signature.perl.say # this seems to work ok | 21:45 | |
camelia | rakudo-moar 4cfec0: OUTPUT«:($b;; $a)» | ||
lizmat | too sleepy now, will look at it tomorrow, so good night, #perl6! | 21:47 | |
21:51
mj41 left,
vike left
|
|||
timotimo | "new name to be defined" is also wrong there, isn't it? | 21:52 | |
21:53
mj41 joined
21:54
espadrine joined
21:59
rurban joined
22:00
rurban left
22:02
mj41 left
22:03
Begi joined
22:08
Begi left
22:09
vendethiel- joined
22:11
vendethiel left,
Ven left
22:26
Ven joined
22:28
vike joined
22:34
zakharyas left
22:35
leont joined
22:39
lichtkind_ left
22:43
bjz joined
22:44
espadrine left
22:56
bjz left
22:57
bjz joined
22:58
RabidGravy left
23:18
spider-mario left
23:31
quokka_ joined
23:38
lolisa joined
23:46
bjz left
23:52
bjz joined
23:55
atroxaper joined
23:59
atroxaper left
|