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
Set by moderator on 27 March 2011.
plobsing that's the result of me trying to reduce the core ops last year. People writing PIR protested that it was too inconvenient. 00:01
so the getstd ops stayed
bacek ParrotInterp.stdfoo_handle methods aren't tested. And doesn't work apparently. 00:02
cotto_work charming
whiteknight bacek: those methods do work. I use them in Rosella every day 00:03
they might not be tested, but they do work 00:04
nopaste "Whiteknight" at 192.168.1.3 pasted "fib benchmark with new Rosella Memoize library" (44 lines) at nopaste.snit.ch/39231 00:05
whiteknight (abrupt change of topic) 00:06
soh_cah_toa so i've been editing a lot of the docs in /docs/dev. is there a max line length i should abide by? it looks like there is 00:12
whiteknight I think it's 78 00:14
78 or 80
aloha 94
whiteknight damnit
soh_cah_toa why thank you aloha
it also looks like they all should have a blank line at the end as well 00:17
cotto_work soh_cah_toa: run make codingstd_tests and it'll yell at you as needed
If it doesn't complain about something we don't like and could reasonably detect, that's a bug. 00:18
kid51 soh_cah_toa: In response to your question: tinyurl.com/3foqrn6
cotto_work I'd like to see a gsoc project to update all of our documentation. I don't think it'd take a whole summer, but it'd be nice to get that Augean stable cleaned out. 00:19
soh_cah_toa that's what i've been doing actually
cotto_work soh_cah_toa++ 00:20
we have too many lies and half-truths
soh_cah_toa i've been fixing some grammar issues, format code errors, abbreviations used before explaining what it stands for, etc. 00:21
also, you don't need =cut at the end if there's no code right? just a pod file
cotto_work soh_cah_toa: I encourage you to try to match the docs to the code and ask (or update it yourself) if you see any discrepancies.
soh_cah_toa: podchecker can tell you that. 00:22
soh_cah_toa ok
match the docs to what code?
cotto_work whatever code the docs cover
e.g. if you're reading about pbc, check out the packfile code and try to figure out if it does what the docs say 00:23
soh_cah_toa i see, okay
do they all need they vim comments at the end? e.g. expandtab, shiftwidth, etc. b/c some do and some don't 00:24
*the
nopaste "kid51" at 192.168.1.3 pasted "t/src/extend_vtable.t: FAIL on Darwin/PPC with gcc for cc, g++ for link and ld" (101 lines) at nopaste.snit.ch/39238
cotto_work soh_cah_toa: which ones? We have a test that's supposed to make sure the codas are present. 00:25
soh_cah_toa docs/dev/c_functions.pod 00:26
docs/dev/headerizer.pod
docs/dev/infant.pod
a few others i think too
some aren't all the same. for instance, some have tw=78 others don't 00:27
there's also a lot of broken links in infant.pod. what should i do about those? 00:28
cotto_work docs/pdds/pdd07_codingstd.pod specifies which files should have which codas
nopaste "kid51" at 192.168.1.3 pasted "t/src/extend_vtable.t: FAIL on Darwin/PPC with gcc for cc, g++ for link and ld" (113 lines) at nopaste.snit.ch/39239
soh_cah_toa oh good
cotto_work I'm not sure that file is still useful. bacek, should we nuke docs/dev/infant.pod? 00:29
bacek cotto_work, I think it can stay. We are using "Variant 1 - C stack walking" 00:31
cotto_work bacek: ok 00:32
soh_cah_toa docs/pdds/pdd07_codingstd.pod doesn't specify the correct coda for pod files. only for source code
cotto_work soh_cah_toa: do any pod files have codas? They're most useful for code. 00:33
soh_cah_toa yeah
cotto_work heads home. I'll backscroll. 00:34
soh_cah_toa sure, i gotta eat dinner anyway
kid51 I doubt we need codas for .pod files. If the formatting is bad, it's usually self-evident. 'pochecker %' gets most (but not all) other problems. 00:35
we need codas for .pl .pir .pasm .c
00:42 bubaflub joined 00:45 khisanth_ joined 00:47 Khisanth left
soh_cah_toa kid51: so should i remove the codas from pod files, then? 00:51
kid51 Well, if they're there, please leave them. 00:54
soh_cah_toa okay
kid51 Maybe they serve some purpose of which I am not fully aware.
After all, we know that the major problem with the docs is content, not form ;-) 00:55
soh_cah_toa if that's the case then it must be a MAJOR problem
cotto ~~ 00:57
00:58 mikehh joined
dalek rrot/jit_prototype: cf79a9f | bacek++ | t/compilers/opsc/21-jit-files.t:
Add proper unittest for "end-to-end" jitter testing.
00:59
rrot/jit_prototype: 8496f10 | bacek++ | t/compilers/opsc/data/03.pir:
Embed expected results into test.
rrot/jit_prototype: 9de7241 | bacek++ | t/compilers/opsc/ (5 files):
Add expected results and enable more tests
rrot: 756672c | petdance++ | src/gc/gc_gms.c:
Fixed PARROT_CAN_RETURN_NULL annotations
rrot/jit_prototype: 320a8e7 | bacek++ | t/compilers/opsc/21-jit-files.t:
Don't recreate Ops::File for each test.
01:02
kid51 bacek: Does functionality in the jit_prototype branch depend on having a sufficiently modern LLVM? 01:07
bacek kid51, 2.7 at least 01:08
mikehh bacek: I am setting up Kubuntu 11.04 amd64 beta, I have installed LLVM 2.8, will that work? 01:12
bacek: IOW what do I need to do to test the branches 01:13
kid51 mikehh: that should work 01:14
you just check them out and run them like any other branches
(assuming bacek got rid of hard-coding 2.7 in certain locations) 01:15
mikehh do I need to specify any Configure options?
kid51 No.
Unless you specifically want to build without llvm
perl Configure.pl --help
bacek mikehh, try Configure.pl --llvm-config=llvm-config-2.8 01:16
mikehh 'k will give it a try when I have everything set up - I doubt it will be soon, need some sleep first :-} 01:17
01:21 lucian left 01:27 woosley joined 02:00 whiteknight left
soh_cah_toa can anyone recommend an article or document i can read to get started w/ nqp? 02:14
kid51 soh_cah_toa: If you find one, let me know too! :-) 02:15
cotto soh_cah_toa, I go for its test suite. It covers most of the basics in a fairly minimalist way. 02:16
soh_cah_toa where's that?
plobsing soh_cah_toa: nqp is mostly (strictly?) a subset of Perl 6. IIUC, most of the basic perl 6 stuff should work.
soh_cah_toa yeah, i never thought about that. i do have my perl 6 and parrot essentials book 02:17
cotto I don't know how up-to-date that'll be.
It'll probably help you get the basic idea of how Perl 6 works. 02:18
bubaflub soh_cah_toa: perlgeek.de/blog-en/ has some perl5 to perl6 posts
i believe that's moritz++ 's blog 02:19
cotto yes. That's helpful.
soh_cah_toa yeah, this is pretty good 02:21
bubaflub you can also pop over to #perl6 on freenode and ask there - they're pretty friendly and helpful 02:27
soh_cah_toa good 02:29
bubaflub sorear over on #perl6 recommended looking at squaak 02:31
soh_cah_toa it looks like squaak is for compiling hll's into pir 02:34
cotto squaak is an example hll 02:40
soh_cah_toa oh okay 02:41
02:44 khisanth_ is now known as Khisanth, kid51 left 02:50 dcolish left
sorear cotto: isn't squaak implemented in nqp? 02:51
cotto sorear, yes 02:52
sorear that's why I'm suggesting it 02:53
the squaak tutorial examines a NQP program
soh_cah_toa oh good 02:54
bubaflub sorear++ 03:00
03:23 bubaflub left 03:35 soh_cah_toa left 03:49 mikehh left 03:52 mtk left 03:58 mtk joined 04:12 bubaflub joined 04:22 bubaflub left 04:52 theory left 05:33 mtk left 06:16 fperrad joined 06:34 particle left 06:35 particle joined 06:42 Kulag left 06:43 Kulag joined 06:44 fperrad_ joined 06:47 fperrad left, fperrad_ is now known as fperrad 07:16 dcolish joined 07:50 dodathome joined 07:52 woosley left 09:26 cgaertner joined
cgaertner hello #parrot 09:26
09:41 bacek left 10:08 benabik_ joined 10:09 benabik left, benabik_ is now known as benabik 10:12 lucian joined 10:13 jsut_ joined 10:15 rohit_nsit08 joined 10:18 jsut left 10:30 bacek joined 10:52 rohit_nsit08 left
lucian 'morning 10:54
well, it's 12 here so not really
10:56 benabik_ joined, benabik left, benabik_ is now known as benabik 11:00 benabik_ joined 11:02 benabik left, benabik_ is now known as benabik 11:08 rohit_nsit08 joined
moritz lucian: regarding your mail to parrot-dev... 11:16
lucian moritz: yes?
moritz lucian: 6model is generic enough to do what you want
lucian: you just won't get the same benefits from at as a Perl 6 compiler does
lucian moritz: ok, cool. that's the gist of what everyone's beey saing 11:17
what benefits?
moritz well
in Perl 6, attributes are declared
so an attribute $!foo can be compiled to a slot number
and if the attribute has a native type, it can be stored inline the object 11:18
lucian and 6model has optimisations for that
moritz correct
lucian hmm. well, there are a lot of techniques to achieve similar effects in python/js
substitute "a lot" for "a couple"
v8 calls them hidden classes, PyPy has something more general 11:19
moritz even if you don't use them, 6model gives you a convenient way to write metaclasses
lucian does 6model want to be more general? or will non-perl6 be a second-class citizen forever
metaclasses are trivial in python's object system, can't get more convenient than that really
cgaertner lucian: as I understand it, python's object model on 6model wouldn't be second class - it just would not make use of all of its features... 11:21
11:21 whiteknight joined
lucian ch 11:21
cgaertner: i get that. but there are plenty of other features that python's object model could make use of
cgaertner andwhich of these are currently not in 6model? 11:22
lucian mainly shared structure classes 11:23
or "hidden classes" as v8 calls them 11:24
it's a non-issue for perl6 because it's objects appear to be very static
moritz: cgaertner: this sort of thing morepypy.blogspot.com/2010/11/effic...jects.html 11:26
it's a bit like declared slots, but better
moritz lucian: 6model is generic already 11:28
lucian: jnthn has also implement Perl 6 specific things, but those aren't required
lucian moritz: right. so conceivably i could implement python3-specific things?
moritz lucian: sure 11:29
lucian moritz: and how hard is that?
moritz lucian: I don't know
whiteknight that's the crux
we need to figure out what the effort required there would be 11:30
moritz there's just one way to find out: dig into the sources
lucian ok. actually, "hidden classes" or maps or w/e you want to call them would benefit other languages as well
whiteknight: btw, i shan't have time today for that digging 11:31
whiteknight no worries
rohit_nsit08 whiteknight: hi 11:43
whiteknight good morning rohit_nsit08
rohit_nsit08 lucian: hi
lucian hi
rohit_nsit08 lucian: read your proposal, fantastic :-)
lucian glad you like it. i have a 'meh' attitude towards it
plobsing lucian: the article you linked to describes parrot's current class scheme pretty well 11:44
lucian plobsing: really? i had the impression classes weren't even objects
plobsing lucian: they have a slots lookup mechanism and instances have an array of attributes 11:45
lucian plobsing: hmm 11:46
11:54 cgaertner left, Patterner left 11:55 Psyche^ joined, Psyche^ is now known as Patterner, lateau joined 11:56 lateau left, lateau joined 12:02 cgaertner joined 12:04 benabik_ joined
dalek rrot/jit_prototype: 84e3931 | bacek++ | src/pmc/parrotinterpreter.pmc:
Implement ParrotInterpeter.mark. It's required to be child interpreter independent from parent in terms of memory management.
12:04
rrot/jit_prototype: 226e5bb | bacek++ | src/dynpmc/llvm_engine.pmc:
Don't waste space for attributes. Store LLVMExecutionEngine directly in PMC_data.
rrot/jit_prototype: 5d7a091 | bacek++ | t/compilers/opsc/21-jit-files.t:
Reorganize logical blocks in test as preparation for more-than-one-sub JITting.
12:05
rrot/jit_prototype: 6ba48b4 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Resurrect keep_going flag with handling "branch" and "jump" ops.
12:06 benabik left, benabik_ is now known as benabik
dalek sella/gh-pages: 4aec279 | Whiteknight++ | / (16 files):
conflict
12:24
sella: ca4183b | Whiteknight++ | / (4 files):
fixes for Path class move
sella: 92ae143 | Whiteknight++ | / (4 files):
Add memoize to the build. Fix it so it builds, and at least part of it runs. Add in a benchmark which shows the performance difference between a naive recursive fibonacci, and a version using a memoized Y combinator
sella: debb3fc | Whiteknight++ | / (10 files):
Redo the memoizer cache system. Add in a proxy-based memoization solution in addition to the 'simple' versions
sella: 601bc6a | Whiteknight++ | benchmarks/memoize/proxy.winxed:
Add in a benchmark showing the performance of simple memoizer vs proxy-based. proxy-based is approx 60% slower, but does add more features
cgaertner is it correct that the flag PObj_is_object_FLAG (which decides whether pmc attribute access goes throuh the vtable get_attr/set_attr functions or through the attributes structure) is dynamic, ie modifyable at runtime? 12:33
atupid question, I guess: if it's not, there would be no need for pmc2c to generate attribute accessor macros 12:35
^stupid
13:00 kid51 joined 13:04 ambs joined
cgaertner the question wasn't as pointless as I thought 13:10
what I really need to know is whether PObj_is_object_FLAG can change during a PMC's lifetime
whiteknight cgaertner: yes, it should be modifiable at runtime 13:11
cgaertner: I don't think there's a PIR opcode to do it, so you would need to do it internally
cgaertner: what are you trying to do with it? 13:12
cgaertner whiteknight: I want to be able to poke into parrot's guts from gobject so that I could for example write the Vala-bindings for Rakudo in Vala 13:13
whiteknight ok 13:14
cgaertner therefore I need a gobject extension api
it would have been nice if a pmc could not suddenly becom an object
whiteknight cgaertner: there are macros to set those flags. PObj_is_object_SET and PObj_is_object_CLEAR
oh, you don't want that flag to change? In current Parrot, it doesn't
well, unless the PMC is garbage-collected and recycled to something that isn't an object 13:15
cgaertner right, if it does not change, I can have a GParrotObject subclass of GParrotPMC, and non-object pmcs can't sudeenly become objects
that way, I would only need to check for object-ness once when the PMC passes the boundary into gobject, at not on each access 13:16
whiteknight checking flags is an inexpensive operation
lucian perhaps it's just me, but i'd find being able to consume gobject more interesting
cgaertner lucian: yes, but that gonna be my gsoc proposal - if I do all the work now, I can't get paid for that ;) 13:17
lucian heh. sure you can :) fiddle with the dates in git commits 13:18
cgaertner whiteknight: the operation may be inexpensive, but the interface won't be as nice
whiteknight cgaertner: okay. Good interfaces are fine. I'm just making sure you're not optimizing prematurely
lucian cgaertner: also, i'm not sure a complete parrot-gobject-introspection can be written in 3 months anyway :)
cgaertner lucian: that might well be the case, but didn't the python bindings also start as a gsoc project? 13:19
lucian cgaertner: i don't know, perhaps :) 13:20
cgaertner whiteknight: I also plan to register pmc attributes as gobject properties, and it makes sense to put that logis into GParrotObject instead of GParrotPMC 13:23
the latter gives low-level access, the former is roughly what is exposed to HLLs
and that means I only need to register attributes which correspond to nativa parrot types 13:24
which is actually the only way this can sanely work as gobject properties must have their types registered with gtype
whiteknight: if it won't break existing code, I'm going to assume that object-ness is constant over a pmc's lifetime 13:25
dalek sella/gh-pages: 7126d75 | Whiteknight++ | libraries/future.md:
add memoize library to listing
13:28
13:28 jsut joined
dalek sella/gh-pages: 5dc8a0f | Whiteknight++ | index.html:
remove index.html file
13:29
whiteknight cgaertner: that's a good idea. We probably don't want gobject messing with the attributes of built-in PMC types 13:30
unless exposed through get_attr_str or set_attr_str, those are considered opaque
13:33 jsut_ left
cgaertner btw, this means that I could write the introspection code in Vala, which would however carry a performance penalty because of wrapper-object generation and dynamic type-checking 13:43
whiteknight is there a benefit to doing it in Vala? 13:45
cgaertner whiteknight: using libgirepository from Vala is probably easier that doing it from C or through NCI from any Parrot language 13:47
whiteknight ok
cgaertner girepository is actually gobject-based, so using Vala would be natural 13:50
if speed is a concern, one could also create a low-level wrapper over parrot's APi which treats all types as opaque and still use Vala, I guess 13:51
whiteknight ok 13:55
cgaertner it's just that the GObject API I'm working on can be made far nicer that parrot's C API [more] 13:57
for example, the pmc arwpper structure already is larger that apointer because it inherits form GObject (which carries at least an int for type information and a refcount), so it's not really in issue to stick a pointer to the interpreter into that as well 13:58
thus, you don't need to always carry the interpreter around yourself: a PMC knows where ir's from
or is there a valid use-case for invoking a PMC's vtable funciton on an interpreter which wasn't used for it's creation? 14:00
14:02 kid51 left
whiteknight no, the PMC should only be used with the interpreter that owns it 14:02
lucian cgaertner: so you're trying to make parrot objects available for gobject-introspection?
whiteknight there are very few exceptions to that rule.
cgaertner lucian: to a certain degree, yes 14:04
of course that's only possible for core (ie non-dynamic) pmcs
C code for pmcs is generated, it should be possible to leverage the existing infrastructure 14:05
lucian cgaertner: hmm. it'd be nice if HLLs were gobject-introspectable 14:06
but that's certainly outside the scope of your gsoc
cgaertner lucian: as far as I know, gi is purely static, so in the general case, that's impossible 14:09
lucian possibly
cgaertner however, you can get access to HLLs through parrot's api
14:13 lateau left 14:15 jrtayloriv joined
cgaertner btw, who would be willing to mentor the project? the proposal template ask for that information, I I don't remeber anyone actually mentioning that... 14:19
14:30 hudnix left 14:41 hudnix joined
dalek nxed: r918 | NotFound++ | trunk/winxedst1.winxed:
use a specific class for argument modifiers
14:51
14:55 JimmyZ joined
JimmyZ good evening, #parrot 15:07
dalek nxed: r919 | NotFound++ | trunk/winxedst1.winxed:
use a specific class for parameter modifiers
15:12
15:15 theory joined
dalek nxed: r920 | NotFound++ | trunk/pir/winxed_compiler.pir:
update installable compiler
15:22
15:42 kid51 joined 16:00 bubaflub joined 16:15 JimmyZ left
cotto ~~ 16:18
16:20 theory left 16:29 kid51 left 16:32 ambs_ joined, ambs left, ambs_ is now known as ambs
cgaertner just sent a mail asking for likely mentors and a revised project outline to parrot-dev 16:38
16:47 lucian left
cgaertner is gone for today, be back tomorrow 16:55
16:55 cgaertner left 17:01 Eduardow left
dalek rrot/whiteknight/imcc_compreg_pmc: 8500125 | Whiteknight++ | config/gen/makefiles/root.in:
fix some deps in the makefile so that checkdepend.t can shut up
17:12
17:18 Eduardow joined 17:37 Eduardow left
rohit_nsit08 whiteknight:hi, sorry for absence from the irc, now i have finished some work on nodejs and today compiled some scripts using 'cafe' and winxed , so i can now start my work on cafe now :-) 17:42
whiteknight rohit_nsit08: awesome! I'm glad to hear you are making progress 17:43
NotFound rohit_nsit08: welcome to the Winxed fanbase ;)
rohit_nsit08 whiteknight: thanks, had to dig a lot for it, :-) loved it
whiteknight: u play cricket?
whiteknight: sorry, i'm very happy today, india has just won cricket world cup after 28 years 17:44
whiteknight rohit_nsit08: no cricket. I did hear that india beat pakistan in a nice match last week
oh, I didn't know they won the cup
rohit_nsit08 whiteknight: yup, just 5 minutes ago :-)
whiteknight very nice 17:45
now we have your undivided attention :)
rohit_nsit08 whiteknight: ya, but i saw just last half an hour, before that i was on nodejs irc :-) knowing their api , 17:46
whiteknight: so let's get back to work, now that i'm done with some more work, i'm working on to finish my proposal and will upload it on google today 17:48
bubaflub NotFound: i'm thinking about using Winxed for my NCI bindings for GMP - i might be joining the fanbase as well
rohit_nsit08 bubaflub: hi
bubaflub rohit_nsit08: hello 17:49
NotFound Soon we'll be doing the first World Winxed Users convention ;)
rohit_nsit08 NotFound: :-) 17:50
whiteknight bubaflub: Winxed is to C, like PIR is to ASM 17:52
bubaflub: once you start using it, I think you never go back to PIR
rohit_nsit08 whiteknight: how should i start with making changes in codegen.js of cafe, right now it's generating an AST and converting it back to javascript. pls guide 17:54
NotFound whiteknight: BTW, I've almost finished the the syntax for function call getting multiple return values. 17:55
17:57 Eduardow joined
bubaflub whiteknight: i'm sold. i'll modify my proposal from PIR/Test::More to Winxed/Rosella 17:58
tadzik whiteknight: how good is the generated code from winxed? 17:59
rohit_nsit08 bubaflub: faced any problem with PIR?
bubaflub rohit_nsit08: not problems, just very low-level and i have to deal with a lot of stuff that i don't normally
rohit_nsit08 bubaflub: i am planning to generate PIR code from my javascript compiler
bubaflub rohit_nsit08: especially when creating and initializing an obejct
rohit_nsit08: that's fine... writing it from scratch / by hand can be tedious 18:00
rohit_nsit08 bubaflub: i have spent some time with PIR, ya it's low level. seemed similar to C . 18:01
bubaflub rohit_nsit08: i'd say a bit lower than that... most of my hacking on Parrot has been in PIR
rohit_nsit08 bubaflub: any benefits if i switch to winxed?
winxed is similar to javascript
bubaflub rohit_nsit08: syntax wise, yes it is. but i'm not sure if there is any benefit
rohit_nsit08: the idea is that eventually the code would get into some form that can be compiled on parrot 18:02
rohit_nsit08 ya that's the main thing, either PIR or winxed all ends to bytecode 18:03
cotto It'd be interesting to build a compiler that generated pbc using our packfile PMCs.
18:04 pranq joined
rohit_nsit08 cotto: what are packfile PMCs? 18:04
cotto src/pmc/packfile*.pmc
a pmc-based interface for dealing with the binary format parrot uses for bytecode 18:05
benabik cotto: I am in the middle of writing a POST->Packfile library GSoC proposal.
cotto benabik, have you talked with bacek? He has a POST variant that's better suited to packfile generation than the one currently used. 18:06
benabik cotto: Not yet, although I'm guessing that's what the nqp_pct branch is?
cotto benabik, iirc yes 18:07
rohit_nsit08 cotto: packfile object is a parser? what does it parses to ?
cotto rohit_nsit08, it's not a parser. 18:08
tadzik wow, the code winxed generates is awesome
at least for the examples I tried 18:09
rohit_nsit08 cotto:sorry, i'm reading packfile.pmc .i read the class implements a packfile object which is a parser and serializer . 18:10
cotto ah. I see where the confusion came from.
benabik rohit_nsit08: It's a parser in that it can read in a .pbc file and give an interface to its internals.
rohit_nsit08 benabik: hmm okay, actually i'm new to pbc. Sorry didn't knew that 18:12
benabik rohit_nsit08: Asking questions is how you learn. :-)
cotto The PMCs are just the interface. Note that set_string_native isn't very long.
benabik rohit_nsit08: I mostly know that because I've been looking over the docs for a couple hours now.
cotto Packfile_unpack, which does the work, doesn't live in the PMC code.
dalek nxed: r921 | NotFound++ | trunk/winxedst1.winxed:
experimental syntax in stage 1 to call functions with multiple results: ':(a, b)
18:13
rohit_nsit08 benabik: how is pbc different from PIR.
benabik: i know PIR 18:14
cotto rohit_nsit08, pbc is the binary format that pir compiles to.
benabik rohit_nsit08: PIR : pbc :: assembler : object code
cotto (after some desugaring and magic)
rohit_nsit08 got it .
i thought PIR is the lowest level and it gets converted into object code, the Pbc part was missing 18:16
thanks
benabik rohit_nsit08: PBC is basically the object code for Parrot. It stands for Parrot ByteCode (I think)
rohit_nsit08 yes, that's correct 18:17
dalek TT #2085 created by jkeenan++: Eliminate reliance on any 'tempdir' based on Perl 5's setting 18:18
TT #2085: trac.parrot.org/parrot/ticket/2085
TT #1544 closed by jkeenan++: t/profiling/profiling.t fails on darwin
TT #1544: trac.parrot.org/parrot/ticket/1544
bubaflub rohit_nsit08: if you know java there is as good analogy - .java files (which are text files written in the Java language) are compiled to bytecode .class files
rohit_nsit08: just like .class, .pbc is platform independent compiled files 18:19
rohit_nsit08: we have multiple languages just like the JVM does, and anything that runs on Parrot written in any languages can be compiled down to a PBC
rohit_nsit08 bubaflub: thanks, now i have got the whole point. 18:20
bubaflub rohit_nsit08: glad to help. feel free to ask any questions about anything you are confused about. someone here will point ya in the right direction.
rohit_nsit08: ah, so the original question if you should use PIR or Winxed - it doesn't totally matter as long as it compiles correctly... PIR is pretty simple but can be tedious to write since it is so low-level.
rohit_nsit08: for my project i think i'll be using Winxed because it is more convenient. 18:21
NotFound And even more tedious to debug.
bubaflub rohit_nsit08: but if the code is generated, you might not care about how low-level something is
rohit_nsit08 yup
i have decided to stick to PIR , since i know it and keep winxed for an option for future 18:22
dalek nxed: r922 | NotFound++ | trunk/pir/winxed_compiler.pir:
update installable compiler
18:23
18:26 bubaflub left
dalek nxed: r923 | NotFound++ | trunk/ (3 files):
add test for multiple return
18:39
18:44 jrt4 joined 18:46 jrtayloriv left 18:52 rohit_nsit08 left 18:55 bubaflub joined
whiteknight tadzik: (sorry about the delay) the PIR generated from Winxed is very good and very efficient 18:56
tadzik: winxed does not hide too many details, so the translation is pretty straight-forward
tadzik yeah, I checked that out. Very nice 18:57
19:08 rohit_nsit08 joined
benabik Is the OpLib PMC the way to access the opcode tables from inside the VM? I noticed that IMCC uses interp->op_hash from C and was looking for a way to do something similar without C code. 19:09
sorear rule of thumb: whatever way IMCC uses, is the wrong way 19:10
plobsing benabik: having a global hash of ops is wrong 19:14
you should keep track of the oplibs that are relevant to the compile in progress and perform lookups on those. 19:15
19:17 theory joined
benabik sorear: I can understand where that rule's coming from, but as far as I can tell IMCC is the only thing that actually generates bytecode right now. 19:19
sorear benabik: there's also PIRATE, but it's rather limited 19:20
benabik plobsing: Fair enough... But is ObLib the right way to do that? And how do dynops get converted to opcode numbers?
sorear: Oddly enough, searching for "parrot PIRATE" doesn't give very useful links. ;)
19:21 jevin left
plobsing IMCC is the only thing that generates PBC right now because IMCC was integrated in a highlander fashion (there can be only one) 19:21
sorear benabik: bacek/pir IIRC
benabik sorear: 404 from github. parrot/pir ? 19:22
plobsing benabik: OpLib is how you'll want to go about doing that, yes. Ops (dyn- or otherwise) need to be mapped into a segment before they can be used. The PackFilePMC representing the bytecode segment should facilitate this operation.
sorear benabik: parrot/pir looks correct
19:33 theory left, theory joined
rohit_nsit08 whiteknight: i'm uploading my final proposal on gsoc site. will be glad if u can have a last look before submitting gist.github.com/899803 19:35
19:38 nwellnhof joined 20:20 jevin joined
whiteknight rohit_nsit08: okay, looking now 20:26
I'm going to be offline for most of the rest of the afternoon
20:27 dodathome left
whiteknight rohit_nsit08: the proposal looks good 20:27
rohit_nsit08 whiteknight: thanks for the reviewing , I'm putting it on mailing list and will finally submit it tomorrow morning. 20:29
whiteknight: can i make any further changes after submitting?
benabik GSoC 2011 Proposal for Parrot: Bytecode Emitters for POST gist.github.com/899867 20:44
20:50 bubaflub left, theory left
benabik If anyone has any comments on my proposal above, I'll be online for about another half-hour. I'll leave my client open to try to catch any messages after that. I also sent a copy to the parrot-dev list for comments, so e-mail and comments on the gist itself are good. 20:52
20:57 pranq left 21:02 bubaflub joined 21:08 rohit_nsit08 left 21:16 clunker9_ joined
rblackwe I am in pmichaud talk at Texas Linux Fest 21:17
There are ~40 people in here. 21:18
21:20 jevin left
sorear is that a lot? 21:21
21:21 jevin joined
rblackwe sorear: I think so 21:24
I am very happy with attendence
Even better ... people seem interested 21:25
benabik rblackwe: Sounds awesome. 21:27
Heading off to "be social", whatever that is. 21:28
21:32 Eduardow left 21:37 ambs left
rblackwe benabik: Interactive audience too 21:43
People are interested enough to ask questions 21:44
21:45 bacek left 21:47 nwellnhof left 22:07 soh_cah_toa joined
dalek rrot/whiteknight/imcc_compreg_pmc: 52f4632 | plobsing++ | src/packfile/api.c:
[codingstd] c_arg_assert
22:28
rrot/whiteknight/imcc_compreg_pmc: f0010a7 | plobsing++ | src/packfile/api.c:
[codingstd] c_function_docs
soh_cah_toa whiteknight: i'm reworking my gsoc proposal and i have a question. would you recommend doing documentation before or after the coding phase? 22:37
bubaflub soh_cah_toa: if i may be so bold as to suggest you do inline documentation before and during the coding, examples after 22:38
soh_cah_toa bubaflub: yeah, alright. how much time should i reserve for user docs/examples? 22:40
bubaflub soh_cah_toa: that's a tough call. it's been my experience that the docs and tests and other "periphery" type stuff usually takes more time
soh_cah_toa: but it is in some ways more important - if you have that last week open maybe allocate some of that time to a good tutorial or README 22:41
soh_cah_toa bubaflub: well, i think i'm gonna go w/ a test driven development approach w/ failing tests before and passing afterwords
bubaflub soh_cah_toa: great. that's a good way to ensure you've got the coverage you want and need. i'd say to combine that with documentation driven development - tests and docs before the code is written 22:42
soh_cah_toa: that might just be my style, though. your mileage may vary
soh_cah_toa bubaflub: well, i've never developed as part of a team before so this would be the first time i actually practiced a development process w/ design, docs, test, all the works. any advice will help 22:44
bubaflub soh_cah_toa: sure. i think test driven development is the bee's knees. 22:46
soh_cah_toa: but getting use to TDD can sometimes take a bit
soh_cah_toa: for me the impulse is always to just jump into the code
soh_cah_toa bubaflub: yeah, i know
bubaflub soh_cah_toa: and the tests (or docs or whatever) is never very glamorous
soh_cah_toa: and it's ok if there is some give and take
soh_cah_toa: i.e. you sometimes start with the tests, sometimes start with the code 22:47
soh_cah_toa: as long as in the end there are both good, passing tests and code
soh_cah_toa: at work i've had one line changes that take five minutes to fix
soh_cah_toa: and 45 minutes to test
soh_cah_toa bubaflub: wow
bubaflub soh_cah_toa: it may or may not be "worth it" in that kind of environment, but i think it's always good to have more tests
soh_cah_toa: you'll know if you broke something
soh_cah_toa: esp. if you get bug reports - every regression should have a test so you don't keep making the same mistakes 22:48
soh_cah_toa bubaflub: right
bubaflub: i've never had to right documentation outside of inline comments before. are there any articles or books you could recommend for writing technical documentation?
bubaflub soh_cah_toa: ah, that's tough. yeah, i mean most developers end up dumping stuff into a wiki... and then the information never gets updated and it gets useless. i'd say avoid the wiki route. 22:49
soh_cah_toa: also, POD is pretty standard with Perl projects, but it has the nasty tendency of following the API a bit too closely.
soh_cah_toa: a good tutorial will show people step by step exactly what they need to get a project up and running 22:50
soh_cah_toa: the Catalyst tutorial or the DBIx::Class intro are both good examples of that kind of doc
soh_cah_toa: i think you can also expect feedback from the community and your mentor to help improve the docs
soh_cah_toa: and you can always bug me if you'd like my opinion
soh_cah_toa bubaflub: o'reilly has been my best friend in the past. i'm sure they have some good books on technical writing as well 22:51
bubaflub soh_cah_toa: no doubt. it's not particularly my field so i don't have any suggestions off hand.
soh_cah_toa: this is a great parrot tutorial: coolnamehere.com/geekery/parrot/learn/ 22:54
soh_cah_toa: i'm not suggesting you do something this in-depth (as it could well be outside the scope of a single summer) but the style is engaging
soh_cah_toa: also, he does some TDD in there
soh_cah_toa bubaflub: i know, i've been reading it religiously. it's a really great tutorial
bubaflub soh_cah_toa: great. 22:55
22:56 Eduardow joined 23:04 zby_home left 23:05 benabik_ joined 23:06 benabik_ left, benabik_ joined 23:40 benabik_ left, benabik__ joined 23:53 benabik_ joined 23:54 jasonmay left 23:58 benabik__ left