Parrot 2.1.0 "As Scheduled" Released! | parrot.org/ | Tasks: PCC deprecations branch, HLL subclassing and MMD branch
Set by moderator on 17 February 2010.
dalek gest-dynpmcs: 003830a | darbelo++ | LICENSE:
Add a LICENSE file.
00:01
darbelo Looks like it works. Infinoid++
Infinoid All I did was tail a logfile. :) dalek++ 00:02
dalek kudo/master: e7a395b | jonathan++ | t/spectest.data:
Add S06-signature/tree-node-parameters.t to spectest.data.
kudo/master: 5d43a30 | jonathan++ | docs/ROADMAP:
Move unpacking arguments to completed section of ROADMAP.
Andy Anyone able to point me at "Here's how to make a source tarball for a C lib?" (entirley unlreated to Parrot) 00:04
darbelo man tar?
purl it has been said that man tar is www.bsdi.com/bsdi-man/?tar(1) or www.mail-archive.com/forum@mikrodat...09347.html or www.mail-archive.com/forum@mikrodat...09464.html
dalek rrot-plumage: db5dfd6 | darbelo++ | metadata/digest-dynpmcs.json:
Add plumage metadata for the digest-dynpmcs module.
Andy No, no, I mean what I need to have as far as autoconf and whatnot.
tar I know. 00:05
00:05 Andy left, Andy joined, Andy left 00:06 Andy joined
Andy ooops 00:06
darbelo Usualy you should tar up you project dir, maybe includeing some generated files.
Andy Yes, and those generated files are the issue.
Infinoid I think it's up to you to decide whether to use autoconf, or cmake, or whatever 00:08
If you're looking for an autoconf library howto, there's www.openismus.com/documents/linux/b...ries.shtml I suppose
though it may be acceptable to just ship it with a plain old Makefile, depending on your target audience :) 00:09
Andy I don't want the plain old Makefile. 00:10
chromatic If you're looking for an autoconf library howto, may I save us all the screaming and suggest you mix all of your household cleaning products in your bathtub and then go for a swim. It's quicker and less painful.
Infinoid chromatic++
Andy chromatic: I'm aware of that, but I feel it's necessary.
chromatic I said the same thing about setting up health insurance for my business and I'd still rather do that than autoconf. 00:11
If you can get away with cmake, you're probably better off.
Andy cmake?
purl cmake is a nice alternative to autoconf
chromatic www.lazycodemonkey.com/?p=46=1 00:12
darbelo It's way less painful that autofools.
Andy I want people to be able to unzip the tarball, run ./configure, and then run make
That's all i want.
00:17 fperrad_ joined
Andy Am I right in my understanding that autoconf is what I run to create ./configure before tarballing it all up? 00:17
darbelo Yes. 00:18
00:18 tetragon joined
Coke Whiteknight: the ticket you closed is in deprecated.pod 00:19
opbots:names 00:21
00:24 ZeroForce joined
mj41 Good night from Czech republic. 00:26
Coke dober den. 00:27
(me wonders if that's even close in czech. prolly not. =-)
mj41 btw there is #taptinder \t irc://irc.freenode.org/taptinder and some new docs dev.taptinder.org/wiki/Special:RecentChanges
Coke dobrou noc.
mj41 Coke: yes ... dobry den a dobrou noc 00:28
Coke oh, crap, it's leka nosht in bulgarian. is dobry den "good day" ?
"beunos suenos." =-)
mj41 dobry den = good day in raw translation, we have also dobre rano ... good morning 00:29
chromatic What does "ruh roh" mean? 00:30
Coke translate "uh oh" into scooby.
purl babelfish cannot translate from en to en. Try translating through English.
Coke huh. that is suprisingly close to the bulgarian.
chromatic Now you're spending the next ten minutes humming THAT theme song.
Coke nifty.
no, I'm picturing SMG in the LA version.
mj41 Ale ted uz opravdu dobrou noc. Uvidime se zase zitra. 00:31
Coke ~
00:42 kthakore joined
kthakore chromatic: thanks :) 00:42
chromatic You're welcome.
kthakore chromatic: I recently put together a nice (hopefully easy to read) 400 line game. gist.github.com/301949 I think it will achieve what you are describing in your blog. Please feel free to post it there 00:44
chromatic: thank you again
it was very nice
01:01 abqar joined 01:02 szabgab joined
bacek_at_work chromatic, look search.cpan.org/perldoc?everywhere 01:04
nice addition to set of modern perl recommended modules :) 01:05
chromatic It's a bit fragile though; I've run into similar problems with Devel::TraceUse.
01:08 fperrad_ joined
Whiteknight there should be a way to turn on warnings and error checking from the commandline 01:10
and a PARROTWARNINGS global var would be nice too 01:11
01:13 hudnix joined
Coke Whiteknight: ... like -w ? 01:15
Whiteknight -w doesnt turn on error checking 01:16
a -e would be a nice compliment 01:18
dalek nie: r103 | allisonrandal++ | trunk/ (2 files):
Fix the dictionary builder. Simple named parameters only work with

up the dictionary key/value pairs.
01:54
Whiteknight how do constants work in PIR again? using the :immediate or :compreg flags? 02:04
chromatic :immediate 02:07
purl hmmm... :immediate is a very tricky beast
Whiteknight chromatic: right, but how does that make a constant value?
I can't seem to find any examples of it's use
chromatic Whatever it returns gets stored in the PBC. 02:08
Whiteknight ah, nevermind. I found an example in t/pmc/sub.t
I'm thinking this kind of mechanism might help with some of our exception handler issues 02:09
we can set them up as compile-time constants 02:10
chromatic ... unless the return pc is part of the EH, in which case a static EH isn't great. 02:11
Whiteknight ...actually, constants built in that way aren't stored in the constants table like I was hoping 02:14
looking at the pbc dump, I'm not sure it does anything worthwhile at all 02:16
My conviction that we need a good way to include PMC aggregate constants in PIR code is growing 02:18
because we can include arbitrary constant types in the PBC, so it seems reasonable we should have a good way to specify them from PIR (and therefore, from all compilers that target PIR) 02:19
chromatic Yeah, the syntax is a tough part. 02:21
I suppose we could mandate :immediate to do it. 02:22
That's not hugely awful.
It's not NOT awful though.
Whiteknight I've been thinking a syntax like ResizablePMCArray:{1=>"foo", 2=>3.14, 3=>7} 02:30
the => would provide keyed access 02:31
or Integer:{7}
or Hash:{"foo"=>3, "bar"=>"f"}
but then I think about things like classes, where I would love to be able to specify Class PMCs at compile time. But that would require a syntax for addattribute calls 02:33
so maybe to be completely flexible we need a special :pmcconstant flag for Subs. That would tell the compiler to run the sub at compile time and store the output into the constants table 02:34
accessing that value at runtime, however, raises another problem 02:35
02:36 fperrad_ joined
dalek kudo/master: 351d3d8 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 172 files, 4816 (29.1% of 16525) pass, 1 fail

