»ö« 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
vendethiel joined
|
|||
dalek | c: 9b0f023 | skids++ | lib/Type/Array.pod: Correct the slurpies in documented signatures |
00:01 | |
00:14
Peter_R left
00:17
BenGoldberg joined
00:18
BenGoldberg left
00:19
BenGoldberg joined
00:24
abaugher left
|
|||
dalek | c: 7fb82bf | (David H. Adler)++ | lib/Type/Array.pod: Added usage statements to Array.pod |
00:25 | |
c: b25a49a | (David H. Adler)++ | lib/Type/Array.pod: Merge branch 'usage_statements' |
|||
c: 4f0449c | (David H. Adler)++ | lib/Type/Array.pod: Merge branch 'master' of github.com/perl6/doc Resolved conflicts between commit 9b0f0238fe073a050e1a31970fbd9b07106badb3 and pull request #141 |
|||
00:26
abaugher joined
|
|||
[Coke] | dha: IWBNI "unlike perl5" blocks were somehow marked. | 00:26 | |
(people reading perl 6 docs shouldn't need to care about perl 5 if they don't need to) | |||
dha | IWBNI? | ||
[Coke] | S99:IWBNI | 00:27 | |
it would be nice if | |||
dha | Ok, marked... how? | 00:28 | |
[Coke] | with a begin/end block perhaps? | ||
then they could be fomratted differently by default, milder for standard docs, but highlighed if someone wanted. | |||
=begin perl5/ =end perl5 | |||
[Coke] drops off his precarious wifi. laters. | 00:29 | ||
ZoffixWork | \o | ||
ShimmerFairy | [Coke], dha: it would have to be spelled Perl5, since 'perl5' is reserved :) | 00:31 | |
dha | . tell skids I had to resolve a conflict with your commit on Array.pod. I think I did it correctly, but take a look to make sure I didn't mess it up. | 00:32 | |
ShimmerFairy | so =begin Perl5 ... =end Perl5 (and then theoretically the doc/ repo could have a module that provides the appropriate class to implement Perl5, but I don't know how the current Pod parser handles that) | ||
dha | .tell skids I had to resolve a conflict with your commit on Array.pod. I think I did it correctly, but take a look to make sure I didn't mess it up. | ||
yoleaux | dha: I'll pass your message to skids. | ||
skids | ./ | 00:33 | |
yoleaux | 00:32Z <dha> skids: I had to resolve a conflict with your commit on Array.pod. I think I did it correctly, but take a look to make sure I didn't mess it up. | ||
skids | Sorry I didn't expect you'd keep editing that file. | ||
00:41
pyrimidine joined
|
|||
dalek | osystem/softmoth-pod-markdown: 0177c7a | (Tim Smith)++ | META.list: Take over maintenance of perl6-pod-to-markdown It appears that jpve is not available to maintain the module at this time, given no response on pull requests for over 3 months. I am willing to maintain the module in the mean time. |
00:41 | |
00:43
dha left,
pyrimidi_ left
00:44
raiph left
00:46
dha joined
|
|||
dha | skids - did I at least not screw things up? :-) | 00:46 | |
skids | looks fine | ||
dha | whew. thanks. | 00:48 | |
00:56
TEttinger left
|
|||
dalek | c/usage_statements: 2dd4903 | (David H. Adler)++ | lib/Type/Hash.pod: Added usage statements to C<push> |
01:15 | |
dha | Hm. There's discussion of the .kv method in Hash.pod. Should it be explicitly mentioned where that comes from so someone seeing it for the first time can find the actual docs? | 01:17 | |
ShimmerFairy | dha: you could provide a link on the first mention or so of .kv | 01:19 | |
dalek | osystem: 0177c7a | (Tim Smith)++ | META.list: Take over maintenance of perl6-pod-to-markdown It appears that jpve is not available to maintain the module at this time, given no response on pull requests for over 3 months. I am willing to maintain the module in the mean time. |
||
osystem: e1162fa | (Zoffix Znet)++ | META.list: Merge pull request #64 from perl6/softmoth-pod-markdown Take over maintenance of perl6-pod-to-markdown |
|||
ShimmerFairy | dha: although Hash.kv does exist, so perhaps that method should be doc'd :) | 01:20 | |
01:20
sufrostico left,
ZoffixWork left
|
|||
dha | ShimmerFairy - the first is what I was thinking, but if Hash has its own .kv, yes, that probably should be documented. | 01:21 | |
is-prime has an optional $tries argument. Can I assume that in method form, it can be used as C<$int.is-prime($tries)> or C<$int.is-prime: $tries> ? | 01:36 | ||
And, of course, I assume C<is-prime $int, $tries> | |||
skids | I think it was just removed? Don't know why. | 01:41 | |
m: 3.is-prime(:tries(400)).say | |||
camelia | rakudo-moar 61d1f9: OUTPUT«True» | ||
skids | or something went on with it in commit 59cb611af9 | 01:42 | |
dha | It certainly doesn't spit at you. | 01:45 | |
skids | m: is-prime(3, :tries(400)) | 01:47 | |
camelia | rakudo-moar 61d1f9: OUTPUT«WARNINGS:Useless use of "is-prime(3, :tries(400))" in expression "is-prime(3, :tries(400))" in sink context (line 1)Unexpected named parameter 'tries' passed in block <unit> at /tmp/oGObJVJ67w:1» | ||
skids | Because methods are tolerant, but subs are not, so the above. | ||
dha | Ah, there it is. Shall I take it out of the docs, then? | 01:50 | |
01:51
pyrimidi_ joined
|
|||
dalek | c/usage_statements: 3bed9cc | (David H. Adler)++ | lib/Type/Int.pod: Added usage statements for C<chr>, C<expmod>, and C<is-prime> |
01:53 | |
01:53
pyrimidine left
01:55
reneeb2 left
|
|||
skids | dha: Yes I looked at the conversation and it amounts to "we're taking it out until someone asks for it and if we put it back in it will be either a named or a different function" | 01:57 | |
dha | ok. Will remove from signature and doc. | 01:58 | |
done. | 02:00 | ||
dalek | c: 47e2521 | (David H. Adler)++ | lib/Type/Int.pod: Removed $tries from signature and docs of is-prime to bring docs in line |
||
02:05
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
dalek | c/usage_statements: 2d7c132 | (David H. Adler)++ | lib/Type/Int.pod: Added usage statements for C<lsb>, C<msb>, and C<unival> |
02:05 | |
ShimmerFairy | Apparently, trying to subclass Grammar and replacing some of its various "!..." methods (since I need to add something that needs to be shared between cursors, like $!shared) gets me an unhelpful "Unknown QAST node type NQPMu" error :P | 02:12 | |
02:12
kid51 left
|
|||
ShimmerFairy | The problem with it is that --ll-exception is useless in telling me what I did wrong, and I can't even so much as get --target=parse output | 02:15 | |
dalek | c/usage_statements: cac4619 | (David H. Adler)++ | lib/Type/Pair.pod: Added usage statements for C<antipair>, C<value>, C<cmp>, C<fmt>, C<kv>, |
02:17 | |
ShimmerFairy | The 'easiest' solution I can see for now is to basically reimplement src/QRegex/Cursor.nqp, but in a pure-P6 way :/ . Seems suboptimal, but should at least be interesting. | 02:21 | |
02:23
raiph joined
|
|||
dalek | c/usage_statements: 9b0f023 | skids++ | lib/Type/Array.pod: Correct the slurpies in documented signatures |
02:28 | |
c/usage_statements: b25a49a | (David H. Adler)++ | lib/Type/Array.pod: Merge branch 'usage_statements' |
|||
c/usage_statements: 4f0449c | (David H. Adler)++ | lib/Type/Array.pod: Merge branch 'master' of github.com/perl6/doc Resolved conflicts between commit 9b0f0238fe073a050e1a31970fbd9b07106badb3 and pull request #141 |
|||
02:28
mr_ron left
|
|||
c/usage_statements: 9cbd4ec | (David H. Adler)++ | lib/Type/Array.pod: Bring Array.pod in line with commit |
|||
c/usage_statements: aeab89d | (David H. Adler)++ | /: Merge branch 'master' into usage_statements |
|||
ShimmerFairy | (btw, the easier alternative to subclassing cursors and whatnot would be to force module users to declare particular dynamic variables, but that doesn't really seem cool.) | 02:30 | |
skids | Yeah I was working on something the other day tat had me in the same trace-limbo situation. | 02:32 | |
dalek | c: 2dd4903 | (David H. Adler)++ | lib/Type/Hash.pod: Added usage statements to C<push> |
||
doc: 3bed9cc | (David H. Adler)++ | lib/Type/Int.pod: | |||
doc: Added usage statements for C<chr>, C<expmod>, and C<is-prime> | |||
02:32
dalek left,
dalek joined,
ChanServ sets mode: +v dalek,
noganex joined
|
|||
skids | (At least if you die in P6 code, you usually can figure out what died due to the error message about not being able to make the error message saying what type of exception it was trying to make) | 02:33 | |
02:33
laouji joined,
geekosaur left
02:34
geekosaur joined
02:35
araujo__ left,
noganex_ left
|
|||
ShimmerFairy | skids: sometimes I wonder how NQP would benefit if it was developed a bit more like a real language, instead of just being a stepping stone. Things I've run into frequently include NQP-level errors (though this one is a first for being unhelpful), and NQP objects not having .gist and such. | 02:37 | |
02:37
araujo__ joined
02:38
vvz left
|
|||
skids | Might end up being slower, though. | 02:40 | |
ShimmerFairy | skids: sure, it's just the .gist issue in particular that gets annoying. | ||
m: say Cursor.^methods | 02:41 | ||
camelia | rakudo-moar 61d1f9: OUTPUT«Method 'gist' not found for invocant of class 'NQPRoutine' in block <unit> at /tmp/ldygB1ipq2:1» | ||
ShimmerFairy | for example ^ | ||
skids | Yeah. I wonder if it would be expensive to macroize ".gist" at a P6 level and fix up NQP data structures that way. | 02:43 | |
ShimmerFairy | There's nothing wrong with NQP exactly, it's just the points where NQP and P6 mix together, and don't do so very well, that's annoying. (Trying to mess with Cursor ends up bringing up this problem, since everything regex-based is rooted firmly in NQP-land) | 02:44 | |
02:48
tokuhiro_ joined
02:52
vendethiel- joined,
tokuhiro_ left
|
|||
skids wanted to use a vaguely fp sounding term for a meta behavior, decided he'd better look it up to see if it was an appropriate use, and got totally lost in wikipedia fp pages which may as well have been written in iambic pentameter by The Riddler. | 02:53 | ||
02:54
vendethiel left
|
|||
dha | Hm. Arrays seem to have min and max methods that are not documented. Unless it inherits it from somewhere. | 03:00 | |
skids | dha: design docs say they come from List. Codewise, after GLR, they are really from Iterable. | 03:04 | |
dha | They're not documented in List either. | 03:05 | |
But I'll look at Iterable | |||
skids | S32-setting-library/Containers.pod | ||
dha | Nope. not documented in Itreable either. Hm... | 03:06 | |
lichtkind | good night | 03:07 | |
03:07
lichtkind left
|
|||
dha | In fact, the only min and max documentation is in Range and Supply. | 03:11 | |
skids | (well codewise we cheated and they are from "Any" via an augment rather than Iterable, and Any makes any non-Iterable object into a 1-list but doe not compose Iterable) | 03:12 | |
dha | Yeah, not documented there either. :-) | 03:13 | |
If we ever get to the end of this class rabbit hole, we should probably document it. :-) | 03:14 | ||
ShimmerFairy | I think one of the biggest problems with rakudo's roles is that they're for the most part just empty roles that are effectively glorified annotations. | 03:15 | |
skids | You mean most of the MetaModel things? | ||
ShimmerFairy | (And I imagine that's at least in part because you can't stub multi methods in a role to require their implementation) | 03:16 | |
skids: not Metamodel, the src/core roles. Positional, Stringy, etc. | |||
03:17
mr_ron joined
|
|||
ShimmerFairy | When it comes to stubbed role methods, the RoleToClassApplier goes by name only (not checking signatures), and ignores multi methods entirely, leaving it to the dispatcher to come up with an ambiguous call error. | 03:18 | |
skids | Not that there's anything wrong with using them as annotations, but probably more code would filter into them if they worked "better", yes. | ||
03:20
laouji left
|
|||
ShimmerFairy | skids: of course not, if you just want to use them as a 'tag', then fine. But especially the core roles should be requiring and/or defaulting methods for things doing them. | 03:21 | |
03:25
aborazmeh left
03:30
dha left
03:54
raiph left
04:02
BenGoldberg left
04:03
maverick87 joined
04:06
mr_ron left,
mr_ron joined
04:08
maverick87 left
04:12
pyrimidine joined
04:14
pyrimidi_ left
04:24
khw left
04:25
pyrimidi_ joined
|
|||
[Coke] | RT: 1041; xmas: 98; testneeded: 9; glr: 4; weird: 12; lta: 87 | 04:26 | |
04:27
pyrimidine left
04:28
AlexDaniel left
04:36
pyrimidine joined
04:39
pyrimidi_ left
04:49
tokuhiro_ joined
04:54
tokuhiro_ left
04:58
mr_ron left
05:18
mr_ron joined
05:26
FROGGS[tab] left
05:32
araujo__ left
05:40
TEttinger joined
05:48
skids left
06:00
araujo joined
06:01
araujo left,
araujo joined
06:03
vendethiel- left
06:13
mr_ron left
06:25
Ven joined
06:28
rurban joined
06:37
kaare__ joined
06:43
crux left,
crux joined
06:50
FROGGS[tab] joined
06:51
tokuhiro_ joined
06:56
tokuhiro_ left
06:57
RabidGravy joined
|
|||
gfldex | m: my constant @fib := 0, 1, *+* ... *; @fib[^10].perl.say; | 07:00 | |
camelia | rakudo-moar 61d1f9: OUTPUT«(0, 1, 1, 2, 3, 5, 8, 13, 21, 34)» | ||
gfldex | .tell AlexDaniel the correct correction is m: my constant @fib := 0, 1, *+* ... *; @fib[^10].perl.say; | 07:01 | |
yoleaux | gfldex: I'll pass your message to AlexDaniel. | ||
07:06
xfix joined,
xfix left,
xfix joined
|
|||
gfldex | design.perl6.org/S02.html#Names_and_Variables seams to be pre-GLRish | 07:14 | |
constant @your-name-here doesn't do Positional but Seq | 07:15 | ||
TimToady: you may want to have a look at ^^^ | |||
07:18
mr_ron joined
|
|||
Woodi | hallo #perl6 :) | 07:30 | |
writing my $output = run($command, $arg1, $arg2, :out).out.slurp-rest; is over-terrible replacement for qqx// | 07:31 | ||
but removing qqx// is not necesarry | 07:32 | ||
07:32
Ven left
|
|||
Woodi | .out/.IO parts are realy needed ? | 07:33 | |
07:34
domidumont joined,
Ven joined
07:38
domidumont left
07:39
domidumont joined
07:41
rindolf joined
07:48
pyrimidi_ joined
07:51
pyrimidine left,
[ptc] joined,
[ptc] left
08:03
vvz joined
|
|||
Woodi | as for LINQ: I think it was MS post-SQL-embaded idea and we are quite obligated to do something post-LINQ. So: something to proces one table/array is unnecesary, we needs foreign keys integration; XML have XQuery - not having it in Perl6 LINQ would be mistake; LINQ4hash is bad, LINQ4nestedData is good | 08:03 | |
08:06
mr_ron left
08:07
Ven left
08:09
Ven joined
08:11
rurban left
|
|||
dalek | kudo/nom: 18b7f1e | lizmat++ | src/core/List.pm: Simplify List.pick After sleeping on it, I realised that having two different classes + methods just to prevent a single native int to be incremented every iteration, is a bit of overkill to get better performance. |
08:14 | |
08:22
darutoko joined
08:33
domidumont left
08:39
Ven left
08:40
FROGGS joined
08:43
RabidGravy left
08:53
tokuhiro_ joined
08:54
Ven joined
08:57
tokuhiro_ left
09:14
paulmr joined
09:19
mr_ron joined
09:29
rindolf left
|
|||
lizmat | star: say <a b c>.pick(Inf) | 09:30 | |
camelia | star-m 2015.03: OUTPUT«b a c» | ||
lizmat | *sigh* | ||
Ven | m: say <a b c>.pick(Inf) # that works now? | 09:33 | |
camelia | rakudo-moar 18b7f1: OUTPUT«Cannot coerce Inf or NaN to an Int in block <unit> at /tmp/mmNsdfSFf1:1Actually thrown at: in block <unit> at /tmp/mmNsdfSFf1:1» | ||
Ven | oh.. | ||
09:34
philh joined
|
|||
lizmat | Ven: it used to work, I broke it | 09:37 | |
but there was no test for it | |||
Ven | oh! | ||
well, when one commits that much code, something is bound to get a bit broken at some point :-). | |||
09:38
mattprelude joined
|
|||
nine | Woodi: as I see it: people hate writing SQL. To be precise, they hate writing select lists and join conditions. The rest really is quite ok, since it's a very readable and even succinct way to specify queries. In Perl 6 this could result in: my $results = from $table join .relation1 left join .relation2 where .foo > 1 and .relation1.bar = 'baz' select *; | 09:39 | |
09:40
spider-mario joined
|
|||
nine | And I really like how we can use Whatever there to mean exactly the same in SQL :) | 09:40 | |
cognominal | [Coke] what are these numbers? | 09:41 | |
09:41
paulmr left
|
|||
cognominal | [06:26] <[Coke]> RT: 1041; xmas: 98; testneeded: 9; glr: 4; weird: 12; lta: 87 | 09:41 | |
09:41
mattprelude left
|
|||
geekosaur | bug summary. 1041 open tickets; 98 tagged as needed for release, 9 tagged as fixed but test needed, 4 tagged as GLR-related; 12 tagged as [WEIRD]; 87 tagged as correct behavior but needing better error messages | 09:42 | |
s/needed for release/release blockers/ | 09:43 | ||
09:44
Ven left
|
|||
geekosaur | ([WEIRD] might be summarized as "That isn't right. That isn't even wrong." | 09:45 | |
) | |||
FROGGS | o/ | 09:46 | |
lizmat | FROGGS \o | ||
dalek | ast: 94cbbb5 | lizmat++ | S32-list/pick.t: Remove 5-year old obsolete test Was testing for a named parameter whose existence would only still be known by *very* few people. |
09:50 | |
ast: 7ce4a38 | lizmat++ | S32-list/pick.t: Add test for List.pick(Inf) |
09:51 | ||
FROGGS | m: my $a = "oh hai"; say $a .= "uc"() | ||
camelia | rakudo-moar 18b7f1: OUTPUT«Method '' not found for invocant of class 'Str' in block <unit> at /tmp/7v4KeURejK:1» | ||
dalek | kudo/nom: 880d3c8 | lizmat++ | src/core/List.pm: Re-add support for List.pick(Inf) Apparently, that was supposed to work but did not have a spectest. |
09:52 | |
lizmat | FROGGS: seems the method name got lost in translation ? | 09:53 | |
star: my $a = "oh hai"; say $a .= "uc"() | 09:54 | ||
camelia | star-m 2015.03: OUTPUT«No such method '' for invocant of type 'Str' in method dispatch:<.=> at src/gen/m-CORE.setting:1370 in block <unit> at /tmp/AGzM819C4o:1» | ||
09:54
rindolf joined
|
|||
lizmat | looks like breakage of infix . | 09:54 | |
09:54
tokuhiro_ joined
|
|||
lizmat | (well, at least at the error reporting level :-) | 09:54 | |
09:55
Ven joined,
timotimo left,
timotimo joined
|
|||
FROGGS | lizmat: that's an old RT ticket I tackle now | 09:56 | |
lizmat | ah, ok :-) | ||
j: <a b c>.Bag.pick(*).say | 09:57 | ||
FROGGS | m: my $a = "oh hai"; say $a.="uc"() | ||
camelia | rakudo-jvm 18b7f1: OUTPUT«(b c a)» | ||
rakudo-moar 18b7f1: OUTPUT«OH HAI» | |||
lizmat | j: <a b c>.Bag.pick(2).say | ||
camelia | rakudo-jvm 18b7f1: OUTPUT«(b a)» | ||
FROGGS | so it is just a grammar issue, and the old ticket just said that the working case should be disallowed in rakudo because std disagrees | 09:58 | |
lizmat | m: map { .say; last }, * | ||
camelia | rakudo-moar 18b7f1: OUTPUT«*» | ||
FROGGS | but I think std is wrong here | ||
lizmat | I agree with you | ||
FROGGS | (std complains about P5 concat, which is clearly wrong IMO) | ||
09:59
tokuhiro_ left
|
|||
DrForr | Just walked outside and to the end of the block. | 09:59 | |
lizmat | yeah, I think we've reached the point where TimToady is no longer updating std, but directly works on rakudo :-) | ||
DrForr++ | |||
DrForr: and back again, I hope ? | |||
DrForr | Of course. | ||
FROGGS | DrForr: did you trigger a phaser? | ||
DrForr | Damn, I *knew* I forgot something. Give me a few minutes. | 10:00 | |
FROGGS .oO( Just .walk'd to the OUTERS and to the END of the Block ) | |||
s/and/&&/ | |||
10:01
AlexDaniel joined
|
|||
DrForr | Yes, yes, channl theme and all ;) | 10:01 | |
FROGGS | :o) | ||
DrForr | Going upstairs was decent, downstairs was the hard bit. At least I have a better idea of what to exercise now :) | 10:02 | |
10:07
philh left,
mr_ron left
|
|||
AlexDaniel | OK gloggle, check my email! | 10:08 | |
yoleaux | 07:01Z <gfldex> AlexDaniel: the correct correction is m: my constant @fib := 0, 1, *+* ... *; @fib[^10].perl.say; | ||
10:09
roguelazer left,
revdiablo joined
|
|||
AlexDaniel | .tell gfldex I find it a bit messy, but you are probably right. I've changed it as you recommended | 10:11 | |
yoleaux | AlexDaniel: I'll pass your message to gfldex. | ||
10:16
roguelazer joined,
diana_olhovik_ joined
|
|||
AlexDaniel | Woodi: run() is not a replacement for qqx//, these are different beasts | 10:16 | |
Woodi: if removing qqx// is not necessary, do you know any example when qqx// is easier to use rather than a normal sub call (like suggested “shellout”)? | 10:18 | ||
Woodi: in other words, why qqx// is even there? | |||
10:21
domidumont joined
|
|||
ShimmerFairy | There are a number of adverbs on Q that call functions on strings (e.g. :v for val(), :w for Str.words, and ISTR a :p relating to paths that's NYI), and I've not heard a convincing argument for why just :x must be removed. | 10:26 | |
And, as stated before, we have &shell and &run if you'd rather prefer sub calls. (I don't quite get what "shellout" would provide over the existing subs) | |||
10:28
domidumont left
10:31
domidumont joined,
domidumont left
|
|||
AlexDaniel | ShimmerFairy: well, then maybe you have any other idea how to make this easier to type: run($command, $arg1, $arg2, :out).out.slurp-rest | 10:34 | |
ShimmerFairy | AlexDaniel: ah, that's what it's for, I didn't know. I agree that that's a bit much to type :) | 10:35 | |
AlexDaniel | ShimmerFairy: or how to change it so that people would first choose “run” over “shell” | ||
ShimmerFairy | .oO(we could start by bringing back .slurp , gosh darn it! :P) |
||
AlexDaniel | I mean, run is already shorter than shell, but not shorter than qqx | ||
Currently I'm cloning all perl6 modules to grep for qqx | 10:36 | ||
because I'm still not convinced that it provides anything that could make it worth keeping | 10:37 | ||
ShimmerFairy | AlexDaniel: well, looking at S02, there is space for a :r/:run adverb on Q, so you could have qr// and so on for run(). Depends on if others think it could be confused with :r[atchet], I suppose. | 10:38 | |
AlexDaniel | basically I'm interested in (misuse / "shell" not good enough) rate… | ||
but somehow I feel like qqx is mostly used in user code, not in modules… | 10:39 | ||
ShimmerFairy: I'm confused, how would it split arguments? | |||
AlexDaniel opens up S02 | 10:40 | ||
ShimmerFairy | AlexDaniel: Well, I also suggested Q:w:x (or :ww) as a way of doing run() instead of shell(), but that might be too magical for :x (so a hypothetical :r could either imply :w or require a :w or :ww, e.g. qqwwx) | 10:41 | |
nine | FWIW I think quote word is a very good match for run() | 10:42 | |
my $output = Q:w:x(perl -e $code); | 10:43 | ||
ShimmerFairy | nine: yeah, that was my idea a bit ago: q:w:x[my args] <-> run(q:w[my args]) | ||
Ven | rosettacode.org/wiki/Idiomatically_...ols#Perl_6 <- did anyone get bored enough to write a Slang::UnicodeWhitespace yet? :D | ||
ShimmerFairy | nine: you can't use parens there though, but that's the idea :) | ||
nine | One of these days I'm gonna lern Perl 6 for real :) | 10:44 | |
wooohooo! | |||
nine@sphinx:~/install/rakudo (bool_enum *+)> perl6 -e 'say Bool::True.HOW;' | |||
Perl6::Metamodel::EnumHOW.new | |||
ShimmerFairy | m: say q:w(a b c) | ||
camelia | rakudo-moar 880d3c: OUTPUT«5===SORRY!5=== Error while compiling /tmp/l0yJnCGU0NInvalid adverb value for :w(a b c)at /tmp/l0yJnCGU0N:1------> 3say q:w(a b c)7⏏5<EOL>» | ||
ShimmerFairy | nine: ^^^ that's why, in case you were curious. It looks like arguments to the pair | 10:45 | |
also, nine++ \o/ :) | |||
AlexDaniel | still I don't get it. "shell" basically accepts one argument – string. "run" accepts multiple arguments, that's the point. Why would it be a quoting construct – I have no idea | ||
let's make everything a quoting construct then? | |||
10:46
domidumont joined
|
|||
nine | AlexDaniel: I'd say because program invocation usually contains quite a lot of constant string arguments | 10:46 | |
AlexDaniel | nine: which is why you should use a sub – run | ||
nine | AlexDaniel: that's what makes run('perl', '-e', $code) cumbersome to write | ||
ShimmerFairy | AlexDaniel: that was in response to your lament about qqx being not shorter than run --- make another adverb that is to run() like :x is to shell() | ||
10:46
diana_olhovik_ left
|
|||
AlexDaniel | nine: what about this? run(«echo $test», :out).out.slurp-rest | 10:47 | |
nine | AlexDaniel: what if $test contains white space? | ||
10:48
tokuhiro_ joined
|
|||
AlexDaniel | I've always thought that «» would handle that. I could be wrong though | 10:48 | |
or do you need quotes there? | |||
ShimmerFairy | m: my $test = "a b"; say «echo $test».perl | ||
camelia | rakudo-moar 880d3c: OUTPUT«("echo", "a", "b")» | ||
ShimmerFairy | m: my $test = "a b"; say «echo "$test"».perl | ||
camelia | rakudo-moar 880d3c: OUTPUT«("echo", "a b")» | ||
AlexDaniel | ok, you need quotes, right… | 10:49 | |
nine | Having to quote all interpolated variables is just what makes this harder to use for newbies and cumbersome for oldies | ||
AlexDaniel | nine: but you have to quote it anyway, don't you? | ||
ShimmerFairy: that's not a bad solution, actually | 10:51 | ||
10:52
tokuhiro_ left
|
|||
ShimmerFairy | I don't know how the specifics would work out (I personally think it would be best if you could choose between :w and :ww, and maybe q:r runs an argless command), but I personally wouldn't mind run() getting a Q adverb too :) | 10:53 | |
10:54
Ven left
|
|||
AlexDaniel | I think that the problem is that sometimes you might want to pipe it to some other program | 10:55 | |
for that you can set :in() | |||
but since you have to change the code to a fullblown run(), you might feel that it is much easier to just change "r" to "x"… | 10:56 | ||
10:56
pyrimidine joined
|
|||
AlexDaniel | nine: your argument is valid if you're to say that people will just use shell("all $stuff $unquoted") rather than splitting their arguments and using "run" | 10:58 | |
10:58
pyrimidi_ left
|
|||
ShimmerFairy | well, you're not meant to use the adverbs for _everything_. I think my main objection to removing :x is that I don't see a too strong reason for getting rid of it. I get the security risks, but "it might trip people up!" isn't enough for me for :x . | 10:58 | |
AlexDaniel | ShimmerFairy: but you know, I'm still waiting for a code example where qqx is all that much harder than the proposed “shellout” | 11:00 | |
and until then “security risks” is a much stronger argument | 11:01 | ||
some might not agree with me, and I get it. But let's help the newbies… | |||
ShimmerFairy | AlexDaniel: I certainly don't know one off-hand. It all comes down to TIMTOWTDI: if you want to do your 'shellout' in a sub-like way, then you can. If you want to think of it as a modification on how you handle a string, then you can. | ||
AlexDaniel: there's always documentation to help the newbies :) | |||
AlexDaniel | ShimmerFairy: oh yeah! Yesterday I've edited this rosettacode.org/wiki/Get_system_com...put#Perl_6 | 11:02 | |
and maybe it's not perfect, but at least it attempts to go all explaining how you should prefer run() over something else | 11:03 | ||
dalek | kudo/nom: 03a9e73 | lizmat++ | src/core/Baggy.pm: Iterify Baggy.pick/roll And another piece of jvm specific code bites the dust! |
||
ShimmerFairy | "Unfortunately, it is very long to type," sounds a bit too subjective, but otherwise it's a nice, concise explanation :) | 11:04 | |
11:04
pyrimidi_ joined
|
|||
AlexDaniel | ehhh | 11:04 | |
11:07
pyrimidine left
|
|||
AlexDaniel | ahaha | 11:07 | |
lizmat | m: sub a { say +?$^a }; a 42; a "" # line noise in Perl 6 :-) | 11:08 | |
camelia | rakudo-moar 880d3c: OUTPUT«10» | ||
AlexDaniel | gist.github.com/AlexDaniel/176da249d1314b8cf3a9 | 11:09 | |
So here I've grepped for qqx across all modules | |||
nine | AlexDaniel: my $output = qqx<mail -s $subject -c $cc -r $from $to>; # this is what people want to do and what should do the right (secure) thing | ||
AlexDaniel | What I see in that gist is a bunch of quoting errors | 11:10 | |
even when run() could have done the job just as well | |||
I mean, not just as well, but of course much better | |||
who is going to fix all this stuff? | 11:11 | ||
some of these are not critical, I agree | 11:12 | ||
But what I see is a heavy misuse… something has to be done with that… | 11:14 | ||
11:15
Sgeo left,
pyrimidine joined
11:16
timbunce_ joined,
Sgeo joined
|
|||
AlexDaniel | yet can anybody see anything that could not be done without qqx? | 11:16 | |
11:18
pyrimidi_ left
11:19
TEttinger left
|
|||
AlexDaniel | nine: what do you mean, I don't get it | 11:20 | |
nine: so if $subject is 'rm -rf /', then what? | |||
nine: I mean, '$(rm -rf /)' | |||
11:21
mr_ron joined
|
|||
AlexDaniel | nine: I do understand that it is what people want to do, yet it is not going to work as expected | 11:21 | |
nine: and qqx does not help with that, so that's why I think it has to be deprecated | |||
11:21
kmel joined
|
|||
FROGGS | that probably means that we need a shell grammar and pass the string passed to qx/qqx/(backticks?) to run() | 11:21 | |
nine | AlexDaniel: qqx<mail -s $subject -c $cc -r $from $to> should just mean run('mail', '-s', $subject, '-c', $cc, '-r', $from, $to, :out).out.slurp-rest; | 11:23 | |
FROGGS | that would be the final goal, yeah | ||
ShimmerFairy | I'm not sure implying :w is a good idea, though | ||
(or :ww , in this case) | 11:24 | ||
11:24
telex left
|
|||
AlexDaniel | ShimmerFairy: Perhaps. Any example when it does not work as expected? | 11:24 | |
I mean, sure there is redirection and stuff | |||
qqx{$*EXECUTABLE -c $filename 2>&1}; | 11:25 | ||
hm | |||
ShimmerFairy | No, I meant just in general, the only Q adverb that implies other adverbs (IIRC) would be :qq . I'm not sure having :x imply :w/:ww is a good idea, I think I'd prefer having to make that explicit | ||
AlexDaniel | ShimmerFairy: I agree | 11:26 | |
lizmat | afk for a few hours& | ||
11:26
telex joined
|
|||
ShimmerFairy | so q:w:x or q:ww:x or ... | 11:26 | |
nine | .oO(note to self: beef up on those quoting adverb thingies before joining a discussion like this) |
||
11:27
pierrot left,
pierrot joined
|
|||
AlexDaniel | FROGGS: I like your idea | 11:30 | |
Woodi | AlexDaniel: I bet qqx is there becouse it is cute :) it's just fast way to do what user wants | ||
AlexDaniel | Woodi: yeah, like introduce shell injections! That's what user wants | 11:31 | |
FROGGS: however, it also means that it shouldn't pass anything to shell | |||
FROGGS: in perl5 there was a similar issue – sometimes system() runs it in shell, sometimes it doesn't | 11:32 | ||
I'm pretty confident that there must be a distinction | |||
so basically your suggestion ends up with the same idea – deprecate qqx first… | |||
11:33
pyrimidi_ joined
|
|||
nine | Should Bool::True.Int return 1.Int or Bool::True (which isa Int)? | 11:34 | |
Woodi | AlexDaniel: you see, it's like with any problem domain. you can to want just get stuff from db as fast as possible. same here, if someone is writing something bigger then small-script-fo-myself then he should consider other options | ||
AlexDaniel | I really don't want to defend this position as hard as I do now, but I see no other choice… I started mentioning this problem in June, I think. And now the Christmas is coming | 11:35 | |
Woodi: if you want it quick and dirty, then my suggestion is that you should use “shellout” | |||
Woodi | AlexDaniel: but if it is a way to securely ommit such problems then I'm +1 | 11:36 | |
11:36
rurban joined
|
|||
Woodi | AlexDaniel: I even have no idea what shellout means | 11:36 | |
AlexDaniel | Woodi: so I'm not saying that you shouldn't be able to pass stuff to shell, I'm just saying that it should be easier to do it with “run” | ||
Woodi | 'shell', ok | ||
AlexDaniel | Woodi: yeah, but | ||
11:36
pyrimidine left
11:37
kid51 joined
|
|||
AlexDaniel | Woodi: sub shellout(|c) { shell(|c, :out).out.slurp-rest } | 11:37 | |
so that the user does not have to type all that “:out).out.slurp-rest” stuff | |||
Woodi | AlexDaniel: I bet qqx is doing just that :) | 11:38 | |
AlexDaniel | basically just a shortcut to “shell” that gets the output as string | ||
Woodi: yeah, yet the Huffman coding is just right with this one | 11:39 | ||
Woodi: “runout” is shorter than “shellout” :) | |||
jnthn | MESSAGES | ||
yoleaux | 2 Oct 2015 22:54Z <lizmat> jnthn: I get the feeling that any new class in the setting (like the anonymous once for iterators) make parsing the setting a lot more expensive | ||
2 Oct 2015 22:54Z <lizmat> jnthn: possibly even O(n) :-( | |||
jnthn | eek, caps lock | 11:40 | |
.tell lizmat Could do with some measurements rather than feeling... | 11:41 | ||
yoleaux | jnthn: I'll pass your message to lizmat. | ||
AlexDaniel | By the way, this change is just a 3 line commit: runout, shellout and deprecation notice for qqx. I have it ready, and I will write tests, docs and whatever what is required for this change, just show me the green light :) | ||
and pull request for the change itself, of course | 11:42 | ||
Woodi | AlexDaniel: shellout/runout names are bad, IMO | ||
jnthn | I don't see the names runout/shellout really flying. | ||
AlexDaniel | Woodi: I agree! Any better alternative? | ||
jnthn | Why not implement qqwx? | ||
Woodi | ` ;) | ||
psch | AlexDaniel: are you also deprecating the "Q :qq :x" form? | ||
AlexDaniel | nooooooooooooooooooooooo… | ||
psch: basically, yes, you think that it is a wrong thing to do? | 11:43 | ||
psch | AlexDaniel: well, composability of adverbs seems like it's a core feature of Q, and i don't think forbidding certain combinations "because you have to be careful with them" is particularly perlish | 11:44 | |
that is assuming that the deprecation will lead to removal | |||
oh, but i guess that was the core of the whole preceeding discussion, nvm then :) | 11:45 | ||
AlexDaniel | psch: yeah but my point is that you can pass whatever you want to shellout just as fine, :x should not be there | 11:46 | |
I know it sounds a bit too revolutionary, but what else | |||
psch | eh, it sounds like "we have the opportunity to remove this historical feature, so why didn't we yet" to me | ||
AlexDaniel | jnthn: FROGGS actually said that there could be a shell grammar for all that stuff | ||
and I agree, but until then… | 11:47 | ||
Woodi | AlexDaniel: 'shell grammar' is code for: we don't know how to do this in general case :) | ||
AlexDaniel | psch: I'm sorry that I did not show up in 2000 or whatever it was with an RFC | ||
psch: basically because I barely stopped shitting under myself at that time | 11:48 | ||
Woodi | AlexDaniel: we should hijack ppls mind with better huffman coding not worse one | 11:49 | |
AlexDaniel | Woodi: that's what my change is about | ||
psch | AlexDaniel: you misunderstand (or i wasn't clear enough). i'm not saying that it's bad that it only happens now, i'm saying it's good that it happens at all | ||
AlexDaniel | oooh | ||
well, thanks then | 11:50 | ||
11:50
kmel_ joined
|
|||
Woodi | AlexDaniel: s/shellout/`/ and I'm with you :) | 11:50 | |
AlexDaniel | Woodi: “run“ is shorter than “shell”, “runout“ is shorter than “shellout” | ||
Woodi: but that's the whole point?? | |||
Woodi: basically you are saying that it should be easier to pass stuff to shell even when you don't need that | 11:51 | ||
11:51
test joined,
test left
|
|||
Woodi | AlexDaniel: now I'm lost which side you are arguing... | 11:51 | |
11:51
kmel left
|
|||
Woodi | ok, do not pass to shell ? pls explain. | 11:52 | |
execsomething ? | |||
AlexDaniel | my Str $output = qqx{$*EXECUTABLE -c $filename 2>&1}; | ||
what happens if $filename has spaces in it? | |||
well, then you should quote it right? | 11:53 | ||
that's how the typical logic goes | |||
Woodi | yes and no | ||
AlexDaniel | but no, there's no way to quote that… | ||
because you have to escape all of the shell meta characters and stuff | 11:54 | ||
Woodi | what if $filename is '.todo' ? | ||
AlexDaniel | Woodi: that'd be ok? | ||
Woodi | you are starting with complicated examples and disaallow ppls to do simple things | ||
AlexDaniel | Woodi: gist.github.com/AlexDaniel/176da249d1314b8cf3a9 | 11:55 | |
here I've greeped for qqx in all perl6 modules | |||
“simple things” is a string without interpolation | |||
that is, it's qx// (not qqx) | |||
YET qx// will interpolate ENV variables… That's weird | |||
Woodi | AlexDaniel: that's other topic :) | 11:56 | |
AlexDaniel | if you need qqx//, then it is not a simple thing | ||
11:56
kmel_ left
|
|||
AlexDaniel | because you are trying to shove your variable in there, and that's where the security issue is | 11:56 | |
and the solution? Use “run()“! | |||
Woodi | so 'qqx' is better 'qx' but failing in what it should do ? | 11:57 | |
AlexDaniel | if you end up using run to do that correctly, then why did you use shell in the first place | ||
you say “simply things” – like running some program and passing some arguments to it (even const ones)? Good, that's exactly what run() is for | 11:58 | ||
simple* | |||
I'd be glad to hear a better name for shellout and runout… outrun and outshell? Not that much better… | 12:00 | ||
but the word “shell” has to be there to clarify meaning | |||
jnthn | qqx basically *is* what you want to call shellout, no? | ||
12:00
Ven joined
|
|||
ShimmerFairy | jnthn: AIUI, the argument is essentially based on making sure the secure version is more Huffman-friendly than the insecure version. | 12:01 | |
AlexDaniel | jnthn: yes pretty much, but you can also use all of the named arguments and stuff that “shell“ does. So in reality it is a shortcut for “shell” that gets the output | ||
ShimmerFairy | (which I personally don't think is a very convincing argument to get rid of :x) | 12:02 | |
AlexDaniel | I find that gist pretty convincing, there is a huge amount of misuse. | ||
dalek | kudo/bool_enum: 398f255 | (Stefan Seifert)++ | src/ (3 files): Turn Bool into a proper enum |
12:03 | |
jnthn | I'd be more inclined to find a way (a qqr that implies ww semantics?) to provide a shorter form of run and get out | ||
*output | |||
Woodi | ` pleas, pleas ! | ||
ShimmerFairy | It's only misuse from a security standpoint. I still think the security issue is more appropriately solved with documentation than getting rid of language features in core you don't like. | 12:04 | |
AlexDaniel | jnthn: yeah, thinking about other ways since June! | ||
jnthn | Woodi: no, we decided already to leave that for user-space circumfixes. | ||
ShimmerFairy | Or with a hypothetical :r to make Huffman happy :) | ||
jnthn | ShimmerFairy: Well, it's good if the langauge guides people towards the Right Thing | ||
AlexDaniel | jnthn: yeah! | ||
jnthn | I do agree it's unfortunate there's not a succinct way to do with run what qx/qqx currently does with shell. | 12:05 | |
ShimmerFairy | jnthn: that's true, I think my main issue with the idea to remove :x is that it seems like a minimally-useful way to do that. To me, it doesn't seem like it would do much more than annoy people who've come to expect :x to be available. | ||
AlexDaniel | jnthn: and then, when you need a bit more flexibility (like specifying the input), runout can be upgraded to run in your code in a straightforward way | 12:06 | |
nine | Are there known sequence related spec test errors? | ||
AlexDaniel | jnthn: which I don't think will be possible with quoting constructs | ||
ShimmerFairy | jnthn: my idea would be an :r that didn't imply :w or :ww , making that explicit: q:r for a no-argument command (how useful would that be?), q:w:r, and q:ww:r for using arguments | ||
psch | nine: i had some on jvm a few days back, but that's probably not your focus :) | ||
AlexDaniel | ShimmerFairy: the problem is that people will upgrade to qqx when they need to pipe things together | 12:07 | |
nine | psch: err...no, not really :) | ||
AlexDaniel | ShimmerFairy: yet you can do that with run: doc.perl6.org/type/Proc | ||
jnthn | ShimmerFairy: Hmm | ||
Well, it's worth thinking about. I think we can do something better than what we have now. | |||
jnthn needs to go shopping...we're getting hungry here :) | 12:08 | ||
bbl :) | |||
ShimmerFairy | AlexDaniel: if someone's natural inclination for that is to use shell syntax for redirection, that's fine with me (though teaching people that P6 Does It Better™ is of course important). | ||
12:08
mr_ron left
|
|||
AlexDaniel | jnthn: yeah, but at the same time I feel that qqx is way too short for what it does, you can't huffmanly beat that. So a deprecation notice looks like a right thing to me… | 12:08 | |
nine | m: say (1...Inf)[3] | 12:09 | |
camelia | rakudo-moar 03a9e7: OUTPUT«4» | ||
ShimmerFairy | AlexDaniel: and I suspect that at least a few people would sooner use shell() than learn run(), if you took away :x and they suddenly need redirection :P | ||
AlexDaniel | ShimmerFairy: yes, but as you've said there are people who really want to do that | ||
ShimmerFairy: and in such case the rope is provided, I have no problem with that | 12:10 | ||
12:10
pyrimidine joined
|
|||
AlexDaniel | but throwing some rakes under the feet of users is the worst case scenario | 12:10 | |
ShimmerFairy | Basically, I'm OK with adding :r to the Q lang (because having an :x/shell & :r/run symmetry would be nice), but removing :x doesn't seem like it'd do much to improve the security issue, at least to me. | 12:11 | |
AlexDaniel | uhhhhhh | 12:12 | |
ok I need some food | |||
12:12
pyrimidi_ left
|
|||
Woodi | AlexDaniel: if you have qx than user will want something what use $ | 12:13 | |
FROGGS | I think we just need a short and clear name for a sub that receives and arglist that invokes run(:out)... | ||
nine | m: say Bool::False.WHAT | ||
camelia | rakudo-moar 03a9e7: OUTPUT«(Bool)» | ||
FROGGS | because interpolating into a string to detangle it afterwards seems errorprone | 12:14 | |
ShimmerFairy | FROGGS: how about the totally-not-system-dependent name run1(...) ? :P | ||
psch | huh, we've removed the deprecation warnings for "use ...:from<java>" but still allow it..? | ||
i suppose that ties in with RT #126088 | 12:15 | ||
ShimmerFairy | isn't :from<foo> an important part of the use declaration? (Or am I missing something?) | ||
nine | m: say 0.WHAT === Bool::False.WHAT | ||
camelia | rakudo-moar 03a9e7: OUTPUT«False» | ||
psch | ShimmerFairy: :from<java> was deprecated in favor of :from<Java> | ||
ShimmerFairy: which is what the ticket is about, for the lazy :) | 12:16 | ||
Woodi | nine: about: my $results = from $table join .relation1 left join .relation2 where .foo > 1 and .relation1.bar = 'baz' select *; | ||
ShimmerFairy | psch: ah, so it's just the from<> adverb assuming anyone would be silly enough to try and make a distinction between 'java' and 'Java' :P | ||
Woodi | nine: you want it to call database ? | ||
psch | i'm inclined to say ".lc the language name when registering the loader" as a resolution for the ticket, fwiw | 12:17 | |
oh, and also ".lc the :from-value when looking for a loader" of course | |||
ShimmerFairy | psch: or .fc , since that's generally the nicer way to do caseless comparison | ||
(in Unicode land, specifically) | |||
psch | ShimmerFairy: right, Unicode land is somewhat uncharted for me :) | ||
Woodi | nine: I think it is: a) too relational dbs specific; b) cargo-culted SQL syntax (via LINQ)... | ||
12:18
zakharyas joined
|
|||
ShimmerFairy | psch: so, it'd be something like given $from.fc { when "java".fc { ... } ... } , to give you an idea :) | 12:18 | |
12:18
pyrimidi_ joined
|
|||
Woodi | nine: spliting it into two parts, creating structures (join tables or prepare things) and querying would be much clener | 12:18 | |
12:19
Ven left
|
|||
nine | Woodi: do you have a suggestion? | 12:19 | |
Woodi: I don't see a problem with cargo-culting SQL syntax, since that's exactly what it should look like. SQL is good at what it does. People know SQL. I'd really just like people to do everything SQL allows for. | 12:20 | ||
psch | m: say &fc | ||
camelia | rakudo-moar 03a9e7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xWLPMCGXlWUndeclared routine: &fc used at line 1. Did you mean '&uc', '&lc', '&tc'?» | ||
12:20
pyrimidine left
|
|||
psch | aww :l | 12:20 | |
ShimmerFairy | I don't think fc exists yet, sadly :( | 12:22 | |
m: say "FoO".fc | |||
camelia | rakudo-moar 03a9e7: OUTPUT«Method 'fc' not found for invocant of class 'Str' in block <unit> at /tmp/wsCsRTQMXL:1» | ||
ShimmerFairy | (I don't think Moar even parses the UCD file that would enable .fc yet) | ||
psch | the remaining question would be if we require the module loader to be registered with the .fc name or do assume we have to do it ourselves | ||
[Tux] | test 50000 36.227 36.111 | 12:23 | |
test-t 50000 39.322 39.206 | |||
ShimmerFairy | I think for clarity in the code that does the actual comparison, it'd be best to have it do .fc on both. | ||
[Tux] | tux.nl/Talks/CSV6/speed4.html | ||
ShimmerFairy | (It would also let module loader writers care less :P) | ||
psch | i'll add that to the ticket | 12:24 | |
dalek | kudo/bool_enum: 017c6bc | (Stefan Seifert)++ | src/core/operators.pm: Fix SEQUENCE not expecting Bool ~~ Real to be true |
12:25 | |
psch | in any case, i think complaining about wanting a specific case-ing for the :from value seems somewhat silly | 12:26 | |
i mean, i at least wouldn't want to forbid "use ...:from<jaVa>" just because | 12:27 | ||
and i hope there's no two languages (that we'll be likely to support calling from) that share a fold-case | |||
12:29
mscha joined
|
|||
mscha | p6: my $ℕ = set(1..Inf); say 42 ∈ $ℕ; | 12:30 | |
ShimmerFairy | psch: that's my thinking exactly. Who would create a language called 'java' and insist to everybody that it's actually different from 'Java' ? :P | ||
camelia | rakudo-moar 03a9e7: OUTPUT«(timeout)» | ||
12:34
Ven joined
12:41
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
Woodi | nine: it is to low level. dealing with tables, troubles with joins, nulls | 12:42 | |
I prefer DataSources in MS world | |||
12:43
mattprelude joined
|
|||
Woodi | and still ActiveRecords are replacement for Transaction Script Pattern and then Domain Model is replacement for ActiveRecord/Gateway pattern... | 12:44 | |
nine | Woodi: trying to abstract those away is exactly why ORMs fail once you start needing recursive queries (Common Table Expressions), select statements in the from clause or even something as mundane as exists subqueries. | 12:45 | |
Or window functions | |||
SQL and relational databases are so powerful, yet we waste cycles and developer time because ORMs optimize the most simple case and make the hard cases impossible. | 12:46 | ||
Woodi | nine: actually I thinking about in-memory structures/operations more then constructing specific queries... | 12:48 | |
12:48
mr_ron joined
12:49
tokuhiro_ joined
|
|||
nine | Woodi: which is fine. It's just a different problem domain. | 12:49 | |
psch | hm, i have something fix-ish for #119919, but that just makes #117737 more weird | 12:53 | |
i suspect a fix for the former that correctly deals with the latter needs more Perl6::Grammar-fu than i have lying around at the moment | 12:54 | ||
12:54
tokuhiro_ left
12:59
zakharyas left,
rurban left,
Ven left
13:00
rurban joined
13:01
rurban left,
rurban joined
13:09
Ven joined
13:14
Ven left
13:18
pyrimidine joined
13:20
pyrimidi_ left
|
|||
dalek | kudo/bool_enum: 31cbac7 | (Stefan Seifert)++ | src/Perl6/Metamodel/EnumHOW.nqp: Make Bool augmentable |
13:20 | |
kudo/bool_enum: fe41cd7 | (Stefan Seifert)++ | src/Perl6/Metamodel/EnumHOW.nqp: Fix type check for binding parameters EnumHOW just needed an is_composed method like many other HOWs. Fixes regression in t/spec/S06-signature/optional.t |
|||
13:25
mscha left
13:29
pyrimidi_ joined
13:31
pyrimidine left
13:33
pyrimidine joined
13:34
pyrimidi_ left
13:36
bjz left,
[Sno] left
13:37
[Sno] joined
13:39
bjz joined
13:40
pyrimidi_ joined
|
|||
dalek | kudo/bool_enum: db729c1 | (Stefan Seifert)++ | src/Perl6/Metamodel/ (2 files): Allow for mixing into enums. Fixes Bool but role {} and t/spec/S14-roles/mixin.t regressions |
13:40 | |
osystem/p6-HTTP-Server-Tiny: da18127 | (Tokuhiro Matsuno)++ | META.list: Added HTTP-Server-Tiny |
13:41 | ||
13:42
pyrimidine left
13:48
kaare__ left
13:49
kmel joined
|
|||
nine | Why is this illegal? use MONKEY-TYPING; enum Weekday <Mon Tue>; augment class Weekday { } | 13:49 | |
m: use MONKEY-TYPING; enum Weekday <Mon Tue>; augment class Weekday { } | |||
camelia | rakudo-moar 03a9e7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/1BCvIxk8d_Cannot augment Weekday because it is closedat /tmp/1BCvIxk8d_:1------> 3Weekday <Mon Tue>; augment class Weekday7⏏5 { } expecting any of: generic role» | ||
13:50
pyrimidine joined
13:52
rindolf left,
pyrimidi_ left
|
|||
kmel | hello everyone, I am new to perl6 and was trying to install DBIish (panda instal DBIish). Unfortunately it filed (# Connect failed with error Cannot locate native library 'libmysqlclient.so': libmysqlclient.so: cannot open shared object file: No such file or directory). Any recommendations? | 13:53 | |
13:54
leont joined
|
|||
_itz | what does locate 'libmysqlclient.so' say? | 13:59 | |
13:59
pyrimidi_ joined
14:02
pyrimidine left
14:04
zakharyas joined
|
|||
dalek | ast: ecb2fb7 | (Stefan Seifert)++ | S06-currying/named.t: Fix test failing for the wrong reason priming-fails-bind-ok(sub (Int :$a!) { }, '$a', Int, :a); should actually fail to find a bind error since Bool is specced to be an enum with base type Int, IOW Bool ~~ Int. Change it, so it will still pass, once Bool is a proper enum. |
14:06 | |
timotimo | kmel: these are "just" warnings that tell you that some tests have been skipped; if you were hoping to use mysql with dbiish, you'll probably have to install the -dev package, so that the libmysqlclient.so symlink gets added to your system | 14:07 | |
AlexDaniel | and if you're on debian, then "apt-file search libmysqlclient.so" should give you the name of the required package | ||
dalek | osystem: da18127 | (Tokuhiro Matsuno)++ | META.list: Added HTTP-Server-Tiny |
14:08 | |
osystem: 74d415c | timo++ | META.list: Merge pull request #65 from tokuhirom/p6-HTTP-Server-Tiny Added HTTP-Server-Tiny |
|||
AlexDaniel | which is libmysqlclient-dev, I'm not surprised | ||
14:11
Ven joined,
FROGGS_ joined
14:13
FROGGS[tab]_ joined
|
|||
kmel | timotimo & AlexDaniel: Thanks. | 14:13 | |
i was missing the -dev packages | 14:14 | ||
timotimo | i found it a bit counter-intuitive that this is the way linux distros handle that, but whatever | ||
psch | hrm, i think for #68024, #119919 and #117737 we have to pull <circumfix> out of <coloncircumfix> | ||
14:14
FROGGS[tab] left
|
|||
psch | or rather, have coloncircumfix handle all the <circumfix> cases independently | 14:14 | |
14:14
FROGGS left
14:15
khw joined,
rurban left
|
|||
psch | 'cause it breaks in routine_def because not all <circumfix> bring a <nibble> | 14:16 | |
(well, more precise it breaks in World.colonpair_nibble_to_str) | |||
AlexDaniel | timotimo: I don't find it counter-intuitive. Once perl6 (and all of its modules) is packaged with debian, I think that installing DBIish will pull it as dependency (or at least will list it as a suggested package). If nothing on your system depends on this package, then why would you want it to be installed? | 14:18 | |
14:19
aborazmeh left
|
|||
kmel | Now I have a new error message (# Connect failed with error DBD::mysql connection failed: Access denied for user 'testuser'@'localhost' (using password: YES)) | 14:20 | |
AlexDaniel | kmel: well! | 14:21 | |
kmel: It seems like access is denied for this user-password combo! | |||
dalek | ast/bool_enum: be773e7 | (Stefan Seifert)++ | S02-types/bool.t: Bool is now an enum with base type Int Fixes RT #72580 |
||
ast/bool_enum: 44e937d | (Stefan Seifert)++ | S32-exceptions/misc.t: Enums are now augmentable I see no reason why an enum should not be augmentable. Indeed there are tests for augmenting Bool which is an enum by spec. So remove the bogus test. |
|||
ast/bool_enum: 83c7804 | (Stefan Seifert)++ | S03-operators/relational.t: TODOs for chaining !before and !after now pass Don't know why though? |
|||
AlexDaniel | kmel: are you sure that there is such user? Are you sure that what you are providing as a password is actually the right password? | 14:22 | |
nine | .tell jnthn branch bool_enum in rakudo and roast is ready for review. Any input would be greatly appreciated :) | ||
yoleaux | nine: I'll pass your message to jnthn. | ||
timotimo | kmel: if you want the tests to run to completion, you'd need to follow the instructions in the readme - with "panda look DBIish" you can get it to check out the repository for you so you can read it | 14:23 | |
why don't we have a "panda readme" command, btw? | |||
14:25
Ven left
|
|||
AlexDaniel | ah it's still about tests | 14:25 | |
kmel | AlexDaniel & timotimo: Sorry to bother you, I am completely new to perl. | 14:27 | |
:) | |||
timotimo | the # at the beginning tells me it's from the tests | ||
kmel | timotimo: yes tests | ||
AlexDaniel | kmel: you are welcome! | 14:28 | |
timotimo | it's hard to test the database api without a running server with a user + password that the test file knows about | ||
AlexDaniel | true | ||
kmel | ok but how | 14:29 | |
timotimo | first of all: do you even want to use MySQL in the first place? | 14:30 | |
kmel | how do i specify which user+pass the tests should use? | ||
timotimo | ... didn't the readme once tell exactly what you had to do to make it work? | 14:31 | |
because now it doesn't | |||
ah | |||
it's in the test file | |||
github.com/perl6/DBIish/blob/maste...10-mysql.t | |||
AlexDaniel | timotimo: perhaps it will be easier to skip tests? | 14:32 | |
timotimo | the tests are already skipped | ||
14:33
Ven joined
|
|||
AlexDaniel | hmmmm then why does it fail? | 14:33 | |
timotimo | it doesn't fail | ||
it just looks very explosive | |||
kmel | timotimo: I see... Let me go back to reading then. | ||
timotimo | it doesn't matter if the exit code is actually 0 if it makes warning lights and alarms and sirens go off | ||
kmel | it is actually failing. | 14:34 | |
timotimo | oh? | ||
damn | |||
can you paste the whole output on gist.github.com or something? | |||
AlexDaniel | I'll try to install it | ||
timotimo | the only fails it should care about are the ones that say "not ok" somewhere, actually | ||
kmel | let me run the scripts you pointed in the test file and come back later | 14:35 | |
maybe this should fix the issue | |||
timotimo | perhaps | 14:36 | |
otherwise: maybe your rakudo is too old? it'd be interesting to learn what exact version you're running | |||
(via perl6 --version) | |||
kmel | This is perl6 version 2015.09-174-ge503dfc built on MoarVM version 2015.09-39-g1434283 | ||
AlexDaniel | It works for me: gist.github.com/AlexDaniel/b574f2a94d2185a44b12 | 14:37 | |
timotimo | ah, good, it's not old | 14:38 | |
14:42
Ven left
|
|||
timotimo | speakerdeck.com/shoichikaji/how-to...s-with-mi6 - cool | 14:43 | |
14:46
bjz left
14:48
FROGGS_ left
14:50
mr_ron left
14:51
tokuhiro_ joined
14:55
bjz joined,
tokuhiro_ left,
RabidGravy joined
14:56
mr_ron joined
14:57
Ven joined
14:59
pyrimidine joined
15:01
pyrimidi_ left
15:06
pyrimidi_ joined
15:07
rivarun left
15:09
rivarun joined,
pyrimidine left
15:10
kid51 left
15:17
nightfrog left
15:19
pyrimidine joined,
nightfrog joined
15:21
pyrimidi_ left
15:25
isBEKaml joined
|
|||
dalek | kudo-star-daily: 17d36ad | coke++ | log/ (9 files): today (automated commit) |
15:27 | |
rl6-roast-data: 1b1c239 | coke++ | / (9 files): today (automated commit) |
|||
rl6-roast-data: 5a1f31a | coke++ | / (9 files): today (automated commit) |
|||
mr_ron | One of the old authors of URI just posted this git joke on facebook that I thought was not bad: hugelolcdn.com/i460/356078.jpg | 15:28 | |
15:30
Ven left
|
|||
[Coke] | (ORMS) I have never had a problem where ORM was a real solution. It always ends up getting in my way. | 15:30 | |
15:30
rurban joined
|
|||
AlexDaniel | mr_ron: whoops, forgot to stage files! | 15:31 | |
Zoffix | heh | ||
colomon | Pod::To::Markdown failing one test? | ||
[Coke] | I feel somewhat meta, using a JS profiler to profile why the profiler html hangs. :| | 15:36 | |
15:38
spider-mario left
|
|||
moritz | [Coke]: next up: debugging whie the JS profiler hangs whie profiling the profiler html output :-) | 15:41 | |
[Coke] | moritz: sadly, the js profile output doesn't appear to help at all (using chrome. partially because none of the click throughs are showing me any JS code, and partially because I don't use angular. | 15:43 | |
moritz: so, running htmlify, even with a sparse run generates a profile that is unusuable. Adding an exit to avoid doing work to profile part of it trips a profiler bug. whee | 15:45 | ||
*unusable | |||
timotimo | replacing the angular version we're using with the next minor version would probably help with the performance quite a bit, but the most naive way to do it left big parts of the thing nonfunctional :| | ||
15:46
spider-mario joined
15:52
kmel left,
tokuhiro_ joined
15:53
rurban left
15:54
Ven joined
15:55
rurban joined
|
|||
dalek | kudo/nom: 0ac5dbc | lizmat++ | src/core/ (2 files): Remove one argument boilerplate for new +@args |
15:56 | |
15:56
tokuhiro_ left
15:57
Ven left
15:59
lsm-desktop joined
|
|||
timotimo | here's a suggestion | 16:00 | |
when we find the end of a quote and after that experience a syntax error of some kind, look if the first character before the end-quote is a comma %) | |||
TimToady | and what? | 16:02 | |
timotimo | and alert the user that in programming languages, the comma comes after the closing quote, not before it | ||
"that's ridiculous," timo said. | |||
"no, that's just english," the internets said | |||
timotimo shudders | |||
dalek | kudo/curli: d028dae | lizmat++ | src/core/Any-iterable-methods.pm: More whitespace correction for readability |
16:03 | |
rakudo/curli: e19a521 | lizmat++ | src/core/Any-iterable-methods.pm: | |||
rakudo/curli: Some comments + code legibility | |||
16:03
dalek left,
kaare__ joined
|
|||
lizmat | sorry dalek | 16:03 | |
yoleaux | 11:41Z <jnthn> lizmat: Could do with some measurements rather than feeling... | ||
16:03
dalek joined,
ChanServ sets mode: +v dalek
|
|||
lizmat | .tell jnthn looking at increasing parse times the past week while iterifying code: doesn't really get below 45 secs anymore :-( | 16:04 | |
yoleaux | lizmat: I'll pass your message to jnthn. | ||
16:04
rurban left
|
|||
lizmat | .tell jnthn when it used to be around 32 not too many weeks ago | 16:04 | |
yoleaux | lizmat: I'll pass your message to jnthn. | ||
TimToady | I thought it was the dynvar cache getting overwhelmed, so I measured, and found it was only 2.5% of the overhead--improvable with a better cache, but not causing the slowdown | 16:05 | |
lizmat | .tell jnthn flussence also notived: irclog.perlgeek.de/perl6/2015-10-02#i_11310569 | ||
yoleaux | lizmat: I'll pass your message to jnthn. | ||
TimToady | nobody's disputing the slowdown, but there are many possible causes | 16:06 | |
lizmat | TimToady: jnthn asked for measurements :-) | 16:07 | |
TimToady | meaning of specific possible causes, not of the slowdown | ||
could be as simple as the GC is no longer tuned for the size of our setting, but probably not | 16:09 | ||
16:09
rurban joined
|
|||
[Coke] | timotimo: updating to angular 1.2.27 seems ok | 16:09 | |
timotimo | oh, neat | 16:10 | |
16:10
rindolf joined,
rurban left
|
|||
timotimo | i've noticed a slowdown in stage parse, too | 16:10 | |
[Coke] | updating all the way to 1.4.2 explodes. | ||
timotimo | but i expect jnthn was hoping for more granular measurements | ||
TimToady | could also be that we accidentally disabled an optimization | 16:11 | |
timotimo | [Coke]: is the symptom that all tabs are shown at the same time and all variants of text and such? | ||
TimToady | could be that the NFAs are going O(n**3) or something | ||
could be lots of things | |||
[Coke] | timotimo: I can work on getting us to angular 1.4 this evening. Looks like they have a decent guide on upgrading. | 16:13 | |
lizmat | ok ok ok :-) I will stop throwing hunches on the channel :-) | ||
timotimo | oooooh | ||
that would be quite fantastic! | |||
TimToady | hunches are fine, and so is suggesting we measure :) | ||
timotimo | i've heard very good things about performance in 1.4 | ||
16:15
pyrimidine left
|
|||
TimToady | so, I've got this talk I'm giving Monday; what would be the best example of reactive programming to show as one slide? | 16:15 | |
and the best one-slide meta-programming example? | |||
16:16
pyrimidine joined
|
|||
TimToady is terrible at thinking up examples... | 16:16 | ||
lizmat | between the commit just before infix:<.> and now, settings parse went from 41 to 44 seconds (+7%) | 16:17 | |
meanwhile, the size of core setting went from 32172 lines to 32258 lines (.25% increase) | 16:19 | ||
that's what giving me a O(n) feeling | |||
16:19
rurban joined
16:20
rurban left
16:22
Ven joined
|
|||
TimToady | but infix:sym<.> was already there, so that didn't change the parse at all..., and while it does now to a <.ws> lookahead, that terminates LTM, so LTM should always pick a longer dot form anyway first | 16:22 | |
16:24
pyrimidi_ joined
|
|||
TimToady | so if infix:<.> is the culprit, the problem is likely to be elsewhere than NFA blowup | 16:24 | |
16:26
pyrimidine left
|
|||
moritz | did the new composition operator change compile time? | 16:28 | |
16:30
Ven left
|
|||
TimToady | seems unlikey to be a large delta | 16:30 | |
I did, at some point, mark a bunch more functions as 'is pure', which could have an effect | 16:32 | ||
but there have been lots of other changes as well; I remember when I first remarked upon my parse time going up 10 seconds, and it was not obvious at that point what did it | 16:34 | ||
16:36
AlexDaniel left
|
|||
TimToady | irclog.perlgeek.de/perl6/2015-09-28#i_11287048 is when I pointed it out | 16:36 | |
lizmat | TimToady: it had gotten slower before that as well already, I was just taking some noticeable commit it the past | 16:39 | |
timotimo | [Coke]: maybe with the new angular and better performance i'll be invigorated enough to implement some features i've wanted for a long time in the profiler ... | ||
lizmat | I mean, before it, parse time was already 40+ (when it used to be more like 32 on my machine) | 16:40 | |
16:40
Ven joined
|
|||
Ven | .ask lichtkind shouldn't that be a regexp? github.com/perl6/problem_solver_tu...n4.pl6#L25 | 16:40 | |
yoleaux | Ven: I'll pass your message to lichtkind. | ||
lizmat | unfortunately, I need to be afk tonight, cu tomorrow! | ||
& | 16:41 | ||
timotimo | bye lizmat! | ||
16:42
colomon left
16:43
colomon joined
16:46
pyrimidine joined
16:48
colomon left,
pyrimidi_ left
16:49
FROGGS joined
16:50
Ven left,
colomon joined
16:53
tokuhiro_ joined
16:54
Ven joined
16:58
tokuhiro_ left
16:59
pyrimidi_ joined
17:01
pyrimidine left,
colomon left
17:03
colomon joined
|
|||
TimToady | it's not the 'is pure'—backing that out makes no difference | 17:03 | |
17:08
zakharyas left
17:10
colomon left
17:13
isBEKaml left
17:16
colomon joined
17:17
Ven left
17:19
pyrimidine joined
17:21
pyrimidi_ left
17:25
abaugher left
17:26
abaugher joined
|
|||
TimToady | also doesn't appear to be the infix<.> changes, based on before/after timings | 17:34 | |
17:36
[Sno] left
17:37
[Sno] joined
|
|||
psch | $ ./perl6-m -e'sub infix:["@"] { say $^a, $^b }; 5@5' | 17:41 | |
55 | |||
but: "infix:[$op]" should work too, i gather | |||
and i'm pretty sure what i did for the working bit above doesn't help getting there | |||
on the plus, i'm not relying on <semilist> but added a token that catches this correctly | |||
what i understand from the bits of design that talk about this is that we have a colonpair after the category the content of which are BEGIN-evaluated | 17:43 | ||
jdv79 | RabidGravy: figured out that lame H::UA bug | ||
RabidGravy | cool | ||
psch | the colonpair delimiters still carry most of the usual Q adverb semantics | ||
i.e. infix:<[ ]> works as expected, infix:['{', '}'] works as it would for q[] | 17:44 | ||
i'm a bit confused if infix:<<$ldelim $rdelim>> should work as expected from << >> or not | 17:45 | ||
TimToady | seems like it oughta | 17:46 | |
jdv79 | just not sure how to test it | 17:47 | |
TimToady | m: my %hash = :a; my $a = 'a'; say %hash«$a» | ||
camelia | rakudo-moar 0ac5db: OUTPUT«(True)» | ||
TimToady | on run(), I think the default should maybe be :out, and just optimize that away in sink context | 17:48 | |
jdv79 | i guess we'd need to setup a local server and watch the back and forth | ||
bleh | |||
psch | TimToady: is there any delimiter for sub *fix: that shouldn't interpolate to an existing compile time value? | 17:49 | |
TimToady | not sure I understand the question | 17:50 | |
jdv79 | no. intercepting recv. | ||
psch | actually, it's probably ang | ||
as in, circumfix:<$l $r> is literal $l 1, 2, 3 $r | 17:51 | ||
TimToady | correct | ||
are you working on making the canonical form legal perl? | |||
psch | i'm working on #68024, #119919 and #117737 | 17:52 | |
17:53
colomon left
|
|||
TimToady | well, I guess it's time to fire up the browser again; had it down for benchmarks | 17:53 | |
though I should be working on my talk, sigh... | |||
El_Che | TimToady: where are you talking? | 17:58 | |
TimToady | San Francisco | 17:59 | |
special release talk sponsored by craigslist++ | |||
timotimo | releasing a talk, TimToady? | 18:00 | |
TimToady | only if you guys help me come up with good examples :) | ||
El_Che | TimToady: you'll tell them about Christmas? :) | ||
TimToady | well, sure | ||
timotimo | i've never exampled well | 18:01 | |
carlin | m: sub foo { say "foo" }; my $t = Thread.new(code => &foo); $t.run; $t.run; | 18:10 | |
camelia | rakudo-moar 0ac5db: OUTPUT«Invalid GC status observed; aborting» | ||
carlin | m: sub foo { say "foo" }; my $t = Thread.new(code => &foo); $t.clone.run; $t.clone.run; | 18:12 | |
camelia | rakudo-moar 0ac5db: OUTPUT«Unhandled exception: Cannot invoke null object at <unknown>:1 (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::4294967295) from gen/moar/m-CORE.setting:21755 (/home/camelia/rakudo-inst-1/share/perl6/runtime/CORE.setting.moarvm:p…» | ||
carlin | m: sub foo { say "foo" }; my $t = Thread.new(code => &foo); $t.clone.run; $t.clone.run; | ||
camelia | rakudo-moar 0ac5db: OUTPUT«Unhandled exception: Cannot invoke null object at <unknown>:1 (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::4294967295) from gen/moar/m-BOOTSTRAP.nqp:2046 (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.moarvm::73)…» | ||
carlin | m: sub foo { say "foo" }; my $t = Thread.new(code => &foo); $t.clone.run; $t.clone.run; | ||
camelia | rakudo-moar 0ac5db: OUTPUT«Unhandled exception: Cannot invoke null object at <unknown>:1 (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.moarvm:is_narrower:4294967295) from gen/moar/m-BOOTSTRAP.nqp:1962 (/home/camelia/rakudo-inst-1/share/nqp/lib/Perl6/BOOTSTRAP.…» | ||
carlin | that occasionally segfaults here | ||
18:16
Xor_ joined,
Xor_ is now known as Kcop
|
|||
jnthn | .run should refuse to work more than once, and .clone on a thread should probably die telling you that's a non-sensical thing to do... | 18:20 | |
yoleaux | 14:22Z <nine> jnthn: branch bool_enum in rakudo and roast is ready for review. Any input would be greatly appreciated :) | ||
16:04Z <lizmat> jnthn: looking at increasing parse times the past week while iterifying code: doesn't really get below 45 secs anymore :-( | |||
16:04Z <lizmat> jnthn: when it used to be around 32 not too many weeks ago | |||
16:05Z <lizmat> jnthn: flussence also notived: irclog.perlgeek.de/perl6/2015-10-02#i_11310569 | |||
18:20
colomon joined
|
|||
jnthn | .tell nine Will review tomorrow if I have energy, or Monday if not. You've kinda changed the nature of enums a bit in the MOP, but it may be OK... | 18:21 | |
yoleaux | jnthn: I'll pass your message to nine. | ||
nine | I think, the parse time regression is in NQP or MoarVM rather than rakudo | ||
yoleaux | 18:21Z <jnthn> nine: Will review tomorrow if I have energy, or Monday if not. You've kinda changed the nature of enums a bit in the MOP, but it may be OK... | ||
nine | jnthn: ok, thanks. Whenever you find some energy :) | ||
jnthn | TimToady: I'd take one of the examples from my Japan talk for async stuff (either the auto-test-runner or the juggling concurrent processes) | ||
TimToady | what about meta-programming? | 18:22 | |
debugger? | |||
jnthn | Depends what you want to focus on really. | ||
TimToady | just want to wow them and give them something to look at | 18:23 | |
jnthn | If "we can add powerful new things that feel almost built in" then the OO::Monitors/OO::Actors example ain't bad - depends if you want to show *how* it's done rather than just show that it's possible | ||
TimToady | not to explain the details, but show we've thought deeply about things | ||
jnthn | Grammar::Tracer is a fairly neat example too | ||
TimToady | don't have time to go into much how | ||
18:24
colomon left
|
|||
TimToady | just enough time (an hour) to say here's where we've got too, and you're gonna like it | 18:24 | |
but just talking *about* p6 will be deadly, so gotta show some nifty code, both deep and every-day | |||
psch | the non-multiple-inheritance-class example from the advent posts maybe? | 18:25 | |
jnthn | The MVC example ("can statically check for missing URL templates by extending the langauge") wasn't a bad one also | ||
At end of jnthn.net/papers/2015-fosdem-static-dynamic.pdf | |||
psch | although maybe that's a bit narrow in scope, not sure | ||
TimToady | might appeal to the SF crowd, who are largely webdevs | 18:26 | |
jnthn | I'm not sure I'd go with the "ooh look, we can forbid MI"...some people might point out we perhaps shoulda anyway :P | ||
TimToady | but the talk is aimed more at js, python, ruby users than at p5ers | 18:27 | |
we already have the p5ers attention :) | |||
though I do plan to give the same talk at ppw | |||
jnthn | Well, showing js-ers that our async isn't a mess of callbacks is worthwhile :) | 18:28 | |
pink_mist | is there already a neat webframework build for p6? I'm not really sure how appealing to webdevs p6 will be without one ... I think I've heard mention of P6SGI? | ||
psch | jnthn: right, forbidding MI when it's widely considered bad practice anyway is a good reason it shouldn't be an example... :) | 18:29 | |
s/forbidding/showing how to forbid/ # or w/e... | |||
TimToady | what might be a really good example of role usage? | 18:30 | |
I guess something veering into generics? | 18:31 | ||
maybe that's a good place to show dogfooding in the setting | 18:32 | ||
jnthn | Maybe...various of my talks had examples...I can't think of one that was incredibly succinct. I guess I don't think of roles as a show-offy thing any more 'cus I got used to them :) | ||
afk for a bit again | 18:33 | ||
TimToady | thanks! | ||
18:37
colomon joined
18:38
abaugher left
18:40
abaugher joined
|
|||
DrForr | pink_mist: Bailador maybe? | 18:41 | |
pink_mist | nice =) | 18:42 | |
thanks | |||
DrForr | And yeah, I've heard of P6SGI but I've been somewhat out of touch for a little while. | 18:43 | |
18:47
yqt joined
|
|||
_itz curses Visual Studio and wishes he never left the safety of UNIX | 18:49 | ||
18:54
tokuhiro_ joined
18:58
tokuhiro_ left
|
|||
masak | evenin', #perl6 | 19:03 | |
FROGGS | hi masak | 19:04 | |
masak | I'm trying to enumerate all the grammatical things in Perl 6 that can declare stuff. here's what I have so far: variable declarations (`my`, `our`, etc), routine declarations (`sub`, etc), type declarations (`class`, `role`, `grammar`, etc), block/routine signatures (`->`, `()`), role signatures, imports (`use`, `import`, etc) | 19:06 | |
did I miss anything? :) | |||
FROGGS | constants? | 19:07 | |
masak | btw, I define "declare stuff" as "introduce a name in a lexpad or package namespace" | ||
FROGGS: constants go under the first group. | |||
FROGGS | yeah, thought so | ||
masak | but good point | ||
FROGGS | hmmm | ||
19:07
rindolf left
|
|||
masak | I'm scouring Rakudo's grammar for things I might've missed | 19:08 | |
19:08
xfix left
19:09
xfix joined
|
|||
FROGGS | hmmm, I think your list is complete | 19:10 | |
masak | I should probably call "type declarations" "package declarations" instead... | ||
FROGGS | aye | ||
19:12
rindolf joined
|
|||
masak | m: sub foo($obj) { $obj.abs }; sub bar($obj) { -$obj }; say [.] -5, &foo, &bar | 19:16 | |
camelia | rakudo-moar 0ac5db: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tjrLFid24YUnsupported use of . to concatenate strings; in Perl 6 please use ~at /tmp/tjrLFid24Y:1------> 3.abs }; sub bar($obj) { -$obj }; say [.]7⏏5 -5, &foo, &bar» | ||
masak | aww :) | ||
m: sub foo($obj) { $obj.abs }; sub bar($obj) { -$obj }; say [-5, &foo, &bar].reduce(&infix:<.>) | 19:17 | ||
camelia | rakudo-moar 0ac5db: OUTPUT«5===SORRY!5=== Error while compiling /tmp/8XvjVaNKs5Undeclared routine: &infix:<.> used at line 1. Did you mean '&infix:<∖>', '&infix:<o>', '&infix:<⊎>', '&infix:<∩>', '&infix:<<>'?» | ||
masak | aww xx 2 :/ | ||
19:26
domidumont left
19:27
kaare__ left
|
|||
dalek | kudo/nom: 98d9b87 | FROGGS++ | src/Perl6/Actions.nqp: fix RT #69204, allow $foo .= "bar"() |
19:29 | |
ast: 5f82bde | FROGGS++ | S03-operators/inplace.t: test RT #69204, $foo .= "bar"() |
|||
TimToady | I hope it still disallows it without the parens | 19:30 | |
FROGGS | $ perl6 -e 'my $a = "oh hai"; say $a .= "uc"' | ||
===SORRY!=== Error while compiling -e | |||
Quoted method name requires parenthesized arguments. If you meant to concatenate two strings, use '~'. | |||
TimToady | since that's a likely P5 error | ||
super! | 19:31 | ||
FROGGS | aye :o) | ||
masak | oh, that's one of mine. from 2009. | ||
FROGGS++ | |||
TimToady | maybe we can allow $a . "uc"() as well if there are parens, but we'd have to check it in the lookahead, I suspect | ||
19:31
abaugher left
|
|||
TimToady | which means we'd have to parse the string twice, which is kinda bogus | 19:32 | |
19:32
abaugher joined
|
|||
TimToady | either that, or we delay the P5 warning till later | 19:32 | |
FROGGS | TimToady: what is "uc"() ? | ||
TimToady | some old P5 thing :P | ||
FROGGS | O.o | 19:33 | |
FROGGS .oO( Who are you? - Some ol' P5 thing! ) | |||
TimToady | my $a = "oh hai"; say $a."uc"() | ||
m: my $a = "oh hai"; say $a."uc"() | |||
camelia | rakudo-moar 0ac5db: OUTPUT«OH HAI» | ||
FROGGS | ahh | 19:34 | |
TimToady | m: my $a = "oh hai"; say $a . "uc"() | ||
camelia | rakudo-moar 0ac5db: OUTPUT«5===SORRY!5=== Error while compiling /tmp/C7J9_g3ngKUnsupported use of . to concatenate strings; in Perl 6 please use ~at /tmp/C7J9_g3ngK:1------> 3my $a = "oh hai"; say $a . "7⏏5uc"()» | ||
TimToady | currently disallowed | ||
FROGGS | yes, my brain parsed it differently | ||
masak | by the way, I might be fine with adding back github.com/perl6/specs/commit/9950...a69fc9e4a5 at some point. | 19:35 | |
TimToady | I suppose for a heuristic we could just scan forward for a "( | ||
masak | (I saw that there was an XXX about it in the Rakudo grammar) | ||
but I would like us to ponder whether there's a better alternative first | |||
for example, if the main use case is to allow for commutative operators, maybe a trait would do this better | |||
19:43
araujo left,
araujo joined
19:50
BenGoldberg joined
19:56
tokuhiro_ joined
20:00
tokuhiro_ left
20:12
ZoffixWork joined
|
|||
ZoffixWork | Hey all. Please review this PR for a proposed new design of perl6.org: Demo website: perl6.xtatik.org/ PR: github.com/perl6/perl6.org/pull/22 | 20:18 | |
moritz, ^^ | |||
moritz | ZoffixWork: I like it | 20:20 | |
ZoffixWork: on first glance, the only thing that needs a bit of rework is at the bottom the "more" buttons | |||
they have too little contrast, IMHO | |||
20:21
Psyche^_ joined
20:22
darutoko left
|
|||
ZoffixWork | Sure. I can fix that. | 20:23 | |
20:25
Psyche^ left
|
|||
moritz | the colors are a bit muted (compared to before, at least), but it's still not boring | 20:25 | |
ZoffixWork | Yeah, I've tried like 6 different palettes :) The good thing is they can be easily changed: getbootstrap.com/customize/#colors | 20:27 | |
moritz | and s/unicode/Unicode/ :-) | ||
20:28
mr_ron left
|
|||
TimToady | I like it; the yellowish green kinda swears at the more bluish green color in camelia's wings, but that's a minor nit | 20:28 | |
[Coke] returns from errands and starts to poke at angular. | 20:29 | ||
ZoffixWork | moritz, footer buttons updated: perl6.xtatik.org/ does that look better? | 20:30 | |
TimToady | so maybe a slightly different hue with the same saturation would be nicer, but then it might clash with the blue buttons | ||
moritz | ZoffixWork: aye | ||
ZoffixWork: thanks | |||
ZoffixWork: I want to give others the chance to chime in, and then maybe merge in a day or so | 20:31 | ||
ZoffixWork | Of course. | ||
[Coke] | ZoffixWork: are you the same person that was working on a redesign a month or so ago in perl6-site ? | 20:33 | |
FROGGS | ZoffixWork: I like it :o) | ||
ZoffixWork: the only thing I'd try changing is the colorset of the top bar | 20:34 | ||
ZoffixWork | [Coke], probably not | ||
FROGGS, sure, they are easy to change. I suck with colours. My hope is some genius designer will pick better ones :P | 20:36 | ||
FROGGS | *g* | ||
ZoffixWork | Anyway. I gotta bounce, but I'm still logged in here from home as "Zoffix" and will read the log and comments on the PR :) Cheers! | ||
20:36
ZoffixWork left
|
|||
FROGGS | Zoffix++ | 20:36 | |
leont | Hoe should temp interact with || in rules? | 20:42 | |
How | |||
I think I'm observing it not reverting on failure of the left hand side, or is it supposed to revert with the entire rule? | 20:43 | ||
Or :temp if I want to be pedantic | 20:44 | ||
20:44
abaugher left
|
|||
TimToady | temp is only scoped to blocks, and not really intended for regexes | 20:44 | |
we revert things by throwing away cursors, generally, so you'd use make to store something you want to throw away later | 20:45 | ||
20:45
abaugher joined
|
|||
leont | I'm not sure how else to parse context-sensitive formats | 20:46 | |
That didn't parse for me | |||
I know cursors exist and have a rough idea of what they do, but how to use them I don't have a clue | |||
20:50
mr_ron joined
|
|||
TimToady | sorry, gotto go do sysadminny stuff now, maybe someone else can help | 20:50 | |
afk & | |||
leont | Basically, I need to store an indentation level somewhere | 20:51 | |
github.com/Leont/yamlish/blob/mast...h.pm6#L172 | |||
timotimo | oooh that website design is neato | 20:53 | |
[Coke]: i think that was probably smls? | 20:54 | ||
20:57
rurban joined
|
|||
dalek | kudo/nom: 2e92038 | timotimo++ | src/core/ (2 files): make fail, die and Failure.new cheaper |
20:57 | |
timotimo | cool, my rosettacode galton box still works :) | 21:01 | |
[Coke] finds one {{ }} that appears to kill angular1.4.x and hopes he can fix it. | 21:05 | ||
timotimo: I also see we're including jquery just to get tooltips; we should be able to do those with angular bootstrap instead of jquery bootstrap | 21:06 | ||
21:12
TEttinger joined
|
|||
[Coke] | any angular users around? | 21:14 | |
timotimo | sure, throw jquery out | 21:15 | |
i don't even remember any tooltips being used in there | 21:16 | ||
[Coke] | aha, figured it out. | ||
I now have a functioning version with angular 1.4.2 | 21:17 | ||
Need to recode one of the functions to avoid an issue, but should be easy. timotimo: anything I should be looking out for? I clicked through all the tabs, no errors. | 21:18 | ||
21:18
rindolf left
21:24
FROGGS[tab]_ left
21:26
vendethiel joined
|
|||
timotimo | oh? | 21:28 | |
no errors, eh? | |||
that sounds great; can you gimme the code? | |||
and what's the function that needs to be recoded? | |||
does sorting the routine list feel faster? changing tabs, too? | 21:29 | ||
perhaps even less ram usage? | |||
oh that would be joyous | |||
[Coke] | timotimo: the function is backgroundColor - it is returning random values, which annoys later version of angular. | 21:34 | |
I'm trying to find a thing that I can hash to get a constant color in that $scope. | |||
callee's name seems plausible? | 21:35 | ||
nope. | 21:36 | ||
masak | [Coke]: I'm an angular user, and I'm around. | ||
how may I be of service? | |||
21:39
spider-mario left
|
|||
[Coke] | I'm looking at the profiler html. there is a CallGraphController - trying to introspect the $scope object to find a unique ID I can use. | 21:39 | |
Not sure if $scopes have something inherently unique I can use, or if I need to examine the datastructure to find something. | 21:40 | ||
ah, I think I have a lead; I should update backgroundColor to take the callee, and use that, not the scope. | 21:45 | ||
\o/ | 21:47 | ||
Ok, I have a working local copy of a profile page working. | |||
double working? | 21:48 | ||
timotimo | awesome | 21:50 | |
masak | [Coke]++ | 21:55 | |
21:57
tokuhiro_ joined
21:59
kid51 joined
|
|||
[Coke] | testing in a build, one sec. | 22:01 | |
22:01
tokuhiro_ left
22:04
vendethiel left
|
|||
[Coke] | well, crap. I tried a different one liner to profile on the full build, getting new failures. | 22:05 | |
Still seems to be mostly working when clicking through, however. | |||
timotimo: gist.github.com/coke/b1815d6a28da9dfe9e10 for the WIP | 22:06 | ||
masak | 'night, #perl6 | ||
cognominal | Speaking of callgraph gist.github.com/cognominal/eedf4128848d4e54ab9a :) Comment on style welcome. | ||
[Coke] | timotimo: still digging. | 22:08 | |
22:09
rurban left,
xfix left
|
|||
timotimo | hum. | 22:16 | |
22:17
schmooster left
|
|||
TimToady | nine: I can't seem to panda install Inline::Perl5, I get: | 22:18 | |
gcc -Wall p5helper.c `perl -MExtUtils::Embed -e ccopts -e ldopts` -shared -o /home/larry/.panda-work/1443910514_1/blib/lib/Inline/p5helper.so -fPIC -g | |||
/usr/bin/ld: cannot find -lperl | |||
which is odd, because I have a /usr/lib/libperl.so.5.18.2 out there, and 18.2 is what I'm invoking | 22:19 | ||
FROGGS | TimToady: github.com/niner/Inline-Perl5/#building | ||
cognominal | good night | 22:20 | |
TimToady | okay, but it's a weird error message for that... | ||
FROGGS | TimToady: it is also possible that you need the libperl-dev package to get a libperl.so, without the version suffix | ||
TimToady | that was it | 22:21 | |
FROGGS | ahh, cool | 22:22 | |
TimToady | would be nice if panda could point that out somehow... | ||
_itz | I was caught by that as well .. its at least a FAQ candidate | ||
FROGGS | but it is easy to report false positives there... perhaps it should only give tips when failing | ||
22:25
zakharyas joined
22:26
_sri left,
_sri joined
22:29
raz9r joined
|
|||
[Coke] | masak: the icycle_graph_callee_renderer.html template is fiddly in angular 1.4x. depending on how complex your profiled code is, my patch is sufficient. however, more complicated code starts throwing infdig exceptions. | 22:34 | |
22:35
zakharyas left
22:39
ketadmin joined
22:40
atweiden joined,
telex left
|
|||
timotimo | "infdig"? | 22:41 | |
atweiden | p6: my @requested = qw<Baz Bazz BazBar FooBar>; my @found = qw<Baz Bazz BazBar>; @requested (-) @found | 22:42 | |
camelia | rakudo-moar 2e9203: OUTPUT«WARNINGS:Useless use of "(-)" in expression "@requested (-) @found" in sink context (line 1)» | ||
atweiden | p6: my @requested = qw<Baz Bazz BazBar FooBar>; my @found = qw<Baz Bazz BazBar>; say @requested (-) @found | ||
camelia | rakudo-moar 2e9203: OUTPUT«set(FooBar)» | ||
22:42
telex joined
|
|||
atweiden | p6: my @requested = qw<Baz Bazz BazBar BazBar>; my @found = qw<Baz Bazz BazBar>; say @requested (-) @found | 22:42 | |
camelia | rakudo-moar 2e9203: OUTPUT«set()» | ||
atweiden | is there a way to make that work for detecting duplicates? | 22:43 | |
[Coke] | best guess right now: need to call $rootScopeProvider.digestTtl() and up the recursion limit. | 22:50 | |
22:51
_sri left,
_sri joined
22:56
RabidGravy left
|
|||
[Coke] | ff | 23:01 | |
woot. Fixed. | 23:02 | ||
23:03
mr_ron left
23:06
raz9r left
23:12
jasanj`` left
23:13
jasanj`` joined
|
|||
dalek | p: 71dbe59 | coke++ | src/vm/moar/profiler/template.html: Update MoarVM profiler output to angular 1.4.2 Use consistent bg color, avoid template recursion problems. |
23:13 | |
23:17
travis-ci joined
|
|||
travis-ci | NQP build failed. Will "Coke" Coleda 'Update MoarVM profiler output to angular 1.4.2 | 23:17 | |
travis-ci.org/perl6/nqp/builds/83502339 github.com/perl6/nqp/compare/99a21...dbe59947d8 | |||
23:17
travis-ci left
|
|||
dalek | kudo/nom: c52b0b3 | coke++ | tools/build/NQP_REVISION: bump NQP to get new moarvm profile html page |
23:18 | |
23:19
mr_ron joined
|
|||
[Coke] | sadly, still doesn't let me bring up an htmlify run. | 23:29 | |
(From perl6/doc) | 23:30 | ||
23:36
yqt left
23:38
cognominal left
23:39
cognominal joined
23:58
tokuhiro_ joined
|