Camelia, the Perl 6 bug

IRC log for #parrot, 2012-04-04

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:09 whiteknight good afternoon, #parrot
00:39 bacek_at_work ~~
00:39 bacek_at_work who called my name?
00:45 whiteknight bacek_at_work: I mentioned you earlier, but haven't talked about you recently
00:46 bacek_at_work whiteknight, no one want to talk about me!
00:46 * bacek_at_work leaving crying
00:47 whiteknight bacek_at_work: we all talk about you, and say very nice things!
00:47 bacek_at_work :)
00:48 bacek_at_work whiteknight, if you have time, can you look at unmerge_context branch?
00:59 whiteknight bacek_at_work: yes. We may need a favor on nine's threads branch from you too
00:59 whiteknight he's geting Parrot_pa_* weirdness that I am trying to debug
00:59 bacek_at_work whiteknight, I'll have a look. Do you have short explanation of problem in hand?
00:59 whiteknight not yet. I just started looking myself. I'll write something up for you later
01:00 bacek_at_work whiteknight, ok.
01:09 whiteknight bacek_at_work: I'm building unmerge_context now. Any notes?
01:17 whiteknight corevm builds fine. coretest has 3 files failing
01:18 benabik joined #parrot
01:18 benabik ~~
01:22 whiteknight bacek_at_work: segfault in t/pmc/packfileview.t is in IMCC. weird
01:22 whiteknight very weird
01:51 whiteknight if I compile that file to .pbc first it still segfaults, but in a different place
01:56 whiteknight somewhere it's allocating an extra SymReg* which gibberish data
01:57 whiteknight or it's overwriting an existing symreg with bad data
01:57 whiteknight anyway, that's all I can do tonight. I have to put the kid to bed. Goodnight
01:58 dalek Rosella: cb4760a | Whiteknight++ | src/unstable/xml/Xml.winxed:
01:58 dalek Rosella: [Xml] Implement rudimentary DOCTYPE parsing
01:58 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/cb4760a411
02:11 preflex_ joined #parrot
02:38 bacek_at_work msg whiteknight t/pmc/packfileview.t passed on my boxes..
02:38 aloha OK. I'll deliver the message.
03:44 dalek parrot/m0: 455cd1b | jimmy++ | src/m0/c/m0_ops.c:
03:44 dalek parrot/m0: added more prototype function, the original one is modified and kept for debugging
03:44 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/455cd1b966
03:44 dalek parrot/m0: cd61d94 | jimmy++ | / (5 files):
03:44 dalek parrot/m0: Merge branch 'm0' of github.com:parrot/parrot into m0
03:44 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/cd61d94d06
05:03 jsut joined #parrot
05:53 JimmyZ joined #parrot
05:55 JimmyZ no dalek!
06:00 fperrad joined #parrot
06:02 dalek parrot/m0: 74db254 | jimmy++ | src/m0/ (2 files):
06:02 dalek parrot/m0: remove wrong prototype function
06:02 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/74db25412c
06:09 dalek parrot/m0: 81a4d70 | jimmy++ | src/m0/c/m0_ops.c:
06:09 dalek parrot/m0: fixed bug
06:09 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/81a4d70a30
06:09 dalek parrot/m0: d155285 | jimmy++ | src/m0/c/m0_ops.c:
06:09 dalek parrot/m0: rewrite convert function
06:09 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/d155285a8d
06:15 dalek parrot/m0: 89f7266 | jimmy++ | src/m0/c/m0_ops.c:
06:15 dalek parrot/m0: fixed build m0
06:15 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/89f7266b6f
06:25 Timbus joined #parrot
06:30 nine bacek_at_work: ping
06:41 dalek parrot/m0: eb822b6 | jimmy++ | docs/pdds/draft/pdd32_m0.pod:
06:41 dalek parrot/m0: update pdd32_m0.pod
06:41 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/eb822b66c8
06:44 dalek parrot/m0: 88233c7 | jimmy++ | docs/pdds/draft/pdd32_m0.pod:
06:44 dalek parrot/m0: update pdd32_m0.pod, fixed thinko
06:44 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/88233c7d25
07:07 rich joined #parrot
07:14 fperrad joined #parrot
07:31 lucian_ joined #parrot
08:17 lucian joined #parrot
08:26 rich left #parrot
08:29 dalek parrot/m0: ae595d9 | jimmy++ | src/m0/c/ (2 files):
08:29 dalek parrot/m0: rewrite bitwise operation function
08:29 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/ae595d911f
08:44 dalek parrot/m0: 706939f | jimmy++ | src/m0/c/m0_ops.c:
08:44 dalek parrot/m0: fixed some known bugs
08:44 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/706939fdde
08:47 bacek_at_work nine, pong
08:47 bacek_at_work msg moritz https://gist.github.com/2299766
08:47 aloha OK. I'll deliver the message.
08:48 bacek_at_work msg moritz ignore it for now...
08:48 aloha OK. I'll deliver the message.
08:48 nine bacek_at_work: about those Parrot_pa_* problems whiteknight asked you about
08:48 * moritz ignores
08:48 bacek_at_work nine, can you describe it in few words?
08:49 nine bacek_at_work: My problem is that other interp's PMCs end up on the GC's work_list, dirty_list and objects lists even though I added assertions in every place where objects are inserted into those lists and these assertions do not find anything.
08:50 bacek_at_work nine, hmm. Did you change gc_gms_init to actually allocate new pools?
08:51 nine bacek_at_work: yes, I removed the check for parent_interpreter so all GCs unconditionally allocate their own pools
08:51 bacek_at_work moritz, can you try this patch (newer version of same gist)?
08:51 nine bacek_at_work: my current work version is at git@github.com:niner/parrot.git threads_playground if you want to have a peek
08:52 bacek_at_work nine, oookey. I'll try.
08:53 nine bacek_at_work: if I didn't know better, I'd guess that malloc or realloc weren't thread safe. But that can't be, can it?
08:53 bacek_at_work nine, they are thread safe
08:54 nine bacek_at_work: many, many thanks anyway. Even a simple hint on how I might go on debugging this would be greatly appreciated
08:55 moritz bacek_at_work: will try
08:55 bacek_at_work moritz, thanks
08:57 bacek_at_work nine, I don't see anything in mark_pmc_header or process_dirty_list which can prevent handling of PMCs from other interp.
08:58 bacek_at_work nine, or it's in PARROT_ASSERT_INTERP macro?
08:58 nine bacek_at_work: yes it's this macro. It compares the pmc's orig_interp with interp
08:59 bacek_at_work nine, ok
09:00 nine bacek_at_work: with these assertions I found a lot of places where PMCs were leaking to other interps. But those all seem fixed. You can run examples/threads/moretasks.pir For me it usually throws an error after a couple of 100 iterations (each iteration is creating and scheduling 1000 tasks)
09:01 brambles joined #parrot
09:09 moritz bacek_at_work: rakudo fails to build on top of your parrot branch + patched NQP
09:09 moritz ./perl6 --setting=NULL --optimize=3 --target=pir  --output=src/gen/CORE.setting.pir src/gen/CORE.setting
09:09 moritz too few arguments: 0 passed, 9 expected
09:12 nine bacek_at_work: a couple of example backtraces: https://gist.github.com/2299878
09:12 bacek_at_work moritz, ouch. I'll look at it.
09:14 bacek_at_work nine, ok. Have to go home now. Try to look at it closely tonight.
09:17 dalek parrot/m0: 983bc85 | jimmy++ | src/m0/ (3 files):
09:17 dalek parrot/m0: add new deref_* ops
09:17 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/983bc85447
09:20 moritz bacek_at_work: I don't know how it got to compiling the setting in the first place, but I've tried it again, and it seems rakudo also needs patches
09:20 moritz bacek_at_work: and it's more than simple s/Context/Signature/
11:52 jsut_ joined #parrot
12:02 dalek parrot/m0: 80eecc2 | jimmy++ | t/m0/integration/m0_ (30 files):
12:02 dalek parrot/m0: update m0 tests to use new deref_* ops
12:02 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/80eecc20be
12:06 whiteknight joined #parrot
12:13 whiteknight joined #parrot
12:14 PacoAir joined #parrot
12:15 whiteknight good morning, #parrot
12:15 tadzik good morning whiteknight
12:17 whiteknight hello tadzik
12:17 whiteknight tadzik: Have there been any students interested in doing rakudo projects for GSOC?
12:18 tadzik whiteknight: well, I were :) But I think that I'll leave Parrot slots to Parrot, now that I have a dayjob. Plus my idea was completely unrelated to Parrot itself
12:18 whiteknight Parrot only has about 3 students so far, so we may have slots open unless we get more proposals by friday
12:19 tadzik I was planning to write a full-blown, useful and usable web framework
12:19 nine tadzik++
12:19 tadzik there was also some other idea, but I don't remember what it was
12:19 moritz db stuff?
12:19 tadzik nah, something else
12:19 moritz oh wait, I think that was my idea, not yours :-)
12:19 tadzik something colomon had in mind
12:20 tadzik oh, module management that is. Cpan6 and all this
12:23 dalek parrot/m0: 06dcd16 | jimmy++ | src/m0/c/ (2 files):
12:23 dalek parrot/m0: update Makefile so we can do make test for m0
12:23 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/06dcd16618
12:24 tadzik whiteknight: so what's for dinner this summer? 6model, PACT?
12:28 whiteknight tadzik: benabik proposed both PACT and 6model, but obviously can't do both
12:28 whiteknight I think concensus is that benabik would do very well on PACT, and other people can work on 6model
12:28 tadzik yeah, shame
12:28 tadzik 6model would make a nice Rakudo project for someone
12:29 whiteknight it's not the kind of project we would give to just any GSOC student. It's so fundamental that it would have to be done by somebody with some familiarity
12:29 tadzik well, a project that a potential Perl 6 student may be interested in
12:29 tadzik aye
12:29 whiteknight tadzik: yes, if you know anybody please send them to talk to me!
12:30 tadzik nothing comes to me mind, sadly
12:36 brrt joined #parrot
12:39 hercynium joined #parrot
12:41 brrt joined #parrot
13:24 dalek rakudo/nom: f607966 | moritz++ | tools/build/check-versions.pl:
13:24 dalek rakudo/nom: [build] recommend --with-parrot with absolute paths, because the build system does not like relative paths
13:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f607966935
13:24 dalek rakudo/accessor-sigils: 0082372 | moritz++ | src/Perl6/Actions.pm:
13:24 dalek rakudo/accessor-sigils: @.foo, $.foo and %.foo now enforce context
13:24 dalek rakudo/accessor-sigils:
13:24 dalek rakudo/accessor-sigils: Note that this breaks rw attributes
13:24 dalek rakudo/accessor-sigils: review: https://github.com/rakudo/rakudo/commit/008237200d
13:24 dalek rakudo/accessor-sigils: 915e0da | moritz++ | src/core/ (2 files):
13:24 dalek rakudo/accessor-sigils: be more careful with sigils in the setting
13:24 dalek rakudo/accessor-sigils: review: https://github.com/rakudo/rakudo/commit/915e0dac96
13:56 dalek parrot/m0: 0679b0d | jimmy++ | / (4 files):
13:56 dalek parrot/m0: fixed bugs, pass m0_convert_i_n.m0
13:56 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/0679b0da8f
14:14 benabik joined #parrot
14:16 benabik o/ #parrot
14:17 dalek parrot/m0: 3934ac6 | jimmy++ | / (6 files):
14:17 dalek parrot/m0: fixed various bug, and add debug info to Makefile
14:17 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/3934ac6256
14:29 whiteknight hello benabik
14:29 benabik o/ whiteknight, how's things?
14:37 whiteknight benabik: going well
14:40 JimmyZ joined #parrot
14:45 lateau joined #parrot
14:46 benabik joined #parrot
15:05 dalek Rosella: 21c507a | Whiteknight++ | src/unstable/xml/Xml.winxed:
15:05 dalek Rosella: [Xml] fix parsing of frontmatter. Allow comments before, between, and after the xml header tag and the DOCTYPE tag, if either are provided
15:05 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/21c507acbd
15:06 dalek Rosella: 835e553 | Whiteknight++ | src/unstable/xml/ (3 files):
15:06 dalek Rosella: [Xml] Add new datatype for DtdHeader, fix up some document logic to use it
15:06 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/835e553e3a
15:06 dalek Rosella: d37c6b2 | Whiteknight++ | src/unstable/xml/ (2 files):
15:06 dalek Rosella: [Xml] Fill out a few methods for DtdHeader, and use it during the parse
15:06 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/d37c6b28d4
15:06 dalek Rosella: 1c53a26 | Whiteknight++ | src/unstable/xml/ (2 files):
15:06 dalek Rosella: [Xml] Implement namespace parsing for tags
15:06 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/1c53a26a57
15:06 dalek Rosella: 1b43e8d | Whiteknight++ | src/ (2 files):
15:06 dalek Rosella: [Xml] Added better bounds checking to parsing routines. Added better error handling and reporting when end-of-input is detected.
15:06 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/1b43e8da3f
15:06 benabik I'm full testing ripping out that sub_mark function that nine++ noticed.
15:07 benabik (Parrot_sub_mark_context_start)
15:11 whiteknight I don't remember that function
15:13 benabik All it does is increment a static variable that nobody uses.
15:15 whiteknight oh, good then
15:15 whiteknight BALEETED
15:16 benabik It seems like it was designed to let Subs know they were in the middle of a GC mark pass.
15:17 benabik Let me pull out my pickaxe and see what's up with it.
15:17 * benabik loves `git log -S`
15:21 * JimmyZ wonders how parrot uses union regs_ni, but I0 and N0 won't fight
15:22 benabik I don't see a union regs_ni anywhere.
15:23 JimmyZ benabik: src/pmc/callcontext.pmc
15:24 JimmyZ benabik: and include/parrot/context.h
15:25 benabik ...
15:26 benabik That union is someone being clever.
15:26 benabik ctx.bp is *(union { INTVAL*, FLOATVAL* }).  below that pointer are N regs and above are I.
15:27 benabik It's not that they're stored in the same place, it's that they're accessed via one pointer.
15:27 benabik ref: diagram at src/call/context.c:24
15:28 benabik There's a similar Regs_ps union that's used the same way for ctx.bp_ps and the P/S registers.
15:30 benabik Wow.  Looks like the context_gc_mark variable was only used by mark_context(), which was removed by bacek in 2009 in the context_pmc3 branch
15:35 dmalcolm joined #parrot
15:37 dalek parrot: 7f7caad | benabik++ | / (3 files):
15:37 dalek parrot: Remove unused context_gc_mark variable
15:37 dalek parrot:
15:37 dalek parrot: Also removes the Parrot_sub_mark_context_start function, whose only
15:37 dalek parrot: purpose was to increment that variable.
15:37 dalek parrot:
15:37 dalek parrot: It looks like the variable was designed to prevent corruption of
15:37 dalek parrot: contexts while performing GC.  However, nothing has used the variable
15:37 dalek parrot: since 540d4c3 "Merge context_pmc3 branch into trunk." back in 2009.
15:37 dalek parrot:
15:37 dalek parrot: Found by nine++
15:37 dalek parrot: review: https://github.com/parrot/parrot/commit/7f7caad5af
15:42 * JimmyZ looks
15:46 JimmyZ parrot is too magic :(
15:50 PerlJam I'd say it's not magic enough
15:51 masak (and you could both be right)
15:58 benabik Parrots internals are often too magical, and it's externals are sometimes the wrong magic.  Bad combination.  But getting better, I think.
15:59 * JimmyZ sleeps
16:07 brrt left #parrot
16:20 brambles joined #parrot
16:20 brambles_ joined #parrot
16:26 davidfetter joined #parrot
16:50 fperrad joined #parrot
17:21 contingencyplan joined #parrot
17:49 d4l3k_ joined #parrot
17:54 preflex joined #parrot
18:16 cotto ~~
18:22 whiteknight hello cotto
18:36 brrt joined #parrot
18:38 brrt hello everybody, i was urged to stop by this channel to talk about possible rakudo projects for gsoc
18:38 brrt and actually i'm rather interested :-)
18:40 benabik brrt: Greetings and salutations!  I'm another GSoC student and am happy to help where I can.
18:40 benabik brrt: whiteknight is vaguely in charge of things this year, I think.
18:40 whiteknight brrt: Awesome! What kinds of projects are you interested in?
18:41 benabik And he's even paying attention when poked.  Excellent.
18:41 whiteknight benabik: I'm the org admin and head cheerleader
18:42 benabik Rah-Rah!  Sis-boom-ba!
18:45 brrt whiteknight: ehm, anything rakudo :-)
18:45 brrt i was actually kind of excited about jaesop, but then i learned about perl6
18:45 whiteknight brrt: Okay, what is your background? Do you want to do C-level stuff inside Parrot, or do somethng at a higher level?
18:46 whiteknight moritz: ping
18:47 brrt joined #parrot
18:48 brrt first of all, i'm someone with a rather poor laptop battery :-)
18:49 whiteknight brrt: it's okay, you're on a student's budget. We've all been there before :)
18:49 brrt other than that, I study biology in the netherlands
18:49 brrt have been programming since 16, started with C
18:51 brrt not really a compsci background obviously
18:51 whiteknight that's alright, compsci is not a requirement
18:54 lucian_ joined #parrot
18:55 brrt very long story short, i had the idea of implementing bioperl6 using rakudo
18:55 benabik bioperl is indeed a long story
18:55 brrt noticed that there were quite a few nice things missing on rakudo
18:56 brrt so i thought 'hey lets stop by'
18:56 brrt anyway, i'm ok with C actually
19:00 whiteknight brrt: I don't know a lot about bioperl or Rakudo projects. dukeleto, Coke, Moritz, or tadzik are probably better resources
19:01 dukeleto ~~
19:01 whiteknight dukeleto: What do you know about bioperl?
19:01 brrt i've been at the bioperl channel, actually
19:01 brrt there was a project to 'port' it to perl6
19:01 whiteknight oh, okay
19:02 brrt or, redesign it to perl6
19:02 brrt i checked that out, doesn't run very well on current rakudo
19:02 whiteknight okay
19:03 dukeleto whiteknight: i have a commit bit to bioperl, does that count?
19:03 whiteknight dukeleto: maybe  :)
19:03 whiteknight dukeleto: brrt here is a prospective GSOC student, likes perl6 and bioperl
19:04 dukeleto brrt: howdy
19:04 dukeleto brrt: what exactly are you interested in? I haven't backlogged in here, yet
19:06 brrt very long story short: i wanted to work on bioperl6
19:06 brrt but not everything in rakudo works yet
19:07 brrt so i can either work on bioperl6 arround the stuff that isn't there yet
19:07 brrt or implement those things for rakudo
19:07 brrt or both
19:08 dukeleto brrt: bioperl6 is a huge undertaking. Hundreds of people-years of work. You need to think of a more focused topic
19:09 dukeleto brrt: which coding languages are you familiar with?
19:09 dukeleto brrt: you may also want to contact rbuels@gmail.com, he is the gsoc org admin for the Open Bioinformatics Foundation
19:10 * PerlJam suspects that a custom repr for DNA/RNA sequences would be useful for bioperl6
19:11 brrt i was thinking of writing file format importers / exporters
19:11 brrt possibly with an API similar to regular files
19:11 PerlJam brrt: what formats do bio people use besides fasta?
19:12 brrt genbank, for one
19:12 brrt i'm not really that experienced in bio-informatics in fact :-)
19:12 brrt but there are many
19:12 brrt fasta doesn't allow for much metadata
19:13 PerlJam I thought genbank was more of a database than a file format
19:13 PerlJam (I know very little about bioinformatics as well :)
19:13 brrt it is a database, but its output is a specific file format
19:27 brrt dukeleto: thanks anyway :-)
19:29 dukeleto PerlJam: you don't want to know about bio file formats. Your eyes will bleed.
19:40 brrt I'm actually most familiar with *shock* PHP
19:40 brrt folloed by perl, java, C, others
19:40 benabik PHP makes me sad.
19:40 brrt me too
19:41 brrt php pays bills
19:41 whiteknight we need a PHP parser for Parrot
19:42 benabik I'm hoping Parrot will pay my bills.  Sadly coming up with original research in VM land is difficult.
19:42 whiteknight which actually should be easier than JavaScript, since PHP's object model is much simpler
19:42 brrt it is
19:42 cotto the language itself isn't that hairy
19:42 brrt although php 5.4 added traits
19:42 cotto stupid, but not especially hairy
19:42 brrt the library is hairy
19:42 cotto disconcertingly so
19:43 brrt that would actually be kind of fun
19:44 cotto implementing the library would be fun?
19:44 brrt no, the parser
19:45 whiteknight more fun would be implementing a parser for PHP and a new non-hairy library
19:45 whiteknight of course, that wouldn't be very attractive to other PHP developers
19:45 whiteknight of course, Parrot does have built-in unicode support already, so that would be a big benefit
19:45 cotto yeah.  you'd have a crappy language that nobody would care about instead of a crappy language that everyone knows
19:45 brrt cotto: beat me to it
19:45 whiteknight :)
19:46 cotto a big part of the difficulty of building a competing php implementation is *not* adding features that the language desperately needs
19:47 cotto you have to show that it's a viable replacement first
19:47 nine But why would anyone use it if it's not better in some way?
19:48 cotto first it has to be as good, then you can make it better
19:48 cotto you'll spend a lot of time just getting to the baseline
19:48 benabik "Runs 90%+ of existing code" is basically a requirement to get people to care.
19:49 nine Well if we have learned anything from Python 3 and Perl 6 is that you absolutely need compatability yes
19:51 benabik It's more vital for "new implementation" than "new version of the language", I'd think.
19:51 cotto yes
19:53 brrt does parrot have a ffi?
19:53 moritz whiteknight: pong
19:53 whiteknight yes. We use libffi and also need dyncall support
19:54 whiteknight moritz: brrt here is a prospective GSOC student interested in Rakudo-related projects
19:55 moritz whiteknight: ah right, we have talked a bit on #perl6
19:58 brrt we did :-) but i'm not sure where to start w/regards to rakudo
19:59 Hunger joined #parrot
19:59 Coke nine: I don't think any implementation is going to have p5 compatibility in time for 6.0
19:59 Coke (if ever, at this point.)
19:59 nine Coke: that's too sad
20:00 Coke eh. if I want perl5, I know where it is.
20:00 Coke (everywhere)
20:00 nine Coke: strange how we can seamlessly execute Python code from within Perl 5 but not Perl 5 from Perl 6
20:01 PerlJam nine: Perl 5 has 25 years or so of implementation maturity, Perl 6 ... not so much.
20:01 * Coke wonders if there's any point to doing anything with partcl, these days.
20:01 brrt (you can execute python from perl5? seriously?)
20:02 Coke the PIR implementation is doomed to die with PIR, and the nqp version is running on an old stack, despite best efforts to keep it moving. also, no one who uses tcl would use tcl on parrot, since it buys them absolutely nothing.
20:02 nine brrt: Inline::Python uses an embedded Python interpreter. And you can do basically everything imaginable
20:03 nine PerlJam: of course. It's Coke's "if ever" which irritates me
20:03 Coke what IS the draw to implementing pre-existing languages on parrot?
20:03 whiteknight Coke: interoperability, if we can provide it. Improved feature set and tooling
20:03 whiteknight eventually
20:03 Coke whiteknight: last time we had interop, it got lost, yes?
20:03 cotto yes
20:03 whiteknight Coke: depends what you mean by interop
20:04 cotto to the degree we had it
20:04 Coke whiteknight: if we don't have a thing we can point to and say, "this is what parrot means by interop" yet, we're doomed. ;)
20:04 PerlJam whiteknight: (continuing Coke's devil's advocate streak), why is interop important and to whom?
20:04 whiteknight Coke: I have plenty of examples of using NQP, Winxed and even some JavaScript code together in certain programs seamlessly
20:05 whiteknight Rakudo we can do more with when Parrot is completely on 6model
20:05 PerlJam whiteknight: I mean, the world has largely gotten on without it all these years ...
20:05 Coke one of those languages is NIH; having javascript and, say, lua would be more helpful.
20:05 whiteknight PerlJam: And the world has largely gotten on without perl6, yet we think it's worthwhile to make it
20:05 whiteknight PerlJam, and before Python came along, the world got on without that just fine
20:05 Coke OH SNAP
20:06 PerlJam whiteknight: then ... once we do have it ... who do we sell it do?
20:06 whiteknight PerlJam: what do you mean "sell it"? like get people to use it or actually monetize it?
20:07 PerlJam whiteknight: use it
20:07 nine PerlJam: the world has interop. It has C#, VB.NET, IronPython, Iron... on the CLR. It has Java, Scalar and whatnot on the JVM. It has several Inline:: modules on Perl. There clearly is a need.
20:07 PerlJam What's the answer to: I use technology X right now, why would I want to use Parrot?
20:07 whiteknight PerlJam: If we can offer a decent compiler for a language and say "look at what we have: We have a bytecode format, and threading, and a good object model,  and unicode support and other things", that will be compelling
20:08 whiteknight and if we have a huge library of modules and say "You can use this JavaScript library in your Perl6 code just fine, and there's no need to rewrite it in your own language in order to use it)
20:08 whiteknight or, "we have bindings to native libraries that you can just reuse without needing to write any crappy C-level glue code"
20:09 whiteknight The big tragedy of something like CPAN is that you can't take all that hard work and use it in your Python project
20:09 whiteknight How many problems have been solved on CPAN, but those solutions aren't available to people because they aren't writing code in perl? What a waste
20:09 Coke accessing CPAN was why I hacked on partcl for so long. but the best plan was "you'll have to write a lot of wrapper code to make it work". Coke sad.
20:10 cotto interestingly, I used some code from cpan on a drupal project earlier this week
20:10 * Coke doesn't mean to turn this into a whinge fest. Coke just misses hacking on something like partcl.
20:10 whiteknight The problem with that argument, of course, is that Perl5 is such that we can't really duplicate it. It's a bad example of interoperability
20:11 PerlJam whiteknight: a couple of things occur to me.  To be "compelling" a Parrot-based language will have to be at least on par with another implementation or, better, *beat* another implementation in some way (commonly people will go with execution speed, but there may be other benefits)
20:11 PerlJam whiteknight: and, for "interop" to be compelling it'll have to be drop-dead easy.
20:12 PerlJam (and ubiquitous :)
20:12 whiteknight PerlJam: Motivations are varied. IronPython is probably no better at performance or most features than other Python implementations
20:13 whiteknight If I say that we have a ModParrot module for Apache, suddenly you can use any Parrot-enabled language in your webserver without an ounce of additional effort
20:13 whiteknight same with a Parrot plugin for any other program. Script any program in any language with no overhead, so long as there is a parrot plugin
20:13 PerlJam whiteknight: how many parrot-enabled languages are there?
20:14 PerlJam whiteknight: of those, how many are already "popular" ?
20:14 whiteknight PerlJam: Many, in various states of activity and disrepair. The fact that they don't exist yet in a workable state doesn't mean we shouldn't work towards them
20:14 whiteknight the goal is a good one, and many people want to work towards it
20:15 whiteknight Rakudo Perl6 is our flagship compiler, and has been for some time, other compilers haven't drawn as much developer attention yet
20:15 PerlJam whiteknight: sure ... I'm just saying that they need to be reasonable complete to even start this conversation with someone from the outside.
20:15 whiteknight I'm not starting this conversation with somebody from the outside yet
20:15 PerlJam aye.
20:16 whiteknight I'm just saying that our goals are clear, and I think they have the potential to bring real value
20:16 kid51 joined #parrot
20:16 whiteknight Whether we can reach those goals and do it before the world passes us by....that's a different question
20:16 * kid51 was backscrolling and noticed interesting discussion
20:17 PerlJam (for some reason I find I need to renew my faith that there's a path and that we're on it and there is goodness at the end)
20:17 brrt PerlJam: read the synopses :-)
20:17 PerlJam brrt: Parrot doesn't have synopses :)
20:17 whiteknight PerlJam: If we can get a JavaScript compiler up to good working order soon, and I think we can, we can show clear interop between JavaScript and Rakudo
20:18 whiteknight and if there's a hotter language in the world right now than JavaScript, I don't know about it
20:18 moritz go
20:18 whiteknight And after that if we can get Python and/or Ruby working on Parrot and interoperating with Rakudo and JavaScript, that will be killer
20:19 brrt i had a discussion with my boss today, who didn't regard javascript a 'real' programming language
20:19 brrt in 2012, no less
20:20 whiteknight You tell a person that we have a VM that can compile, optimize, and run Python and JavaScript together in a single process without clunky overhead, that will draw some attention
20:20 Coke brrt: your boss is crazy. ;)
20:20 whiteknight Use a JavaScript library from the node.js collection in a Python program without having to do any special work at all
20:20 whiteknight brrt: is he a COBOL guy?
20:20 cotto brrt: your boss has indicated how seriously you should take him
20:21 kid51 There have been 2 articles in NY Times in last week that refer to intro level comp sci courses that are using HLLs to teach comp sci concepts.
20:21 Coke whiteknight: we /had/ modparrot.
20:21 kid51 The languages in question: Ruby and Python
20:21 whiteknight Coke: yes, and nobody worked on it.
20:21 kid51 Both potentially Parrot-based.
20:21 PerlJam cotto: nice :)
20:22 brrt my boss is more of a sysadmin guy :-)
20:22 Coke whiteknight: not after things changed out from underneath it, no.
20:22 brrt but he knows it, though, so its ok :-)
20:22 whiteknight Coke: We still need to put the effort in to fix it. That effort keeps growing over time
20:23 PerlJam Hmm
20:23 whiteknight I keep hoping we'd find a GSOC student to jump-start it
20:24 brrt oh, but modparrot is in C, right?
20:24 whiteknight brrt: yes
20:25 PerlJam It would be nice to have a programming environment where you could switch between languages at will.  a multi-languageREPL
20:25 whiteknight PerlJam: yes
20:25 brrt that could be a thing
20:25 whiteknight brrt: If you're interested in that, I'll mail flowers to your doorstep
20:25 brrt actually... i am :-)
20:26 brrt but i was wondering, you were giving it 5 stars of difficulty on the difficulty list
20:26 brrt why?
20:26 whiteknight I don't know why. I don't think I gave it that many stars
20:26 PerlJam brrt: did you see above where he said "effort keeps growing over time" ?  ;)
20:26 brrt i guess i did
20:26 whiteknight There is an existing ModParrot project that implements most of the logic, and we have a new Embedding interface that we need to upgrade it to
20:27 brrt internal stuff
20:27 brrt so many projects, so little time!
20:27 whiteknight theoretically, it's a straight-forward update and then you use it to build lots of cool stuff
20:28 brrt ... it is really interesting in fact
20:28 brrt is there documentation on the Embedding interface?
20:29 whiteknight https://github.com/parrot/parrot​/blob/master/docs/embed_new.pod this is a start
20:30 whiteknight https://github.com/parrot/p​arrot/tree/master/src/embed  <-- the code for it, which should be relatively straight forward
20:30 whiteknight I have to go catch a train now, I'll be back on later tonight to talk more if you want
20:31 brrt later tonight = sleep time for me :-)
20:31 brrt GMT+2
20:31 whiteknight okay, tomorrow morning then
20:31 brrt i will be there
20:31 whiteknight awesome. See you then.
21:12 Justin joined #parrot
21:12 Justin Good afternoon
21:12 tadzik hello Justin
21:15 dukeleto Justin: howdy
21:20 Justin Im good. nice to finally talk to you @dukeleto.
21:21 Justin and hello @tadzik
22:57 PacoAir_ joined #parrot
22:59 wagle joined #parrot
23:00 jevin joined #parrot
23:00 autark joined #parrot
23:00 masak joined #parrot
23:00 TonyC joined #parrot
23:01 pjcj joined #parrot
23:05 Hunger joined #parrot
23:05 he joined #parrot
23:05 PerlJam joined #parrot
23:11 Util joined #parrot
23:13 knewt joined #parrot
23:22 slavorg joined #parrot
23:23 bacek_at_work ~~
23:23 bacek_at_work opbots names

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

Parrot | source cross referenced