Camelia, the Perl 6 bug

IRC log for #parrot, 2011-04-13

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 cotto ~
00:04 dukeleto joined #parrot
00:04 dukeleto nwellnhof++ # fixing extend_vtable.t
00:04 dngor joined #parrot
00:04 dalek parrot: d0fd13f | nwellnhof++ | config/auto/warnings.pm:
00:04 dalek parrot: [configure] Use -fexcess-precision=standard
00:04 dalek parrot:
00:04 dalek parrot: This option is supported by GCC >= 4.5 and might help with TT #1978
00:04 dalek parrot: review: https://github.com/parrot/parrot/commit/d0fd13f9ed
00:19 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#14512) fulltest) at 3_2_0-363-ged8fd08
00:19 mikehh Ubuntu 11.04 beta i386 (gcc --optimize --gc=gms)
00:19 mikehh bah that was g++ not gcc
00:21 dalek parrot: 0631c0f | dukeleto++ | t/src/extend_vtable.t:
00:21 dalek parrot: [t] Parrot_PMC_get_string_keyed_str , nwellenhof++
00:21 dalek parrot: review: https://github.com/parrot/parrot/commit/0631c0fdfa
00:22 S_Arms left #parrot
00:23 S_Arms joined #parrot
00:24 * mikehh must sleep
00:28 whiteknight left #parrot
00:36 nwellnhof left #parrot
00:51 cosimo joined #parrot
00:52 dalek Heuristic branch merge: pushed 89 commits to parrot/leto/embed_grant by leto
01:03 jevin joined #parrot
01:06 woosley joined #parrot
01:40 simcop2387_ joined #parrot
01:41 simcop2387 left #parrot
01:41 simcop2387_ is now known as simcop2387
01:47 mtk left #parrot
01:51 mtk joined #parrot
02:13 Eduardow_ is now known as Eduardow
02:14 Eduardow left #parrot
02:14 Eduardow joined #parrot
02:22 mikehh_ joined #parrot
02:22 mikehh left #parrot
03:22 hudnix left #parrot
04:08 bacek_at_work seen jnthn
04:08 aloha jnthn was last seen in #perl6 13 hours 5 mins ago saying "o/ #perl6".
04:08 bacek_at_work seen sorear
04:08 aloha sorear was last seen in #perl6 2 hours 58 mins ago saying "ashleydev: Perl 6 will not use anything like HM, because HM + subtypes = undecidable".
04:08 bacek_at_work seen moritz
04:08 aloha moritz was last seen in #perl6 9 hours 27 mins ago saying "or doesn't have tenses, or doesn't have cases, or doesn't have .... you name it :-)".
04:08 bacek_at_work hmmm
04:08 bacek_at_work no grammar nazi experts around...
04:17 sorear hi bacek_at_work
04:22 bacek_at_work sorear, aloha
04:22 bacek_at_work I've got kind of interesting question
04:23 bacek_at_work Can I replace part of parsed tree during parsing?
04:23 bacek_at_work I want to implement one-way C preprocessor.
04:24 bacek_at_work "one pass"
04:26 sorear How will you handle:
04:26 sorear #define BEGIN {
04:26 sorear #define END }
04:26 sorear (yes, I've seen this in real code)
04:37 benabik left #parrot
04:39 bacek_at_work sorear, nope. I want something simple first
04:39 bacek_at_work e.g. #define VTABLE_foo(interp, pmc) pmc->vtable->foo(interp, pmc)
04:47 bacek_at_work So, when I process "token term:sym<call> { <term> <arglist>? }" I want to replace $/ with demacrofied content
04:47 sorear make $contents.ast
04:49 bacek_at_work sorear, it's PAST, isn't it?
04:49 sorear yes
04:49 bacek_at_work I was thinking it's possible to update Parse tree...
04:50 sorear not in Rakudo/NQP AFAIK
04:50 bacek_at_work oookey. I'll try to work with past then
05:15 theory left #parrot
05:36 ShaneC left #parrot
05:37 dodathome joined #parrot
05:45 cotto ~
05:50 bacek_at_work ~~
05:50 bacek_at_work ~~\o/~~
05:50 * bacek_at_work is drowning!
05:51 ShaneC joined #parrot
05:51 cotto I was going to comment on your unusually long armpit hair
05:52 cotto and I did, so it would seem
05:59 cotto seen bubaflub
05:59 aloha bubaflub was last seen in #parrot 7 hours 46 mins ago saying "yes, it's quite good.  i passed it on to a former co-worker who is learning how to do testing.".
06:12 cotto was it bubaflub who did the rtems project?
06:15 krunen left #parrot
06:15 krunen joined #parrot
06:21 frodwith left #parrot
06:24 moritz good morning
06:24 aloha left #parrot
06:24 frodwith joined #parrot
06:30 cotto good night
06:48 bacek_at_work erm
06:49 bacek_at_work wow...
06:49 bacek_at_work Attempt to free unreferenced scalar: SV 0xaee3be0, Perl interpreter: 0x9a2b008 at lib/Bot/BasicBot/Pluggable/Module/Msg.pm line 52.
06:49 bacek_at_work Segmentation fault
06:49 aloha joined #parrot
06:52 dalek parrot: 985e82a | fperrad++ | src/embed/api.c:
06:52 dalek parrot: [build] fix C
06:52 dalek parrot: src/embed/api.c:546: error: ISO C90 forbids mixed declarations and code
06:52 dalek parrot: review: https://github.com/parrot/parrot/commit/985e82a587
07:14 contingencyplan_ joined #parrot
07:14 contingencyplan left #parrot
07:36 cosimo left #parrot
08:21 mj41 joined #parrot
08:37 contingencyplan_ left #parrot
08:53 bacek ~~
08:56 autark left #parrot
09:05 dalek parrot/jit_prototype: ae083d5 | bacek++ | / (2 files):
09:05 dalek parrot/jit_prototype: Fix emitting C for postcircumfix<()>
09:05 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/ae083d5edb
09:12 jrtayloriv left #parrot
09:17 autark joined #parrot
09:33 mtk left #parrot
09:35 ShaneC left #parrot
09:39 mtk joined #parrot
09:42 loufoque_ joined #parrot
09:47 woosley left #parrot
09:59 fmiju joined #parrot
10:03 fmiju Hello. When writing a schedule for GSoC, should the first week begin at 25th of May
10:03 fmiju Hello. When writing a schedule for GSoC, should the first week begin at 25th of May?
10:07 moritz yes
10:07 aloha left #parrot
10:25 fmiju left #parrot
10:44 dalek parrot/jit_prototype: 6c471c4 | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
10:44 dalek parrot/jit_prototype: Kind of prototype-in-prototype for handling macros
10:44 dalek parrot/jit_prototype: review: https://github.com/parrot/parrot/commit/6c471c4c8f
10:53 hudnix joined #parrot
10:56 fmiju joined #parrot
11:11 fmiju left #parrot
11:21 fmiju joined #parrot
11:56 Patterner left #parrot
11:56 Psyche^ joined #parrot
11:56 Psyche^ is now known as Patterner
11:57 loufoque_ left #parrot
11:58 loufoque_ joined #parrot
12:06 loufoque_ left #parrot
12:31 whiteknight joined #parrot
12:31 whiteknight good morning, #parrot
12:38 fmiju Hello, whiteknight
12:39 moritz \o
12:40 fmiju thank you for feedback on my application. I will try to improve it.
12:42 fmiju could anyone give a link to somewhere I could read about parrot-instrument?
12:48 bubaflub joined #parrot
12:52 whiteknight fmiju: which proposal was yours?
12:53 fmiju subroutine-level profiler
12:53 whiteknight Oh, you're justina?
12:53 fmiju yup
12:54 whiteknight Okay, awesome. We've been hoping to talk to you more
12:54 whiteknight The first thing we really really need is much more detail about your timeline
12:55 whiteknight I wrote a blog post about proposals, here is the relevant section about timelines: http://whiteknight.github.com/2011/​04/11/gsoc_proposals.html#timeline
12:55 whiteknight Basically, we need a lot more detail. Break it up by week, give concrete milestones, and demonstrate that you have a plan for completing the project on time
12:56 whiteknight your proposal on melange is open for editing
12:56 whiteknight The rest of the post is worth reading too, if you have time, but the timeline section is most important right now
12:58 fmiju I understand. I think I need to find out more about profilers before I write a detailed timeline.
12:59 whiteknight okay, you should do that as quickly as possible
12:59 moritz that's part of the reason we ask for a detailed timeline: so that students put some effort into up-front
12:59 moritz and to make sure they actually understand what they want to implement
13:01 fmiju That's right. There was parrot-instrument mentioned in the project idea description, but I couldn't find anything more to read about it.
13:01 fmiju Could you give me some link, please?
13:01 whiteknight let me get it right now
13:01 whiteknight https://github.com/whiteknight/parrot-instrument
13:02 fmiju thanks.
13:02 whiteknight it's mostly code, there isn't a lot of documentation to go around
13:02 whiteknight it's something we should add eventually, if people are really going to be making use of it
13:02 whiteknight I'm happy to answer any questions you have
13:05 fmiju Cool :). Sorry if I ask something obvious - there's a lot for me to learn.
13:07 whiteknight don't worry. We don't expect anything to be obvious to a new student
13:11 whiteknight the idea is that Parrot-Instrument duplicates some of the algorithms and systems inside Parrot, but does so with hooks
13:12 whiteknight so instead of running Parrot directly, you run a program through Parrot instrument. It's slower, but you get the chance to observe and occasionally interact with the running program
13:12 whiteknight for a subroutine profiler, you would use Parrot-Instrument to hijack method and subroutine calls
13:13 whiteknight When you enter a call, you start a timer on it to see how long you are inside it. When you leave the call, you stop that timer
13:13 whiteknight that's a simplified version, of course
13:14 whiteknight things are complicated by the fact that Parrot is continuation-passing-style (CPS), which means there aren't defined returns really. A return is really just a call back to the parent
13:15 whiteknight so for each call, you would have to see if that call was a call into an existing context, and if that existing context is the parent context
13:15 whiteknight actually, that's only if you want to isolate complete call and exit situations
13:16 whiteknight an easier way, though maybe less informative, would be to use Parrot-Instrument to hijack when new contexts were created, and keep a running timer count for how often control flow was occuring inside a single context
13:16 whiteknight (I'm moving very fast here, feel free to ask questions if you need)
13:18 whiteknight fmiju: if you're familiar with C++, 8-bit architectures and emulators, are you also familiar with the concepts of stack frames?
13:21 mikehh_ whiteknight: I have a couple of questions related to Configure
13:21 mikehh_ is now known as mikehh
13:22 mikehh opbots, names
13:26 mikehh left #parrot
13:26 whiteknight mikehh: I doubt I'm the best person to ask, but go ahead
13:27 moritz isn't kid51 our Configure expert?
13:30 whiteknight yes, he probably is the one to ask
13:31 mikehh joined #parrot
13:31 mikehh stoopid internet - got disconnected
13:31 mikehh whiteknight: ping
13:31 whiteknight pong
13:33 mikehh whiteknight: I had a question related to configure, I seem to get no in answer to 2 auto items - frame builder and inline
13:34 mikehh is that correct or did I miss installing something
13:38 whiteknight frame builder is libffi, I think
13:38 whiteknight I don't know what the inline item is
13:38 whiteknight you don't need libffi, it just makes some NCI functionality better
13:39 mikehh I got it - Ubuntu seems to have installed it in a different place - need to make sure it gets it - hmm
13:39 whiteknight okay
13:40 lucian joined #parrot
13:40 mikehh I had to do an include to get it to run splint
13:40 fmiju Stack frames-not yet. Sorry for slow response. It looks like subroutines act like operating system processes. And the problem is with finding out when the calls return, because both calls and returns are calls? I'm going to read books and to look at parrot-instrument. See you later.
13:40 whiteknight fmiju: okay, let us know if you need anything
13:41 whiteknight fmiju: we have received slot allocations from Google, and we do not have enough slots to accept all proposals
13:41 whiteknight fmiju: the faster you can improve your proposal, and the better you can make it, the better
13:41 fmiju Ok, I'll try. Thank you for answers.
13:42 whiteknight no problem. Good luck
13:43 mikehh whiteknight: had to set C_INCLUDE_PATH=/usr/include/i686-linux-gnu for splint - I think I need to set it for parrot build
13:44 bubaflub whiteknight: mind if i ask how many slots we received?
13:48 fmiju left #parrot
13:51 whiteknight bubaflub: 9
13:51 whiteknight but that's a soft number
13:51 bubaflub whiteknight: wow, that's much better than expected - or at least i expected
13:51 whiteknight yes, that's better than I expected also
13:52 whiteknight it may also turn out to be more than we need or want
13:53 * moritz wonders if we can even come up with 9 mentors, and still have breathing room for backups
13:53 whiteknight it may not be possible for us to find 9 proposals which are all acceptable, and then find 9 mentors to take them
13:54 whiteknight for instance, we have more than 9 available mentors, but not all of them are willing and able to mentor all projects
13:54 AzureSto_ joined #parrot
13:55 AzureStone left #parrot
13:55 woosley joined #parrot
13:56 bubaflub *nods*
13:57 whiteknight I think it's very likely that we are going to accept at least 6 proposals. 8 if we can find mentors
13:58 whiteknight the ninth slot is mostly wiggleroom
13:59 Coke (don't print in the PIR snippets) ... or, discard the output. All we're trying to do is verify it doesn't fail.
13:59 whiteknight Coke: yes, either is fine
14:00 Coke I'm willing to mentor a project, obviously.
14:00 whiteknight Coke: What's weird is that the example didn't used to print anything. So I don't know if the old behavior was a bug (as it seems to me) or if the new behavior is the bug
14:00 Coke whiteknight: better to discard the output so that we don't have to remember "oh, don't do this in the snippets."
14:00 Coke whiteknight: the PIR tests should test that behavior, also.
14:01 whiteknight Coke: Yes, you probably will be called on to mentor. Some projects have obvious mentors, some it's more of a grab-bag
14:01 whiteknight Coke: good point. We still need to decide what the desired behavior is, then make a test for that
14:05 whiteknight Coke: did you get the email I sent out this morning to the mentors?
14:15 mikehh left #parrot
14:21 mikehh joined #parrot
14:22 NotFound Did you said that there are students with 8-bit systems background?
14:22 Andy_ joined #parrot
14:23 mikehh where's aloha
14:23 NotFound I thought that younger people even don't kow what 8-bit systems are.
14:24 mikehh still get some embedded 8 bit stuff
14:25 * mikehh got to go out for a bit - afk - bbl
14:25 Coke whiteknight: yes. privmsg ...
14:26 Khisanth left #parrot
14:27 lucian left #parrot
14:28 Coke 8-bit is a pop meme. I can dig up a BEP song reference if you like.
14:29 NotFound Coke: yes, but having some knowledge about them is a different thing.
14:30 theory joined #parrot
14:30 whiteknight 8-bit systems are fun
14:30 whiteknight 4-bit systems, not so much
14:30 whiteknight I've had the distinct displeasure of coding for a 4-bit microcontroller.
14:30 atrodo i enjoy 7 and 3/4 bit systems, it's like living dangerously
14:31 whiteknight atrodo: for my MS Thesis, I made a configurable chip architecture, and one of the things I made with it was a 7-bit processor
14:31 whiteknight and a 13-bit one
14:32 fmiju joined #parrot
14:32 whiteknight I don't expect either to catch on
14:33 NotFound There are several projects with fpgas and downloadable cores that emulates several classic 8-bit computers.
14:33 moritz Knuth's MIX or MMIX instruct set has a non-fixed byte width
14:33 whiteknight with lorito, if we design it correctly, there is a distinct possibility of using FPGAs as hardware accelerators for Parrot
14:34 NotFound I like better software emulators, they don't need soldering.
14:34 moritz it just say that the maximum value for one register must be in the range from 100 to fivehundredsomething or so
14:34 atrodo whiteknight> we can dream, right?
14:34 whiteknight atrodo: I'm nothing if not a dreamer
14:35 atrodo You and me both
14:35 mj41 left #parrot
14:35 NotFound We can even dream a parrot full hardware machine.
14:35 whiteknight NotFound: When I first joined parrot, and was looking to do a PhD, that was a project I was seriously considering
14:36 whiteknight although without lorito, it would have been a nightmare
14:36 NotFound Too moving target.
14:36 whiteknight and too many ops
14:37 whiteknight I was planning to use a microblaze coprocessor to implement some of the more involved ops, and to store vtables on-chip
14:40 whiteknight a dream within a dream
14:42 NotFound A funny project for someone interested in old 8-bit machines: a Z80 or 6502 cpu emulator in parrot.
14:43 whiteknight that would probably be very easy to do
14:43 contingencyplan_ joined #parrot
14:44 whiteknight well, "easy"  is not a good description. "tedious and time-consuming but not conceptually challenging" is a better description
14:44 NotFound Aye.
14:45 whiteknight a MIPS emulator would be much easier
14:45 whiteknight RISC for the win
14:49 atrodo NotFound> Probably easier than you think since there was a game boy emulator on javascript that I saw a few months ago
14:49 NotFound atrodo: there is also a Sinclair Spectrum emulator in perl.
14:50 atrodo NotFound> Did not know that.  On cpan?
14:51 NotFound atrodo: don't know, I just heard about it vintage computing sites.
14:52 NotFound I think is this: http://sourceforge.net/projects/perl-spectrum/
14:56 p6eval left #parrot
14:56 NotFound If someone does the cpu, I'll port my cp/m emulator from C++ to winxed.
14:57 p6eval joined #parrot
14:58 atrodo That sounds like a challenge!
14:58 NotFound It is!
14:58 benabik joined #parrot
14:58 * atrodo wishes he had more time for challenges
14:59 NotFound Maybe I'll do it anyway, by wrapping some C Z80 emulator in a dynpmc.
15:02 sigue left #parrot
15:03 whiteknight that would be fun to see
15:03 dalek left #parrot
15:04 dalek joined #parrot
15:07 Khisanth joined #parrot
15:14 fmiju left #parrot
15:14 fmiju joined #parrot
15:19 dukeleto ~~
15:19 whiteknight good morning dukeleto
15:20 whiteknight dukeleto: Are you going to be acting as a mentor for GSoC this year?
15:20 dukeleto whiteknight: yeah, at least backup, and primary if necessary
15:21 whiteknight dukeleto: privmsg
15:27 mj41 joined #parrot
15:31 Coke is moritz's rakudo still segfaulting?
15:33 whiteknight I have no idea. I put in a patch last night that I think should help, but haven't heard the results of it
15:34 benabik whiteknight: It stopped the segfaults on my machine, FWIW.
15:46 JimmyZ joined #parrot
15:47 wagle_ joined #parrot
15:47 rblackwe_ joined #parrot
15:47 jnthn__ joined #parrot
15:47 marc_ joined #parrot
15:47 ascent_ joined #parrot
15:47 cxreg2 joined #parrot
15:48 autark_ joined #parrot
15:48 sorear_ joined #parrot
15:48 pjcj_ joined #parrot
15:48 utsl_ joined #parrot
15:49 wagle left #parrot
15:49 whiteknight benabik: that's a good data point
15:49 whiteknight If that works, it actually means the problem is deeper and harder to actually fix for real
15:49 pjcj left #parrot
15:49 cxreg left #parrot
15:49 rblackwe left #parrot
15:49 marc left #parrot
15:49 utsl left #parrot
15:49 ascent left #parrot
15:49 whiteknight so I really want to see if it works for moritz in all cases
15:49 whiteknight originally I thought that the GC was running during IMCC, collecting objects in the packfiles before the packfiles were registered
15:49 autark left #parrot
15:49 sorear left #parrot
15:49 arnsholt left #parrot
15:49 jnthn_ left #parrot
15:49 whiteknight however, if that patch fixes the bug, it suggests that GC is running during packfile serialization, and that the pmcs are not being adequately protected from collection at that time
15:49 whiteknight up until now we haven't suspected any problems with GC running during packfile serialization
15:49 whiteknight lolnetsplit
15:51 Coke ugh. click on link to proposal in email. get error that it's private instead of prompt to login.
15:51 benabik whiteknight: Immediately prior to that commit, I could only trigger it on my machine with --gc=gms --optimize --debugging=0.  I tried both GCs optimized and non, but it only faulted when I finally turned off debugging.
15:52 arnsholt joined #parrot
15:56 whiteknight benabik: Okay, but with my latest commit you can't replicate it at all?
15:56 benabik whiteknight: Yes.
15:56 whiteknight okay, that's good
15:57 benabik But I thought the debugging v. not might be useful to find the problem.  :-)
15:57 whiteknight something inside packfile serialization is not playing nice with GC, and it looks like the imcc_compreg_pmc merge is either causing that, or has aggrevated it
15:58 whiteknight no. It's a memory layout issue. Changing compile settings changes the memory layout enough to expose the problem sometimes
15:58 benabik Ah.  Some of the earlier commits stopped it from faulting with other settings...  Probably mostly further changes to timing/layout.
15:59 whiteknight debugging or not, optimize or not, those things aren't the issue. They just shuffle bits around enough to expose it
15:59 whiteknight the GMS part might be part of the problem, since GMS is a newer algorithm and it requires write barriers, which might not be used properly in this subsystem
15:59 whiteknight benabik: exactly. This is why it's so hard to track down the root cause
15:59 whiteknight so far no two users have seen the same exact problem under the same conditions
16:00 whiteknight I could duplicate it, but not the same way moritz could. plobsing saw a failure in the same build step as me, but with a different backtrace
16:00 benabik Garbage collection makes application writing easier, but creates huge headaches for the system developers.
16:00 whiteknight it's actually not so bad, so long as you know the rules and follow them diligently. Most of the time we can completely ignore GC
16:01 whiteknight the big rule is to make sure every PMC and every STRING that you are working with is properly anchored somewhere
16:01 pranq joined #parrot
16:02 benabik whiteknight: And you suspect serialization has a gap somewhere where it's not anchored?
16:02 whiteknight Our GC will walk the C stack looking for pointers, so most references being used in active functions are covered. However, --optimize has a way of making that guarantee less awesome
16:02 whiteknight benabik: yes
16:02 whiteknight benabik: PackFile* structures are not PMCs, so they don't get marked. They need to be included in something which is marked
16:02 whiteknight IMCC returns a PtrObj PMC which contains a PackFile* pointer and a custom mark routine, for instance
16:03 benabik Optimization will remove variables from the stack and keep them in registers, which masks them from the GC?
16:03 JimmyZ I didn't see rakudo spectest  segfault on ubuntu 10.04  without that patch
16:04 NotFound Registers that needs to survive a function call are saved in the stack during the call.
16:04 JimmyZ just FYI
16:04 whiteknight NotFound: that is what *should* happen, yes'
16:04 benabik NotFound: Ah, true.  Well, optimization makes other weird changes too.
16:04 whiteknight It's possible those values get optimized out completely
16:05 cognominal left #parrot
16:05 NotFound whiteknight: if they are optimized out completely, they are grabage and should be collected.
16:05 woosley jjjjjjjjjjjjjjjjjjj
16:05 whiteknight NotFound: also, if you look at the code in src/gc/system.c which actually saves the registers to stack, I think it's very possible that entire function itself gets optimized away in some cases
16:05 benabik whiteknight: That would be non-optimal.
16:05 whiteknight in that case, values which are only stored in the register disappear
16:06 whiteknight benabik: yes. Luckily, we don't seem to see much of that, if it is a problem.
16:06 cognominal joined #parrot
16:07 NotFound whiteknight: I've seen C compilers optimization bugs, but I'm more confident in the C compiler that in our codebase.
16:07 fmiju left #parrot
16:08 whiteknight NotFound: right. If the stack walk code is not touched, it should work. I worry that the optimizer will see that code as being dead, and remove it
16:09 whiteknight again, it obviously doesn't happen much. --optimize only seems to aggravate the issues moritz was having. It doesn't seem to be the cause
16:09 NotFound I think that if stack were not walked we'll be seeing lots more of errors.
16:10 darbelo joined #parrot
16:10 NotFound And I'm routinely building with -O3
16:13 woosley left #parrot
16:13 dukeleto where do we have an example of how our HLL interop works currently?
16:13 dukeleto i know it isn't perfect, but for people that ask about it, where do we point them to?
16:13 sorear_ I don't think it does
16:13 dukeleto sorear_: yes, i know, but we must have some example code that does something
16:15 NotFound A todo'ed test, for example?
16:19 cotto seen fmiju
16:20 cotto d'oh
16:22 dukeleto NotFound: sure. do you know where one lives?
16:22 cotto good to see that she caught  whiteknight
16:24 whiteknight yeah, I was hoping she would stay around and chat, but she seemed in a hurry to go read
16:25 dukeleto whiteknight: got your org admin invite
16:26 dukeleto i can see the proposals now, *finally*
16:28 NotFound dukeleto: no, I was just suggesting that we should have that.
16:29 whiteknight dukeleto++
16:31 dukeleto NotFound: yes, people are asking me "what does it look like to use a python object from rakudo", for example
16:33 NotFound dukeleto: give me python compiler, and I'll write an example ;)
16:34 dukeleto NotFound: ok, s/Python/Lua/
16:35 dukeleto NotFound: how do I fiddle with a Lua object from Rakudo ? has anybody done it?
16:35 NotFound Lua has objects?
16:35 dukeleto NotFound: i don't know. does it have variables?
16:35 mj41 left #parrot
16:35 dukeleto NotFound: it hopefully had something
16:35 dukeleto NotFound: i am just looking for the simplest possible HLL interop example
16:36 NotFound I wrote examples in the past mixing pir, winxed rakudo, pipp and maybe cardinal, don't remember well.
16:36 jrtayloriv joined #parrot
16:36 bubaflub dukeleto: i recall seeing an example a while back but cannot find it now - i think it was a blog post
16:36 dukeleto NotFound: i am fine with a simple datatype such as integer/string/array etc..
16:36 dukeleto bubaflub: interesting
16:36 dukeleto bubaflub: also, i just signed up to mentor you. Buckle up.
16:36 whiteknight dukeleto: We can't announce winners yet, or anything
16:37 dukeleto whiteknight: not announcing winner. If bubaflub's proposal is accepted, I will be mentoring him, as all
16:38 * dukeleto didn't not mean to imply anything more
16:38 dukeleto whiteknight: good clarification :)
16:38 whiteknight okay, I'm just being paranoid
16:38 benabik I think Lua uses tables as objects ala Javascript.
16:38 dukeleto bubaflub: how is the GMP binding code currently ?
16:38 NotFound dukeleto: examples/pir/interlangs.pir but it's probably birotten.
16:39 dukeleto NotFound: hmm. i wonder if it has tests
16:40 bubaflub dukeleto: same state as before - i haven't had a lot of time to work on it.  finals are looming.
16:40 Coke everything in examples should at least be tested that it compiles.
16:40 NotFound dukeleto: surely not, except maybe checking that it compiles.
16:42 * dukeleto plays a sad trombone, wistfully
16:43 bubaflub dukeleto: http://sadtrombone.com/
16:43 dukeleto bubaflub: can you add the repo location to your proposal?
16:44 bubaflub dukeleto: can i still edit it?  it's after the submission deadline.
16:44 benabik bubaflub: I don't think so, but you can comment on it.
16:44 NotFound Can someone tell me how the nqp in parrot is called these days?
16:44 darbelo bubaflub: mentors can flip a bit to make it editable.
16:44 dukeleto bubaflub: it isn't a huge deal
16:44 dukeleto NotFound: what do you mean?
16:44 darbelo NotFound: nqp-rx
16:44 NotFound dukeleto: load_language and compreg name.
16:45 dukeleto bubaflub: do you have a repo for the GMP stuff?
16:45 NotFound "load_language" couldn't find a compiler module for the language 'nqp-rx'
16:45 darbelo Hm. I would have expected it to match the fakecutable.
16:46 darbelo My next guess is 'nqp' but you probably already tried that.
16:46 NotFound I don't see nothing in intalled languages directory.
16:46 bubaflub dukeleto: not on github yet, but i could
16:46 bubaflub dukeleto: i was waiting to see if we wanted under parrot or under my own github account
16:46 UltraDM joined #parrot
16:47 PerlJam NotFound: NQP-rx
16:47 benabik Isn't the fakecutable called parrot-nqp?
16:47 PerlJam (I  think)
16:47 dukeleto bubaflub: even if your gsoc proposal isn't chosen, I will still want to work with you on GMP bindings
16:47 NotFound I don't care about the fakecutable. Please don't tell me that fakecutables are needed for language interoperability.
16:48 dukeleto bubaflub: create a repo under your own account for now, and we can move it to the parrot org when/if the time is right. If you have a repo with a README.md and an example, that looks nicer than a gist, and shows the history, etc...
16:49 bubaflub dukeleto: cool, i'll create a repo on github here in a bit
16:49 NotFound There is ./lib/3.2.0-devel/library/nqp-rx.pbc
16:49 bubaflub dukeleto: yep
16:49 NotFound But load_language doesn't look in that place.
16:52 NotFound Oh, nice, you need to load_bytecode nqp-rx and then compreg NQP-rx
16:53 Coke NotFound: is it just a case difference issue?
16:53 NotFound Coke: Is a case difference and the fact that load_language doesn't look in that directory.
16:57 dalek winxed: r958 | NotFound++ | trunk/examples/nqp.winxed:
16:57 dalek winxed: update nqp.winxed example to work around insanity
16:57 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=958
16:58 cotto_work ~~
16:58 NotFound dukeleto: here you have an example that shows how the draft about interoperability doesn't work ;)
17:01 mj41 joined #parrot
17:04 NotFound BTW in case someone wonder load_language 'winxed' just works.
17:05 bubaflub dukeleto: https://github.com/bubaflub/parrot-gmp
17:05 dukeleto bubaflub++
17:06 * dukeleto just ranked all the GSoC proposals
17:07 UltraDM left #parrot
17:09 NotFound I can't test with lua, it fails one test and plumage don't install it.
17:11 dukeleto NotFound: blarg
17:11 NotFound A --force option for plumage will be useful.
17:12 dukeleto NotFound: I have a commit bit. you want to send a pull request?
17:12 dukeleto NotFound: actually, you have a commit bit too
17:12 NotFound dukeleto: I'm not fluent with nqp to do that.
17:12 dalek parrot-instrument: 8245ee0 | cotto++ | README:
17:12 dalek parrot-instrument: add links to docs, as far as they exist
17:12 dalek parrot-instrument: review: https://github.com/Whiteknight/pa​rrot-instrument/commit/8245ee04ff
17:13 dukeleto NotFound: can you add a github issue for it?
17:13 dukeleto NotFound: i can do it
17:14 dukeleto NotFound: https://github.com/parrot/plumage/issues/5
17:14 NotFound dukeleto: that's it.
17:17 NotFound not ok 17 - function execute & exit
17:17 NotFound #          got: 127
17:17 NotFound #     expected: 2
17:17 NotFound not ok 18 - function exit
17:18 NotFound #          got: /bin/sh: lua.pbc: command not found
17:18 NotFound #     expected: reached
17:18 NotFound In lua t/libops.t
17:18 dukeleto NotFound: you have some wonkiness happening. which version of parrot + plumage are you using?
17:19 NotFound dukeleto: I've just pulled plumage right now.
17:19 NotFound And parrot is from yesterday.
17:22 NotFound The funny thing is that executing 'parrot setup.pir test' it fails just one test.
17:24 whiteknight plumage doesn't have many tests
17:24 NotFound This are lua test failures.
17:26 darbelo NotFound: You can install lua from the checkout plumage made, just ' parrot setup.pir install'
17:26 NotFound darbelo: I can, but that's not the point.
17:27 NotFound I'm not going to write an example that almost no one out of parrot team can try.
17:27 darbelo I think japhb had implemented skipping of plumage steps a long time ago.
17:27 darbelo I'd have to look for a bit.
17:30 NotFound darbelo: you're right, there is an --ignore-fail option.
17:33 darbelo It also supports JSON config files, but you'll have to dig into the source code to figure out the keys.
17:33 darbelo We really need to document this stuff.
17:36 JimmyZ_ joined #parrot
17:39 dukeleto NotFound: so --force is actually called --ignore-fail ?
17:39 NotFound I'm unable to use the compile method on lua.
17:39 JimmyZ left #parrot
17:39 JimmyZ_ is now known as JimmyZ
17:39 benabik left #parrot
17:39 dukeleto NotFound: can you commit that code somewhere? perhaps a branch in parrot.git in the examples/ directory or something?
17:40 NotFound dukeleto: what code?
17:40 dukeleto NotFound: you said you were unable to use the compile method
17:40 dukeleto NotFound: i assume you are writing code, not executing bytecode in your head :)
17:41 NotFound dukeleto: I'd like better that someone who knows how lua is supposed to work look at the issue.
17:43 NotFound Don't like to publish wild guessing as an example.
17:45 NotFound Also, I do my tests with winxed. I wrote winxed mostly to avoid having to write that kind of things in pir ;)
17:47 dukeleto NotFound: i just want to look at the code and see the error output. Is that too much to ask?
17:47 NotFound dukeleto: one second...
17:47 fmiju joined #parrot
17:49 nopaste "NotFound" at 192.168.1.3 pasted "Failed lua interoprability test" (38 lines) at http://nopaste.snit.ch/40200
17:52 cotto_work hi fmiju
17:52 fmiju hi cotto
18:00 dalek Rosella: 5056d3d | Whiteknight++ | / (3 files):
18:00 dalek Rosella: fix Result and test. Add in a new prototype Asserter class, to act as an OO wrapper around the Assert namespace. Eventually, this will be what we use instead
18:00 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/5056d3d640
18:01 dalek winxed: r959 | NotFound++ | trunk/examples/nqp.winxed:
18:01 dalek winxed: use a heredoc in example nqp to better readability
18:01 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=959
18:01 whiteknight welcome back fmiju
18:01 fmiju :)
18:02 whiteknight fmiju: I trust you've done a lot of reading, and come back with lots of interesting questions?
18:04 fmiju I don't know.. I've been thinking, what data structure to use for storing the gathered information.
18:05 fmiju First I thought about some tree structure.
18:05 whiteknight that's not really important at this stage. A tree or a stack, or a hash should work fine
18:06 whiteknight I mean, there are lots of places to store data, lots of ways to store it. It really depends most on what data you are collecting
18:07 ShaneC joined #parrot
18:07 whiteknight maybe you don't store data at all, but only dump events and timestamps out to a file, and process it later
18:07 benabik joined #parrot
18:09 fmiju oh, I haven't thought about this.
18:10 whiteknight fmiju: see? That's why it's so good to come chat with us. We have lots of ideas
18:10 fmiju I see.
18:11 fmiju And like this, the program would run faster, right?
18:12 whiteknight which program? The profiler or the one being profiled?
18:12 fmiju the one being profiled.
18:12 tadzik the profiler does not make the programs faster
18:12 whiteknight what profiling lets us do is identify the "hot spots"
18:12 tadzik it just tells you, how to make it less slow
18:13 whiteknight we use the profiler to find out how things are running, and which parts are running the most
18:13 atrodo fmiju> If your question is if doing it whiteknight's way would make the program being profiled faster than your original idea, yes, it would be faster
18:14 whiteknight it would make the profiler faster, but would require a second step to process the information
18:15 fmiju but there's no difference at the end.
18:16 fmiju Then, I could read the file, calculate average times
18:17 fmiju and find minimums/maximums, if that is needed.
18:17 mikehh left #parrot
18:17 dukeleto fmiju: welcome
18:18 fmiju Hello, dukeleto
18:18 dukeleto fmiju: you wrote the profiler gsoc proposal, right?
18:20 fmiju right, that incomplete one. I haven't added proper schedule yet.
18:20 dukeleto fmiju: talking with parrot devs in here will be very beneficial
18:20 dukeleto fmiju: good luck!
18:21 fmiju Of couse, it is. Thank you.
18:22 cotto_work seen kid51
18:22 cotto_work stupid slacker bot
18:22 atrodo purl--
18:22 cotto_work um... dukeleto, seen kid51?
18:23 whiteknight aloha
18:23 dukeleto cotto_work: not in a few days, but I haven't been around much
18:23 atrodo (surely, aloha's absence is purl's fault)
18:23 dukeleto cotto_work: what's up?
18:23 cotto_work dukeleto: just want to talk about pds scheduling
18:24 cotto_work (with kid51)
18:32 cotto_work fmiju: I found a couple sources of documentation for parrot-instrument.
18:32 cotto_work fmiju: http://www.parrot.org/content/instrumenting-parrot and http://parrot.mangkok.com/
18:33 fmiju Great! Thank you.
18:33 cotto_work fmiju: you're welcome
18:33 cotto_work fmiju: that's what you get for hanging out in #parrot.
18:33 cotto_work ;]
18:42 he left #parrot
19:08 soh_cah_toa joined #parrot
19:11 dalek winxed: r960 | NotFound++ | trunk/winxedst1.winxed:
19:11 dalek winxed: replace some if chains with switch
19:11 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=960
19:17 mikehh joined #parrot
19:19 mikehh where is aloha?
19:22 whiteknight went out drinking last night, never came back home
19:26 dmalcolm joined #parrot
19:31 tadzik kids these days
19:37 ambs joined #parrot
19:51 fperrad left #parrot
19:55 benabik left #parrot
20:00 ambs_ joined #parrot
20:00 ambs left #parrot
20:00 ambs_ is now known as ambs
20:19 whiteknight left #parrot
20:27 dodathome left #parrot
20:29 Andy_ Today's cool project: http://embed.cs.utah.edu/csmith/
20:30 Andy_ They say they need help on their Perl-based test harness for a static analysis tool.
20:30 Andy_ It's hard to think of a project that is more clearly aimed at me. :-)
20:35 cotto_work Andy_: indeed
20:36 Andy_ I started looking at making PMCNULL/STRINGNULL be their singleton globals, but we need to define where it's OK to pass a NULL instead of STRINGNULL.
20:36 Andy_ as in, which functions should reasonably take a NULL
20:37 Andy_ and since there are a number of places that are API, I didn't wnat to do it on my own.
20:41 NotFound IMO all API functions should allow NULL.
20:46 dalek winxed: r961 | NotFound++ | trunk/winxedst1.winxed:
20:46 dalek winxed: several minor simplifications
20:46 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=961
20:54 mj41 left #parrot
21:02 theory left #parrot
21:13 Andy_ NotFound: and internally convert them to (STRING|PMC)NULL?
21:14 NotFound Andy_: yes
21:14 Andy_ But oly for those flagged PARROT_API
21:14 Andy_ Will that be surprising?  To pass in a NULL and get back a STRINGNULL?
21:15 NotFound I'm not sure if PARROT_API is used consistently enough right now, but on principle yes.
21:16 Andy_ If it's not PARROT_API, it's not getting put into public headers, as I recall?
21:19 NotFound I think that's the idea, but I'm not sure about the current state of its development.
21:33 ambs left #parrot
21:36 Andy_ I'm pretty sure that the headerizer does that.
21:36 Andy_ But it's been a long time.
21:41 Eduardow left #parrot
21:54 dalek winxed: r962 | NotFound++ | trunk/winxedst1.winxed:
21:54 dalek winxed: refactor a bit SimpleArgList and its usages
21:55 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=962
22:09 Eduardow_ joined #parrot
22:20 cxreg2 is now known as cxreg
22:40 aloha joined #parrot
22:49 Eduardow_ left #parrot
22:52 whiteknight joined #parrot
23:05 bacek_at_work aloha, clock?
23:05 aloha bacek_at_work: LAX: Wed, 16:05 PDT / CHI: Wed, 18:05 CDT / NYC: Wed, 19:05 EDT / UTC: Wed, 23:05 UTC / LON: Thu, 00:05 BST / BER: Thu, 01:05 CEST / TOK: Thu, 08:05 JST / SYD: Thu, 09:05 EST
23:05 bacek_at_work aloha, melange?
23:05 aloha bacek_at_work: melange is http://google-melange.com
23:06 bacek_at_work good girl
23:12 dmalcolm left #parrot
23:16 cotto_work aloha: botsnack
23:26 Eduardow joined #parrot
23:27 dafrito left #parrot
23:30 whiteknight plobsing: ping
23:30 bbatha joined #parrot
23:33 dalek parrot/llvm_optin: aa4b5c3 | jkeenan++ | / (2 files):
23:33 dalek parrot/llvm_optin: Begin to implement '--with-llvm' as requirement for building with LLVM (TT #2092).
23:33 dalek parrot/llvm_optin: review: https://github.com/parrot/parrot/commit/aa4b5c3964
23:36 dalek parrot: c5bf220 | Whiteknight++ | src/pmc/fixedfloatarray.pmc:
23:36 dalek parrot: add a get_pointer vtable to FixedFloatArray, so people doing mathish stuff through NCI can get at the underlying storage
23:36 dalek parrot: review: https://github.com/parrot/parrot/commit/c5bf220541
23:39 * whiteknight has received an email from a person seriously trying to port R to Parrot
23:44 whiteknight that makes me hapy
23:44 whiteknight happy
23:53 cotto_work how far along is the effort?

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced