Camelia, the Perl 6 bug

IRC log for #parrot, 2010-04-06

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:02 * cotto_work wonders why there aren't more Parrot gsoc proposals up atm
00:02 Austin Too many parrot people have graduated..
00:02 particle joined #parrot
00:03 Austin Hmm..
00:03 Austin Whiteknight leaves, and particle appears.
00:03 Austin Coincidence?
00:03 purl I think not.!
00:04 * darbelo puts his proposal on the web app.
00:04 cotto_work darbelo++
00:05 darbelo If nobody's complained by now, then it can't be that bad ;)
00:05 cotto_work The deadline is the 9th, but having longer to review the proposals doesn't hurt.
00:07 darbelo Yeah. But I would expect parrot-dev to have a wider reach than melange.
00:07 cotto_work also true
00:07 darbelo Unless I got kill-filed.
00:11 brooksbp joined #parrot
00:22 dalek plparrot: 18eefad | (David Fetter)++ | plparrot.c:
00:22 dalek plparrot: Turned C++ style comments into C style, per PostgreSQL coding conventions (C89)
00:22 dalek plparrot: review: http://github.com/leto/plparrot/commit/1​8eefad07dc28be131a2546692329631df085c98
00:24 dngor_ joined #parrot
00:28 Mokurai joined #parrot
00:35 leprevost joined #parrot
00:39 dukeleto is t/profiling/profiling.t  failing for anybody else?
00:41 bacek joined #parrot
00:42 tcurtis joined #parrot
00:51 dalek plparrot: b07024e | dukeleto++ |  (2 files):
00:51 dalek plparrot: Add support for the char datatype and add tests
00:51 dalek plparrot: Stored procedures that have char datatype in their signature are now
00:51 dalek plparrot: supported and a few tests related to that have been added.
00:51 dalek plparrot: review: http://github.com/leto/plparrot/commit/b​07024ec87c87a19d4bc3b34c0ef98e56ecb7878
00:51 dalek plparrot: 19846e6 | dukeleto++ | t/sql/test.sql:
00:51 dalek plparrot: Add another test for returning ints
00:51 dalek plparrot: review: http://github.com/leto/plparrot/commit/1​9846e67aaf42dcdf16da8b3294e23ebbf30878a
00:57 GeJ dukeleto: checking now
01:04 GeJ dukeleto: Works for me. (FreeBSD 7.2 amd64)
01:09 brooksbp_ joined #parrot
01:13 Mokurai joined #parrot
01:33 brooksbp joined #parrot
01:38 tcurtis Is there a way to force NQP to treat numbers as integers rather than floats?
01:38 Austin No and yes.
01:38 Austin In general, no.
01:38 Austin But you can fake it on a case by case basis.
01:39 davidfetter joined #parrot
01:39 Austin (In particular, nqp will always (currently) do the wrong thing with arrays and such.
01:45 tcurtis More specifically, is there any way to do integer rather than float division without dropping down to PIR?
01:48 nopaste "Austin" at 68.37.47.32 pasted "tcurtis: Integer division" (5 lines) at http://nopaste.snit.ch/20178
01:49 Austin Probably not what you want, unless you're doing it a *lot*.
01:49 Austin (And even then, I'll bet your floating point registers can hyperthread...)
01:56 Psyche^ joined #parrot
01:59 abqar joined #parrot
02:00 tcurtis Well, replacing the plain arithmetic operators with pir::div__iii, pir::mul__i, etc. gets rid of the "no bigint library loaded" error that my naive version produced and that the original PIR didn't.
02:00 ash_ joined #parrot
02:01 Austin Yow.
02:01 Austin What were you doing that it felt it needed bigint?
02:03 dngor_ joined #parrot
02:03 tcurtis Rewriting Math::Rand.pir in NQP.  Multiply the seed by 1103515245, add 12345, divide by 65536, mod 32768.
02:04 Austin Hmm. Are your ints 32 bit?
02:04 Austin Hell, nevermind. If it worked, it worked.
02:05 Austin And an lc randomizer is small enough you can probably stand to spell out all the ops.
02:08 ash_ is that random enough?
02:08 Austin Hard to say - there's no test for it.
02:08 Austin :)
02:11 tcurtis Apparently, it's taken straight from the C99 standard, according to the current Math/Rand.pir
02:13 ash_ 4 is random, i just rolled a d6
02:14 ash_ but is it random 'enough'? :P
02:16 nopaste "tcurtis" at 97.95.156.133 pasted "ash_: Nope. Tests fail." (21 lines) at http://nopaste.snit.ch/20179
02:19 Austin Code?
02:19 purl hmmm... Code is already out
02:21 ash_ joined #parrot
02:22 nopaste "tcurtis" at 97.95.156.133 pasted "Austin: you knew I was talking about whether 4 was random enough, right?" (29 lines) at http://nopaste.snit.ch/20180
02:22 Austin :)
02:23 Austin As a matter of interest, "return x" is not a good idea in nqp atm.
02:23 Austin Just fall off the sub with "x;" or "my $result := computation()" or something.
02:24 Austin Using return causes an exception to be created and thrown.
02:24 ash_ bah, stupid internet here just went out..
02:25 ash_ i was going to say: i revised my GSoC proposal, i think i'll try to include changing the NCI framework to use libffi
02:25 ash_ and then to do work on the llvm stack frame builder
02:29 tcurtis I'm considering submitting a GSoC proposal to rewrite the parts of the runtime library that can be written in NQP in NQP.
02:30 ash_ tcurtis: i know there was some talk of trying to do some PAST optimizations on NQP
02:30 walter joined #parrot
02:30 Mokurai joined #parrot
02:31 ash_ also, maybe looking into optimizations on the otherside with PBC's too
02:31 ash_ also in that frame of thought, it would be nice to be able to go from nqp directly to a pbc instead of having an in between step of pir
02:31 ash_ if your looking for ideas, whiteknight has a bunch of ideas for the project
02:31 ash_
02:32 Austin Woot.
02:32 Austin Tcurtis++
02:32 Austin Rewrite all the pmcs in nqp.
02:33 ash_ then everything could be self hosted in nqp, lol
02:34 Austin Then we just port NQP to java, and we're done...
02:34 ash_ aww, but don't you want to compete against the jvm?
02:34 Austin Hell, no.
02:34 ash_ although, if you made the code emitters pluggable, you could do that fairly easy
02:34 Austin Moore's law is all the performance I need.
02:35 ash_ just make a jvm code emitter, and some runtime support in java, and bam, new platform
02:35 janus joined #parrot
02:36 tcurtis Sarcastic praise following a ++ sends a somewhat mixed message.
02:37 ash_ or you could use my llvm stack frame builder, and have a llvm compiler emit all the runtime support in llvm-ir, then run optimization passes over that, and have the llvm convert everything to a native binary for whatever architecture your on, that would be a fairly effective runtime
02:37 ash_ that is assuming i can get the llvm stack frame builder working right
02:37 dalek TT #1541 closed by jkeenan++: warnings appearing during 'make' invocation of pmc2c.pl
02:37 dalek TT #1541: http://trac.parrot.org/parrot/ticket/1541
02:38 brooksbp_ joined #parrot
02:38 Austin No sarcasm on that front, dude. I'm convinced that 90% of the pmc stuff should be in nqp.
02:38 Austin or some other pir-equivalent.
02:42 snarkyboojum joined #parrot
02:42 tcurtis The comments about Java and "Moore's law is all the performance I need." sounded like the sort of sarcastic remark someone might make in response to an idea that they think sacrifices far too much performance.
02:42 Austin Heh. Nope.
02:43 Austin I'm sure there's stuff that needs to be in C.
02:43 Austin But I'm equally sure that we don't know what it is.
02:44 ash_ lorito was sorta supposed to address that
02:44 ash_ find a small set of ops you can build all the other ops out of
02:44 Austin That's one way to look at it.
02:44 ash_ same principle as the vm for most other languages, like ruby, or python, or perl 5
02:44 Austin My current evaluation of lorito is that it will eliminate the nested-runloop problems.
02:45 Austin But rewriting 90% of stuff in =pir would do a lot, too.
02:45 ash_ ruby's yarv only has about  128 ops i think, i don't even know if it has that many, i know they fit into an array thats of 128
02:49 ash_ ah, there are 78 used ops in ruby's yarv
02:49 ash_ http://lifegoo.pluskid.org/up​load/doc/yarv/yarv_iset.html
02:49 ash_ if your curious
02:50 ash_ oh, oops it start at 0, 79 hthen
02:50 ash_ s/hthen/then
02:52 bubaflub joined #parrot
02:52 petdance joined #parrot
02:53 ash_ in MacRuby, they replaced that with 77 slightly modified ops
02:53 ash_ most of them do the same things as the yarv ones, but were re-implemented a bit
02:54 dalek TT #1504 closed by jkeenan++: config/auto/arch.pm:  Uninitialized value warning on Darwin due to change ...
02:54 dalek TT #1504: http://trac.parrot.org/parrot/ticket/1504
02:54 Austin No wonder their performance sucks.
02:55 Austin They don't have a factorial opcode like parrot does.
02:55 Austin Sorry, *did*.
02:55 Austin Until whiteknight got rid of it.
02:55 ash_ as long as they don't touch my fibonacci opcode
02:56 Austin Dynops, baby. Gotta love 'em.
02:58 theory joined #parrot
03:00 ash_ i think perl 5 has a similarly sized set, but i am not sure... it seems to sub-categorize them more than other languages do, more is not always better though, (i think the current way parrot does it is kinda a testament to that...)
03:00 davidfetter mmm...ackermann opcodez
03:03 tcurtis Woohoo! Reimplemented a trivial runtime library module in NQP. Now to figure out how to get it to build in the Makefile.
03:03 Austin Heh.
03:04 Austin Bootstrap it down to pir, ship the pir. Make the nqp->pir a part of the development build.
03:14 chromatic Perl 5 has a couple of hundred opcodes, but they're not general purpose at all.
03:18 ash_ its hard to draw the line at "x, y, and z are needed", since it all kinda depends
03:19 chromatic Sure, a lot of this is subjective.
03:24 ash_ interesting, php has an array that is 154 bits long, but there are some unused codes in there, or rathe undocumented
03:25 ash_ http://php.net/manual/en/i​nternals2.opcodes.list.php if your interested
03:25 Austin Ahh.
03:25 Austin Don't do that.
03:26 Austin Reading the php sources makes you dumber.
03:26 ash_ i was just glancing for a comparison
03:27 Austin Sure, sure. You only want to do it until you need glasses...
03:27 Austin I understand.
03:27 ash_ i have had glasses since i was 12
03:27 Austin Shave your palms, much?
03:27 ash_ and i still can't see straight
03:27 Austin :)
03:44 Austin Back in the day, TRS-80 BASIC had an "implies" operator. Every so often I miss that little guy.
03:47 snarkyboojum_ joined #parrot
03:50 dalek plparrot: 483e80e | (Joshua Tolley)++ | plparrot.c:
03:50 dalek plparrot: Correct type handling.
03:50 dalek plparrot: review: http://github.com/leto/plparrot/commit/4​83e80e4d494c1c51192871edef273b82b99364e
03:50 cotto Austin++
03:51 * cotto sighs and goes back to evaluating a possible PHP job.
03:51 Austin Heh.
03:51 Austin What kind of job?
03:51 Austin (Note that I said reading *the* PHP sources. I did not say "reading PHP source...")
03:51 sorear Austin: by 'implies', is that the prepositional logic operator?
03:51 bubaflub cotto: bummer man.  my current job is maintaing a legacy app on PHP and learn Ruby / Rails
03:52 Austin Sorear: No, purely boolean.
03:52 cotto same difference
03:52 Austin F,? -> T
03:52 Austin T, F -> F
03:52 Austin T, T -> T
03:52 cotto Austin, http://www.youtube.com/watch?v=zXLeSuI4BVQ
03:52 chromatic http://github.com/miura1729/ytljit
03:54 cotto tl;dw version: in-salon advertizing platform
03:56 Austin Okay. On the one hand, you're saying "I'm reluctant to pursue PHP development..."
03:56 Austin But on the other hand, 90% of your target market is mostly-naked women.
03:56 cotto I'm not reluctant.  I just hate the language.  That's not exclusive with making money from it.
03:56 Austin Get off parrot-dev, and start reading books on subliminal messages..
03:57 cotto Interestingly I got a message about it through a guy at my church.
03:57 Austin Heh
03:58 Austin Don't listen to any cd's he gives you
04:02 snarkyboojum joined #parrot
04:04 s1n1 joined #parrot
04:04 s1n1 left #parrot
04:13 Austin Okay, here's a question for the group at large: Given that I have a set of independent parameters, each of which is chosen from a small, enumerated domain ({ a, b, c}, {1, 2, 3, 4, 5}) I have to make an evaluation of how they are going to interact.
04:14 Austin That is, each permutation (a, 1), or (b, 5) will have some allow/disallow/configure attached to it.
04:14 Austin What is that called?
04:14 bubaflub Austin: a mapping?
04:14 purl it has been said that a mapping is making Trelane's head hurt
04:15 Austin Okay.
04:15 Austin Who implements it?
04:15 * bubaflub scratches head
04:15 * Austin too.
04:16 cotto If I get this job, I'll be able to recommend a shampoo for that.
04:16 Austin For example, in language-land an operator can have rules for different arg types. So at the language level, you've got (operator, op-type1, op-type2) as parameters.
04:17 Austin Or a variable can have a storage class, scope, and type:  (scope, storageclass, type) as parameters.
04:17 Austin Is there a "known best way" to implement that kind of stuff?
04:17 Austin (For example, in Parrot any storage class but "register" is incompatible with type=int)
04:24 cotto I think your question is too general to answer as-is.  Is there a specific problem you're trying to name?
04:27 Austin Yeah. I'm trying to come up with a generalization of the examples I just mentioned.
04:27 cotto oic
04:28 Austin I can see they've got this kind of similarity, but Google is not being my friend.
04:28 cotto The general question is "Which permutations make sense?"
04:29 Austin Fair enough.
04:29 cotto afaict
04:30 Austin I guess it's a relation at the bottom level.
04:30 Austin Given '%' and 'double' and 'boolean', here's what you need to do to make that work
04:32 cotto If it were me I'd just start hard-coding it and make it more flexible if I saw enough of a pattern.
04:34 Austin Sure. Did that. Now wondering if I shouldn't have.
04:43 cotto darbelo, ping
04:50 cotto seen darbelo
04:50 purl darbelo was last seen on #parrot 4 hours, 43 minutes and 17 seconds ago, saying: Unless I got kill-filed.
04:50 cotto clock?
04:50 purl cotto: LAX: Mon 9:50pm PDT / CHI: Mon 11:50pm CDT / NYC: Tue 12:50am EDT / LON: Tue 5:50am BST / BER: Tue 6:50am CEST / IND: Tue 10:20am IST / TOK: Tue 1:50pm JST / SYD: Tue 2:50pm EST /
05:05 snarkyboojum joined #parrot
05:25 dalek parrot: r45408 | petdance++ | trunk/config/gen/makefiles/root.in:
05:25 dalek parrot: add ARGFREE to the ctags handler
05:25 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45408/
05:26 theory joined #parrot
06:08 uniejo joined #parrot
07:06 quaddle joined #parrot
07:06 quaddle wow~
07:16 riffraff joined #parrot
07:17 walter joined #parrot
07:31 joeri joined #parrot
07:40 brooksbp joined #parrot
07:57 lucian joined #parrot
08:10 JimmyZ joined #parrot
08:11 AndyA joined #parrot
09:11 clinton joined #parrot
09:19 darbelo cotto: pong
10:13 JimmyZ joined #parrot
10:24 bacek joined #parrot
10:25 cosimo joined #parrot
10:36 joeri left #parrot
10:40 joeri joined #parrot
10:46 dngor joined #parrot
11:58 snarkyboojum joined #parrot
12:03 ruoso joined #parrot
12:05 whiteknight joined #parrot
12:19 whiteknight good morning, #parrot
12:21 darbelo mornin'
12:31 whiteknight how are you today, darbelo?
12:38 Mokurai joined #parrot
12:38 darbelo Looking at string guts.
12:43 darbelo I'm looking at how much it would gain us to 'hide' the _buflen member of buffers inside the buffer proper.
12:43 darbelo It'd make Buffers (and hence strings) one size_t smaller
12:44 darbelo At the cost of some C macro magic with negative offsets.
12:45 tetragon joined #parrot
12:49 whiteknight I'm cool with negative offsets, if that saves space
12:49 darbelo Also, we already pull that trick with refcounts.
12:52 darbelo The an alternative, but related, trick is to keep the string-only bufused inside the buffer iself, right at _bufstart
12:53 darbelo That would make strstart always differ from _bufstart, but given that we can't merge them, I see no barrier to further differentiation.
12:54 darbelo Also, it's data on the Buffer, strings that share a buffer are performing duplicated bookkeeping.
12:56 kthakore whiteknight: *phew* gsoc is exhausting
12:56 darbelo And it's not even started yet!
12:56 kthakore darbelo: yeah
12:57 kthakore darbelo: we have 5 ppl want to student it
12:57 kthakore darbelo: I am collaborating, talking and timelining projects
12:57 * darbelo is a student.
12:57 kthakore darbelo: ah :)
12:57 kthakore darbelo: I am mentoring
12:58 kthakore I was going to be a student but ... no one wanted to mentor me in XS ...
12:58 darbelo Ugh. You need to pick less ugly subjects.
12:58 moritz kthakore: maybe you could help with blizkost as a student (perl5 embedding in parrot)
12:59 moritz kthakore: sorear might mentor you :-)
12:59 kthakore moritz: you can be student and mentor?
12:59 kthakore moritz: I am prolly going to be mentoring 3 ppl ... so I don't think I will have time
12:59 moritz kthakore: I fear not :-)
13:00 kthakore moritz: *phew* dodged a bullet there
13:00 kthakore :P
13:00 * moritz finds $dayjob + mentoring one student challenging already
13:01 kthakore moritz: I know ....
13:01 kthakore moritz: I am going to have to get the mentors rallied
13:01 kthakore moritz: our plan is to be a net? of mentors
13:01 kthakore so if some one is busy other guy helps
13:01 moritz nice
13:02 * moritz acted as a mentor once, and as a backup mentor last year
13:02 kthakore ah
13:02 kthakore I am prolly going to be backup mentor for all until june
13:03 moritz though as a backup there was really not much to do, since the primary mentor was available all the time
13:03 kthakore ah
13:04 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33026), fulltest) at r45408 - Ubuntu 10.04 beta amd64 (g++ with --optimize)
13:07 darbelo Hm, line 1629 of src/string/api.c is weird.
13:07 aukjan joined #parrot
13:08 darbelo If two strings share the same buffer? How could bufused be different for them?
13:09 kthakore darbelo: what rev ?
13:10 darbelo HEAD. But it's been like that for a while.
13:10 atrodo joined #parrot
13:10 kthakore darbelo: no what is the number?
13:11 bacek darbelo, ignore it. I'm goin' to implement "immutable strings" really soon :)
13:11 bacek (We can't wait till Autumn because of R*)
13:12 darbelo bacek: Heh, I was trying to move that member out of the struct and into the buffer.
13:12 bacek I probably will just remove it
13:12 darbelo That's even better. :)
13:13 bacek there is no point to store bufused in immutable buffer :)
13:13 darbelo True. All you need is strlen for that case.
13:14 patspam joined #parrot
13:22 whiteknight bacek: luckily no students have submitted immutable strings applications for GSOC yet
13:23 bacek whiteknight, excellent. Stop them from any attempts to do it :)
13:23 darbelo Really? I thought I had seen one?
13:23 moritz actually one of them planned, and bacek's thread discouraged him (but chose another topic)
13:24 bacek I think proper implementation of threads is much better from GSoC point of view.
13:24 whiteknight darbelo: only two parrot-related applications in so far: yours and Khairul's instrumentation thing
13:24 whiteknight I was hoping Chandon would submit his threads one soon
13:24 bacek I would love to see Erlang-on-Parrot with similar performance
13:51 dalek joined #parrot
13:57 Coke_ joined #parrot
13:57 Coke_ joined #parrot
14:12 aukjan joined #parrot
14:19 kurahaupo joined #parrot
14:21 Mokurai1 joined #parrot
14:32 bubaflub joined #parrot
14:42 uniejo joined #parrot
14:44 bluescreen joined #parrot
14:47 dalek rakudo: c06062d | (Solomon Foster)++ | src/core/ (3 files):
14:47 dalek rakudo: Add Numeric.log10 which simply calls self.log(10) -- remove resulting unneeded log10s from Complex and Num.
14:47 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​06062d46904933c547fca36cdb81e726cfd5503
14:49 theory joined #parrot
15:03 he__ joined #parrot
15:05 sorear joined #parrot
15:09 brooksbp_ joined #parrot
15:22 Mokurai1 joined #parrot
15:27 whiteknight bacek: you know any Erlang? My working knowledge of it is thin
15:30 darbelo I have some vague notions of it.
15:31 darbelo It has message-passing concurrence.
15:32 whiteknight yeah, I've seen some of it, just never used it much
15:32 whiteknight having Erlang on Parrot would be nice to have, but I can't imagine it would get too popular
15:33 moritz our problem is not too few HLLs on top of parrot, but too few *usable* HLLs
15:33 darbelo Parrots in your swithcboard!
15:33 Mokurai joined #parrot
15:52 davidfetter joined #parrot
15:57 whiteknight moritz: you know, if Perl6 was a much smaller, less-ambitious language, it would be done and usable by now
15:57 whiteknight but noooooo. you guys had to shoot for the stars
15:58 whiteknight take every feature anybody has ever heard of, and strap it in there :)
15:58 whiteknight plus a few features I think you guys just made up :)
16:00 aukjan joined #parrot
16:00 kthakore whiteknight: feeling it eh?
16:01 kthakore moritz: I love perl6 but really ... just get it done!
16:03 particle whiteknight: the same can be said about parrot
16:03 particle if we were replacing the perl 5 vm, we'd be done now and then some
16:05 darbelo We have the features, the lack of perl5 is entirely another matter ;)
16:06 whiteknight we would need to forsake a certain amount of sanity
16:07 darbelo Pfft. Parrot is *the* vm to implement perl5 on top of.
16:08 darbelo Or it was until you guys reversed the calling conventions.
16:09 darbelo Too bad nobody wants another perl5.
16:17 bluescreen joined #parrot
16:29 whiteknight I remember years ago there was talk that versions of Perl5 after 5.14 would all be running on top of Parrot
16:29 whiteknight and somewhere along the line that idea was dropped like a hot potato
16:30 darbelo Do *you* want to touch teh perl5 internals?
16:30 moritz well, as long as parrot can't run threads of a HLL it can't run Perl 5.
16:30 whiteknight i'm not against it
16:31 particle whiteknight: the initial imagined path from perl 5 to perl 6 was to first swap out the p5 vm with parrot, then migrate code to p6 on parrot
16:31 particle pugs changed that, by creating a p6 that used p5 as the vm
16:31 whiteknight moritz: in time. Threads won't be broken forever, especially not if we have a GSOC project devoted to them this year
16:31 whiteknight particle: ah. Maybe that's what I'm thinking of
16:31 particle p6 kept changing, and growing further away from p5, and now, largely, there's no direct path without pain
16:32 whiteknight particle: I'm definitely not a perl insider, what I know was gleaned from reading mailinglist backlogs, old use.perl posts, and crap on O'Reilly
16:32 moritz whiteknight: sure. I just want to remind people that parrot doesn't have a proper superset of Perl 5 VM features
16:32 whiteknight moritz: threads are one of those things that are both the most broken and the least looked-at
16:33 whiteknight My GSOC project brought a lot more attention to the GC. If we have a project on threads, I hope that system gets more attention too
16:33 whiteknight even if the project is a "failure", it could still highlight some areas for development
16:33 darbelo Threads are also very tricky to get right in a portable way.
16:33 purl okay, darbelo.
16:34 darbelo That hurts development.
16:35 whiteknight darbelo: yes, right.
16:35 cotto_work good morning
16:35 purl Good Morning Mr Rogers
16:36 whiteknight problem is really in performance. If we share interpreters, we need locks on global data. If we don't share interpreters, we need to clone (likely deep clone) global data
16:36 whiteknight system right now attempts to clone the whole world, which is great until it isn't
16:37 moritz or until it finds things it can't clone
16:37 whiteknight Conversely, if we marked some globals as read-only, we wouldn't need as many locks. But, then we need a robust system for dealing with read-only attributes, which we don't really have now
16:37 whiteknight mortiz: yes, exactly. Clone is a huge hassle
16:39 TimToady or you can use a language with very few globals, like Perl 6 :)
16:39 darbelo Maybe we should reimplement parrot in Perl 6.
16:39 TimToady later
16:40 darbelo cotto_work: you pinged?
16:40 cotto_work darbelo: how much experience do you have dealing with unicode?
16:41 darbelo I know how painful it can be ;)
16:42 cotto_work I'm curious because of your gsoc proposal.
16:43 darbelo I know the basics and have been reading up on the arcane points.
16:44 whiteknight cotto_work: I doubt too many people have deep experience with it
16:44 cotto_work true
16:45 * TimToady thinks graphemes should be stored as Rat values (Int being a degenerate Rat with no extra modifiers)
16:46 darbelo That's a good idea, but I'm not convinced we can spare that many bytes.
16:46 whiteknight TimToady: what's the benefit there?
16:46 darbelo whiteknight: Preserves sorting order.
16:47 whiteknight ah, okay
16:47 darbelo A link to an irclog explainig it is referenced at the bottom of my proposal.
16:47 whiteknight it would be easy to do that implicitly. Don't have an array of Rat PMCs, but use an integer array with 2N spaces, where each grapheme was located at element (2 * i) and (2 * i + 1)
16:48 TimToady and ord($str) gives you a single value that can reproduce the same grapheme with chr()
16:48 whiteknight that's how PLA stores it's complex values, essentially
16:49 darbelo whiteknight: Think that each 'char' can be 4-bytes in size.
16:49 Benabik joined #parrot
16:49 TimToady darbelo: Ints and Rats are arbitrary size in Perl 6, which means they can also be stored arbitrarily small, if they're little ones
16:49 whiteknight darbelo: right, so an array of 4-byte integers
16:49 whiteknight TimToady: in theory. Depends how the implementation does the packing, I assume
16:50 darbelo whiteknight: double that, for your idea.
16:50 whiteknight darbelo: still an array of integers.Just twice as many integers
16:50 TimToady just sayin' there's lots of knobs if you break away from the notion that all the elements have to have the same footprint
16:50 darbelo And then multiply for the numbers of chars in a long-ish nqp program that NQP will gobble up.
16:50 Benabik dukeleto: Saw in the logs that you had a problem with t/profiling/profiling.t  It also fails for me on Mac 10.6.3.  I traced it back to r45337.  Reverting that made the test pass again for me.
16:51 brooksbp joined #parrot
16:51 darbelo TimToady: Thing is, we lose fast indexed access if all elemnts aren't of the same footprint.
16:51 TimToady and lots of ways to keep access O(1)-ish
16:52 AndyA joined #parrot
16:52 TimToady one could use a variant of the NFG proposal, for instance
16:53 * particle read that as O(-1)ish
16:53 darbelo True, but I don't want to deal with *unicode* and being clever about unicode all in the same summer ;)
16:53 particle that's a best-case-worst-case
16:53 TimToady where well-behaved codepoints (for some definition) are immediately indexable, and the others have one level of indirection based on the negated integer
16:53 whiteknight darbelo: a good framework and good cleanup will set the stage for larger projects in the future
16:54 TimToady that could be indirection to strings, as in the original NFG proposal, or indirection to a Rat
16:54 TimToady another advantage of making everything notionally a Rat is that most of your character comparisons just turn into math
16:55 theory joined #parrot
16:55 darbelo whiteknight: Exactly. I'm aiming to do cleanup and framework now.
16:55 TimToady "ignore accents" is just "compare integer parts"
16:55 TimToady most of the actual string processing part becomes potentially very simple
16:56 whiteknight yes, sounds very optimizable
16:56 TimToady and agnostic of the underlying memory representation, which could be pluggable at the numeric level
16:57 TimToady and most strings accesses don't have to be linear because they tend to be localized, at least for parsing-ish problems
16:58 TimToady so you want a data structure that's linear for close things, and maybe n*(log n) for arbitrary access
16:58 whiteknight if strings really can become immutable soon, we gain even more from that localization
16:58 TimToady s/want/might want/
16:58 whiteknight and can be much cheaper about substring access
16:58 TimToady yes, because you can slice and dice bits into another structure
16:59 TimToady but you have to break out of this low-level view of strings to get there
16:59 TimToady and I think I'm getting a lot more comfortable with the abstraction that a string is just a list of nubmers
16:59 TimToady numbers, even
16:59 dalek rakudo: 4e1dd48 | moritz++ | t/spectest.data:
16:59 dalek rakudo: we pass signature.t
16:59 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​e1dd48caf76f188e7486ba76a0abb6e988c6ea2
16:59 TimToady it would be good to be able to optimize lists of numbers too :)
17:00 TimToady it's really the same thing from the flip side
17:00 TimToady anyway, I've said my piece, for the moment.  make of it what you will. :)
17:01 whiteknight TimToady++
17:01 * whiteknight has to leave for a meeting. Later
17:04 kjeldahl joined #parrot
17:06 whiteknight joined #parrot
17:08 Mokurai joined #parrot
17:13 dukeleto Benabik: i guess we need a TT for t/profiling/profiling.t on darwin
17:31 chromatic joined #parrot
17:32 Benabik dukeleto: My guess is that it's related to how %config<tempdir> is set on Darwin, but I don't have enough tuits to figure it out.  :-(
17:35 dukeleto Benabik: i made http://trac.parrot.org/parrot/ticket/1544 . Feel free to add your thoughts there
17:36 Benabik dukeleto: Thanks, will do.
17:43 Coke tmpdir on my box is /var/folders/Bh/BhrBssnnHYqX6SDI8N3S1U+++TM/-Tmp-
17:44 Coke which I am guessing was meant to be a one shot temp dir and NOT reused.
17:44 Coke (from parrot's config_lib.pasm)
17:45 dalek TT #1544 created by dukeleto++: t/profiling/profiling.t fails on darwin
17:45 dalek TT #1544: http://trac.parrot.org/parrot/ticket/1544
17:46 Coke er, "tempdir".
17:47 cotto_work ok.  So what would dtrt mean in that case?
17:52 Coke if we're going to want a tempdir we can reuse, we need to fix config/init/defaults.pm
17:53 Coke Probably do to the usual dance of checking the TE?MP(DIR)? variables.
17:53 Coke (since file:spec seems to be for one-shot use only)
17:54 Coke or add something to the File/OS pmcs that gives you a fresh temp dir.
17:54 Coke (though i imagine that would still need a good top level /tmp dir to work from.)
17:55 particle File::Temp is for one-shot
17:55 particle File::Spec->tmpdir should point to the system tmpdir
17:55 particle *system or user
17:55 Coke particle: you'd think so, but not on darwin.
17:57 Coke Hurm. I do get a repeatable answer if I run it in a loop.
17:57 particle does darwin use File::Spec::Unix?
18:07 bubaflub joined #parrot
18:10 chromatic Any reason parrot_string_t has to contain the encoding and charset pointers as well?  Aren't those properties of the buffer?
18:12 darbelo Buffers are chunks of memory. Encoding and charset are data on the string.
18:12 darbelo Or so the current code goes.
18:14 chromatic I'm trying to imagine two string headers with different encodings and charsets that use the same buffer.
18:14 darbelo If I don't use any codepoints >127 a Buffer would be usable by both as at ascii and utf8 string header.
18:14 chromatic Ah, that's the case I missed.
18:15 darbelo There's also the 'binary' charset, that basically downgrades the string back to buffer.
18:16 chromatic Still, getting rid of 8 bytes of a 36 byte struct is a 22% improvement.
18:19 darbelo I was looking at removing bufused today.
18:20 darbelo Thatone could be easily be put at the begining of the buffer without too much hassle.
18:20 chromatic bufused and _buflen, I assume.
18:22 darbelo Yeah. _buflen is even easier as it's already macro-wrapped for our convenience.
18:23 darbelo But_buflen is also part of the Buffer structure, so we'd have to put it behind _bufstart.
18:26 darbelo That might require touching a bit more code, now that I think of it. I think there was a refcount using that space already.
18:27 hercynium joined #parrot
18:59 szabgab joined #parrot
19:00 whiteknight joined #parrot
19:12 Mokurai joined #parrot
19:21 Coke particle: I keep getting the same tmpdir from F:S->td - /var/folders/Bh/BhrBssnnHYqX6SDI8N3S1U+++TM/-Tmp- ...
19:21 particle i don't see anything specific in F:S for os/x
19:22 particle so tmpdir is defined in F:S:Unix
19:24 Coke it's my $TMPDIR
19:24 Coke http://lists.apple.com/archives/darw​in-userlevel/2008/Sep/msg00007.html mentions it's based on GUID. trying to figure out how often it changes, if at all.
19:25 NotFound joined #parrot
19:25 NotFound hi
19:25 purl hey, NotFound.
19:25 Andy Coke, I just noticed that you have the configger guessing __attribute__xxx__ too
19:25 Andy which is cool, but I think might not be working.
19:26 Andy I'm trying to add __attribute__hot__ and __attribute__cold__
19:26 Andy but
19:26 Andy ARGH
19:26 Andy but it's not going as well as I might like.  Anyway, I will give details later if I'm still in problems.  Just sayin' that I like how you redid all the sniffing.
19:28 Coke Andy: we can pull out the attribute guessing - if those are in warnings.pm now it's because they were hardcoded in there before.
19:30 Andy no, the guessing is good
19:30 purl okay, Andy.
19:31 Andy The way I saw it was that you were trying to programmatically figure what attributes worked for the compiler, just like guessing warnings.
19:31 Andy Which I LIKE!
19:32 Coke WOO
19:32 Coke particle: looks like TEMPDIR might change after reboot on darwin.
19:32 Coke I cannot verify this now. perhaps someone else here can.
19:33 Coke in any case, we should probably not cache tempdir, but should pull it fresh from the env if it's needed in parrot.
19:34 particle yes, good idea
19:34 purl particle: Good Idea: Taking a deep breath before jumping into a swimming pool. Bad Idea: Taking a deep breath after jumping into a swimming pool.
19:34 particle take a deep jump, purl
19:34 purl particle: i'm not following you...
19:34 moritz no, good idea is <reply>|
19:34 purl okay, moritz.
19:38 Coke particle: you know what; I bet that the code handling that tempdir path doesn't like the funky chars.
19:38 Coke (I'm not sure that the path is changing ever, I think it's just funky)
19:39 Coke good idea.
19:39 particle that's a good point
19:39 * Coke cries.
19:41 Coke particle: I don't see anything obviously wrong in the references to tempdir in ProfTest/*.nqp, though.
19:42 pjcj joined #parrot
19:43 bluescreen joined #parrot
19:49 cotto_work Yay for not being obviously wrong.
19:50 cotto_work joined #parrot
19:50 darbelo You were unobviously wrong?
19:50 dalek rakudo: 5094077 | moritz++ | src/Perl6/Grammar.pm:
19:50 dalek rakudo: port most "Unsupported use of $weird variable" from STD.pm.
19:50 dalek rakudo: TimToady++ for coming up with them in the first place
19:50 dalek rakudo: I'm not yet convinced they all work (for example I couldn't trigger the one
19:50 dalek rakudo: for $@, although the regex seems pretty obvious), but all in all it looks like
19:50 dalek rakudo: a net win.
19:50 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​094077aeddbbce19902fbcc3b63bbefedd18650
19:50 Austin Cotto is obviously wrong, but he can't see it...
19:51 cotto_work Yeah.  I hate that guy.
19:52 * Austin too.
19:56 Austin Woot.
19:56 Austin Expected specifier( :!const, :name<int> )
19:56 Austin but was specifier( :const, :name<int> )
19:56 Austin That took way too long.
19:59 bluescreen joined #parrot
20:01 Mokurai joined #parrot
20:09 TiMBuS joined #parrot
20:09 clinton joined #parrot
20:09 kthakore Wooo!
20:09 kthakore WOoot!
20:09 kthakore :p
20:12 Mokurai2 joined #parrot
20:18 janus eplv.xde,fe3 r4 r3kr4t45mk3
20:18 janus Xx dx
20:18 janus x  f xd
20:18 janus <-xqd 4 lft
20:18 janus de
20:18 janus e'
20:18 janus #e
20:18 janus dxwrfcwr3 <ce<<<
20:18 janus dwc d,, ,frhv
20:18 janus
20:19 * cotto_work says hi to janus' cat
20:19 janus duh, sorry... my dyughter keeps trying
20:19 cotto_work or daughter
20:19 purl keep her away from billn.
20:20 darbelo She's a fast typer. I'll give her that.
20:20 darbelo Needs to work on the spelling a bit.
20:22 cotto_work #ps in 8
20:23 darbelo That's today?
20:23 * darbelo forgot ;)
20:23 cotto_work It's Tuesday.
20:27 hercynium joined #parrot
20:27 allison joined #parrot
20:27 davidfetter joined #parrot
20:30 mikehh #ps time
20:33 moritz bubaflub: I think the gsoc deadline is very soon, so please hurry up :-)
20:33 bubaflub moritz: yep, this friday i believe.  i'm working with the rtems people to get my dev environment setup
20:34 darbelo bubaflub: I have a RTEMS cross-compiling setup mostly-working. Ping me if you need any help.
20:35 bubaflub hoo boy do i
20:36 darbelo My advice is to get a RPM-based linux. Even if virtualized.
20:36 bubaflub i've got virtual box running Fedora Core 12 on a dev image they supplied
20:37 bubaflub i've got the system loaded, compiled, updated, bootstrapped
20:37 bubaflub and i can load in precompiled examples into sparc-rtems4.10-gdb and that's all gravy
20:37 bubaflub b
20:37 payload joined #parrot
20:37 bubaflub but i'm having trouble compiling some of the examples
20:38 darbelo Odd they should work out-of-the-box. Are you making sure the RTEMS bin dir is the first thing on your $PATH ?
20:39 bubaflub yeah, there is a makefile in the example
20:39 bubaflub er with the example
20:39 bubaflub and the makefile has some includes that aren't being found
20:39 Topic for #parrotis now #parrot Parrot 2.2.0 "Like Clockwork" Released! | http://parrot.org/ | Channel log: http://irclog.perlgeek.de/parrot/today | Priority: fix line number annotations
20:42 dalek rakudo: e54dc62 | moritz++ | src/Perl6/Grammar.pm:
20:42 dalek rakudo: detect obsolete use of -> as postfix; fixes RT #65212
20:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​54dc62b90a281b1223243dd64f4f77456aaf969
20:42 dalek rakudo: b75b2b3 | moritz++ | src/Perl6/Grammar.pm:
20:42 dalek rakudo: catch infix << and >> as obsolete bit shift operators
20:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​75b2b30a3cd75ce37dc43e9d5f0627fd580df46
20:43 jsut_ joined #parrot
20:46 GeJ Good morning everyone.
20:47 brooksbp_ joined #parrot
20:48 brooksb__ joined #parrot
20:55 Topic for #parrotis now #parrot Parrot 2.2.0 "Like Clockwork" Released! | http://parrot.org/ | Channel log: http://irclog.perlgeek.de/parrot/today | Priority: fix line number annotations | Finish GSoC applications
21:19 darbelo chromatic: http://irclog.perlgeek.de/p​arrot/2010-04-06#i_2201103
21:20 bacek morning
21:20 GeJ G'Day bacek
21:20 * bacek slept over #ps...
21:20 bacek G'Day GeJ
21:29 Whiteknight joined #parrot
21:37 Mokurai1 joined #parrot
21:44 chromatic Let's steal from COLA for Lorito: http://lambda-the-ultimate.org/node/2483
21:45 chromatic "We show that three object types and five methods are sufficient to bootstrap an extensible object model and messaging semantics that are described entirely in terms of those same objects and messages."
21:46 theory joined #parrot
21:47 allison chromatic: it'd be an interesting experiment
21:47 allison chromatic: I suspect the complexity would just bubble up elsewhere, but it'd be interesting to see where
21:48 chromatic If anyone knows how to reduce the number of necessary primitives in a bootstrapped but still usable language, it's Alan Kay and friends.
21:49 Whiteknight so get his ass in here and put him to work
21:49 Whiteknight :)
21:49 chromatic http://www.itkovian.net/base/autom​ated-just-in-time-compiler-tuning/
21:52 allison curiously, there was an early implementation of cola on Parrot
21:53 cotto_work chromatic: That's more about the metaobject model than ops.  How were you thinking about applying it to Lorito?
21:53 allison and even more curiously, cola inspired dan to add more opcodes
21:53 kurahaupo joined #parrot
21:54 darbelo
21:54 chromatic We need to build something out of those ops.  A pervasive metamodel might be the right thing.
21:54 darbelo Are this cola and that cola the same cola?
21:55 allison ugh, thank goodness we never ended up with the 8/16/32/64 bit op variants
21:55 chromatic I don't think Melvin's Cola is the same as VPRI's Cola.
21:57 allison hmmm... they're about the same age
21:57 allison (the "recent" snapshot of the piumarta svn repository is 2007)
21:59 allison but yes, looks like accidental duplication of language names
22:20 * allison boarding
22:22 Whiteknight allison is always flying, it seems
22:29 kid51 joined #parrot
23:12 tetragon joined #parrot
23:39 bacek joined #parrot
23:41 Whiteknight ash_++ on the proposal
23:41 tcurtis joined #parrot
23:41 Whiteknight ash_:ping
23:44 Whiteknight Well, we have three proposals so far, so that's a good thing
23:45 cotto_work yup
23:48 ruoso joined #parrot
23:49 tcurtis Whiteknight: on which note, I plan to submit a proposal concerning rewriting the runtime library in NQP.
23:49 Whiteknight runtime library?
23:50 Whiteknight tcurtis: what project were you planning originally?
23:50 cotto_work What'd be the benefit other than maintainability and exercising nqp?
23:51 cotto_work and +1 to Whiteknight's question
23:53 cotto_work (i.e. which runtime library?)
23:53 tcurtis The stuff in runtime/parrot/library/. The immutable strings idea Whiteknight mentioned on his blog. Other than maintainability, not much benefit, but that seems like a pretty useful benefit. Although it would involve writing tests for the portion of the library that lacks them, as well, but that's not really strictly tied to the rewriting in NQP.

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

Parrot | source cross referenced