|
Parrot 4.7.0 "Hispaniolan" | parrot.org | Log: irclog/perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 27 August 2012. |
|||
|
00:04
benabik joined
|
|||
| benabik | ~~ | 00:15 | |
| whiteknight | good evening benabik | 00:31 | |
| benabik | o/ whiteknight, how's things? | ||
|
00:36
kid51 joined
|
|||
| whiteknight | benabik: things are good enough. Over the weekend we bought a new big-boy bed for my son at Ikea. My hands are still sore from putting it together and punching things out of frustration | 00:41 | |
| but besides sore hands, things are very good. you? | 00:42 | ||
| benabik | whiteknight: A little hectic. Sorting out new classes, committee assignments, TA position, office, daycare, etc. | ||
| stty erase | 00:43 | ||
| ww | |||
| whiteknight | What school are you at, again? | ||
| benabik | Was at RIT, now University of Rochester. | 00:44 | |
| Moved down the river. | |||
| whiteknight | How is the program there? | 00:45 | |
| I'm still half looking for a program to continue my studies | |||
| kid51 | benabik: Does move to UofR mean you finished masters at RIT? | 00:56 | |
| benabik | kid51: I... finished my coursework? | ||
| Thesis was a bit larger and more interrupted by my kid than expected. | |||
| kid51 | So are you now PhD candidate? | ||
| (And do you have a shorter commute?) | |||
| benabik | I am a PhD candidate. The commute is actually a bit longer, since I almost pass RIT on the way to UR. | 00:57 | |
| kid51 | Ah, you must live out in the burbs. | ||
| benabik | whiteknight: The program seems pretty good. There is a very strong sense of community in the department. And the way they fund students is far more flexible than normal. I'm not as tied to my advisor's research as it seemed like I would in other schools. | 00:58 | |
| kid51: Yar, I live out west. | |||
| whiteknight | benabik: funding is key. I did my MS for "free" (minus books, fees, etc) and I can't imagine doing it otherwise | 01:10 | |
| benabik | whiteknight: I actually have a reasonable stipend. :-) Not great, but much better than I was paid to sysadmin at RIT. Also, they require trying for several grants. | 01:11 | |
| (And give help in writing the application.) | |||
| kid51 was on phone | 01:18 | ||
| Coke ponders going back for a masters or phd. | 01:26 | ||
| especially since $dayjob has a super generous tuitino program. | |||
| *tuition | |||
| kid51 | A tuitino program is one that supplies you with nano-sized tuits, right? ;-) | 01:27 | |
|
01:44
contingencyplan joined
|
|||
| dalek | sella/commandline_2: e1b5631 | Whiteknight++ | src/commandline/ (3 files): [CommandLine] add a rudimentary ability to require a certain number of positional arguments. Right now we have to give them names, but we can't look them up by name later |
01:46 | |
|
02:24
MikeFair joined
|
|||
| MikeFair | Greetings #parrot! | 02:36 | |
| sorear | greetings MikeFair | 02:39 | |
|
02:51
MikeFair joined
03:06
bluescreen joined
03:16
arnsholt joined
03:17
mvorl joined
05:03
bluescreen joined
|
|||
| MikeFair | if I wanted to implement an if statement, the reference I have says if <logical> however they don't define <logical> anywhere I can see | 05:15 | |
| nor do they talk about it | |||
| now I know what they are wanting, but I don't know how to express that in Parrot | 05:16 | ||
| or more specificall PCT | |||
| Should I just use <EXPR>? | 05:17 | ||
| sorear | MikeFair: reading LBAC? | 05:21 | |
| MikeFair | I am, but it's kind of confusing because it kind of looks like Perl6 rules, but isn't, it kind of looks like the language shell mk_language_shell gave me. Squakk seems to use some older practices that cish does a different way | 05:24 | |
| squakk looks closer to what I want -- but like I said, doesn't seem to fit with what I have/am creating | 05:25 | ||
|
05:25
sivoais joined
|
|||
| MikeFair | plus I have this BNF that I'm following: www.jaedworks.com/hypercard/scripts...k-bnf.html | 05:25 | |
| sorear | there have been about five iterations of the perl6/parrot grammar engine | ||
| all subtly different | |||
| MikeFair | yeah that's kind of what I seem to be encountering | 05:26 | |
| sorear | *rakudo/parrot perl6-grammar engine | ||
| MikeFair | Plus it seems that a lot of this is also just "best practice" conventions | ||
| Yeah I've been reading everything I can on Perl6 Grammars too but it seems even those are inconsistent, plus some have mistakes | 05:27 | ||
| sorear | pmichaud told me in frankfurt, can I remember... | ||
| C grammars (dead) | |||
| original PGE (dead) | |||
| object-oriented PGE (oldest you're likely to see, the original squaak tutorial used this, no support for inline code so _requires_ actions) | |||
| used by rakudo alpha | 05:28 | ||
| MikeFair | Then add on top of that, I can't tell what's my not understanding what I'm reading/learning, and what's just been updated since this was written or a mistake | ||
| sorear | nqp-rx (integrated with a perl6 subset, used by Rakudo beta, current squaak tutorial uses this one) | ||
| qregex (newest rakudo regex engine, not currently used in parrotland) | |||
| MikeFair | I'm using these references: en.wikibooks.org/wiki/Parrot_Virtua...irst_Steps | 05:29 | |
| and | |||
| github.com/Benabik/cish | |||
| sorear | thaaaat would appear to be the original squaak, using grammar engine #3 from the list above | 05:30 | |
| MikeFair | oooohhhhhh | ||
| ok | |||
| pmichaud | afaik there's not an up-to-date tutorial about writing languages for nqp or parrot. I'm working on one now. | 05:31 | |
| sorear | cish looks to be using nqp-rx, #4 | ||
| MikeFair | pmichaud: :) | ||
| sorear | it seems odd how there has been a spike in people wanting to use nqp for languages corresponding with the NQP documentation hackathon in Norway | 05:32 | |
| *coinciding | |||
| pmichaud | yeah, things just work out that way sometimes. | ||
| sorear | pmichaud: did I miss any in that list? | ||
| pmichaud | sorear: looks to me like you got it about right. | ||
| MikeFair | * there are no coincidences :) * | ||
| pmichaud: If I could make a recommendation, something that would really help me understand this more would be a couple choices to mk_language_shell.pl | 05:33 | ||
| pmichaud | MikeFair: like what kinds of "choices" ? | 05:34 | |
| sorear | there are at least five non-Parrot P6grammar engines too (Pugs(?), Niecza, Cursor.pmc, GGE, Pegex) | ||
| pmichaud | I suspect that "mk_language_shell" will simply become a github repository for me. :-) | ||
| sorear guesses Pugs would have a p6grammar engine unrelated to anything but isn't actually sure | 05:35 | ||
| pmichaud | actually, iirc Pugs used PGE for its grammar engine | ||
| MikeFair | pmichaud: Something that would help me practice with changing the Grammar.pm without having to mess with Actions.pm or Runtime.pm | ||
| sorear | pmichaud: dynamically loading parrot? | ||
| pmichaud | MikeFair: oh, to change grammar.pm one typically wants to use --target=parse | ||
| MikeFair | pmichaud: In addition to bare | ||
| pmichaud | sorear: yeah, something like that. | ||
| of course, Pugs used a Parsec grammar to parse its perl6 code; it then used PGE for P6 regular expressions. | 05:36 | ||
|
05:36
fperrad joined
|
|||
| MikeFair | pmichaud: Yes, but what I'd like to do is then bind my Grammar.pm results to pre-existing Actions.pm methods | 05:36 | |
| For instance in the existing shell language I don't have blocks or variable declarations or an assignment statement | 05:37 | ||
| pmichaud | MikeFair: well, if you change the grammar it often changes what Actions.pm is looking for. But I'll keep this in mind as I create the tutorials | ||
| sorear has no idea what mildew or perlito do with p6regex; Regexp::Grammars might also count | |||
| MikeFair | pmichaud: The idea is that I'll make sure that i have to make my Grammar.pm line up with what Actions.pm is expecting | ||
| For instance, if I want to start a new block, I have to make sure I match it in the proto rule new_block { <*> } ruleset | 05:40 | ||
| Actions.pm then will have the implementation of the new_block method | |||
| pmichaud | oops, I'm being kicked out of the room I'm in... bbiaw | 05:41 | |
| MikeFair | That way I can play with different syntaxes to create a new block, I can study how a new block gets created | ||
| :) | |||
| I have no idea if this one is more recent or older: | 05:53 | ||
| parrot.github.com/parrot-docs2/2.8....orial.html | |||
| Can someone help me see if I'm comprehending this right? | 05:58 | ||
| rule statement_list { [ <statement> | <?> ] ** ';' } | |||
| A <statement> or a something I can't really figure out | 05:59 | ||
| repeat that a bunch of times with a ; in between | |||
| each one | 06:00 | ||
| moritz | <?> matches the empty string | 06:02 | |
| so it's really just "statements or nothing delimited with ;" | 06:03 | ||
| MikeFair | Ahhhh | ||
| It seemed to be some kind of "optional" | 06:04 | ||
| Is that the same match as <.?> | |||
| no I guess it wouldn't be | |||
| <.?> would actually consume something | |||
| I can see that it works to create separate statments, I just can't see why :( | 06:07 | ||
| I can see that ; or newline can separate statements, but it's not clicking for me why they are doing that... or more specifically how the match is being made | 06:08 | ||
| moritz | it's the same as [ <statement>? ';' ]* except that the version with <?> allows you to omit the last semicolon | 06:13 | |
| MikeFair | ahh ok, I can see that now | 06:14 | |
| and unless otherwise specified each match won't cross a newline boundary? | 06:15 | ||
| moritz | I have no idea what <statement> looks like, and if it allows newlines ore not | 06:21 | |
| MikeFair | statement has <EXPR> as the last piece in most cases | 06:22 | |
| when it doesn't, the subrules typically have newline matches in them | |||
| err the subrules cross newline boundaries | |||
| statement is <statement_control> or <EXPR> | 06:23 | ||
| Someone finally explained to me that <EXPR> is being provided by the bowels of the PCT | |||
| moritz | also since it's a rule, it implicitly matches <.ws> | ||
| MikeFair nods. | 06:24 | ||
| Right whenever a ' ' occurs it puts in <.ws> right | |||
| moritz | so if ws allows newlines, statement_list does too | ||
| correct | |||
| MikeFair | it does not allow newlines | ||
| and the . in the <.ws> does what again? | |||
| i'm still working on all those new operators ? . : | 06:25 | ||
| I read them, then have to read them again | 06:26 | ||
| moritz | the . supresses capturing | 06:27 | |
| so there will be no $<ws> to access the matched whitespace | |||
| MikeFair | Yeah ok, that makes more sense to me know | 06:32 | |
| err now | |||
| I kept reading "ignore the match" | |||
| but it wasn't sinking in what exactly that meant | |||
| I get it now! ( And it's going to stick this time ) :) | 06:33 | ||
| When I do a 'make $<capturename>.ast' I'm creating a PAST node with that name? | 06:45 | ||
| and filling the value of the node in with the value in the capture? | 06:46 | ||
| arnsholt | MikeFair: make $<capture>.ast will make the .ast of the node you're currently be the .ast of the node in $<capture> | 07:00 | |
| MikeFair | arnsholt: So as Grammar.pm is matching stuff it's making an AST node object | 07:01 | |
| arnsholt | No, AST nodes are created by the action methods in Actions.pm | 07:02 | |
| After a successful match rule/token/regex foo will call the corresponding action method foo, with the match object as an argument | |||
|
07:02
brrt joined
|
|||
| arnsholt | The action method can then use make to create an AST node for the match | 07:02 | |
| MikeFair | OOHHHHHH, it's not waiting for a terminal, if there's a rule with the same name as the match, whenever that rule is matched, it calls the method from actions | 07:03 | |
| ? | 07:04 | ||
| arnsholt | Yup | ||
| MikeFair | err s/rule/action method/ | ||
| brrt | hi #parrot | 07:05 | |
| MikeFair | (frsit one) | ||
| That needs to go into the tutorial :) | |||
| arnsholt: That's the first time it's become perfectly clear to me the correlation between the stuff in Grammar.pm and the stuff in Actions.pm (at least that part of it anyway) | 07:06 | ||
| :) | |||
| arnsholt | Happy to help =) | 07:07 | |
|
08:18
Psyche^ joined
08:28
alin joined
08:30
preflex_ joined
09:44
Tene joined
10:14
kurahaupo joined
11:32
schmoo joined
12:37
JimmyZ joined
12:49
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 13:04 | |
| tadzik | good morning whiteknight | ||
| whiteknight | hello tadzik, how are you doing today? | 13:07 | |
|
13:09
PacoAir joined
13:11
PacoAir joined
|
|||
| tadzik | cosimo: whiteknight: pretty good, how about you? | 13:23 | |
| Coke is glad about the upcoming nqp docs. The current state of the art has been pretty byzantine for years. | 13:26 | ||
| I'm back at work, sadly didn't finish the partcl-nqp rewrite on nqp-latest over the kind-of-break. | 13:27 | ||
| dalek | kudo/nom: fc88876 | masak++ | src/ (3 files): X::TypeCheck::MacroUnquote -> X::TypeCheck::Splice Also added an $.action attribute, because splicing takes place both during quasi-block incarnation and during macro application. |
13:38 | |
|
13:47
bluescreen joined
|
|||
| whiteknight | Coke: your partcl sprint has been very fun to watch | 13:57 | |
| I am looking forward to getting more things moved to nqp | |||
| Coke | whiteknight: more like a run-in-place. | 14:02 | |
| whiteknight | Coke: Whatever it was, it was very inspirational | 14:04 | |
| dalek | rtcl-nqp/nqp2: 5768007 | coke++ | / (6 files): Try to do the smallest thing that will work. Bundle the Partcl Actions/Compiler/Grammar together into a single file, add the MAIN() line we expect. This then dies trying to find the "invoke" sub. |
||
| kudo/nom: 7d10d1a | masak++ | src/Perl6/Actions.pm: [Perl6::Actions] throw X::TypeCheck::Splice everywhere This make the remaining two code paths for macros catch up with the fact that we now throw X::TypeCheck::Splice when a macro to be spliced into mainline code doesn't return an AST. See also fc88876. |
14:21 | ||
| rtcl-nqp/nqp: a9fd286 | coke++ | src/init.pm: remove references to P6object |
14:22 | ||
| rtcl-nqp/nqp: aaf9633 | coke++ | .gitignore: Simplify ignore rules |
|||
| rtcl-nqp/nqp2: 00334ea | coke++ | src/min.pm: whoops, add "invoke" back in |
|||
|
14:55
benabik joined
|
|||
| benabik | ~~ | 14:55 | |
|
14:58
contingencyplan joined
|
|||
| tadzik | active benabik | 15:00 | |
|
15:04
smash joined
|
|||
| smash | hello everyone | 15:05 | |
| whiteknight | smash! | 15:06 | |
| dalek | p: 2f7b14d | masak++ | src/QAST/B (2 files): add .evaluate_unquotes to BVal and Block |
15:13 | |
|
15:18
davidfetter joined
15:49
dmalcolm joined
15:56
rurban_mobile joined
|
|||
| rurban_mobile | hi #parrot | 15:56 | |
| found a 3rd threads race in interp->scheduler. reading with Parrot_Scheduler_shift_pmc while writing Parrot_cx_schedule_immediate. | 15:58 | ||
| looks harmless | 16:03 | ||
| whiteknight | okay, let's keep a record of all these things and either mark them with comments or fix them outright | 16:20 | |
| even if they are harmless now, they might not be if we make changes in the future | |||
|
16:32
rurban_mobile joined
|
|||
| rurban_mobile | I fixed now 2 of the 3 races I found. Only Task_nci_send left. | 16:32 | |
| whiteknight | wow you're fast | 16:33 | |
| rurban++ | |||
| rurban_mobile | when the interp is not used anymore, can I replace it with SHIM_INTERP? | ||
| whiteknight | yes | ||
| rurban_mobile | as first arg in some thread API calls | ||
| whiteknight | yes | ||
| rurban_mobile | Ok, But I'll send my patch to the list first. | 16:34 | |
| whiteknight | okay | ||
| rurban_mobile | Too many SHIM_INTERP changes for me | ||
| Coke | alester swoops in every few months and cleans up a lot of those. | 16:35 | |
| rurban_mobile | nine: Why do we need Parrot_thread_get_threads_array at all? | ||
| nine: Nobody but threads should have access to the static threads_array[] | 16:36 | ||
| whiteknight | rurban: it's just an accessor. I don't think it's essential | 16:37 | |
| but it could probably be changed to static | |||
| rurban_mobile | I'll leave it in, but don't like it. | 16:38 | |
| whiteknight | make a TODO note. We can figure it out later | 16:39 | |
| but yes, it probably should be a static functi0on | 16:40 | ||
| rurban_mobile | Whoops, more races with tsan ./parrot t/src/threads.t | 16:41 | |
| dalek | kudo/nom: cd02586 | moritz++ | src/ (2 files): change X::Comp to mean "potentially compile-time" There are some cases (like trait application and quasi unsplicing) that usually happen at compile time, but not always. When they were thrown at run time, they warned, because file name and line number were Any. This is now fixed. |
||
| rurban_mobile | read in gc_gms_allocate_pmc_header vs write in gc_gms_allocate_string_storage | ||
| whiteknight | teh failz | 16:42 | |
| rurban_mobile | alarm_runloop vs alarm_check is also racy | 16:43 | |
| whiteknight | none of these things surprise me | 16:44 | |
| actually, I thought in that branch gc was per-interp, so there shouldn't be a race there | |||
| I have to re-read some code | |||
| dalek | rrot/threads: 2206f23 | rurban++ | / (5 files): Fix two threads races, SHIM unused interp threads_array when a thread is add is now protected via a global mutex. tdata->mailbox also needs a lock. Several interp arguments are gone. |
16:46 | |
| rurban_mobile | Now Parrot_thread_create_local_task needs to be locked. | 16:48 | |
| alarm_serial seems to need a cond_wait. But this is over my head. | 16:50 | ||
| whiteknight | Don't worry. We'll all work on it | 17:01 | |
|
17:29
rurban_mobile joined
17:31
benabik joined
18:14
kurahaupo joined
|
|||
| dalek | kudo/macros-d2: 1ac5431 | masak++ | src/ (2 files): halfway commit, does not work Still seems to be largly an attempt in the right direction, though. |
18:17 | |
|
18:37
whiteknight joined
18:38
whiteknight_ joined
19:15
lucian joined
19:19
benabik joined
19:34
benabik joined
20:18
ruoso joined
20:19
Timbus joined
|
|||
| dalek | kudo/nom: 2311372 | moritz++ | src/core/Stringy.pm: fix infinite recursion in 42 x Int |
20:40 | |
|
21:01
benabik joined
21:09
kurahaupo joined
21:14
lucian joined
|
|||
| dalek | Heuristic branch merge: pushed 19 commits to nqp/toqast by jnthn | 21:41 | |
| kudo/nqpqast: d703632 | moritz++ | src/Perl6/Grammar.pm: warn on obsolete use of \\ and | with sigilled parameter |
21:45 | ||
| kudo/nqpqast: fc88876 | masak++ | src/ (3 files): X::TypeCheck::MacroUnquote -> X::TypeCheck::Splice Also added an $.action attribute, because splicing takes place both during quasi-block incarnation and during macro application. |
|||
| kudo/nqpqast: 7d10d1a | masak++ | src/Perl6/Actions.pm: [Perl6::Actions] throw X::TypeCheck::Splice everywhere This make the remaining two code paths for macros catch up with the fact that we now throw X::TypeCheck::Splice when a macro to be spliced into mainline code doesn't return an AST. See also fc88876. |
|||
| kudo/nqpqast: cd02586 | moritz++ | src/ (2 files): change X::Comp to mean "potentially compile-time" There are some cases (like trait application and quasi unsplicing) that usually happen at compile time, but not always. When they were thrown at run time, they warned, because file name and line number were Any. This is now fixed. |
|||
| kudo/nqpqast: 6ae1f62 | jnthn++ | src/ (5 files): Merge branch 'nom' into nqpqast |
|||
| kudo/nqpqast: b4a2b7a | jonathan++ | src/Perl6/Grammar.pm: Patch from tadzik++ to add missing $<spaces>. |
21:48 | ||
| kudo/nqpqast: f92c7fb | jonathan++ | src/Perl6/Metamodel/Dispatchers.pm: Dispatcher fix (also can avoid creating an iterator). |
|||
|
22:23
rurban_mobile joined
22:25
benabik joined
23:09
davidfetter joined
|
|||