Camelia, the Perl 6 bug

IRC log for #parrot, 2010-11-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:00 dmalcolm left #parrot
00:07 kid51 is now known as kid51_at_dinner
00:19 lucian left #parrot
00:35 lidden joined #parrot
00:52 mikehh left #parrot
00:52 mikehh joined #parrot
00:57 kid51_at_dinner is now known as kid51
01:07 plobsing joined #parrot
01:23 dngor joined #parrot
01:58 jsut_ joined #parrot
02:03 jsut left #parrot
02:12 kid51_ joined #parrot
02:13 whiteknight left #parrot
02:15 kid51 left #parrot
02:27 lidden left #parrot
02:40 kid51_ msg chromatic In psketch you asked for benchmarking on gc_ms2_sf branch.  What kind of program would give you meaningful data?
02:40 aloha OK. I'll deliver the message.
02:40 kid51_ left #parrot
02:41 chromatic msg kid51 anything Rakudo related.
02:41 aloha OK. I'll deliver the message.
03:09 Limbic_Region left #parrot
03:09 dalek parrot: r49774 | plobsing++ | branches/gsoc_nci/src/nci/libffi.c:
03:09 dalek parrot: add assert_args
03:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49774/
03:09 dalek parrot: r49775 | plobsing++ | branches/gsoc_nci (7 files):
03:09 dalek parrot: add --without-core-nci-thunks configure option to build without core nci thunks (depends entirely on framebuilder)
03:09 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49775/
03:16 cotto ~~
03:46 cotto dukeleto, how goes the git import?
04:29 particle1 joined #parrot
04:32 particle left #parrot
04:32 dalek parrot: r49776 | plobsing++ | branches/gsoc_nci/src/nci/libffi.c:
04:32 dalek parrot: implement nci thunk cloning
04:32 dalek parrot: review: http://trac.parrot.org/parrot/changeset/49776/
05:24 chromatic left #parrot
05:46 silug left #parrot
06:02 * cotto sleep
06:02 cotto s
06:08 dalek left #parrot
07:14 fperrad joined #parrot
07:55 PacoLinux left #parrot
08:36 bacek left #parrot
08:39 lucian joined #parrot
09:14 bacek joined #parrot
09:20 lucian left #parrot
09:54 muixirt joined #parrot
10:10 nopaste "muixirt" at 192.168.1.3 pasted "error msg ecmascript compiler" (64 lines) at http://nopaste.snit.ch/25180
10:10 muixirt Any advice?
10:11 rurban joined #parrot
10:12 rurban left #parrot
10:12 sorear that message generally indicated that you're trying to load P6object in an excessively dynamic way
10:12 muixirt sorear: ??
10:13 sorear exactly
10:14 moritz it could be that the call involves a parent class that doesn't exist, or isn't a class (but a role), or so
10:14 * moritz just vaguely guessing
10:14 muixirt sorear: your advice?
10:14 sorear muixirt: find the problem
10:15 sorear hundreds of man-hours have been spent debugging that to no avail
10:15 sorear we need fresh eyes
10:15 sorear once you fix it, you'll be hailed as the hero who made load_language "perl6" work
10:15 muixirt disclaimer: I have really limited knowledge of C, Parrot internals, pir, javascript, git ...
10:15 moritz muixirt: if it worked once, you could bisect
10:15 muixirt seen tewk
10:15 aloha Sorry, I haven't seen tewk.
10:16 muixirt so P6object is known to be buggy?
10:19 sorear yes
10:19 sorear or maybe it's Parrot?
10:20 jnthn On the upside, P6object won't be used by Rakudo in a couple of month's time...
10:20 jnthn Of course, that may just mean we get a *new* problem to find.
10:22 moritz as is the case with every change.
10:22 muixirt unreliable line numbers in error msgs don't help much either
10:22 sorear line numbers in error msgs are reliable now
10:23 muixirt not in this case I suspect
10:23 muixirt called from Sub '' pc 75784 (src/gen_grammar.pir:4882)
10:24 muixirt line 4882 is only a label
10:24 sorear line 4882 is the beginning of a statement
10:24 sorear statement ::= label statement | ...
10:48 muixirt I wonder what that means: nullclass = get_hll_global ['parrot'], 'Null'
10:48 muixirt could someone explain it in simple terms?
10:49 moritz find the global symbol 'Null' in the 'parrot' HLL
10:49 moritz bind the result to nullclass
10:50 sorear that's wrong anyway
10:50 muixirt where does that 'Null' come from and why is 'parrot' a HLL?
10:50 sorear parrot::Null is the built-in NULL pmc
10:50 moritz muixirt: that's the default HLL if none is declared
10:50 sorear however, that line accesses $current-hll::parrot::Null
10:50 sorear I suspect get_root_global was intended
10:51 moritz oh
10:51 moritz then I explained wrongly
10:51 muixirt sorear: that seems right
10:52 nopaste "muixirt" at 192.168.1.3 pasted "what's wrong with that test script?" (15 lines) at http://nopaste.snit.ch/25182
10:53 muixirt replacing get_hll_global with get_root_global changes the picture (see paste)
10:54 muixirt get_hll_global --> 'nullclass is null'  get_root_global --> 'OK'
10:56 sorear well, if the variable doesn't exist, Null will be returned
10:57 sorear in your example, nullclass is the Null class
10:57 sorear it is not a Null value
10:59 muixirt well in that test case the output 'nullclass is null' relates to the 'if null nullclass' construct
10:59 muixirt the symbol null is somewhat overloaded :-)
11:19 muixirt the file src/classes/String.pir  mentions a src/pmc/jsstr.pmc
11:19 muixirt I wonder where that has gone
11:25 muixirt was it sometime ago part of parrot (parrot/src/pmc/jsstr.pmc instead of parrot/languages/ecmascript/src/pmc/jsstr.pmc)
11:27 moritz doesn't seem like
11:33 * muixirt is confused about those JSStr, jsstr.pmc, Str, JS6Str and String in src/classes/String.pir
11:39 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#922) fulltest) at r49777 - Ubuntu 10.10 i386 (g++-4.5 with --optimize)
11:57 muixirt OT: do all of you master touch typing?
11:59 patspam joined #parrot
11:59 patspam left #parrot
12:24 moritz I can't speak for all of us, but I do
12:27 particle1 left #parrot
12:34 particle joined #parrot
12:50 whiteknight joined #parrot
12:54 whiteknight good morning, #parrot
12:54 Khisanth left #parrot
12:57 moritz good morning whiteknight
13:00 Khisanth joined #parrot
13:10 whiteknight hello moritz, how are you today?
13:10 moritz first work day after vacations. Otherwise quite OK :-)
13:11 whiteknight last vacation I had, I didn't mind coming back
13:12 whiteknight but I had a young and very fussy child, and was ready to send him back to daycare
13:13 moritz :-)
13:14 moritz well, it was my last vacation without small child until the child is grown not to count as "small" anymore :-)
13:18 muixirt moritz: probably at the age of 30 ;-)
13:18 moritz :-)
13:26 muixirt left #parrot
13:29 darbelo joined #parrot
13:37 bluescreen joined #parrot
13:47 whiteknight yay! My new blog is 100% operational
13:47 whiteknight all I need to do now is update the feed address in planet Parrot, and I'm set
13:54 whiteknight msg dukeleto how goes the git migration? Anything I can do to help at this point?
13:54 aloha OK. I'll deliver the message.
14:42 Andy joined #parrot
14:56 PacoLinux joined #parrot
15:00 plobsing left #parrot
15:20 nopaste "mikehh" at 192.168.1.3 pasted "some rakudo timings with trunk vs gc_ms2_sf" (15 lines) at http://nopaste.snit.ch/25186
15:21 mikehh msg chromatic see http://nopaste.snit.ch/25186
15:21 aloha OK. I'll deliver the message.
15:22 moritz mikehh: note that 'make stresstest' is still in large parts a startup benchmark
15:23 darbelo And we've always sucked at starting up :)
15:23 moritz mikehh: did you also monitor memory usage?
15:24 mikehh moritz: 'k, have you any other benchmarks I can run now I have built both
15:24 moritz darbelo: much of it is insufficiently robust serialization, which means we have to rebuild much at run time which could be created at compile time
15:25 moritz mikehh: ./perl6 t/spec/integration/advent2009-day17.t
15:25 fperrad left #parrot
15:25 moritz that includes a mandelbrot fractal
15:25 mikehh moritz: how do you do that, I had system monitor running but not specifically
15:26 moritz mikehh: I don't know of any good tool; I usually look at 'htop' (like system monitor for unix) while compiling core.pm, and manually look for the highest value
15:36 stilgar joined #parrot
15:42 bluescreen left #parrot
15:42 bluescreen joined #parrot
15:43 mikehh moritz: BTW I got two TODO's passing in both stresstest runs - t/spec/S16-filehandles/io.rakudo - TODO passed:   90 and t/spec/S32-io/file-tests.rakudo - TODO passed:   15
15:43 mikehh moritz: All tests successful.
15:44 moritz mikehh: I got those too, thanks for the confirmation
15:45 whiteknight there are a hell of a lot of improvements that could be made to startup times
15:45 whiteknight lazily creating method PMCs for all built-in types would probably be a start
15:46 jnthn No
15:46 jnthn Creating them at compile time is the answer
15:46 jnthn Then serializing them.
15:47 jnthn Same for signatures, meta-objects, constants...
15:47 jnthn Lazy creation is mostly a workaround for lack of that.
15:48 mikehh that's moving towards static typing
15:49 cotto ~~
15:49 jnthn mikehh: Well, enables.
15:49 jnthn mikehh: Which is also a goal.
15:50 whiteknight jnthn: that's fine too, I suppose. We do have a hell of a lot of methods in built-in types, most of which are rarely used
15:50 jnthn whiteknight: Oh, you meant Parrot's built-in PMCs?
15:50 whiteknight jnthn: yes
15:51 jnthn whiteknight: Oh, OK. I was talking about all the stuff Rakudo does at startup.
15:51 whiteknight oh yes, in that case mass-serialization is definitely the answer
15:51 jnthn Parrot's own startup time is a tiny fraction of Rakudo's overall startup time today (mostly thanks to previous efforts on Parrot.)
15:51 whiteknight jnthn: I can't control Rakudo performance, but I can sure as hell do things about Parrot performance
15:51 whiteknight I can, and I fully intend to
15:52 moritz whiteknight: I'm sure performance boosting rakudo patches won't be rejected :-)
16:01 theory joined #parrot
16:10 whiteknight moritz: the place where I can do the most good is in Parrot. I don't have mad Rakudo skillz
16:12 moritz there are 2 people whom I'd attribute mad Rakudo skillz. I hope that number will increase in future
16:18 theory left #parrot
16:29 fperrad joined #parrot
16:34 abraham joined #parrot
16:49 plobsing joined #parrot
17:05 PerlJam left #parrot
17:08 plobsing left #parrot
17:14 dmalcolm joined #parrot
17:16 abraham left #parrot
17:32 atrodo Been using blekko, and they have a perl slashtag but not one for parrot, so I made one.  http://blekko.com/ws/+/view+/atrodo/parrotvm
17:46 mikehh where's dalek?
17:52 cotto ~~
18:08 whiteknight atrodo++
18:10 sorear dalek is broken
18:10 stilgar left #parrot
18:10 sorear diakopter's last report was "Odd."
18:14 darbelo left #parrot
18:22 dukeleto the git svn clone command is still running. It is like a sick joke.
18:24 cotto put it out of its misery
18:25 sorear I asked #monodev how long their git migration took
18:25 cotto sorear, punchline?
18:26 dukeleto my machine has been loading the tomato genome into a local postgres db for a few days as well, so it is slower than usual. But still, this is insane.
18:26 sorear Why use a db?
18:27 dukeleto sorear: why use the internet?
18:27 sorear because there is no simpler alternative for the things I have to do
18:27 Themeruta Can't you just by some tomatoes in a mall?
18:28 Themeruta is now known as NotFound
18:28 sorear what features do you use that a db can provide but a dozen 2-GB quaternary data files can't?
18:28 sorear is this some kind of full-text-search db?
18:29 dukeleto sorear: much more complicated than that
18:29 dukeleto sorear: http://solgenomics.net
18:30 dukeleto sorear: imagine splitting a genome into millions of subunits and then tracking how they are related. That is what we use postgres for.
18:30 sorear 2010.11.03.03.52.53 <@lupus> sorear: it was just a few hours: the conversion program was extensively hacked by gonzalo and harinath
18:31 dukeleto sorear: yeah, i need to use git filter-branch
18:37 cotto We must have some kind of nasty pathological case.
18:39 dukeleto vtable_morph_change keeps coming back, like a demon from the abyss.
18:47 * dukeleto starts to hack on a proper git filter-branch command
18:48 cotto dukeleto++
18:51 lidden joined #parrot
18:53 whiteknight dukeleto: still running? that is insane. what commit is it at?
18:54 whiteknight I mean, is it worth waiting it out at this point, or do we try to start over
18:54 particle1 joined #parrot
18:54 Andy left #parrot
18:58 particle left #parrot
19:06 particle1 is now known as particle
19:06 whiteknight dukeleto: and is it a matter of processing power? I might be able to lend some spare cycles if necessary
19:16 plobsing joined #parrot
19:33 dukeleto whiteknight: it is mostly a case of ENOFREETIME
19:42 patspam joined #parrot
19:43 patspam left #parrot
19:47 plobsing do we have any ETA on the git migration? I'm trying to justify avoiding svn merging gsoc_nci because of how much svn has messed it up.
19:48 whiteknight dukeleto: we don't want you to get burned out or anything. Maybe you need some rest?
19:48 whiteknight put off the migration till this weekend and don't stress over it
19:48 whiteknight or, tell somebody else how to do it and go on vacation
19:51 dukeleto i haven't actually been spending a lot of time on the migration, but i haven't had free time to work on it as much as I would like
19:52 dukeleto the dumb git-svn clone is slower than molasses going uphill
19:52 dukeleto so i need to write a git filter-branch command to do it. I have a skeleton of what it should be, but I need to write a one-liner to generate the filter-branch command, since it has a case statement for every username in the old repo and how to transform it in the new repo
19:53 dukeleto that is where i am.
19:53 plobsing left #parrot
19:53 dukeleto if anyone wants to look on the GitMigration page and do anything that is not blocked by the repo migration, go for it.
19:54 dukeleto aloha, msg plobsing i will have a better ETA on conversion once i see the speed of the filter-branch command
19:54 aloha dukeleto: OK. I'll deliver the message.
19:57 patspam joined #parrot
19:57 patspam left #parrot
20:03 patspam joined #parrot
20:06 brianwisti joined #parrot
20:18 theory joined #parrot
20:29 whiteknight left #parrot
20:30 dukeleto we are at r48342
20:31 * dukeleto is going to hack on https://code.google.com/p/androi​d-scripting/issues/detail?id=296 to get his mind of the git migration, once it is done.
20:33 mikehh dukeleto: only 1436 to go:-}
20:36 atrodo dukeleto> Is that possible?  I though android used jvm-like.  Are there tools to compile C?
20:38 atrodo Interesting.  Wikipedia says it can, so it must be true
20:41 dukeleto atrodo: yes, it is possible, but there are many sharp edges
20:41 dukeleto atrodo: people have done it for ruby, lua, python, perl5, javabeans and a few other languages
20:42 dukeleto atrodo: they seem to be in various states of disrepair
20:42 atrodo neato.  Android cooler than I thought
20:42 dukeleto atrodo: it requires cross-compiling to linux-arm
20:42 dukeleto atrodo: a lot of the RTEMS improvements that parrot is getting will help with parrot on android
20:43 dukeleto atrodo: android has a Dalvik Virtual Machine that is very similar to parrot
20:43 dukeleto atrodo: it is register based, but basically has an optimized bytecode for mobile phones
20:44 dukeleto atrodo: i think parrot has a lot to learn from dalvik, and dalvik <--> parrot interop could be very interesting
20:44 atrodo That I knew.  I looked at it a couple times before, but I could never find a lot of good detail information about it
20:46 dukeleto atrodo: the fun part about android is they use bionic libc, which breaks anything nontrivial, so most things have to statically link their own libc
20:47 patspam left #parrot
20:47 dukeleto atrodo: they wanted a cripled libc on purpose, to make it harder to run arbitrary code by "apps". But it is still possible.
20:47 sorear Can you elaborate on that last sentence?
20:48 dukeleto sorear: in what way?
20:48 dukeleto atrodo: http://www.dalvikvm.com/
20:48 sorear the phrase, 'to run arbitrary code by "apps"', is not clear to me.
20:49 dukeleto atrodo: http://android.git.kernel.org/ <-- read the source of dalvik, if the link above is not detailed enough ;)
20:49 dukeleto sorear: there are things called "android apps" which are sold or given away for free in the "android marketplace"
20:50 sorear Why is there "not sure, string related" stuff in OSS documentation?  Or did they drop the OSS thing?
20:50 dukeleto sorear: these are programs "mere mortals" can run on their phones. If you have a developer phone, or "jailbreak/root" the phone, you can run any code you want on it.
20:51 dukeleto sorear: what do you mean?
20:51 sorear dukeleto: dalvikvm.com reads like a reverse engineering note file, not like documentation for a supposedly open-source VM
20:52 dukeleto sorear: and your point?
20:53 atrodo dukeleto> It's been a few years since I looked.  I suspected that the code was available by this point
20:53 dukeleto sorear: the code of dalvik can be read by anybody: http://android.git.kernel.org/?​p=platform/dalvik.git;a=summary
20:53 dukeleto atrodo: ^^
20:53 sorear dukeleto: exactly, so why did it need reverse engineering?  I don't have a point, I'm confused
20:54 dukeleto sorear: dalvik source code was not open sourced until recently. people were probably reverse engineering it
20:54 dukeleto it is under the apache2 license, seemingly.
20:55 sorear ok
20:56 sorear back to 'to run arbitrary code'.  You mean, people trying to jailbreak phones using app vulnerabilities?
20:56 dukeleto sorear: that exists as well, but that is not what i meant ;)
20:57 dukeleto sorear: many iphone jailbreaks are actually exploiting iOS to install something that can install arbitrary code
20:57 dukeleto sorear: but that is a horse of a different color
20:57 dukeleto sorear: basically, you need to install the developer boot loader into an android phone to be able to do any of this
20:58 dukeleto sorear: developer phones already have the boot loader necessary
21:02 patspam joined #parrot
21:03 sorear dukeleto: so... how does a crippled libc fit into this?
21:26 dngor left #parrot
21:28 dngor joined #parrot
21:32 theory left #parrot
21:41 dukeleto r48517
21:53 dukeleto sorear: http://codingrelic.geekhold.com/20​08/11/six-million-dollar-libc.html
21:54 dukeleto sorear: also https://duckduckgo.com/?q=bionic+libc+android ;)
21:55 dukeleto sorear: they wrap the GPL kernel in a BSD libc, so that userspace apps don't get "infected" by the GPL
21:58 sorear dukeleto: Not once does that codingrelic link mention "running arbitrary code in apps"
22:01 dukeleto sorear: what is your point?
22:02 sorear You have not yet provided an explanation of 15:47 <@dukeleto> atrodo: they wanted a cripled libc on purpose, to make it  harder to run arbitrary code by "apps". But it is still  possible.
22:04 dukeleto sorear: is this a court of law? Am I being interviewed? If you don't believe me, then don't. Go read about it and learn for yourself.
22:09 sorear I would have accepted "STFW" a while ago
22:09 sorear sorry
22:09 dukeleto sorear: no worries. The Git Migration has me on edge :)
22:10 dukeleto sorear: every time you see a new version of iPhone OS or Android, they fix a few vulnerabilities that allow priveledge escalation or code execution. I was just stating what I thought was a commonly known fact.
22:11 dukeleto sorear: the recent android 2.2.1 fixed a bunch of security bugs, and so did every recent version of iOS
22:11 dukeleto sorear: android seems to be a bit better about security that iOS. Probably because they "borrowed" a bunch of code from OpenBSD ;)
22:14 * dukeleto just update the github mirror. Forgot about it for a bit.
22:18 sorear 1st page of google for "android crippled libc" doesn't turn up anything that makes strategic sense
22:18 sorear plenty of technical crippling (or as I like to say, size optimization)
22:19 sorear eh it doesn't matter, if you don't have a ref and I can't find one I'll drop it
22:20 brianwisti left #parrot
22:21 dukeleto sorear: "crippled libc" are my words. That is what I call it.
22:21 dukeleto sorear: they don't want people to be able to do exec() and friends in "apps". I call that "crippled"
22:21 dngor left #parrot
22:22 dukeleto sorear: you can call it "banana" if you want ;)
22:38 kid51 joined #parrot
22:40 whiteknight joined #parrot
22:48 whiteknight bacek: ping
22:49 whiteknight dukeleto: ping
22:49 dukeleto whiteknight: pong
22:49 * dukeleto mumbles "the witch is dead..."
22:49 whiteknight dukeleto: I saw some pushes... the migration is done?
22:49 whiteknight or, the process you were working on anyway?
22:50 dukeleto whiteknight: can i have some of what you are having?
22:50 whiteknight soup and grilled cheese?
22:50 dukeleto whiteknight: no, that was just a normal mirror push of the old repo.
22:50 bluescreen left #parrot
22:50 dukeleto whiteknight: that was milder than what i imagined ;)
22:50 whiteknight oh, damnit
22:50 dukeleto whiteknight: nice blog post, by the way
22:50 whiteknight thanks!
22:51 cotto ~~
22:51 whiteknight The trick is getting all that fantastic stuff done without our core devs getting burnt out
22:51 * cotto suspects good news and backscrolls
22:53 * dukeleto poops on cotto's parade
22:53 cotto fortunately it was an umbrella parade
22:54 whiteknight extremely fortunate
22:54 cotto so, what's happening?
22:54 dukeleto we still have ~1000 revs left on the clone.
22:54 cotto on the broken one or using filter-branch?
22:55 dukeleto the broken one.
22:55 cotto You're not killing it with fire and burning sulfur?
22:55 cotto did it get unstuck
22:55 cotto ?
22:56 patspam left #parrot
22:58 dukeleto cotto: until i have something written to replace it, i am just letting it run. The output of it may be useful.
22:59 cotto ok.  Are you planning on using it or filter-branch to create the final version?
22:59 dukeleto sorear: this might answer some of your libc on android questions: http://wiki.gnashdev.org/Building_for_Android
22:59 dukeleto cotto: i am planning on running filter-branch on the output of this, unless it is unusable.
22:59 dukeleto I imagine it will be closer to what we want, but not perfect.
23:00 dukeleto cotto: i could run filter-branch on parrot.git on github too. I might be 6's
23:00 dukeleto s/I might/It might/
23:01 cotto "6's"?
23:03 bacek_at_work whiteknight, pong
23:04 whiteknight bacek: can you decipher those emails that went to parrot-dev?
23:04 bacek_at_work whiteknight, spam
23:04 whiteknight I can't read any cyrillic
23:05 jnthn It's an empty email really, just a signature.
23:05 bacek_at_work jnthn, it was few with spam links also
23:05 jnthn oh
23:05 bacek_at_work akf #  meeting
23:05 jnthn yeah, I missed teh link.
23:06 dukeleto cotto: "It is 6's" == "It is the difference between 6 and a half dozen"
23:06 cotto now I know
23:06 dukeleto sorear: https://gist.github.com/663362 <-- Details about bionic
23:06 dukeleto and knowing is half the battle!
23:09 luben left #parrot
23:10 fperrad left #parrot
23:18 dukeleto i think i have code that generates the code needed by filter-branch
23:20 whiteknight bacek_at_work: thanks, that's what I thought. BLocked
23:20 whiteknight I assumed it was spam because of the links, but I wanted somebody who could actually read it to confirm
23:30 theory joined #parrot
23:49 dmalcolm left #parrot
23:51 theory left #parrot
23:58 cotto seen chromatic
23:58 aloha chromatic was last seen in #parrot 21 hours 16 mins ago saying "msg kid51 anything Rakudo related.".
23:59 kid51 bacek_at_work:  On http://trac.parrot.org/parrot/wiki/LoritoRoadmap, there is a link to this page about PIRATE:  http://github.com/bacek/pir ...
23:59 kid51 ... but I'm getting "That page doesn't exist!" there.

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

Parrot | source cross referenced