Parrot 1.7.0 "African Grey" is out! | Fix issues caused by the pcc_reapply merge | find out what's up with the slice opcode
Set by moderator on 28 October 2009.
Whiteknight incoming 00:05
purl well, incoming is pause.perl.org/incoming/
dalek rrot-linear-algebra: 90a0da4 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
add a transpose() METHOD to NumMatrix2D
00:09
rrot-linear-algebra: 7bf83a9 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
Add a get_attr_str VTABLE with some basics
rrot-linear-algebra: 779e591 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
added a method iterate_function_inplace, which acts as a transform applying a given function against every item in the matrix and returning the result
rrot-linear-algebra: c22fac9 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
add a clone VTABLE. Also, fix the iterate_function_inplace method
NotFound If someone is bored, this is an example of what Winxed can already do: notfound.posterous.com/example-of-c...ge-for-win 00:11
Whiteknight wow. nice 00:15
NotFound BTW, I like posterous :)
Whiteknight that's very impressive for how young the project is 00:25
jonathan NotFound: Is it built atop of PCT? 00:30
00:31 cotto_work joined 00:32 Whiteknight joined
Whiteknight EUBUNTUCRASHED 00:33
cotto_work sounds like you're having fun 00:34
00:35 abqar joined
Whiteknight at tims 00:36
NotFound jonathan: no, is C++ hand written lexer and parser 00:37
jonathan NotFound: Ah, Ok. :-) 00:41
cotto_work who's tim? ;) 00:43
Coke tim?
purl tim is Tim O'Reilly, Perl's ``patron'' in the Medici sense of the word. or Too Informal, Mindi. you really should wear something to the party or tim bunce or tim the toolman or a parsnip pro
chromatic Heh. "patron"
plobsing what no tim the enchanter?
kid51 Let me pose a question I believe I first posed a couple of weeks back. 00:55
00:55 xenoterracide joined
kid51 If I am the *owner* of a trac ticket, shouldn't I be getting email updates when someone posts to the ticket? 00:56
00:58 xenoterracide joined 01:02 nbrown joined 01:11 xenoterracide joined 01:20 darbelo joined
darbelo Hmm. TT#652 01:22
We should make that a build error everywhere. 01:23
dalek rrot: r42160 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
[pct/past]: Add a few more common opcode signatures, to help pir::op in nqp-rx.
01:35
rrot: r42161 | darbelo++ | trunk/config (4 files):
Make CLOCK_BEST selection in hires_timer.c check if the desired clockid is #defined.

