|
#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Improve Rakudo rx and buildtime performance | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs and roadmap items Set by moderator on 30 March 2010. |
|||
| 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
|
|||
| Austin | Hmm.. | 00:03 | |
| Whiteknight leaves, and particle appears. | |||
| Coincidence? | |||
| purl | I think not.! | ||
| darbelo puts his proposal on the web app. | 00:04 | ||
| cotto_work | darbelo++ | ||
| 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. | ||
| darbelo | Yeah. But I would expect parrot-dev to have a wider reach than melange. | 00:07 | |
| cotto_work | also true | ||
| darbelo | Unless I got kill-filed. | ||
|
00:11
brooksbp joined
|
|||
| dalek | parrot: 18eefad | (David Fetter)++ | plparrot.c: Turned C++ style comments into C style, per PostgreSQL coding conventions (C89) |
00:22 | |
|
00:24
dngor_ joined
00:28
Mokurai joined
00:35
leprevost joined
|
|||
| dukeleto | is t/profiling/profiling.t failing for anybody else? | 00:39 | |
|
00:41
bacek joined
00:42
tcurtis joined
|
|||
| dalek | parrot: b07024e | dukeleto++ | (2 files): Add support for the char datatype and add tests supported and a few tests related to that have been added. |
00:51 | |
| parrot: 19846e6 | dukeleto++ | t/sql/test.sql: Add another test for returning ints |
|||
| GeJ | dukeleto: checking now | 00:57 | |
| dukeleto: Works for me. (FreeBSD 7.2 amd64) | 01:04 | ||
|
01:09
brooksbp_ joined
01:13
Mokurai joined
01:33
brooksbp joined
|
|||
| tcurtis | Is there a way to force NQP to treat numbers as integers rather than floats? | 01:38 | |
| Austin | No and yes. | ||
| In general, no. | |||
| But you can fake it on a case by case basis. | |||
|
01:39
davidfetter joined
|
|||
| Austin | (In particular, nqp will always (currently) do the wrong thing with arrays and such. | 01:39 | |
| tcurtis | More specifically, is there any way to do integer rather than float division without dropping down to PIR? | 01:45 | |
| nopaste | "Austin" at 68.37.47.32 pasted "tcurtis: Integer division" (5 lines) at nopaste.snit.ch/20178 | 01:48 | |
| Austin | Probably not what you want, unless you're doing it a *lot*. | 01:49 | |
| (And even then, I'll bet your floating point registers can hyperthread...) | |||
|
01:56
Psyche^ joined
01:59
abqar joined
|
|||
| 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 | |
|
02:00
ash_ joined
|
|||
| Austin | Yow. | 02:01 | |
| What were you doing that it felt it needed bigint? | |||
|
02:03
dngor_ joined
|
|||
| tcurtis | Rewriting Math::Rand.pir in NQP. Multiply the seed by 1103515245, add 12345, divide by 65536, mod 32768. | 02:03 | |
| Austin | Hmm. Are your ints 32 bit? | 02:04 | |
| Hell, nevermind. If it worked, it worked. | |||
| And an lc randomizer is small enough you can probably stand to spell out all the ops. | 02:05 | ||
| ash_ | is that random enough? | 02:08 | |
| Austin | Hard to say - there's no test for it. | ||
| :) | |||
| tcurtis | Apparently, it's taken straight from the C99 standard, according to the current Math/Rand.pir | 02:11 | |
| ash_ | 4 is random, i just rolled a d6 | 02:13 | |
| but is it random 'enough'? :P | 02:14 | ||
| nopaste | "tcurtis" at 97.95.156.133 pasted "ash_: Nope. Tests fail." (21 lines) at nopaste.snit.ch/20179 | 02:16 | |
| Austin | Code? | 02:19 | |
| purl | hmmm... Code is already out | ||
|
02:21
ash_ joined
|
|||
| nopaste | "tcurtis" at 97.95.156.133 pasted "Austin: you knew I was talking about whether 4 was random enough, right?" (29 lines) at nopaste.snit.ch/20180 | 02:22 | |
| Austin | :) | ||
| As a matter of interest, "return x" is not a good idea in nqp atm. | 02:23 | ||
| Just fall off the sub with "x;" or "my $result := computation()" or something. | |||
| Using return causes an exception to be created and thrown. | 02:24 | ||
| ash_ | bah, stupid internet here just went out.. | ||
| 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 | ||
| and then to do work on the llvm stack frame builder | |||
| 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:29 | |
| ash_ | tcurtis: i know there was some talk of trying to do some PAST optimizations on NQP | 02:30 | |
|
02:30
walter joined,
Mokurai joined
|
|||
| ash_ | also, maybe looking into optimizations on the otherside with PBC's too | 02:31 | |
| 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 | |||
| if your looking for ideas, whiteknight has a bunch of ideas for the project | |||
| Austin | Woot. | 02:32 | |
| Tcurtis++ | |||
| Rewrite all the pmcs in nqp. | |||
| ash_ | then everything could be self hosted in nqp, lol | 02:33 | |
| 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? | ||
| Austin | Hell, no. | ||
| ash_ | although, if you made the code emitters pluggable, you could do that fairly easy | ||
| Austin | Moore's law is all the performance I need. | ||
| ash_ | just make a jvm code emitter, and some runtime support in java, and bam, new platform | 02:35 | |
|
02:35
janus joined
|
|||
| tcurtis | Sarcastic praise following a ++ sends a somewhat mixed message. | 02:36 | |
| 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 | |
| that is assuming i can get the llvm stack frame builder working right | |||
| dalek | TT #1541 closed by jkeenan++: warnings appearing during 'make' invocation of pmc2c.pl | ||
| TT #1541: trac.parrot.org/parrot/ticket/1541 | |||
|
02:38
brooksbp_ joined
|
|||
| Austin | No sarcasm on that front, dude. I'm convinced that 90% of the pmc stuff should be in nqp. | 02:38 | |
| or some other pir-equivalent. | |||
|
02:42
snarkyboojum joined
|
|||
| 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. | ||
| I'm sure there's stuff that needs to be in C. | 02:43 | ||
| But I'm equally sure that we don't know what it is. | |||
| ash_ | lorito was sorta supposed to address that | 02:44 | |
| find a small set of ops you can build all the other ops out of | |||
| Austin | That's one way to look at it. | ||
| ash_ | same principle as the vm for most other languages, like ruby, or python, or perl 5 | ||
| Austin | My current evaluation of lorito is that it will eliminate the nested-runloop problems. | ||
| 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 | ||
| ah, there are 78 used ops in ruby's yarv | 02:49 | ||
| lifegoo.pluskid.org/upload/doc/yarv..._iset.html | |||
| if your curious | |||
| oh, oops it start at 0, 79 hthen | 02:50 | ||
| s/hthen/then | |||
|
02:52
bubaflub joined,
petdance joined
|
|||
| ash_ | in MacRuby, they replaced that with 77 slightly modified ops | 02:53 | |
| most of them do the same things as the yarv ones, but were re-implemented a bit | |||
| dalek | TT #1504 closed by jkeenan++: config/auto/arch.pm: Uninitialized value warning on Darwin due to change ... | 02:54 | |
| TT #1504: trac.parrot.org/parrot/ticket/1504 | |||
| Austin | No wonder their performance sucks. | ||
| They don't have a factorial opcode like parrot does. | 02:55 | ||
| Sorry, *did*. | |||
| Until whiteknight got rid of it. | |||
| ash_ | as long as they don't touch my fibonacci opcode | ||
| Austin | Dynops, baby. Gotta love 'em. | 02:56 | |
|
02:58
theory joined
|
|||
| 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 | ||
| 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. | ||
| Bootstrap it down to pir, ship the pir. Make the nqp->pir a part of the development build. | 03:04 | ||
| chromatic | Perl 5 has a couple of hundred opcodes, but they're not general purpose at all. | 03:14 | |
| ash_ | its hard to draw the line at "x, y, and z are needed", since it all kinda depends | 03:18 | |
| chromatic | Sure, a lot of this is subjective. | 03:19 | |
| ash_ | interesting, php has an array that is 154 bits long, but there are some unused codes in there, or rathe undocumented | 03:24 | |
| php.net/manual/en/internals2.opcodes.list.php if your interested | 03:25 | ||
| Austin | Ahh. | ||
| Don't do that. | |||
| Reading the php sources makes you dumber. | 03:26 | ||
| ash_ | i was just glancing for a comparison | ||
| Austin | Sure, sure. You only want to do it until you need glasses... | 03:27 | |
| I understand. | |||
| ash_ | i have had glasses since i was 12 | ||
| Austin | Shave your palms, much? | ||
| ash_ | and i still can't see straight | ||
| Austin | :) | ||
| Back in the day, TRS-80 BASIC had an "implies" operator. Every so often I miss that little guy. | 03:44 | ||
|
03:47
snarkyboojum_ joined
|
|||
| dalek | parrot: 483e80e | (Joshua Tolley)++ | plparrot.c: Correct type handling. |
03:50 | |
| cotto | Austin++ | ||
| cotto sighs and goes back to evaluating a possible PHP job. | 03:51 | ||
| Austin | Heh. | ||
| What kind of job? | |||
| (Note that I said reading *the* PHP sources. I did not say "reading PHP source...") | |||
| sorear | Austin: by 'implies', is that the prepositional logic operator? | ||
| bubaflub | cotto: bummer man. my current job is maintaing a legacy app on PHP and learn Ruby / Rails | ||
| Austin | Sorear: No, purely boolean. | 03:52 | |
| cotto | same difference | ||
| Austin | F,? -> T | ||
| T, F -> F | |||
| T, T -> T | |||
| cotto | Austin, www.youtube.com/watch?v=zXLeSuI4BVQ | ||
| chromatic | github.com/miura1729/ytljit | ||
| cotto | tl;dw version: in-salon advertizing platform | 03:54 | |
| Austin | Okay. On the one hand, you're saying "I'm reluctant to pursue PHP development..." | 03:56 | |
| But on the other hand, 90% of your target market is mostly-naked women. | |||
| cotto | I'm not reluctant. I just hate the language. That's not exclusive with making money from it. | ||
| Austin | Get off parrot-dev, and start reading books on subliminal messages.. | ||
| cotto | Interestingly I got a message about it through a guy at my church. | 03:57 | |
| Austin | Heh | ||
| Don't listen to any cd's he gives you | 03:58 | ||
|
04:02
snarkyboojum joined
04:04
s1n1 joined,
s1n1 left
|
|||
| 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:13 | |
| That is, each permutation (a, 1), or (b, 5) will have some allow/disallow/configure attached to it. | 04:14 | ||
| What is that called? | |||
| bubaflub | Austin: a mapping? | ||
| purl | it has been said that a mapping is making Trelane's head hurt | ||
| Austin | Okay. | 04:15 | |
| Who implements it? | |||
| bubaflub scratches head | |||
| Austin too. | |||
| 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. | ||
| Or a variable can have a storage class, scope, and type: (scope, storageclass, type) as parameters. | 04:17 | ||
| Is there a "known best way" to implement that kind of stuff? | |||
| (For example, in Parrot any storage class but "register" is incompatible with type=int) | |||
| cotto | I think your question is too general to answer as-is. Is there a specific problem you're trying to name? | 04:24 | |
| Austin | Yeah. I'm trying to come up with a generalization of the examples I just mentioned. | 04:27 | |
| cotto | oic | ||
| 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?" | ||
| Austin | Fair enough. | 04:29 | |
| cotto | afaict | ||
| Austin | I guess it's a relation at the bottom level. | 04:30 | |
| Given '%' and 'double' and 'boolean', here's what you need to do to make that work | |||
| 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:32 | |
| Austin | Sure. Did that. Now wondering if I shouldn't have. | 04:34 | |
| cotto | darbelo, ping | 04:43 | |
| 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. | ||
| cotto | clock? | ||
| 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
|
|||
| dalek | rrot: r45408 | petdance++ | trunk/config/gen/makefiles/root.in: add ARGFREE to the ctags handler |
05:25 | |
|
05:26
theory joined
06:08
uniejo joined
07:06
quaddle joined
|
|||
| quaddle | wow~ | 07:06 | |
|
07:16
riffraff joined
07:17
walter joined
07:31
joeri joined
07:40
brooksbp joined
07:57
lucian joined
08:10
JimmyZ joined
08:11
AndyA joined
09:11
clinton joined
|
|||
| darbelo | cotto: pong | 09:19 | |
|
10:13
JimmyZ joined
10:24
bacek joined
10:25
cosimo joined
10:36
joeri left
10:40
joeri joined
10:46
dngor joined
11:58
snarkyboojum joined
12:03
ruoso joined
12:05
whiteknight joined
|
|||
| whiteknight | good morning, #parrot | 12:19 | |
| darbelo | mornin' | 12:21 | |
| whiteknight | how are you today, darbelo? | 12:31 | |
|
12:38
Mokurai joined
|
|||
| darbelo | Looking at string guts. | 12:38 | |
| I'm looking at how much it would gain us to 'hide' the _buflen member of buffers inside the buffer proper. | 12:43 | ||
| It'd make Buffers (and hence strings) one size_t smaller | |||
| At the cost of some C macro magic with negative offsets. | 12:44 | ||
|
12:45
tetragon joined
|
|||
| whiteknight | I'm cool with negative offsets, if that saves space | 12:49 | |
| darbelo | Also, we already pull that trick with refcounts. | ||
| The an alternative, but related, trick is to keep the string-only bufused inside the buffer iself, right at _bufstart | 12:52 | ||
| That would make strstart always differ from _bufstart, but given that we can't merge them, I see no barrier to further differentiation. | 12:53 | ||
| Also, it's data on the Buffer, strings that share a buffer are performing duplicated bookkeeping. | 12:54 | ||
| kthakore | whiteknight: *phew* gsoc is exhausting | 12:56 | |
| darbelo | And it's not even started yet! | ||
| kthakore | darbelo: yeah | ||
| darbelo: we have 5 ppl want to student it | 12:57 | ||
| darbelo: I am collaborating, talking and timelining projects | |||
| darbelo is a student. | |||
| kthakore | darbelo: ah :) | ||
| darbelo: I am mentoring | |||
| 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. | ||
| moritz | kthakore: maybe you could help with blizkost as a student (perl5 embedding in parrot) | ||
| kthakore: sorear might mentor you :-) | 12:59 | ||
| kthakore | moritz: you can be student and mentor? | ||
| moritz: I am prolly going to be mentoring 3 ppl ... so I don't think I will have time | |||
| moritz | kthakore: I fear not :-) | ||
| kthakore | moritz: *phew* dodged a bullet there | 13:00 | |
| :P | |||
| moritz finds $dayjob + mentoring one student challenging already | |||
| kthakore | moritz: I know .... | 13:01 | |
| moritz: I am going to have to get the mentors rallied | |||
| moritz: our plan is to be a net? of mentors | |||
| so if some one is busy other guy helps | |||
| moritz | nice | ||
| moritz acted as a mentor once, and as a backup mentor last year | 13:02 | ||
| kthakore | ah | ||
| I am prolly going to be backup mentor for all until june | |||
| 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 | ||
| 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:04 | |
| darbelo | Hm, line 1629 of src/string/api.c is weird. | 13:07 | |
|
13:07
aukjan joined
|
|||
| darbelo | If two strings share the same buffer? How could bufused be different for them? | 13:08 | |
| kthakore | darbelo: what rev ? | 13:09 | |
| darbelo | HEAD. But it's been like that for a while. | 13:10 | |
|
13:10
atrodo joined
|
|||
| kthakore | darbelo: no what is the number? | 13:10 | |
| bacek | darbelo, ignore it. I'm goin' to implement "immutable strings" really soon :) | 13:11 | |
| (We can't wait till Autumn because of R*) | |||
| 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 | ||
| darbelo | That's even better. :) | ||
| 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
|
|||
| whiteknight | bacek: luckily no students have submitted immutable strings applications for GSOC yet | 13:22 | |
| bacek | whiteknight, excellent. Stop them from any attempts to do it :) | 13:23 | |
| darbelo | Really? I thought I had seen one? | ||
| moritz | actually one of them planned, and bacek's thread discouraged him (but chose another topic) | ||
| 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 | ||
| I was hoping Chandon would submit his threads one soon | |||
| bacek | I would love to see Erlang-on-Parrot with similar performance | ||
|
13:51
dalek joined
13:57
Coke_ joined
14:12
aukjan joined
14:19
kurahaupo joined
14:21
Mokurai1 joined
14:32
bubaflub joined
14:42
uniejo joined
14:44
bluescreen joined
|
|||
| dalek | kudo: c06062d | (Solomon Foster)++ | src/core/ (3 files): Add Numeric.log10 which simply calls self.log(10) -- remove resulting unneeded log10s from Complex and Num. |
14:47 | |
|
14:49
theory joined
15:03
he__ joined
15:05
sorear joined
15:09
brooksbp_ joined
15:22
Mokurai1 joined
|
|||
| whiteknight | bacek: you know any Erlang? My working knowledge of it is thin | 15:27 | |
| darbelo | I have some vague notions of it. | 15:30 | |
| It has message-passing concurrence. | 15:31 | ||
| whiteknight | yeah, I've seen some of it, just never used it much | 15:32 | |
| having Erlang on Parrot would be nice to have, but I can't imagine it would get too popular | |||
| 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
15:52
davidfetter joined
|
|||
| whiteknight | moritz: you know, if Perl6 was a much smaller, less-ambitious language, it would be done and usable by now | 15:57 | |
| but noooooo. you guys had to shoot for the stars | |||
| take every feature anybody has ever heard of, and strap it in there :) | 15:58 | ||
| plus a few features I think you guys just made up :) | |||
|
16:00
aukjan joined
|
|||
| kthakore | whiteknight: feeling it eh? | 16:00 | |
| moritz: I love perl6 but really ... just get it done! | 16:01 | ||
| particle | whiteknight: the same can be said about parrot | 16:03 | |
| if we were replacing the perl 5 vm, we'd be done now and then some | |||
| darbelo | We have the features, the lack of perl5 is entirely another matter ;) | 16:05 | |
| whiteknight | we would need to forsake a certain amount of sanity | 16:06 | |
| darbelo | Pfft. Parrot is *the* vm to implement perl5 on top of. | 16:07 | |
| Or it was until you guys reversed the calling conventions. | 16:08 | ||
| Too bad nobody wants another perl5. | 16:09 | ||
|
16:17
bluescreen joined
|
|||
| 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 | |
| and somewhere along the line that idea was dropped like a hot potato | |||
| 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. | ||
| whiteknight | i'm not against it | ||
| 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 | |
| pugs changed that, by creating a p6 that used p5 as the vm | |||
| whiteknight | moritz: in time. Threads won't be broken forever, especially not if we have a GSOC project devoted to them this year | ||
| particle: ah. Maybe that's what I'm thinking of | |||
| particle | p6 kept changing, and growing further away from p5, and now, largely, there's no direct path without pain | ||
| 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 | ||
| whiteknight | moritz: threads are one of those things that are both the most broken and the least looked-at | ||
| 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 | ||
| even if the project is a "failure", it could still highlight some areas for development | |||
| darbelo | Threads are also very tricky to get right in a portable way. | ||
| purl | okay, darbelo. | ||
| darbelo | That hurts development. | 16:34 | |
| whiteknight | darbelo: yes, right. | 16:35 | |
| cotto_work | good morning | ||
| purl | Good Morning Mr Rogers | ||
| 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 | |
| system right now attempts to clone the whole world, which is great until it isn't | |||
| 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 | ||
| mortiz: yes, exactly. Clone is a huge hassle | |||
| 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. | ||
| TimToady | later | ||
| darbelo | cotto_work: you pinged? | 16:40 | |
| cotto_work | darbelo: how much experience do you have dealing with unicode? | ||
| darbelo | I know how painful it can be ;) | 16:41 | |
| cotto_work | I'm curious because of your gsoc proposal. | 16:42 | |
| darbelo | I know the basics and have been reading up on the arcane points. | 16:43 | |
| whiteknight | cotto_work: I doubt too many people have deep experience with it | 16:44 | |
| cotto_work | true | ||
| TimToady thinks graphemes should be stored as Rat values (Int being a degenerate Rat with no extra modifiers) | 16:45 | ||
| 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? | ||
| darbelo | whiteknight: Preserves sorting order. | ||
| whiteknight | ah, okay | 16:47 | |
| darbelo | A link to an irclog explainig it is referenced at the bottom of my proposal. | ||
| 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) | ||
| 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 | ||
| darbelo | whiteknight: Think that each 'char' can be 4-bytes in size. | 16:49 | |
|
16:49
Benabik joined
|
|||
| 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 | ||
| TimToady: in theory. Depends how the implementation does the packing, I assume | |||
| darbelo | whiteknight: double that, for your idea. | 16:50 | |
| whiteknight | darbelo: still an array of integers.Just twice as many integers | ||
| 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 | ||
| darbelo | And then multiply for the numbers of chars in a long-ish nqp program that NQP will gobble up. | ||
| 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
|
|||
| 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
|
|||
| TimToady | one could use a variant of the NFG proposal, for instance | 16:52 | |
| 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 ;) | ||
| particle | that's a best-case-worst-case | ||
| TimToady | where well-behaved codepoints (for some definition) are immediately indexable, and the others have one level of indirection based on the negated integer | ||
| whiteknight | darbelo: a good framework and good cleanup will set the stage for larger projects in the future | ||
| TimToady | that could be indirection to strings, as in the original NFG proposal, or indirection to a Rat | 16:54 | |
| another advantage of making everything notionally a Rat is that most of your character comparisons just turn into math | |||
|
16:55
theory joined
|
|||
| darbelo | whiteknight: Exactly. I'm aiming to do cleanup and framework now. | 16:55 | |
| TimToady | "ignore accents" is just "compare integer parts" | ||
| most of the actual string processing part becomes potentially very simple | |||
| whiteknight | yes, sounds very optimizable | 16:56 | |
| TimToady | and agnostic of the underlying memory representation, which could be pluggable at the numeric level | ||
| and most strings accesses don't have to be linear because they tend to be localized, at least for parsing-ish problems | 16:57 | ||
| 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 | ||
| TimToady | s/want/might want/ | ||
| whiteknight | and can be much cheaper about substring access | ||
| TimToady | yes, because you can slice and dice bits into another structure | ||
| but you have to break out of this low-level view of strings to get there | 16:59 | ||
| and I think I'm getting a lot more comfortable with the abstraction that a string is just a list of nubmers | |||
| numbers, even | |||
| dalek | kudo: 4e1dd48 | moritz++ | t/spectest.data: we pass signature.t |
||
| TimToady | it would be good to be able to optimize lists of numbers too :) | ||
| it's really the same thing from the flip side | 17:00 | ||
| anyway, I've said my piece, for the moment. make of it what you will. :) | |||
| whiteknight | TimToady++ | 17:01 | |
| whiteknight has to leave for a meeting. Later | |||
|
17:04
kjeldahl joined
17:06
whiteknight joined
17:08
Mokurai joined
|
|||
| dukeleto | Benabik: i guess we need a TT for t/profiling/profiling.t on darwin | 17:13 | |
|
17:31
chromatic joined
|
|||
| 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:32 | |
| dukeleto | Benabik: i made trac.parrot.org/parrot/ticket/1544 . Feel free to add your thoughts there | 17:35 | |
| Benabik | dukeleto: Thanks, will do. | 17:36 | |
| Coke | tmpdir on my box is /var/folders/Bh/BhrBssnnHYqX6SDI8N3S1U+++TM/-Tmp- | 17:43 | |
| which I am guessing was meant to be a one shot temp dir and NOT reused. | 17:44 | ||
| (from parrot's config_lib.pasm) | |||
| dalek | TT #1544 created by dukeleto++: t/profiling/profiling.t fails on darwin | 17:45 | |
| TT #1544: trac.parrot.org/parrot/ticket/1544 | |||
| Coke | er, "tempdir". | 17:46 | |
| cotto_work | ok. So what would dtrt mean in that case? | 17:47 | |
| Coke | if we're going to want a tempdir we can reuse, we need to fix config/init/defaults.pm | 17:52 | |
| Probably do to the usual dance of checking the TE?MP(DIR)? variables. | 17:53 | ||
| (since file:spec seems to be for one-shot use only) | |||
| or add something to the File/OS pmcs that gives you a fresh temp dir. | 17:54 | ||
| (though i imagine that would still need a good top level /tmp dir to work from.) | |||
| particle | File::Temp is for one-shot | 17:55 | |
| File::Spec->tmpdir should point to the system tmpdir | |||
| *system or user | |||
| Coke | particle: you'd think so, but not on darwin. | ||
| 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
|
|||
| chromatic | Any reason parrot_string_t has to contain the encoding and charset pointers as well? Aren't those properties of the buffer? | 18:10 | |
| darbelo | Buffers are chunks of memory. Encoding and charset are data on the string. | 18:12 | |
| Or so the current code goes. | |||
| 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. | ||
| chromatic | Ah, that's the case I missed. | ||
| darbelo | There's also the 'binary' charset, that basically downgrades the string back to buffer. | 18:15 | |
| chromatic | Still, getting rid of 8 bytes of a 36 byte struct is a 22% improvement. | 18:16 | |
| darbelo | I was looking at removing bufused today. | 18:19 | |
| Thatone could be easily be put at the begining of the buffer without too much hassle. | 18:20 | ||
| chromatic | bufused and _buflen, I assume. | ||
| darbelo | Yeah. _buflen is even easier as it's already macro-wrapped for our convenience. | 18:22 | |
| But_buflen is also part of the Buffer structure, so we'd have to put it behind _bufstart. | 18:23 | ||
| 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:26 | ||
|
18:27
hercynium joined
18:59
szabgab joined
19:00
whiteknight joined
19:12
Mokurai joined
|
|||
| 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 | ||
| so tmpdir is defined in F:S:Unix | 19:22 | ||
| Coke | it's my $TMPDIR | 19:24 | |
| lists.apple.com/archives/darwin-use...00007.html mentions it's based on GUID. trying to figure out how often it changes, if at all. | |||
|
19:25
NotFound joined
|
|||
| NotFound | hi | 19:25 | |
| purl | hey, NotFound. | ||
| Andy | Coke, I just noticed that you have the configger guessing __attribute__xxx__ too | ||
| which is cool, but I think might not be working. | |||
| I'm trying to add __attribute__hot__ and __attribute__cold__ | 19:26 | ||
| but | |||
| ARGH | |||
| 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. | |||
| 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:28 | |
| Andy | no, the guessing is good | 19:30 | |
| purl | okay, Andy. | ||
| 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 | |
| Which I LIKE! | |||
| Coke | WOO | 19:32 | |
| particle: looks like TEMPDIR might change after reboot on darwin. | |||
| I cannot verify this now. perhaps someone else here can. | |||
| in any case, we should probably not cache tempdir, but should pull it fresh from the env if it's needed in parrot. | 19:33 | ||
| 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. | ||
| particle | take a deep jump, purl | ||
| purl | particle: i'm not following you... | ||
| moritz | no, good idea is <reply>| | ||
| purl | okay, moritz. | ||
| Coke | particle: you know what; I bet that the code handling that tempdir path doesn't like the funky chars. | 19:38 | |
| (I'm not sure that the path is changing ever, I think it's just funky) | |||
| good idea. | 19:39 | ||
| particle | that's a good point | ||
| Coke cries. | |||
| particle: I don't see anything obviously wrong in the references to tempdir in ProfTest/*.nqp, though. | 19:41 | ||
|
19:42
pjcj joined
19:43
bluescreen joined
|
|||
| cotto_work | Yay for not being obviously wrong. | 19:49 | |
|
19:50
cotto_work joined
|
|||
| darbelo | You were unobviously wrong? | 19:50 | |
| dalek | kudo: 5094077 | moritz++ | src/Perl6/Grammar.pm: port most "Unsupported use of $weird variable" from STD.pm. I'm not yet convinced they all work (for example I couldn't trigger the one for $@, although the regex seems pretty obvious), but all in all it looks like a net win. |
||
| Austin | Cotto is obviously wrong, but he can't see it... | ||
| cotto_work | Yeah. I hate that guy. | 19:51 | |
| Austin too. | 19:52 | ||
| Woot. | 19:56 | ||
| Expected specifier( :!const, :name<int> ) | |||
| but was specifier( :const, :name<int> ) | |||
| That took way too long. | |||
|
19:59
bluescreen joined
20:01
Mokurai joined
20:09
TiMBuS joined,
clinton joined
|
|||
| kthakore | Wooo! | 20:09 | |
| WOoot! | |||
| :p | |||
|
20:12
Mokurai2 joined
|
|||
| janus | eplv.xde,fe3 r4 r3kr4t45mk3 | 20:18 | |
| Xx dx | |||
| x f xd | |||
| <-xqd 4 lft | |||
| de | |||
| e' | |||
| #e | |||
| dxwrfcwr3 <ce<<< | |||
| dwc d,, ,frhv | |||
| cotto_work says hi to janus' cat | 20:19 | ||
| janus | duh, sorry... my dyughter keeps trying | ||
| cotto_work | or daughter | ||
| purl | keep her away from billn. | ||
| darbelo | She's a fast typer. I'll give her that. | 20:20 | |
| Needs to work on the spelling a bit. | |||
| cotto_work | #ps in 8 | 20:22 | |
| darbelo | That's today? | 20:23 | |
| darbelo forgot ;) | |||
| cotto_work | It's Tuesday. | ||
|
20:27
hercynium joined,
allison joined,
davidfetter joined
|
|||
| mikehh | #ps time | 20:30 | |
| 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 | ||
| darbelo | bubaflub: I have a RTEMS cross-compiling setup mostly-working. Ping me if you need any help. | 20:34 | |
| bubaflub | hoo boy do i | 20:35 | |
| 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 | ||
| i've got the system loaded, compiled, updated, bootstrapped | 20:37 | ||
| and i can load in precompiled examples into sparc-rtems4.10-gdb and that's all gravy | |||
| b | |||
|
20:37
payload joined
|
|||
| bubaflub | but i'm having trouble compiling some of the examples | 20:37 | |
| 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:38 | |
| bubaflub | yeah, there is a makefile in the example | 20:39 | |
| er with the example | |||
| and the makefile has some includes that aren't being found | |||
| moderator | #parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: fix line number annotations | 20:39 | |
| dalek | kudo: e54dc62 | moritz++ | src/Perl6/Grammar.pm: detect obsolete use of -> as postfix; fixes RT #65212 |
20:42 | |
| kudo: b75b2b3 | moritz++ | src/Perl6/Grammar.pm: catch infix << and >> as obsolete bit shift operators |
|||
|
20:43
jsut_ joined
|
|||
| GeJ | Good morning everyone. | 20:46 | |
|
20:47
brooksbp_ joined
20:48
brooksb__ joined
|
|||
| moderator | #parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: fix line number annotations | Finish GSoC applications | 20:55 | |
| darbelo | chromatic: irclog.perlgeek.de/parrot/2010-04-06#i_2201103 | 21:19 | |
| bacek | morning | 21:20 | |
| GeJ | G'Day bacek | ||
| bacek slept over #ps... | |||
| G'Day GeJ | |||
|
21:29
Whiteknight joined
21:37
Mokurai1 joined
|
|||
| chromatic | Let's steal from COLA for Lorito: lambda-the-ultimate.org/node/2483 | 21:44 | |
| "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:45 | ||
|
21:46
theory joined
|
|||
| allison | chromatic: it'd be an interesting experiment | 21:47 | |
| chromatic: I suspect the complexity would just bubble up elsewhere, but it'd be interesting to see where | |||
| 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:48 | |
| Whiteknight | so get his ass in here and put him to work | 21:49 | |
| :) | |||
| chromatic | www.itkovian.net/base/automated-jus...er-tuning/ | ||
| allison | curiously, there was an early implementation of cola on Parrot | 21:52 | |
| 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
|
|||
| darbelo | 21:54 | ||
| chromatic | We need to build something out of those ops. A pervasive metamodel might be the right thing. | ||
| darbelo | Are this cola and that cola the same cola? | ||
| 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. | ||
| allison | hmmm... they're about the same age | 21:57 | |
| (the "recent" snapshot of the piumarta svn repository is 2007) | |||
| but yes, looks like accidental duplication of language names | 21:59 | ||
| allison boarding | 22:20 | ||
| Whiteknight | allison is always flying, it seems | 22:22 | |
|
22:29
kid51 joined
23:12
tetragon joined
23:39
bacek joined
|
|||
| Whiteknight | ash_++ on the proposal | 23:41 | |
|
23:41
tcurtis joined
|
|||
| Whiteknight | ash_:ping | 23:41 | |
| Well, we have three proposals so far, so that's a good thing | 23:44 | ||
| cotto_work | yup | 23:45 | |
|
23:48
ruoso joined
|
|||
| tcurtis | Whiteknight: on which note, I plan to submit a proposal concerning rewriting the runtime library in NQP. | 23:49 | |
| Whiteknight | runtime library? | ||
| tcurtis: what project were you planning originally? | 23:50 | ||
| cotto_work | What'd be the benefit other than maintainability and exercising nqp? | ||
| and +1 to Whiteknight's question | 23:51 | ||
| (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. | ||