← Previous day | Index | Channel Index | Today | Next day → | Search | Google Search | Plain-Text | plain, newest first
All times shown according to UTC.
| Time | Nick | Message |
|---|---|---|
| 16:17 | moritz_ joined #perl6-soc | |
| 18:50 | masak joined #perl6-soc | |
| 18:50 | masak | T minus 10. |
| 19:00 | moritz_ | . |
| 19:00 | masak | hi |
| 19:00 | moritz_ | oh hai |
| 19:00 | literal: are you there? | |
| 19:00 | masak | if not, it'll just be us mentors. :) |
| 19:01 | and sjohnson, it seems. | |
| 19:01 | and a bot. | |
| 19:01 | not such a bad turnout, to be sure... | |
| 19:01 | but a GSoC student wouldn't hurt. :) | |
| 19:01 | moritz_ | aye |
| 19:03 | masak | ok, we'll sit tight for a few minutes. he might simply be late. |
| 19:03 | I'll go browse the grok repo in the meantime. | |
| 19:06 | sjohnson | hi |
| 19:07 | masak | oh hai |
| 19:08 | pmurias joined #perl6-soc | |
| 19:08 | masak | ah, more people --> merrier! :) |
| 19:08 | pmurias: we haven't started yet, 'cuz literal is MIA. | |
| 19:09 | moritz_ | but elvis still hasn't entered teh building ;-) |
| 19:09 | * masak | reads elvis' source code in the meantime |
| 19:10 | pmurias | masak: elvis - the vi editor? |
| 19:10 | masak | no, in this case Mr. literal. |
| 19:11 | pmurias: but you're a GSoC student, too. maybe you can tell us a bit about your project. | |
| 19:11 | far as I understand, your progress has been quite good so far. | |
| 19:13 | pmurias | mostly due to nasty things popping up as expected |
| 19:13 | masak | good progress due to nasty things? please explain. |
| 19:14 | pmurias | * not popping up |
| 19:14 | masak | ah. |
| 19:15 | pmurias | now i'm trying to get Test.pm to work so it's possible to test stuff properly |
| 19:16 | masak | that does indeed sound like progress. |
| 19:16 | what's left for Test.pm to work? | |
| 19:16 | pmurias | only ok and plan work atm |
| 19:18 | was refactoring Signature so that positionals can also be used as named arguments like ok(... :desc("nice test") but got distraced by the meeting ;) | |
| 19:18 | masak | sorry to interrupt you. :) |
| 19:19 | moritz_ | pmurias: I'm not your mentor so it's not my place to comment, but it would be nice to see more blog posts about your progress |
| 19:19 | they don't have to be long or so | |
| 19:20 | masak | agreed. progress posts are always very nice. |
| 19:20 | pmurias | the progress slowed down recently due to uni exam... |
| 19:22 | moritz_ | anyway, that's also a complaint I have about literal's project |
| 19:22 | pmurias | but i'll try to write some posts now that things should be getting faster |
| 19:22 | moritz_ | it's virtually silent |
| 19:22 | masak | aye. |
| 19:22 | and he's already at version 0.03 of grok! | |
| 19:22 | moritz_ | maybe one step would be to bring the commit messages into #perl6 |
| 19:22 | masak | like, how'd that happen? :) |
| 19:23 | that would certainly help. | |
| 19:24 | regular blog posts would be even better, IMO. | |
| 19:24 | I emailed literal, on the off chance that he's available through that channel. | |
| 19:40 | actually... | |
| 19:40 | while you're all here, I have things I'd like to discuss about grok that don't require literal per se. | |
| 19:41 | moritz_ | shoot. |
| 19:41 | masak | let me first refer to http://svn.pugscode.org/pugs/docs/u4x/README , a delightfully short text about grok. |
| 19:41 | specifically, the syntax examples at the bottom. | |
| 19:42 | I explained the gist of grok to viklund++ yesterday, and he exclaimed "you're going to need a full Perl 6 parser to do that!" | |
| 19:42 | moritz_ | well, glad we have one. |
| 19:42 | masak | but I believe I don't. we're allowed to cheat endlessly here. |
| 19:43 | and assume that the user won't input whole programs. | |
| 19:43 | what _is_ required is something that can recognize sub calls, method calls, different kinds of ops, etc. | |
| 19:44 | moritz_ | ie a Perl 6 parser. |
| 19:44 | masak | well, a very small subset of one. |
| 19:44 | moritz_ | what do we gain from usiing only a small subset? |
| 19:45 | masak | oh, certainly, we'll use the full one (say, STD.pm) if it's easy to hook it in. |
| 19:46 | moritz_ | it's what azawawi's syntax hilighter does |
| 19:46 | masak | the work with Padre indicates that it's possible, at least. |
| 19:46 | aye. | |
| 19:46 | I think you've convinced me. no sense in going off and creating a subset of STD.pm. | |
| 19:47 | although... | |
| 19:47 | hm... | |
| 19:47 | then we're limited to valid Perl 6 programs, aren't we? | |
| 19:47 | that's not really what we want either. | |
| 19:47 | moritz_ | or parts thereof |
| 19:48 | masak | well, 'parts thereof' is exactly what we want. |
| 19:48 | moritz_ | that's not to hard with STD.pm |
| 19:48 | masak | good. |
| 19:48 | moritz_ | you can tell it to start at a particular token/rule |
| 19:48 | like EXPR, or noun, or whatever | |
| 19:48 | masak | thing is, we don't know which one we want to start at. |
| 19:49 | moritz_ | I also see potential for two modes |
| 19:49 | one is like a dumb keyword search | |
| 19:49 | you enter a * | |
| 19:49 | masak | that'll be the default, if I have any say. |
| 19:49 | moritz_ | and it tells you: multiplication, whatever star, quantifier in regex |
| 19:49 | and an "explain" mode | |
| 19:49 | where you enter 3*4 | |
| 19:49 | masak | it's still up to the user to quote things in her shell, by the way. |
| 19:49 | moritz_ | which is a vaild Perl 6 program |
| 19:50 | and then it'll tell you that it's infix:<*>, the multiplication operator | |
| 19:50 | masak | interesting. |
| 19:51 | the basic use case I see is something like: the user types in `grok '[+]'` | |
| 19:51 | out comes a dissection of that, namely infix:<+> and the [] metaop. | |
| 19:52 | moritz_ | but that's non-trivial |
| 19:52 | masak | it's listed in a friendly way so that the user knows which two queries to proceed with to get more information about those. |
| 19:52 | moritz_ | because you need more than a Perl 6 parser for that |
| 19:52 | masak | you probably do. |
| 19:52 | but it's a very realistic use case, by me. | |
| 19:53 | some user has encountered [+] and doesn't know what it means. | |
| 19:53 | viklund joined #perl6-soc | |
| 19:53 | masak | viklund: o/ |
| 19:53 | viklund | 0/ |
| 19:53 | masak | :) |
| 19:53 | moritz_ | masak: then we need to convince him to enter the whole line of code |
| 19:54 | or we give a rather unspecific list | |
| 19:54 | where also the usage of [...] as an array composer appears | |
| 19:54 | because that's our "dumb keyword search" | |
| 19:54 | masak | I don't see why. |
| 19:54 | you can deduce from [+] that it's the metaop and not the array composer. | |
| 19:55 | because the latter wouldn't be syntactical. | |
| 19:55 | moritz_ | so how'd you suggest we do this? |
| 19:55 | masak | that's what I wanted to talk about... |
| 19:56 | I have this vision, but no clear implementation path. | |
| 19:56 | moritz_ | don't get me wrong, I'd *love* to see that working |
| 19:57 | but it would need either 1) many tries which token to match | |
| 19:57 | 2) massive effort in re-implementing a part-of-Perl-6 parser (far beyond the scope of a gsoc project) | |
| 19:58 | masak | the Simplest Thing Possible would probably be to loop over all metaops cross-multiplied with all valid ops. |
| 19:58 | * viklund | is backloggd' |
| 19:58 | masak | that's not so hard. |
| 19:58 | moritz_ | but that would only catch [+] |
| 19:58 | masak | and it can likely be improved upon, too. |
| 19:59 | moritz_: yes, "only" :) | |
| 19:59 | moritz_ | well, you can get that by trying to match a prefx op with STD, too |
| 20:00 | viklund | I know, decorate the entire grammar with explanations, then all you need to do is pull them out from the parse-tree ;) |
| 20:00 | masak | yes, but you don't know in advance that '[+]' is a prefix op. |
| 20:00 | viklund | ...somehow |
| 20:01 | moritz_ | masak: that's what I meant with "many tries which token to match" |
| 20:01 | masak | moritz_: yes, and I'm not contradicting that. |
| 20:01 | moritz_ | viklund: the problem is that when a user enters [+], then that's not a valid Perl 6 program |
| 20:01 | viklund: so simply throwing STD.pm at it doesn't do any good | |
| 20:01 | masak | being very helpful is likely very slow. |
| 20:02 | viklund | no, it will have to be relaxed somehow |
| 20:02 | masak | I definitely want grok to be able to handle things below the statement level. |
| 20:02 | moritz_ | masak: maybe we/you should also talk to TimToady about that one |
| 20:02 | masak | it operates more on the term level. |
| 20:02 | pmurias | i don't think it's an unresonable to require entering a valid program |
| 20:02 | masak | moritz_: yes, maybe. |
| 20:03 | moritz_ | perhaps he has some insight as to what users might want to have explained, and how to parse that |
| 20:03 | masak | not unreasonable, but a very saddening restriction. |
| 20:03 | remember, the user is asking because she doesn't know about the grammar. | |
| 20:03 | grok is supposed to magically figure things out. | |
| 20:04 | viklund | grok is doubly groky. It groks what the user wonders so the user can grok what she wonder ;) |
| 20:04 | pmurias | would you expect grok to handle [1? |
| 20:04 | masak | pmurias: no. |
| 20:04 | is the question mark part of the query or your question? :) | |
| 20:05 | in either case, no. | |
| 20:05 | pmurias | it wasn't intendend to be a part of the query |
| 20:05 | masak | I'll refine my criterion to exclude [1 : the things need to be whole terms. |
| 20:06 | so paren-like things need to match up. | |
| 20:06 | if they don't, grok is allowed to flag an error. | |
| 20:06 | pmurias | but most things are a statement |
| 20:06 | masak | what does that even mean? :) |
| 20:08 | moritz_ | a statement is a thing which, if you have two of them, you need to separate them by ; |
| 20:09 | pmurias | my definition was more like too things you can separate by ; |
| 20:09 | masak | ok, now I see what you mean. |
| 20:09 | it wasn't as meaningless as I first assumed. :) | |
| 20:10 | still, I consider a few things that are not statements worthy of catching. | |
| 20:10 | pmurias | the inside of a rule is a different issue |
| 20:10 | masak | you should be able to type `grok +`, for example. |
| 20:10 | moritz_ | masak: handling prefix, infix, postfix, circumfix and postcircumfix should handle all of the operators |
| 20:10 | masak | and it'll give you all three disambiguations I know of, plugs the ones I don't know. :) |
| 20:11 | moritz_: yes, so if we can make sure it's an operator, or a combination of operators, that's enough to make it work. | |
| 20:11 | we're going to need tests for this. :) | |
| 20:12 | viklund | how is literal doing btw? |
| 20:13 | pmurias | masak: you have do define your intended audience, most users stay complete noobies for a very brief period (at would be much better of reading a tutorial than checking what tiny bits of syntax do) |
| 20:13 | moritz_ | viklund: we'd all like to know ;-) |
| 20:13 | pmurias | but some shortscuts can be usefull even for a power user looking up what ~< does |
| 20:14 | * shortcuts | |
| 20:14 | viklund | what does ~< do? |
| 20:14 | masak | pmurias: the target group is people who are confused by a certain piece of syntax in a Perl 6 program. |
| 20:14 | moritz_ | viklund: make the parser explode? no idea ;-) |
| 20:15 | masak | viklund: string shift left. |
| 20:15 | for details, see S03. :P | |
| 20:15 | viklund | ... |
| 20:15 | moritz_ | masak: I think the point is that people aren't confused by syntax unless they see that syntax somewhere |
| 20:15 | masak: and if they see it somewhere, chances are that it parses at least | |
| 20:15 | masak | moritz_: oh, sure. I meant "in a given Perl 6 program". |
| 20:15 | we'll assume that it parses. | |
| 20:16 | but I still think it's too restrictive to have to imput the whole statement. | |
| 20:16 | moritz_ | then the problem is solved. Let the user paste the program ;-) |
| 20:16 | masak | the user should get to input the thing that confuses her. |
| 20:16 | moritz_: no, that's not good enough. | |
| 20:16 | moritz_ | that's fine, but I don't think it's a reasonable goal for now |
| 20:17 | masak | let's make it a long-term goal. |
| 20:17 | we can focus on the simple cases first, like + and *. | |
| 20:17 | that's fine. | |
| 20:17 | moritz_ | ok. |
| 20:17 | masak | we don't need to solve everything during the GSoC period. |
| 20:17 | moritz_ | aye |
| 20:17 | viklund | ahh, its on a buffer |
| 20:17 | masak | but it'll take more than a couple of reasonable people disagreeing with me to change the original goal of grok. :) |
| 20:18 | moritz_ | and if things are kept modular, it shouldn't be much harder to do later on |
| 20:19 | masak | nod. |
| 20:19 | moritz_ | anything else we want to discuss? |
| 20:20 | masak | well, I was going to discuss the data format... |
| 20:20 | I've been very back-and-forth on that. | |
| 20:20 | right now, I'm leaning towards keeping everything in one big honkin' Pod file. | |
| 20:21 | but I expect to have my mind changed within the next few minutes, because it's not a a decision I've set in stone. :) | |
| 20:21 | moritz_ | well, the difference between one big and many small files is basically a cat |
| 20:21 | a cat(1) I should say ;-) | |
| 20:22 | masak | meow. |
| 20:22 | to make the discussion more concrete, let's call something 'primary key'. | |
| 20:22 | it's the one string that's unique for each entry in that file/those files. | |
| 20:22 | for infix:<+>, for example, it'll be 'infix:<+>'. | |
| 20:23 | moritz_ | I don't know if that's sufficient |
| 20:23 | masak | please elaborate. |
| 20:23 | moritz_ | just a sec... |
| 20:23 | masak | oh, I think I see what you mean. |
| 20:23 | moritz_ | iirc we wanted to include stuff like tutorials and explanations for concepts |
| 20:24 | masak | yes. |
| 20:24 | at least the latter. | |
| 20:24 | moritz_ | we need to distinguish that from prelude elements like infix:<+> |
| 20:24 | masak | 'need to'? |
| 20:24 | moritz_ | otherwise we can't call it a "primary key" |
| 20:24 | masak | a term like 'boolify' will be distinguished simply by not occurring in the Perl 6 grammar. |
| 20:25 | maybe we can make up a prefix, like 'jargon:<boolify>' or some such. | |
| 20:25 | moritz_ | yes, maybe |
| 20:25 | masak | I'm not insisting on it even having the same form as grammar categories. |
| 20:26 | maybe it'd benefit from looking a bit different. | |
| 20:28 | what's the grammar category of the '?' that appears after params? | |
| 20:29 | moritz_ | I don't think it has one |
| 20:29 | masak | still, that '?' should probably also have an entry. |
| 20:30 | moritz_ | aye |
| 20:31 | maybe it's in 'token signature' | |
| 20:31 | masak | whoa, how did 90 minutes pass already!? |
| 20:37 | literal | hi |
| 20:38 | sorry for the delay, was recovering from some jet lag :P | |
| 20:39 | moritz_ | literal: can you tell us about your progress in the last week(s)? |
| 20:41 | masak | literal: as for the delay, don't worry. it's not like we've been inactive. you'd do well to backlog, though. |
| 20:41 | (making 6 people wait for 100 minutes: 6 man-hours of wait...) | |
| 20:42 | no wait, 10 man-hours. nvm. | |
| 20:42 | literal | yeah, about that. I emailed masak recently to tell him that some some events have held me up more than I foresaw (my girlfriend visiting me who has been away for long), but I'm getting back into it now. I have some uncommited changes to grok for using Pod::Text and such. It does paging as well, and I've done most of what's needed to have it bundle the synopses (short of adding them to the git repo) |
| 20:43 | masak | literal: would you consider blogging a bit about your progress so far? |
| 20:43 | literal | yeah |
| 20:43 | masak | it would be good for everyone involved, I think. |
| 20:44 | moritz_ | I'd also like to make this meeting a weekly institution |
| 20:44 | masak | ditto. |
| 20:45 | literal | yep |
| 20:45 | moritz_ | literal: also if you need some help, don't hesitate to ask |
| 20:45 | literal | and echoing the github commits to #perl6 would be fine by me |
| 20:45 | moritz_ | gsoc doesn't mean you have to work isolated |
| 20:46 | literal | moritz_: ok |
| 20:46 | I would like some help with that STD.pm-syntax lookup thing we talked about | |
| 20:46 | masak | 'help' is a serious word. I'm available for a small chat most of the time. |
| 20:46 | I'd be willing to work on that, too. | |
| 20:47 | provided we decide we need it. | |
| 20:47 | literal | yeah |
| 20:48 | masak | hm, maybe it'd be possible to get the best of both worlds by deriving a few rules of our own which call STD.pm rules? |
| 20:50 | moritz_ | maybe. Ask TimToady. |
| 20:50 | * masak | does that |
| 20:50 | moritz_ | anything else we need to talk about now? |
| 20:51 | * masak | can't think of anything |
| 20:51 | moritz_ | literal? |
| 20:51 | * literal | is looking at the backlog |
| 20:51 | masak | "more updates!" |
| 20:51 | :) | |
| 20:53 | viklund | masak: slightly related, did you manage to use the Perl6 grammar in rakudo? |
| 20:53 | masak | viklund: yes and no. |
| 20:54 | viklund: I'm not sure how much to divulge, since it's part of my secret, unpublished work. :) | |
| 20:54 | viklund | hahaha |
| 20:55 | masak | my plan is to jump forth when I'm ready, and blind you all with the brilliance of... whatever it is I'm working on. |
| 20:55 | moritz_ | heh, should I make some guesses? |
| 20:55 | masak | for now, I think I would benefit much from collaborating with ingy. |
| 20:56 | moritz_ | then it has to do with testing ;-) |
| 20:56 | masak | moritz_: am I required to confirm your guesses? :) |
| 20:56 | (you're way wrong, by the way.) :P | |
| 20:56 | * masak | clams up again |
| 20:58 | masak | viklund: anyway, grok is currently implemented in Perl 5. so anything Padre can do, grok should be able to do, too. |
| 20:59 | moritz_ | next guesses: |
| 20:59 | viklund | I know |
| 20:59 | moritz_ | lint for Perl 6 |
| 20:59 | (de)serialization | |
| 21:01 | masak | moritz_: you're too good at this game. I hope I'm able to deliver, and not just blow hot air. |
| 21:01 | actually, I'll paste my ideas for you. hold on. | |
| 21:03 | http://gist.github.com/135513 | |
| 21:03 | I started making this list months ago. | |
| 21:03 | it consists of many things that have tripeed me up while writing Perl 6 code. | |
| 21:05 | moritz_ | masak: interesting list |
| 21:05 | masak | moritz_: I was at the point where I had hooked in STD.pm and had it parse statements. |
| 21:05 | but I think the program has bitrotted since then. | |
| 21:08 | ok, I need to sleep now. | |
| 21:09 | thanks for a nice meething, ev'ryone. | |
| 21:09 | literal | aye |
| 21:09 | moritz_ | good night |
| 21:09 | meeting adjourned | |
| 22:28 | viklund joined #perl6-soc |
← Previous day | Index | Channel Index | Today | Next day → | Search | Google Search | Plain-Text | plain, newest first