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