S29-conversions/ord_and_chr.rakudo aborted 1 test(s)
02:55
03:04 kid51 joined
dalek rrot: r44128 | NotFound++ | trunk (4 files):
some fixes to SDL lib and examples
03:13
kthakore YAY!!! 03:14
SDL fixes 03:15
oh
kid51 The branches listed in the system message don't match those in the repository (at least not exactly)
Is pcc_reorder_results/ same thing as PCC deprecations?
Don't see any branch named MMD or HLL 03:16
nopaste "kid51" at 71.246.117.216 pasted "Current branches in svn.parrot.org/parrot/branches/" (19 lines) at nopaste.snit.ch/19672 03:17
chromatic yes 03:19
kid51 That's 'yes' re pcc_reorder, correct? 03:22
dalek kudo/master: 1a05eae | pmichaud++ | docs/announce/2010.02:
Add draft 2010.02 release announcement.
03:35
kudo/master: 9be7890 | pmichaud++ | docs/release_guide.pod:
Update release guide to note that we now use dots instead of hyphens
kid51 wonders if there is a particular TT associated with svn.parrot.org/parrot/branches/pcc...r_results/ 03:36
rm_cflags branch: successful smolder on linux/i386 at r44128: smolder.plusthree.com/app/public_pr...ails/32251 03:42
03:43 bubaflub joined
dalek rrot: r44129 | jkeenan++ | branches/rm_cflags/t/steps/auto/warnings-01.t:
Coke has pruned auto::warnings internal subroutines, so we no longer have to test for them. Eliminate superseded tests.
03:46
03:51 woosley joined 03:57 danlarkin joined
Austin_away dukeleto: ping 04:04
Austin Well, that's an inauspicious start for plumage: Could not find non-existent sub load_bytecode 04:05
Austin thinks he'll stay with 'perl ./Configure.pl' for a while...
purl, msg Coke If you're still looking at plugins for track, I'd like to see the mscgen plugin get added. (trac-hacks.org/wiki/MscgenPlugin) 04:10
purl Message for coke stored.
myhrlin /quit 04:22
04:25 myhrlin joined
dalek kudo/master: b4824f3 | (Solomon Foster)++ | t/spectest.data:
Turn on trig tests.
04:33
04:35 eyeisel joined 04:38 janus joined
Austin Isn't the $_PARROT/VERSION file supposed to say 2.1.0? 04:47
It does. So why is mine stuck at .0 04:48
Ahh, because I'm already pointing at branches/2.0 04:49
davidfetter that might account for it 04:52
davidfetter pulled a similar move yesterday with postgresql :P
Austin :-P
Now I'm pointing at branches/2.1, and things are better. :->
05:53 ZeroForce joined
dukeleto 'ello 06:01
dukeleto just got back from a talk about OpenEmbedded and learned lots of useful stuff 06:02
06:09 Austin joined
Austin Coke: Did any of your config changes make it into trunk yet? 06:10
(Or is my build breaking for a different reason...)
dukeleto Austin: pong 06:12
Austin: full output of what the error is would be helpful
Austin Hey, duke. I was going to ask you about setup.pir, but I wound up finding distutils, etc. 06:13
The error is "Out of memory!"
on just about anything to do with pmc2c.pl
dukeleto Austin: Don't Ire The OOM Killer 06:18
Austin: do you have setup.pir working for you?
Austin Duke: No. I got sidetracked writing testcases for whiteknight, and now trying to get trunk to build. :( 06:19
dukeleto is reading the source of parrot_debugger again. IMCC makes it dirty.
is trunk broke?
Austin See above.
dukeleto i am testing on my machine now 06:20
Austin It built for me a couple of hours ago.
But that was then, as they say...
dukeleto Austin: no out of memory errors here, pmcs were created normally 06:22
Austin: what OS+platform? svn or git? which rev? 06:23
Austin andLinux, svn, trunk:HEAD 06:24
dukeleto Austin: HEAD ain't a rev ;)
Austin: r44129 ?
Austin Yep. Trying again. 06:25
Anyway, what were you saying about plumage? 06:27
Is there a "metadata rev"?
dukeleto Austin: what do you mean? 06:30
Austin: i can help you make a metadata file, if you need. it is quite easy, once you know how it works 06:31
Austin Trying to understand how out-of-data my metadata file may be.
Is the tapir file up-to-date?
dukeleto Austin: the tapir file of what? distutils?
Austin The tapir metadata file for plumage
dukeleto Austin: the latest distutils lives in parrot core 06:32
Austin gitorious.org/parrot-plumage/parrot...tapir.json
dukeleto Austin: yes
Austin Okay. Aside from not using distutils, my metadata seems to be in good shape. 06:33
dukeleto Austin: you can generate a skeleton of that file with "parrot setup.pir plumage"
plumage metadata and setup.pir are independent, so that is fine
but it is nice that you define things in setup.pir and then the previous command with generate a metadata file 06:34
Austin Stupid svn!
I hate automatic merges. 06:35
dukeleto Austin: you can go ahead and say that 50 more times
Austin I hate automatic merges.
INIT { pir::load_bytecode('library/kakapo_base.pir'); } my $message := "I hate automatic merges.\\n"; say($message.repeat(50)); 06:36
Okay, my out of memory problem is gone.
(I wonder what that was about...)
06:37 fperrad_ joined
Austin What's the difference between the metadata fields "browser_uri" and "project_uri" ? 06:37
dukeleto Austin: don't know. japhb is the person to ask 06:42
jhelwig dukeleto: parrot_debugger can't be any worse than the P5 debugger... 06:57
dukeleto jhelwig: you are right :) 06:58
davidfetter is more on the printf side of debugging 07:01
dukeleto davidfetter: good place to be :) 07:12
07:13 uniejo joined
Austin okay, whiteknight goes on the back burner for tomorrow. 07:30
fperrad: ping 07:32
dukeleto loves 8 core boxen 07:44
Austin purl, msg fperrad Would you consider changing/extending the 'pir_nqp-rx' key in distutils.pir to use either nqprx or nqp_rx? This would enable :key(value) syntax in nqp. 07:49
purl Message for fperrad stored.
07:51 iblechbot joined 07:52 darbelo joined
Austin Stupid git! 07:59
git--
Thanks for renaming my files for me. I love it when my vc tool breaks my build. 08:00
08:12 fperrad_ joined 08:14 particle joined
dalek kapo: cf4cc52 | austin++ | (5 files):
Moved src/Pmc/COMMON.nqp to common_methods.nqp so that git would quit breaking my build.

Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
08:16
Austin sings, "...she pulled me on the dance floor. We danced a song or two. It was then I realized that I .. bit off more than I could chew!" 08:42
dalek TT #1463 created by dukeleto++: PERLDOC environment variable is abused 08:46
rrot: r44130 | dukeleto++ | trunk/config (2 files):
[build][TT#1463] Don't use the environment variable PERLDOC, since it is used by perldoc
08:58
TT #1463 closed by dukeleto++: PERLDOC environment variable is abused 09:02
09:07 bacek joined, lucian joined 09:10 ruoso joined
Austin msg pmichaud In the parrot-2.1 version of parrot-nqp, the construct < word word > is very different from < word >. (The latter appears to strip the array.) Is this on purpose? 09:12
purl Message for pmichaud stored.
moritz that's Perl 6 spec 09:14
Austin Moritz: Really? 09:15
moritz Austin: really.
Austin At first blush, that seems very unexpected.
moritz it was unexpected for me too 09:16
Austin I was managing a list of files: blahblahblah := < \\n file \\n file2 \\n >
Suddenly, when there was only one file, everything changed.
moritz and it's one of those points where I'm still not sure if it's a good idea
Austin What's the point of it?
purl it has been said that the point of it is you get the news tailored to you. i like this idea. it's what i've been waiting for.
moritz well, in real Perl 6 you'd assign to an array, which would make things more managable 09:17
Austin ?
moritz (and not bind)
my @a = <foo>; # works
TimToady point is that <a> and <a b> are equivalent to ('a') and ('a','b')
moritz my @a := <foo>; # boom
Austin Yeah, but < \\n a \\n >; isn't.
TimToady that should be ('\\n', 'a', '\\n') 09:18
moritz depends on whether Austin means literal \\n or a newline
Austin I mean newline
TimToady that's just whitespace then
Austin Yeah, and the whitespace is getting bundled along with the filename. 09:19
*AND* the array is getting stripped off.
It's twice as irksome!
yay
TimToady you expect the whitespace as part of the filename?
moritz wait, the string ends up containing a newline?
Austin Hell, no. 09:20
I expected it to gobble up the whitespace, split the non-ws bits into an array, and give me the array.
Instead, I wound up with "\\n\\t\\tsrc/Internals/kakapo_top.pir\\n\\t"
moritz the \\n\\t should not be part of the string 09:21
that's a bug in nqp
IMHO
09:21 AndyA_ joined
TimToady well, then don't use := where you should use = 09:22
Austin purl, msg pmichaud Per moritz & timtoady, removing the array is perl6, so nevermind. But < foo > doesn't seem to strip whitespace, which moritz opines is wrong.
purl Message for pmichaud stored.
Austin TimToady++
Thanks for the tip.
moritz just nqp doesn't implement =
09:22 AndyA_ joined
moritz iirc 09:23
TimToady zzz &
Austin Sadly, trying that: Assignment ("=") not supported in NQP, use ":=" instead at line 7, near " < alfalfa"
just doesn't work
TimToady <foo> is tuned for a language in which a single item can usually be used as a degenerate list, but := isn't one of those places 09:24
but it also gives us literal subscripts like %foo<bar>
but I'm up way too late 09:25
zzz & # really
09:28 bacek joined
Austin purl, msg fperrad I'm trying to use distutils.pir, and I need to inject a sub-step between pir_nqp-rx and pbc_pir. There doesn't seem to be a public interface for injecting other than before/after the entire step. Do you plan to support this? 09:31
purl Message for fperrad stored.
fperrad ping Austin 09:36
Austin Hello, francois!
bacek It's "Ƨ" afair :) 09:39
Austin Oh, sure.
And me on a US keyboard.
With no opposable thumbs...
fperrad: I'm trying to use distutils.pir from NQP, and so far it's very nice. I've got a few rough spots, two of which are in your message inbox. 09:41
And another nqp bug 09:45
fperrad Austin, (msg2) what is the goal of your sub-step ? 09:46
Austin I'm merging pir files that were generated in the nqp_pir before compiling them in pbc_pir 09:47
*nqp_pir = pir_nqp 09:48
fperrad Austin, you could write (or generate) a small PIR file which includes all generated PIR files 09:54
Austin fperrad: Also, I could (and have) written a little insert-after-sub routine. 09:55
I was thinking something like that would be useful in the API 09:56
09:57 fperrad_ joined
dalek TT #1464 created by Austin_Hastings++: NQP-rx doesn't handle bare "return" from nested block correctly. 10:08
fperrad Austin, I prefer to add a sub-step pir_pir (which concatenes PIR files) before pbc_pir in distutils.pir. 10:12
I think this sub-step will be useful to other people.
Austin Okay.
fperrad Austin, I don't understand your msg1 10:21
I know :
nqp (in compilers/nqp)
nqp-rx (in ext/nqp-rx)
now, nqp-rx has 2 flavors ?
Austin No. But nqp-rx offers :key(value) syntax for hash elements. Nopaste coming 10:22
nopaste "Austin" at 68.37.46.53 pasted ":key(value) with distutils.pir" (15 lines) at nopaste.snit.ch/19679
Austin Sadly, :nqp-rx() is not a valid pair. 10:23
So i was asking if you could add or change a hash key
fperrad Austin, you want write a setup.nqp instead of a setup.pir 10:29
Austin I'm about halfway done right now. 10:30
:)
10:32 fperrad_ joined
fperrad Austin, could you nopaste your full setup.nqp file 10:40
Austin Sure. Give me a second to stabilize it. 10:41
10:42 fperrad_ joined
nopaste "Austin" at 68.37.46.53 pasted "Snapshot of Kakapo setup.nqp" (178 lines) at nopaste.snit.ch/19680 10:45
10:46 fperrad__ joined
nopaste "fperrad" at 79.81.91.104 pasted "[distutils (Austin)] Create an alias of pir_nqp-rx key (nqp doesn't like hyphen)" (64 lines) at nopaste.snit.ch/19681 11:20
"Austin" at 68.37.46.53 pasted "Current setup.nqp for Kakapo" (187 lines) at nopaste.snit.ch/19682 11:22
Austin fperrad++
Got build, clean to work.
Now for testing.
11:25 pmichaud joined
dalek kudo/master: 303323e | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 194 files, 24167 (67.6% of 35727) pass, 0 fail
11:28
Austin Ahh, the wiley and elusive 'harness_files' setting. Tests okay! 11:36
11:52 payload joined
dalek kudo/master: fa44b5a | pmichaud++ | src/builtins/Mu.pir:
Update .REJECTS to avoid logical_not vtable.
12:19
mj41 is there anybody with rights to update www.parrot.org/content/parrot-testi...atus-tools ? See www.parrot.org/tags/parrot-test-tes...tool-tools 12:31
nopaste "kthakore" at 99.234.159.149 pasted "I can't seem to build parrot svn trunk" (36 lines) at nopaste.snit.ch/19683 12:35
kthakore Austin: any clues ^^
12:36 barney joined 12:37 ruoso joined
Austin kthakore: it's a surprise to me. 12:37
kthakore crap
hi ruoso
Austin There were some stability issues in 2.0, but I thought whiteknight got those hammered out in the last week or so.
kthakore let me try again 12:38
Austin Have you built the 2.1 tag?
kthakore no
trucnk
trunk
Austin Well, try again, but if trunk fails again, try building $PARROT/tags/RELEASE_2_1_0
kthakore ok 12:39
will do
thanks
Austin np
12:45 alin joined 13:03 bluescreen joined 13:07 bluescreen joined 13:15 iblechbot joined 13:33 lucian joined 13:42 whiteknight joined
whiteknight good morning #parrot 13:44
Austin Good morning, WhiteKnight.
dalek kapo: b603e4c | austin++ | (16 files):
Removed Makefile, etc., replaced with setup.nqp.
whiteknight hello Austin, how are you today? 13:45
Austin ++
whiteknight that good, huh?
Austin Now at release 4.
kapo: 9d13d00 | austin++ | :
review: gitorious.org/kakapo/kakapo/commit/...b51585ffa0
kapo: 6e824d6 | austin++ | :
review: gitorious.org/kakapo/kakapo/commit/...9f93df29b2
Austin With setup.nqp / distutils based configuration.
whiteknight nice
shockwave I'm just loggin on too. Good morning #parrot
Austin I tried to write some test code for you, Whiteknight, but something got in the way.
I've got some code, but it doesn't run. But the failure didn't seem related to you. 13:46
This is for the namespace keyed stuff
whiteknight don't worry about it. I added a few stubby tests of my own and merged the branch to trunk
we can add more tests at any time
Austin We could if they would run :-$
whiteknight nopaste me the tests? maybe I can take a look at them 13:47
Austin Aha! My problem was running the installed parrot, instead of ./parrot 13:50
Coke msg austin - many changes to config are in, but there's a whole rm_cflags.in branch that isn't in yet. 13:51
purl Message for austin stored.
Coke kthakore: sounds like you might need a realclean. 13:54
msg Austin I pinged the OSU admins for that trac module for you.
purl Message for austin stored.
kthakore Coke: thanks 13:58
14:01 japhmalik joined, plobsing joined
nopaste "Austin" at 68.37.46.53 pasted "Test cases for TT#1449" (975 lines) at nopaste.snit.ch/19684 14:08
Austin Whiteknight: Some of these are surprising, some of them may be edge cases.
dalek nie: r104 | allisonrandal++ | trunk/s (3 files):
Fix dictionaries so they appear as the 'dict' type, and so they
14:12
whiteknight Austin: I'll look into them today 14:13
nopaste "Austin" at 68.37.46.53 pasted "Less bugs: Test cases for TT#1449" (975 lines) at nopaste.snit.ch/19685 14:14
14:14 particle joined
Austin Whiteknight: okay. 14:14
dalek nie: r105 | allisonrandal++ | trunk/Grammar/Grammar.pg:
Allow parsing of lvalue dictionary keys.
14:27
14:28 cosimo joined
dalek kudo/master: bf29be0 | (Solomon Foster)++ | src/core/ (5 files):
Optimize Any!to-radians and Any!from-radians, switch default base to Radians (instead of 'radians').
14:40
kudo/master: 60c14fe | (Solomon Foster)++ | src/cheats/constants.pir:
Add Radians, Degrees, Gradians, and Circles to emulate what TrigBase will look like when enums are available.
rrot: r44131 | whiteknight++ | trunk (4 files):
remove the PASM1 compreg
14:41
TT #872 closed by whiteknight++: Deprecate PASM1 compiler and PDB_compile function 14:48
Coke that ticket is explicitly mentioned elsewhere in DEPRECATED.pod. 14:52
er, whiteknight: 14:53
(also, I /just/ stole that ticket to work on. =-)
14:55 particle joined
dalek nie: r106 | allisonrandal++ | trunk/ (2 files):
Add tests for dictionaries.
15:01
15:02 lucian joined
nopaste "shockwave" at 76.119.137.239 pasted ".sub 'foo' :method $P0 = getat" (4 lines) at nopaste.snit.ch/19687 15:04
shockwave I pasted a small sub here: nopaste.snit.ch/19687 15:05
15:05 whiteknight joined
dalek nie: r107 | allisonrandal++ | trunk/runtests.py:
Disable test that doesn't actually run in Python3.
15:06
shockwave Assuming '%CreateInstance'() returns a new instance of an 'Array' object, the object that owns the attribute 'member' will be able to make use of that array without doing any other special thing, correct?
The code I posted compiles fine.
Austin_away ERm, no. 15:09
shockwave: The getattribute returned a pmc. You replaced that pmc in $P0 with a different PMC, I think, so the original object's original attribute is still there. 15:10
shockwave oh, you're right. I have to use setattribute, right? 15:11
It felt like something was missing. 15:12
Coke shockwave: if things are working, the nopaste bot alerts us to your nopaste so you don't have to.
you probably don't even need the get if you're just overriding it.
s/probably//
shockwave true 15:13
nopaste "Austin" at 68.37.46.53 pasted "attribute madness" (15 lines) at nopaste.snit.ch/19688
Austin you either have to store the new pmc using setattribute, or you have to use pmc assignment, like $P0 = call(); $P1 = $P0 15:14
Coke Austin: ... what is the problem you're trying to point out in your nopaste? 15:15
(and what are S0 and P2 for?)
Austin Coke: Pointing out to shockwave that what he's trying don't wrok
*work
whiteknight not wroking? That's unpossible! 15:16
shockwave I think I understand what I should be doing. Updating code right now.
Austin Alright. I'm going to get outside some comestibles... 15:20
Coke cheesy? 15:21
purl i heard cheesy was good too. or news.bbc.co.uk/1/hi/england/leicest...761989.stm
shockwave outside? What is that?
I'm surprised setattribute doesn't autobox it's third param, if it's not a PMC. It fails instead. 15:25
dalek kudo/master: 43909a0 | jonathan++ | src/ (2 files):
Fixes that get .^parent working. Also .WHAT always now gives back things wrapped in a scalar container. Why? So Iterable proto-objects don't go trying to flatten, and subsequently go KABOOM.
15:27
kudo/master: fec6ec9 | jonathan++ | t/spectest.data:
Turn S12-introspection/parents.t back on.
rrot: r44132 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] create an alias of pir_nqp-rx key (nqp doesn't like hyphen)
15:31
whiteknight shockwave: opcodes are never very smart. They are designed to be simple and limited 15:35
shockwave whiteknight, good enough explanation to me.
whiteknight each opcode is very specific in it's arguments. So setattribute is actually "setattribute_p_s_p" 15:37
we would need to write three new opcodes to pretend to do autoboxing 15:38
dalek kudo/master: 181d5f9 | pmichaud++ | src/core/Any-num.pm:
Refactor to-radians and from-radians to use a pre-initialized array.
kudo/master: dbaa79b | pmichaud++ | (3 files):
Merge branch 'master' of git@github.com:rakudo/rakudo
whiteknight setattribute_p_s_i, setattribute_p_s_s, setattribute_p_s_n
whiteknight to really get an understanding of how ops work, take a look at src/ops/set.ops sometime 15:39
15:39 theory joined
shockwave cool 15:39
nopaste "pmichaud" at 66.25.4.52 pasted "This program (and many others) leaks memory without bound" (5 lines) at nopaste.snit.ch/19689 15:42
shockwave whiteknight, what is that src/ops directory?
I'm looking at set.ops
whiteknight those are the opcode bodies 15:43
shockwave It's a language that looks like C and PIR combined.
whiteknight it's C, but it's preprocessed by a perl script ops2c.pl
that turns it into "real" C, which is compiled
shockwave oh, I see.
15:46 jsut_ joined
dalek rrot: r44133 | whiteknight++ | trunk/DEPRECATED.pod:
remove note about TT #159 from DEPRECATED.pod
15:47
rrot: r44134 | whiteknight++ | branches/parrot_call_dep:
creating a branch to remove Parrot_call_* functions as per TT #1145
Coke whiteknight: if you're going to work on a ticket, taking ownership might be helpful. (not so much on an unowned ticket, but still) 15:49
whiteknight Coke: one step at a time 15:50
15:51 bubaflub joined
NotFound shockwave: opcodes doesn't do autoboxing. Some have variants that deal with different types. 15:52
Coke whiteknight: re-opening 872, and assigning it to you. 15:54
dalek TT #872 reopened by coke++: PASM1 compiler and PDB_compile function
15:54 Psyche^ joined
Coke (there are 2 functions that also need to be ripped out as part of that ticket.) 15:54
whiteknight which two functions?
NotFound In the setattribute case, adding variants that does autoboxing will be difficult to handle. What HLL maping use, the one for the chunk of code that uses setattribute, or the one where the class has been created? 15:55
Coke whiteknight: I added the note that was in DEP.pod to the ticket.
whiteknight ok
NotFound Or even harder, what if the attribute is defined in a parent class in a different HLL?
Coke the part you pulled out referenced this snippet, which was the one that had the actual TT ref.
whiteknight ok 15:56
shockwave NotFound, sounds difficult. I was able to handle the generated code.
Coke looks like rip out one function, fix the other.
NotFound: I think the answer to that question in, the HLL mapping of the code /currently being executed/ 15:57
s/\\bin\\b/is/
NotFound Coke: yes, but I'm sure that will lead to lots of confusions. 15:59
Coke NotFound: no doubt. 16:01
but I'm pretty sure that was the answer I got the last time we talked about HLL interop.
NotFound Looks like no one has tried to implement that. There is some ticket? 16:02
Coke tene is/was the hll interop guy. I'd bug him. =) 16:04
16:05 kurahaupo joined
cotto_work good morning 16:06
purl What's so good about it?
kurahaupo_mobi Good morning 16:07
purl What's so good about it?
kthakore Coke: that worked thanks
purl: your mom
purl pemungkah's mother is a saint! or capable of multiplexed I/O.
kurahaupo_mobi Purl: it's dark
purl kurahaupo_mobi: i'm not following you...
cotto_work it is very dark 16:08
Strange. I'd expect the proper response for something like that. 16:09
Coke grue?
purl i guess grue is a nasty little creature in the old text adventures or "It is dark. i am likely to be eaten by a grue." or a word for both green and blue
cotto_work yea 16:10
yeah
Coke I preferred HHGTTG and LGOP.
dalek TT #1465 created by pmichaud++: Parrot GC leaks memory for basic programs 16:11
cotto_work lgop?
Memory leaks? That's unpossible.
pmichaud cotto_work: several of us have been able to independently observe and confirm the existence of a leak :) 16:12
nopaste "NotFound" at 213.96.228.50 pasted "Quick winxed test for oplib and opcode PMCs" (9 lines) at nopaste.snit.ch/19690
NotFound Looks like we have 1302 opcodes in core. 16:15
whiteknight yeah, it's a ton 16:16
Awesome test program. I';m glad it works 16:17
16:18 iblechbot joined
NotFound I hope to be able to write a disassembler soon. 16:19
16:23 nbrown_ joined
mj41 I have old one trac.parrot.org/parrot/ticket/706 but not sure if it is "real" leak. 16:31
16:31 whiteknight joined
NotFound mj41: I think these aren't fixable until we reach the point where we can do all packfile usages via the packfile PMCs. 16:35
dalek kudo/master: cb56224 | jonathan++ | docs/announce/2010.02:
Tweaks to release announcement.
16:36
rrot: r44135 | fperrad++ | trunk/runtime/parrot/library/distutils.pir:
[distutils] add option pir_pir which allows to concat files
16:37
cotto_work I found what looks like the source of the leak, but I'm not sure how to interpret it. 16:40
nopaste "cotto_work" at 131.107.0.105 pasted "the apparent source of the leak in TT #1465" (7 lines) at nopaste.snit.ch/19692
Coke cotto_work: ... I read that as "the memory leak occurs where we allocate memory." 16:42
pmichaud cla? 16:43
purl cla is Contributor License Agreement or www.perlfoundation.org/contributor_..._agreement or www.parrot.org/foundation/legal or www.parrot.org/files/parrot_cla.pdf
cotto_work Valgrind isn't smart enough to figure out when we need to free it.
NotFound Looks innocent to me. We just don't fully deallocate some interpreter data at exit. 16:44
cotto_work That's the larger of two chunks that grow when the program is allowed to run for a longer time.
fperrad msg Austin pir_pir in distutils (see r44135) 16:46
purl Message for austin stored.
dalek rrot: r44136 | whiteknight++ | branches/parrot_call_dep (8 files):
remove all instances of Parrot_call_* from the repo and replace with Parrot_ext_call where appropriate. Documentation is lacking a replacement
16:53
kudo/master: 84d6b02 | masak++ | src/Perl6/Grammar.pm:
[Grammar.pm] slight wording fix
rrot: r44137 | whiteknight++ | trunk (2 files):
re-remove note about TT #872 from DEPRECATED.pod. The items that need to be removed as part of the deprecation are already removed. The PDB_eval function is not slated for removal. The ticket only mentions that PDB_eval previously relied on the PASM1 compiler and needs to be reimplemented. Will open a separate ticket for that
17:10
17:11 bacek joined
dalek TT #1466 created by whiteknight++: Debugger "eval" instruction needs to be implemented 17:17
TT #872 closed by whiteknight++: PASM1 compiler and PDB_compile function
kthakore ~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~[6~/win c 17:20
17:20 kthakore left 17:21 payload joined
dalek rrot: r44138 | NotFound++ | trunk/src/pmc/opcode.pmc:
method op_count in Opcode PMC
17:26
whiteknight NotFound: what does that value contain? 17:38
NotFound whiteknight: lenght of opcode + args
whiteknight okay, that seems poorly named 17:39
command_length seems more accurate 17:40
NotFound whiteknight: just used the same name as the op info struct
whiteknight yeah, i know. I'm thinking we should pick a better name
NotFound Agree, but better to also rename the struct member to agree.
whiteknight +1
purl 1
whiteknight next up, I think we need a method to get an array of flags 17:41
for the args
and once we have that, we can add a method to "Compile" the op, given a :slurpy list of args
shockwave Is cotto_work working for Microsoft?
whiteknight shockwave: so far as I am aware 17:42
NotFound whiteknight: yes, I added that without much thinking just to be able to write a proof of concept disasm. The PMC is declared experimental, isn'it?
17:42 kurahaupo joined
shockwave whiteknight, interesting. 17:42
whiteknight NotFound: yes, extremely experimental
NotFound: but definitely has potential use
NotFound Good, let's play with it
whiteknight NotFound: be my guest! Doing asm/disasm are definitely things I want to do with this 17:43
NotFound whiteknight: yes, but we need freedom right now.
whiteknight freedom from what?
NotFound To experiment.
From policy.
whiteknight you have freedom. I only suggested a better name for the method 17:44
NotFound Yeah, I just wanted to confirm that is clearly declared experimental :)
17:45 cotto_work joined
whiteknight I think $P0 = opcode.GetFlags() should return an FIA with the arg flags for the op 17:46
from that we can get the count of args (length of the array), and info about each arg 17:47
17:47 cotto_work joined
whiteknight and once we have that info available, there is nothing standing in the way of a full compiler 17:47
NotFound whiteknight: I'm splicing the op name for a now. 17:48
cotto_work shockwave, yup. 17:49
NotFound Uh, some opcodes don't follow the rule.
whiteknight what rule? 17:50
purl rule is no public away messages. or USUALLY: people are stupid
NotFound The args suffixes
whiteknight what do you mean?
NotFound get_params_pc takes two arguments, for example. 17:51
shockwave cotto_work, Just curious, do you work on the CLR or related team?
NotFound And _pc according the rules is just one.
So the quick and dirty way I was using doesn't work. 17:52
We need that GetFlags method. 17:53
cotto_work shockwave, nope. I'm in MS' Open Source Technology Center.
shockwave cotto_work, so MS is basically donating your time?
cotto_work Kinda. Most of my time is spent on MS-related stuff. I get to spend a some time on Parrot as long as I don't submit any code written at work. 17:55
(or other OSS projects)
shockwave cotto_work, that sounds pretty cool. 17:56
NotFound cotto_work: Are you going to install parrot in some windows phone? 17:57
cotto_work: if not, tell MS that we have it working on Maemo :P 17:59
dalek rrot: r44139 | plobsing++ | trunk/src (2 files):
headerier + ASSERT_ARGS() to satisfy codetest
cotto_work Heh. I haven't seen any sekrit phones.
whiteknight NoFound: oh, right. those parameters are a huge pain in the ass 18:12
we should have some kind of flag to mark ops that are variadic
dalek nxed: r413 | julian.notfound++ | trunk/examples/packfile.winxed:
start of a pbc disassembler, works only for simple code, requires parrot r44138
18:15
NotFound whiteknight: this is what I have for a now
18:16 darbelo joined
whiteknight nice 18:17
NotFound++
18:17 kthakore joined
NotFound It shows that the packfile and op PMCs have a lot of potential. 18:17
dalek TT #1467 created by darbelo++: Deprecate the digest dynpmcs. 18:23
kthakore I am having trouble running parrot examples from the site 18:24
cotto_work kthakore, which examples 18:26
dalek kudo/master: 968011b | pmichaud++ | src/cheats/setup-io.pm:
Default $*IN, $*OUT, $*ERR to utf8 encoding.
kthakore cotto_work: the one to load random.pbc 18:27
I can't seem to find the page
cotto_work can you nopaste?
kthakore sure 18:28
what is the link again?
cotto_work nopaste?
purl nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or trac.parrot.org/parrot/browser/tru...nopaste.pl
nopaste "kthakore" at 199.198.223.108 pasted "parrot example" (18 lines) at nopaste.snit.ch/19694 18:30
kthakore cotto_work: that one
purl that one is probably fairly new
18:32 chromatic joined
nopaste "kthakore" at 199.198.223.108 pasted "parrot example SDL" (34 lines) at nopaste.snit.ch/19695 18:32
kthakore cotto_work: and that one
purl i think that one is fairly new
kthakore cotto_work: am I running them worn? 18:33
hi chromatic
NotFound kthakore: most SDL examples are broken, I fixed some of them yesterday
kthakore NotFound: which ones work?
NotFound Let me check...
plobsing kthakore: the second one is broken because bytecode must be wrapped in a '.sub / .end' 18:34
kthakore plobsing: oh ok
the example didn't say that
NotFound move_parrot_logo and bounce_parrot_logo, for example.
kthakore ok
NotFound Also, we'll probably change all that 'SDL::xxx' to ['SDL'; 'xxx'] 18:35
kthakore um ok 18:36
how do I point the SDL of parrot to look for libSDL_image in sdl-config defined location
NotFound So if you write some code that works now, expect to have to change it soon.
kthakore NotFound: when will you be working on SDL parrot? 18:37
hopefully I can help out
NotFound kthakore: I'm hardly previsible ;)
kthakore NotFound: oh ok
so for SDL parrot who do I talk to>
to?
purl well, to is Tonga Islands
kthakore purl: to is Toronto 18:38
purl ...but to is Tonga Islands...
kthakore no
lies
NotFound kthakore: looks like no one is committed to it, some of use make little fixes sometimes.
kthakore NotFound: ok ... well I am commited to it but I am trying to get it to work first 18:39
NotFound: how do I make modules and stuff?
I see SDL.pir which is the NCI I guess 18:40
but is everything hooked into it Image, Mixer so on?
or is it modular
also how do you guys handle callbacks and threaded callbacks?
plobsing kthakore: not very well. see src/glut_callbacks.c 18:41
it's the solution opengl uses ATM
NotFound kthakore: I don't have a full view, just fixed things that where clearly wrong or outdated.
kthakore oh ok
plobsing: oh ... 18:42
NotFound I think the architect of the thing was chromatic, some time ago.
kthakore chromatic: ping?
NotFound: plobsing: ok I am going to have to write a proposal for a saner architecture for SDL 18:43
kthakore goes to read docs
whiteknight what is SDL?
purl somebody said SDL was Simple Directmedia Layer aka DirectX for Unix except with 59% less evil. There's Perl bindings. Frozen Bubble is written using it. or or allows that nifty doom game to run on ayrnieu's *Zaurus*
whiteknight ah, okay 18:44
NotFound kthakore: a good idea may be to start an independent project, make it plumage ready, and then drop the current implementation from core.
kthakore right
how do I do that!
is there a Module maker or something?
and plumage? 18:45
purl plumage is probably the future Parrot module ecosystem. It will include tools to search metadata, handle dependencies, install modules, and so forth. The repository is at gitorious.org/parrot-plumage/parrot-plumage and the design docs are at trac.parrot.org/parrot/wiki/ModuleEcosystem
NotFound kthakore: trac.parrot.org/parrot/wiki/ModuleEcosystem
kthakore NotFound: thank you!
kthakore huggles NotFound
darbelo kthakore: If you use destutils.pir you'll be lumage-ready pretty much for free.
kthakore darbelo: I am sorry not sure what that means? 18:46
make a folder with SDL.pir and destutils.prir? 18:47
darbelo parrot ships a pir library that handles building parrot-based projects.
kthakore darbelo: how do I tell SDL.pir where the dlls are located and stuff like that?
darbelo You'll have to write a setup.pir file to drive the build. 18:48
whiteknight NotFound: do you have a list of opcodes that take variadic arg lists?
kthakore darbelo: are there any quickstarts for makign build able parrot modules? 18:49
NotFound whiteknight: no, I'm looking for a way to obtain that information,
whiteknight set_args, get_params, set_returns get_results?
that seems like a decent list
chromatic Are those variadic? 18:50
darbelo we have a mk_language_shell.pl script in tools/dev
NotFound At least a good start
darbelo It's rather HLL-centric, but provides a good start to get familiar with the tools.
kthakore darbelo: ok 18:51
NotFound chromatic: they eat more opcodes than declared in op_count
darbelo An even simpler example is the setup.pir I wrote at gitorious.org/digest-dynpmcs/digest.../setup.pir
That one *only* builds a dynpmc group.
kthakore so I can't swap SDL in there? 18:52
darbelo I'm guessing not, but I'm not sure what the SDL build would look like. 18:54
shockwave Does Parrot have JIT capabilities?
plobsing arg. svn merge keeps stalling out.
svn--
NotFound darbelo: currently SDL is pure pir using SDL libraries via NCI 18:55
kthakore darbelo: just need to tell NCI where the SDL dll are loacted
so it looks there 18:56
NotFound kthakore: I think I can fix that now. Let me check...
kthakore NotFound: oooh cool 18:57
NotFound I think the easy and portable way will be an environment var... SDLLIBPATH, for example
kthakore sure or you can just check sdl-config
that is the sure fire way 18:58
can parrot eval?
NotFound kthakore: that will be better done with a configure tool during install. I just look for a quick fix now.
kthakore oh ok 18:59
NotFound Anyway sdl-config --libs gives info for a linker, not for dynamic loading. 19:00
dalek kudo/master: 0fabacb | (Martin Berends)++ | docs/ChangeLog:
[docs/ChangeLog] draft of the 2010.02 entry
19:01
kthakore NotFound: what do you mean? oh right ... you don't compile anything
19:01 davidfetter joined
kthakore NotFound: well you can use sdl-config --cflags 19:02
whiteknight purl msg allison can you please take a look at TT #1468? I think my idea there would dovetail nicely with your current PCC refactors and there is huge optimization potential if we can create CallContext PMCs or a similar type (with cheap morphing/copying) at compile time and cache it as a constant.
purl Message for allison stored.
kthakore and regex our -I stuff
NotFound kthakore: yes, but too complicated and error prone for a quick fix. 19:03
shockwave So, does anyone know if Parrot has JIT capabilities?
chromatic Yes. It doesn't. 19:04
kthakore hehe
shockwave chromatic, Do you know if plans are in the works to add it, or that's a no-go?
whiteknight chromatic: I'd like to get your input on TT #1468, if you have a moment
chromatic shockwave, that's the Lorito project. 19:05
whiteknight, I'm all for the CallArguments PMC.
We have to split out what varies between calls (the arguments themselves) with what we know about them, but that's fine. 19:06
whiteknight chromatic: awesome! thanks. There are big savings there if we pre-process argument lists. Also, if we associate a PMC with every call site, we gain the ability to add PIC to that very cheaply
chromatic Exactly.
19:06 cotto_w0rk joined
shockwave cotto_w0rk, How is lorito going? 19:07
whiteknight Parrot_pcc_build_sig_object_from_ops could almost disappear completely. We have all this information about flags and args at compile time, there's no reason to defer all procssing of it till runtime
cotto_w0rk shockwave, it's still primarily in people'
s heads 19:08
shockwave dang
chromatic Exactly.
cotto_w0rk It's a tiny bit frustrating that it's taking so long, but it's worth the effort to get it right. I'm sure it'll pick up after 2.3. 19:09
If you have suggestions, please mention them. 19:10
shockwave cotto_w0rk. I will be using the language that I'm creating to write 3D games. More precisely,
whiteknight it might be worthwhile to have a decidated planning meeting on Lorito, like a mini-PDS like we had a few months ago, but focused on Lorito
cotto_w0rk +1 to that. 19:11
dukeleto 'ello
shockwave The AI for 3D games. The engine is C++. I'm just concerned about speed. But, I'm sure the default implementation of Parrot without JIT will be just fine.
dukeleto +1 to lorito-specific meeting
cotto_w0rk 'hi
shockwave Though, more speed never hurts.
(Unless your falling from a plane)
cotto_w0rk Figuring out an initial op set and a good way to deal with C types would be a good start. 19:13
dalek TT #1468 created by whiteknight++: variadic opcodes make assembly/disassembly difficult 19:14
whiteknight cotto_w0rk: that's a good point
NotFound kthakore: first try committed in r44140, but note that is only for the main SDL library, not for image and ttf libs. 19:16
kthakore NotFound: ok
Coke wishes again that he could be paid to hack on parrot. 19:17
cotto_work That'd be a pretty sweet job. 19:18
kthakore Coke: I will send you a penny
Coke: is that enough?
shockwave If my game company takes off, I'll probably be sending you guys cash as thanks. Notice the 'if' at the beginning of the sentence.
Coke if the games are fun, I'll buy a copy. =-) 19:19
kthakore Coke: that would cost you twice?
shockwave That means it would be free to him.
He sends me the money, and I send it back.
kthakore Coke: he should pay you in games thus cutting out the middle mand
NotFound And he also get your penny. 19:20
kthakore Coke: not a bad deal you have there sir
a shiny penny and fun games!
Coke kthakore: have we met at a yapc?
kthakore nope not yet
Coke k. I was thinking 2 years ago (more?) in houston. 19:21
kthakore I have been using my vacations for exam writing :(
Coke just trying to match faces to nicks.
... I think I'll put together a page with some gravatars on the wiki.
kthakore Coke: no I just started working on perl some 6 months
Coke: my gravtar is not my face 19:22
or it could be
Coke: github.com/kthakore
chromatic Coke, you're thinking of Krishna.
Coke rant: trac doesn't have an easy way to create a new wiki page.
chromatic: with the gloves? 19:23
chromatic yes
Coke ... all these hard-k names sound the same to me, kromatic.
kthakore chromatic: I thought that was mario
dalek rrot: r44140 | NotFound++ | trunk/runtime/parrot/library/SDL.pir:
[lib] provide location of SDL lib by env var SDLLIBPATH
kthakore yay!
NotFound dalek is being slow 19:24
Coke NotFound: did you mean to print something out there? 19:25
NotFound Coke: yes
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32262), fulltest) at r44139 - Ubuntu 9.10 amd64 (gcc with --optimize)
kthakore NotFound: nope doesn't work
:|
cotto_work chromatic, what existing VM do you think would be a good starting point for figuring out Lorito's op set? 19:26
NotFound kthakore: you need to put the full path, not just the directory
kthakore ah ok
NotFound: I am using /usr/local/lib/libSDL.so right? 19:27
whiteknight cotto_work: chromatic has mentioned the smalltalk VM in the past
chromatic cotto_work, either Dis (Plan 9) or Squeak (Smalltalk).
NotFound kthakore: that's the idea, yes. Works in linux.
kthakore crap
whiteknight I'm thinking LLVM might also be good too, though we want significantly less complexity
chromatic LLVM's basic op set or GNU lightning's is a good resource. 19:28
kthakore oh wait I need to run an example with no SDL image deps
whiteknight cotto_work: we need the kinds of operations that any assembly language provides: basic arithmetic, memory access, IO, stack/C-args manipulation, C function calling 19:29
anything more complicated can happen in C functions
Coke Feel free to add your gravatar link to wiki:ParrotFaces
whiteknight if we restrict arithmetic operations to machine word length, we can cut down the opset. Again, if we need to act on chars or shorts, we can do regular arithmetic and bitwise masking 19:30
...and everything more complicated can happen in C functions
kthakore NotFound: which example are you running?
chromatic Yep, processor cycles are cheap enough that bitmasking is cheaper than an expanded op set and all of the commensurate cache concerns. 19:31
cotto_work Dis seems to be nicely documented: www.vitanuova.com/inferno/papers/dis.html
whiteknight chromatic: exactly. And we also don't have to support all the thousands of addressing modes that x86 does
NotFound kthakore: One that doesn't use images? blue_rect.pir, I suppose.
kthakore ok 19:32
NotFound Or raw_pixels.pir
kthakore YAY!!!
whiteknight Lorito, I'm thinking, will mostly need to be a glue that provides control flow between C functions that can do the hard or complicated bits.
kthakore NotFound: thanks
NotFound Glad to help
whiteknight more ops can be added to address specific optimization concerns, but I think we can get away with a very very small opset to start 19:33
Coke is it possible to set alt text on an [[image]] in trac?
chromatic I hope we don't have many C functions. That defeats the purpose.
kthakore NotFound: so you mentioned I should make a module first. Can I just a set of SDL pirs and access tehm for tests and what not? 19:34
tewk chromatic++, Lorito should have no c functions.
chromatic Provided we can JIT those base ops accordingly, yes. 19:35
NotFound kthakore: the module is just that, a bunch of files intended to be used together. 19:36
dalek tracwiki: v156 | coke++ | WikiStart
tracwiki: trac.parrot.org/parrot/wiki/WikiSta...ction=diff
tracwiki: v1 | coke++ | ParrotFaces
tracwiki: trac.parrot.org/parrot/wiki/ParrotF...ction=diff 19:37
kthakore NotFound: ok thanks
I am going to build on the existing SDL.pir
see where it goes
whiteknight chromatic: we need API functions in any case for extending/embedding 19:41
The alternative to having lots of C functions are either (a) lots of Lorito ops, or (b) rewriting huge swaths of code in Lorito 19:42
option (b) will be very painful if we don't gain a dozen new dedicated developers
dalek rrot: r44141 | plobsing++ | failed to fetch changeset:
merge branch opengl_dynamic_nci
cotto_work I'd pictured going with (b) but doing so in such a way that the transition could be done gradually, like the perl to pir test conversions are done now. 19:43
Coke I do notice that the extra merge info is all on commits on files allison touches. =-)
chromatic If we end up with a whole pile of backing C code, we'll stay in the same mess we have today.
Anyone want to put out 2.1.1 with a fix for this GC memory leak? 19:44
cotto_work yuu have a fix?
tewk whiteknight, move c code to close and compile that to lorito ops. Or heck compile C to lorito ops.
Coke Haz you a fix? seems like a reasonable thing to do.
chromatic Yep, running fulltest now. 19:45
Coke I can scrape some time together tonight to cut a release, sure.
I'll need someone to upload the ftp tarball.
particle start a branch, get news et al worked on by the hoardes
chromatic I think the Rakudo folks will appreciate that.
cotto_work volunteers
purl volunteers are FRESH MEAT! MUAHAHAHAHA
Coke purl++
# and I don't often do that.
particle :)
Coke chromatic: feel free to just commit it to trunk, I can branch and release from branch with the patch. 19:47
whiteknight tewk: the first option still involves rewriting most of our codebase by hand. The second option involves writing a whole C parser
Coke pmichaud: note that this means that 2.1.1. will not exist on trunk. =-)
chromatic Will do.
whiteknight either case is resource intensive on our developer hours
chromatic We'll end up migrating our existing C code eventually. 19:48
particle only in one case do you end up halfway towards c-on-parrot
chromatic Coke, r44142. 19:50
Coke chromatic: danke.
chromatic That patch should apply cleanly to the 2.1 branch tip. 19:54
cotto_work Coke, how soon will you want the tarball uploaded?
Coke cotto_work: I can't do the actual release from work, will start in earnest at about 5:30 EST. (just doing a quick setup in svn right now for testing.) 19:55
dalek rrot: r44142 | chromatic++ | trunk/src/gc (2 files):
[GC] Tuned the GC tuning commit of r43939 so that pools which have exceeded

