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.
whiteknight plobsing: I added a debugging statement to the PtrObj destroy function for packfiles coming out of IMCC. When I add that GC_unblock statement in that conditional, three PackFile PtrObj pmcs are destroyed before the segfault 00:02
plobsing so then the PtrObj objects aren't being correctly marked by whatever is holding them? 00:03
if you want a workaround, you could gc register the PtrObj PackFiles. that would somewhat defeat the point of keeping them in GCables however.
whiteknight I think I fixed it 00:05
I pass the new PtrObj pmc as the third argument to PackFile_fixup_subs
that way it gets marked when Subs get marked
00:06 bacek left
plobsing the subs reference the bytecode using struct pointers still? yeah, that would be a problem. 00:08
00:09 lucian left
whiteknight ...no, that doesnt seem to fix it 00:09
just looked that way for a second
plobsing you could mark the object when the bytecode segments get marked. 00:10
*the interp's bytecode segments
it means we still leak bytecode, but if I'm not mistaken, that isn't the primary objective of this branch
00:11 lucian joined
whiteknight not the primary objective, no 00:11
certainly in my sights
hmm...weird. I gc_register the packfile PMC as soon as I create it, and I never unregister it. the build gets past the PGE, but segfaults in TGE build now 00:14
plobsing do the PtrObj PMCs get collected somehow? 00:16
whiteknight no. I added a custom destroy function with debugging info in it, and the PtrObj doesn't get destroyed now
it was getting destroyed before registering it
what's weird is that in the TGE build, it segfaults in exactly the same place in PCC 00:18
I don't know if that's a coincidence or something more sinister 00:19
this issue is bigger because I suspect it's not specific to my branch, it's only getting exposed here 00:29
00:32 nwellnhof left
dukeleto ~~ 00:33
00:34 Coke left, Coke joined 00:47 jsut_ joined 00:48 bacek joined
whiteknight blahblahblah 00:50
IMCC is the devil
plobsing deja vu? 00:51
dukeleto whiteknight: shall I sacrifice a virgin yak to the IMCC elder gods for you? 00:52
00:52 jsut left
dukeleto mumbles "release the yaks" in latin 00:52
whiteknight okay, here's something I don't understand 01:00
I added in debug statements to gc_block_mark and gc_unblock_mark 01:01
these statements print out the current gc block level
with/without the extra gc_unblock statement in Parrot_load_bytecode, the counts are the same
01:07 dmalcolm left
dukeleto whiteknight: funky 01:09
whiteknight: is something being optimized away in certain situations?
whiteknight: are you compiling with optimization?
whiteknight no, I was looking at the wrong sequence. The counts are different 01:10
in the branch, without that gc block, the counts go up and GC never turns back on 01:11
01:13 cotto joined
whiteknight and now I put a debugging statement in Parrot_gc_mark_and_sweep, and it never appears to be getting called 01:15
I moved it , and now it is getting called 01:17
okay, the PackFile PMCs are definitely getting marked and are not getting collected. That's a good sign 01:20
01:25 hercynium joined 01:26 hercynium left
dukeleto whiteknight: nice blog post about the PL/Parrot gsoc idea 01:29
whiteknight thanks
dukeleto whiteknight: the project will be mostly C, but a little bit of PIR, Perl 6 and SQL will be needed too 01:30
whiteknight: we might want to tell the students that
whiteknight okay 01:31
dukeleto whiteknight: the Perl 6 might not be required, if the glue code that loads PL/Perl6 doesn't need to be changed
whiteknight: but it should be a tiny change if one is needed
whiteknight: 95% C and 5% other would be my estimate 01:32
whiteknight yeah, that's what I was thinking
dukeleto whiteknight: i really like your blog infrastructure
whiteknight: have you written something up about it?
whiteknight it's the bog-standard github pages feature 01:33
dukeleto whiteknight: i don't blog frequently and I blame it on hating all blog frameworks
whiteknight: bog-standard!
whiteknight dukeleto: It's just a git repo. I write files, commit, push
github does the rest
dukeleto whiteknight: do you write them in Markdown?
01:33 lucian left
dukeleto whiteknight: what is the input format for the blog posts? 01:33
whiteknight yeah, I use markdown. I tried textile for a while, but didnt like the format 01:34
github supports a bunch of formats. I think they even support POD if anybody wanted to blog with that 01:35
plobsing: the raw_sig PMC which is causing the segfault is a constant PMC. So it should be getting marked with the PackFile, right? 01:39
plobsing that's the args FIA right? yeah, that should get marked with the packfile, and with the interps segments 01:40
whiteknight yeah, that's the FIA 01:42
the PackFile* structure is being marked 01:43
this is ... weird 01:44
constant segments are getting marked 01:45
the TGE build that is segfaulting now only runs 1 GC mark/sweep 01:46
it runs GC right before the invoke which causes the segfault
this is a very very interesting bug 01:52
I think I need sleep 01:55
goodnight 01:56
01:56 whiteknight left 02:04 contingencyplan left 02:38 ShaneC1 left, ShaneC1 joined
dalek TT #2069 created by ekvkezbzz3++: The internet Method of keeping a person Knowledgeable regarding Deals 02:43
TT #2069: trac.parrot.org/parrot/ticket/2069
Heuristic branch merge: pushed 47 commits to nqp by jnthn
02:44 ShaneC1 left
benabik spammers-- 02:45
02:55 theory joined 03:06 Andy_ joined
dalek TT #2070 created by ehqbqstmpgn8++: Accept The New Technology Of E-cigarette 03:14
TT #2070: trac.parrot.org/parrot/ticket/2070
03:27 theory left 03:28 theory joined
dalek rrot/jit_prototype: 778e759 | bacek++ | compilers/opsc/ (3 files):
Add stub for JITter
03:30
rrot/jit_prototype: 859188f | bacek++ | t/jit/proto.t:
Add proto.t for prototyping.
rrot/jit_prototype: e06d5f2 | bacek++ | compilers/opsc/opsc.pir:
Include JIT into opsc.
rrot/jit_prototype: f376e0a | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Load PBC in JIT.new
rrot/jit_prototype: 4418be2 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Minor style changes.
rrot/jit_prototype: 9093704 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Generate %!ops for lookup ops. Redispatch PAST::Op deeper inside.
rrot/jit_prototype: c53341e | bacek++ | / (2 files):
Load jitted_ops.bc as module with all precompiled stuff
rrot/jit_prototype: 51c269f | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Add LLVM::Builder. We'll need it.
rrot/jit_prototype: 3f3f651 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Flesh out future JIT algorithm
plobsing ping bacek 03:37
bacek plobsing, pog
pong 03:38
plobsing I have an idea of how JIT can work with dynops.
bacek plobsing, go ahead. 03:39
plobsing JIT is basically a different runcore. Runcores which differ in mechanism (eg: fast vs cgp) are going to need to represent ops in different ways. This should be delegated to opsc in the creation of libraries
we don't want an N-wise explosion in size of ops libraries of course, so runcore (in the mechanism sense) should be compile-time selected. 03:40
s/compile/configure/ 03:41
bacek it's runtime selected now
plobsing yes, but those are only runcores in the not-really-a-different-type-of-runcore sense
bacek afk # kids
plobsing we don't really support runcores that differ in *interesting* ways right now 03:42
we did, but we removed that along with the interesting runcores
03:54 woosley left 04:02 woosley joined 04:06 woosley left 04:25 theory left 04:28 theory joined 04:41 particle left 04:43 lucian joined 04:45 redicaps joined
dalek rrot: 23b323e | plobsing++ | / (2 files):
HAS_INT64 => PARROT_HAS_INT64 and HAS_LONGLONG => PARROT_HAS_LONGLONG after config changes doing the same
04:56
rrot: 1372111 | plobsing++ | src/pmc/key.pmc:
support generating PBC containing PMC-register keys
rrot: 4c9efee | plobsing++ | MANIFEST.generated:
make ncidef2pir tool installable
rrot: 79ae153 | plobsing++ | src/pmc/key.pmc:
allow thawing of PMC-register keys
rrot: 7df21a4 | plobsing++ | src/pmc/structview.pmc:
implement serialization/deserialization for structview
rrot: 475136c | plobsing++ | src/pmc/structview.pmc:
implement array_offs and elt_offs methods on structview for array and element offset pointer arithmentic
rrot: 818cc19 | plobsing++ | src/pmc/structview.pmc:
reset key in keyed vtable preamble - fixes delegation issues in [gs]et_pmc_keyed
cotto ~~ 05:02
05:06 lucian left 05:12 theory left 05:18 theory joined
plobsing aloha: msg NotFound since includes.pasm is the de facto mechanism for exposing constants in Parrot, would it be possible to get winxed to output such files for file-scope const variables? I'd like to be able to expose library constants, and this seems like the most efficient and most common approach. 05:20
aloha plobsing: OK. I'll deliver the message.
05:58 particle joined 06:00 jsut joined 06:03 sykrex joined 06:05 jsut_ left 06:10 theory left 06:20 fperrad joined 06:25 fperrad_ joined 06:28 fperrad left, fperrad_ is now known as fperrad 06:29 Andy__ joined, Andy_ left, sykrex left 06:46 bacek left 06:56 fperrad left, fperrad_ joined, fperrad_ is now known as fperrad 07:10 rurban left 07:11 rurban joined 07:24 fperrad_ joined 07:25 fperrad left, fperrad_ is now known as fperrad
dalek rrot: 878c837 | jonathan++ | src/pmc/sub.pmc:
Auto-close did not work for more than a single frame deep. Discovered this bug when tracking down why static lexpad symbol handling didn't work out in NQP.
08:18
p/ctmo: e04b77c | jonathan++ | src/metamodel/how/NQPClassHOW.pm:
Make a comment reflect reality a little more.
08:21
p/ctmo: 4150953 | jonathan++ | build/PARROT_REVISION:
Bump to latest Parrot to get fixes to make static lexpad bits work in non-trivial cases.
p/ctmo: 47001b3 | jonathan++ | src/NQP/Actions.pm:
Install $?CLASS as a lexical symbol, not package. Now consistent with roles and classes, and also with nqpclr.
08:32 redicaps left 08:37 woosley joined 08:46 Andy__ left 08:53 dodathome joined 08:56 cgaertner joined 09:37 contingencyplan joined 09:38 mj41 joined 09:58 cgaertner left 10:16 bacek joined 11:17 cgaertner joined
cgaertner hi 11:18
nopaste "cgaertner" at 192.168.1.3 pasted "gobject interop proposal" (16 lines) at nopaste.snit.ch/38712
cgaertner ^ comments appreciated
moritz cgaertner: sounds nice 11:20
and worthwhile
don't forget: tests, tets, tests :-)
cgaertner ;)
if that's something parrot wants, I'm going to take a closer look at Parrot/GObject to see if it's actually feasible 11:22
dalek rrot/opsc_llvm: 4ac7226 | bacek++ | / (2 files):
Function.first_basic_block and .last_basic_block
11:24
rrot/jit_prototype: 6d03e93 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Create jitted_sub
11:27
rrot/jit_prototype: a8ec0bc | bacek++ | runtime/parrot/library/LLVM.pm:
Load LLVM_engine in LLVM.pm
rrot/jit_prototype: d371c74 | bacek++ | t/compilers/opsc/20-jit.t:
Proper test file
rrot/jit_prototype: 4beb14b | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Move creating of jit_context into separate function to simplify testing.
rrot/jit_prototype: 8932af7 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Return self when needed.
rrot/jit_prototype: 05ef4a8 | bacek++ | / (2 files):
Move all LLVM initialization into _llvm_init
rrot/jit_prototype: f4ac5af | bacek++ | t/jit/proto.t:
Remove code migrated to Ops::JIT
rrot/jit_prototype: 4ac7226 | bacek++ | / (2 files):
Function.first_basic_block and .last_basic_block
rrot/jit_prototype: 5ad0e00 | bacek++ | / (9 files):
Merge branch 'opsc_llvm' into jit_prototype
11:29 Eduardow left 11:30 whiteknight joined
whiteknight good morning, #parrot 11:40
cgaertner good morning, whiteknight 11:41
whiteknight hello cgaertner, how are you doing today? 11:42
cgaertner fine so far, but the weather is not as nice as it has been :( 11:43
any comments on nopaste.snit.ch/38712 ? 11:44
whiteknight that looks like a very good start 11:46
cgaertner as far as I can see, just exposing the vtables won't be enough to do anything useful, like call subs 11:47
you need Parrot_ext_Call() for that, correct?
whiteknight yeah. VTABLE_find_method is used to find method objects. Parrot_ext_call will be used to invoke them 11:48
cgaertner afk for a bit (~1/2 hour), but I have some more questions ;) 11:49
whiteknight ok. We'll be here 11:50
11:51 Psyche^ joined 11:53 Patterner left, Psyche^ is now known as Patterner
dalek rrot/jit_prototype: b84f770 | bacek++ | t/compilers/opsc/20-jit.t:
Add test for BB creating.
11:59
rrot/jit_prototype: ed2c889 | bacek++ | / (2 files):
Implement generating of BasicBlocks for jitted Sub
cgaertner whiteknight: ping 12:17
whiteknight pong
cgaertner it should be possible to seemlessly integrate gobject into parrot - there's prior art for that (pygobject) 12:18
php will also probably get that capability
however, the other direction is not so simple
gobject methods are just C functions (ie must be known at compile-time), so that's out 12:19
but there's a signalling mechanism for event-drivent programming
...which won't probably work because it expects a fixed signature (arity+types)
so the best one could do is probably expose an interface like Parrot_ext_call on a ParrotObject GObject 12:20
what I intend to do is create a base class which exposes all PMC vtable function (auto-generated from vtable.tnl) and then create subclasses for specific core PMCs, forming a proper API 12:22
eg you could habe a ParrotSub GObject class with an invoke() method as a wrapper over Parrot_ext_call() and a ParrotObject class as a wrapper over find_method() vtable + the subs incoke() 12:23
is that a sane approach?
that should have read "[...] a ParrotObject class with a call() method as a wrapper over the find_method() vtable function + the returned subs invoke()" 12:28
dalek rrot/jit_prototype: 49e1ad5 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Jump from "entry" block to first op.
12:32
rrot/jit_prototype: 0f272d9 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Fix starting of jit. Factor out _keep_going function.
rrot/jit_prototype: 0f7940e | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Change _count_args to _opsize.
rrot/jit_prototype: 6e4e308 | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Add more skeleton stubs for processing ops.
rrot/jit_prototype: 15d07dd | bacek++ | compilers/opsc/src/Ops/JIT.pm:
Add totally untested _jit_ops
12:34 jsut_ joined
cgaertner on to the parrot side of things: 12:35
how does a HLL implement its object system?
subclass the Class PMC from PIR?
from parrot's point of view, gobject will ideally just be another HLL 12:36
(except where it's not ;)) 12:38
12:39 jsut left
whiteknight a GObjectSub PMC type with a custom invoke would be a good idea 12:44
that would encapsulate a call, and allow you to pass it around as an object to other libraries
cgaertner whiteknight: that's the parrot side of things, corrct? I was talking about calling into Parrot from GObject before (sorry if that wasn't clear) 12:52
whiteknight yes, you could set up a small callback function to do that 12:56
it would have fixed parameters, the GObjectSub PMC and maybe an interp. The GObjectSub could hold an array of other arguments
12:58 ambs joined
dalek rrot/jit_prototype: 474a43b | bacek++ | / (2 files):
Finish creating of basic skeleton for JITted Sub
13:08
TT #2071 created by yjdqgckirtmqt0++: Chatroulette: Key in to a Superficial World 13:20
TT #2071: trac.parrot.org/parrot/ticket/2071
13:22 kid51 joined
dalek TT #1411 closed by jkeenan++: [BUG] configure problem on the arm architecture 13:36
TT #1411: trac.parrot.org/parrot/ticket/1411
13:44 woosley left
whiteknight cgaertner: are you on github? 14:03
14:07 rohit_nsit08 joined
rohit_nsit08 hello everyone 14:07
whiteknight: hi
dukeleto: hi 14:08
whiteknight rohit_nsit08: good morning
rohit_nsit08: are you on github?
rohit_nsit08 whiteknight: i made account some time back , i have it installed in my linux box 14:09
whiteknight: shall i make it again?
whiteknight rohit_nsit08: github is where parrot's code is, and it's a convenient place to start putting together a proposal 14:10
rohit_nsit08 whiteknight: i used git to clone parrot source code , i will now join it , just a few minutes, i was making my project proposal today , some details are missing will complete and mail u today for review , so that we can refine it further 14:11
whiteknight rohit_nsit08: you can create a "gist" on github, which is something that can be edited, and that we can make comments on 14:12
rohit_nsit08 whiteknight: i'm on it , ya that will be a better way , i'm familiar to bazaar , didn't used git for quite long time 14:13
whiteknight: give me few minutes and i'll set up everything 14:14
whiteknight okay, awesome
cgaertner whiteknight: I just created a cgaertner github account 14:15
personally, I'm more of a mercurial guy... 14:16
whiteknight cgaertner: okay, awesome. I'm following you on github now
cgaertner: you can create a fork of the parrot repo if you want to start playing around. Also, create a gist for your proposal, so you can update it and we can follow along 14:17
14:20 bacek left
rohit_nsit08 whiteknight: made my account , now filling details in the proposal 14:30
whiteknight awesome 14:31
rohit_nsit08: what is your github username? 14:32
rohit_nsit08 whiteknight: rohit-nsit08 14:37
whiteknight Okay, I'm following you too 14:38
cgaertner whiteknight: what API should be targeted for the wrapper over libparrot - embed_new?
whiteknight cgaertner: for the embedding API, yes. That's what you use if you're embedding Parrot in a larger project
for the GObject project, you're probably not going to use embedding stuff 14:40
because the GObject code gets called from inside Parrot
cgaertner whiteknight: if time permits, I'm going to try for two-way interop
first make gobject work from parrot
then (if there's enough time), make parrot work from gobject
whiteknight ok 14:43
14:53 rohit_nsit08 left 14:56 kid51 left 15:04 rohit_nsit08 joined 15:09 rurban left
dalek TT #2072 created by xgudmzpeseefb5++: Efficacy of Movie reviews 15:09
TT #2072: trac.parrot.org/parrot/ticket/2072
15:11 rurban joined 15:15 woosley joined, Eduardow joined 15:22 woosley left
dalek rrot: 8ff4abd | mikehh++ | src/pmc/structview.pmc:
fix codetest failure - line length
15:24
rrot: 1de5200 | mikehh++ | src/pmc/sub.pmc:
fix codetest failure - line length
15:38 lucian joined
cgaertner whiteknight: gist.github.com/888382 15:39
whiteknight awesome
cgaertner: Myself and other Parrot devs can make comments on it now, and you can edit it to make changes as needed
this way we can help you get a great proposal 15:40
dalek TT #2073 created by taymvcddktleoy3++: Each and every individuals desire can become a real possibility along with ...
TT #2073: trac.parrot.org/parrot/ticket/2073
whiteknight damnit 15:44
Hackbinary cd
whiteknight plobsing: ping 15:50
hello Hackbinary, how are you doing today?
Hackbinary I'm good, I just finished making Eclipse 3.6 packages for Ubuntu / Debian that work! 15:51
whiteknight msg plobsing I fixed the GC bug. Testing now and will commit a fix as soon as I clear out my debugging garbage
aloha OK. I'll deliver the message.
Hackbinary I'm chuffed to bits over that really
how are you whiteknight? 15:52
whiteknight Hackbinary: much better now. I just fixed a bug that I've been stuck on for two weeks 15:53
Hackbinary nice!
I hate being stuck on things
whiteknight We've been busy this week talking to GSoC students too. We have a lot of them this year 15:54
Hackbinary yeah, I seen the messages on the list
it looks like parrot will do pretty good with GSoC 15:55
lucian whiteknight: try a few months stuck on a bug 15:56
it's dreadful
whiteknight lucian: I would hit a threshold where I would have to go back and start from scratch
lucian whiteknight: there are times when that's not possible. i'm embedding xulrunner in a gtk app. it's a xulrunner bug somewhere, but i can rarely reproduce it (likely race condition) 15:57
whiteknight oh, that sucks 15:59
well, that's not a bug you created. In this imcc_compiler_pmc branch, it was a bug I introduced
or, at least a bug I exposed
lucian i se 16:02
dalek rrot/whiteknight/imcc_compreg_pmc: 47d6211 | Whiteknight++ | / (9 files):
remove TT #1990 hack from Parrot_load_bytecode. This should prevent Parrot from eating up all RAM in certain situations
16:08
rrot/whiteknight/imcc_compreg_pmc: a3bba04 | Whiteknight++ | / (4 files):
whatever
whiteknight it makes me so happy to be able to push that commit 16:10
lucian claps for whiteknight 16:11
whiteknight thanks. this is a big deal
at least, for me
dalek rrot/whiteknight/imcc_compreg_pmc: 3167be3 | Whiteknight++ | / (37 files):
fix conflicts
16:14
16:20 kid51 joined 16:21 M_o_C joined
whiteknight kid51: ping 16:22
msg kid51 when you get a chance can you run tests on the whiteknight/imcc_compreg_pmc branch? I think I fixed that memory bug you had with it last time. checkdepend.t is failing right now, that one is not high priority for me to fix 16:24
aloha OK. I'll deliver the message.
whiteknight msg kid51: also codestd is going to be a mess. 16:29
aloha OK. I'll deliver the message.
rohit_nsit08 whiteknight: hi, here is my 1st version of proposal : git://gist.github.com/888418.git 16:31
kid51 whiteknight: Do you recall whether I reported those bugs on linux or darwin?
rohit_nsit08 whiteknight: sorry it's here gist.github.com/888418
whiteknight kid51: no idea. I'm sure it would have manifested on any mem-constrained platform 16:32
kid51: I know what to get your for christmas this year. RAM.
:)
rohit_nsit08: awesome. Great first draft 16:33
16:33 M_o_C left
kid51 I need time free from dealing with spammers to think about getting a new laptop 16:33
whiteknight rohit_nsit08: we'll read it over and make comments
16:33 M_o_C joined
rohit_nsit08 whiteknight: yup, and till than i'll finish my setup with cafe , i'm reading the code , had some conversation with zaach he confirmed some issues , he agreed to test the current node and reply by tomorrow so i have some time to study more about the cafe :-) 16:35
dalek rrot: ee4b813 | mikehh++ | MANIFEST.generated:
fix sort order
16:41
16:50 M_o_C left 16:51 cgaertner left 16:52 M_o_C joined
plobsing whiteknight: a3bba04 appears to reintroduce the block-leak 16:52
whiteknight oh shoot, that was a merge. 16:53
it was working before that merge
anyway, We are heading out, I can't fix it now
16:55 M_o_C left
whiteknight I'll be back later 16:58
16:58 whiteknight left 17:00 kid51 left
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#13161) fulltest) at 3_2_0-49-gee4b813 - Ubuntu 10.10 i386 (g++-4.5) 17:20
17:38 mj41 left 17:45 M_o_C joined
rohit_nsit08 hi, what is .jiy file extention for ? 17:46
18:00 M_o_C left
dalek TT #2075 created by ryywlvbrqut4++: Insure your car to provide the actual penalties a miss 18:01
TT #2075: trac.parrot.org/parrot/ticket/2075
18:02 M_o_C joined 18:10 mj41 joined, ambs left
dukeleto tracspam-- 18:13
18:13 hudnix left
dukeleto rohit_nsit08: where is this .jiy file you speak of? 18:13
rohit_nsit08 dukeleto: hi it's here github.com/zaach/cafe/tree/master/lib/js i guess it defines the grammar of language 18:14
dukeleto : i'm trying to see what lexer.jil file is doing , i have read that lexer divides the input stream into tokens 18:16
dalek TT #2076 created by tgalcajnk0++: Careful Expense in Penny stocks
TT #2076: trac.parrot.org/parrot/ticket/2076
TT #2077 created by rzfgjpakd3++: Buy blossoms within wholesale 18:32
TT #2077: trac.parrot.org/parrot/ticket/2077
dukeleto sorry dalek, but I don't like the taste of spam 18:35
rohit_nsit08: some kind of jison-ish yacc thingy 18:37
rohit_nsit08 dukeleto: my interpratation from code -> it's containing cfg for language and server as the input for jison to generate a parser for the language , 18:40
dukeleto: cafe is lexer.jil also as input to jison , but when i tried to do it independently , gave some error that grammar is not specified properly 18:41
dukeleto: any idea about lexer's code ?
dukeleto rohit_nsit08: nope, i haven't fiddled with cafe 18:51
rohit_nsit08 dukeleto: fyn, no problem , i'll try to understand as much as possible , btw i was seeing jasper rightnow and it seemed abondoned , in what stage was that before it happened , and can i know what problems were faced? 18:54
dukeleto rohit_nsit08: not so much abandoned as back-burnered 18:57
rohit_nsit08: i was getting some errors from node.js trying to actually parse a file with the PEG.js javascript grammar
rohit_nsit08: can you get to that stage?
rohit_nsit08: then we can both debug it :)
rohit_nsit08 dukeleto: will love to :-) 18:58
dukeleto rohit_nsit08: if you run : node ./jaspers.js, it complains about an object not having a parse method 19:00
rohit_nsit08: the object *should* have that method, so something is wrong in the setup code
rohit_nsit08 dukeleto: let me check the jaspers.js file
dukeleto rohit_nsit08: jsParser isn't getting initialized correctly 19:01
dukeleto tries something
rohit_nsit08 dukeleto: does it specify from which object parse method missing ? any other details ? 19:03
dukeleto rohit_nsit08: seems like jsParser is the empty object, and hence has no parse method
rohit_nsit08: jsParser
rohit_nsit08: the jsParser = require('...') line is where the bug is
rohit_nsit08: require is not returning the object 19:04
rohit_nsit08: fixed it! 19:05
rohit_nsit08: update your jaspers repo 19:06
rohit_nsit08: git pull --rebase 19:07
rohit_nsit08 dukeleto: still going through the code , will try this on node to see the exact error
dukeleto rohit_nsit08: the javascriptParser.js is generated by PEG.js. Don't spend too much time reading it :) 19:08
rohit_nsit08 dukeleto: wow , will update in some while , right now on windows
dukeleto: so i should just use it to get the parser , and that's it ?, i'm using jison for now 19:09
dukeleto: switching to linux , will be back in a while 19:11
19:11 rohit_nsit08 left 19:16 rohit_nsit08 joined
mikehh dukeleto: the spam has nothing to do with dalek 20:00
20:01 bubaflub joined
mikehh dukeleto: all the last 20+ tickets have been spam 20:01
dukeleto: dalek also reports commits which are very useful, and normally so are tickets 20:02
i get the tickets and parrot commits as email, but dalek reports others 20:04
20:05 perlite_ joined
mikehh I find it very useful to check here before commiting fixes, as there is quite a delay in the email 20:05
or at least pushing
20:08 perlite left, perlite_ is now known as perlite 20:16 whiteknight joined
whiteknight good afternoon, #parrot 20:20
bubaflub afternoon whiteknight 20:22
whiteknight: i noticed on your blog that there is also a GSoC proposal for updating the PL/Parrot to the new embed API 20:23
whiteknight yeah
bubaflub i'm kinda torn between doing the GMP bindings and that one
which one do you think would be more beneficial?
whiteknight that's a good question
bubaflub i know dukeleto has been working on a perl grant to do the embed api 20:24
maybe it'd be best to do it while he's still working on that
whiteknight we should definitely talk to him about what needs to be done there 20:29
somebody with your talents could do a lot more than just rewrite it to use a new API 20:30
plobsing++ 20:37
bubaflub whiteknight: sounds good. i'll ping dukeleto and see which he'd prefer / what needs to be done 20:40
whiteknight bubaflub: Any other ideas floating around in your head?
bubaflub i could do the LAPACK stuff, but just on a VM
whiteknight the ones you have are good, I just want to make sure we're looking at all options
bubaflub i'd do something for cardinal, but have no idea what
i know Tene is working on getting 6model into it 20:41
whiteknight bubaflub: yeah, I'm sure a lot of Cardinal work is dependent on getting the object model working 20:45
depending on Tene's schedule, adapting 6model to work with Cardinal might make a great project 20:46
lucian and would help other languages as well 20:49
also, Tene has good ideas about language interop
whiteknight language interop is a great feature of Parrot, but I can't really think of a way to turn that into a GSoC project 20:50
maybe setting up some kind of automated testing system for building multiple compilers, and using them together in weird combinations 20:51
lucian i just meant Tene stewarding 6model + ruby work would help 6model deal with inter-language interop 20:52
i don't think it's possible until languages actually work
whiteknight true 20:53
bubaflub: If you are interested in porting 6model to Cardinal for GSoC, we can talk to Tene about it
he had mentioned at one point he might be interested in mentoring such a project
the benefits for Cardinal are undisputed 20:54
might be a great kick-start for that project
bubaflub whiteknight: i'll ping him as well 20:55
whiteknight by the end of this summer, if all goes well, we could have a working Python compiler and a working JavaScript compiler
getting Cardinal back on track at the same time would be awesome
bubaflub whiteknight: yeah, there is an official Ruby 1.9.2 spec, but apparently will take a lot of work to get up and running 20:56
20:56 particle left
bubaflub i'd like to see the spec running, cause then we've got something solid to test against 20:56
lucian well, rubyspec is a large test 20:57
but like with python, objects are needed for even the simplest tests
bubaflub yep... gotta get a lot of guts correct before that happens 20:58
20:58 ambs joined
whiteknight Getting to the point where Cardinal could run rubyspec, even if there are plenty of failures, would be a good start 20:59
21:00 particle joined 21:03 M_o_C left
lucian yes, that would mean the first 90% would be done 21:04
just 90% more from there
bubaflub hahah
21:11 ambs left, kid51 joined, lucian left
kid51 whiteknight ping 21:14
whiteknight pong
kid51 whiteknight: The version of your branch you asked me to test earlier today froze my darwin/ppc 21:15
whiteknight damnit
kid51 I could tell that it was taking a long time to compile Compiler/Actions.pm.
whiteknight ok
how much ram does that box have?
kid51 ... and I noticed that I couldn't command-tab between programs ... 21:16
... and then I noticed that the time displayed on the desktop said 4:43 pm -- when it was now 5:07 pm.
... so your branch stopped time!
256M RAM ... same as it ever was.
Same box I've been testing Parrot on since I came into the project. 21:17
It does seem to have taken regular amount of time to 'make' on linux/i386, but got failures in 3 tests 21:18
whiteknight okay, I'm going to set up a VM with that little memory and see if I can duplicate any kind of problems
unfortunately I don't have a version of darwin to test with
kid51 I will now try a full configure/build/smolder on that box on master. 21:19
whiteknight ok 21:20
21:26 lucian joined
kid51 whiteknight/imcc_compreg_pmc branch: linux/i386: FAIL in t/src/checkdepend.t 21:29
nopaste "kid51" at 192.168.1.3 pasted "imcc_compreg_pmc branch 'make test' failure" (187 lines) at nopaste.snit.ch/38738 21:30
21:31 M_o_C joined 21:32 bacek joined, ambs joined 21:33 cotto left 21:36 lucian left
kid51 whiteknight: FYI on my darwin/ppc master configures and builds in what passes for normal time these days: ~ 19 minutes 21:40
21:47 dodathome left 21:48 hudnix joined
ttbot Parrot 8dcf07d1 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/58643 21:48
Parrot 8dcf07d1 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/58648 21:49
Parrot 8dcf07d1 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/58647
kid51 Appears that x86_64, linux, i386-linux-thread-multi doesn't like HEAD in compreg_imcc branch 21:52
Oh, maybe my syntax error.
21:54 soh_cah_toa joined 21:57 lucian joined, lucian left
kid51 darwin/ppc: master still compiles and passes make test: smolder.parrot.org/app/projects/rep...ails/13181 22:05
Tene lucian/whiteknight: I plan to work on language interop after I get cardinal running on new opbect model 22:10
whiteknight: I have no idea of the suitability of 6model cardinal for gsoc 22:11
bubaflub/whiteknight: Yes, without an almost-fully-implemented object model, we can't actually run the rubyspec tests. They are *NOT* set up to be gradually-usable like the Perl 6 tests are. 22:12
bubaflub Tene: any ideas for a cardinal gsoc? 22:13
Tene bubaflub: I have a very poor understanding of what tasks are appropriate for gsoc. If you could explain that better, I can likely generate suggestions for you. 22:14
bubaflub: but, I'm afk for like 5 minutes right now. brb
soh_cah_toa speaking of gsoc, has there been anyone else interested in the debugger project that I could brainstorm with?
22:15 fperrad left
soh_cah_toa or would i be the lone wanderer? :) 22:15
bubaflub Tene: ok. task should be about 3 - 3.5 months in length and have deliverables at the end and maybe even at the midpoint. a project should have measurable / quantifiable work and can't be just documentation.
22:16 rohit_nsit08 left, rohit_nsit08 joined 22:27 ambs left
whiteknight soh_cah_toa: no other students have expressed an interest in it, but many parrot devs are interested 22:29
soh_cah_toa: what do you want to chat about
?
soh_cah_toa whiteknight: just curious as to what new features we could implement 22:30
whiteknight: right now, i'm going through parrot-instrument source and i think instrumentation support would be nice
whiteknight: i also just wanted to get an idea of who i might be working with, should i be accepted 22:37
whiteknight soh_cah_toa: I'll put some effort into Parrot-Instrument tomorrow, to try and get it to run again 22:38
soh_cah_toa whiteknight: great. i don't see a Makefile or anything so i'm not sure about installation. i think the github repo said it was just a proof of concept 22:40
22:45 ShaneC left
whiteknight soh_cah_toa: the setup.pir script is the replacement for makefile 22:49
soh_cah_toa whiteknight: i had a feeling that was the case
whiteknight: where can i find documentation on the load_bytecode op? it was in setup.pir file for distutils.pbc but i can't that file anywhere 22:51
whiteknight: what i'd like to know is where load_bytecode searches for files 22:52
22:52 lucian joined
whiteknight parrot has a list of search paths 22:52
runtime/parrot/library/ in the repo 22:53
22:53 lucian left
whiteknight that should be the same for the installed Parrot too, in the install directory 22:53
for me, the files would be in /usr/local/lib/parrot/* 22:54
soh_cah_toa wow, there it is. locate reported nothing. even after an updatedb. ugh...
just out of curiousity, is parrot's search path modifiable through an environment variable or something like @INC 22:56
whiteknight it may be, I need to check
soh_cah_toa alright
23:05 mj41 left 23:06 rohit_nsit08 left 23:11 rurban left, rurban joined
whiteknight soh_cah_toa: the -L commandline switch can add a new path 23:18
soh_cah_toa whiteknight: okay thanks 23:20
whiteknight soh_cah_toa: src/library.c:parrot_init_library_paths is where that all gets set up 23:22
the function is big and far too complicated, but that's where the magic happens
23:22 cognominal left 23:23 cognominal joined
whiteknight soh_cah_toa: cleaning that function up might be a nice way for a new user to get started... 23:24
soh_cah_toa whiteknight: yeah, no kidding :) 23:25
whiteknight there is a PARROT_LIBRARY environment variable, apparently 23:33
23:34 ShaneC joined
kid51 Where did dalek go? 23:34
whiteknight to bot heaven
i have no idea
soh_cah_toa whiteknight: yeah, i just saw that in src/library.c. it's experimental though 23:35
whiteknight it's listed as "experimental" but it's been in the code, unaltered, for years 23:37
soh_cah_toa whiteknight: alright 23:38
whiteknight: exactly what needs to be improved in the debugger? i know i've asked this before but i'm still a little unsure of what i can put in my proposal 23:40
whiteknight increasing the amount of "working correctly" that the debugger does would be awesome 23:41
soh_cah_toa whiteknight: in the project description it mentions that the debugger should be able to add breakpoints and watchpoints etc. but the debugger already has all that
whiteknight rewriting it so it isn't made of fail and spider webs internally would be very nice
soh_cah_toa: the project description was for writing a new debugger, not fixing the old one
does the debugger even work currently? Can you run it and do anything with it? 23:42
soh_cah_toa i'm messing around with it now that i know a little more about pir and pbc 23:44
whiteknight soh_cah_toa: even if it does work, it's still an evil mess. We really want it to be done bettr
for instance, we don't want debugger code compiled in to Parrot, except for the bare-minimum necessary hooks 23:45
we would like the debugger to be usable for HLLs, not just PIR
and if portions of it were running on top of Parrot, we could subclass it from HLLs, or add new features from HLLs 23:46
soh_cah_toa whiteknight: okay but the only parrot- supported language i know is perl
whiteknight once we have a basic core of the debugger written in whatever language, I would like to be able to extend it in any parrot language
soh_cah_toa but it's not like i don't have time to learn more
whiteknight we have several compilers: Rakudo Perl6 is the most complete HLL, but we have NQP, Winxed (my personal favorite), Cardinal, Lua, Partcl 23:47
we should be able to debug all of them, or be able to write extensions for the debugger in any of them
soh_cah_toa btw, how do you guys pronounce winxed? i've been saying it "winks"
whiteknight in my head I always say "Win-Zed". NotFound, the author of it, says "winged"
soh_cah_toa new gsoc project: properly pronounce winxed? 23:48
whiteknight can't be done in a single summe 23:49
summer
soh_cah_toa :)
ttbot Parrot 6ee33b49 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/58849 23:50
Parrot 6ee33b49 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/58875 23:52
whiteknight soh_cah_toa: the basic idea is this: Anything that runs on top of parrot (as opposed to running inside parrot) has a number of advantages: We can subclass features, we can inject features, we can introspect things, we can manipulate things, we can save details to portable bytecode instead of having to make it run natively on all platforms, etc
soh_cah_toa: so if the debugger, likewise, runs on top of parrot, we get all those benefits for it
From inside Parrot, we don't have many options. It's going to be written in C and most developers won't want to maintain it or develop for it 23:53
soh_cah_toa okay 23:54
what would it take to implement perl 6 support for the debugger? 23:55
whiteknight let's say I'm a JavaScript developer working on Parrot's new JavaScript compiler. I'm tracking down a bug, and want to get a custom report out of the debugger. What do I have to write that custom report it?
The correct answer in parrot-land is "anything you want". The current answer is "Really badly-written C"
JavaScript programmers write JavaScript because they don't like C or other alternatives
soh_cah_toa i did go through a web development phase a few months ago so i'm familiar with the basics of javascript. learning winxed can't be that hard 23:57
whiteknight winxed is very easy. It's inspired by JavaScript and C++. It's a very low-level language that exposes the power of Parrot but uses a nicer syntax than PIR 23:58
if I could go back in time 10 years, I would make Winxed the default Parrot language instead of PIR
and I would buy a truckload of Google stock
soh_cah_toa haha, wow. i guess my next task is to familiarize myself w/ winxed 23:59