Camelia, the Perl 6 bug

IRC log for #parrot, 2011-03-25

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:08 theory_ joined #parrot
00:10 theory left #parrot
00:10 theory_ is now known as theory
00:14 tewk joined #parrot
00:28 lucian left #parrot
00:43 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:44 whiteknight bbatha: I just replied to your email!
00:44 whiteknight welcome to #parrot
00:44 sorear Hello and welcome
00:45 whiteknight bbatha: We don't have designated "frontend" people, though several devs have worked on compiler projects
00:45 bbatha whiteknight: Good to know
00:46 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 #parrot
00:48 whiteknight two other students who have been interested in python stuff are lucian and marcel_r
00:49 whiteknight 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
00:49 bbatha whiteknight: very useful to know
00:49 whiteknight bbatha: oh awesome, it's good to hear about professors talking about Parrot
00:53 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:54 bacek_at_work ~~
00:54 whiteknight oh great, exactly what we need around here: professional debaters
00:54 whiteknight :)
00:57 whiteknight bbatha: what programming languages are you familiar with?
00:58 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:59 whiteknight oh, okay. That's quite a nice list
01:00 whiteknight and you've written compilers before, so you have an idea about the scope of those kinds of projects
01:01 whiteknight We really want compilers for many languages, but we have a particular preference for bootstrapped compilers where it's reasonable to do
01:01 whiteknight so, a Python compiler written in Python, a Java compiler written in Java, etc
01:02 whiteknight it's a small preference, but it beats some of the really weird combinations you find around the internet
01:03 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:04 * cotto_work decommutes
01:05 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.
01:05 bbatha I didn't think so
01:07 whiteknight unfortunately, I have trouble thinking of a project related to that which could fill up the entire summer
01:08 woosley joined #parrot
01:08 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:10 Kulag left #parrot
01:10 Kulag joined #parrot
01:12 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
01:14 whiteknight 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:16 whiteknight 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:17 bbatha That's what I've gathered from the documentation that I've read so far
01:18 whiteknight but like I said, that's just one possible route
01:19 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:27 cotto ~~
01:29 cotto http://google-opensource.blogspot.com/2011/0​3/parrot-foundation-reflects-on-google.html
01:29 dalek parrot/opsc_llvm: 8504fc2 | jkeenan++ | / (2 files):
01:29 dalek parrot/opsc_llvm: Refactor code into internal method to make more execution paths testable.  Then test them.
01:29 dalek parrot/opsc_llvm: review: https://github.com/parrot/parrot/commit/8504fc27cb
01:31 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:32 whiteknight 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:33 whiteknight 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!
01:34 soh_cah_toa 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
01:36 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 soh_cah_toa so sad, no one takes an outside interest in programming
01:36 soh_cah_toa i asked a fellow student if he would be doing anything for gsoc and he didn't even know what it was! aggh!
01:40 soh_cah_toa anyway, i got a question about the debugger...
01:41 soh_cah_toa 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:42 soh_cah_toa would you be able to elaborate? what kind of interpreter infor?
01:42 soh_cah_toa *info
01:43 theory joined #parrot
01:46 whiteknight I have no idea what that means, I would have to research it
01:46 bbatha left #parrot
01:47 whiteknight I'm heading to bed now. I'll talk to you tomorrow
01:47 whiteknight left #parrot
01:57 dalek parrot: 3743f15 | jkeenan++ | / (2 files):
01:57 dalek parrot: Bring into master improvements made in opsc_llvm branch re configuration
01:57 dalek parrot: probing for LLVM and testing the code that conducts those probes.
01:57 dalek parrot: review: https://github.com/parrot/parrot/commit/3743f15235
02:08 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 #parrot
02:26 dalek parrot: 7ddb507 | jkeenan++ | / (2 files):
02:26 dalek parrot: 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 dalek parrot: review: https://github.com/parrot/parrot/commit/7ddb5079b9
02:32 dalek TT #2063 created by gxvyjxwne1++: To create an Idea concerning the Farm spiele Video Game
02:32 dalek TT #2063: http://trac.parrot.org/parrot/ticket/2063
02:33 cotto deleted
02:36 kid51 left #parrot
02:40 cotto dukeleto, ping
02:41 theory_ joined #parrot
02:41 theory left #parrot
02:41 theory_ is now known as theory
02:41 bbatha left #parrot
02:49 Util joined #parrot
02:49 soh_cah_toa left #parrot
03:03 dalek TT #2064 created by gnjfvfxgudubpf0++: Excellent Entertainment At Merriweather Post Pavilion
03:03 dalek TT #2064: http://trac.parrot.org/parrot/ticket/2064
03:08 cotto deleted, apparently
03:14 cotto 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:19 sorear cotto: does "simplicity of writing metaprogramming tools" fall into one of the existing categories?
03:20 sorear (assemblers, disassemblers, the M1->M0 compiler, instrumenting profilers, etc)
03:22 cotto sorear, that's an interesting question.
03:22 cotto It hasn't been an explicit consideration, but making those tools easier to write is a valid reason to keep the op set small.
03:24 sorear What is "exception payload" doing in the M0 contexts?  Shouldn't it be in the exception objects?
03:25 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.
03:27 sorear Also, I think "a tracing jit targeted for server use" is wrong
03:27 cotto which part?
03:27 sorear tracing jits trade off optimization opportunities for *much* faster code generation
03:28 sorear a conventional jit is going to win in a long-running process
03:29 sorear so tracing jits are good for short-lived programs (Web scripts, command line tools, etc) on high-memory desktop systems
03:30 sorear 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 sorear a conventional JIT (most likely using LLVM) would be a good choice for server use
03:31 sorear long-lived interactive/soft real time programs like $the_next_Padre could go either way
03:31 dalek parrot/m0-spec: f5ef008 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
03:31 dalek parrot/m0-spec: add control flow example
03:31 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/f5ef008e25
03:32 cotto it's a fairly weird experience doing control flow like that
03:34 dalek TT #2065 created by klxeunwtrzdb1++: Enjoy and revel in Much more along with Browsergames
03:34 dalek TT #2065: http://trac.parrot.org/parrot/ticket/2065
03:35 cotto deleted
03:49 sorear typo in line 127
03:50 sorear also, what you've just specified is probably the worst possible way to do control flow from a JIT perspective
03:51 sorear what C code does jump = mul_i jump, 4; PC = add_i PC + jump turn
03:51 sorear into?
03:54 cotto Having written that, I'm not sure if it should be M0's way of implementing control flow.
04:00 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:01 luben aloha, seen jkeenan
04:01 aloha luben: Sorry, I haven't seen jkeenan.
04:02 luben aloha, seen kid51
04:02 aloha luben: kid51 was last seen in msg 2 hours 27 mins ago <private message>.
04:12 dalek parrot/opsc_llvm: 85144a2 | luben++ | / (3 files):
04:12 dalek parrot/opsc_llvm: llvm config step:
04:12 dalek parrot/opsc_llvm:  * add --llvm-config option to Configure.pl
04:12 dalek parrot/opsc_llvm:  * add proper libs an cflags to the build system
04:12 dalek parrot/opsc_llvm: review: https://github.com/parrot/parrot/commit/85144a2171
04:13 sorear luben: what do you mean by "real iron" in this context?
04:13 luben in the processor
04:14 luben if you write ASM for x86 for example, you are not allowed to to math that goes into PC
04:14 luben s/to to/to do/
04:19 ShaneC1 joined #parrot
04:20 Eduardow joined #parrot
04:22 luben does somebody knows how could I access config variable from NQP
04:24 ShaneC left #parrot
04:24 cotto get_config in runtime/parrot/library/ProfTest/PIRProfile.nqp
04:24 cotto not especially elegant, but it works
04:28 luben thanks :)
04:28 cotto np
04:29 sorear luben: this is not universally true.  ARM and PDP-11 come to mind, there are probably others.
04:30 luben yes, you are right
04:31 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:32 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 mtk left #parrot
04:32 sorear you should look at valgrind; it has a basic-block-oriented JIT that's designed to handle simulated program counters
04:33 sorear cotto: what's M0's position on instruction combination issues?
04:33 cotto sorear, what do you mean?
04:35 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:36 sorear 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:37 sorear *jump_if_greater
04:37 cotto Based on how we've been thinking about M0, they'd be separate ops.
04:37 sorear the native x86 and 68k way is "compare_general X, Y; jump_if_last_greater Z"
04:38 sorear RISC systems tend to have more exotic systems, because the last-comparison-status register is a synchronization bottleneck
04:39 mtk joined #parrot
04:39 cotto the simplest thing would be a conditional jump based on the value of a register
04:41 sorear computed come from <3
04:42 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?
04:44 sorear 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.
04:45 sorear cotto: you need a lot of cmp-ish ops
04:46 cotto I don't see why we need more than one per numeric type.
04:46 sorear cotto: <, <=, ==, !=, >=, >
04:46 cotto the others can be implemented in terms of that
04:46 sorear how do you distinguish between them
05:20 rohit_nsit08 joined #parrot
05:21 rohit_nsit08 hi everyone
05:22 sorear hi rohit_nsit08
05:22 sorear welcome
05:22 cotto hi rohit_nsit08
05:22 rohit_nsit08 cotto: hi
05:22 rohit_nsit08 sorear: hi
05:23 rohit_nsit08 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:24 rohit_nsit08 i have mailed the author "zaach" about the issue , and waiting for his reply
05:25 tadzik joined #parrot
05:29 dalek parrot/opsc_llvm: b704d9e | luben++ | / (3 files):
05:29 dalek parrot/opsc_llvm: link libLLVM only to llvm_engine.so, not to libparrot
05:29 dalek parrot/opsc_llvm: review: https://github.com/parrot/parrot/commit/b704d9e17d
05:36 benabik left #parrot
05:50 theory left #parrot
06:03 rohit_nsit08 left #parrot
06:08 ShaneC1 left #parrot
06:09 dalek parrot/opsc_llvm: 0004a71 | luben++ | / (2 files):
06:09 dalek parrot/opsc_llvm: load discovered libLLVM.so in LLVM.pm
06:09 dalek parrot/opsc_llvm: review: https://github.com/parrot/parrot/commit/0004a71898
06:18 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.
06:18 cotto nice work there
06:19 luben thanks :)
06:19 cotto luben++
06:19 luben I have to meet kid51 online to discuss llvm config step further
06:19 luben because I have short-circuited most of the code
06:21 luben that mostly test for llvm-gcc which is not essential: LLVM.pm bindings use only libLLVM
06:21 ShaneC joined #parrot
06:28 rohit_nsit08 joined #parrot
06:40 theory joined #parrot
06:45 theory left #parrot
06:56 dalek parrot/m0-spec: 3d1a574 | cotto++ | docs/pdds/draft/pdd32_m0.pod:
06:56 dalek parrot/m0-spec: add notes on control flow and bytecode segment identification
06:56 dalek parrot/m0-spec: review: https://github.com/parrot/parrot/commit/3d1a574f0e
07:04 fperrad joined #parrot
07:07 rurban_ joined #parrot
07:07 cosimo left #parrot
07:10 rurban left #parrot
07:10 rurban_ is now known as rurban
07:30 luben left #parrot
08:03 rohit_nsit08 left #parrot
08:05 he__ joined #parrot
08:18 mj41 joined #parrot
09:07 ShaneC left #parrot
09:08 ShaneC joined #parrot
09:19 woosley left #parrot
09:24 contingencyplan left #parrot
09:54 jevin left #parrot
09:54 fperrad left #parrot
09:56 fperrad joined #parrot
10:22 dolmen joined #parrot
10:38 dodathome joined #parrot
10:39 rohit_nsit08 joined #parrot
10:53 rohit_nsit08 left #parrot
11:09 woosley joined #parrot
11:13 lucian joined #parrot
11:17 bacek left #parrot
11:45 jevin joined #parrot
12:17 lucian left #parrot
12:19 mtk left #parrot
12:26 mtk joined #parrot
12:50 whiteknight joined #parrot
12:56 whiteknight good morning, #parrot
13:02 mj41 left #parrot
13:03 mj41 joined #parrot
13:08 Coke ~
13:12 plobsing left #parrot
13:14 lucian joined #parrot
13:26 Hackbinary hello whitenight
13:28 whiteknight hello Hackbinary
13:28 whiteknight lucian: ping
13:30 lucian whiteknight: pong
13:30 whiteknight lucian: who knew Python 3 would be such a popular project idea?
13:30 lucian not me
13:31 atrodo I thought about chiming in and suggesting one of them work a perl5 port :D
13:32 moritz ponie!
13:32 whiteknight do you really think 2 and 3 would share so much code?
13:32 lucian i'd welcome someone else doing that
13:32 lucian whiteknight: yep. the py2 and py3 divide is nowhere near p5 and p6
13:32 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
13:32 lucian py3 mostly just deprecates ascii strings and old-style classes
13:33 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
13:33 whiteknight Other compiler ideas, especially Java, have also been drawing some interest
13:33 lucian moritz: that was the intention
13:33 whiteknight moritz: yes, that's what I'm hoping for
13:34 moritz I think that point is worth a bit of additional emphasis on parrot-dev
13:34 moritz will write that later today, unless I forget it or somebody else beats me to it
13:34 lucian moritz: the idea was to use python's ast module
13:34 whiteknight moritz: We have stated a lot of preferences, In the end we have to see what the proposals look like
13:35 whiteknight 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
13:36 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
13:36 whiteknight If students started submitting draft proposals soon, we could get a better idea of what people are thinking
13:36 lucian i'm not entirely confident i can even do it with just having to write the bacnekd
13:37 whiteknight I have a pretty clear idea of what lucian is planning, but some of the other students not so much
13:38 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
13:40 lucian 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 lucian but at the same time, they may very well be much more skilled than me
13:41 whiteknight lucian: You do have the benefit that you've been thinking about and planning this project for weeks.
13:42 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
13:42 moritz so a well thought-out schedule *is* important
13:42 whiteknight we have no shortage of ideas for other projects
13:44 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.
13:45 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 whiteknight If we needed to, we could have two students working on two separate Python compilers, but that seems wasteful to me
13:46 Coke if your primary goal is "code", sure.
13:47 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
13:47 lucian whiteknight: it might not be so wasteful, at the end of gsoc the superior one can be chosen
13:47 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
13:47 whiteknight :)
13:49 lucian whiteknight: it might be even better perhaps if the two projects chose different strategies
13:50 whiteknight lucian: example?
13:51 lucian i was thinking of implementing python objects with hashes and so on, in winxed
13:51 lucian another project could try to muck about with 6model
13:52 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:53 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
13:53 whiteknight and a little bit more abstract of a project than many students might be able to tackle
13:53 lucian whiteknight: oh, both projects would write compilers
13:53 whiteknight oh, okay
13:53 PerlJam joined #parrot
13:54 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
13:54 lucian to rewrite the python 'ast' module in pure python
13:54 lucian moritz: i intend all python objects to be instances of Winxed/parrot classes
13:55 lucian but of course, rewriting 'ast' to pure python isn't exactly a parrot task, more like a PSF task
13:55 lucian although it would be useful to pynie in the long run, to be self-hosted
13:56 PerlJam lucian: Does PSF have monies to give for such a task?
13:56 lucian PerlJam: gsoc does
13:57 lucian but i'm not too worried about pynie depending on python(3)
13:57 lucian it's ubiquitous enough
13:59 rohit_nsit08 joined #parrot
14:00 rohit_nsit08 hello
14:00 whiteknight good morning rohit_nsit08
14:01 rohit_nsit08 whiteknight: hello , good morning
14:01 rohit_nsit08 whiteknight: i configured makefile to make it work with narwhal
14:01 rohit_nsit08 whieknight: it worked
14:02 rohit_nsit08 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:03 rohit_nsit08 whiteknight: sorry this keyboard is messy
14:04 rohit_nsit08 whiteknight: not sitting on my system
14:04 whiteknight rohit_nsit08: awesome, I'm glad to hear that
14:05 whiteknight 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 marcel_r joined #parrot
14:06 whiteknight good morning marcel_r
14:06 marcel_r whiteknight: Good morning.
14:07 rohit_nsit08 whiteknight: hmm.. we can have more people after the summers when some work will be done on it
14:23 ambs joined #parrot
14:29 benabik joined #parrot
14:31 TiMBuS left #parrot
14:39 plobsing joined #parrot
14:40 benabik left #parrot
15:07 rurban_ joined #parrot
15:07 he__ left #parrot
15:08 GodFather joined #parrot
15:10 whiteknight holycrap we're getting a lot of interested students this year
15:10 rurban left #parrot
15:10 rurban_ is now known as rurban
15:10 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
15:10 whiteknight atrodo: it appears that way, yes
15:12 whiteknight oooh, another cool project idea I just thought of was getting Parrot set up as a CORBA provider
15:14 whiteknight It worries me to think about how many slots google is going to assign us
15:15 Coke (CORBA) AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI​IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIGGGGGGGGGG​GGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHH​HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
15:15 Coke (sorry, flashback to my days at Enron.)
15:15 whiteknight ...I'll take that as a "no"
15:17 plobsing whiteknight: how about POSIX bindings (or a subset thereof)?
15:17 whiteknight plobsing: that could be a pretty big project
15:18 lucian a very useful one, though
15:18 plobsing you can slice it up into smaller parts and still have it useful
15:18 plobsing mqueues, for example, isn't all that big
15:18 Patterner left #parrot
15:18 Psyche^ joined #parrot
15:18 Psyche^ is now known as Patterner
15:19 whiteknight Are you talking about implementing some of the actual standards, or providing interfaces to posix system libraries?
15:20 plobsing providing interfaces, preferably in a unified way
15:20 lucian whiteknight: why reimplement? libc is there
15:21 plobsing lucian: windows?
15:21 lucian plobsing: meh, there's wrappers and such
15:21 lucian CPython's os module is relatively thin
15:22 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:23 cgaertner joined #parrot
15:23 cgaertner whiteknight: ping
15:24 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:25 NotFound Some things are fairly easy to access via nci.
15:26 plobsing NotFound: easy to access isn't the same thing as pre-packaged
15:26 plobsing and some things aren't
15:26 plobsing errno, for example, is quite tricky
15:27 NotFound See for example the --detach option of examples/fly, which does fork and setsid if available,
15:27 whiteknight cgaertner: pong
15:28 whiteknight 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
15:29 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
15:29 whiteknight I've been wanting GObject bindings for a while now, and we've definitely talked about a Vala compiler before
15:30 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 ambs left #parrot
15:32 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 cgaertner however, that probably won't fill the whole summer, thus the idea of re-targetting valac
15:32 lucian well, gobject-introspection for parrot working *perfectly* might take the whole summer
15:33 lucian and if that worked, i don't see the point of retargeting vala, myself
15:33 whiteknight lucian: We loves us some compilers
15:34 whiteknight 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
15:34 lucian vala libraries get gobject-introspection for free
15:34 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
15:34 lucian valac is fast and supported by the first party
15:35 whiteknight lucian: yeah, I know what you are saying
15:35 lucian if parrot has gobject-introspection, it can talk to all vala libs
15:35 whiteknight GObject is really the gold prize here
15:35 whiteknight A few dynpmcs, GObject and GObjectClass could form their own sort of metamodel, or minimetamodel
15:35 lucian i really see no advantage whatsoever (now at least) to vala running on top of parrot
15:36 cgaertner lucian: what's the benefit of running any language on top of parrot if you could just create bindings to another runtime?
15:37 whiteknight cgaertner: interoperability is a huge benefit
15:37 whiteknight easy, transparent interoperability
15:37 lucian cgaertner: this is a very different case
15:37 sorear bindings to other runtimes inherently suck. when they work at all, you're hapy
15:38 lucian cgaertner: after gobject were implemented on top of parrot, then vala-pir would make sense
15:38 lucian of course, it's your project
15:38 sorear <- wrote much of the Perl 5 binding
15:40 cgaertner I was just brainstorming ideas
15:40 cgaertner I agree that GObject is a special case as it it already is something of an interoperability framework
15:40 cgaertner however, getting Vala on Parrot natively also has merits...
15:41 whiteknight cgaertner: it's looking like good GObject bindings is the best project idea, at least that we've talked about so far
15:42 whiteknight 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)
15:42 whiteknight Even if you only had time for something trivial, like bindings to libnotify, that would be fun
15:43 lucian there's a bunch of overrides you might want to implement for g-i
15:43 lucian pygobject-introspection had to deal with quite a few
15:43 cgaertner lucian: do you know how much GObject Introspection has stabalized - last I checked, it was still a moving target...
15:44 cgaertner *stabilized
15:45 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 whiteknight then, Parrot is a native GObject producer and consumer all the way down
15:46 lucian cgaertner: it seems to be stable enough for gtk and webkit to work from python
15:47 cgaertner lucian: you don't necessarily need to support introspection to use such libs...
15:48 lucian cgaertner: sure you do, realistically
15:48 lucian it's much easier, for one
15:48 lucian and it's the preferred way in gnome3>
15:49 shell joined #parrot
15:49 shell hello
15:49 whiteknight hello shell
15:50 shell I am planning to join the GSoC 2011 of Parrot
15:50 shell how to update the idea list?
15:51 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
15:51 shell ok
15:51 plobsing but that list is more for developpers to communicate ideas to students, not the reverse
15:51 whiteknight shell: Ideas don't need to be on the wiki. Just tell us what you want to do
15:51 whiteknight we love talking to students about ideas
15:51 plobsing it isn't official by any means
15:51 shell I would like to migrate the V8 benchmark to various Parrot languages
15:52 shell such as Perl,Python,PHP
15:52 whiteknight oh, okay. We got your email
15:52 whiteknight shell: Is that a project that requires Parrot, or something that would be for those other languages?
15:52 lucian aren't the v8 benchmarks ported from older benchmarks?
15:52 lucian and aren't those already available in said languages?
15:52 shell code.in.the.shell@gmail.com
15:52 * lucian should stop shutting down ideas
15:53 lucian s/shutting/shooting/
15:53 whiteknight lucian: yes. you already have your idea!
15:53 plobsing shell: while we do like benchmarks, half of the languages you listed don't yet have parrot implementations
15:53 moritz shell: how js specific are those benchmarks?
15:53 shell i haven't heard that
15:53 moritz from what I remember of the V8 design, it has some optimizations that are very JS specific
15:54 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
15:54 moritz ie a C level data structure for efficiently creating some common types of objects
15:54 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
15:55 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
15:55 lucian shell: it might be interesting to have a pir/winxed version of http://shootout.alioth.debian.org/
15:55 moritz plobsing: well, I expect that they taylor at least some part of their benchmarks to track their progress
15:55 lucian see how parrot stacks up
15:55 cotto left #parrot
15:55 shell Maybe I need more consideration.
15:56 moritz I don't know it, which is why I'm asking :-)
15:56 lucian you can safely ignore me
15:56 whiteknight shell: Tell us a little bit about yourself. What is your background? How did you hear about Parrot?
15:56 shell that benckmark doesn't seems to be enough
15:57 shell I learnt that google use V8 benchmark to improve the JS engine
15:57 shell OK
15:57 shell I learnt it from the Ruby community
15:58 shell and I do really want a VM running all dynamic languages
15:58 shell I think they should be cooperated
15:59 whiteknight we think so too :)
15:59 shell I've been hacking(or just taking a look at) many compilers
16:00 shell I built some experimental compilers with antlr
16:00 shell My major languages are Ruby,PHP and C#
16:01 shell and...I can't figure out more right now
16:01 woosley left #parrot
16:01 shell I am focusing on the performance of VMs
16:02 plobsing shell: PHP on Parrot maybe?
16:02 shell that's ok
16:02 plobsing C# on parrot wants an implementation too
16:03 shell I found the a CIL implementation on Parrot
16:03 shell I don't know how is it right now
16:04 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 plobsing it stands no chance of working reasonably today
16:04 plobsing reviving that would also be an interesting task
16:04 shell I do think so
16:04 shell turn back to the V8 benchmark
16:05 shell how do you view it
16:06 shell .....
16:06 whiteknight shell: it doesn't seem like a big enough project for a whole summer
16:07 shell I planned to migrate it to about 10 to 20 languages...........
16:07 shell not a single one
16:07 whiteknight shell: That sounds fun, but that's not really a Parrot project to be writing a benchmark for the Ruby language, etc
16:07 plobsing Parrot doesn't run 10 to 20 languages yet, let alone performantly
16:07 shell Maybe many of them doesn't run on Parrot
16:07 plobsing as such, most of those will not be immediatly useful
16:08 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?
16:09 shell the Antlr one
16:09 plobsing shell: the shootout bank of tests already provides a standard set of benchmarks across many languages
16:09 shell since i've got some experience with Antlr
16:09 shell really?
16:10 shell would you please give the the url of those benchmarks
16:11 lucian shell: http://shootout.alioth.debian.org/
16:11 shell oh,you mean that
16:12 shell I need think twice
16:13 shell thank you
16:14 dodathome left #parrot
16:15 hudnix left #parrot
16:16 hudnix joined #parrot
16:24 hudnix left #parrot
16:27 cotto_work ~~
16:28 dodathome joined #parrot
16:30 hudnix joined #parrot
16:33 whiteknight hello cotto_work. We've been absolutely swamped with GSoC students this morning
16:33 whiteknight swamped
16:35 * lucian has been doing much of that
16:35 lucian cotto_work: (what does ~~ mean, btw?)
16:35 cotto_work whiteknight: I saw.  It's insane.
16:35 cotto_work lucian: waving hello
16:36 atrodo or smart matching, depending on the context
16:36 lucian i see
16:37 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?
16:37 whiteknight and we're so early in the process still, we could end up with a crazy amount of applications
16:38 whiteknight yes, a wiki page might be quite good
16:40 atrodo when do we know the number of slots we get?
16:43 shell left #parrot
16:47 cotto_work how does this look: http://trac.parrot.org/parrot​/wiki/ParrotGSoC2011Students
16:48 * atrodo signs up for perl7
16:49 cotto_work atrodo: not INTERCAL?
16:50 atrodo isn't it the same thing?
16:50 cotto_work you'll have to talk to TimToady about that
16:51 dalek tracwiki: v39 | cotto++ | GSoc2011
16:51 dalek tracwiki: http://trac.parrot.org/parrot/wiki/​GSoc2011?version=39&amp;action=diff
16:51 dalek tracwiki: v40 | cotto++ | GSoc2011
16:51 dalek tracwiki: http://trac.parrot.org/parrot/wiki/​GSoc2011?version=40&amp;action=diff
16:51 dalek tracwiki: v1 | cotto++ | ParrotGSoC2011Students
16:51 dalek tracwiki: http://trac.parrot.org/parrot/wiki/ParrotG​SoC2011Students?version=1&amp;action=diff
16:51 dalek TT #2066 created by hwxurhhnhqy2++: Go For Dating To Find Out Your Perfect Partner
16:51 dalek TT #2066: http://trac.parrot.org/parrot/ticket/2066
16:51 dalek TT #2067 created by sxmzwzasylwiichb5++: Security features along with Electric Patio Heaters
16:51 dalek TT #2067: http://trac.parrot.org/parrot/ticket/2067
16:51 cotto_work deleted and deleted
16:52 * sorear wonders when ey needs to think about gsoc
16:55 plobsing left #parrot
16:57 cotto_work sorear: what are you thinking?
16:58 mtk left #parrot
17:02 plobsing joined #parrot
17:06 mj41 left #parrot
17:06 cotto_work despammed
17:07 lucian left #parrot
17:09 ShaneC1 joined #parrot
17:15 plobsing left #parrot
17:17 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:18 atrodo cotto_work> I have a few minutes, I'll try to
17:20 sorear cotto_work: right now?  schoolwork is on 80% of my brain
17:21 cotto_work atrodo: much appreciated
17:21 hercynium joined #parrot
17:22 dalek tracwiki: v2 | cotto++ | ParrotGSoC2011Students
17:22 dalek tracwiki: http://trac.parrot.org/parrot/wiki/ParrotG​SoC2011Students?version=2&amp;action=diff
17:23 Eduardow left #parrot
17:28 dmalcolm joined #parrot
17:31 Eduardow joined #parrot
17:34 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 whiteknight at least, start putting out some feelers for what kinds of projects you want to get involved in
17:36 atrodo by my count so far, I count 9 or 10 students so far
17:37 whiteknight at least that many
17:38 whiteknight 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.
17:39 rohit_nsit08 whiteknight: hi , i was away for some time , what is that list tha dalek put the link of ?
17:40 atrodo It's a wiki page of interested students.  I'm editing right now
17:40 whiteknight atrodo: I  just added a bunch
17:40 atrodo whiteknight> great
17:40 cotto_work oh noes
17:40 whiteknight rohit_nsit08: We're trying to keep track of all our students and the projects they are interested in
17:40 rohit_nsit08 atrodo: hi, how can i put my name on that ?
17:41 atrodo rohit_nsit08> It's on my list, so we'll see how the conflicts go
17:41 whiteknight rohit_nsit08: I added you
17:41 whiteknight atrodo: sorry, I'm sure there will be several conflicts
17:41 cotto_work atrodo: save a copy before submitting.  trac is lta about conflicting edits
17:41 whiteknight rohit_nsit08: don't worry, you're definitely on our list!
17:41 atrodo cotto_work> I was going to anyways
17:41 rohit_nsit08 whiteknight: thanks :-)
17:42 atrodo whiteknight> I'll load your changes and do the conflict resolve
17:42 plobsing joined #parrot
17:48 contingencyplan joined #parrot
17:48 whiteknight rohit_nsit08: make any progress with narwhal and cafe?
17:52 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 rohit_nsit08 in end i  mailed the problem with my interpretation to zaach , he replied to my yesterdays's mail today
17:53 rohit_nsit08 whiteknight: i compiled parrot today
17:53 dalek tracwiki: v3 | whiteknight++ | ParrotGSoC2011Students
17:53 dalek tracwiki: http://trac.parrot.org/parrot/wiki/ParrotG​SoC2011Students?version=3&amp;action=diff
17:53 dalek tracwiki: v4 | whiteknight++ | ParrotGSoC2011Students
17:53 dalek tracwiki: http://trac.parrot.org/parrot/wiki/ParrotG​SoC2011Students?version=4&amp;action=diff
17:53 dalek tracwiki: v5 | atrodo++ | ParrotGSoC2011Students
17:53 dalek tracwiki: http://trac.parrot.org/parrot/wiki/ParrotG​SoC2011Students?version=5&amp;action=diff
17:53 dalek tracwiki: v6 | atrodo++ | ParrotGSoC2011Students
17:53 dalek tracwiki: Removed a duplicate for rohit_nsit08
17:53 dalek tracwiki: http://trac.parrot.org/parrot/wiki/ParrotG​SoC2011Students?version=6&amp;action=diff
17:54 atrodo There, that's everyone I could find in email
17:57 cotto_work atrodo++
17:59 lucian joined #parrot
18:08 cgaertner atrodo: my nick is missing a letter: cgaetner -> cgaertner
18:09 atrodo cgaertner> fixed.  sorry about that, not even sure how that happened
18:09 dalek tracwiki: v7 | atrodo++ | ParrotGSoC2011Students
18:09 dalek tracwiki: http://trac.parrot.org/parrot/wiki/ParrotG​SoC2011Students?version=7&amp;action=diff
18:11 bbatha joined #parrot
18:12 cgaertner btw, does parrot still get parts of its configuration from the installed perl?
18:12 bbatha left #parrot
18:12 cotto_work cgaertner: yes
18:16 cgaertner cotto_work: is it possible to manually override these values?
18:19 Util left #parrot
18:20 tadzik left #parrot
18:20 PerlJam left #parrot
18:20 cotto_work cgaertner: do you mean when running Configure.pl?  Yes, if so.
18:22 dodathome left #parrot
18:22 cgaertner cotto_work: yes, that's what I meant
18:23 cgaertner last time I built parrot on windows, I went with cygwin because that's where my perl comes from
18:23 cgaertner however, I would have preferred using MinGW instead...
18:24 atrodo cgaertner> Have you tried strawberry perl?  That should have everything you need (should)
18:25 Coke atrodo: last time I tried, the build didn't work on straw
18:25 Coke configure died.
18:25 atrodo nevermind
18:25 Coke (could just be me)
18:25 marcel_r Strawberry+MinGW worked for me.
18:27 * atrodo decides to try it himself
18:28 cgaertner Strawberry comes with its own MinGW, correct?
18:28 cotto_work yes
18:29 cotto_work http://trac.parrot.org/par​rot/wiki/Platforms/Windows
18:29 cgaertner well, I don't want that ;)
18:35 tadzik joined #parrot
18:56 ambs joined #parrot
19:03 dukeleto ~~
19:04 rohit_nsit08 dukeleto: hi
19:04 * dukeleto was hiding under a rock called "vacation" for the last 1.5 days
19:04 dukeleto rohit_nsit08: howdy
19:05 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
19:05 rohit_nsit08 rohit_nsit08 : installed narwhal on my system and jison also , but facing a problem with making "cafe"
19:06 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
19:07 dukeleto rohit_nsit08: with Jaspers, i decided to go with PEG.js instead of cafe and friends
19:07 dukeleto rohit_nsit08: but whatever you can get to work and feel productive with, will work
19:07 dukeleto rohit_nsit08: the idea is that PEG.js already has a Javascript parser
19:07 dukeleto rohit_nsit08: so you don't have to write one
19:08 dukeleto rohit_nsit08: do you have a github account?
19:08 lucian dukeleto: i thought cafe was already a js parser using jison
19:08 rohit_nsit08 dukeleto: i don't have account , but i think i need one for cloning the repository
19:09 rohit_nsit08 dukeleto: i mean i think i don't need
19:11 rohit_nsit08 dukeleto: i was looking for some documentation to get a idea about parrot
19:11 rohit_nsit08 dukeleto : what things do i need to know about parrot for my javascript compiler ?
19:13 lucian rohit_nsit08: some PIR and/or winxed, depending what you choose as your target
19:14 dukeleto rohit_nsit08: you should try and understand one of the languages that already runs on Parrot
19:14 dukeleto rohit_nsit08: taking a look at Lua could be a nice example
19:14 dukeleto rohit_nsit08: https://github.com/fperrad/lua
19:14 rohit_nsit08 lucian: i think PIR will be good , i heard that it's more atomic
19:14 dukeleto rohit_nsit08: PIR is like a very friendly assembly language
19:15 dukeleto 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
19:15 dukeleto rohit_nsit08: last time I looked, more people were using PEG.js and it had more recent commits
19:15 dukeleto rohit_nsit08: both could solve the problem
19:18 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:19 lucian rohit_nsit08: that's a limitation of rhino
19:19 rohit_nsit08 lucian : and narwhal is using rhino engine
19:19 lucian yes. but it can also use others, i think
19:19 lucian and there's nodejs
19:20 tadzik left #parrot
19:21 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
19:22 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:23 lucian rohit_nsit08: there's some docs. check the parrot repo, /docs/
19:23 lucian also, docs.parrot.org
19:24 rohit_nsit08 lucian: i have found a PIR book :-)
19:25 lucian that too
19:25 rohit_nsit08 lucian: what is PCT?
19:25 lucian rohit_nsit08: Parrot Compiler Tools. since you're writing your compiler in JS itself, you can ignore PCT
19:26 rohit_nsit08 lucian: hmm, ok
19:28 rohit_nsit08 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:29 lucian rohit_nsit08: i don't understand that. PIR compiles to "parrot bytecode" roughly
19:29 lucian so do all languages, eventually
19:30 rohit_nsit08 lucian: so what i need to do is to get the PIR code from javascript ,?
19:31 lucian rohit_nsit08: your javascript compiler (running on narwhal or node) parses javascript code and generates PIR (or something else similar)
19:31 lucian then that PIR gets compiled by parrot and it can run
19:32 rohit_nsit08 lucian : got it , PIR will be compiled further by parrot ,
19:32 lucian yeah, pretty much
19:33 lucian you'll also need some sort of object system that this compiler will generate code for
19:34 rohit_nsit08 lucian : pls tell me something  about the object system
19:35 rohit_nsit08 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
19:35 lucian rohit_nsit08: well, "object" as defined by javascript
19:35 lucian numbers, strings, Objects, Arrays, etc
19:36 lucian the javascript versions of these don't exist on parrot right now
19:36 lucian so you will likely have to wrap the parrot objects so that they appear more javascript-like
19:37 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
19:38 rohit_nsit08 lucian : i am familiar with javascript objects and data types
19:38 lucian its object system is somewhat similar to js's
19:38 lucian also i should remind you, take what i say with a grain of salt, i'm just another student
19:38 rohit_nsit08 lucian : i need to see it's application in compiler design,
19:39 rohit_nsit08 lucian: ya no prob, u have more experience than me :-)
19:40 rohit_nsit08 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
19:40 lucian i just read stuff
19:41 rohit_nsit08 lucian: hmm.. k , in that case i will consult more about this whiteknight ,
19:41 rohit_nsit08 lucian: with* whiteknight
19:42 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:43 whiteknight we're all willing to answer questions
19:43 rohit_nsit08 whiteknight: hi
19:43 whiteknight I'm happy to see rohit_nsit08 being so interested in this project
19:43 whiteknight hello
19:43 dolmen left #parrot
19:43 whiteknight Great article for all GSoC students to read: http://google-opensource.blogspot.com/2011/03/do​s-and-donts-of-google-summer-of-code.html?utm_so​urce=feedburner&amp;utm_medium=feed&amp;utm_camp​aign=Feed%3A+GoogleOpenSourceBlog+%28Google+Open​+Source+Blog%29&amp;utm_content=Google+Reader
19:44 whiteknight http://google-opensource.blogspot.com/2011/03​/dos-and-donts-of-google-summer-of-code.html
19:44 whiteknight stupid long links
19:44 zby_home joined #parrot
19:44 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:45 lucian rohit_nsit08: afaik that limitation is only true for compilation mode
19:45 lucian if you were to set rhino in interpretation mode, it should be fine
19:45 lucian slower, but fine
19:45 whiteknight rohit_nsit08: okay, that's weird. Did he tell you which version of narwhal to use?
19:46 rohit_nsit08 lucian : ya it comes when i am trying to make cafe
19:46 rohit_nsit08 whiteknight: yes
19:46 rohit_nsit08 whieknight : next time i''ll cc u so that u can have a look too
19:46 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
19:47 rohit_nsit08 whiteknight: dukeleto also pointed to it , that it's a problem with rhino
19:49 tadzik joined #parrot
19:50 lucian i'd really expect rhino optimisation level to be configurable in narwhal
19:52 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
19:52 lucian rhino doesn't have the 64kb classfile limitation in interpretation mode
19:53 marcel_r left #parrot
19:55 rohit_nsit08 lucian: i'm getting error while $make cafe , can i run narwhal in interpretation mode to fix this
19:56 lucian you might want to ask narwhal devs, i don't really know how
19:56 lucian i've just embedded rhino and know that it's possible
20:00 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
20:02 rohit_nsit08 lucian: loll, i switching between nodejs , solving problems of both one by one :-) , i should settle asap
20:02 rohit_nsit08 lucian : i mean switching between narwhal and nodejs
20:02 lucian what was the problem with node?
20:03 whiteknight what exactly is narwhal, and why not use rhino directly?
20:04 whiteknight that's the part of all this that I don't understand
20:04 bbatha joined #parrot
20:04 lucian whiteknight: narwhal implements commonjs and a few other things
20:04 lucian without it, you'd have to use java APIs from rhino
20:04 lucian for file access and so on
20:05 whiteknight okay
20:06 lucian node does similar for v8, but it's a lot more frugal. doesn't quite implement commonjs
20:06 whiteknight okay
20:07 whiteknight that makes more sense
20:07 whiteknight our JS compiler is going to be 100 times cooler
20:08 rohit_nsit08 whiteknight: :-)
20:09 ambs left #parrot
20:10 lucian whiteknight: how so?
20:11 whiteknight lucian: I'm making bold predictions that rohit_nsit08 is going to have to rise up to meet :)
20:12 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!
20:13 whiteknight lucian: I don't know, but this does seem like a good time for unbridaled enthusiasm
20:13 whiteknight when we get closer to the deadline at the end of the summer, enthusiasm might be in short supply
20:13 lucian i see
20:14 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 :)
20:14 lucian i see. but it's not. it'll suck immensely in fact
20:14 whiteknight blah
20:14 whiteknight rohit_nsit08: a reference about the JS object model?
20:14 lucian it will be by far the worst python interpreter still being worked on
20:15 whiteknight lucian: the worst asymptotically, or just the worst one at the end of the summer?
20:15 whiteknight and how do we define "worst"?
20:15 lucian the least cool, with the least features, the least compatible
20:15 whiteknight and shutup damnit. It's going to be awesome
20:15 whiteknight A W E S O M E
20:15 whiteknight say it with me
20:15 whiteknight "awesome"
20:16 pjcj left #parrot
20:16 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?
20:16 rohit_nsit08 whiteknight: awesome loll
20:16 rohit_nsit08 whiteknight: ya i have used them
20:16 whiteknight basically javascript objects are hashes
20:17 whiteknight 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
20:17 whiteknight rohit_nsit08: not at first, no
20:17 Coke Sounds like lucian really isn't interested in the project. am I misreading?
20:17 whiteknight Coke: yes, you're misreading
20:18 rohit_nsit08 coke : hi
20:18 Coke ok. perhaps you can understand him, then. ;)
20:18 whiteknight Coke: he's being realistic. One coder working over three months isn't going to produce CPython
20:18 Coke rohit_nsit08: hio
20:21 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.)
20:21 whiteknight lucian: This is just a summer project. Nobody expects you to move mountains.
20:22 Coke (mountains) nope.
20:22 Coke (er, to be clear, I agree with whiteknight about his mountains comment.)
20:22 whiteknight lucian: What we are most interested in is establishing a Python presence on Parrot
20:22 lucian yep
20:22 lucian Coke: i see. well, parrot isn't exactly great either
20:22 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
20:22 lucian but it's not much worse than CPython, architecturally
20:23 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
20:23 lucian Coke: heh. i see greener grass every day :)
20:24 lucian whiteknight: that sounds so lovely
20:24 rohit_nsit08 left #parrot
20:24 lucian Coke: i tend to be realistic and skeptical, i guess
20:24 whiteknight lucian: and then we can go kill people *maniacal laughter*
20:25 * lucian reaches for the straightjacket
20:25 lucian 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 #parrot
20:26 lucian parrot has few unique advantages, but it has the potential to make those stronger
20:27 lucian i'm speaking specifically of: implementing dynamic languages without interpretation, and possible interoperability
20:27 lucian as long as it'll get reasonably fast at some point, it's fine
20:28 lucian btw, what's the status of parrot on arm?
20:28 whiteknight lucian: no status
20:28 stomper joined #parrot
20:28 stomper left #parrot
20:28 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 #parrot
20:29 whiteknight you'll try Parrot on ARM?
20:29 * lucian has a http://www.genesi-usa.com/products/smartbook
20:29 lucian i'm not planning to do it for GSoC if that's what you're asking
20:29 rohit_nsit08 sorry , connection got lost for few seconds
20:29 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
20:29 whiteknight lucian: oh, cool
20:30 whiteknight lucian: I suspect we're going to need something to make it work with th eGC
20:30 whiteknight but that's the only major stumbling block I can forsee
20:30 hudnix left #parrot
20:30 lucian hmm. does the gc make x86 assumptions?
20:32 Hackbinary left #parrot
20:34 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!
20:34 * lucian smugly struts around
20:34 cgaertner that way, it should be possible to load libs at runtime which automagically install class PMCs with do-the-right-thing[TM]
20:35 cgaertner *which
20:35 lucian cgaertner: yeah, that's what pygobject-introspection does, mostly
20:35 lucian sorry if i was a bit of an asshole earlier
20:35 cgaertner I didn't read it that way, so nevermind...
20:36 whiteknight lucian: take a look in src/gc/system.c, if you're brave
20:37 whiteknight 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 #parrot
20:37 whiteknight lucian: that function used to be written in Morgul, but we translated it back to C
20:38 lucian Morgul?
20:38 lucian heh. there's ifdefs for sparc and hpux, but not arm
20:38 lucian funny
20:39 whiteknight "TT #271: This needs to be fixed in a variety of ways"
20:39 whiteknight I added all the comments in that function. When I first came to Parrot that entire file was almost completely uncommented
20:39 lucian my C skills aren't good enough to try and fix that, but i can certainly help debug/test
20:40 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 whiteknight lucian: yeah, if it doesn't work on ARM we are going to need to add in a new branch there to support it
20:41 whiteknight lucian: we may need to write a custom assembly function, or something like that
20:41 lucian bleh. i'd much rather not
20:41 lucian ARM assembly is a tad fragmented
20:41 whiteknight ha, I can do it. you would just have to help with testing
20:42 ambs joined #parrot
20:42 whiteknight again, that's only if you were having problems
20:42 lucian yeah. i'll try soon
20:42 lucian i'm a bit worried about including ARM assembly anyway
20:43 whiteknight it may not require assembly
20:43 lucian there's flavours of arm, and Thumb, and Thumb-2 and ThumbEE
20:43 lucian and so on
20:43 whiteknight we just have to play with it and see what happens
20:43 cgaertner it should also be fairly simple to provide a gobject wrapper for PMCs, providing access to the vtable functions
20:43 lucian although realistically, armel should be enough
20:43 whiteknight I'm going to read through the Boehm collector source to see what they do
20:43 cgaertner together with dedicated wrappers for some core PMCs, it should be possible to create a reasonable wrapper GObject wrapper for Parrot...
20:44 lucian cgaertner: yeah, it's very hard, just tedious
20:44 cgaertner ^not(?)
20:44 lucian for it to be usable, you'll need an override system
20:44 lucian yes, not
20:45 lucian also, gobject creation is funny
20:45 lucian and afaik gobject is a bit more dynamic than parrot's Objects
20:45 lucian not sure
20:45 bbatha left #parrot
20:49 lucian bah, mono memory usage is silly
20:49 bbatha joined #parrot
20:50 pjcj joined #parrot
20:55 whiteknight left #parrot
21:12 PerlJam joined #parrot
21:25 TiMBuS joined #parrot
21:31 hercynium left #parrot
21:32 mj41 joined #parrot
21:32 benabik joined #parrot
21:38 rohit_nsit08 goodnight guys :-) see u tomorrow
21:40 rohit_nsit08 left #parrot
21:40 Andy_ left #parrot
21:41 theory left #parrot
21:43 theory joined #parrot
21:44 bacek joined #parrot
21:52 cgaertner left #parrot
22:15 hudnix joined #parrot
22:27 nwellnhof joined #parrot
22:27 nwellnhof ~
22:27 ambs left #parrot
22:29 fperrad left #parrot
22:31 lucian left #parrot
22:31 Hackbinary joined #parrot
22:32 theory left #parrot
22:43 whiteknight joined #parrot
22:49 cosimo joined #parrot
23:02 mj41 left #parrot
23:07 rurban_ joined #parrot
23:10 rurban left #parrot
23:10 rurban_ is now known as rurban
23:26 hercynium joined #parrot
23:27 PacoLinux left #parrot
23:28 PacoLinux joined #parrot
23:31 whiteknight plobsing: ping
23:31 plobsing whiteknight: pong
23:31 bbatha left #parrot
23:31 whiteknight I'm slowly tracking down that problem in imcc_compreg_pmc
23:32 woosley joined #parrot
23:32 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
23:33 whiteknight if that branch is taken, the function returns without ever unblocking GC. That's the codepath that's causing problems
23:34 plobsing yes. that's the problem. which means the workaround really wasn't.
23:34 plobsing and the location of the problem is essentially unknown
23:35 nopaste "Whiteknight" at 192.168.1.3 pasted "this makes the imcc_compreg_pmc branch build" (57 lines) at http://nopaste.snit.ch/38662
23:37 whiteknight it also suggests that we do still have a problem in master
23:37 plobsing why does it suggest that?
23:38 plobsing 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:41 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.
23:42 plobsing whiteknight: where in master? I don't see it in src/packfile/api.c
23:45 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:48 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.
23:57 Coke what should be the failure mode if git command line isn't available? empty sha1? or abort the config?
23:57 hercynium left #parrot
23:58 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 lucian joined #parrot

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

Parrot | source cross referenced