|
Parrot 4.3.0 "In Which..." | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 25 April 2012. |
|||
| whiteknight | okay, the Rakudo fix for eval_pmc is very straight-forward and almost identical to the fix for NQP | 00:07 | |
| I feel like the code they have in that particular place is a little bit brittle, but we can work on that later | 00:08 | ||
| benabik | Hm? | ||
| whiteknight | They're assuming the first sub in the packfile is always the wrapper, and the second sub in the packfile is always the entry point | 00:10 | |
| I would much rather if they gave the interesting subs specific tag names like :tag('Rakudo_wrapper') and :tag('Rakudo_entry'), so we can get them by name without relying on ordering | 00:11 | ||
| benabik | :-/ | ||
| whiteknight | but it works right now, so we can ignore it for now | ||
| alvis | Hello all. Got some questions: To start with, (1) Is there a Pugs' Intermediate Language; (2) Is there a PIRATE "Parrot's next generation compiler"; and (3) What is the status of PIRC? | 00:31 | |
| whiteknight | 1) not that I know of | 00:32 | |
| 2) PIRATE was an attempted implementation of PIR in NQP. I think that is stalled or abandoned | |||
| 3) PIRC is dead and will likely not be developed further | |||
| alvis | whiteknight: ah, thanks. should I remove references, e.g., in 'glossary.pod', from the docs? | 00:33 | |
| whiteknight | yes | ||
| alvis | ok. thanks. | ||
| Also, isn't hmtl the *preferred* format in which to view Parrot's docs? (I think I've asked a somewhat similar question before.) | 00:35 | ||
| Coke | I wouldn't say that. | 00:38 | |
| mainly because I didn't think that was a thing that needed to be. | |||
|
00:39
cxreg joined
|
|||
| alvis | Coke: Ok. I'm asking 'cause I want to remove the word "experimental" on the html-ized docs in 'gettingstarted.pod' and was looking for the correct language to use. | 00:39 | |
| Coke | "there are also HTML versions of these documents..." | 00:41 | |
| alvis | Coke: Ah, yes, of course. | 00:43 | |
| One last question: Has anyone written a subclass to Pod::Simple to allow perldoc to pick up the verbiage between the '=begin PIR ... =end PIR' in the *.pod docs? | 00:44 | ||
| I've searched about a'bit. I'm really asking if anyone here knows of something like Subclassing Pod::Simple. If not, I'll write one. | 00:45 | ||
| Subclassing Pod::Simple to process the PIR tags in our *.pod files, that is. (Hope that's clear.) | 00:46 | ||
| whiteknight | I don't know of any. kid51 might be the best person to ask | 00:48 | |
| alvis | Ok, I'll post to parrot-dev, just to cover the bases. thanks again. | 00:49 | |
| whiteknight | alvis++ | 00:51 | |
| Coke | alvis: there is a test that extracts all that code and runs it. | 00:53 | |
| t/examples/pod.t | 00:54 | ||
| which doesn't answer your question, sorry. | 00:55 | ||
| I'm pretty sure they show up in the HTML output. | 00:56 | ||
| ... which probably answers your previous question, also. ;) | |||
| alvis | Coke: Yes, they some up in the html docs, but if you're new and you prefer *.pod, it can take a while before you understand there's a difference between the html docs and what's outputted via perldoc. At least, it did me. ... | 01:08 | |
| I didn't even build the html docs the first month because I prefer *.pod, so I didn't even know there's a difference, and there's nothing in our docs, of which I'm aware, which even hints there's a difference between the two formatted docs. | 01:09 | ||
| cotto | ~~ | 01:13 | |
| alvis | Wow! That was poorly worded. Basically, what I'm saying is we need to tell (new) folks there's a difference between the html-ized docs and the *.pod docs, but, also, because a'lot of example information is buried between the '=begin PIR ... =end PIR' tags, we need, I think, an easy solution to expose that information in when someone uses perldoc. | ||
| hey cotto. | 01:14 | ||
| afk | 01:16 | ||
| cotto | hio alvis | 01:34 | |
|
02:01
jtpalmer joined
|
|||
| dalek | sella: 0f49d4a | Whiteknight++ | src/unstable/xml/ (3 files): [Xml] Start reworking DTD document handling |
02:02 | |
| sella: 56fb834 | Whiteknight++ | src/unstable/xml/ (4 files): [Xml] DtdHeader tag contains a DtdDocument, not the other way around. |
|||
| sella: c60a711 | Whiteknight++ | src/unstable/xml/ (3 files): [Xml] Start implementing Xml code generation for inline DTD declarations |
|||
| sella: fc88b18 | Whiteknight++ | src/unstable/xml/ (2 files): [Xml] Several fixes for .to_xml() of ELEMENT and ATTLIST tags |
02:03 | ||
| sella: 03c4b46 | Whiteknight++ | / (4 files): [Xml] ATTLIST can actually hold a list of attributes. Update the parser, the xml generator, and the tests |
|||
|
02:29
awwaiid joined
02:30
szbalint joined
02:39
jashwanth joined
|
|||
| benabik | Hm. Code works better when you don't invert conditionals. | 02:43 | |
| dalek | rrot/pct_winxed: e1fef89 | benabik++ | compilers/pct/src/PAST/Compiler. (2 files): PCT: PAST.Compiler.coerce in Winxed |
04:16 | |
| benabik | That's a mass of gotos. | ||
|
04:59
JimmyZ joined
|
|||
| JimmyZ | nine: thanks, I got a clone eventually | 05:05 | |
| dalek | rrot/threads: 3bf5389 | nine++ | / (2 files): Fix a concurrency issue in gc_gms_allocate_fixed_size_storage gc_gms_allocate_fixed_size_storage has to take the GC lock as well to avoid race conditions |
07:08 | |
| rrot/threads: d9a8158 | nine++ | src/thread.c: Use Parrot_thread_maybe_create_proxy to avoid duplicated code |
|||
| rrot/threads: fb6b6d3 | nine++ | src/thread.c: Clean up foreign tasks started by child threads Child threads may start tasks on other threads as well so they should clean up the list of foreign tasks and remove the finished ones to keep the list from growing indefinitely. |
|||
| kudo/nom: a25e7d1 | pmichaud++ | src/Perl6/Actions.pm: Make bare loop statement use Perl 6 True instead of Parrot 1 value. Fixes RT #112654. |
07:52 | ||
| rrot/pct_winxed: cd9a874 | benabik++ | compilers/pct/src/PAST/Compiler. (2 files): PCT: PAST.Compiler.post_children to "Winxed" The logic inside the loop is complex, so this is a version with several gotos. Perhaps I'll be able to straighten it out some... |
08:59 | ||
| rrot/pct_winxed: 66849b5 | benabik++ | compilers/pct/src/PAST/Compiler.winxed: PCT: PAST.Compiler.post_children to Winxed Much less gotos, the flow of the program is clearer now, if more heavily indented. |
|||
| benabik | msg NotFound github.com/parrot/parrot/commit/66849b508a is why I like Winxed. I was able to write both a direct PIR conversion full of gotos and a more coherent version that let me notice and remove about 10 lines of duplicate work, which makes the logic clearer. | 09:02 | |
| aloha | OK. I'll deliver the message. | ||
| benabik | NotFound++ | ||
| Winxed++ | |||
| Okay, I've been working on this for wayyyyyyy too long. Sleep now. | |||
|
10:26
PacoAir joined
10:28
JimmyZ joined
10:47
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 11:08 | |
|
11:51
lucian joined
11:55
lucian joined
|
|||
| dalek | kudo/nom: 6c9661f | jnthn++ | src/Perl6/Actions.pm: Fix a lexical handling bug in installation of auto-generated protos and derived dispatchers. gfldex++ for reporting, moritz++ for realizing it was about protos. |
12:04 | |
| p: edd14da | jnthn++ | tools/build/PARROT_REVISION: Now the release is done, we can bump PARROT_REVISION to the one with pmichaud++'s fixes for Unicode handling. |
12:15 | ||
|
12:17
mdupont joined
|
|||
| dalek | kudo/nom: 2a962e3 | jnthn++ | tools/build/NQP_REVISION: Bump NQP_REVISION. Can haz somewhat cleaner spectest runs without ICU; pmichaud++. |
12:18 | |
| sella: 9f6b76a | Whiteknight++ | src/dumper/Dumper.winxed: [Dumper] Make the maximum recursion limit a configurable value |
12:22 | ||
| sella: 85386da | Whiteknight++ | src/unstable/xml/Document.winxed: [Xml] DtdDocument does not inherit from Document |
12:23 | ||
| sella: 34ef5a7 | Whiteknight++ | / (3 files): [Xml] The DOCTYPE header may only have a root element name and nothing else. Add a test for this simplest case |
|||
| sella: 628e09c | Whiteknight++ | / (4 files): [Xml] Fix ATTLIST behavior so we only create one DtdAttlist element and merge definitions. |
|||
| sella: ff8f286 | Whiteknight++ | / (3 files): [Xml] A few small cleanups. Add a test for ELEMENT tags with multiple comma-separated child types |
|||
| nine | Good morning, whiteknight | 12:34 | |
| whiteknight | hello nine | 12:53 | |
| nine | whiteknight: a little present for you: | 12:58 | |
| dalek | rrot/threads: 66a662e | nine++ | MANIFEST: Update manifest for new alloc_test.pir |
||
| rrot/threads: b40d5cb | nine++ | / (5 files): Use a thread for alarm handling instead of POSIX alarms. Use a thread and COND_TIMED_WAIT instead of POSIX ALRM signals for timer handling. This makes green threads (and therefore threading) work on Windows and gives a 40 % performance increase on chameneos.pir as a bonus. |
|||
| nine | whiteknight: wish you a nice weekend :) | 12:59 | |
| NotFound | ~~ | 13:19 | |
| karma Winxed | |||
| aloha | Winxed has karma of 8. | ||
| JimmyZ | nine++ | ||
|
13:38
perlite_ joined
|
|||
| JimmyZ | nine: I can't gcc alarm.c | 13:39 | |
| whiteknight | nine++ | 13:44 | |
| I'm testing it out on windows right now | 13:53 | ||
| dalek | rrot/threads: a0b21de | Whiteknight++ | / (4 files): Fix COND_TIMED_WAIT so it behaves the same on all platforms |
14:09 | |
|
14:16
lucian joined
|
|||
| JimmyZ | whiteknight++ | 14:18 | |
| whiteknight | hmmm, now the build fails for me on windows because it's looking for git | 14:20 | |
| JimmyZ | .\\miniparrot.exe -Iruntime/parrot/include config_lib.pir > runtime/parrot/includ | 14:25 | |
| e/config.fpmc | 14:26 | ||
| make: *** [runtime/parrot/include/config.fpmc] Error -1073741819 | |||
| dalek | Heuristic branch merge: pushed 28 commits to nqp/toqast by jnthn | 14:31 | |
|
14:39
masak joined
|
|||
| dalek | p/toqast: 9dbb0ea | masak++ | t/qast/qast.t: [t/qast/qast.t] belatedly update test count jnthn++ |
14:48 | |
|
14:59
lucian joined
|
|||
| JimmyZ | nine: ping | 15:00 | |
| dalek | p/toqast: 6fe3c6c | jnthn++ | src/QAST/Operations.nqp: Add a way to register op compilation handlers at core and HLL level. |
15:03 | |
| p/toqast: 29c96d3 | jnthn++ | t/qast/qast.t: Merge branch 'toqast' of github.com:/perl6/nqp into toqast |
|||
| p/toqast: a4bd66d | jnthn++ | t/qast/qast.t: Test WVal node. |
|||
| p/toqast: b54c728 | jnthn++ | / (2 files): Compile op 'list'; test. |
|||
| nxed: 2bd58f9 | NotFound++ | winxedst (2 files): refactor a bit comment emit and put comments with source file name and compiler version in stage 2 |
15:07 | ||
|
15:14
PerlJam joined
15:15
tadzik joined
15:16
atrodo joined
|
|||
| JimmyZ still can't build threads branch on windows | 15:19 | ||
| nine | JimmyZ: png | 15:45 | |
| JimmyZ | nine: I can't follow github.com/parrot/parrot/blob/thre...larm.c#L87 and L88 | 15:47 | |
| nine: alarm_set_to - ts.tv_sec is not 0 ? | |||
| JimmyZ is stupid | 15:48 | ||
| nine | JimmyZ: ? | 15:49 | |
| alarm_set_to is a float, ts.tv_sec is a time_t (~long) | 15:50 | ||
| whiteknight++ # helping with the Windows stuff | 15:52 | ||
| whiteknight | It still doesn't build for me. I've got a config issue | ||
| JimmyZ | .\\miniparrot.exe -Iruntime/parrot/include config_lib.pir > runtime/parrot/include/config.fpmc | 15:53 | |
| this one? | |||
| nine: ah, thanks | |||
| whiteknight | all the .c files compile though, so that's a start | 15:54 | |
| nine | I just hope that COND_TIMED_WAIT behaves on Windows really like the POSIX version. But I guess we'll find that out soon enough | 15:57 | |
|
16:22
fperrad joined
|
|||
| whiteknight | I'm sure there are differences, I just need to pick it | 16:24 | |
| dalek | rrot: f928e3c | alvis++ | docs/gettingstarted.pod: Removed the word 'experimental' and the implication that our html docs are 'experimental' from the doc. Why? Because it's misleading. Our auto-generation of html docs is no longer 'experimental'. |
16:33 | |
| rrot: a991315 | alvis++ | docs/glossary.pod: Removed references to 'PIL - Pugs' Interemediate Language'; 'PIRATE' - Parrot's supposed 'next generation compiler'; and 'PIRC' - a, according to Whiteknight, dead project. |
|||
| rrot: b71c965 | alvis++ | docs/gettingstarted.pod: Minor modification of some otherwise awkward language. |
|||
| benabik | ~~ | 16:38 | |
| cotto | ~~ | 16:43 | |
| alvis++ | 16:44 | ||
| it's been a long time since those were experimental | 16:45 | ||
| nbrown, ping | 16:46 | ||
|
16:55
lucian joined
|
|||
| dalek | nxed: dc9417a | NotFound++ | winxedst2.winxed: some more optimizations in conditions |
16:56 | |
| nxed: b999325 | NotFound++ | winxedst2.winxed: simplify parsing of comma expressions |
17:06 | ||
|
17:09
Coke joined
17:11
preflex_ joined
17:39
contingencyplan joined
|
|||
| dalek | p/toqast: 7da93fd | jnthn++ | src/QAST/Compiler.nqp: Correct misleading name. |
17:45 | |
| p/toqast: 6980843 | jnthn++ | src/QAST/Operations.nqp: Implement operations if and unless; give them what should hopefully be decent native handling also. Can be optimized further for void context. |
|||
| p/toqast: 115c75c | jnthn++ | t/qast/qast.t: Tests for if/unless on IVal. |
|||
|
17:51
lucian joined
|
|||
| dalek | nxed: 58c9f7d | NotFound++ | examples/fly.winxed: use some more inline and delete long dead code in example fly |
17:53 | |
| aloha | (parrot/parrot) Issues opened : 760 (threads branch fails to build on Windows) by gerdr : github.com/parrot/parrot/issues/760 | 18:02 | |
| dalek | nxed: 55481cd | NotFound++ | winxedst2.winxed: local inline - experimental |
18:30 | |
| nxed: f91091b | NotFound++ | t/advanced/20experimental.t: add a test file for experimental features - test local inline |
18:55 | ||
|
19:37
alvis joined
|
|||
| dalek | p/toqast: c0b439f | jnthn++ | src/QAST/Compiler.nqp: Sketch in a BlockInfo to track per-block compilation state; tracker outer chain. |
20:33 | |
| p/toqast: 16319cd | jnthn++ | src/QAST/Compiler.nqp: Start sketching out QAST::Var; not enough to do anything useful yet. |
|||
| sella: 518e7f8 | Whiteknight++ | src/unstable/xml/Tag.winxed: [Xml] fix to_xml with attlists |
20:36 | ||
| sella: b465373 | Whiteknight++ | src/unstable/xml/Tag.winxed: [Xml] Add several comments and todo notes |
|||
| sella: 6ed4f79 | Whiteknight++ | / (3 files): [Xml] Fix DOCTYPE to be able to take a scope and inline declarations |
|||
| sella: 6c3b2bb | Whiteknight++ | s (5 files): [Xml] Add in a visitor type for visiting document nodes recursively. Implement a basic DTD validator visitor to traverse a document chcking it against a DTD |
|||
| sella: af09278 | Whiteknight++ | src/unstable/xml/ (2 files): [Xml] +some docs for Xml.Document and DtdDocument |
20:37 | ||
| nxed: e48a293 | NotFound++ | winxed (3 files): drop builtin die from stages 0 and 1 |
20:45 | ||
| nbrown | cotto: pong | 20:55 | |
| cotto | nbrown, I'd like to get caught up with what you guys have been doing with m0. What are the biggest changes/questions I need to be aware of? | 21:07 | |
| you and jimmy | |||
| nbrown | cotto: primarily, jimmy has been working on implementing an interpretter that uses typed registers while I stuck with the uint64 registers | 21:09 | |
| most of my work has been trying to get the tests in the repo to pass while sticking as close to the implementation already laid out | 21:10 | ||
| cotto | nbrown, ok. untyped is what I had in mind. Experimentation is always encouraged. | ||
| yes. One of the things I want to start with is getting the changes you need into the "official" m0 spec. | |||
| nbrown | the biggest issue I've faced is the constants sections | 21:11 | |
| dalek | p/toqast: 7179ed3 | masak++ | src/QAST/Operations.nqp: added the neg_i operation All tests in t/qast/qast.t now pass. |
||
| nbrown | the in memory layout and access needs to be better specced | ||
| cotto | let's make it happen. Where are the holes? | 21:12 | |
| nbrown | the branch I have been working on stores them in untyped uint64's like the registers, but we need to spec that or another method | ||
| cotto | sigh | ||
| Your branch is behind 'origin/master' by 2506 commits, and can be fast-forwarded. | |||
| nbrown | oops, sorry. I'll get it up to date | 21:13 | |
| cotto | that was my local clone | ||
| sorry for the confusion | |||
| nbrown | oh, ok. I just know how frustrating that can be | ||
| brb, I need to reboot | 21:14 | ||
| cotto | ok | ||
|
21:16
nbrown joined
|
|||
| nbrown | cotto: I'm back | 21:17 | |
| cotto | so you are | ||
| and I've got a git remote set up for your clone | 21:18 | ||
| nbrown | cotto: I was starting to try to update the spec to include some of the in memory layout stuff, but I got a little stalled by real life | ||
| excellent | |||
| cotto | I saw a that you've made a few updates. | ||
| nbrown | those were minor ones, except for the PC one | 21:19 | |
| jimmy wasn't sure I should do that without running it past someone | |||
| cotto | If you have the time, I have the time. | 21:20 | |
| nbrown | basically, I added what I considered a clarification that PC is incremented by 1 after a op is executed | ||
| the perl implementation was using 1 and the c implementation was using 4 | 21:21 | ||
| and that caused issues when manually manipulating PC like in the poke_caller test | |||
| cotto | I've got some weird code in there. | 21:22 | |
| nbrown | the poke_caller test? | ||
| cotto | well, everywhere | ||
| was looking at the perl5 interp | |||
| the poke caller test was fun too, though | |||
| I have a feeling I'm going to be really glad I commented it in about 5 minutes. | 21:23 | ||
| nbrown | ha ha ha, ok. But the poke_caller test shows how to setup a new callframe and to do that you need to be able to manipulate PC which requires the programmer to know how PC gets incremented | ||
| cotto: yes you will be. The comments were a huge help when I started poking | 21:24 | ||
| I haven't been great about adding comments, I should probably go back and do that | |||
| cotto | The nice thing about m0 is that it's so low-level that if I don't comment non-trivial code, I can't understand it 5 minutes after writing it. | 21:25 | |
| nbrown | I hear ya | ||
| cotto | incrementing by 1 is the correct behavior | 21:29 | |
| nbrown | cotto: ok | 21:30 | |
| cotto | what needs work wrt the constants segment? | 21:31 | |
| dalek | rrot: 4dcb543 | NotFound++ | / (5 files): define named values for magic numbers used in exception handling long jumps |
||
| nbrown | cotto: btw, in the constants segment of the spec, there's a reference to a load_const op. Is that still supposed exist? | ||
| cotto | good question | 21:32 | |
| nbrown | primarily, we need to spec the in memory layout of the segment and how to load constant values into registers | ||
| currently, we use deref | |||
| cotto | I suspect that it's a leftover. | ||
| you're right | |||
| nbrown | which means that the constant table must be sequential and each constant must be uniformally sized | 21:33 | |
| cotto | I'll make sure to fix that. | ||
| nbrown | thank you | ||
| cotto | What I pictured was that an entry could be either a value or a pointer, which would have same size. | 21:34 | |
| nbrown | cotto: I agree, it just wasn't spec'd that way and it wasn't implemented that way in the c implementation. It took me a while to figure out that was what needed to happen | 21:35 | |
| it'd be great if that were documented. I can work on that if you want | 21:36 | ||
| and while we're working on the constants segment, there is a note that a constant can be arbitrary data in hex notation, but it doesn't specify how to store that in memory either | 21:38 | ||
| cotto | can you do that now? If not, I'll be glad to. | ||
| nbrown | it probably should be similar to the string in memory layout and have a different encoding id | 21:39 | |
| I'm actually headed out in a few, but I can probably get to it tomorrow. If you'd like to do it, feel free | 21:40 | ||
| cotto | will do | ||
| nbrown | cotto: I'm headed out, but thanks for starting to look at this stuff again. Feel free to leave questions or comments for me here or via email. | 21:43 | |
| cotto | nbrown, will do | 21:44 | |
| dalek | rrot: 0c24220 | NotFound++ | / (5 files): create function Parrot_ex_get_current_handler to avoid duplicated code in core.ops |
22:10 | |
| whiteknight | my IRC client's coloring algorithm has cotto, nbrown, dalek and benabik all the same redish color | 22:44 | |
| this conversation is much harder to follow than normal | |||
| benabik | But I'm not even talking | 22:49 | |
| whiteknight | you just did! | 23:14 | |
|
23:24
kid51 joined
|
|||
| benabik | We don't need your logic here. | 23:27 | |
| dalek | nxed: 95bc3e9 | NotFound++ | winxedst2.winxed: allow operators =: += -= *= /= and %= in inline |
23:56 | |