»ö« 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:03
FROGGS left
00:06
FROGGS joined
00:07
Zhtwn left
00:08
ggoebel left
|
|||
dalek | c/choices: d3ef4e1 | ab5tract++ | bin/p6doc: No longer theoretical |
00:13 | |
00:13
msouth left
00:14
lizmat left
00:18
quietfanatic left
00:20
rurban left
00:23
lizmat joined
00:25
amurf left
00:26
amurf joined
00:27
amurf left
00:38
kurahaupo1 left,
msouth joined,
llfourn joined
00:44
laouji joined
00:46
msouth left
00:53
msouth joined
00:54
Zhtwn joined,
bin_005 joined
01:09
cognominal joined
01:14
nys left
01:18
adu joined
01:21
cognominal left
01:22
prevost joined
01:38
BenGoldberg joined
01:46
yqt left
01:54
gtodd1 joined
01:59
Ben_Goldberg joined
02:01
dayangkun joined
02:02
BenGoldberg left
02:04
prevost left,
ggoebel joined
|
|||
dalek | c/choices: 145185a | ab5tract++ | bin/p6doc: Run doc output through fmt on the way to page |
02:04 | |
c/choices: 571f437 | ab5tract++ | bin/p6doc: Cleaner by far |
|||
02:11
rurban joined
|
|||
dalek | c/choices: d7ae128 | ab5tract++ | bin/p6doc: Fix menu |
02:13 | |
02:17
msouth left
02:22
adu left
02:26
ggoebel left
|
|||
pmichaud | good evening, #perl6 | 02:26 | |
02:27
AlexDaniel left
02:28
noganex joined
|
|||
hoelzro | evening pmichaud | 02:29 | |
02:30
msouth joined
02:31
noganex_ left
02:35
Ben_Goldberg left,
rmgk_ joined,
rmgk is now known as Guest7371,
rmgk_ is now known as rmgk
02:36
kurahaupo1 joined
02:39
Guest7371 left
02:48
adu joined
02:50
jack_rabbit joined
02:51
Zhtwn left
|
|||
pmichaud | TimToady: ... is "take" considered an instance of abnormal control, in the sense of being trappable by CONTROL handlers...? | 02:53 | |
*abnormal control flow | |||
02:54
sunnavy left
|
|||
TimToady | presumably | 02:54 | |
at least as currently implemented | |||
pmichaud | well, I mean more "as designed" | ||
TimToady | it doesn't really have to be control flow, if it merely knows where to put the next value | 02:55 | |
pmichaud | I'd prefer it not be control flow. | ||
TimToady | fine by me | 02:56 | |
pmichaud | in some sense it is, in another it's not, since as far as the block is concerned execution continues immediately following the take anyway :) | ||
it's more like an interrupt than a control flow break :) | |||
TimToady | certainly we want to maintain the right to optimize | 02:57 | |
pmichaud | yes | ||
works for me. | |||
skids | Well, someone will come looking for a coruotine construct if take stops behaving as one. | ||
pmichaud | skids: I'm not changing that. | 02:58 | |
adu | TimToady: you're such a libertarian | 02:59 | |
pmichaud | There are just cases where take can be smart enough to recognize that it's safe to store the value somewhere and proceed without immediately doing the control jump. | ||
02:59
adu left,
adu joined
|
|||
skids | Ah, good, I am all for optimizing those too :-) | 02:59 | |
pmichaud | when it's not safe, it does the continuation/jump bit. | 03:00 | |
adu | TimToady: you're such a libertarian | ||
TimToady | you can say that again | ||
adu | libertarian | ||
it's a Good Thing | 03:01 | ||
Liberty is what protects us from Hitler and population reductionism | 03:02 | ||
pmichaud | .oO( is Hitler still a threat? I thought he was dead. ) |
03:04 | |
adu | I'm 100% sure that Hitler's public double is dead | ||
pmichaud | Aha. Good to know. | 03:05 | |
adu | I'm 5% sure that the original Hitler is dead | ||
03:06
rurban left
|
|||
skids | m: say 2015-1889; # I'm a bit more than 5% sure. | 03:06 | |
camelia | rakudo-moar 15c6fb: OUTPUT«126» | ||
adu | make that 45% sure | 03:07 | |
dalek | ecs: a62d2ce | pmichaud++ | S07-glr-draft.pod: More GLR discussion, plans, and notes. |
03:12 | |
pmichaud | TimToady: not sure it's a good idea, but @@ popped into my head as a possible flattener. | 03:14 | |
it's very steamroller-y | |||
I'm afk # walk, packing | 03:17 | ||
03:24
laouji left
03:25
laouji joined
03:29
laouji left
03:37
sunnavy joined
|
|||
dalek | ecs: e71c0a1 | skids++ | S07-glr-draft.pod: Minor pronoun clarification Historical note for those not up to date on GLR progress |
03:37 | |
03:48
yeahnoob joined
03:51
prevost joined
03:54
kst left,
bin_005 left
03:55
bin_005 joined
03:57
Gardner joined
04:01
laouji joined
|
|||
dalek | ecs: b95b2a1 | Mouq++ | S07-glr-draft.pod: Ask about a list concatenation op |
04:04 | |
ecs: 2a7daba | Mouq++ | S07-glr-draft.pod: Untypo last commit |
04:07 | ||
04:16
kaare_ joined,
adu left
04:17
mattp__ left
|
|||
TimToady | Mouq: yes, re irclog.perlgeek.de/perl6/2015-06-10#i_10729270 a deepmap is intented to retain structure, so there's that's gone buggy with some of our GLR stuff, and will need fixing | 04:19 | |
*something | |||
Mouq | Okay | 04:22 | |
TimToady | jnthn: the intent of having a .parsefile in the first place is to capture the filename for use in error messages | 04:23 | |
otherwise it's rather uselessly redundant with .slurp.parse | |||
well, .parse(slurp) or some such | 04:24 | ||
dalek | ecs: 4482589 | pmichaud++ | S07-glr-draft.pod: Add answer to skids++'s e71c0a1 question. |
04:25 | |
Mouq | Part of me, after implementing it, is still uncertain about »+» creating lists of the same type as were passed, until we get coersion worked out better :/ | ||
TimToady | that seems right to me | 04:26 | |
pmichaud | I suspect a lot of new information will fall out of the new GLR semantics | ||
er, phrased that wrong | |||
I suspect we'll have a lot better picture of how it should work once the initial GLR semantics are in implementation | 04:27 | ||
I'm very much liking the model that is emerging from thoughts/discussions | |||
it feels clean, elegant, and (potentially) fast | |||
04:31
hanekomu left
04:32
broquaint left
04:40
araujo_ left
|
|||
japhb | .oO( Choose three ... ) |
04:42 | |
dalek | ecs: 99aeec7 | pmichaud++ | S07-glr-draft.pod: Conjecture names for the conjectured insert-into-list type. |
04:43 | |
ecs: 43f7fde | pmichaud++ | S07-glr-draft.pod: Answer Mouq++'s b95b2a1 question. |
|||
ecs: 69b6eb5 | pmichaud++ | S07-glr-draft.pod: More answer to Mouq's example. |
04:50 | ||
04:50
araujo joined
|
|||
dalek | ecs: 84ff4f3 | pmichaud++ | S07-glr-draft.pod: Add "Sublist" to the brainstorm. |
04:51 | |
pmichaud | Also "SList", which combines "sublist" but maybe sounds a bit like "slice". :-) | ||
04:52
SevenWolf joined
|
|||
TimToady | the conjectured type won't replace Nil, only Empty | 04:54 | |
pmichaud | correct. | ||
Nil ends up being quite orthogonal to lists, I think. | 04:56 | ||
as in, it doesn't have any special listy properties. | |||
pmichaud adds to S07 | |||
TimToady | I just was reading a partial context line, and didn't see the pre-GLR note on Nil | ||
04:57
lkjkj joined
04:58
lkjkj left
|
|||
Mouq | pmichaud++ btw | 04:58 | |
dalek | ecs: d419e70 | pmichaud++ | S07-glr-draft.pod: Add note about post-GLR C<Nil>. |
||
TimToady kinda wonders whether our new type is really just an iterator, rather than something you ask for an iterator | |||
pmichaud | it's certainly Iterable. | ||
and in pre-GLR, all Iterators were Iterables. | 04:59 | ||
Mouq | Also, "Expand"? (Seq bikeshedding) | ||
TimToady | .oO(Shoehorn) |
||
Hoist | 05:00 | ||
pmichaud | I knew I'd be opening the bikeshed paint store with that commit. :) | ||
Clip, Cut, Paste were ideas coming from the notion of film editing. :) | |||
TimToady | Splice | ||
pmichaud | I thought of Splice, but it's too close to .splice for my taste. | ||
TimToady | well, rather similar idea | 05:01 | |
pmichaud | yes, but part of me feels that .splice should then return a Splice. :) | ||
TimToady | whatever it is, Foo() has to feel like Empty | 05:02 | |
pmichaud | thesuarus.com only knows about the verb form of "splice", and the noun definitions I've seen think of a "splice" as the whole result of the join, and not the piece being joined | ||
TimToady | More() | ||
pmichaud | I kind of like Seq() | 05:03 | |
I didn't at first, but it's growing on me. | |||
Mouq | To bad we already used Mu :P | ||
pmichaud | Lu | ||
TimToady | Moo | 05:04 | |
we were wanting a Dog type... | |||
pmichaud | I'm also toying with the idea that the type object itself disappears in a list. | ||
05:04
lolisa left
|
|||
pmichaud | like Empty does now. | 05:04 | |
m: say Empty.defined | |||
camelia | rakudo-moar 15c6fb: OUTPUT«False» | ||
pmichaud | so then one could just return Seq | ||
and not have to do Seq() | |||
TimToady | but Seq doesn't feel empty | ||
pmichaud | (or whatever it gets called) | 05:05 | |
TimToady | Slot | ||
pmichaud | Hole | ||
TimToady | Virus | ||
pmichaud | Gene | ||
TimToady | Intron | 05:06 | |
Slip | |||
as in, "slip this in" | |||
but also "slip one cog" when nothing is there | |||
pmichaud | "Welcome to Pm's Bikeshed Paint Emporium! Today we have a special running on all sorts of list-related terms" | 05:07 | |
yes, I like the double-meaning to slip | |||
I was thinkng "slip by this one" | |||
TimToady | and it implies "sneaky" | ||
pmichaud | Sneak | ||
(slip is better) | |||
Mouq | Pm() | ||
pmichaud | are you implying I'm empty? :-) | ||
Mouq | You just fit in so well | 05:08 | |
pmichaud | I think I'll tentatively go with Slip for now, I like it better than Seq | ||
TimToady | me2 | ||
dalek | ecs: 3c71890 | pmichaud++ | S07-glr-draft.pod: s/Seq/Slip/ # better bikeshed choice for now |
05:10 | |
pmichaud | fwiw, I tried really hard to convince myself that C<Dog> could work. :-P | ||
and perhaps C<Tac> is too much "you think that's cute today" | 05:11 | ||
05:14
llfourn left,
skids left
|
|||
pmichaud | I wonder if the result of an infix:<...> should naturally be a Slip | 05:30 | |
(idle thought) | |||
TimToady | we might implement the postulated foo(@inner): @outer using a slip of some sort too | 05:33 | |
pmichaud | this feels very much like a primitive type we've been missing for some time :) | ||
TimToady | .u 、 | 05:34 | |
yoleaux | U+FF64 HALFWIDTH IDEOGRAPHIC COMMA [Po] (、) | ||
pmichaud | I get a box for that char in my font. | 05:35 | |
TimToady | .u ⸴ | 05:36 | |
yoleaux | U+2E34 RAISED COMMA [Po] (⸴) | ||
pmichaud | same there. :) | ||
TimToady | looking for non-Texas forms :) | ||
"raised" is cute though | |||
pmichaud | well, we want to make sure it's visually distinct from normal commas, too. | ||
TimToady | u ⨩ | 05:37 | |
.u ⨩ | |||
yoleaux | U+2A29 MINUS SIGN WITH COMMA ABOVE [Sm] (⨩) | ||
TimToady has been considering various Texas forms | |||
05:37
prevost left
|
|||
TimToady | ,, or \, or ^, and such | 05:37 | |
the (,) ain't so bad except it would imply a set operator | 05:38 | ||
pmichaud | yup | ||
TimToady | <,> | ||
pmichaud | I conjectured @, at one point. | ||
but too sigil/twigilish | 05:39 | ||
TimToady | it's kind of a shame that _ is considered alpha | 05:40 | |
as a "flat" sugar | |||
other possible flat sugars: *() *: | 05:41 | ||
would obviously have to win under LTM, but fit nicely with * for slurp | |||
pmichaud | there's always *** :-) | 05:42 | |
that's the Alaska form. :) | |||
TimToady | too bad there isn't a monster truck glyph | 05:43 | |
05:43
RabidGravy joined
|
|||
pmichaud | aha | 05:44 | |
the O_O operator | |||
TimToady | maybe we should use snowman for hierarchical, and comet for "flattening" :) | ||
pmichaud | O_O looks like a steamroller :) | ||
TimToady | O¯O | 05:45 | |
pmichaud | I'm pretty sure someone can create a Texas monster truck | ||
but for that matter, how about infix:<slip> | 05:46 | ||
I really don't expect it to be common at all. | |||
TimToady | o̿o | ||
pmichaud | (perhaps I'm wrong about that with all of the other flattening/itemization changes we're making... perhaps it'll be very common) | ||
TimToady | I considered infix:<slip>, but while it's huffmanly ok, it just doesn't quite feel right for some reason | 05:47 | |
pmichaud | or even prefix:<slip> | ||
TimToady | prefix slip is close to your one-level flat | ||
pmichaud | yes, and it fits with the other "list" and "flat" contextualizers. | ||
and then you can do return slip; | |||
as well as return slip() | |||
TimToady | but a reduce on the infix is probably sufficient instead of a prefix | 05:48 | |
pmichaud | indeed | ||
TimToady | return Slip; ain't so bad | ||
pmichaud | yeah, but Slip.new(1,2) isn't so much fun. | ||
It works, but.... | |||
TimToady | [,,] 1,2 | 05:49 | |
pmichaud | I suppose we can do Slip(1,2), but that feels wrongish also. | ||
TimToady | not opposed to a slip listop | ||
pmichaud | return [slip] 1,2 feels interesting also | ||
the "slip" almost looks parenthetical :) | |||
FROGGS | hmmmm, 'return Slip' would be identical to 'return Panties' where I am | 05:50 | |
pmichaud | FROGGS: TMI | ||
TimToady | the Slips I'm familiar with are not identical to Panties... | ||
pmichaud | WTMI | ||
FROGGS | :D | 05:51 | |
good morning :o) | |||
05:51
FROGGS[mobile] joined,
FROGGS left
|
|||
TimToady | @x X (@y Zslip @z) feels odd | 05:52 | |
@x X, (@y Z^, @z) seems more better | |||
or @x X, (@y Z\, @z) | 05:53 | ||
so I'd like it to seem like a comma variant | |||
pmichaud | I'd be okay with ^, or \. | ||
TimToady | that's probably what bothers me about slip | ||
pmichaud | er, \, | ||
yes, I prefer a comma variant of some sort also. | |||
I just haven't come up with one I like better than slip. :) | 05:54 | ||
I just haven't come up with one I like. | |||
TimToady | [\,] is bad though | ||
m: .say for [\,] ^5 | 05:55 | ||
camelia | rakudo-moar 15c6fb: OUTPUT«00 10 1 20 1 2 30 1 2 3 4» | ||
pmichaud | ,, seems like it could work but it scares me somehow. | ||
TimToady | yeah, looks like an error | ||
*, maybe | 05:56 | ||
pmichaud | aha! | ||
infix:<⏏> :-P | |||
TimToady | .p ❟ | 05:57 | |
.u ❟ | |||
yoleaux | U+275F HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT [So] (❟) | ||
pmichaud | I'm going to go with "slip" for now, knowing we'll likely change it to something comma-based. | 05:58 | |
I definitely like the prefix "slip" form. | 05:59 | ||
06:00
bin_005 left
06:01
bin_005 joined
|
|||
TimToady | the thing I like about ,, though is that it kinda implies the two commas in the upper list on either side of the bit we're slipping in, a kind of comma-hole | 06:03 | |
pmichaud | put a "hole" between the commas, then. | 06:05 | |
like ,O, | |||
but not alpha | |||
so that it doesn't look like a typo but is obviously deliberate. | 06:06 | ||
06:10
diana_olhovik_ joined
|
|||
pmichaud | perhaps we could do ,, and make it illegal to mix ,, and , in the same chain. | 06:12 | |
3,,4 # okay | 06:13 | ||
3,4,,5 # error | |||
3,(4,,5) # okay, but same as 3,4,5 | |||
oh! | 06:14 | ||
for that matter, even if someone typoed the ,, they'd end up with the same result. | 06:15 | ||
(I think) | |||
I can probably find a case where that doesn't work. | |||
TimToady | well, 3,4,,5 would already be an error, since two list assoc have to be the same operator already | 06:18 | |
06:18
quietfanatic joined
|
|||
quietfanatic | Insert() was what I was thinking | 06:18 | |
06:18
llfourn joined
|
|||
TimToady | we've mostly settled on Slip for the moment | 06:18 | |
quietfanatic | ah | ||
06:19
Gardner left
|
|||
quietfanatic | p6: grammar ASDF { multi rule TOP { ^ asdf $ }; multi method TOP ($/) { $/.make: "asdf" } }; say ASDF.parse("asdf", :actions(ASDF)) | 06:19 | |
camelia | rakudo-moar 15c6fb: OUTPUT«Too many positionals passed; expected 1 argument but got 2 in regex TOP at /tmp/tmpfile:1 in block <unit> at /tmp/tmpfile:1» | ||
quietfanatic | I was really hoping that would work | ||
06:20
FROGGS joined
|
|||
quietfanatic | I wonder why that error message happened though? | 06:20 | |
06:20
msouth left
|
|||
TimToady | extra arg to 2nd TOP | 06:20 | |
quietfanatic | But the signature of first TOP is (ASDF: *%_) | 06:21 | |
according to introspection | |||
so why would anything be calling anything with two args? | |||
RabidGravy | struggling to reproduce this "smallbin double linked list corrupted" thing in a bite size chunk of code | 06:22 | |
it appears to only happen when running tests with "panda-test" | 06:23 | ||
which is odd | 06:24 | ||
quietfanatic | And those two multis really shouldn't affect one another. Even if this is an unlikely use case, it looks like a bug to me. | 06:25 | |
RabidGravy | and also makes it difficult to run valgrind on it | ||
06:26
telex left
|
|||
TimToady | quietfanatic: you're probably completel freaking out the LTM analyzer by mixing a rule and a method... | 06:26 | |
quietfanatic | Well I wouldn't freak out if I were it. :) | 06:27 | |
pmichaud | Yes you would. | ||
The entire regex engine is a big mess of "OMG WTF I AM SO FREAKED OUT!" | |||
if you're wanting to put the action methods into the grammar, how about just using a closure? | 06:28 | ||
FROGGS | m: grammar ASDF { multi rule TOP { { say "WAT" } }; multi method TOP (*@, *%) { say "hello" } }; say ASDF.parse("asdf", :actions(ASDF)) | ||
camelia | rakudo-moar 15c6fb: OUTPUT«WAThello(Any)» | ||
06:28
telex joined
|
|||
pmichaud | rule TOP { ^ asdf $ { $/.make: "asdf" } } | 06:28 | |
quietfanatic | Yes, that's what TimToady replied offline | ||
I recall somebody several years ago on here telling me not to do that though | 06:29 | ||
pmichaud | you don't get inheritance/substitutability, but I suspect it works just as well. | ||
TimToady | there was a point where make didn't work in rakudo if you used it there | ||
but that's been fixed | |||
FROGGS | quietfanatic: yes, it becomes more dirty and dirty when your grammar grows | ||
quietfanatic | ah, maybe that wasa it | ||
pmichaud | well, putting the two methods in the grammar is going to get dirty as well :) | ||
FROGGS | true | 06:30 | |
TimToady | the main reason for separating out to a separate class is that you can use the same grammar with different actions | ||
pmichaud | agreed. | ||
quietfanatic | ah, that makes sense too | ||
TimToady | such as a pretty-printer | ||
pmichaud | that, and also to make it easier to read | ||
I always found it really hard to follow parsing when the action code was intermingled in the rules. | |||
quietfanatic | it's easier to read but there's a lot of coupling of method names and organization | 06:31 | |
pmichaud | yes, I didn't find a way to avoid the name coupling. | ||
tbh, I didn't expect it to be adopted. :) :) | |||
TimToady | yeah, and it's difficult to optimize away the double dispatch too | ||
06:31
domidumont joined
|
|||
TimToady | we really need a composition operator of some sort | 06:31 | |
with a grammar and a set of actions | 06:32 | ||
06:32
mattp__ joined
|
|||
pmichaud | 'action' keyword, perhaps? | 06:32 | |
grammar Something does SomethingActions | |||
TimToady | well, important thing is to set up some wrapping scheme so only a single dispatch is needed | ||
FROGGS | I guess the proto has some trouble coping with a rule and a method in the ASDF example here... | ||
quietfanatic | or hey, what about | ||
FROGGS | I bet it is auto-gen'd wrongish | ||
quietfanatic | grammar X is Y { | 06:33 | |
whoops, hold on | |||
TimToady | this strikes me as the same problem as wrapping role's BUILD submethods around the class's | ||
pmichaud | compose the actions directly into the grammar, and find a way to link the two. | ||
quietfanatic | grammar X is Y { method TOP { callsame; $/.make: whatever; } } | ||
TimToady | but you don't want the grammar saying what it's mixing in | 06:34 | |
quietfanatic | You can just inherit the grammar and override and supercall all its methods | ||
06:34
Klaudioh left
|
|||
quietfanatic | Y is the original grammar without actions. | 06:34 | |
pmichaud | could be a runtime mixin | ||
anyway, I vote post-6C :) | |||
TimToady | well, I wanna rework the fate system first, I suspect | ||
and that probaby wants to be pre | |||
FROGGS | quick! rewrite all the things! /o/ | 06:35 | |
:D | |||
TimToady | well, I pretty much know how, since STD did it without rescanning the same token multiple times | ||
06:35
domidumont left
|
|||
quietfanatic | p6: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { callsame; $/.make: "fdsa" } }; say FDSA.parse("asdf") | 06:36 | |
camelia | rakudo-moar 15c6fb: OUTPUT«Method 'to' not found for invocant of class 'Any' in block <unit> at /tmp/tmpfile:1» | ||
06:36
domidumont joined
|
|||
FROGGS | TimToady: btw, I'm going to make run() and shell() able to do what pipe() does right now... I just need a better name for Proc::Status, and I'm thinking IO::Proc might not be too bad | 06:36 | |
TimToady | it's too late for me to bikeshed :) | 06:37 | |
FROGGS | TimToady: ahh, that's what you mean (fates), yeah, I'm looking forward to that | ||
pmichaud | I consumed all of TimToady's bikeshedding cycles for the night, I think :) | ||
FROGGS | pmichaud++ | 06:38 | |
TimToady: this if on topic somewhat... a recent nqp commit of yours causes a regression: RT #125345 | |||
synbot6 | Link: rt.perl.org/rt3/Public/Bug/Display...?id=125345 | ||
FROGGS | this is* | 06:39 | |
TimToady | yes, I know | ||
been thinking about it, will probably clean up with adding :: and ::: support | |||
FROGGS still giggles internally about the "I asked you if you want to take a seat" :D | |||
ohh | |||
nice | |||
TimToady: I'll port it to jvm for you | 06:40 | ||
TimToady | and the fates cleanup also probably gets us <*...> | ||
quietfanatic | now why doesn't that inheritance one work? Another regex engine freakout? | ||
FROGGS | yeah... I still wonder if I will every use that | ||
TimToady | it's very difficult to write for anything that is not literal abbreviations | 06:41 | |
whereas it's easy for the NFA to simply return success instead of failure when it reaches as far as it can | |||
FROGGS | p6: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP($/) { callsame; $/.make: "fdsa" } }; say FDSA.parse("asdf") | ||
camelia | rakudo-moar 15c6fb: OUTPUT«Too few positionals passed; expected 2 arguments but got 1 in method TOP at /tmp/tmpfile:1 in block <unit> at /tmp/tmpfile:1» | ||
FROGGS | p6: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { callsame; self.CURSOR.make: "fdsa" } }; say FDSA.parse("asdf") | 06:42 | |
camelia | rakudo-moar 15c6fb: OUTPUT«Method 'CURSOR' not found for invocant of class 'FDSA' in method TOP at /tmp/tmpfile:1 in block <unit> at /tmp/tmpfile:1» | ||
TimToady | surely you want to capture the return value of callsame into $/ | 06:43 | |
06:44
SevenWolf left
|
|||
TimToady | grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { my \m = callsame; m.make: "fdsa"; m } }; say FDSA.parse("asdf") | 06:45 | |
m: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { my \m = callsame; m.make: "fdsa"; m } }; say FDSA.parse("asdf") | |||
camelia | rakudo-moar 15c6fb: OUTPUT«Method 'make' not found for invocant of class 'FDSA' in method TOP at /tmp/o1gWyYnEgP:1 in block <unit> at /tmp/o1gWyYnEgP:1» | ||
TimToady | m: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { my \m = callsame; m.CURSOR.make: "fdsa"; m } }; say FDSA.parse("asdf") | ||
camelia | rakudo-moar 15c6fb: OUTPUT«Method 'CURSOR' not found for invocant of class 'FDSA' in method TOP at /tmp/9r5zfg8Qb0:1 in block <unit> at /tmp/9r5zfg8Qb0:1» | ||
FROGGS | m: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { my \m = callsame; say m.WHAT; m } }; say FDSA.parse("asdf") | 06:46 | |
camelia | rakudo-moar 15c6fb: OUTPUT«(FDSA)「asdf」» | ||
FROGGS | m: grammar ASDF { rule TOP { ^ asdf $ } }; grammar FDSA is ASDF { method TOP { my \m = callsame; say m.^mro; m } }; say FDSA.parse("asdf") | ||
camelia | rakudo-moar 15c6fb: OUTPUT«(FDSA) (ASDF) (Grammar) (Cursor) (Any) (Mu)「asdf」» | ||
quietfanatic | I got that far, but it doesn't return what I've made. | 06:49 | |
pmichaud | sleepytime for me | ||
be back tomorrow evening | |||
TimToady | sleep/drive well | 06:50 | |
quietfanatic | You know, if regexes (as methods) simply returned what they either matched or made, this would be really easy. | 06:51 | |
TimToady | yeah, always returning both is kinda silly | 06:52 | |
quietfanatic | method TOP { return process(callsame); } | ||
currently they return Mu | |||
TimToady | there are a few places in the P6 grammar that revisit the submatches after make, but not many | ||
quietfanatic | in those cases you could just save the matches inside of what you make manually | 06:53 | |
TimToady | conceivably | ||
06:57
mr-fooba_ left
06:58
mr-foobar joined
06:59
Ven joined
|
|||
moritz | good morning | 07:00 | |
yoleaux | 11 Jun 2015 22:30Z <ab5tract> moritz: I pushed a 'choices' branch to doc.git for disambiguating, for instance, -f push | ||
RabidGravy | marnin | ||
quietfanatic | Not that I want to encourage yet another big refactor before Christmas, but having regex routines return their matches is more functional, more object-oriented, more composable, and simpler. | 07:01 | |
moritz | .tell ab5tract nice. A few small comments: 1) you should probe for the 'fmt' executable before using it. 2) I don't like interactive prompts much; maybe just show the docs for all matches (much as 'man less more' does)? 3) the routine/method distinction in the user interface is weird, because Method ~~ Routine | 07:02 | |
yoleaux | moritz: I'll pass your message to ab5tract. | ||
quietfanatic | and probably more optimizable. | ||
okay I'm done for the night. Later everyone. | 07:03 | ||
moritz | quietfanatic: there's just one problem: those lists need to be lazy | ||
quietfanatic | which lists? | ||
moritz | and lazy lists aren't very fast | ||
the list of possible matches | |||
quietfanatic | ah | ||
I don't entirely understand the situation I guess | 07:04 | ||
Do you mean this would require more lazy lists, or it would prevent them from working right? | 07:06 | ||
well, I should really get to sleep soon. I'll be back later. | 07:07 | ||
07:07
quietfanatic left
|
|||
moritz | it would mean more places where we need lazy lists, which are expensive | 07:07 | |
so a performance problem | |||
pmichaud | which are *currently* expensive | ||
moritz | yes | 07:08 | |
when they become faster, it might be worth evaluating the regex design again | |||
RabidGravy | does ':::' as a "package part separator" actually exist or is it being silently ignored or turned into something else? | 07:09 | |
moritz | after all, the lazy list of matches/cursors is what the design docs say :-) | ||
pmichaud | regex methods return cursors, though. Making them return match objects will get expensive. | ||
07:09
_mg_ joined
|
|||
pmichaud | (and returning match objects directly was pge's original model, which needed to be abandoned in favor of cursors) | 07:11 | |
RabidGravy | lizmat, I don't think I'm going to be able to golf that crashiness - it doesn't even do it if I run the tests in question on their own, only with "panda-test" | 07:19 | |
but github.com/jonathanstowe/Audio-Snd...ree/crashy reliably does it with 2015.05-76-g94eed8f built on MoarVM version 2015.05 | 07:25 | ||
pmichaud | Oh! The Slip type may also be a way to relax the need for immutable iterators! | 07:30 | |
very intriguing. | |||
RabidGravy | (and yes it does still do it with the correct "multi sub infix:<~~> ......) | ||
dalek | c/choices: cdff8ec | ab5tract++ | bin/p6doc: Remove confusiong between routine/method |
07:31 | |
moritz | pmichaud: do you have any links to Slip types? | 07:33 | |
07:33
kaare_ left
|
|||
moritz | googling for it mostly shows up clothing stuff :-) | 07:33 | |
Ven waves | 07:34 | ||
dalek | ecs: 15083d9 | pmichaud++ | S07-glr-draft.pod: Add discussion note about immutable iterators. |
07:36 | |
pmichaud | moritz: S07-glr-draft.pod describes the proposed Slip objects | 07:37 | |
(it's a type we just came up with today, largely replaces Empty) | |||
07:39
g5 joined
|
|||
RabidGravy | (^(10)).map({$_}) isn't lazy is it? | 07:40 | |
pmichaud | depends on the target | 07:41 | |
it can be lazy | |||
07:41
[TuxCM] left
|
|||
RabidGravy | it's assigning to an array | 07:41 |