#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.