|
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
|
|||