This should fix the Solaris 8 problems on TT#985 while still providing correct clockid selection in later solaris versions.
01:51
darbelo purl: msg kid51 Can you check if r42161 has a beneficial effect on TT#985 ? 01:52
purl Message for kid51 stored.
01:57 darbelo left
dalek p-rx: 501baec | pmichaud++ | src/NQP/ (2 files):
[nqp]: Add statement_prefix:sym<INIT> .
02:13
p-rx: 773419c | pmichaud++ | t/nqp/33-init.t:
Add test for INIT statements.
p-rx: d8f4a95 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION.
02:23 mokurai joined 02:39 kyle_l5l joined 02:53 abqar joined 03:26 eternaleye joined 03:42 janus joined 04:04 eternaleye joined
cotto pmichaud_, does "blorst" mean anything? 04:11
blorst?
dalek p-rx: acc9532 | pmichaud++ | src/NQP/Grammar.pm:
[nqp]: Allow regexes to take parameters.
04:22
p-rx: e259ff0 | pmichaud++ | src/stage0/ (3 files):
Update bootstrap to include parameterized regexes.
04:23 xenoterracide joined 04:48 xenoterracide joined 04:56 xenoterracide joined
pmichaud_ cotto: blorst == "block or statement" 05:36
cotto: it comes straight from STD.pm
(i.e., I didn't make it up)
cotto It makes sense in a TimToady kind of way 05:38
05:50 iblechbot joined 06:05 eternaleye joined
dalek p-rx: 67e897d | pmichaud++ | src/ (2 files):
Use $*ACTION contextual instead of $!action cursor attribute (from STD.pm)
06:07
p-rx: 414f6a0 | pmichaud++ | src/stage0/ (3 files):
Update bootstrap.
06:10 xenoterracide joined 06:15 theory joined 06:19 xenoterracide joined
cotto coverage? 06:26
purl coverage is cv.perl6.cz
Tene trying to figure out where to start on IO cleanups. 06:29
cotto I can see why some of those mmd functions are deprecated and why they're still around.
06:52 davidfetter joined 06:54 darbelo joined
cotto jonathan, ping 06:55
jonathan, unping. I'll catch you later. It's time for sleep. 06:57
07:05 Zak joined 07:06 mokurai left
cotto Hmmm. Only two VTABLE functions in MultiSub get any exercise at all. 07:09
07:15 uniejo joined 07:27 fperrad joined
darbelo is bored. 07:28
dalek rrot: r42162 | darbelo++ | trunk/config/init/defaults.pm:
Give @clock_best@ an empty default value. This prevents a warning about undef values during makefile generation.
07:30
07:33 einstein joined 07:54 Ron joined
chromatic msg whiteknight morepypy.blogspot.com/2009/10/gc-im...ments.html 08:12
purl Message for whiteknight stored.
dalek kudo: 27e0d69 | moritz++ | src/setting/Complex.pm:
sign(Complex) fails. Closes RT #60674
08:17
08:26 joeri joined 08:35 jsut joined 08:46 nbrown joined 08:48 particle joined, eternaleye joined 08:58 uniejo joined 09:02 jonathan_ joined, dukeleto_ joined, dalek joined 09:04 bacek joined
bacek o hai 09:04
09:06 pmichaud_ joined 09:12 Util joined, PerlJam joined 09:30 whiteknight joined
whiteknight ionxlive123 09:31
(wrong window)
09:32 JimmyZ joined
whiteknight purl msg chromatic: great article. Thanks! 09:32
purl Message for chromatic stored.
09:36 bacek_ joined
whiteknight purl msg chromatic in the linked list scheme I think we could allocate PMC+ATTRS+storage in a single chunk (assuming we know the size of the storage). because we don't need to sweep the pools linearly 09:44
purl Message for chromatic stored.
10:02 Whiteknight joined 11:16 KatrinaTheLamia joined 11:36 bacek joined 11:55 payload joined 11:57 fperrad_ joined, whiteknight joined
whiteknight good morning again, #parrot 11:58
12:00 fperrad joined 12:03 plobsing joined
whiteknight in the past 24 hours, I've deleted more data then I've ever created 12:05
moritz what did you do? wipe out a storage server? 12:06
12:12 payload joined
jonathan Or maybe got hired by Geocities. ;-) 12:12
12:12 masak joined
whiteknight there were two issues. First, our SMTP server got targetted as a spam relay, which filled up IIS's "Badmail" folder with several hundred gigabytes of undeliverable spam emails 12:13
second, we had an archive server fill up it's storage disk, so I had do delete about 1.2billion rows from the table
(with a "b")
12:14 payload1 joined
whiteknight so in the past nine hours, I've purposefully deleted about 320GB of data 12:14
...and counting 12:15
jonathan The joy of sysadmin.
whiteknight I've learned more about MSSQL transaction logs in the past 10 hours then I ever cared to know
szbalint 1.2b rows are not toy scale :) 12:16
whiteknight conversely, I now have several hundred gigabytes of transaction logs that will need to be deleted too
moritz hehe
whiteknight DELETE FROM [dbo].[DATA] WHERE data_uid < 1200000000 12:17
jonathan eww
whiteknight it's naive, I know
jonathan It's OK, I'd have done the same first. :-) 12:18
And noticed...huh...why'd the transaction log disk just fill.. 12:19
:-/
whiteknight Yeah, I learned it was going to be a problem about 2 hours into the process (Currently at hour 9)
so I did the naive solution: added logfiles on other disks. 12:20
lots of other disks
coming up on 200GB of logfiles now, and have at least 100GB of free space left
moritz whiteknight: I know that problem on a smaller scale with mysql 12:21
mysql has this nice feature that if you're low on disk space, it tells you that
by writing into the log file 12:22
for every write operation
whiteknight I don't understand why there isn't a "slash and burn" flag I can set when I know I don't want to log a transaction
I just want to kill it, or as much of it as I can
moritz and if the logfile is on the same partition as the data
whiteknight I'm sure LOLSQL would have a "SRSLY" keyword I could use
moritz and that partition grows full
you want to insert some rows
disk full, still some insert transactions pending 12:23
so you delete stuff to make space
12:23 bluescreen joined
moritz and then it's the logfile that uses it up again, not the data tables 12:23
jonathan whiteknight: Ooh, you reminded me, I need to post my lolsql to sql translator somewhere... :-)
whiteknight github!
(that's my answer for everything)
jonathan whiteknight: aye, good idea. 12:25
whiteknight: hey, you could send you transaction logs there too ;-)
whiteknight WAAAAYYY over the repo size limit 12:26
moritz how much is that btw? 50M?
whiteknight 300MB 12:27
per user
purl i guess per user is release quality, IMHO
whiteknight purl forget per user
purl whiteknight: I forgot per user
12:41 payload joined 12:52 JimmyZ joined 12:53 bluescreen joined 12:59 fperrad joined 13:10 particle joined 13:20 bluescreen joined 13:25 rdice joined, bacek_at_work joined 13:38 barney joined 13:40 ash_ joined 13:50 payload joined, fperrad_ joined 14:05 nnunley joined 14:06 fperrad_ joined 14:07 bacek_at_work joined 14:10 iblechbot joined 14:12 ash_ joined
Essobi WEEE! 14:18
Coke fixes installing on his OS/X box. 14:27
(by removing the previously installed version.)
src/hash.c:1497: failed assertion 'value' 14:32
14:33 mikehh joined
Andy Coke: That means that "value" evaluates to false. 14:42
I don't have anything useful to add, but I feel like I should.
WHO MISSED ME?
Patterner I. Which made me practice even harder. 14:44
Andy Oh, look, I can add two consts to src/hash.c 14:47
I feel born anew!
Coke Andy: can you look at RTs # 39085 and #39917 and either reject them or migrate them over to trac? 14:49
msg pmichaud_ Don't forget to check your pmichaud messages. =-) 14:50
purl Message for pmichaud_ stored.
Andy Thank goodness we're bailing on RT. :-)
Coke Andy: yah, it's so much more efficient this way. :| 14:51
(how long has trac been open for business now, and we still have 144 tickets left in RT?)
Andy Coke: Can you assign those tickets to me?
I can't look now
Coke Andy: roger. 14:52
do we have /any/ emacs users? 14:58
(that hack on parrot) 14:59
dalek TT #1159 created by jhoblitt++: make distcheck target 15:00
Coke tries to dig up an emacs expert elsewhere.
15:03 theory joined
dalek a: 42cf96c | fperrad++ | src/POSTGrammar.tg:
funcname must be escaped,
15:04
Andy Whoo! Code changes! The janitor is in the house! 15:06
Ok, perhaps that's a little too excited for what I committed. :-)
15:07 kj joined
dalek rrot: r42163 | petdance++ | trunk/src/hash.c:
const a couple of locals, and remove unnecessary braces
15:08
15:08 Psyche^ joined
particle Andy: no word back from coverity on access, but whiteknight has given me his credentials temporarially 15:18
only 11 remaining items in tier 2, iirc 15:19
whiteknight yeah, temporarily. I take them back in a few days
pmichaud_ Coke: I apparently have only 3 messages? 15:23
oh, right, "pmichaud"
for some reason I can't switch to my 'pmichaud' (no underscore) nick
Coke pmichaud_: because someone is already connected to the server with that nick. 15:24
pmichaud_ right, and it appears to be me.
I'm guessing zombie processes on feather
particle freenode has nickserv, which lets you ghost 15:26
on irc.perl.org, you'll need an ircop to help
Coke anyway, if you can close out that RT (I hope) +1
particle contact mst
pmichaud_ which RT?
(none of my 3 messages mention an rt)
Coke pmichaud_: the one to pmichaud did. =-) 15:27
hang on.
purl hang on. is this actually "session is still there but user has been deleted" ?
moritz purl: forget hang on.
purl moritz, I didn't have anything matching hang on
Coke RT #47970
the wierd ccache/json issue.
you were the only one that could reproduce so, so if you can't now, we can close it. =-)
(reproduce /it/) 15:28
pmichaud_ I've not reproduced it since I reported it
so, I think we close it.
Coke danke. 15:29
I'll take care of it.
pmichaud_ Coke++
jonathan
.oO( remembers "Can not reproduce" from xkcd )
dalek p-rx: 7d38dff | pmichaud++ | src/ (4 files):
Add <LANG> subrule for handling language braids and actions.
15:30
p-rx: 3d8df04 | pmichaud++ | build/Makefile.in:
Slight reordering of build sequence.
p-rx: ef8e140 | pmichaud++ | (2 files):
PBC refactor #1 -- create Regex.pbc .
p-rx: ca98719 | pmichaud++ | (7 files):
More .pbc refactoring and bootstrapping.
p-rx: 7515ff5 | pmichaud++ | (3 files):
More library refactoring, final stage of bootstrap.
p-rx: d526e5f | pmichaud++ | build/Makefile.in:
Eliminate HLLGrammar.pbc from build -- it's now HLL.pbc .
a: 4f0ef18 | fperrad++ | src/grammar51.pir:
improve nested long string or/and comment
15:32
15:42 whiteknight joined
whiteknight hates MS SQL 15:47
just sharing
jonathan More than MySQL? ;-)
Or a different kind of hate? ;-) 15:48
dalek p-rx: 3428caa | pmichaud++ | (4 files):
[p6regex]: Eliminate src/cheats/p6regex-grammar.pir, they're now P6 source.
whiteknight I don't use MySQL enough to hate it 15:50
In fact, my few dealings with it were always relatively pleasant
dukeleto 'ello 15:56
whiteknight hello duke
dukeleto whiteknight: when you start to need real transactions and strict foreign key checking, mysql shows it's ugly warts
whiteknight I don't use tools that have ugly warts 15:57
I stick to C
:)
jonathan Yeah, having a type system would be a terrible wart. ;-) 16:03
16:05 desertm4x joined
whiteknight I prefer the "less is happening then I expect" problem over the "more is happening than I expect" 16:05
I don't like magic, or most sideeffects
dalek p-rx: 3a49ad1 | pmichaud++ | src/stage0/ (3 files):
Update bootstrap files.
whiteknight small preference, of course. When I have to write a program of any substance I don't use C 16:06
cotto_work good morning 16:18
whiteknight hello cotto_work 16:19
dalek TT #476 reopened by coke++: Binaries should not contain rpath 16:22
he TT#476: that's a platform-specific (Linux-specific) argument. 16:44
Coke I see a proposal by andy d that is pretty much never addressed by anyone in there. 16:46
linux or not, we should answer that question before shutting down the ticket.
he "my" platform requires rpath of shared library is installed elsewhere than /lib or /usr/lib. 16:47
Coke this isn't about the installed stuff. 16:49
it's about the /build/ directory.
16:50 mj41 joined
he mm, I see (half-way through reading the ticket) 16:52
16:56 desertm4x joined 16:57 darbelo joined
desertm4x whiteknight: I saw your new transpose-method in parrot-linear-algebra. Actually doing this in memory is a bad idea most of the time. Actually we should consider adding a 'transposed' flag to the PMC and use the BLAS routines for operations on transposed matrices. 17:06
darbelo desertm4x: +1
purl 1
whiteknight desertm4x: that's actually not a bad idea
we do have ROWMAJOR and COLMAJOR macros available
the BLAS APIs also take a "transposed" flag for their APIs, I think 17:07
darbelo whiteknight: cblas can operate on both formats dues to the FORTRAN <-> C conversion 17:08
whiteknight so that could work out quite nicely
desertm4x If you agree, I am going to add that flag and implement matrix multiplication for our matrix type.
whiteknight please do
If you do some of the core VTABLEs and stuff, I can update some of the new methods I've added
I haven't even really tested them yet, so you dont need to clean up after me 17:09
17:21 ruoso joined
darbelo freaking hates 'negative' impedances. 17:23
whiteknight what do you mean by that? 17:24
darbelo I just came across a clever circuit that uses opamps to fake a negative resistor. 17:26
Which was placed next to a 'real' positive resistor of the same value. 17:27
17:27 chromatic joined
whiteknight oh awesome 17:27
if there is one thing I don't miss doing, it's circuits
darbelo My circuit analysis package was unamused by it.
whiteknight unamused in the crashy kind of way? 17:28
17:28 mokurai joined
darbelo Nah, just a big, nasty, misleading error message. 17:29
My guess, the numerical solver wasn't expecting a singular matrix. 17:30
darbelo goes afk. 17:31
Coke wow, that brings me back. (computer & systems engineering degree) 17:36
whiteknight it's a fun degree 17:38
chromatic dukeleto, is there a hackfest at the Lucky Lab tonight? 17:40
dukeleto chromatic: yep. do you want to hack on stuff together? 17:51
Coke chromatic: can you check out RT 57236 ? (you also have a few that you opened)
dukeleto chromatic: i haven't been able to do the benchmarks yet, but they are high on my list
chromatic: also, i could show you how to set it up and free you from my bondage of slow response
chromatic: also, I know have access to a benchmark server to run them on. but it isn't set up on it yet. 17:52
s/know/now/
whiteknight know now? no how 17:54
dukeleto desertm4x: +1 on using proper blas routines 17:55
whiteknight yes, he's very helpful
dukeleto i am going to have to backlog for about a week. oy vey.
whiteknight desertm4x++
chromatic dukeleto, I'm planning on showing up... met a PSU CS student on the MAX the other day and said "Hey, if you don't know the local tech scene, this might be a good place." 17:56
17:56 mikehh joined
dukeleto chromatic: sounds like a date. when are you planning on arriving? 17:59
chromatic 7-ish
18:06 pmichaud joined
pmichaud yay, got my nick back. 18:07
jonathan
.oO( wonder who nicked it )
18:09
PerlJam the *other* pmichaud 18:10
pmichaud my irssi client got in a weird state on feather 18:14
so it was holding a connection open with the 'pmichaud' nick
dukeleto pmichaud: let me know when you want me to run plumage's test suite against nqp_rx 18:16
pmichaud dukeleto: it's probably ready (or close to it) now 18:17
dalek p-rx: 7c48517 | pmichaud++ | src/NQP/ (2 files):
[nqp]: Enable :my declarations in regexes.
18:25
Tene man, all this exciting shit going on, and I'm stuck going to a movie tonight.
18:26 xenoterracide joined
cotto_work better be a good movie ;) 18:27
Tene Serenity.
purl rumour has it serenity is Quite Good. Go see it
Tene apparently purl approves.
darbelo I liked it.
But I have weird taste in movies. 18:28
whiteknight I never saw Serenity 18:29
18:30 bacek joined
treed You're seeing serenity in a theatre? 18:31
Tene Yeah. 18:32
www.brewvies.com/
18:33 einst31n joined
cotto_work Cool. Now we have the improved l33t3r einstein. 18:34
einst31n hello :)
moritz 31n5t31n? ;-) 18:35
darbelo H3l0, j00 m34n?
einst31n I forget to log out at work :)
how can I see in the wiki from where a page is referenced? 18:40
shall i place a link to the MakeEveryPMCAnObject on the main wiki page? 18:41
darbelo einst31n: +1
purl 1
einst31n ok i will add under tasklist and project 18:42
dalek tracwiki: v113 | jessevdam++ | WikiStart 18:43
tracwiki: add link to MakeEveryPMCAnObject wiki page
tracwiki: trac.parrot.org/parrot/wiki/WikiSt...ction=diff
kudo: 4320479 | jonathan++ | (10 files):
First cut of implementing unpacking of arguments with nested signatures. Supports arrays, hashes and objects.
18:45
18:47 Zak joined
ash_ what the command to get make install to install devel stuff? make install-dev still? or was that changed? 18:47
pmichaud __ash__: it was "make install-dev", now either "make install" or "make install-dev" should work.
ash_ k 18:48
japhb just went to invite a friend to lunch, wondered why he was hard to reach ... and finally got him on his cell, at the hospital, because his new baby decided to be born today. Somehow, I think that's more exciting than mere lunch. :-) 18:50
cotto_work babies are like that
dalek tracwiki: v1 | jessevdam++ | MakeEveryPMCAnObjectQuestions 18:53
tracwiki: creation of question page
tracwiki: trac.parrot.org/parrot/wiki/MakeEv...ction=diff
tracwiki: v4 | jessevdam++ | MakeEveryPMCAnObject
tracwiki: link to question page
tracwiki: trac.parrot.org/parrot/wiki/MakeEv...ction=diff
pmichaud gist.github.com/221691 # another nqp-rx present
einst31n I added a question page so any body can place question there so i can anwer them
japhb pmichaud: ooooh .... 18:55
pmichaud japhb: guess what comes next...? ;-)
japhb Can 'has $!foo' ?
pmichaud actually, <?{ code assertion }>
japhb awww. Still cool though. ;-) 18:56
pmichaud but 'has $!foo' should be ready tonight.
japhb EXCELLENT. That's the one I'm waiting for.
It's close enough now that I probably ought to start laying out my classes in preparation.
pmichaud I needed to be able to do :my declarations in order to do 'has $!foo' properly.
japhb Now we just need to get (jhorwitz?) to do mod_nqp ... 18:58
cotto_work This refactor is going to make nqp a joy to use. 18:59
now if only you could get rid of := ...
japhb Indeed.
(re: joy to use)
:= works fine for me. Except that when I use Rakudo, I forget that Rakudo's := is still buggy .... 19:00
cotto_work I know I'll be tripping over it for the first few days when I get ready to work on Pipp again.
japhb Although if I'm reading some of the #perl6 discussion properly, it sounds like jonathan may end up fixing that soon as part of his captures and binding work
Oh, pmichaud, did you remember to make a More Awesome error message for accidently using = instead of := in NQP? 19:01
cotto_work I guess it's a good reminder that it's not an assignment, though.
+a lot
ash_ what format are PBC's in? 19:09
jonathan Parrot Bytecode 19:10
purl Parrot Bytecode is probably the binary
jonathan ash_: The bytecode PDD specifies it. 19:11
PerlJam ash_: why do you ask?
ash_ curiosity mostly
trying to understand how all the compliation stuff in parrot works, and how lorito is related, etc.. 19:12
cotto_work ash_, Lorito isn't implemented yet. When it is implemented, all Parrot's ops will be the same but will be implemented and stored in PBC as Lorito ops. 19:13
same for PMCs
ash_ i know, i have read that part
einst31n can someone tell me where I can find a full description of lorito plan?
PerlJam einst31n: see cotto_work above ;-) 19:14
einst31n I know it is not implemented yet, but is there description of the plan somewhere? Or do i miss something :$ 19:15
darbelo trac.parrot.org/parrot/wiki/L1Recap 19:16
cotto_work yeah, that
purl Sure, that.
cotto_work botkick
einst31n thanks 19:17
Sorry, i have to go, i have board my plane:)
darbelo It might be outdated-ish, as some of the details are still in flux.
cotto_work Lorito was fka L1
ash_ so..., if someone was interested in helping out with any of that? 19:19
darbelo They can ask here for a good starting point.
cotto_work figuring out which ops lorito needs would be a good starting point. 19:20
darbelo waits for the askers.
ash_ i'd like to help
also, i am applying for a grant at my school for an independant study on compilers, which is also why i am interested in all this, but i have no idea if i can get my professor to let me work on something like this as my research topic 19:21
one can dream though
cotto_work ash_, what school? 19:23
darbelo The 'PMCs in NQP' step is the most compiler-ish part of the whole thing.
cotto and bacek did some work on that in the pmc_pct branch. 19:24
cotto_work bacek, do you recall why we stopped that work?
ash_ Auburn University (in alabama)
bacek cotto_work, because Ops are smaller.
PerlJam ash_++ (just for thinking about it) 19:25
cotto_work bacek, right. Why did we stop working on the ops?
darbelo had forgotten about the ops.
bacek cotto_work, sidetracked by other projects...
ash_ the professor i am working with wanted to do compilers in general, which is cool by me, but i wouldn't mind if i could do something more useful than doing a toy compiler for an arbitrary made up language
cotto_work That's it? I thought there was a better reason for stopping. 19:26
PerlJam ash_: Don't let the prof push you around too much, it would be *your* research after all.
cotto_work ash_, you can do a toy compiler for an arbitrary made-up language in a couple of hours with Parrot. 19:27
japhb cotto_work, took the words right out of my mouth
PerlJam cotto_work: if he understands PGE, NQP, Parrot and PCT ;)
or s/PGE, NQP/nqp-rx/
cotto_work Yeah. it takes a while to be able to it in a couple hours.
darbelo ash_: The idea here is to use parrot's (very cool, shiny, attractive to academics) compiler construction tools to build a compiler that turns the ops (or PMC) made up language into so-fast-it-hurts lorito ops (or C, since we don't have lorito ops yet.) 19:29
PerlJam someone still needs to write the lorito compiler too, n'est pas? 19:32
ash_ so during the compilation process of a PMC to L1, it would result in a translation of the PMC to all the appropriate L1 ops, then the L1 ops are fundumentally low and translate to easy, quick things, so you can optimze there?
cotto_work PerlJam, there won't be a Lorito compiler. It'll just be a fixed set of instructions (iirc) in three-argument form. 19:33
PerlJam oh, right. I'm having a senior-moment or something :) 19:34
cotto_work ash_, yes
we plan on being able to translate Lorito (aka L1) ops into LLVM bytecode, C and various other forms. 19:35
darbelo We basically want parrot to go RISC.
ash_ yeah, got ya, thats one other thing I was curious about, the L1 seems like you could map awfully close to LLVM bytecode, which has its own pretty good set of optimization passes you can do 19:36
but step 1 before that is a working example of L1 it seems 19:37
darbelo That's (one fo the reasons) why the old JIT got the axe and we're researching into LLVM.
ash_: Yes, we need to get a prototype going and then iterate on the design until we get where we want to be. 19:38
ash_ yeah, i have been reading about the LLVM a bunch too, trying to learn how that works
darbelo Wait. Hash is soon to be renamed to AssociativePMCArray? 19:40
I had never seen that before.
moritz I hope not
darbelo It's on the checklist at the bottom of L1Recap. 19:41
Item 1.
ash_ LongNamesAreBetter? 19:42
cotto_work I remember something about that, but I've been hoping that it doesn't get implemented.
darbelo LongNameWithTLAsInThem-- 19:43
moritz AssocicativePoliMorphicContainerContainer
ash_ isn't putting PMC redundant? AssociativeArrayClassContainer 19:44
darbelo Also, 'APA' sucks a lot more than 'RPA', as far as contractions go.
moritz so what's wrong with "hash"? just the perl origins? 19:45
darbelo perl didn't invent hashes. I'm pretty sure the 'hash' data structure is a bit older than that. 19:46
moritz sure, but perl exposed it to the user as a name
ash_ beats me, lots of languages have hashes and they are generally called a hash (or dictionary)
moritz most other languages use another term that hides the implementation
dictionaries, maps, associative $stuff, whatever 19:47
darbelo Fine, call it a map. You save characters and all. 19:49
moritz and confuse every programmer who thinks of map() as a function ;-)
(maybe the bikeshedding live on eternally :) 19:50
darbelo Yes, intentianally.
ash_ i always thought you used a map to get from point A to point B
moritz ash_: you're so web 1.0 ;-)
darbelo ash_: Yes, for A=Key, B=stored value. 19:51
ash_ boots up my Windows 95 VM to play some really old video games
cotto_work There's only one good way to boot a Windows 95 machine, virtual or otherwise. 19:53
japhb wonders if he still has a working floppy drive with which to install some DOS games in a dosbox.
cotto_work, with a steel reinforced toe? 19:54
cotto_work yes
19:54 xenoterracide joined
darbelo still has an old Compaq Net/1 running DOS at home. 19:56
ash_ still has the Neverhood's original install disk, and the Day of the Tentacle 19:57
japhb DotT! nice 19:58
ash_ so, um... if i had any other big questions about this, who should i talk to? the mailing list?
japhb I think I have the original Wing Commander around here somewhere.
Coke mailing list is usually good, yes.
20:00 xenoterracide joined
Coke I think the rename away from hash is basically just marketing. 20:02
"avoid looking like we just do perl." 20:03
but I could be mistaken.
cotto_work That's my impression.
darbelo Can we do marketing without typing TooLongPMCTypeNames, please? 20:04
dalek rrot-linear-algebra: b96e385 | (Markus Mayr)++ | config/Makefile.in:
Fixed an error in Makefile.in. We changed to src/pmc/ but still included that directory. This resulted in a "No such file or directory" message.
20:05
rrot-linear-algebra: 1b3b5f7 | (Markus Mayr)++ | (3 files):
Added a first version of the multiply method. Tests are still missing but there is an example in examples/. Also fixed some bugs (mostly typos and syntax errors). get and set methods do not respect the transposed flag yet.
20:11 davidfetter joined 20:12 dduncan joined 20:13 dduncan left
darbelo wonders about the transopsed flag and Complex data. 20:13
desertm4x: Do you think it's worth it to make that flag men 'hermitian' with Complex values? 20:14
*mean
Coke hermitian? 20:21
moritz self-adjoint
darbelo: you can really have both, so it's worth keeping separate flags around
darbelo conjugated transpose.
Coke darbelo: see trac.parrot.org/parrot/ticket/679 if you'd like to add a comment. 20:22
darbelo moritz: And just conjugate if both are set? Error out? kick the programmer in the nuts? 20:23
moritz or one flag for conjugated, one for transposed 20:24
20:24 joeri left
darbelo Oh sorry, I thought you meant transpose and hermitian. 20:24
moritz that's what I said, but not what I meant ;-) 20:26
chromatic I first read that as Hadrian, but that's what you get for studying a lot more history than maths. 20:27
Coke rockys, "HAAAAAAAAAAAAAAAAAADRIAN!"
moritz gesundheit!
dukeleto what is going on with hermitian vs. symmetrc? 20:31
moritz proposed to have separate flags for symmetric and conjugated
darbelo dukeleto: We have a 'transposed' flag on the parrot-linear-algebra matrix class, to avoid moving stuff about in memory. 20:32
Coke pmichaud: in retrospect, I should have just asked you instead of commenting on all three tickets. 20:34
darbelo As cblas can handle both row-major and col-major data we avoid the trasnposing by clever use of the flag.
dukeleto: I was wondering if we should make that flag mean transposed-and-conjugated for Complex matrices. 20:35
ash_ has anyone found out why cloning in a HLL crashes parrot yet? 20:36
darbelo thinks he remembers a ticket by Austin about that. 20:38
jonathan I'm suspecting the issue is a tad more speicifc than that. ;-) 20:39
ash_ trac.parrot.org/parrot/ticket/757 is the ticket
Coke I clone stuff in tcl, I'm pretty sure.
jonathan Right.
And we in Rakudo too. :-)
ash_ err
i said cloning, i meant threading 20:40
ash_ *facepalm*
Coke ah. because threading is experimental?
partcl isn't using it, so I'm not a good person to ask. =-) 20:41
dukeleto darbelo: separate is better for performance
darbelo: there are algorithms that are specific to real matrices only, which is what the symmetric flag is for, and other algorithms for complex, which is where the hermitian flag would be for
darbelo dukeleto: We'll have separate matrix classes for FLOATVAL and Complex. 20:42
dukeleto darbelo: hmm. are floatval's assumed to be real? 20:43
darbelo Yep, you wanted them imaginary? 20:44
I was wondering about CblasTrans and CblasConjTrans, in cblas-speak.
desertm4x Yes, me too.
dukeleto darbelo: no, just noting that the name "FLOATVAL" doesn't immediately tell me that it must be "real" 20:45
20:45 MoC joined
dukeleto darbelo: yes CblasTrans use floatvals, and CblasConjTrans use Complex 20:45
Coke RT down to 141 tickets.
dukeleto Coke++
20:45 MoC joined
darbelo Well, it's actaully a double, but parrot likes to call it that. 20:45
:)
Hmm, does parrot-linear-algebra check that FLOATVAL sizes are what we think they are? 20:47
dukeleto darbelo: probably doesn't
doubles are very different from floats
and there are cblas routines for each
we should probably have something like ComplexDouble and ComplexFloat 20:48
Coke ETOOMANYTYPES
(or are these for an HLL) 20:49
darbelo Coke: many HLLs (a linear algebra library)
Coke k. we already have too many parrot PMCs. that is all. =-) 20:50
darbelo Coke: External library. We provide matrix/vector PMCs, based on cblas.
Coke pmichaud: when I'm using nqp-rx, is it just going to be an executable from my standpoint? 20:51
(for partcl)
(figure I can build in an optional configure probe for it now.) 20:52
darbelo $P0 = loadlib "linalg_group" \\n $P1 = new 'NumMatrix2D' 20:53
after ' $P0 = loadlib "linalg_group" ' if $P0 is non-null you have it. 20:54
it's an easy probe.
dukeleto darbelo: I like it 20:57
Coke: I understand that "too many types" issue, but if you want performant linear algebra, you call different functions for every different type combination 20:58
Coke: at least in CLBAS
CBLAS, even
dalek p-rx: 88ab936 | pmichaud++ | src/ (6 files):
[nqp]: Add code assertions to nqp.
darbelo dukeleto: Well, that's how parrot library loading works.
dukeleto darbelo: I don't like the name 'NumMatrix2D', are we using that now? 20:59
darbelo It's whiteknight's fault.
Coke dukeleto: (performant) oh, that's fine if you're actually /getting/ the performance. I'd argue that parrot is not. =-)
darbelo blames other people.
dukeleto Coke: for HLLs, yes. But we are writing a library directly on top of Parrot for other HLLs 21:00
darbelo dukeleto: Yes, we're using that now. But I'm sure we can change it without six months notice, so it's not a big deal. 21:01
dukeleto Coke: so we are going to get a lot of performance. Or I will berate chromatic with benchmarks until we get performance ;)
darbelo dukeleto++
dukeleto i should be meeting up with chromatic at the PDX hackathon tonight, hopefully we can figure some stuff out 21:02
pmichaud Coke: yes, nqp is an executable. But other than the regex library, it has no runtime of its own. 21:03
21:05 desertm4x left
darbelo dukeleto: The "myriad of types" approach doesn't fit with parrot's "INSP" registers or VTABLE/METHOD interface. We get FLOATVAL, INTVAL and Complex (As a PMC). 21:06
Everything else is heresy.
Coke pmichaud: ok. so my probe can just check for an nqp_rx executable. 21:08
pmichaud correct.
it may be called 'nqp', though.
Coke easy enough to change. I'll start with nqp.
dukeleto darbelo: if we don't want high performance apps written on our VM, then we should continue along the current route
pmichaud Coke: my initial thought for partcl was to first move the grammar to nqp and get it to parse
dukeleto darbelo: this is the best time to fix our previous mistakes
pmichaud then we can start adding in action methods, based on tge transformations 21:09
dukeleto CBLAS is optimized based on input types. Full stop. If we don't want to support that, we are giving up lots of performance
darbelo dukeleto: Sure, but that needs to happen in the parrot core. I'm wearing the 'naysaying library developer' hat now.
Coke pmichaud: ok. I'm not sure I'll be able to do any of that without more direction. =-) 21:10
pmichaud right
Coke but I can make sure we at least have a copy of npq to start with. =-) 21:11
-> offline
pmichaud I somewhat figure that I'll do the initial grammar, then the two of us work together on the action methods, with you taking over more of the translation part as the model becomes clearer :)
*or* 21:12
we could do a lolcode rewrite as a demo, then start on partcl :)
darbelo dukeleto: I'd rather start withthe types we can make fast now. Right now that is whatever FLOATVAL is #defined to in your platform. Other stuff can come later.
dukeleto darbelo: we should design a spec for how to deal with each CBLAS-supported type. How much of the spec we want to support at once is up to us. But there should be a spec. 21:16
dalek rrot: r42164 | mikehh++ | trunk/config/auto/arch.pm:
fix codetest failure - trailing spaces
21:17
21:17 xenoterracide joined 21:18 nnunley joined
darbelo dukeleto: The only way I can think of is boxing and unboxing to PMC. We store the matrix in cblas-native format, and take that about as far as we can. Then box/unbox when dealing with the rest of parrot. 21:18
Using complex as an example. Internally (to the PMC) it should be two contiguous floats, the way FORTRAN expects them to be. But when parrot asks us to return the element at (1,3) we give back a Complex PMC. 21:21
dukeleto darbelo: that could work, as long as we don't do conversions on huge numbers of elements 21:25
dalek p-rx: 719cd0e | pmichaud++ | t/nqp/34-rxcodeblock.t:
Add tests for rx codeblocks.
21:27
darbelo The way I see it, if you are *very* careful, and our set_string_native() VTABLE is very clever, you could get performant math, provided you don't mix types and avoid indexed access in tight loops.
OTOH, with this approach, if you try to loop over the matrix and fetch-modify-store every value you'll get to pay all of the overhead *twice* on every operation *and* put som much pressure on the gc it might very well blow up on you. 21:30
mikehh All tests PASS (pre/post-config, smoke (#29505), fulltest) at r42164 - Ubuntu 9.10 RC amd64 21:33
21:33 patspam joined
mikehh actually I am up to date with Ubuntu so it's no longer RC 21:34
21:55 jan joined 22:13 patspam joined 22:14 Whiteknight joined, theory joined
Whiteknight hello 22:16
jonathan oh hai 22:17
darbelo Whiteknight: check irclog.perlgeek.de/parrot/2009-10-29#i_1661099 for some implementation ideas I was discussing with dukeleto earlier.
See how they fit in your Grand Algebraic Plan . 22:18
Whiteknight I had been planning to use consecutive values for ComplexMatrix2D 22:20
and if PIR wants to access a Complex value directly, it has to be through a Complex PMC
there's no other way to make those available from C
No other *good* way
darbelo Whiteknight: Complex is the 'easy' case. But cblas has different functions for floats and doubles, that can get ugly when FLOATVAL gets #defined to something odd. 22:22
On this box FLOATVAL is a double. On other boxes, who knows? 22:24
The other problem is: I can oly hand parrot FLOATVALs (doubles, for me), how do I work with a matrix of floats? 22:25
22:28 kid51 joined
Whiteknight the answer is we dont 22:30
the only thing we can support is the intersection between Parrot and CBLAS
we can't support CBLAS APIs that won't be accessible and usable from PIR
PIR has FLOATVAL, so that's what we can give to CBLAS 22:31
kid51 CBLAS ?
purl well, CBLAS is a good bet then
darbelo That *sucks* from a HPC perspective.
kid51 purl forget CBLAS
purl kid51: I forgot cblas
kid51 Could someone tell purl (and me) what CBLAS is? thx 22:32
darbelo purl CBLAS is a C interface to BLAS.
purl OK, darbelo.
darbelo BLAS?
purl BLAS is at www.cert.nu
kid51 That link is useless. The only thing on that page is the string 'CERT.nu' 22:33
purl forget BLAS
purl kid51: I forgot blas
22:33 ruoso joined
darbelo Ehm, no BLAS is the Basic Linear Algebra Subprograms. 22:33
BLAS is the Basic Linear Algebra Subprograms.
Whiteknight darbelo: why does that suck from HPC?
darbelo purl: BLAS is the Basic Linear Algebra Subprograms.
purl i already had it that way, darbelo.
22:34 xenoterracide joined
darbelo You are putting extra restrictions on the implementor ability to solve the problem. 22:34
kid51 purl BLAS is also at www.netlib.org/blas/
purl okay, kid51.
kid51 purl, BLAS?
purl rumour has it BLAS is the Basic Linear Algebra Subprograms. or at www.netlib.org/blas/
Whiteknight darbelo: parrot has it's own restrictions
parrot doesn't have single and double, it only has FLOATVAL 22:35
darbelo There are cases where a single is plenty enough precise to handle your data. Forcing double on people doubles the memory consumption for no good reason.
Whiteknight so the alternative is to have a second, nearly identical type that simply adds a single->FLOATVAL typecast into every operation 22:37
22:37 mikehh joined
darbelo Not really. I was thinking of 'boxing' like we'll do for complex. 22:37
22:38 xenoterracide joined
Whiteknight right. Any time we need to move a FLOATVAL from PIR into the PMC, or move a single out of the PMC into PIR, we need to cast 22:38
otherwise it's identical to NumMatrix2D
darbelo Mostly, yes. It calls functions with 's' prefix instead of 'd'. 22:39
Whiteknight you mean the CBLAS functions? 22:40
darbelo Yep. 's', 'd', 'c' and 'z' indicate the underlying type. 22:41
Whiteknight right
I worry about a few things
we're obviously going to want conversion methods to interchange between types
darbelo I would worry if you didn't :)
s2d() ? 22:42
Whiteknight s->d, s->c, s->z, d->s, d->c, d->z, etc
exactly
and I worry that it's a huge amount of namespace pollution
not to mention being highly ugly and a lot of repeat code
darbelo Doesn't parrot already do that on the packfile code?
Whiteknight it has C functions to read values from the packfile into a native type, yes 22:43
and it has a huge ugly file full of them
and I don't want that
darbelo The file's already there.
Whiteknight it's not quite the same thing
because the packfile routines are also adjusting for byteorder, and I don't think they are exported 22:44
darbelo Oh, right.
Whiteknight and, they only convert s<->d, not c or z
here's what I suggest we do: Create a "Matrix2D" abstract parent type
no, nevermind 22:45
darbelo c is two s , and z is two d
Whiteknight yes, but the conversion doesn't just copy values
okay, here's my plan: 22:46
darbelo listens
Whiteknight create a "Matrix2D" abstract parent class. It defines a "Convert_to_type" method
Convert_to_type will take a flag value with the destination type "s", "d", "c", "z". 22:47
internally, it can do a switch on type and pass off to the correct accessor
kid51 Do we have anyone who can submit a Smolder report on Cygwin? 22:48
darbelo Wait, are you talking about converting the entire matrix?
Whiteknight with that, we could also do other conversions like "rpa", "rfa", "ria", etc
darbelo: yes, creating a clone matrix of the new type
with the data in the required format
CBLAS requires data be stored internally in different formats. Different formats are going to be different PMC types 22:49
darbelo What I was after was a set of "Matrix of [sdcz]" that doesn't necessarily play nice with other types. 22:50
Whiteknight why wouldn't the different types play nice together?
and if you can't convert between them, the utility is significantly diminished
22:51 kj joined
darbelo We have the 'Super performant thin wrapper around cblas' types for the HPC crowd. The cblas functions don't mix types, neither will we, if we want performace. 22:51
And, we provide a 'play nice with parrot datatypes' matrix, for those day where you don't need *that* much speed.
Whiteknight it's not mixing. It's allowing a type conversion. It won't be high-performance, but it will be possible 22:52
I'm not sure what you mean about "place nice with parrot datatypes matrix"
NumMatrix2D plays nice with Parrot types
darbelo Yes. I'm saying we can add other matix types that aren't bound by that rule, for extra speed. 22:53
If the user is willing to live with the restrictions they carry.
NumMatrix2D is for convenience. 22:54
Whiteknight well, what's wrong with NumMatrix2D? Why can't we just improve its performance as-is?
it is intended to be a high-performance type, that's why we're doing it
RPA is for convenience
22:56 payload joined
darbelo NumMatrix2D's underlying data type is different from one platform to another. That means that the same computation will produce different results in some cases. 22:57
Whiteknight so that's a consistency issue, not a performance one 22:58
darbelo Some people are very fussy about consistency. Or memory efficiency. I want to make them happy too. 22:59
Whiteknight if we try to please everybody, we're going to end up with a huge number of types. it will be an explosion of repeat code 23:00
jonathan And then you'll have displeased the people who didn't want a huge number of types. ;-)
darbelo 4x repetition on every function. That's what BLAS does. 23:01
Whiteknight it would be more then 4x if we had parrot convenience tyeps
now, if we had a way to parameterize the PMC source, we could define it once and use it for any data type we wanted
so maybe that's what we need to do first: Take NumMatrix2D as a template, create a parameterizing pre-preparser for PMCs, and use that to make several types 23:03
darbelo Whiteknight: Yes, we could. Parrot does that for the digest PMCs.
Whiteknight Each PMC would define setter and accessor macros that convert to the underlying type
darbelo And once we're doing templating we can branch out to the non-GE BLAS functions. 23:04
Whiteknight exactly 23:05
23:05 mikehh joined
darbelo Which will be about two gazzillion PMCs, but it's generated code. We only maintain one copy. 23:05
Whiteknight we have Parrot and PGE around. We could write our own little language to define them 23:06
or whatever.
darbelo A pre-preprocessor?
dalek TT #1160 created by jkeenan++: t/compilers/tge/grammar.t: failure in 'two rules of the same name'
Whiteknight right, it preprocesses into a PMC file, which gets preprocessed into C 23:07
dalek rrot: r42165 | jkeenan++ | trunk/t/compilers/tge/grammar.t:
Add reference to TT #1160 for TODO-ed test.
23:09
kid51 darbelo: ping 23:10
darbelo Sounds good to me. Write a preprocessor and make everybody happy. Well, except Coke, but he should be used to that by now.
kid51: pong
23:10 rdice joined
kid51 Concerning r42161: It's difficult for me to judge ... 23:11
darbelo Whiteknight: But maybe the preprocessor should wait untill NumMatrix2D is mature enough to support Matrixy.
kid51 ... test #2 in t/compilers/tge/grammar.t passes for me on Darwin/PPC
... but I think the reason why the ticket was reopened was observations of failures in Smolder reports 23:12
... and, unfortunately, the links to those particular Smolder reports have been expired.
Whiteknight darbelo: I'm workin on that now, so hopefully it won't be too long
kid51 So I can't recall exactly which tests were at issue.
darbelo kid51: I was referring to the broken solaris build mentioned in TT#985 23:13
kid51: I thought you had reported that. I may be confused about that. 23:14
kid51 darbelo: I don't have access to Solaris. That's Andy Dougherty territory.
Andy I had some Solaris at one time. 23:15
darbelo I *was* confused about that. Then.
Andy: So, does r42161 help poor old Solaris 8 build? 23:16
Andy HAD
darbelo Ouch.
kid51 You might want to check in with dukeleto; he opened TT #985. Then I reported problems I thought might be related -- but which didn't directly bear on dukeleto's concerns.
'Andy' ne 'Andy Dougherty' 23:17
23:17 mokurai left
Andy ok, off to dinner 23:18
darbelo Well, dukeleto's concern is over-adressed now. Parrot will use gettimeofday() unless _POSIX_TIMERS is true. Which is about as safe as it gets. 23:19
But, now we have to worry about platfroms with a correct clock_gettime() that don't #define _POSIX_TIMERS.
Like mine. :) 23:20
dalek tracwiki: v40 | cotto++ | ParrotQuotes 23:23
tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
darbelo Or, looking at this from the other side: We still don't have a proper Configure.pl-time check for hires timers. Even if we have a safer default, the ticket should remain open.
cotto_work can anyone else try running the ruby version of this: asiajin.com/blog/2009/09/22/uroboro...languages/ ? I was really impressed until the ruby version died with a syntax error.
I'm suspicious because I have the exact version of ruby that's supposed to work. 23:25
dalek rrot-linear-algebra: 70000f9 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
fix the destroy VTABLE
23:29
rrot-linear-algebra: 5d04573 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
several misc cleanups. Also, fix iterate_function_inplace to compile now (needs testing)
kid51 darbelo: Okay, if you can add anything to the ticket that clarifies the issues, please do so. 23:30
ash_ cotto_work: i get an encoding error with that 23:32
ruby script, that is 23:33
cotto_work ok. I'm going to call it a sophisticated troll. 23:34
ash_ cotto_work: nope, got it working (i had extra new lines from when i copied it from the post) 23:35
worked for me, ruby 1.8.7 p 72
python one worked too 23:36
cotto_work yeah. Apparently the code is supposed to be on one line.
ash_ perl worked too, i don't have lua though 23:37
darbelo Somebody needs to save a copy of that code for the day when all of those languages run on parrot.
cotto_work It's working for me up through C. 23:38
ash_ thats umm... scary
anyway, i gotta get going, if i attempt to do anything with lorito i'll let someone know 23:40
dalek p-rx: 063d6a1 | pmichaud++ | src/ (6 files):
Remove some files we're no longer using.
23:41
p-rx: d49ead9 | pmichaud++ | (4 files):
[p6regex]: Add \\xNN, \\XNN, and \\x[NN,NN,...] to p6regexes.
p-rx: c48afee | pmichaud++ | src/Regex/P6Regex/ (2 files):
[p6regex]: Add \\oNN, \\ONN, and \\o[nn,nn,...] escapes.