Parrot 3.2.0 released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Parrot is accepted for GSoC 2011! Student application deadline is Apr 8 | Goals: Get more GSoC ideas on wiki; close tickets; stable 3.2 release; assess status of roadmap goals for 3/15 meeting.
Set by moderator on 18 March 2011.
00:08 theory_ joined 00:10 theory left, theory_ is now known as theory 00:14 tewk joined 00:28 lucian left
bbatha Hello all! I sent out an email earlier about GSoC and just wanted to introduce myself to IRC. I have been PMing some people already about working on a project (the Python 3 frontend or the Java frontend). Could someone help me get to know who people are particularly the frontend people? 00:43
whiteknight bbatha: I just replied to your email! 00:44
welcome to #parrot
sorear Hello and welcome
whiteknight bbatha: We don't have designated "frontend" people, though several devs have worked on compiler projects 00:45
bbatha whiteknight: Good to know
whiteknight bbatha: so tell me all about yourself. How did you hear about Parrot? What kinds of stuff do you like to do? 00:46
bbatha whiteknight: I read your email and I would be interested in meeting the other folks working on python 3. I would also do a python 2 compiler, and as I mentioned in my email I would also do Java but that might be a little bit to large for me to complete.
00:47 theory left
whiteknight two other students who have been interested in python stuff are lucian and marcel_r 00:48
allison is very likely going to mentor for at least one of the projects. 00:49
bbatha whiteknight: I heard about parrot from my compiler class. My professor, Chen Ding, mentioned that a grad student of his (not sure about the details) was working on the project and I investigated parrot at the time but didn't do anything with it. I was perusing the GSoC list and saw the Parrot listed there
whiteknight: very useful to know
whiteknight bbatha: oh awesome, it's good to hear about professors talking about Parrot
bbatha About me, most of my time (well besides homework) during the school year is devoted to intercollegiate debate, but I try to squeeze in some programming side projects etc and normal student life. I just got back from the national tournament otherwise I would have come on a few weeks earlier. 00:53
bacek_at_work ~~ 00:54
whiteknight oh great, exactly what we need around here: professional debaters
:)
bbatha: what programming languages are you familiar with? 00:57
bbatha C and to some extend C++, Python 2.6/3, Ruby, Java, Fortran, and a bunch of other scientific languages from my last job 00:58
whiteknight oh, okay. That's quite a nice list 00:59
and you've written compilers before, so you have an idea about the scope of those kinds of projects 01:00
We really want compilers for many languages, but we have a particular preference for bootstrapped compilers where it's reasonable to do 01:01
so, a Python compiler written in Python, a Java compiler written in Java, etc
it's a small preference, but it beats some of the really weird combinations you find around the internet 01:02
bbatha thanks, I wrote a modified c compiler (didn't include floats just ints for simplicity purposes) I also wrote a side project to do objects. Additionally, we did some work with scheme and built an compiler for s-expressions but didn't build it up. At the end of the class we did some optimization work on our c compilers but that definatly is not my strong suit. 01:03
cotto_work decommutes 01:04
bbatha I saw the bootstrapping mentioned on the wiki, I was PMing benabik earlier about the NQP based parsers and the work he was planning on doing with an LR parser 01:05
whiteknight bbatha: We don't really have too much in Parrot-land related to s-expressions.
bbatha I didn't think so
whiteknight unfortunately, I have trouble thinking of a project related to that which could fill up the entire summer 01:07
01:08 woosley joined
whiteknight I've been thinking for a while about an s-expression parsing framework that we could just inherit from to create parsers for specific languages 01:08
01:10 Kulag left, Kulag joined
bbatha That sounds interesting. I don't think I have the experience to do that though we implemented the s-expression parser/compiler in scheme so it was very much on the simplified side. 01:12
whiteknight ok, like I said, it's just an idea I've been kicking around
a basic compiler project idea would be to find an existing compiler you like, and write in a code generating backend to output something Parrot-friendly 01:14
Parrot has a syntax tree system called PAST. A more advanced version of a compiler would be to replace much of the guts in the compiler to output PAST 01:16
bbatha That's what I've gathered from the documentation that I've read so far 01:17
whiteknight but like I said, that's just one possible route 01:18
bbatha alright I'll do some more looking into that in my research, what are the other possible routes aside from the obvious write the whole thing from scratch 01:19
cotto ~~ 01:27
google-opensource.blogspot.com/2011...oogle.html 01:29
dalek rrot/opsc_llvm: 8504fc2 | jkeenan++ | / (2 files):
Refactor code into internal method to make more execution paths testable. Then test them.
whiteknight bbatha: writing the whole thing from scratch is possible, yes. If we do that, you are going to want to pick a good set of tools to help push that along 01:31
NQP is a great example of a tool to help expedite compilers, because most of the hard work is done (parser generator, AST, code generators, etc) 01:32
Winxed and Ohm-Eta is an interesting alternative toolchain, though a little bit less complete 01:33
soh_cah_toa i can't believe how many students are interested in the python-on-parrot project...wow!
makes me glad i'm not a python guy otherwise i'd have some serious competition 01:34
whiteknight Getting a working python compiler is very important to us as a community, so it's great that students are enthusiastic about it too
soh_cah_toa even though i'm not a big fan of python, it's good to see lots of students doing some scripting. at my school, most kids only know c++ and only as much as they've learned in school 01:36
so sad, no one takes an outside interest in programming
i asked a fellow student if he would be doing anything for gsoc and he didn't even know what it was! aggh!
anyway, i got a question about the debugger... 01:40
in the perldoc for frontend/parrot_debugger/main.c there is a todo section. one of the things it mentions is "print the interpreter info"... 01:41
would you be able to elaborate? what kind of interpreter infor? 01:42
*info
01:43 theory joined
whiteknight I have no idea what that means, I would have to research it 01:46
01:46 bbatha left
whiteknight I'm heading to bed now. I'll talk to you tomorrow 01:47
01:47 whiteknight left
dalek rrot: 3743f15 | jkeenan++ | / (2 files):
Bring into master improvements made in opsc_llvm branch re configuration
01:57
cotto seen chromatic 02:08
aloha chromatic was last seen in #parrot 41 days 8 hours ago saying "All of the core tests did pass for me, FWIW.".
02:09 bbatha joined
dalek rrot: 7ddb507 | jkeenan++ | / (2 files):
Revert to previous versions of config/auto/llvm.pm and associated test. Configure.pl output is too messy when 'llvm-config' is not found; needs reworking.
02:26
TT #2063 created by gxvyjxwne1++: To create an Idea concerning the Farm spiele Video Game 02:32
TT #2063: trac.parrot.org/parrot/ticket/2063
cotto deleted 02:33
02:36 kid51 left
cotto dukeleto, ping 02:40
02:41 theory_ joined, theory left, theory_ is now known as theory, bbatha left 02:49 Util joined, soh_cah_toa left
dalek TT #2064 created by gnjfvfxgudubpf0++: Excellent Entertainment At Merriweather Post Pavilion 03:03
TT #2064: trac.parrot.org/parrot/ticket/2064
cotto deleted, apparently 03:08
dukeleto (whenever you get online), I'm thinking through the reason for M0's philosophy of having a minimal number of ops. The reasons I can think of are simplicity of jitting, simplicity of implementation and cache locality. Are there other reasons I'm missing? 03:14
sorear cotto: does "simplicity of writing metaprogramming tools" fall into one of the existing categories? 03:19
(assemblers, disassemblers, the M1->M0 compiler, instrumenting profilers, etc) 03:20
cotto sorear, that's an interesting question. 03:22
It hasn't been an explicit consideration, but making those tools easier to write is a valid reason to keep the op set small.
sorear What is "exception payload" doing in the M0 contexts? Shouldn't it be in the exception objects? 03:24
atrodo My understanding of the reasonings for the reduced set of ops, was mostly for the simplification of the core runtime, which implied jit became easy/possible 03:25
cotto That's how I understood it.
sorear Also, I think "a tracing jit targeted for server use" is wrong 03:27
cotto which part?
sorear tracing jits trade off optimization opportunities for *much* faster code generation
a conventional jit is going to win in a long-running process 03:28
so tracing jits are good for short-lived programs (Web scripts, command line tools, etc) on high-memory desktop systems 03:29
an efficient true interpreter (or, with certain caveats, threaded code system) would work well for low-memory systems, including embedded and classical CGI 03:30
a conventional JIT (most likely using LLVM) would be a good choice for server use
long-lived interactive/soft real time programs like $the_next_Padre could go either way 03:31
dalek rrot/m0-spec: f5ef008 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
add control flow example
cotto it's a fairly weird experience doing control flow like that 03:32
dalek TT #2065 created by klxeunwtrzdb1++: Enjoy and revel in Much more along with Browsergames 03:34
TT #2065: trac.parrot.org/parrot/ticket/2065
cotto deleted 03:35
sorear typo in line 127 03:49
also, what you've just specified is probably the worst possible way to do control flow from a JIT perspective 03:50
what C code does jump = mul_i jump, 4; PC = add_i PC + jump turn 03:51
into?
cotto Having written that, I'm not sure if it should be M0's way of implementing control flow. 03:54
luben in real iron you could not progamatically manipulate PC, so you are complicating the JIT to find complex patterns and replace them with simple instructions 04:00
aloha, seen jkeenan 04:01
aloha luben: Sorry, I haven't seen jkeenan.
luben aloha, seen kid51 04:02
aloha luben: kid51 was last seen in msg 2 hours 27 mins ago <private message>.
dalek rrot/opsc_llvm: 85144a2 | luben++ | / (3 files):
llvm config step:

   * add proper libs an cflags to the build system
04:12
sorear luben: what do you mean by "real iron" in this context? 04:13
luben in the processor
if you write ASM for x86 for example, you are not allowed to to math that goes into PC 04:14
s/to to/to do/
04:19 ShaneC1 joined 04:20 Eduardow joined
luben does somebody knows how could I access config variable from NQP 04:22
04:24 ShaneC left
cotto get_config in runtime/parrot/library/ProfTest/PIRProfile.nqp 04:24
not especially elegant, but it works
luben thanks :) 04:28
cotto np
sorear luben: this is not universally true. ARM and PDP-11 come to mind, there are probably others. 04:29
luben yes, you are right 04:30
sorear however, JIT compilation will produce a very complicated nonlinear mapping between M0 PC values and native ARM PC values, making this fact pretty useless in practice 04:31
cotto If we say we care about jitting, it sounds like the addition of a few basic control flow ops is a good idea. 04:32
04:32 mtk left
sorear you should look at valgrind; it has a basic-block-oriented JIT that's designed to handle simulated program counters 04:32
cotto: what's M0's position on instruction combination issues? 04:33
cotto sorear, what do you mean?
sorear cotto: there are several ways to factor a "compare X and Y and jump to Z if X > Y" type sequence, and I've seen most of them used 04:35
M0 has to pick one; it could be an all-in-one approach (jump_if_less Z, X, Y), or it could be something else 04:36
*jump_if_greater 04:37
cotto Based on how we've been thinking about M0, they'd be separate ops.
sorear the native x86 and 68k way is "compare_general X, Y; jump_if_last_greater Z"
RISC systems tend to have more exotic systems, because the last-comparison-status register is a synchronization bottleneck 04:38
04:39 mtk joined
cotto the simplest thing would be a conditional jump based on the value of a register 04:39
sorear computed come from <3 04:41
cotto I'm going to go out on a limb and say no to that. 04:42
sorear cotto: how will comparsions look, if they're separate from jumps?
the separation complicates the task of making efficient JITs for CPUs with no native "compare and set" instructions, such as 286. OTOH, this is part of "instruction combination" which is needed to support CISC staples like "swap bytes" 04:44
cotto sorear, what do you mean? cmp would be one op and a conditional jump would be the next, using its result.
sorear cotto: you need a lot of cmp-ish ops 04:45
cotto I don't see why we need more than one per numeric type. 04:46
sorear cotto: <, <=, ==, !=, >=, >
cotto the others can be implemented in terms of that
sorear how do you distinguish between them
05:20 rohit_nsit08 joined
rohit_nsit08 hi everyone 05:21
sorear hi rohit_nsit08 05:22
welcome
cotto hi rohit_nsit08
rohit_nsit08 cotto: hi
sorear: hi
i was trying to build cafe on my system and after some changes in makefile now its working with narwhal but it's giving some error that the generated bytecode has exceeded the 64k limits , any suggestion? 05:23
i have mailed the author "zaach" about the issue , and waiting for his reply 05:24
05:25 tadzik joined
dalek rrot/opsc_llvm: b704d9e | luben++ | / (3 files):
link libLLVM only to llvm_engine.so, not to libparrot
05:29
05:36 benabik left 05:50 theory left 06:03 rohit_nsit08 left 06:08 ShaneC1 left
dalek rrot/opsc_llvm: 0004a71 | luben++ | / (2 files):
load discovered libLLVM.so in LLVM.pm
06:09
luben msg bacek llvm auto-configuration is done in opsc_llvm (use Configure.pl --llvm-config=llvm-config-2.7) 06:18
aloha OK. I'll deliver the message.
cotto nice work there
luben thanks :) 06:19
cotto luben++
luben I have to meet kid51 online to discuss llvm config step further
because I have short-circuited most of the code
that mostly test for llvm-gcc which is not essential: LLVM.pm bindings use only libLLVM 06:21
06:21 ShaneC joined 06:28 rohit_nsit08 joined 06:40 theory joined 06:45 theory left
dalek rrot/m0-spec: 3d1a574 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
add notes on control flow and bytecode segment identification
06:56
07:04 fperrad joined 07:07 rurban_ joined, cosimo left 07:10 rurban left, rurban_ is now known as rurban 07:30 luben left 08:03 rohit_nsit08 left 08:05 he__ joined 08:18 mj41 joined 09:07 ShaneC left 09:08 ShaneC joined 09:19 woosley left 09:24 contingencyplan left 09:54 jevin left, fperrad left 09:56 fperrad joined 10:22 dolmen joined 10:38 dodathome joined 10:39 rohit_nsit08 joined 10:53 rohit_nsit08 left 11:09 woosley joined 11:13 lucian joined 11:17 bacek left 11:45 jevin joined 12:17 lucian left 12:19 mtk left 12:26 mtk joined 12:50 whiteknight joined
whiteknight good morning, #parrot 12:56
13:02 mj41 left 13:03 mj41 joined
Coke ~ 13:08
13:12 plobsing left 13:14 lucian joined
Hackbinary hello whitenight 13:26
whiteknight hello Hackbinary 13:28
lucian: ping
lucian whiteknight: pong 13:30
whiteknight lucian: who knew Python 3 would be such a popular project idea?
lucian not me
atrodo I thought about chiming in and suggesting one of them work a perl5 port :D 13:31
moritz ponie! 13:32
whiteknight do you really think 2 and 3 would share so much code?
lucian i'd welcome someone else doing that
whiteknight: yep. the py2 and py3 divide is nowhere near p5 and p6
whiteknight Getting a Python presence on Parrot is a big personal priority for me, and I think several other devs are heavily interested in it too
lucian py3 mostly just deprecates ascii strings and old-style classes
whiteknight So if we have a lot of proposals, we're going to be in a position where we can pick the best proposal from the most qualified candidate 13:33
moritz hopes that people are sensible enough to just write parrot backends to existing python compilers, and not write entirely new compilers
whiteknight Other compiler ideas, especially Java, have also been drawing some interest
lucian moritz: that was the intention
whiteknight moritz: yes, that's what I'm hoping for
moritz I think that point is worth a bit of additional emphasis on parrot-dev 13:34
will write that later today, unless I forget it or somebody else beats me to it
lucian moritz: the idea was to use python's ast module
whiteknight moritz: We have stated a lot of preferences, In the end we have to see what the proposals look like
if we get two proposals, one from a student who knows python, knows about existing compilers, and wants to make aggressive reuse of existing software, and one from a student who doesn't know all that and naively opts to write a new compiler from scratch, it will probably be an easy decision for us to make 13:35
moritz whiteknight: we can make clear that even an excellent proposal that wants to start from scratch doesn't have a chance against a merely decent one that reuses an exisiting compiler
whiteknight moritz: Does it not stand a chance? I don't know. We really have no idea what the proposals are going to be looking like right now 13:36
lucian i agree with moritz. python is a small language, but not a tiny one
whiteknight If students started submitting draft proposals soon, we could get a better idea of what people are thinking
lucian i'm not entirely confident i can even do it with just having to write the bacnekd
whiteknight I have a pretty clear idea of what lucian is planning, but some of the other students not so much 13:37
moritz whiteknight: even if it does stand a chance, we can say it doesn't, and thus encourage thinking about code reuse :-) 13:38
lucian but realistically, i really doubt it does
to be perfectly honest, i don't expect newcomer students to have as good an idea as me about what's involved in python on parrot 13:40
but at the same time, they may very well be much more skilled than me
whiteknight lucian: You do have the benefit that you've been thinking about and planning this project for weeks. 13:41
moritz and we don't just want somebody who looks like a great hacker, but they actually need to make us confident they can accomplish the project 13:42
whiteknight What I want to figure out is if we can get multiple students pursuing python-on-parrot simultaneously from different angles, or if we can only really have one student doing it and the rest need to find other projects
moritz so a well thought-out schedule *is* important
whiteknight we have no shortage of ideas for other projects
Coke whiteknight: there is no problem with having multiple students working on overlapping projects. 13:44
moritz if we come out of this year's GSOC with a mostly working JS and a mostly working python compiler, I'd be very happy.
whiteknight Coke: no, this is true. We can't have students working together or sharing code, however. We also are going to create more trouble if we try to have one student depending on the work of another concurrent student 13:45
If we needed to, we could have two students working on two separate Python compilers, but that seems wasteful to me
Coke if your primary goal is "code", sure. 13:46
whiteknight Coke: I'm open to all ideas in this area. Like I said, establishing a Python presence on Parrot is a big priority for me 13:47
moritz whiteknight: I think the main benefit from your GSoC project was not the never-merged GC work, but that you stayed around
lucian whiteknight: it might not be so wasteful, at the end of gsoc the superior one can be chosen
whiteknight moritz: no question, in the subsequent years i've been able to write lots of other code which was of low-quality and never merged
:)
lucian whiteknight: it might be even better perhaps if the two projects chose different strategies 13:49
whiteknight lucian: example? 13:50
lucian i was thinking of implementing python objects with hashes and so on, in winxed 13:51
another project could try to muck about with 6model
whiteknight lucian: Right, I would just hate to get into a situation where one student was dependent or blocked on the work of another student 13:52
lucian whiteknight: sure, it's even against GSoC policy 13:53
whiteknight is it reasonable to develop a 6model-based python object system without having an existing python compiler around to test it with? Testing python object semantics in a vacuum seems weird to me
and a little bit more abstract of a project than many students might be able to tackle
lucian whiteknight: oh, both projects would write compilers
whiteknight oh, okay
13:53 PerlJam joined
moritz if you put your object creation code behind an API, it will be relatively easy to adapt it to 6model later on 13:54
lucian there could be a useful, but not blocking project
to rewrite the python 'ast' module in pure python
moritz: i intend all python objects to be instances of Winxed/parrot classes
but of course, rewriting 'ast' to pure python isn't exactly a parrot task, more like a PSF task 13:55
although it would be useful to pynie in the long run, to be self-hosted
PerlJam lucian: Does PSF have monies to give for such a task? 13:56
lucian PerlJam: gsoc does
but i'm not too worried about pynie depending on python(3) 13:57
it's ubiquitous enough
13:59 rohit_nsit08 joined
rohit_nsit08 hello 14:00
whiteknight good morning rohit_nsit08
rohit_nsit08 whiteknight: hello , good morning 14:01
whiteknight: i configured makefile to make it work with narwhal
whieknight: it worked
whitekinght: loll, but there was an error about the size of compiled java classfile , can't exceed 64 kb , working on that error , may be today i'll be having a working environment :-) 14:02
whiteknight: sorry this keyboard is messy 14:03
whiteknight: not sitting on my system 14:04
whiteknight rohit_nsit08: awesome, I'm glad to hear that
You're lucky, we don't have any other students fighting over a JavaScript compiler project. Lots of students getting into the Python compiler idea 14:05
14:05 marcel_r joined
whiteknight good morning marcel_r 14:06
marcel_r whiteknight: Good morning.
rohit_nsit08 whiteknight: hmm.. we can have more people after the summers when some work will be done on it 14:07
14:23 ambs joined 14:29 benabik joined 14:31 TiMBuS left 14:39 plobsing joined 14:40 benabik left 15:07 rurban_ joined, he__ left 15:08 GodFather joined
whiteknight holycrap we're getting a lot of interested students this year 15:10
15:10 rurban left, rurban_ is now known as rurban
atrodo whiteknight> If i was to guess, it's because we're not hidden behind tpf 15:10
whiteknight I was worried that without TPF in our corner we might not have enough name recognition, but it appears the opposite is the case
atrodo: it appears that way, yes
oooh, another cool project idea I just thought of was getting Parrot set up as a CORBA provider 15:12
It worries me to think about how many slots google is going to assign us 15:14
Coke (CORBA) AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH 15:15
(sorry, flashback to my days at Enron.)
whiteknight ...I'll take that as a "no"
plobsing whiteknight: how about POSIX bindings (or a subset thereof)? 15:17
whiteknight plobsing: that could be a pretty big project
lucian a very useful one, though 15:18
plobsing you can slice it up into smaller parts and still have it useful
mqueues, for example, isn't all that big
15:18 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner
whiteknight Are you talking about implementing some of the actual standards, or providing interfaces to posix system libraries? 15:19
plobsing providing interfaces, preferably in a unified way 15:20
lucian whiteknight: why reimplement? libc is there
plobsing lucian: windows? 15:21
lucian plobsing: meh, there's wrappers and such
CPython's os module is relatively thin
plobsing I'd like to see posix bindings for parrot as a separate library because, even though it doesn't meet the portability requirements core has (or should have), it is increadibly useful on supporting systems. 15:22
15:23 cgaertner joined
cgaertner whiteknight: ping 15:23
plobsing Perl initially became popular because it "talked unix". Parrot HLLs can't fill that role the same way until we have good bindings. 15:24
NotFound Some things are fairly easy to access via nci. 15:25
plobsing NotFound: easy to access isn't the same thing as pre-packaged 15:26
and some things aren't
errno, for example, is quite tricky
NotFound See for example the --detach option of examples/fly, which does fork and setsid if available, 15:27
whiteknight cgaertner: pong
cgaertner: welcome to Parrot! 15:28
plobsing problem is, to deal with exceptions inteligently, we need errno for pretty much any operation in the POSIX standard
cgaertner whiteknight: I'm the guy who posted on parrot-dev re GObject bindings 15:29
whiteknight cgaertner: yes, I've been looking forward to talk to you. I love the ideas
I've been wanting GObject bindings for a while now, and we've definitely talked about a Vala compiler before
NotFound plobsing: yes, but the point is that it should be easy to prototype most of the functionality wanted, and later elaborate the interface. That should ne helpful for students thinking about such project, 15:30
15:30 ambs left
cgaertner just to clarify - I mentioned the Vala bindings to Parrot first as it's probably pretty simple - the main goal would be to provide access to GObject from Parrot 15:32
however, that probably won't fill the whole summer, thus the idea of re-targetting valac
lucian well, gobject-introspection for parrot working *perfectly* might take the whole summer
and if that worked, i don't see the point of retargeting vala, myself 15:33
whiteknight lucian: We loves us some compilers
cgaertner: If we have awesome, pre-made bindings to GObject, that significantly lowers the barrier for dozens of other projects, bindings, embeddings, etc 15:34
lucian whiteknight: but it seems very wasteful
vala libraries get gobject-introspection for free
whiteknight cgaertner: I *suspect* that there are some fuzzy problem areas with respect to Parrots object model that may make the project a little tricker
lucian valac is fast and supported by the first party
whiteknight lucian: yeah, I know what you are saying 15:35
lucian if parrot has gobject-introspection, it can talk to all vala libs
whiteknight GObject is really the gold prize here
A few dynpmcs, GObject and GObjectClass could form their own sort of metamodel, or minimetamodel
lucian i really see no advantage whatsoever (now at least) to vala running on top of parrot
cgaertner lucian: what's the benefit of running any language on top of parrot if you could just create bindings to another runtime? 15:36
whiteknight cgaertner: interoperability is a huge benefit 15:37
easy, transparent interoperability
lucian cgaertner: this is a very different case
sorear bindings to other runtimes inherently suck. when they work at all, you're hapy
lucian cgaertner: after gobject were implemented on top of parrot, then vala-pir would make sense 15:38
of course, it's your project
sorear <- wrote much of the Perl 5 binding
cgaertner I was just brainstorming ideas 15:40
I agree that GObject is a special case as it it already is something of an interoperability framework
however, getting Vala on Parrot natively also has merits...
whiteknight cgaertner: it's looking like good GObject bindings is the best project idea, at least that we've talked about so far 15:41
once we have that, if there is still time during the summer, working on library bindings, a valac retargetting, or other stuff to use your new bindings would be great things 15:42
lucian cgaertner: yes, as much as getting C on Parrot natively has merits (and it does, long-term)
whiteknight Even if you only had time for something trivial, like bindings to libnotify, that would be fun
lucian there's a bunch of overrides you might want to implement for g-i 15:43
pygobject-introspection had to deal with quite a few
cgaertner lucian: do you know how much GObject Introspection has stabalized - last I checked, it was still a moving target...
*stabilized 15:44
whiteknight what I would really like to see is a GObjectClass PMC matured to the point that we could .hll_map(Class, GObjectClass) in our programs and not have the world burn 15:45
then, Parrot is a native GObject producer and consumer all the way down
lucian cgaertner: it seems to be stable enough for gtk and webkit to work from python 15:46
cgaertner lucian: you don't necessarily need to support introspection to use such libs... 15:47
lucian cgaertner: sure you do, realistically 15:48
it's much easier, for one
and it's the preferred way in gnome3>
15:49 shell joined
shell hello 15:49
whiteknight hello shell
shell I am planning to join the GSoC 2011 of Parrot 15:50
how to update the idea list?
plobsing shell: it is a wiki. create an account, convince an admin you aren't a bot, edit 15:51
whiteknight shell: you can just tell us your idea
shell ok
plobsing but that list is more for developpers to communicate ideas to students, not the reverse
whiteknight shell: Ideas don't need to be on the wiki. Just tell us what you want to do
we love talking to students about ideas
plobsing it isn't official by any means
shell I would like to migrate the V8 benchmark to various Parrot languages
such as Perl,Python,PHP 15:52
whiteknight oh, okay. We got your email
shell: Is that a project that requires Parrot, or something that would be for those other languages?
lucian aren't the v8 benchmarks ported from older benchmarks?
and aren't those already available in said languages?
shell code.in.the.shell@gmail.com
lucian should stop shutting down ideas
s/shutting/shooting/ 15:53
whiteknight lucian: yes. you already have your idea!
plobsing shell: while we do like benchmarks, half of the languages you listed don't yet have parrot implementations
moritz shell: how js specific are those benchmarks?
shell i haven't heard that
moritz from what I remember of the V8 design, it has some optimizations that are very JS specific
plobsing also, HLL benchmarks can be problematic, because we have to tease appart poor code-generation in naive compilers from legitimate performance problems in parrot 15:54
shell I've read it,and the benchmark doesn't rely on JS
moritz ie a C level data structure for efficiently creating some common types of objects
lucian to be less of an asshole, it might be useful to look at those specific benchmarks and see if the already have ports in other languages
plobsing moritz: that's the VM design, not the benchmarks they use to test that design 15:55
shell actually,I want to write a PIR one
lucian shell: it might be interesting to have a pir/winxed version of shootout.alioth.debian.org/
moritz plobsing: well, I expect that they taylor at least some part of their benchmarks to track their progress
lucian see how parrot stacks up
15:55 cotto left
shell Maybe I need more consideration. 15:55
moritz I don't know it, which is why I'm asking :-) 15:56
lucian you can safely ignore me
whiteknight shell: Tell us a little bit about yourself. What is your background? How did you hear about Parrot?
shell that benckmark doesn't seems to be enough
I learnt that google use V8 benchmark to improve the JS engine 15:57
OK
I learnt it from the Ruby community
and I do really want a VM running all dynamic languages 15:58
I think they should be cooperated
whiteknight we think so too :) 15:59
shell I've been hacking(or just taking a look at) many compilers
I built some experimental compilers with antlr 16:00
My major languages are Ruby,PHP and C#
and...I can't figure out more right now 16:01
16:01 woosley left
shell I am focusing on the performance of VMs 16:01
plobsing shell: PHP on Parrot maybe? 16:02
shell that's ok
plobsing C# on parrot wants an implementation too
shell I found the a CIL implementation on Parrot 16:03
I don't know how is it right now
plobsing ah, the .Net code translator. That thing hasn't been touched in over 3 years, in which time Parrot has been almost completely rewritten 16:04
it stands no chance of working reasonably today
reviving that would also be an interesting task
shell I do think so
turn back to the V8 benchmark
how do you view it 16:05
..... 16:06
whiteknight shell: it doesn't seem like a big enough project for a whole summer
shell I planned to migrate it to about 10 to 20 languages........... 16:07
not a single one
whiteknight shell: That sounds fun, but that's not really a Parrot project to be writing a benchmark for the Ruby language, etc
plobsing Parrot doesn't run 10 to 20 languages yet, let alone performantly
shell Maybe many of them doesn't run on Parrot
plobsing as such, most of those will not be immediatly useful
shell I think it would be better to make a standard for language benchmarks 16:08
whiteknight shell: Are there any other project ideas you have? Did you see any other ideas in our list that you like?
shell the Antlr one 16:09
plobsing shell: the shootout bank of tests already provides a standard set of benchmarks across many languages
shell since i've got some experience with Antlr
really?
would you please give the the url of those benchmarks 16:10
lucian shell: shootout.alioth.debian.org/ 16:11
shell oh,you mean that
I need think twice 16:12
thank you 16:13
16:14 dodathome left 16:15 hudnix left 16:16 hudnix joined 16:24 hudnix left
cotto_work ~~ 16:27
16:28 dodathome joined 16:30 hudnix joined
whiteknight hello cotto_work. We've been absolutely swamped with GSoC students this morning 16:33
swamped
lucian has been doing much of that 16:35
cotto_work: (what does ~~ mean, btw?)
cotto_work whiteknight: I saw. It's insane.
lucian: waving hello
atrodo or smart matching, depending on the context 16:36
lucian i see
whiteknight cotto_work: By my count, and I may be missing some stuff, we have about 4 students right now who seem on their way with specific ideas. About a half-dozen more who we've talked to but haven't seemed to settle on one idea yeat 16:37
cotto_work whiteknight: should we start a wiki page to keep them organized?
whiteknight and we're so early in the process still, we could end up with a crazy amount of applications
yes, a wiki page might be quite good 16:38
atrodo when do we know the number of slots we get? 16:40
16:43 shell left
cotto_work how does this look: trac.parrot.org/parrot/wiki/ParrotG...11Students 16:47
atrodo signs up for perl7 16:48
cotto_work atrodo: not INTERCAL? 16:49
atrodo isn't it the same thing? 16:50
cotto_work you'll have to talk to TimToady about that
dalek tracwiki: v39 | cotto++ | GSoc2011 16:51
tracwiki: trac.parrot.org/parrot/wiki/GSoc201...ction=diff
tracwiki: v40 | cotto++ | GSoc2011
tracwiki: trac.parrot.org/parrot/wiki/GSoc201...ction=diff
tracwiki: v1 | cotto++ | ParrotGSoC2011Students
tracwiki: trac.parrot.org/parrot/wiki/ParrotG...ction=diff
TT #2066 created by hwxurhhnhqy2++: Go For Dating To Find Out Your Perfect Partner
TT #2066: trac.parrot.org/parrot/ticket/2066
TT #2067 created by sxmzwzasylwiichb5++: Security features along with Electric Patio Heaters
TT #2067: trac.parrot.org/parrot/ticket/2067
cotto_work deleted and deleted
sorear wonders when ey needs to think about gsoc 16:52
16:55 plobsing left
cotto_work sorear: what are you thinking? 16:57
16:58 mtk left 17:02 plobsing joined 17:06 mj41 left
cotto_work despammed 17:06
17:07 lucian left 17:09 ShaneC1 joined 17:15 plobsing left
cotto_work any volunteers to troll through parrot-dev and make sure that any students who've show interest in GSoC get added ParrotGSoC2011Students? 17:17
atrodo cotto_work> I have a few minutes, I'll try to 17:18
sorear cotto_work: right now? schoolwork is on 80% of my brain 17:20
cotto_work atrodo: much appreciated 17:21
17:21 hercynium joined
dalek tracwiki: v2 | cotto++ | ParrotGSoC2011Students 17:22
tracwiki: trac.parrot.org/parrot/wiki/ParrotG...ction=diff
17:23 Eduardow left 17:28 dmalcolm joined 17:31 Eduardow joined
whiteknight sorear: the field is filling up. If you're going to throw your hat in the ring, now's a good time to start 17:34
at least, start putting out some feelers for what kinds of projects you want to get involved in
atrodo by my count so far, I count 9 or 10 students so far 17:36
whiteknight at least that many 17:37
cotto_work: for future reference, we reject students who know INTERCAL on principle 17:38
Coke I love the akismet signup page with the happy face tied to the donation slider.
rohit_nsit08 whiteknight: hi , i was away for some time , what is that list tha dalek put the link of ? 17:39
atrodo It's a wiki page of interested students. I'm editing right now 17:40
whiteknight atrodo: I just added a bunch
atrodo whiteknight> great
cotto_work oh noes
whiteknight rohit_nsit08: We're trying to keep track of all our students and the projects they are interested in
rohit_nsit08 atrodo: hi, how can i put my name on that ?
atrodo rohit_nsit08> It's on my list, so we'll see how the conflicts go 17:41
whiteknight rohit_nsit08: I added you
atrodo: sorry, I'm sure there will be several conflicts
cotto_work atrodo: save a copy before submitting. trac is lta about conflicting edits
whiteknight rohit_nsit08: don't worry, you're definitely on our list!
atrodo cotto_work> I was going to anyways
rohit_nsit08 whiteknight: thanks :-)
atrodo whiteknight> I'll load your changes and do the conflict resolve 17:42
17:42 plobsing joined 17:48 contingencyplan joined
whiteknight rohit_nsit08: make any progress with narwhal and cafe? 17:48
rohit_nsit08 whiteknight: hmm, a step furthur loll, i was refining my proposal today , trying to be more specific on my work , the error that came this time was something related to size of javaclass file , tried to look for it , 17:52
in end i mailed the problem with my interpretation to zaach , he replied to my yesterdays's mail today
whiteknight: i compiled parrot today 17:53
dalek tracwiki: v3 | whiteknight++ | ParrotGSoC2011Students
tracwiki: trac.parrot.org/parrot/wiki/ParrotG...ction=diff
tracwiki: v4 | whiteknight++ | ParrotGSoC2011Students
tracwiki: trac.parrot.org/parrot/wiki/ParrotG...ction=diff
tracwiki: v5 | atrodo++ | ParrotGSoC2011Students
tracwiki: trac.parrot.org/parrot/wiki/ParrotG...ction=diff
tracwiki: v6 | atrodo++ | ParrotGSoC2011Students
tracwiki: Removed a duplicate for rohit_nsit08
tracwiki: trac.parrot.org/parrot/wiki/ParrotG...ction=diff
atrodo There, that's everyone I could find in email 17:54
cotto_work atrodo++ 17:57
17:59 lucian joined
cgaertner atrodo: my nick is missing a letter: cgaetner -> cgaertner 18:08
atrodo cgaertner> fixed. sorry about that, not even sure how that happened 18:09
dalek tracwiki: v7 | atrodo++ | ParrotGSoC2011Students
tracwiki: trac.parrot.org/parrot/wiki/ParrotG...ction=diff
18:11 bbatha joined
cgaertner btw, does parrot still get parts of its configuration from the installed perl? 18:12
18:12 bbatha left
cotto_work cgaertner: yes 18:12
cgaertner cotto_work: is it possible to manually override these values? 18:16
18:19 Util left 18:20 tadzik left, PerlJam left
cotto_work cgaertner: do you mean when running Configure.pl? Yes, if so. 18:20
18:22 dodathome left
cgaertner cotto_work: yes, that's what I meant 18:22
last time I built parrot on windows, I went with cygwin because that's where my perl comes from 18:23
however, I would have preferred using MinGW instead...
atrodo cgaertner> Have you tried strawberry perl? That should have everything you need (should) 18:24
Coke atrodo: last time I tried, the build didn't work on straw 18:25
configure died.
atrodo nevermind
Coke (could just be me)
marcel_r Strawberry+MinGW worked for me.
atrodo decides to try it himself 18:27
cgaertner Strawberry comes with its own MinGW, correct? 18:28
cotto_work yes
trac.parrot.org/parrot/wiki/Platforms/Windows 18:29
cgaertner well, I don't want that ;)
18:35 tadzik joined 18:56 ambs joined
dukeleto ~~ 19:03
rohit_nsit08 dukeleto: hi 19:04
dukeleto was hiding under a rock called "vacation" for the last 1.5 days
rohit_nsit08: howdy
rohit_nsit08 dukeleto: i'm fine , how are u ? didn't saw u yesterday , i talked to whiteknight about the javascript compiler 19:05
dukeleto wow, we have lots of prospective GSoC students already
rohit_nsit08 rohit_nsit08 : installed narwhal on my system and jison also , but facing a problem with making "cafe"
dukeleto rohit_nsit08: have you read whiteknight's blog posts relating to implementing JS on parrot? 19:06
rohit_nsit08 dukeleto: ya i read that , helped me to get most of my interpretation
dukeleto rohit_nsit08: with Jaspers, i decided to go with PEG.js instead of cafe and friends 19:07
rohit_nsit08: but whatever you can get to work and feel productive with, will work
rohit_nsit08: the idea is that PEG.js already has a Javascript parser
rohit_nsit08: so you don't have to write one
rohit_nsit08: do you have a github account? 19:08
lucian dukeleto: i thought cafe was already a js parser using jison
rohit_nsit08 dukeleto: i don't have account , but i think i need one for cloning the repository
dukeleto: i mean i think i don't need 19:09
dukeleto: i was looking for some documentation to get a idea about parrot 19:11
dukeleto : what things do i need to know about parrot for my javascript compiler ?
lucian rohit_nsit08: some PIR and/or winxed, depending what you choose as your target 19:13
dukeleto rohit_nsit08: you should try and understand one of the languages that already runs on Parrot 19:14
rohit_nsit08: taking a look at Lua could be a nice example
rohit_nsit08: github.com/fperrad/lua
rohit_nsit08 lucian: i think PIR will be good , i heard that it's more atomic
dukeleto rohit_nsit08: PIR is like a very friendly assembly language
rohit_nsit08: you want to only write what is absolutely necessary in PIR 19:15
lucian but perhaps you'll generate PIR from your compiler, so it doesn't hurt to be familiar with it
dukeleto rohit_nsit08: last time I looked, more people were using PEG.js and it had more recent commits
rohit_nsit08: both could solve the problem
rohit_nsit08 dukeleto: i will try peg.js , the problem i was facing with cafe was that there was a size limitation of classfile code generated by narwahl , i mailed to zaach( the author of cafe ) about the issue , and he replied a few minutes ago about a new version that doesn't have that limitation 19:18
lucian rohit_nsit08: that's a limitation of rhino 19:19
rohit_nsit08 lucian : and narwhal is using rhino engine
lucian yes. but it can also use others, i think
and there's nodejs
19:20 tadzik left
rohit_nsit08 lucian : i will give it another shot with narwhal as i'm in touch with zaach on email , he's helping me out with the issue 19:21
lucian cool
rohit_nsit08 lucian: i have compiled parrot on my system , how should i start with PIR , as in some simple applications or something or is there any docs about that 19:22
lucian rohit_nsit08: there's some docs. check the parrot repo, /docs/ 19:23
also, docs.parrot.org
rohit_nsit08 lucian: i have found a PIR book :-) 19:24
lucian that too 19:25
rohit_nsit08 lucian: what is PCT?
lucian rohit_nsit08: Parrot Compiler Tools. since you're writing your compiler in JS itself, you can ignore PCT
rohit_nsit08 lucian: hmm, ok 19:26
lucian: i wanted to ask that , the javascript compiler will produce the PIR code , and what we need is code in other languages , how will PIR code be converted in others , are their utilities already present for that , i think i should see them too 19:28
lucian rohit_nsit08: i don't understand that. PIR compiles to "parrot bytecode" roughly 19:29
so do all languages, eventually
rohit_nsit08 lucian: so what i need to do is to get the PIR code from javascript ,? 19:30
lucian rohit_nsit08: your javascript compiler (running on narwhal or node) parses javascript code and generates PIR (or something else similar) 19:31
then that PIR gets compiled by parrot and it can run
rohit_nsit08 lucian : got it , PIR will be compiled further by parrot , 19:32
lucian yeah, pretty much
you'll also need some sort of object system that this compiler will generate code for 19:33
rohit_nsit08 lucian : pls tell me something about the object system 19:34
lucian : or u can give me any link where i can read about it , i will read and than clarify what i get from that 19:35
cotto_work goes place
lucian rohit_nsit08: well, "object" as defined by javascript
numbers, strings, Objects, Arrays, etc
the javascript versions of these don't exist on parrot right now 19:36
so you will likely have to wrap the parrot objects so that they appear more javascript-like
rohit_nsit08 lucian: so i will need to decide my own object system , can i see any example of this thing happening in parrot? 19:37
lucian rohit_nsit08: look at lua, i guess
rohit_nsit08 lucian : i am familiar with javascript objects and data types 19:38
lucian its object system is somewhat similar to js's
also i should remind you, take what i say with a grain of salt, i'm just another student
rohit_nsit08 lucian : i need to see it's application in compiler design,
lucian: ya no prob, u have more experience than me :-) 19:39
lucian : i'm in learning stage of compilers :-) , and it's very interesting that now i know it's internals also :-) 19:40
lucian i don't, really
i just read stuff
rohit_nsit08 lucian: hmm.. k , in that case i will consult more about this whiteknight , 19:41
lucian: with* whiteknight
lucian i mean i'm willing to answer questions, and make things clearer for both of us, just don't take what i say too seriously :) 19:42
whiteknight we're all willing to answer questions 19:43
rohit_nsit08 whiteknight: hi
whiteknight I'm happy to see rohit_nsit08 being so interested in this project
hello
19:43 dolmen left
whiteknight Great article for all GSoC students to read: google-opensource.blogspot.com/2011...gle+Reader 19:43
google-opensource.blogspot.com/2011...-code.html 19:44
stupid long links
19:44 zby_home joined
rohit_nsit08 whiteknight: zaach replied and told that there was a problem with version of narwhal i was using , so now i need a new version with no limitation of 64 kb classfile 19:44
lucian rohit_nsit08: afaik that limitation is only true for compilation mode 19:45
if you were to set rhino in interpretation mode, it should be fine
slower, but fine
whiteknight rohit_nsit08: okay, that's weird. Did he tell you which version of narwhal to use?
rohit_nsit08 lucian : ya it comes when i am trying to make cafe 19:46
whiteknight: yes
whieknight : next time i''ll cc u so that u can have a look too
lucian whiteknight: it's not weird at all. rhino by default generates java bytecode for js. jison generates HUGE js files, which end up with HUGE bytecode
rohit_nsit08 whiteknight: dukeleto also pointed to it , that it's a problem with rhino 19:47
19:49 tadzik joined
lucian i'd really expect rhino optimisation level to be configurable in narwhal 19:50
rohit_nsit08 lucian: didn't get that , can u suggest me if i can try? 19:52
lucian rohit_nsit08: narwhal should have a configuration option to make rhino run in interpretation mode
rhino doesn't have the 64kb classfile limitation in interpretation mode
19:53 marcel_r left
rohit_nsit08 lucian: i'm getting error while $make cafe , can i run narwhal in interpretation mode to fix this 19:55
lucian you might want to ask narwhal devs, i don't really know how 19:56
i've just embedded rhino and know that it's possible
rohit_nsit08 lucian: hmm mailing them will be good , maybe they have already solved it 20:00
lucian in the meantime, you could try nodejs
rohit_nsit08 lucian: loll, i switching between nodejs , solving problems of both one by one :-) , i should settle asap 20:02
lucian : i mean switching between narwhal and nodejs
lucian what was the problem with node?
whiteknight what exactly is narwhal, and why not use rhino directly? 20:03
that's the part of all this that I don't understand 20:04
20:04 bbatha joined
lucian whiteknight: narwhal implements commonjs and a few other things 20:04
without it, you'd have to use java APIs from rhino
for file access and so on
whiteknight okay 20:05
lucian node does similar for v8, but it's a lot more frugal. doesn't quite implement commonjs 20:06
whiteknight okay
that makes more sense 20:07
our JS compiler is going to be 100 times cooler
rohit_nsit08 whiteknight: :-) 20:08
20:09 ambs left
lucian whiteknight: how so? 20:10
whiteknight lucian: I'm making bold predictions that rohit_nsit08 is going to have to rise up to meet :) 20:11
lucian whiteknight: sure you are, next you'll reach for the whip. but i was curious in what ways would it be cooler? 20:12
whiteknight lucian: It's going to be cooler because it's Parrot. That's why!
lucian: I don't know, but this does seem like a good time for unbridaled enthusiasm 20:13
when we get closer to the deadline at the end of the summer, enthusiasm might be in short supply
lucian i see
rohit_nsit08 whiteknight: i wanted to read about the object system for js compiler , where can i found something about it ? 20:14
whiteknight lucian: It's just like how our Python compiler is going to be cooler than all the rest :)
lucian i see. but it's not. it'll suck immensely in fact
whiteknight blah
rohit_nsit08: a reference about the JS object model?
lucian it will be by far the worst python interpreter still being worked on
whiteknight lucian: the worst asymptotically, or just the worst one at the end of the summer? 20:15
and how do we define "worst"?
lucian the least cool, with the least features, the least compatible
whiteknight and shutup damnit. It's going to be awesome
A W E S O M E
say it with me
"awesome"
20:16 pjcj left
rohit_nsit08 whiteknight: ya , sort of , lucian told me that i'll need a object system for which the compiler will generate the code for 20:16
whiteknight rohit_nsit08: You're familiar with how javascript objects work?
rohit_nsit08 whiteknight: awesome loll
whiteknight: ya i have used them
whiteknight basically javascript objects are hashes
so at the beginning, you can just use the parrot Hash type to implement most of what you need 20:17
rohit_nsit08 whiteknight: not in the context of compiler so was just curious to know if there is any major difference or something i need to know about
whiteknight rohit_nsit08: not at first, no
Coke Sounds like lucian really isn't interested in the project. am I misreading?
whiteknight Coke: yes, you're misreading
rohit_nsit08 coke : hi 20:18
Coke ok. perhaps you can understand him, then. ;)
whiteknight Coke: he's being realistic. One coder working over three months isn't going to produce CPython
Coke rohit_nsit08: hio
lucian whiteknight: thanks for standing up for me, i guess 20:21
Coke lucian: without saying /why/ it would suck, I assumed you were saying it would suck because of the platform. (based not just on today's comments, but previous conversations in channel.)
whiteknight lucian: This is just a summer project. Nobody expects you to move mountains.
Coke (mountains) nope. 20:22
(er, to be clear, I agree with whiteknight about his mountains comment.)
whiteknight lucian: What we are most interested in is establishing a Python presence on Parrot
lucian yep
Coke: i see. well, parrot isn't exactly great either
whiteknight the most successfull projects don't spring forth, fully formed and never need any maintenance. The best projects can attract a team of developers to push it forward over time
lucian but it's not much worse than CPython, architecturally
Coke lucian: that's the nicest thing I've ever seen you say. ;) 20:23
whiteknight lucian: All we need done over GSoC is for somebody to start the python-on-parrot fire, and stand back to watch the world burn
lucian Coke: heh. i see greener grass every day :)
whiteknight: that sounds so lovely 20:24
20:24 rohit_nsit08 left
lucian Coke: i tend to be realistic and skeptical, i guess 20:24
whiteknight lucian: and then we can go kill people *maniacal laughter*
lucian reaches for the straightjacket 20:25
Coke: i know just how, say, fast, most other platforms are and how much work it too to get them there
20:25 Util joined
lucian parrot has few unique advantages, but it has the potential to make those stronger 20:26
i'm speaking specifically of: implementing dynamic languages without interpretation, and possible interoperability 20:27
as long as it'll get reasonably fast at some point, it's fine
btw, what's the status of parrot on arm? 20:28
whiteknight lucian: no status
20:28 stomper joined, stomper left
whiteknight at least, I'm not aware of anybody working on it 20:28
lucian i see. i guess i'll try
20:28 rohit_nsit08 joined
whiteknight you'll try Parrot on ARM? 20:29
lucian has a www.genesi-usa.com/products/smartbook
i'm not planning to do it for GSoC if that's what you're asking
rohit_nsit08 sorry , connection got lost for few seconds
lucian but i'll have that laptop with me pretty much always, i'd be nice to be able to work on parrot on it
whiteknight lucian: oh, cool
lucian: I suspect we're going to need something to make it work with th eGC 20:30
but that's the only major stumbling block I can forsee
20:30 hudnix left
lucian hmm. does the gc make x86 assumptions? 20:30
20:32 Hackbinary left
cgaertner lucian: btw, you were right that any GObject project should concentrate on getting introspection into Parrot 20:34
lucian cgaertner: i never doubted it!
lucian smugly struts around
cgaertner that way, it should be possible to load libs at runtime which automagically install class PMCs with do-the-right-thing[TM]
*which 20:35
lucian cgaertner: yeah, that's what pygobject-introspection does, mostly
sorry if i was a bit of an asshole earlier
cgaertner I didn't read it that way, so nevermind...
whiteknight lucian: take a look in src/gc/system.c, if you're brave 20:36
specifically, the trace_system_areas function 20:37
lucian cgaertner: i've been lectured endlessly by gnome folk that g-i is The Future ā„¢
20:37 theory joined
whiteknight lucian: that function used to be written in Morgul, but we translated it back to C 20:37
lucian Morgul? 20:38
heh. there's ifdefs for sparc and hpux, but not arm
funny
whiteknight "TT #271: This needs to be fixed in a variety of ways" 20:39
I added all the comments in that function. When I first came to Parrot that entire file was almost completely uncommented
lucian my C skills aren't good enough to try and fix that, but i can certainly help debug/test
whiteknight you can see the branches like hpux where I didn't know what was going on, so i didn't write anything 20:40
lucian: yeah, if it doesn't work on ARM we are going to need to add in a new branch there to support it
lucian: we may need to write a custom assembly function, or something like that 20:41
lucian bleh. i'd much rather not
ARM assembly is a tad fragmented
whiteknight ha, I can do it. you would just have to help with testing
20:42 ambs joined
whiteknight again, that's only if you were having problems 20:42
lucian yeah. i'll try soon
i'm a bit worried about including ARM assembly anyway
whiteknight it may not require assembly 20:43
lucian there's flavours of arm, and Thumb, and Thumb-2 and ThumbEE
and so on
whiteknight we just have to play with it and see what happens
cgaertner it should also be fairly simple to provide a gobject wrapper for PMCs, providing access to the vtable functions
lucian although realistically, armel should be enough
whiteknight I'm going to read through the Boehm collector source to see what they do
cgaertner together with dedicated wrappers for some core PMCs, it should be possible to create a reasonable wrapper GObject wrapper for Parrot...
lucian cgaertner: yeah, it's very hard, just tedious 20:44
cgaertner ^not(?)
lucian for it to be usable, you'll need an override system
yes, not
also, gobject creation is funny 20:45
and afaik gobject is a bit more dynamic than parrot's Objects
not sure
20:45 bbatha left
lucian bah, mono memory usage is silly 20:49
20:49 bbatha joined 20:50 pjcj joined 20:55 whiteknight left 21:12 PerlJam joined 21:25 TiMBuS joined 21:31 hercynium left 21:32 mj41 joined, benabik joined
rohit_nsit08 goodnight guys :-) see u tomorrow 21:38
21:40 rohit_nsit08 left, Andy_ left 21:41 theory left 21:43 theory joined 21:44 bacek joined 21:52 cgaertner left 22:15 hudnix joined 22:27 nwellnhof joined
nwellnhof ~ 22:27
22:27 ambs left 22:29 fperrad left 22:31 lucian left, Hackbinary joined 22:32 theory left 22:43 whiteknight joined 22:49 cosimo joined 23:02 mj41 left 23:07 rurban_ joined 23:10 rurban left, rurban_ is now known as rurban 23:26 hercynium joined 23:27 PacoLinux left 23:28 PacoLinux joined
whiteknight plobsing: ping 23:31
plobsing whiteknight: pong
23:31 bbatha left
whiteknight I'm slowly tracking down that problem in imcc_compreg_pmc 23:31
23:32 woosley joined
plobsing nice. anything I can do to help? 23:32
whiteknight if I insert a Parrot_unblock_GC_mark(interp); in src/packfile/api.c:4256, the problem appears
if that branch is taken, the function returns without ever unblocking GC. That's the codepath that's causing problems 23:33
plobsing yes. that's the problem. which means the workaround really wasn't. 23:34
and the location of the problem is essentially unknown
nopaste "Whiteknight" at 192.168.1.3 pasted "this makes the imcc_compreg_pmc branch build" (57 lines) at nopaste.snit.ch/38662 23:35
whiteknight it also suggests that we do still have a problem in master 23:37
plobsing why does it suggest that?
the leaking gc-block basically prevents GC in any non-trivial program in branch. if there were a GC bug *anywhere* in the branch, that workaround would mask it. 23:38
whiteknight that workaround is present in master 23:41
nwellnhof whiteknight: to track down those GC problems, it helps to set a breakpoint on gc_mark_and_sweep and then get a backtrace to see which memory allocation triggered the GC.
plobsing whiteknight: where in master? I don't see it in src/packfile/api.c 23:42
nwellnhof whiteknight: having a look at your nopaste, i wonder why blocking the GC during VTABLE_exists_keyed_str has an effect at all. that vtable shouldn't allocate memory. 23:45
plobsing nwellnhof: because the GC block leaks, exists_keyed_str may not have anything to do with the problem (other than being called before the GC run that triggers the issue) 23:48
Coke rant: we shouldn't be relying on the git command line to build parrot.
what should be the failure mode if git command line isn't available? empty sha1? or abort the config? 23:57
23:57 hercynium left
whiteknight nwellnhof: yeah, that's the problem. It's not that exists_keyed_str has a problem, it's that the function returns without unblocking GC 23:58
23:58 lucian joined