Camelia, the Perl 6 bug

IRC log for #parrot, 2009-05-05

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:03 * Coke reads chromatic's send.
00:07 tetragon joined #parrot
00:15 bacek_ joined #parrot
00:16 bacek_ hi again
00:16 purl oh, you're back!
00:25 kid51 Does anyone have any opinion on https://trac.parrot.org/parrot/ticket/440, i.e., does 'pbc_info' serve any useful purpose?
00:26 rg cotto: it seems like you would want to bump PBC_COMPAT. after svn up, my existing perl6.pbc stopped to work. worked again after rebuild.
00:26 kid51 And, does anyone have complaints/comments about https://trac.parrot.org/parrot/ticket/577 ?
00:32 rg kid51: fyi there's also notfound's pbc_checker.cpp in examples/tools.
00:34 rg the difference is that pbc_checker.cpp does not use parrot's code, so it tests that the pbc conforms to spec, whereas pbc_{dump,info} is more of an example how to use the same functions parrot uses (or at least that's my guess).
00:42 kid51 rg:  Hmm, I didn't know it was a 3-way choice.
00:42 eternaleye joined #parrot
00:42 kid51 But if pbc_info ... or any of these executables ... is merely example code, should it really be included in every call to 'make'?
00:43 kid51 To my untrained eye, pbc_dump did look useful -- whereas pbc_info did not.
00:43 Casan joined #parrot
00:47 rg i haven't really looked at either of them. i guess since the ticket even suggests moving it to examples, that's fine. i really can't say if there's anything to be learned from it. maybe bacek can tell?
00:50 dalek parrot: r38474 | chromatic++ | trunk/docs/book/ch03_pir.pod:
00:50 dalek parrot: [book] Revised the first quarter of Chapter 3.
00:50 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38474/
01:19 dalek parrot: r38475 | jkeenan++ | trunk/config/gen/makefiles/root.in:
01:19 dalek parrot: Reformat inline comment to fit in 78-char screen better.
01:19 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38475/
01:20 dalek rakudo: r4d7fe56 | pmichaud++ | src/ops/perl6.ops:
01:20 dalek rakudo: Revise d86c014 (NotFound++) a bit so that we're not mixing our types as much.
01:21 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​d7fe56044f338d8f25b5be96faf584a3183ffb6
02:03 mikehh smolder is reporting an error in uploading even though it does so successfully
02:03 rg mikehh: filed a ticket today.
02:05 mikehh rg: good - I've been having problems since it went down last weekend and then again this weekend
02:11 s1n joined #parrot
02:14 mikehh also if I click on the download link in the report it sends me to an error page
02:15 mikehh Error - You shouldn't be here. Consider yourself warned.
02:17 cotto can anyone confirm that the vtinit merge breaks pbc compatibility?
02:18 rg cotto: you mean anyone else than me?
02:18 petdance joined #parrot
02:19 bacek_ cotto: it shouldn't break it.
02:19 petdance Im' looking at splint's handling of memory leaks
02:21 dalek parrot: r38476 | chromatic++ | trunk/src/oo.c:
02:21 dalek parrot: [oo] Reduced the number of PMCs created in Parrot_ComputeMRO_C3, which is a
02:21 dalek parrot: modest optimization.
02:21 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38476/
02:21 rg i guess many people here won't keep pbcs around. i only did because my cron job updated parrot for me ;)
02:32 cotto bacek_, that's what I'm thinking, but rg's evidence suggests otherwise.
02:35 cotto Hmm.  I'll see if pbc from pre-merge can be used post-merge.
02:35 darbelo joined #parrot
02:37 rg cotto: i don't think there have been any other significant commits in the previous 8 hours, that's why i'm suspecting the merge. i could be wrong though.
02:37 cotto darbelo, will you want to report at #ps this week?
02:39 darbelo I might be a bit late for it, but if I am there I'll do it.
02:40 cotto ok
02:43 cotto I'll consider it your responsibility from this point on, unless you say otherwise.
02:45 darbelo ok
02:54 janus joined #parrot
03:00 janus` joined #parrot
03:14 petdance joined #parrot
03:16 dalek parrot: r38477 | chromatic++ | trunk/src/pmc/class.pmc:
03:16 dalek parrot: [PMC] Revised MRO generation so that the (relatively expensive C3) MRO
03:16 dalek parrot: resolution only occurs when absolutely necessary -- that is, when it differs
03:16 dalek parrot: substantially from any parent's MRO.  A class with no parents needs no MRO
03:16 dalek parrot: calculation.  A class with one parent can borrow its parent's MRO calculation.
03:16 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38477/
03:19 bacek_ cotto: ping
03:29 dalek parrot: r38478 | chromatic++ | trunk/src/oo.c:
03:29 dalek parrot: [oo] Replaced a method invocation with the equivalent VTABLE invocation when
03:29 dalek parrot: computing C3 MRO; this makes Rakudo start up around 8.5% faster.  Combined with
03:29 dalek parrot: previous optimizations, Rakudo starts up over 10% faster now.
03:29 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38478/
03:33 cotto bacek_, pong
03:40 bacek_ cotto: I want one more commit or tt528 branch :)
03:40 cotto ?
03:41 bacek_ marking vtable functions as static and remove them from headers
03:41 cotto if it works, I don't see the need to make a branch for that (and the vtinit branch was already merged)
03:46 bacek_ ok. It doesn't work. Someone calling functions directly.
03:47 cotto That shouldn't be happening anymore.
03:47 tetragon joined #parrot
03:48 bacek_ e.g. line 414 in object.pmc
03:50 cotto easy fix
03:50 purl easy fix is just to change the type to Str
03:50 bacek_ this one - yes.
03:50 bacek_ src/pmc_freeze.c. lines 39, 43, 1367, 1753
03:51 cotto you got it?
03:51 bacek_ what do you mean?
03:52 cotto are you going to fix it?
03:53 bacek_ Can do. But I'm at $dayjob now. And going to another meeting...
03:54 cotto ok
03:54 cotto I'll let you get it whenever you can.
03:54 cotto afk
04:18 dalek parrot: r38479 | petdance++ | trunk (10 files):
04:18 dalek parrot: Added some more splint instrumentation in the headerizer
04:18 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38479/
04:47 dalek parrot: r38480 | petdance++ | trunk/config/gen/makefiles/root.in:
04:47 dalek parrot: Ignore the splint warning about str*() functions being reserved
04:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38480/
04:47 dalek parrot: r38481 | petdance++ | trunk (2 files):
04:47 dalek parrot: Parrot_warn() does nothave to have its function result checked
04:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38481/
04:57 dalek parrot: r38482 | petdance++ | trunk/src/debug.c:
04:57 dalek parrot: use size_t instead of unsigned int in one place
04:57 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38482/
05:00 dalek parrot: r38483 | allison++ | trunk/docs/pdds/draft/pdd30_install.pod:
05:00 dalek parrot: [pdd] Cleaning up install PDD, preparing to launch out of draft.
05:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38483/
05:03 dalek parrot: r38484 | allison++ | trunk (1 files):
05:03 dalek parrot: [pdd] Launching install PDD out of draft.
05:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38484/
05:36 dalek parrot: r38485 | petdance++ | trunk/config/gen/makefiles/root.in:
05:36 dalek parrot: working on more splint flags
05:36 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38485/
05:37 Infinoid since we've already released 1.0 and then 1.1, the eventual goal of "Parrot 1.0 release" on http://www.parrot.org/foun​dation/grants/nlnet-grant seems a little confusing
05:41 cotto we have a stub security model implementation?
05:41 afk_coke Infinoid: that grant is over.
05:58 dalek parrot: r38486 | petdance++ | trunk/src/spf_render.c:
05:58 dalek parrot: assign characters to characters
05:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38486/
06:20 uniejo joined #parrot
06:21 masak joined #parrot
06:52 iblechbot joined #parrot
06:53 petdance joined #parrot
06:53 petdance__ joined #parrot
07:14 dalek rakudo: r4d3a38f | (Moritz Lenz)++ | t/spectest.data:
07:14 dalek rakudo: run socket tests, mberendes++
07:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​d3a38f97e57f91ffca7289ace25dbf22513e2b2
07:26 dalek parrot: r38487 | chromatic++ | trunk/src/pmc/class.pmc:
07:26 dalek parrot: [PMC] Fixed a compiler warning introduced by accident in r38477.
07:26 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38487/
07:39 dalek parrot: r38488 | chromatic++ | trunk/src/oo.c:
07:39 dalek parrot: [oo] Removed an unnecessary PMC creation from C3_merge.  This is a very modest
07:39 dalek parrot: improvement in startup time.
07:39 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38488/
07:45 dalek parrot: r38489 | cotto++ | trunk/lib/Parrot/Pmc2c/PMC/default.pm:
07:45 dalek parrot: [pmc2c] avoid a compiler warning by using an int as a PMC id
07:45 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38489/
07:59 dalek xml: rb5782d4 | (Francois Perrad)++ |  (2 files):
07:59 dalek xml: check duplicated attributes
07:59 dalek xml: review: http://github.com/fperrad/xml/commit/b5​782d4d349c4e8817bb9cf58d30c39ba406ab20
08:00 cotto joined #parrot
08:17 donaldh joined #parrot
08:21 elmex joined #parrot
08:44 elmex joined #parrot
09:03 HG` joined #parrot
09:16 donaldh_ joined #parrot
09:29 HG` joined #parrot
09:55 fperrad joined #parrot
10:14 muixirt joined #parrot
10:17 muixirt the maximum sub recursion depth is hardwired, will that change? Or is there a command line option to override it?
10:22 moritz muixirt: there was a thread on that by Coke on parrot-dev
10:22 muixirt moritz, ok
10:23 moritz muixirt: iirc allison answered that it can be changed by a method call on the interpreter object, or so
10:23 moritz http://groups.google.com/group/par​rot-dev/browse_thread/thread/db266​20e66525dd9/71f410e38be9bfe2?fwc=1
10:25 muixirt the usage info of parrot --help says something about a --jit-core option that seems to be vanished
10:29 muixirt a few months ago "./parrot languages/perl6/perl6.pbc did work, but not anymore (for me at least)
10:30 moritz that's because rakudo doesn't live in languages/perl6/ anymore, I guess
10:32 moritz http://rakudo.org/how-to-get-rakudo
10:33 muixirt yeah i meant languages/rakudo of course :-)
10:35 moritz so, what's wrong then?
10:35 moritz did you update rakudo and did a 'make clean; make' there?
10:36 muixirt I get: PackFile_unpack: This Parrot cannot read bytecode files with version 3.34.
10:36 muixirt i try a distclean
10:37 moritz a clean/realclean/whatever in parrot won't help
10:37 moritz you need to chdir to languages/rakudo
10:37 moritz and there
10:37 moritz git pull
10:37 purl git pull is not slow.
10:37 moritz make clean
10:37 moritz perl Confingure.pl
10:37 moritz make
10:38 muixirt i did that (i read the howto)
10:39 moritz then you should be able to run ./perl6
10:39 moritz if that still fails => bugreport
10:39 moritz (assuming your parrot is new enough, compared to build/PARROT_REVSION)
10:41 muixirt the perl6 executable doesn't accept optimization options (for parrot), right?
10:42 moritz no
10:42 moritz but the error you get indicates that rakudo's and parrot's version don't match
10:43 muixirt so running the perl6 executable gives you bad performance
10:44 moritz so does running a parrot without --optimize
10:44 moritz but with optimize it regularly segfaulted for me
10:44 muixirt i solved it, i ran make distclean in the parrot dir. and rebuilt it, it now works
10:45 moritz great
10:46 muixirt so, your rant about performance is ... premature? ;-)
10:48 moritz how so?
10:49 * muixirt switches to #perl6
11:05 bacek good evening
11:14 moritz actually rakudo's 'make spectest' works pretty well with an optimized parrot, I've just tried it
11:20 muixirt what do you mean "by optimized parrot"? proper optimizations options while compiling parrot or executing bytecode?
11:21 donaldh joined #parrot
11:22 moritz while compiling parrot
11:35 HG` joined #parrot
11:42 jonathan If any Parrot folks fancy some GC debugging (ya rly) then see http://rt.perl.org/rt3/Tic​ket/Display.html?id=65396 :-)
11:47 muixirt command line option for parrot like --jit-core or --fast-core vanished, but they are listed in the usage info
11:48 muixirt what is the general state of these "cores"?
11:49 moritz I think you can run them with -R $core_name
11:50 * moritz recompiles with --jitcapable
11:52 muixirt moritz, the usage info provided by parrot --help and documentation should reflect that
12:00 moritz muixirt: yes
12:00 moritz muixirt: care to open a ticket?
12:01 muixirt moritz, *innocent looking* I don't know how ...
12:02 moritz muixirt: https://trac.parrot.org/parrot/newticket (you have to create an account first)
12:05 ruoso joined #parrot
12:10 davidfetter joined #parrot
12:11 muixirt moritz, ticket created, please have a look
12:19 contingencyplan joined #parrot
12:20 moritz muixirt: looks good, thank you
12:31 donaldh left #parrot
12:39 moritz $ ./parrot/parrot -R jit  perl6.pbc -c -e '3'
12:39 moritz Segmentation fault
12:39 purl (Core dumped)
12:39 rg1 joined #parrot
12:40 muixirt moritz, :-)
12:43 moritz and 'make testj' in parrot produces lots of errors
12:44 moritz and is sloooow
12:44 * muixirt wonders where it stuffed that '3' in
12:44 moritz hm?
12:45 moritz the line above tries the Perl 6 program which consists of a single digit
12:45 muixirt testj?
12:45 purl testj is jit?
12:45 moritz testj is jit.
12:45 particle joined #parrot
12:45 moritz a normale 'make test', but uses the jit runcore
12:46 muixirt if compiled with --jitcapable?
12:46 moritz yes
12:47 Whiteknight joined #parrot
12:48 muixirt I reckon straighten out the bugs of jit hasn't a high priority
12:52 Whiteknight Tene: Ping
12:53 moritz and probably no fun
12:55 muixirt moritz, what brings me to what Lars Bak said ... :P
12:57 dalek rakudo: rd500f20 | jnthn++ | src/pmc/p6invocation.pmc:
12:57 dalek rakudo: More work on P6Invocation. There'll be room for optimization, but this serves well as at least a POC.
12:57 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​500f20dcd77c54324fafe600d4399b3774640fb
13:01 gryphon joined #parrot
13:16 Whiteknight Coke: ping
13:20 dalek rakudo: ree10f59 | jnthn++ |  (2 files):
13:20 dalek rakudo: Method on P6Invocation to check if we have more candidates, and tests for it.
13:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​e10f59487ea845c7e7b1717cfcb077da5293064
13:24 Casan joined #parrot
13:28 dalek joined #parrot
13:34 dalek joined #parrot
13:38 Infinoid cotto: There.  I know this is the 5th time I've said it in the past week and I've yet to be correct, but dalek should work now
13:38 Whiteknight Infinoid++
13:38 Infinoid hi Whiteknight
13:38 Whiteknight hello
13:44 mikehh make -k fulltest - codetest and examples-tests failures - Kubuntu Jaunty (9.04) Amd64 - all others PASS
13:46 Coke Whiteknight: pong
13:46 Coke messages erase
13:46 Whiteknight Coke, you can update the list of blogs at planet.parrotcode.org?
13:46 Coke As I said earlier, yes.
13:47 Whiteknight Robert gave me access to it, but I can't run the updater on this box
13:47 Whiteknight I'm sorry, I didn't know you said that before
13:47 mikehh apart from copyright test line length failures in docs/book/ch03_pir.pod and pdd30_install.pod
13:47 Tene Whiteknight: pong
13:48 Whiteknight Tene: I need the feed URL of your blog posts with the label "Parrot"
13:48 Whiteknight I lost it last night
13:48 Coke I think tene already has a blog in there.
13:48 Coke moment.
13:48 Tene Coke: yes, but it's grabbing everything, not just parrot-related
13:49 Tene http://blogs.gurulabs.com/cgi-bin/mt-search.cg​i?IncludeBlogs=13&tag=Parrot&limit=20
13:49 Coke now I can't find my planet checkout.
13:49 mikehh the pdd30_install.pod is a url type - I dont see how to get it down in size
13:52 Coke [http://blogs.gurulabs.com/stephen/atom.xml]
13:52 Coke name = Stephen Weeks
13:53 mikehh afk for a bit
13:53 Coke tene, going to go with: http://blogs.gurulabs.com/cgi-bin/mt-se​arch.cgi?IncludeBlogs=13&tag=Parrot
13:54 PacoLinux joined #parrot
13:54 Whiteknight Coke, and can you add this:
13:54 Whiteknight [http://wknight8111.blogspo​t.com/feeds/posts/-/Parrot]
13:54 Whiteknight name = Andrew Whitworth
13:54 Coke Whiteknight: "invalid content type: -"
13:54 Whiteknight shoot, sorry
13:54 Whiteknight [http://wknight8111.blogspot.co​m/feeds/posts/default/-/Parrot]
13:55 Whiteknight I'll decide what is and is not valid
13:55 Coke Whiteknight: added.
13:55 Coke it'll take a bit to propogate.
13:55 Whiteknight Coke++  # Thanks!
13:56 Coke planet?
13:56 purl i heard planet was a universal mystery, methinks.
13:56 Coke planet parrot?
13:56 purl planet parrot is probably an aggregate of any parrot-related blogs.
13:56 Coke planet parrot is also editable by coke
13:56 purl okay, Coke.
13:57 Coke planet parrot is also changable with a trac ticket.
13:57 purl okay, Coke.
13:57 Whiteknight it should also be edited by me eventually, once I get my damn act together
14:02 donaldh joined #parrot
14:36 particle1 joined #parrot
14:51 frodwith joined #parrot
15:08 fperrad joined #parrot
15:10 dalek rakudo: 8009acf | jnthn++ | src/parser/actions.pm:
15:10 dalek rakudo: Add lexical slot for dispatcher to store candidate list holder in methods.
15:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​009acf6a0f19eeb4864e4031a49aa2bf55466d9
15:12 riffraff joined #parrot
15:20 donaldh joined #parrot
15:43 iblechbot joined #parrot
15:55 dalek parrot: r38490 | NotFound++ | trunk/examples/nci/xlibtest.p6:
15:55 dalek parrot: [examples] more idiomatic perl6 in xlibtest.p6
15:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38490/
16:01 cognominal joined #parrot
16:10 Theory joined #parrot
16:10 donaldh left #parrot
16:20 uniejo joined #parrot
16:29 moritz #ps in 121
16:29 jonathan I was about to ask how far away that was...
16:29 jonathan This probably means dinner before #ps.
16:30 Coke me wonders why the installed libparrot.1.1.0.dylib has a dependancy on libparrot in the build dir.
16:37 particle1 that's just Wrong.
16:37 purl Fire and brimstone coming down from the skies. Rivers and seas boiling! Forty years of darkness, earthquakes, volcanos. The dead rising from the grave! Human sacrifice, dogs and cats living together... mass hysteria!
16:37 Infinoid Do we do a test install (into a tmpdir or somesuch) during "make test"?
16:40 fperrad left #parrot
16:41 Infinoid I don't see such a thing, but it sounds like something we need.  I'll see if I can knock something together
16:44 dalek parrot: r38491 | NotFound++ | trunk/src (2 files):
16:44 dalek parrot: [core] fix some external declarations of vtable functions, TT #640
16:44 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38491/
16:44 gryphon joined #parrot
16:51 gryphon joined #parrot
16:56 Coke comedy of errors.
16:56 Coke I despair of being able to build partcl against 1.4
16:57 NotFound Can I say again that I don't think that rpath usage was a good idea? ;)
16:57 Coke is osx even using rpath?
16:58 particle1 just use path like normal OSes, mkay?
16:58 Coke rpath seems to be in linux and mebbe solaris.
16:59 NotFound Coke: I don't know nothing about Mac OS, but looks like we are using some way of fixing the path for the dynamic libs.
17:00 Coke yes, I wrote that. it's post install, a workaround for NOT using rpath.
17:00 Coke s/wrote/stole
17:00 dalek parrot: r38492 | jonathan++ | trunk (2 files):
17:00 dalek parrot: [p6object] Add variants of some meta-class methods that take the object to operate on as the first parameter, as is Perl 6 spec. Move the main implementation to these, have the existing variants forward to them and document them as deprecated.
17:00 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38492/
17:00 Coke do the build. the build links against everything locally; copy it all out and then switch out the lib deps.
17:00 Coke except that blib/lib/libparrot* seems to depend on itself.
17:01 Coke $ ldd blib/lib/libparrot.dylib
17:01 Coke blib/lib/libparrot.dylib: /Users/coke/research/parro​t/blib/lib/libparrot.dylib (compatibility version 0.0.0, current version 0.0.0)
17:01 NotFound Coke: maybe that is related to the problem mentioned in my last commit?
17:01 Coke (where ldd is otool -arch all -L $*)
17:01 Coke ldd?
17:01 purl ldd is another useful thingie that comes with linux or doesn't really do anything on GNU/Linux systems except exec the program with magical environment variables that make the dynamic loader show its dependencies or the Linux Device Drivers book or "otool" on OS X.
17:02 Coke r38491 ?
17:02 NotFound O'Tool?
17:02 NotFound Coke: yes
17:02 Coke wouldn't libparrot depending on itself be a linking issue?
17:03 * Coke ups and rebuilds to check.
17:03 NotFound Coke: fake declarations can be the cause of linking issues
17:03 barney joined #parrot
17:03 dalek parrot: r38493 | Infinoid++ | trunk/docs/book/ch03_pir.pod:
17:03 dalek parrot: [cage] Wrap text to pass linelength.t.
17:03 dalek parrot: The previous version didn't render very nicely, there were 2 sentences with no punctuation (or even whitespace) between.  Fixed that too.
17:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38493/
17:04 Infinoid There's an additional pdd_format failure in pdd30_install which I'm not sure how to fix.
17:05 Coke jonathan: don't forget to create tickets and add notes to DEPRECATED.pod when deprecating things.
17:06 Coke NotFound: no change in ldd blib/lib/libparrot.dylib
17:07 NotFound Blame Steve Jobs, then ;-)
17:08 Infinoid That's a workaround, not a fix. :)
17:17 Coke alright, on linux, libparrot.so has no such self-referential crap. at least that gives me something to look at.
17:25 Whiteknight is #ps in 5 or 65?
17:25 Infinoid 65
17:25 Tene Tue May  5 17:25:26 UTC 2009
17:25 Tene purl: ps?
17:25 purl hmmm... ps is postscript or process status or see "parrotsketch" or non-vector?! or annoying.
17:25 Tene purl: parrotsketch?
17:25 purl i guess parrotsketch is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
17:26 Whiteknight my damn clock here on Windows is broken
17:26 Whiteknight the GMT clock says that it's 18:25 right now, which it's obviously not
17:28 NotFound Whiteknight: there is a registry key to tell windows to use UTC time in the hardware clock. It makes things easier on mixed use machines.
17:29 estrabd joined #parrot
17:29 Whiteknight oh great. I get to monkey around in the registry
17:30 fperrad joined #parrot
17:34 Casan joined #parrot
17:39 Coke clock?
17:39 purl Coke: LAX: Tue 10:39am PDT / CHI: Tue 12:39pm CDT / NYC: Tue 1:39pm EDT / LON: Tue 6:39pm BST / BER: Tue 7:39pm CEST / IND: Tue 11:09pm IST / TOK: Wed 2:39am JST / SYD: Wed 3:39am EST /
17:44 darbelo joined #parrot
17:51 darbelo cotto: ping
17:51 cotto darbelo, pong
17:52 darbelo I looked at pmc2c. Adding ATTR union whatever * was easier than expected :)
17:53 dalek parrot: r38494 | NotFound++ | trunk/src/dynext.c:
17:53 dalek parrot: [cage] avoid some usages of STRING internals, TT #630
17:53 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38494/
17:53 cotto Yeah.  I'm pretty sure it'd be a 1-line change.
17:53 darbelo It is.
17:54 cotto so, no blog yet?
17:55 cotto It'd be nice to have something to point to at #ps.
17:55 darbelo Blog, yes. Posts, no. I was going to post something after #ps.
17:56 cotto your call
17:57 darbelo is nopaste down?
17:57 cotto nopaste?
17:57 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
17:57 purl i heard nopaste was at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others)
17:57 cotto tup
17:58 cotto yup
17:58 darbelo I'll mail you the patch then.
17:59 fperrad joined #parrot
17:59 cotto allison, ping
18:02 cotto darbelo, send it to the list.  I'll see it there and it'll be easier for others to comment.
18:02 darbelo ok
18:19 Infinoid I won't be here for #ps, but I didn't do much this week anyway.  I'll read the log later
18:20 chromatic joined #parrot
18:21 NotFound What is the reason to have union in ATTRs? How can they be accessed?
18:25 darbelo They're accessed just like any ATTR. Right now you can have "ATTR struct structy *val;", but not "ATTR union uniony *val;"
18:25 Whiteknight I think adding a struct or union definition creates a typedef somewhere, doesn't it?
18:26 Whiteknight oh no, nevermind. You have to previously define the struct/union, but you don't need to typedef it
18:26 NotFound Right now we have enough unsolved problems with inheritance from PMCs.
18:27 Whiteknight NotFound: You can't inherit struct/union ATTRs anyway
18:27 cotto Agreed.  "Don't do that" is not a good long-term solution.
18:28 cotto although I don't think it affects darbelo's patch either way
18:28 * Coke wonders how long it's been since partcl trunk worked as intended.
18:28 NotFound You don't have to previously define, the struct usage works as a forward declaration,.
18:29 chromatic #ps in 2
18:29 NotFound But you probably have headerizer and c generation problems without a declaration.
18:29 jderque joined #parrot
18:32 cotto allison, unping
18:36 allison Coke: a while, I submited a patch sometime around 0.9.0 that updated it to the current string function names, so at least... 4/5 months?
18:37 Coke allison: it was rhetorical.
18:37 allison Coke: btw, make install works as intended, it's the new make install-dev that's broken
18:37 Coke ... sorry, yes, install-dev.
18:38 allison largely because it's installing things that were written as if they'd never run outside the build directory
18:38 allison (which is nutty-pants, but there you go)
18:41 Coke allison: latest fun. "make" generates a blib/lib/*.dylib that depends on itself.
18:41 Coke (on osx)
18:41 allison Coke: how is that even possible?
18:42 Coke dunno. I can only assume that the output from otool is not what I expect.
18:42 allison Coke: oh, must be some horrible recursion in the build/link flags?
18:42 Coke but, when those get installed, the link to the build dir is still there. whee.
18:42 allison a different link than rpath?
18:43 Coke osx isn't using rpath.
18:43 allison at all?
18:43 Coke (just linux and maybe solaris)
18:43 Coke ack -i rpath config tells me no.
18:44 Coke there's an rpath /config/ option, but no -rpath
18:44 allison that's good
18:44 Coke which is why the portfile is rewriting the lib paths.
18:44 allison except that it's keeping a static link to the build directory instead, which is bad
18:48 pmichaud Util:  I'm very eager to see the patch.
18:48 NotFound rakudo make tells me that there is no rule to build parrot, If I try with an installed parrot after renaming the build directory
18:49 pmichaud NotFound: did you reconfigure rakudo?
18:49 NotFound pmichaud: yeah
18:49 Coke it, "make install-dev", or the portfile?
18:50 Util pmichaud: OK, I will post a rough-cut in a few minutes.
18:50 Coke allison: I cannot seem to rewrite the lib deps inside the libs themselves using install_name_tool as we do for the executables.
18:50 NotFound realclean, git pull, configure, make, same result
18:51 chromatic pmichaud, runtime/parrot/library/P6object.pir line 226 is the source of half of Rakudo's startup slowness.
18:54 jderque hello !
18:54 Coke ~~
18:55 pmichaud chromatic:     parrotclassns.'add_sub'($S0, $P0)
18:55 pmichaud ?
18:55 Tene chromatic: I'm going to be in Salem, OR next week.
18:55 chromatic pmichaud, that's the one.
18:55 dalek parrot: r38495 | coke++ | trunk/ports/macports/Portfile:
18:55 dalek parrot: When installing on OSX, fixup not only the executable library links, but
18:55 dalek parrot: those of the compiled dynext files.
18:55 dalek parrot: this doesn't address the issues in the actual libparrot.*dylib shared library, though, which seems to still depend on the build directory.
18:55 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38495/
18:55 pmichaud I wonder why that would be such a big bottleneck.
18:55 chromatic It trips a lot of "Adding a vtable entry which already exists" and "adding a method which already exists" in the namespace exceptions.
18:56 chromatic Salem's about an hour by car.
18:56 Tene chromatic: I'll have a car, and plenty of time.
18:56 jderque the following file makes parrot crash : http://pastebin.com/m59781b65
18:56 jderque (v 1.0.0 and 1.1.0)
18:57 pmichaud chromatic: I don't have many ideas at the moment for avoiding it.
18:57 cotto jderque, welcome to parrot
18:57 Whiteknight jderque: that shouldn't even parse
18:57 Coke Whiteknight: sure, it's a keyed creation.
18:57 chromatic It looks like it's doing unnecessary work, but I'm not sure how you use it.
18:57 Coke Whiteknight: try new ['Integer']
18:57 Whiteknight ah
18:58 Coke jderque: can you open a trac ticket with that?
18:58 jderque sure !
18:58 Coke danke.
18:58 Coke good catch.
18:58 Whiteknight Coke: There should be a difference between a string key and an int key in IMCC
18:58 Whiteknight I'm surprised that there isn't
19:01 pmichaud chromatic: it's used to enable PIR classes to act like parents of Proxy PMCs
19:01 chromatic Is there any reason it would add subs to the same namespace multiple times?
19:01 particle- jderque: you need to create a trac account, and respond to the confirmation email before you can post
19:01 Whiteknight on that note, I'm still not entirely sure why we have Proxy PMCs in the first place?
19:04 pmichaud chromatic: yes.
19:04 pmichaud I *might* be able to get it to avoid that.
19:05 pmichaud but essentially, it's having to walk the mro hierarchy and add parent methods, and there could be duplicates there in the hierarchy.
19:05 chromatic It's flattening all dispatch candidates into a single class?
19:06 jderque particle-: yeah, i've just registered (but the site is slooooooow)
19:06 pmichaud it's basically "promoting" methods into the ProxyPMC.  Yes, it is very Evil, but otherwise there doesn't seem to be a way to 'add_parent' on a Proxy PMC and have it dtrt.
19:07 pmichaud But I can at least make sure that for any given method name, it does i.... oh, no I can't.  Grr..   MultiSubs.
19:07 chromatic Is this something we can fix in Proxy?
19:07 pmichaud somehow I doubt it.
19:09 pmichaud it may end up being avoided at any rate, as we start to refactor the proxy-manipulating evilness out of Rakudo anyway.
19:09 pmichaud Oh, I know.
19:09 chromatic I temporarily removed the exception-throwing from the two spots it gets called, and Rakudo starts up over twice as fast.
19:09 pmichaud I could test for MultiSub-ness first, and then avoid repeats.
19:10 pmichaud that might help avoid some unnecessary work.
19:10 pmichaud Of course, more and more rakudo builtins are becoming MultiSubs
19:10 Coke left #parrot
19:10 chromatic In theory, add_method shouldn't throw an exception if you add another multi variant.
19:11 pmichaud well, the call to 'add_sub' is supposed to be handling that.
19:11 Theory chromatic: bitch what?
19:11 * purl is nobody's bitch!
19:11 pmichaud I think I patched it to work like that sometime last year.
19:11 chromatic src/pmc/class.pmc:712
19:11 allison drat, I needed to ask Coke a question
19:12 pmichaud although, I wonder if we ever have vtable functions that are also :multi
19:12 pmichaud I think not.
19:13 pmichaud so if the problem is "adding vtable entry which already exists...", that's not likely to change.
19:13 particle- vtable functions that are also methods that are :multi?
19:13 pmichaud particle-: currently all vtable functions have the :method flag, I think.
19:13 particle- hrmm, to get self?
19:13 pmichaud (except for VTABLE_invoke)
19:14 pmichaud Well, there was some talk at one point that :vtable would imply self... but I don't remember how far that got.
19:14 chromatic Everyone wants it, but no one has done it.
19:14 pmichaud is there a way (in PIR) to find out if a Sub PMC has its :vtable flag set?
19:14 particle- seems odd that 'all' vtable functions get :method
19:14 pmichaud We could avoid adding those.
19:15 donaldh joined #parrot
19:15 particle- my best guess is something like interpinfo .???_CURRENT_SUB, ???
19:16 chromatic I'm still not exactly sure I understand the problem P6object is trying to solve here.
19:17 pmichaud chromatic: P6object is attempting to allow Parrot core PMCs to map directly to HLL types.
19:17 pmichaud In Rakudo's case, we want a Parrot Integer to act like a Rakudo Int
19:17 pmichaud which means that Integer needs to get all of the methods defined on Int
19:18 pmichaud so, we take all of the methods of Int (and its parent classes) and add them to the Integer PMC
19:18 pmichaud this is *not* intended to be long term behavior or correct -- it's just to deal with the fact that we can't yet do HLL_map .
19:19 pmichaud so many times Parrot promots something into an Integer, and Rakudo needs that to act like an Int.
19:20 chromatic HLL-specific autoboxing of a sort?
19:20 pmichaud Yes.
19:20 Tene and why can't we do HLL_map ?
19:20 donaldh joined #parrot
19:20 pmichaud Tene: because we couldn't get .HLL 'Perl6' to work.
19:20 pmichaud thus, no HLL_map.
19:22 pmichaud But even when we have HLL_map, we may have cases where Parrot types "leak" into the program, so it might be useful to map them somehow (still as a shortcut measure).
19:23 donaldh joined #parrot
19:35 donaldh left #parrot
19:36 Util moritz: thanks
19:38 Util pmichaud: http://sial.org/pbot/36403
19:39 pmichaud Util: so, you're changing the initialization to be string literals instead of array of int ?
19:40 moritz actually I thought about the exact same change a while ago ;-)
19:41 chromatic Me too, but I couldn't get it to work in an hour.
19:41 chromatic That should cut file size in half.
19:41 Util pmichaud: Yes, exactly so. Large arrays of chars are slow during GCC compilation, which true C strings are lightning fast.
19:42 pmichaud Is    "hello" " " "world"   valid C89?
19:43 moritz iirc yes
19:43 moritz two strings in a row are simply concatenated
19:43 Util FYI, I did get a speedup of the old `255,0,0` technique by saying `program_code[real_size_here]` instead of `program_code[]`, but nowhere near the true C strings speed.
19:44 moritz (gcc compiles it with --std=c89 -ansi -pedantic)
19:45 Util The patch leaves a empty "" at the end when size%32==0, but that does not seem worth fixing until someone show me a compiler that chokes on it.
19:46 chromatic If VS handles it, I'm not too worried.
19:46 pmichaud anyway, the patch looks good to me.
19:47 jonathan I'm happy to try it on MS VC++.
19:48 Util With the old technique, perl6's 3MB of PBC took 460MB of rsize. Causes 10 minutes of thrashing on my 1GB MacBook.
19:48 Util jonathan: that would be great!
19:48 jonathan Util: Is it checked in somewhere in a branch?
19:49 jonathan Or did I miss a link to it?
19:49 Util http://sial.org/pbot/36403
19:51 jonathan Util: trying it
19:51 purl somebody said trying it was quicker than talking on IRC about not trying it ;>
19:53 jonathan omfg
19:53 jonathan perl6.c(2051) : fatal error C1091: compiler limit: string exceeds 65535 bytes in length
19:53 moritz oh my.
19:54 PerlJam jonathan: that's on windows?
19:54 jonathan yeah
19:54 jonathan surprise ;-)
19:54 PerlJam I think if you just chooose a bigger memory model, that'll go away.
19:55 chromatic Or we could make an array of strings.
19:55 pmichaud I wonder if there's a way to ... what chromatic said.
19:55 chromatic All we need is a chunk of adjacent, gapless memory.
19:55 jonathan PerlJam: I don't see an option for increasing maximum string lenght. :-|
19:55 Util Another approach is to pre-init many smaller blocks, then at run-time allocate the right-sized chunk, and copy all the small blocks to it.
19:55 fperrad left #parrot
19:56 pmichaud Ick.
19:56 chromatic Run time copying... sounds slow.
19:56 pmichaud That sounds like we're moving things from code space into data space.
19:56 Util Ick, indeed!
19:57 jonathan I wondered if upgrading my compiler would help...and just read:
19:57 jonathan "On VC++ 2003 compiler the limit is even smaller, 16 Kb."
19:57 pmichaud bwahahahaha
19:58 pmichaud "640K is all the memory you'll ever need."
19:58 davidfetter 16Kb. wow. just wow.
19:58 davidfetter um, would that be KB?
19:59 jonathan I guess.
19:59 jonathan :-S
19:59 * davidfetter recalls an embarrassing incident with gnu units involving millibits per second
19:59 chromatic 16k strings in an array would still be a lot smaller and simpler than what we have now.
19:59 pmichaud Agreed, but are we guaranteed that the strings will be gapless/in order in an array?
19:59 chromatic In a C array?  Should be.
20:00 pmichaud what would the declaration look like?
20:00 chromatic Otherwise char arrays and strings wouldn't work in C.
20:00 Util pmichaud: especially if all but the last string in sized in large power-of-two
20:00 chromatic const char const ** [] = { };
20:00 Util s/in/is/
20:01 pmichaud but with   char const ** [] = { "abcdefghijklmnop", "abcdefghijklmnop", ... }
20:01 pmichaud why do the strings have to be contiguous?
20:01 pmichaud afaict, they don't.
20:01 pmichaud hey, what about....
20:02 moritz because array[a] is the same as *(array + a)
20:02 pmichaud moritz: that doesn't violate what I just said.
20:02 pmichaud in the case of char ** [], the elements of the arrays are pointers.
20:02 pmichaud in particular,
20:02 purl in particular, is that where i should listen to find out if a socket is closed?
20:02 moritz ah
20:02 moritz now I understand
20:03 moritz purl: forget in particular,
20:03 purl moritz: I forgot in particular,
20:03 pmichaud but what about...
20:03 pmichaud char foo[<>][16] = { "abcdefghijklmnop", "abcdefghijklmnop", ... }
20:04 chromatic Sure, something like that should work.
20:04 pmichaud replace <> with the number of items in the array (which we can compute from the length of the .pbc)
20:04 pmichaud that would be contiguous.
20:04 pmichaud Oh, but null terminators would be an issue.
20:07 dalek parrot: r38496 | cotto++ | branches/tt528_vtinit:
20:07 dalek parrot: deleting merged tt528_vtinit branch
20:07 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38496/
20:11 dalek rakudo: cfc5e82 | pmichaud++ | docs/spectest-progress.csv:
20:11 dalek rakudo: spectest-progress.csv update: 379 files, 11011 passing, 0 failing
20:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​fc5e82ae1e30c63a64047c168cb7a38e421fdfa
20:28 bsdz joined #parrot
20:42 * particle- grumbles loudly at alester for breaking parrot builds on win32
20:42 Andy eek how, I'm sorry!
20:42 Andy what borked?
20:42 purl rumour has it borked is that a swedish perl
20:42 particle- SPLINTFLAGS += foo
20:43 particle- nmake doesn't grok +=
20:43 Andy oooh, ooops.
20:43 Andy I'm sorry.
20:43 Andy Y'know, I think I knew that.
20:43 particle- easy fix
20:43 purl easy fix is just to change the type to Str
20:43 Andy now that I think about it.
20:43 Andy how?
20:43 particle- don't use += !
20:43 Andy Well, yeah
20:43 cotto no, easy fix is <reply>
20:43 purl okay, cotto.
20:43 Andy but suggestions on acheieving the effect in the file?
20:44 Andy of building upt he string?
20:44 particle- i know no method by which to achieve that without stupid-workaround-ery
20:53 cotto If it's temporary anyway, why not just go with a quick stupid fix?
20:54 Andy It's not temporary
20:54 Andy particle-: Just slap it all together, i'll come up with something else.
20:54 Andy Wsorry to mess you up. :-(
20:54 Andy can you ifdef it out or something similar?
20:54 Andy You'll never be able to use the splint stuff anyway
20:54 Andy maybe I just oughta have a cage makefile
20:55 Andy or just a splint makefile, for that matter
20:55 Andy since I really don't need to rerun config every time
21:04 muixirt hi
21:04 purl what's up, muixirt.
21:05 muixirt what is the parrot option -R trace good for, and what is the difference between that and option -t|--trace?
21:09 iblechbot_ joined #parrot
21:12 Infinoid Yeah.  Splint really needs to act like a separate platform/target/config anyway
21:12 pfig joined #parrot
21:14 Infinoid muixirt: -t lets you define which kind of stuff to trace (the flags argument is a bitmask), and enables the trace runcore internally.  -R just lets you set the runcore
21:15 Infinoid without looking at the code, I would think -R trace would be like -t 0
21:15 muixirt Infinoid, thanks
21:19 dalek rakudo: 9a1cacd | jnthn++ |  (2 files):
21:19 dalek rakudo: Add .^methods and .^isa introspection methods. Also bump us up to the Parrot build where I put in the P6object changes that are needed to go with this.
21:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​a1cacdcfd9cdeb4b7f7b07a4564e175bd97dc0b
21:20 dalek rakudo: c77bd19 | jnthn++ | :
21:20 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
21:20 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​77bd19af86be6eba0d3ba0362b27cdac202b754
21:22 jderque left #parrot
21:35 amoc joined #parrot
21:35 darbelo cotto: ping
21:38 cotto darbelo, pong
21:41 darbelo I'm implementing set/get_rounding_mode for decnum PMCs and I want to map decNumber's enum rounding to parrot constants. Is '.macro_const' the only way to do it?
21:43 cotto I think so, but you can write some code to munge C-level #defines or enums into pir-level macros.
21:47 darbelo Once I generate the pasm, how do I tell parrot to load it?
21:47 cotto .include it
21:48 cotto Hmmm.  That won't work for just a pmc.
21:48 cotto lemme check some stuff
21:52 Whiteknight joined #parrot
21:52 darbelo Also, this will probably need some testing on platforms with INTVAL != int32_t.
21:56 Infinoid my sizeof(INTVAL) is 8, how can I help?
21:57 cotto darbelo, it looks like you might be able to hack something out, but the code is obvious not intended for external use.
21:59 cotto You should file a feature request on trac for a function to define pir constants at runtime.
21:59 cotto *obviously
21:59 dalek rakudo: 53f7059 | jnthn++ | src/parser/ (2 files):
21:59 dalek rakudo: STD tracking: handles trait verb followed by noun, not EXPR.
21:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​3f70591a6e20a0a09a4fbccdfe91d4c7739a9d1
22:00 particle- cotto: can you eval them?
22:01 darbelo particle: Don't think so. We're building a dynpmc.
22:02 particle- sorry, you want to define constants in pir at runtime, while building a dynpmc?
22:03 particle- that makes no sense.
22:03 purl Chewbacca!
22:03 Infinoid I think pir constants are handled at the parser level, not the vm level
22:04 particle- so eval them!
22:04 darbelo I want to do: $P0.'set_rounding_mode'(.CONSTANT)
22:04 darbelo Or maybe I'll just use strings.
22:04 tewk joined #parrot
22:04 particle- see the open modes in the io pdd
22:06 darbelo Saw them. They're defined in a pasm file. I can generate that from the headers, but can't load it. Or can I?
22:06 particle- huh?
22:07 particle- it's there to be loaded.
22:07 particle- .include
22:07 purl hmmm... .include is like if you'd just copy and pasted the code from the other file where the .include is.
22:07 cotto right, but the dynpmc doesn't have any pir or pasm, unless there's a way to make sure such code is loaded at the right time
22:09 Infinoid maybe it should ship with a bit of pir or pasm which defines the constants *and* loads the dynpmc, so users just include that to get the feature?
22:09 Infinoid (feel free to ignore me, I have no clue how dynpmcs work.)
22:10 cotto It'd be nice if loadlib could take care of that
22:10 particle- i don't understand.  all the examples i've seen are pir code.
22:10 particle- do you want to use these constants in c code?
22:10 cotto .loadlib
22:11 Infinoid I'm suggesting maybe the primary interface to get the decnum feature should be .include, not loadlib
22:11 cotto I think he wants them to be defined in PIR/PASM so that PIR-level .FOO_CONFIG is the same as C-level FOO_CONFIG
22:11 gryphon joined #parrot
22:11 particle- well, for that, you define them in a header file and config generates pasm files from it
22:12 particle- then they're available in c and pir/pasm
22:13 darbelo particle: Also, we're developing out-of tree. We don't have access to anything not installed with parrot.
22:14 darbelo But I'm liking Infinoids idea. ".include decnum" loadlibs us and defines our constants.
22:16 allison hmmm... .include means you get a complete copy of the code everywhere it's used
22:16 allison not exactly efficient
22:17 cotto What if .loadlib looked for appropriately-named pir or pasm files and .included those?
22:19 particle- what's wrong with two statements?
22:19 darbelo The user has to type them both :) Looks less magical.
22:19 cotto too much work
22:20 particle- it's an assembler.
22:20 particle- create a dynop, if you want a fix.
22:21 particle- then load the dynop lib, so you can load the dynpmc lib in one line :)
22:22 cotto sounds magically delicious
22:23 * particle- heads to nyc
22:24 darbelo Too much work for a throwaway prototype. I'm going with strings. Once we decide on the semanitcs of contexts we can revisit this.
22:25 cotto sounds like a good decision until you know which route you'll go for certain
22:29 TonyC joined #parrot
22:30 darbelo It's temporary. Doing string compares, the way to efficiency, is not.
22:31 nopaste joined #parrot
22:34 dalek parrot: r38497 | pmichaud++ | trunk/compilers/pct/src/PCT/HLLCompiler.pir:
22:34 dalek parrot: [pct]:  Fix PCT to evaluate program result for definedness instead of truth.
22:34 dalek parrot: Fixes a problem with returning regexes (and other items) noted by ruoso++.
22:35 dalek parrot: review: https://trac.parrot.org/parrot/changeset/38497/
22:51 amoc joined #parrot
22:53 kid51 joined #parrot
23:31 bsdz joined #parrot
23:40 nopaste "jonathan" at 85.216.157.73 pasted "example code for pmichaud" (30 lines) at http://nopaste.snit.ch/16479

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

Parrot | source cross referenced