headers. This answers the question "Who tunes the tuners?" Unfortunately, it's me, when #perl6 notices.
19:57
rrot: r44143 | coke++ | branches/release_2_1_1_RC:
Work on a 2.1.1 bugfix release for rakudo, et al.
rrot: r44144 | coke++ | branches/release_2_1_1_RC/src/gc (2 files):
Apply r44142 from trunk to resolve memory leak.
cotto_work ok. I probably will be busy until about 10 hours from now. 19:58
Coke hey, darbelo, you put the wrong date in the release notes. =-)
docs/parrothist.pod says Feb 26, not 16. =-)
darbelo facepalms 19:59
cotto_work So it was released in the future?
chromatic From a flying car.
cotto_work feels tense
chromatic Why? The future is where we shall spend... THE REST OF OUR LIVES. 20:00
darbelo Not if my time machine succeeds!
Coke darbelo - you can fix trunk. I'll fix the 2.1.1 branch. 20:01
NotFound whiteknight: PDB_disassemble works by considering set_args_pc, set_returns_pc, get_results_pc and get_params_pc as "specialop"
darbelo ok.
whiteknight NotFound: are the ops flagged like that, or does it match just those specific values? 20:03
NotFound whiteknight: it just check the codes
Coke svn.parrot.org/parrot/branches/release_2_1_1_RC
NotFound if (*(op) == PARROT_OP_set_args_pc || *(op) == PARROT_OP_set_returns_pc)
darbelo It fits my luck that I name a release 'As scheduled' and the screw up the dates...
whiteknight NotFound: oh noes!
that's horrible
we need a flag
NotFound src/debug.c:2756 20:04
whiteknight Better yet, we need TT #1468 and fix those damn ops once and for all
Coke darbelo: the irony was not lost on me!
chromatic Coke, can you make a dummy tarball and put it up somewhere for the Rakudo people to test against?
Coke 2.1.1 will follow my semi-tradition and be named STRINGNULL
chromatic: if that will help, sure. 20:05
NotFound If I understand that code, the way to know the number of args that follows is to parse the signature? 20:06
MMm... looks like the length of the const PMC will be enough. 20:08
The 'elements', I mean.
Will try that.
cotto_work The list of release managers at the top of docs/parrothist.pod is a bit dated.
chromatic NotFound, that's what the ops do -- they call elements. 20:09
dalek gest-dynpmcs: 2b08b5f | darbelo++ | src/pmc/ (6 files):
Remove svn $Id" fields.
20:10
particle i'm beginning to think parrot releases should all be named after subsystems or cli options, with a blurb about it in the news 20:12
parrot 2.1.1, "--gc-debug" 20:13
cotto_work Does that mean you're volunteering for a release? 20:14
dalek rrot: r44145 | coke++ | branches/release_2_1_1_RC (7 files):
update version information for a potential 2.1.1 release
rrot: r44146 | darbelo++ | trunk/docs/parrothist.pod:
Fix tha date for the 2.1 release.
20:16 AndyA_ joined
dalek TT #1469 created by darbelo++: Deprecate the gdbmhash dynpmc. 20:22
NotFound Nice, now is able to disassemble the winxed compiler :) 20:28
whiteknight shockwave: ping
shockwave whiteknight, pong
whiteknight shockwave: is your compiler project hosted publicly? 20:29
I would like to see it, if it's available
NotFound whiteknight: see winxed r414, if you aren't busy 20:30
dukeleto cotto_work: what do you mean about the release manager list being dated? it has been kept up to date
shockwave Sorry, my girlfriend's mom called.
whiteknight, I can send it to you, if you like.
dukeleto shockwave: just don't let it happen again ;)
whiteknight shockwave: that would be nice. It's not public yet? 20:31
shockwave whiteknight, what specifically are you looking to see?
whiteknight shockwave: I just lke seeing new project
Coke ugh. t/examples/tutorial.t ... ok
sh: line 1: 11559 Segmentation fault (core dumped) ./parrot -o /dev/null /tmp/cZbMud8Ezg.pir 2> /tmp/Zsp5RHbOgo.err
20:31 AndyA_ joined
Coke but, all tests pass. 20:31
purl Time to write more tests!
dukeleto purl++ 20:32
dalek nxed: r414 | julian.notfound++ | trunk/examples/packfile.winxed:
improve disassembler in example packfile, requires parrot r44138 or later
shockwave whiteknight, it's not publicly available. I'm not yet done with outputting intermediate (PIR) code. So it's no use to anyone at the moment. Though, I'm hoping to finish outputting the IR by the end of next week.
dukeleto, haha
whiteknight, where would you like me to send it to? 20:33
cotto_work dukeleto, I mean the list at the top of that file. It lists several people who are no longer involved with Parrot.
dukeleto cotto_work: they were still release managers in the past, no?
Coke feather.perl6.nl/~coke/parrot-2.1.1.tar.gz
whiteknight NotFound: awesome 20:34
cotto_work Coke, should that be uploaded or is it just the temporary one.
?
Coke that's the RC.
whiteknight shockwave: wknight8111 at gmail
dukeleto did i miss a meeting? what is 2.1.1 about?
Coke wait for it.
dukeleto: trac.parrot.org/parrot/ticket/1465
chromatic dukeleto, a GC bug in 2.1.
particle dukey: gc dix
dukeleto particle: dukey, eh? Can I call you wavey? 20:35
particle ~~
darbelo I suck at relesing parrots, so they got Coke to do it right ;)
shockwave whiteknight, err, I'm working on windows, and the project needs Windows Powershell to run the unit-tests. I'm guessing your using Linux? That's not going to work. 20:36
whiteknight shockwave: I'm on win32 now.
cotto_work Coke, how should something like that be tested? The only way to verify it is to look at memory usage since the code runs correctly, though bloatedly.
shockwave oh, ok. I'll package it now, then.
dukeleto darbelo: i doubt that bug is your fault and there was no test to catch it 20:37
Coke cotto_work: set an arbitrary memory limit. run the loop N times. make sure the memory usage at the end doesn't exceed N.
er, M.
dukeleto where is the diff of the actual fix to the GC bug?
chromatic dukeleto, r44142.
Coke trac.parrot.org/parrot/changeset/44142
dukeleto chromatic++ coke++ 20:38
Coke also: trac.parrot.org/parrot/browser/bran...e_2_1_1_RC
trac.parrot.org/parrot/log/branches...e_2_1_1_RC is probably better. 20:39
whiteknight nice 20:40
Coke rakudo folks are (presumably) testing now. we can cut the release this evening.
dalek kudo/master: d41ed4c | jonathan++ | src/ (5 files):
Start to recognize my (...) := foo(); as a special form that needs to promote the signature in the reducecheck for := and operate on that; add in infix:<:=> with an error for the non-Signature case and stub in Signature!BIND.
kudo/master: 10e5b56 | jonathan++ | src/ (3 files):
First cut of binding a signature against the return values of a function. Kinda works. :-)
kudo/master: 83542c0 | jonathan++ | src/ (2 files):
Handle sub-signatures in returns so we can do unpacking, plus other little tweaks.
kudo/master: 3ad4e2c | jonathan++ | src/ (5 files):
Merge branch 'bindrets'
davidfetter speaking of releases, who's all packaging for what platforms? 20:41
Coke no one is packaging for osx. please, volunteer. =-) 20:42
davidfetter as in fink?
davidfetter more curious about fedora et al., that being a platform he already knows how to package for
whiteknight how are we going to test for the presence of a memory leak? 20:43
Coke davidfetter: no, macports.
whiteknight: by probing the interpreter after a long loop. or using some non-parrot, platform-specific thing that will at least catch it on linux. 20:44
cotto_work Do we have something like a mem_size method on ParrotInterpreter?
whiteknight such a test could be used to catch any memory leak
cotto_work That'd do the trick. 20:45
whiteknight there might be something from the interpinfo_i_i opcode
cotto_work .TOTAL_MEM_ALLOC
dalek kudo/master: 6357018 | jonathan++ | docs/ROADMAP:
Move a couple more items on the ROADMAP to completed.
20:46
dukeleto it would be nice to have the test for the memory leak in 2.1.1 20:47
i.e. 2.1.1 should wait for a proper test. just my $0.02
dalek rrot: r44147 | darbelo++ | trunk/DEPRECATED.pod:
Add deprecation notices for gdbmhash and the digest dynpmcs.
Coke Nice to have. not a requirement for an emergency bugfix. 20:48
the original ticket is still open pending the test, fwiw.
chromatic Yep, manual confirmation on several different tests gives me confidence.
dukeleto Coke: it assures us (and everybody else) that the bug has actually been fixed. but I hear ya, if the test is going to take a long time, better to cut a release
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32265), fulltest) at r44146 - Ubuntu 9.10 amd64 (g++ with --optimize) 20:50
cotto_work It's a pretty easy test to write. 20:52
dukeleto i would like to try to write the memory leak test
shockwave whiteknight, I've sent it. I renamed the .exe files to .exex because GMail doesn't like them.
whiteknight an idea for a test: in a loop take the amount of allocated memory, allocate a few hundred short-lived PMCs, and count the amount of allocated memory again
repeat this until the before and after numbers are the same
cotto_work or not. Apparently TOTAL_MEM_ALLOC doesn't do what I was expecting. 20:53
whiteknight if, after X loops, the two numbers are not the same, we call it a failure
Coke dukeleto: go for it. claim the ticket. =-)
dukeleto whiteknight: hmm. how do you choose X? is it platform-specific?
whiteknight dukeleto: that's a good question. probably needs some tuning
Coke I think making a large threshold value is good. kind of like a mandlebrot generator. 20:54
(if we've hit ... 3M, we're probably going off to infinity)
whiteknight but we can see from the source code that the PMC arena starts out with size for Y PMCs. Subtract the ones created during interp startup, and then round up to the next full arena
bubaflub shouldn't the number of times through that loop be enough to ensure that we force the GC to run?
Coke bubaflub: you can force the GC to run.
whiteknight 10 loops of 1000 PMCs each should show the issue 20:55
bubaflub Coke: ah true.
Coke or 10K loops of 1 pmc. =-)
dukeleto bubaflub: howdy! sweep() runs the GC, iirc
10K loops of creating a single PMC?
what about the example code in tt 1465? that seems nice and simple 20:56
cotto_work it's an infinite loop
Coke right. just add a counter to it, that should get us most of the way there. 20:57
dukeleto so is there a nice parrot-ish way to ask how much memory the current interp is using? from PIR, preferrably
chromatic For every million PMCs allocated, see that the GC has performed a mark/sweep.
dukeleto Coke: that is what I was thinking. just add a counter that bails after 10k loops
whiteknight shockwave: language looks very cool. Not entirely dissimilar from C# or Java. Nice
dukeleto chromatic: how does one figure out if a mark/sweep has been done, from PIR? 20:58
Coke (this test can be pushed into fulltest, btw. some new 'gctest' target or something, for things that we expect to suck, timewise.)
cotto_work dukeleto, check out the interpinfo opcode
dukeleto cotto_work: danke
Coke argh. 2.1.1 still sucks on the 'svk' test front. 20:59
(I added a bin/svk that just errors out, that didn't help. =-)
whiteknight dukeleto: check out t/op/string_mem.t
Coke other than that, the tarball seems ok to me.
shockwave whiteknight. Yeah. I didn't want to re-invent the wheel. I just need something that works well for writing AI logic for a 3D game. Also, I wanted the language to have inferred typing, which I accomplished, so I'm happy. 21:00
dukeleto interpinfo looks useful for the memory leak test
whiteknight dukeleto: t/op/string_mem.t:test_pin_unpin()
dukeleto whiteknight: that looks useful. thanks! 21:01
which file should the test for the memory leak live?
whiteknight dukeleto: that also has an experimental feature I added that lets you check the type of GC that's in use, so you don't run the test on a GC that doesn't keep the stats you are looking for 21:02
dukeleto new file? the gc tests? if we want it only in fulltest, a new file is preferred, correct?
whiteknight for instance, you don't want to run a memory leak test on the INF GC
dukeleto whiteknight: i saw that. very nice.
whiteknight dukeleto: new file
purl rumour has it new file is truncated
dukeleto new file it is
whiteknight t/pir/memory_leak.t or something 21:03
particle t/gc/leaks.t
name the test subdir after the subsystem 21:04
whiteknight particle: that's cool too, but then you need to add a new dir to all the make targets 21:05
bubaflub if there will be more gc tests in the future, maybe t/gc isn't a bad idea 21:06
whiteknight "if"
cotto_work We want more tests for that. 21:07
bubaflub i mean, i'm hoping there will be more
21:07 lucian_ joined
Coke whiteknight: ... add a new dir? 21:09
(er, to the make targets?)
whiteknight Coke: they want to add a new directory of tests under t/
which means we need to add that directory to all the test make targets so we run the tests in those direcories 21:10
Coke (which tests get run are controlled either by a flag to t/harness or by specifying the explicit list of tests to run on the command line; we're adding a new target entirely for this test, so I fail to see how this is a problem.
most of the lists of tests are actually in lib/Parrot/..../*.pm
21:10 joeri joined
cotto_work Hmmm. The number returned by MEM_ALLOC_TOTAL doesn't change, even after 2 minutes of running through the loop. 21:10
whiteknight Coke: Oh, I tought it was something like "perl t/harness t/pmc/*.t ..." 21:11
so if you're not using wildcards, you can just ignore what I was saying
dalek parrot: 5a56a0a | (Joshua Tolley)++ | ROADMAP:
Make notes
21:12
cotto_work it could be that interp->mem_pools->mem_allocated isn't being updated properly, though there are a couple spots where it's updated. 21:15
shockwave Someone please make += work for strings registers. Pretty please. :) 21:17
GeJ Good morning everyone.
pmichaud shockwave: += as concatenation or as addition?
Coke shockwave: concat works.
davidfetter mornin' GeJ
pmichaud what Coke++ just said
shockwave concatenation
purl it has been said that concatenation is and.
Coke $S1 = concat $S0, $S2
pmichaud actually, concat $S0, $S1 works also
(which would be the equivalent of $S0 .= $S1) 21:18
shockwave Is that a recent addition. Mine fails, but I think I'm using parrot 1.8 or something like so. 21:19
darbelo shockwave: Note they said .=, not += 21:20
shockwave oh
darbelo Different opcodes get different syntax. PIR is assembler-is in that way.
s/-is/-ish/ 21:21
shockwave Just throwing out there that += would be nice to have.
21:21 bluescreen joined
shockwave But.= will work too. 21:21
chromatic I can't see the point of +=. 21:22
Why multiply sugar?
shockwave It makes it easier to output compiler code.
Because for builtin types, you can just += any var.
But, like you said, is just sugar. 21:23
chromatic If your code generator doesn't know the difference between addition and concatenation, you have problems.
21:23 patspam joined, nbrown joined
shockwave I do have problems, but that's not the reason. 21:23
chromatic I can't see how it's not a problem. 21:24
You emit code and *something* has to guess at what type of operation you want.
Coercion heuristics that sloppy are a mess. 21:25
You end up with something like PHP's === and then I take away your computer.
darbelo I thought you took away birthdays as punishment. 21:26
PerlJam does that mean they become unborn?
chromatic They already were, I think. 21:27
shockwave done. .= implemented. 21:30
cotto_work size_t memory_allocated; /* The total amount of allocatable memory allocated. Doesn't count memory for headers or internal structures or anything */ 21:31
So what *does* it count and why is that useful?
chromatic I realize it's a little more code in your generator, shockwave... but you already have enough type information there to be able to generate the op.
If you throw away that memory, we lose a lot of information at lower levels that we need.
21:32 bubaflub left
cotto_work But why is that value useful? 21:32
chromatic cotto_work, I was talking to shockwave, sorry.
cotto_work The interpinfo constant to access it is INTERPINFO_TOTAL_MEM_ALLOC, which implies much more than there. 21:33
gotcha
chromatic I don't know what that GC attribute tracks or why. I don't recall it ever working consistently.
shockwave chromatic, yeah. I was just being lazy.
davidfetter impatient
chromatic and Coke has hubris. 21:34
Or was that hummus?
Coke chromatic: no, I'm either a "petulant child" or "myopic". 21:35
chromatic Mr. Clean with a Snapple addiction.
dalek kudo/master: 6663abf | (Martin Berends)++ | docs/compiler_overview.pod:
[docs/compiler_overview.pod] clarified some explanations, total around 85% complete
21:38
Coke ah, the things people remember about you. 21:39
chromatic You built a fortress of solitude out of empty Diet Peach Snapple containers in a single afternoon! 21:40
Even Marlon Brando looked concerned.
dalek nxed: r415 | julian.notfound++ | trunk/examples/packfile.winxed:
disassembler in example packfile show "special" arguments, requires parrot
NotFound That completes the proof of concept of a disassembler based in the packfile an opcode PMCs :) 21:42
21:45 alin joined
shockwave += doesn't work for adding a float to an int. How should that be handled? 21:46
Coke do you want to end up with an int or a float?
chromatic That depends on your language's promotion rules. 21:47
shockwave Coke, int
Coke then do an $I0 = $N0 first before you try to add.
nopaste "shockwave" at 76.119.137.239 pasted ".sub 'foo' :method $I10000001" (5 lines) at nopaste.snit.ch/19697 21:48
shockwave Is gonna be somewhat difficult rework what's being generated there.
Coke shockwave: any reason you're not just using PAST? 21:49
... that question sounds really familiar.
shockwave I coded the compiler using Lemon and PIR, and created my own AST.
Coke nevermind.
shockwave Lemon and RE2C, that is. 21:50
nopaste "coke" at 65.91.151.194 pasted "shockwave, this works." (11 lines) at nopaste.snit.ch/19698 21:52
Coke forces you to use intermediate registers, but hopefully not too much of a change.
dalek parrot: eb1df83 | (David E. Wheeler)++ | (2 files):
Move `plparrot.c` to `src`.
parrot: 54cff80 | (David E. Wheeler)++ | .gitignore:
Ignore `results` dir and generated `plparrot.sql` file.
theory How do we change that so it uses my irc nick?
Coke which it? 21:53
shockwave Coke, Thanks. I'll work with your info.
Coke oh, you're david? =-)
cotto_work dalek grabs that from CREDITS in Parrot's root dir
Coke cotto_work: it's not per-project CREDITS?
cotto_work possibly
shockwave rant: This particular change, to use intermediate register, is going to be a pain. 21:56
dukeleto theory: dalek uses the CREDITS file to keep track of giving karma to people which have multiple commit names 22:01
theory looks
dukeleto theory: the A: entries are aliases for the main U: entry for each person
theory dukeleto: Hrm. I have a U: line just like you. 22:02
There are no A: entries
dukeleto theory: you are looking in the PL/Parrot CREDITS? I am talking about the Parrot CREDITS
theory Oh
I'm listed as David Wheeler there, but dalek knows me as David E. Wheeler
Oh, I have no Parrot credits
I've done nothing for Parrot 22:03
dukeleto theory: looks like you will have to write a patch and get your name in there ;)
theory Meh
dukeleto theory: you work on PL/Parrot, and that ain't nothing
theory: but i hear ya. dalek should look at the CREDITS of each project it knows about 22:04
theory dukeleto: Is your github repo the canonical upstream parrot repo?
dukeleto theory: no, the canonical parrot repo is svn. mine is just a mirror. it does not push changes back to svn 22:05
theory mkay
theory thought parrot had moved to git
dukeleto theory: i use it as a place to show off topic branches and just be a general mirror
theory must be thinking of rakudo
cotto_work theory, not yet
theory np
me clones git://github.com/leto/parrot.git
dukeleto theory: yep. rakudo is on git. I will attempt to convert parrot to git, whenever they let me
theory he 22:06
h
dukeleto theory: just note that the 'master' branch is dirty with merges, so you want to look at the 'upstream' branch
theory: i need to fix that one of these days
theory: i figured out how to mirror without leaving merge commits
theory good idea
purl theory: Good Idea: Visiting the circus. Bad Idea: Having the circus visit you.
theory where should I send the patch? 22:07
chromatic particle, do you mean to send that here?
cotto_work you can nopaste it here and there's a good chance someone will apply it. 22:08
theory dukeleto: patch: parrot.privatepaste.com/6a446769c9 22:09
22:10 bacek joined
dalek kudo/master: c69aeb9 | pmichaud++ | docs/release_guide.pod:
Update release_guide.pod with more names.
22:13
dukeleto theory: done 22:15
theory mkay
dalek kudo/master: 2663b19 | (Martin Berends)++ | docs/ (2 files):
[docs/] additions to ChangeLog and announce/2010.02
22:18
shockwave I there a recommended place to attach test files? 22:20
Comparing two equal floats fail. 22:21
22:21 snarkyboojum joined
shockwave I know float comparison is hazy in many languages, but this one may be extra hazy. 22:21
chromatic How did you generate the floats?
dukeleto shockwave: show me the code
nopaste?
purl rumour has it nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or trac.parrot.org/parrot/browser/tru...nopaste.pl
shockwave I wanted to paste the files, but I'll cut the relevant stuff. 22:22
dukeleto shockwave: are you working in PIR? we have functions for comparing floats with a given precision
shockwave: is(x,y,msg,eps) in Parrot's test_more.pir
where eps is the precision that you want to check within, i.e. eps = 1e-3
nopaste "shockwave" at 76.119.137.239 pasted "method of generating and comparing floats." (31 lines) at nopaste.snit.ch/19699 22:25
shockwave dukeleto, I'll take a look at it.
dalek rrot: r44148 | dukeleto++ | trunk/CREDITS:
[cage] Add David Wheeler's info to CREDITS so his work on PL/Parrot gets properly karma-ified
22:26
dukeleto shockwave: you can't compare floats exactly. you gotta subtract and see that the difference is less than you care about 22:27
shockwave The asserting message says: 22:28
Received: 3.140000
Expected: 3.140000
dukeleto, though, I get what you're saying, internally, they seem to be the same exact number. 22:29
dukeleto shockwave: you are not printing out the full numbers, only the first 6 decimals 22:30
shockwave I'm priting %f
dukeleto shockwave: and also, sometimes internal representations are different than printable representations. Moral of story: never compare floats exactly
particle even NaN is a range of values 22:31
...not that it will ever compare equal...
dukeleto shockwave: try %G 22:32
22:32 Whiteknight joined
dukeleto shockwave: you are only looking at the float representation. the double represention is probably off in the least significant bit 22:32
shockwave is outputs 3.14 22:33
s/is/it
dukeleto shockwave: it is trying to be smart and printing out something that looks nice. what happens when you subtract them? what is the difference? 22:34
shockwave They are both 3.14
Expected is literal 3.14, and Received is the subtracted one.
I'm looking at the test stuff. I just wanna get this working. 22:35
dukeleto shockwave: no. print out (first-second) and see what that is 22:39
shockwave dukeleto, test_more.pir points to Test/More.pir 22:40
dukeleto shockwave: yep. follow the rabbit hole :)
shockwave In there, float comparision is done via:
darbelo shockwave: Welcome to IEEE 754, have fun looking for the way out.
dukeleto darbelo: lulz
shockwave pass = iseq ln, rn
dukeleto darbelo: that should be "Welcome to IEEE 754-2008. Abandon all hope." 22:41
shockwave: there are many multimethods for is(). you are looking at the wrong one
shockwave: look for one that takes 4 arguments
dalek kudo/master: a04aba2 | jonathan++ | src/pmc/p6opaque.pmc:
Since we wrapped out Parrot routines in our own wrappers, we added an extra PIR invocation as a re-direct every time. Optimizing that path to save the extra invocation seems to save us > 30% in some benchmarks.
kudo/master: 15ba550 | jonathan++ | src/builtins/Mu.pir:
Since we've no custom metaclasses yet, we can cheat in the default BUILD a bit (when we do have them, we can probably move this BUILD into the meta-class and continue to cheat, albeit at tail-call cost or so.
shockwave dukeleto, there is none. 22:42
darbelo I had the... instructive... experience of having to implement a fp unit in VHDL about a year and a half back. It still hurt on cold days. 22:43
shockwave The not equals is implemented as: ne left, right, pass_it 22:44
I'm assuming the are the same as the sugar == version.
Damn floats.
dukeleto shockwave: search for "check_precision" in that file
shockwave: line 244 of Test/More.pir
shockwave dukeleto. Got it. 22:45
dukeleto shockwave: you have to look at the .param lines to see how many arguments a PIR function takes.
shockwave dukeleto. True. I was looking at multi. 22:46
dukeleto. Thanks. I should be able to wipe something up with this.
dukeleto, one more question: So, to have a precission of 4 decimal places as in : 9.1234, I pass: 1e-4 ? 22:47
NotFound $ winxed --stage=2 -e 'float n= 6.14; n= n - 3.0; say(n-3.14)' 22:49
-4.44089209850063e-16
Not exactly equal.
dukeleto shockwave: pretty close 22:51
shockwave: if you want to make sure the first 4 digits match, then it is actually more like 2*1e-5 22:52
shockwave: but it is pretty much the same. if you expect two floats to be the same, 1e-6 or 1e-8 is usually a good value
Whiteknight darbelo: I made an fp in verilog a while back, and had to use it to run a suite of CORDIC benchmarks 22:53
shockwave I need the precision for 3D math. I'm gonna need the 4 places 2*1e-5 22:54
chromatic Can you use fixed point calculations instead?
NotFound Good point X-) 22:55
shockwave chromatic, as in regular ints?
chromatic Yes.
shockwave No, I can't. The 3D engine requires floats.
Coke ponders why he cannot get a job working primarily in perl. 22:56
dukeleto shockwave: occasionally you can work with ints during all intermediate calculations, then divide at the end
Coke: willing to move or telecommute only?
Coke: i saw your tweet. looking for a new gig?
Coke not really able to move. 22:57
NotFound Coke: A *REAL* programmer can write perl in any language... Or it was Fortran?
chromatic I know what you mean. I had a tetanus booster yesterday and my shoulder is stiff.
shockwave dukeleto, It seems like I'm gonna need to.
dukeleto Coke: i hear ya. i forget, are you in seattle? or am i confusing you with someone else
Coke Albany, NY is the closest big town.
perhaps big should be in quotes.
Coke is no real rush, but it's definitely time to think about it. 22:59
chromatic There's a fake Rush?
dukeleto Coke: gotcha. there are definitely a lot of perl jobs in NYC, but that is a bit far for a commute for you
Coke anyone try the 2.1.1. tarball?
dukeleto: I've commuted to NYC before. They'd have to pay a lot to make the hassle worth it, but it's definitely possible. 23:00
darbelo Whiteknight: Ohhh, CORDIC. That was my final project for that course. I used it to make pictures rotate in an old vga monitor.
If I dig about I can probaly find the VHDL source for the video output module. 23:01
Coke chromatic: *in* no real rush.
kthakore hi Coke 23:02
Coke kthakore: hio
kthakore Coke: does Parrot have threads?
or can it have threads?
dukeleto feather is laggy 23:03
Coke ... not sure why you'd single me out for that. =-)
kthakore Coke: oh no reason
sorry
darbelo kthakore: parrot has threads. But they're... undertested.
Coke I honestly don't know what the current status of threads is. ah there you go.
kthakore ok can I read about them somewhere
I wanted to try a little toy in parrot 23:04
hehe parrot toy
darbelo had a toy parrot.
kthakore darbelo: please keep it to your self ;)
Tene last I checked, threads still weren't usable if you'd created any classes in nested namespaces.
trac.parrot.org/parrot/ticket/757 23:05
kthakore Tene: so perl6 won't have threads from parrot?
Tene kthakore: Rakudo won't have threads until threads are fixed in Parrot.
kthakore right 23:06
ok
pmichaud where can I find the 2.1.1 tarball?
(to test against rakudo)
Coke feather.perl6.nl/~coke/parrot-2.1.1.tar.gz 23:07
dukeleto kthakore: parrot has threads, but they are buggy 23:10
kthakore dukeleto: cool
23:11 joeri left
pmichaud Coke: thanks 23:13
building, testing, etc. 23:14
dukeleto happy pi time (in PST)
or is it PDT? i hate DST 23:15
Coke has taken to just saying "Eastern"
pmichaud dst doesn't start until march 8 (in the u.s. (for those parts of u.s. that observe dst) ) 23:17
dukeleto pmichaud: i have to write a lot of code at work to deal with that. i just block it all out of my mind
pmichaud: certain cities and counties don't follow DST. yay! 23:18
pmichaud: that fact gets real fun when you are trying to timeshift data coming from mobile phones, which can move in and out of DST and non-DST geographic reas 23:19
areas, even
and of course, everybody reports data in the local timezone. UTC? what is that for? 23:20
chromatic Socialist Europe.
NotFound dukeleto: just play games with the data until they look like the expected results, like the climate pros do. 23:21
Socialistic Republic of Greenwich. 23:23
dukeleto NotFound: you have no idea ;) 23:24
Coke I'm going to go offline. someone text me when rakudo says it's ok. 23:26
chromatic wantes typed C hashes
Coke anyone have my cell?
I just pm'd chromatic with it. 23:27
~~
chromatic Oh, okay. I'll let you know if we need it.
23:31 kid51 joined
Whiteknight no reaction at all to my Parrot_call_* removal notice 23:36
dukeleto Whiteknight: i threw a tomato at my screen
Whiteknight ...no reaction that was communicable over the internet
dukeleto Whiteknight: i think maybe the people who need to know about that are maybe not on parrot-dev ? 23:37
pmichaud Coke: 2.1.1 tarball passes spectest against rakudo head just fine.
ran spectests in 12m0s (non-parallel)
dukeleto Whiteknight: who embeds parrot? other than parrot_debugger and PL/Parrot?
Whiteknight mod_parrot
purl mod_parrot is being worked on again. ;) or at www.parrotcode.org/mod_parrot or at svn.perl.org/parrot-modules/mod_parrot
dukeleto Whiteknight: oh yeah! did you ack the mod_parrot source for the functions you changed? 23:38
Whiteknight nope
dukeleto Whiteknight: might be a good idea, just to give jhorowitz a heads up
kid51 jhorwitz
purl somebody said jhorwitz was "mod_parrot-guy" or mailto:jeff@smashing.org
Whiteknight he's definitely on parrot-dev
dukeleto Whiteknight: yes, but he might now be reading all the messages. it may be a good idea to send him a personal msg 23:39
kthakore NotFound: hi 23:40
Whiteknight where is the mod_parrot repo even located anymore?
kthakore NotFound: I have made this format of the runtime SDL library
github.com/kthakore/parrotSDL
the SDL code is in runtime/parrot/library
How can I get parrot to point to this when it runs 23:41
dukeleto kthakore: .include 'SDL.pir' 23:42
kthakore: also, nice work. SDL on parrot is exciting! 23:43
kid51 Whiteknight: you ping-ed me a couple of days back ? 23:44
kthakore dukeleto: I didn't do anything yet
dukeleto: I just 'stole' the code out from under you guys
dukeleto: that way I can work on it seperatly and bring it back in 23:45
Whiteknight kid51: I was trying to figure out what was the status of a few older branches
dukeleto kthakore: well then. sounds good!
Whiteknight some of them look like your handiwork
kthakore heh ok
dukeleto: thanks
I kept itching to pull the trigger finger on it
dalek kudo/master: e77b754 | jonathan++ | src/ (2 files):
Optimize hash - especially slurpy hash - creation.
23:46
dukeleto kthakore: so you want to point parrot at your runtime dir?
Whiteknight when's the Rakudo release coming out?
kthakore dukeleto: yes
dukeleto: is that possible
dukeleto kthakore: maybe just symlink the SDL/ dir and SDL.pir ?
kthakore: that is the easiest way
kid51 Whiteknight: Yes. We spoke about detect_llvm/ several months ago. That's waiting on an LLVM in Parrot :-)
kthakore oh I was thinking something like path 23:47
dukeleto kthakore: make sure to make the symlinks in the installed version of parrot
kthakore: there may be a way to do it with env vars, but I don't know
kthakore dukeleto: ok I will ask around
kid51 Whiteknight: tt509_install_files branch was for evaluating a patch submitted by ___ (name escapes me now).
kthakore dukeleto: I need to make the boilerplate anyway
kid51 I repeatedly begged for review on #parrot, in #parrotsketch pre-post -- got none
kthakore the *most* fun part of any project
:)
dukeleto kthakore: asking on parrot-dev may get you a useful answer 23:48
kthakore parrot-dev the channel ?
oh mailing list
parrot-dev@perl.org
right?
kid51 tt509: patch submitted by wayland
chromatic It's not begging if I don't get pie. 23:49
kthakore gives chromatic a pie piece
chromatic Fun fact: there were two pies for Pie-thon.
Funner fact: I took one of them home. It was good.
kthakore heheh 23:50
23:50 snarkyboojum joined
kthakore chromatic: fun fact pies are fun 23:50
Whiteknight after this week's Rakudo release, I'll dump the parrot_call_dep and pmc_func_cleanup branches to trunk
dump and run
even though it shouldn't matter, if they base their release on 2.1.1
chromatic This is why we don't let you run with scissors. 23:52
kthakore dukeleto: ok I found the link
I will send a post out thanks
now back to perl5 side of SDL
cya
chromatic Ugh, lousy hash implementation. 23:57
Whiteknight okay, enough bitchin. What will it take to make it non-lousy 23:58
?
chromatic The biggest culprit right now is indirect function calls for every key comparison. 23:59
src/hash.c lines 1213-1226.