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