Camelia, the Perl 6 bug

IRC log for #parrot, 2009-10-29

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:05 Whiteknight incoming
00:05 purl well, incoming is https://pause.perl.org/incoming/
00:09 dalek parrot-linear-algebra: 90a0da4 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
00:09 dalek parrot-linear-algebra: add a transpose() METHOD to NumMatrix2D
00:09 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/90a0da44b96163e259184e47211c5a313ee38c5b
00:09 dalek parrot-linear-algebra: 7bf83a9 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
00:09 dalek parrot-linear-algebra: Add a get_attr_str VTABLE with some basics
00:09 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/7bf83a9abfb67daf88adcb4eeaf800459a9dff3c
00:09 dalek parrot-linear-algebra: 779e591 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
00:09 dalek parrot-linear-algebra: 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
00:09 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/779e591226ba894c22b3c7f914fff991a2262b13
00:09 dalek parrot-linear-algebra: c22fac9 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
00:09 dalek parrot-linear-algebra: add a clone VTABLE. Also, fix the iterate_function_inplace method
00:09 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/c22fac96fdf94b1053a81d2c65eca7b190714834
00:11 NotFound If someone is bored, this is an example of what Winxed can already do: http://notfound.posterous.com/example-​of-curses-parrot-module-usage-for-win
00:15 Whiteknight wow. nice
00:15 NotFound BTW, I like posterous :)
00:25 Whiteknight that's very impressive for how young the project is
00:30 jonathan NotFound: Is it built atop of PCT?
00:31 cotto_work joined #parrot
00:32 Whiteknight joined #parrot
00:33 Whiteknight EUBUNTUCRASHED
00:34 cotto_work sounds like you're having fun
00:35 abqar joined #parrot
00:36 Whiteknight at tims
00:37 NotFound jonathan: no, is C++ hand written lexer and parser
00:41 jonathan NotFound: Ah, Ok. :-)
00:43 cotto_work who's tim? ;)
00:43 Coke tim?
00:43 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
00:43 chromatic Heh.  "patron"
00:43 plobsing what no tim the enchanter?
00:55 kid51 Let me pose a question I believe I first posed a couple of weeks back.
00:55 xenoterracide joined #parrot
00:56 kid51 If I am the *owner* of a trac ticket, shouldn't I be getting email updates when someone posts to the ticket?
00:58 xenoterracide joined #parrot
01:02 nbrown joined #parrot
01:11 xenoterracide joined #parrot
01:20 darbelo joined #parrot
01:22 darbelo Hmm. TT#652
01:23 darbelo We should make that a build error everywhere.
01:35 dalek parrot: r42160 | pmichaud++ | trunk/compilers/pct/src/PAST/Compiler.pir:
01:35 dalek parrot: [pct/past]:  Add a few more common opcode signatures, to help pir::op in nqp-rx.
01:35 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42160/
01:51 dalek parrot: r42161 | darbelo++ | trunk/config (4 files):
01:51 dalek parrot: Make CLOCK_BEST selection in hires_timer.c check if the desired clockid is #defined.
01:51 dalek parrot: This selection can still be overridden via the hints files, but the ordering of the options has rendered it unnecessary on most platforms.
01:51 dalek parrot: This should fix the Solaris 8 problems on TT#985 while still providing correct clockid selection in later solaris versions.
01:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42161/
01:52 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 #parrot
02:13 dalek nqp-rx: 501baec | pmichaud++ | src/NQP/ (2 files):
02:13 dalek nqp-rx: [nqp]:  Add statement_prefix:sym<INIT> .
02:13 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/5​01baec2b74bddd60c9ce8811ebb84a4b97759ba
02:13 dalek nqp-rx: 773419c | pmichaud++ | t/nqp/33-init.t:
02:14 dalek nqp-rx: Add test for INIT statements.
02:14 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7​73419c7f8e89aa7ecbf90d93e7f2d31b6eafec8
02:14 dalek nqp-rx: d8f4a95 | pmichaud++ | build/PARROT_REVISION:
02:14 dalek nqp-rx: Bump PARROT_REVISION.
02:14 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/d​8f4a958694d32366cfafa578795ae4248342b7e
02:23 mokurai joined #parrot
02:39 kyle_l5l joined #parrot
02:53 abqar joined #parrot
03:26 eternaleye joined #parrot
03:42 janus joined #parrot
04:04 eternaleye joined #parrot
04:11 cotto pmichaud_, does "blorst" mean anything?
04:11 cotto blorst?
04:22 dalek nqp-rx: acc9532 | pmichaud++ | src/NQP/Grammar.pm:
04:22 dalek nqp-rx: [nqp]:  Allow regexes to take parameters.
04:22 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/a​cc95327f03d0a1b236d3a4ab826c866a9ee0f39
04:22 dalek nqp-rx: e259ff0 | pmichaud++ | src/stage0/ (3 files):
04:22 dalek nqp-rx: Update bootstrap to include parameterized regexes.
04:22 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/e​259ff054f8de1ec728d9aeefda6f25d06868df3
04:23 xenoterracide joined #parrot
04:48 xenoterracide joined #parrot
04:56 xenoterracide joined #parrot
05:36 pmichaud_ cotto: blorst == "block or statement"
05:36 pmichaud_ cotto: it comes straight from STD.pm
05:36 pmichaud_ (i.e., I didn't make it up)
05:38 cotto It makes sense in a TimToady kind of way
05:50 iblechbot joined #parrot
06:05 eternaleye joined #parrot
06:07 dalek nqp-rx: 67e897d | pmichaud++ | src/ (2 files):
06:07 dalek nqp-rx: Use $*ACTION contextual instead of $!action cursor attribute (from STD.pm)
06:07 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/6​7e897df22db3f27548d3c04523f36671ce773e3
06:07 dalek nqp-rx: 414f6a0 | pmichaud++ | src/stage0/ (3 files):
06:07 dalek nqp-rx: Update bootstrap.
06:07 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/4​14f6a06606e6d3b0bbe9423e6a3e6bd9c8c6e64
06:10 xenoterracide joined #parrot
06:15 theory joined #parrot
06:19 xenoterracide joined #parrot
06:26 cotto coverage?
06:26 purl coverage is http://cv.perl6.cz
06:29 * 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 #parrot
06:54 darbelo joined #parrot
06:55 cotto jonathan, ping
06:57 cotto jonathan, unping.  I'll catch you later.  It's time for sleep.
07:05 Zak joined #parrot
07:06 mokurai left #parrot
07:09 cotto Hmmm.  Only two VTABLE functions in MultiSub get any exercise at all.
07:15 uniejo joined #parrot
07:27 fperrad joined #parrot
07:28 * darbelo is bored.
07:30 dalek parrot: r42162 | darbelo++ | trunk/config/init/defaults.pm:
07:30 dalek parrot: Give @clock_best@ an empty default value. This prevents a warning about undef values during makefile generation.
07:30 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42162/
07:33 einstein joined #parrot
07:54 Ron joined #parrot
08:12 chromatic msg whiteknight http://morepypy.blogspot.com/​2009/10/gc-improvements.html
08:12 purl Message for whiteknight stored.
08:17 dalek rakudo: 27e0d69 | moritz++ | src/setting/Complex.pm:
08:17 dalek rakudo: sign(Complex) fails. Closes RT #60674
08:17 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​7e0d69c8f4927eb3df3087ca12b8b1cb616365f
08:26 joeri joined #parrot
08:35 jsut joined #parrot
08:46 nbrown joined #parrot
08:48 particle joined #parrot
08:48 eternaleye joined #parrot
08:58 uniejo joined #parrot
09:02 jonathan_ joined #parrot
09:02 dukeleto_ joined #parrot
09:02 dalek joined #parrot
09:04 bacek joined #parrot
09:04 bacek o hai
09:06 pmichaud_ joined #parrot
09:12 Util joined #parrot
09:12 PerlJam joined #parrot
09:30 whiteknight joined #parrot
09:31 whiteknight ionxlive123
09:31 whiteknight (wrong window)
09:32 JimmyZ joined #parrot
09:32 whiteknight purl msg chromatic: great article. Thanks!
09:32 purl Message for chromatic stored.
09:36 bacek_ joined #parrot
09:44 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 #parrot
11:16 KatrinaTheLamia joined #parrot
11:36 bacek joined #parrot
11:55 payload joined #parrot
11:57 fperrad_ joined #parrot
11:57 whiteknight joined #parrot
11:58 whiteknight good morning again, #parrot
12:00 fperrad joined #parrot
12:03 plobsing joined #parrot
12:05 whiteknight in the past 24 hours, I've deleted more data then I've ever created
12:06 moritz what did you do? wipe out a storage server?
12:12 payload joined #parrot
12:12 jonathan Or maybe got hired by Geocities. ;-)
12:12 masak joined #parrot
12:13 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 whiteknight second, we had an archive server fill up it's storage disk, so I had do delete about 1.2billion rows from the table
12:13 whiteknight (with a "b")
12:14 payload1 joined #parrot
12:14 whiteknight so in the past nine hours, I've purposefully deleted about 320GB of data
12:15 whiteknight ...and counting
12:15 jonathan The joy of sysadmin.
12:15 whiteknight I've learned more about MSSQL transaction logs in the past 10 hours then I ever cared to know
12:16 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
12:16 moritz hehe
12:17 whiteknight DELETE FROM [dbo].[DATA] WHERE data_uid < 1200000000
12:17 jonathan eww
12:17 whiteknight it's naive, I know
12:18 jonathan It's OK, I'd have done the same first. :-)
12:19 jonathan And noticed...huh...why'd the transaction log disk just fill..
12:19 jonathan :-/
12:19 whiteknight Yeah, I learned it was going to be a problem about 2 hours into the process (Currently at hour 9)
12:20 whiteknight so I did the naive solution: added logfiles on other disks.
12:20 whiteknight lots of other disks
12:20 whiteknight coming up on 200GB of logfiles now, and have at least 100GB of free space left
12:21 moritz whiteknight: I know that problem on a smaller scale with mysql
12:21 moritz mysql has this nice feature that if you're low on disk space, it tells you that
12:22 moritz by writing into the log file
12:22 moritz for every write operation
12:22 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
12:22 whiteknight I just want to kill it, or as much of it as I can
12:22 moritz and if the logfile is on the same partition as the data
12:22 whiteknight I'm sure LOLSQL would have a "SRSLY" keyword I could use
12:22 moritz and that partition grows full
12:22 moritz you want to insert some rows
12:23 moritz disk full, still some insert transactions pending
12:23 moritz so you delete stuff to make space
12:23 bluescreen joined #parrot
12:23 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... :-)
12:23 whiteknight github!
12:23 whiteknight (that's my answer for everything)
12:25 jonathan whiteknight: aye, good idea.
12:25 jonathan whiteknight: hey, you could send you transaction logs there too ;-)
12:26 whiteknight WAAAAYYY over the repo size limit
12:26 moritz how much is that btw? 50M?
12:27 whiteknight 300MB
12:27 whiteknight per user
12:27 purl i guess per user is release quality, IMHO
12:27 whiteknight purl forget per user
12:27 purl whiteknight: I forgot per user
12:41 payload joined #parrot
12:52 JimmyZ joined #parrot
12:53 bluescreen joined #parrot
12:59 fperrad joined #parrot
13:10 particle joined #parrot
13:20 bluescreen joined #parrot
13:25 rdice joined #parrot
13:25 bacek_at_work joined #parrot
13:38 barney joined #parrot
13:40 ash_ joined #parrot
13:50 payload joined #parrot
13:50 fperrad_ joined #parrot
14:05 nnunley joined #parrot
14:06 fperrad_ joined #parrot
14:07 bacek_at_work joined #parrot
14:10 iblechbot joined #parrot
14:12 ash_ joined #parrot
14:18 Essobi WEEE!
14:27 * Coke fixes installing on his OS/X box.
14:27 Coke (by removing the previously installed version.)
14:32 Coke src/hash.c:1497: failed assertion 'value'
14:33 mikehh joined #parrot
14:42 Andy Coke: That means that "value" evaluates to false.
14:42 Andy I don't have anything useful to add, but I feel like I should.
14:42 Andy WHO MISSED ME?
14:44 Patterner I. Which made me practice even harder.
14:47 Andy Oh, look, I can add two consts to src/hash.c
14:47 Andy I feel born anew!
14:49 Coke Andy: can you look at RTs # 39085 and #39917 and either reject them or migrate them over to trac?
14:50 Coke msg pmichaud_ Don't forget to check your pmichaud messages. =-)
14:50 purl Message for pmichaud_ stored.
14:50 Andy Thank goodness we're bailing on RT. :-)
14:51 Coke Andy: yah, it's so much more efficient this way. :|
14:51 Coke (how long has trac been open for business now, and we still have 144 tickets left in RT?)
14:51 Andy Coke: Can you assign those tickets to me?
14:51 Andy I can't look now
14:52 Coke Andy: roger.
14:58 Coke do we have /any/ emacs users?
14:59 Coke (that hack on parrot)
15:00 dalek TT #1159 created by jhoblitt++: make distcheck target
15:00 * Coke tries to dig up an emacs expert elsewhere.
15:03 theory joined #parrot
15:04 dalek lua: 42cf96c | fperrad++ | src/POSTGrammar.tg:
15:04 dalek lua: funcname must be escaped,
15:04 dalek lua: when code comes from loadstring
15:04 dalek lua: review: http://github.com/fperrad/lua/commit/42​cf96c853029c99fe84027537d8250b192179a0
15:06 Andy Whoo!  Code changes!  The janitor is in the house!
15:06 Andy Ok, perhaps that's a little too excited for what I committed. :-)
15:07 kj joined #parrot
15:08 dalek parrot: r42163 | petdance++ | trunk/src/hash.c:
15:08 dalek parrot: const a couple of locals, and remove unnecessary braces
15:08 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42163/
15:08 Psyche^ joined #parrot
15:18 particle Andy: no word back from coverity on access, but whiteknight has given me his credentials temporarially
15:19 particle only 11 remaining items in tier 2, iirc
15:19 whiteknight yeah, temporarily. I take them back in a few days
15:23 pmichaud_ Coke: I apparently have only 3 messages?
15:23 pmichaud_ oh, right, "pmichaud"
15:23 pmichaud_ for some reason I can't switch to my 'pmichaud' (no underscore) nick
15:24 Coke pmichaud_: because someone is already connected to the server with that nick.
15:24 pmichaud_ right, and it appears to be me.
15:24 pmichaud_ I'm guessing zombie processes on feather
15:26 particle freenode has nickserv, which lets you ghost
15:26 particle on irc.perl.org, you'll need an ircop to help
15:26 Coke anyway, if you can close out that RT (I hope) +1
15:26 particle contact mst
15:26 pmichaud_ which RT?
15:26 pmichaud_ (none of my 3 messages mention an rt)
15:27 Coke pmichaud_: the one to pmichaud did. =-)
15:27 Coke hang on.
15:27 purl hang on. is this actually "session is still there but user has been deleted" ?
15:27 moritz purl: forget hang on.
15:27 purl moritz, I didn't have anything matching hang on
15:27 Coke RT #47970
15:27 Coke the wierd ccache/json issue.
15:27 Coke you were the only one that could reproduce so, so if you can't now, we can close it. =-)
15:28 Coke (reproduce /it/)
15:28 pmichaud_ I've not reproduced it since I reported it
15:28 pmichaud_ so, I think we close it.
15:29 Coke danke.
15:29 Coke I'll take care of it.
15:29 pmichaud_ Coke++
15:29 jonathan .oO( remembers "Can not reproduce" from xkcd )
15:30 dalek nqp-rx: 7d38dff | pmichaud++ | src/ (4 files):
15:30 dalek nqp-rx: Add <LANG> subrule for handling language braids and actions.
15:30 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7​d38dff1a876735f27bc8a85b2b8d4a0644170e6
15:30 dalek nqp-rx: 3d8df04 | pmichaud++ | build/Makefile.in:
15:30 dalek nqp-rx: Slight reordering of build sequence.
15:30 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/3​d8df0455cefb998d87e4caa813d669b8486a193
15:30 dalek nqp-rx: ef8e140 | pmichaud++ |  (2 files):
15:30 dalek nqp-rx: PBC refactor #1 -- create Regex.pbc .
15:30 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/e​f8e140efdf0373822fdd73ed5b93c1ce155ba52
15:30 dalek nqp-rx: ca98719 | pmichaud++ |  (7 files):
15:31 dalek nqp-rx: More .pbc refactoring and bootstrapping.
15:31 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​a987192113fef00b6b8a2e8dba8761209137005
15:31 dalek nqp-rx: 7515ff5 | pmichaud++ |  (3 files):
15:31 dalek nqp-rx: More library refactoring, final stage of bootstrap.
15:31 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7​515ff5abd606287b7fca21906be5ad30d2dd1bf
15:31 dalek nqp-rx: d526e5f | pmichaud++ | build/Makefile.in:
15:31 dalek nqp-rx: Eliminate HLLGrammar.pbc from build -- it's now HLL.pbc .
15:31 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/d​526e5fdfd525266d19ee00db8e81798a546fa9b
15:32 dalek lua: 4f0ef18 | fperrad++ | src/grammar51.pir:
15:32 dalek lua: improve nested long string or/and comment
15:32 dalek lua: review: http://github.com/fperrad/lua/commit/4f​0ef1849494c70811969c7d2e82a7df81e0dbb4
15:42 whiteknight joined #parrot
15:47 * whiteknight hates MS SQL
15:47 whiteknight just sharing
15:47 jonathan More than MySQL? ;-)
15:48 jonathan Or a different kind of hate? ;-)
15:48 dalek nqp-rx: 3428caa | pmichaud++ |  (4 files):
15:48 dalek nqp-rx: [p6regex]:  Eliminate src/cheats/p6regex-grammar.pir, they're now P6 source.
15:48 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/3​428caac00ae4f85c475c03aa1e1ad2ebe0efc60
15:50 whiteknight I don't use MySQL enough to hate it
15:50 whiteknight In fact, my few dealings with it were always relatively pleasant
15:56 dukeleto 'ello
15:56 whiteknight hello duke
15:56 dukeleto whiteknight: when you start to need real transactions and strict foreign key checking, mysql shows it's ugly warts
15:57 whiteknight I don't use tools that have ugly warts
15:57 whiteknight I stick to C
15:57 whiteknight :)
16:03 jonathan Yeah, having a type system would be a terrible wart. ;-)
16:05 desertm4x joined #parrot
16:05 whiteknight I prefer the "less is happening then I expect" problem over the "more is happening than I expect"
16:05 whiteknight I don't like magic, or most sideeffects
16:05 dalek nqp-rx: 3a49ad1 | pmichaud++ | src/stage0/ (3 files):
16:05 dalek nqp-rx: Update bootstrap files.
16:05 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/3​a49ad1863d13488ec0a7513bf708fb5a2733151
16:06 whiteknight small preference, of course. When I have to write a program of any substance I don't use C
16:18 cotto_work good morning
16:19 whiteknight hello cotto_work
16:22 dalek TT #476 reopened by coke++: Binaries should not contain rpath
16:44 he TT#476: that's a platform-specific (Linux-specific) argument.
16:46 Coke I see a proposal by andy d that is pretty much never addressed by anyone in there.
16:46 Coke linux or not, we should answer that question before shutting down the ticket.
16:47 he "my" platform requires rpath of shared library is installed elsewhere than /lib or /usr/lib.
16:49 Coke this isn't about the installed stuff.
16:49 Coke it's about the /build/ directory.
16:50 mj41 joined #parrot
16:52 he mm, I see (half-way through reading the ticket)
16:56 desertm4x joined #parrot
16:57 darbelo joined #parrot
17:06 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
17:06 purl 1
17:06 whiteknight desertm4x: that's actually not a bad idea
17:06 whiteknight we do have ROWMAJOR and COLMAJOR macros available
17:07 whiteknight the BLAS APIs also take a "transposed" flag for their APIs, I think
17:08 darbelo whiteknight: cblas can operate on both formats dues to the FORTRAN <-> C conversion
17:08 whiteknight so that could work out quite nicely
17:08 desertm4x If you agree, I am going to add that flag and implement matrix multiplication for our matrix type.
17:08 whiteknight please do
17:08 whiteknight If you do some of the core VTABLEs and stuff, I can update some of the new methods I've added
17:09 whiteknight I haven't even really tested them yet, so you dont need to clean up after me
17:21 ruoso joined #parrot
17:23 * darbelo freaking hates 'negative' impedances.
17:24 whiteknight what do you mean by that?
17:26 darbelo I just came across a clever circuit that uses opamps to fake a negative resistor.
17:27 darbelo Which was placed next to a 'real' positive resistor of the same value.
17:27 chromatic joined #parrot
17:27 whiteknight oh awesome
17:27 whiteknight if there is one thing I don't miss doing, it's circuits
17:27 darbelo My circuit analysis package was unamused by it.
17:28 whiteknight unamused in the crashy kind of way?
17:28 mokurai joined #parrot
17:29 darbelo Nah, just a big, nasty, misleading error message.
17:30 darbelo My guess, the numerical solver wasn't expecting a singular matrix.
17:31 * darbelo goes afk.
17:36 Coke wow, that brings me back. (computer & systems engineering degree)
17:38 whiteknight it's a fun degree
17:40 chromatic dukeleto, is there a hackfest at the Lucky Lab tonight?
17:51 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)
17:51 dukeleto chromatic: i haven't been able to do the benchmarks yet, but they are high on my list
17:51 dukeleto chromatic: also, i could show you how to set it up and free you from my bondage of slow response
17:52 dukeleto 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 dukeleto s/know/now/
17:54 whiteknight know now? no how
17:55 dukeleto desertm4x: +1 on using proper blas routines
17:55 whiteknight yes, he's very helpful
17:55 dukeleto i am going to have to backlog for about a week. oy vey.
17:55 whiteknight desertm4x++
17:56 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 mikehh joined #parrot
17:59 dukeleto chromatic: sounds like a date. when are you planning on arriving?
17:59 chromatic 7-ish
18:06 pmichaud joined #parrot
18:07 pmichaud yay, got my nick back.
18:09 jonathan .oO( wonder who nicked it )
18:10 PerlJam the *other* pmichaud
18:14 pmichaud my irssi client got in a weird state on feather
18:14 pmichaud so it was holding a connection open with the 'pmichaud' nick
18:16 dukeleto pmichaud: let me know when you want me to run plumage's test suite against nqp_rx
18:17 pmichaud dukeleto: it's probably ready (or close to it) now
18:25 dalek nqp-rx: 7c48517 | pmichaud++ | src/NQP/ (2 files):
18:25 dalek nqp-rx: [nqp]:  Enable :my declarations in regexes.
18:25 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7​c485174ec3ec8196d4545073e3e3a690b14b598
18:25 Tene man, all this exciting shit going on, and I'm stuck going to a movie tonight.
18:26 xenoterracide joined #parrot
18:27 cotto_work better be a good movie ;)
18:27 Tene Serenity.
18:27 purl rumour has it serenity is Quite Good.  Go see it
18:27 Tene apparently purl approves.
18:27 darbelo I liked it.
18:28 darbelo But I have weird taste in movies.
18:29 whiteknight I never saw Serenity
18:30 bacek joined #parrot
18:31 treed You're seeing serenity in a theatre?
18:32 Tene Yeah.
18:32 Tene http://www.brewvies.com/
18:33 einst31n joined #parrot
18:34 cotto_work Cool.  Now we have the improved l33t3r einstein.
18:34 einst31n hello :)
18:35 moritz 31n5t31n? ;-)
18:35 darbelo H3l0, j00 m34n?
18:35 einst31n I forget to log out at work :)
18:40 einst31n how can I see in the wiki from where a page is referenced?
18:41 einst31n shall i place a link to the MakeEveryPMCAnObject on the main wiki page?
18:41 darbelo einst31n: +1
18:41 purl 1
18:42 einst31n ok i will add under tasklist and project
18:43 dalek tracwiki: v113 | jessevdam++ | WikiStart
18:43 dalek tracwiki: add link to MakeEveryPMCAnObject wiki page
18:43 dalek tracwiki: https://trac.parrot.org/parrot/wiki/W​ikiStart?version=113&amp;action=diff
18:45 dalek rakudo: 4320479 | jonathan++ |  (10 files):
18:45 dalek rakudo: First cut of implementing unpacking of arguments with nested signatures. Supports arrays, hashes and objects.
18:45 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​320479f9e8139112a5054079b29cc44e8610c5a
18:47 Zak joined #parrot
18:47 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.
18:48 ash_ k
18:50 * 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
18:53 dalek tracwiki: v1 | jessevdam++ | MakeEveryPMCAnObjectQuestions
18:53 dalek tracwiki: creation of question page
18:53 dalek tracwiki: https://trac.parrot.org/parrot/wiki/MakeEveryP​MCAnObjectQuestions?version=1&amp;action=diff
18:53 dalek tracwiki: v4 | jessevdam++ | MakeEveryPMCAnObject
18:53 dalek tracwiki: link to question page
18:53 dalek tracwiki: https://trac.parrot.org/parrot/wiki/MakeE​veryPMCAnObject?version=4&amp;action=diff
18:53 pmichaud http://gist.github.com/221691  # another nqp-rx present
18:53 einst31n I added a question page so any body can place question there so i can anwer them
18:55 japhb pmichaud: ooooh ....
18:55 pmichaud japhb: guess what comes next...?  ;-)
18:55 japhb Can 'has $!foo' ?
18:55 pmichaud actually,   <?{ code assertion }>
18:56 japhb awww.  Still cool though.  ;-)
18:56 pmichaud but 'has $!foo' should be ready tonight.
18:56 japhb EXCELLENT.  That's the one I'm waiting for.
18:56 japhb It's close enough now that I probably ought to start laying out my classes in preparation.
18:56 pmichaud I needed to be able to do :my declarations in order to do 'has $!foo' properly.
18:58 japhb Now we just need to get (jhorwitz?) to do mod_nqp ...
18:59 cotto_work This refactor is going to make nqp a joy to use.
18:59 cotto_work now if only you could get rid of := ...
18:59 japhb Indeed.
18:59 japhb (re: joy to use)
19:00 japhb := 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.
19:00 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
19:01 japhb 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.
19:01 cotto_work +a lot
19:09 ash_ what format are PBC's in?
19:10 jonathan Parrot Bytecode
19:10 purl Parrot Bytecode is probably the binary
19:11 jonathan ash_: The bytecode PDD specifies it.
19:11 PerlJam ash_: why do you ask?
19:11 ash_ curiosity mostly
19:12 ash_ trying to understand how all the compliation stuff in parrot works, and how lorito is related, etc..
19:13 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 cotto_work same for PMCs
19:13 ash_ i know, i have read that part
19:13 einst31n can someone tell me where I can find a full description of lorito plan?
19:14 PerlJam einst31n: see cotto_work above   ;-)
19:15 einst31n I know it is not implemented yet, but is there description of the plan somewhere? Or do i miss something :$
19:16 darbelo https://trac.parrot.org/parrot/wiki/L1Recap
19:16 cotto_work yeah, that
19:16 purl Sure, that.
19:16 cotto_work botkick
19:17 einst31n thanks
19:17 einst31n Sorry, i have to go, i have board my plane:)
19:17 darbelo It might be outdated-ish, as some of the details are still in flux.
19:17 cotto_work Lorito was fka L1
19:19 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.
19:20 cotto_work figuring out which ops lorito needs would be a good starting point.
19:20 * darbelo waits for the askers.
19:20 ash_ i'd like to help
19:21 ash_ 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 ash_ one can dream though
19:23 cotto_work ash_, what school?
19:23 darbelo The 'PMCs in NQP' step is the most compiler-ish part of the whole thing.
19:24 darbelo 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?
19:24 ash_ Auburn University (in alabama)
19:24 bacek cotto_work, because Ops are smaller.
19:25 PerlJam ash_++  (just for thinking about it)
19:25 cotto_work bacek, right.  Why did we stop working on the ops?
19:25 * darbelo had forgotten about the ops.
19:25 bacek cotto_work, sidetracked by other projects...
19:25 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
19:26 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.
19:27 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
19:27 PerlJam cotto_work: if he understands PGE, NQP, Parrot and PCT  ;)
19:27 PerlJam or s/PGE, NQP/nqp-rx/
19:27 cotto_work Yeah.  it takes a while to be able to it in a couple hours.
19:29 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:32 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?
19:33 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:34 PerlJam oh, right.   I'm having a senior-moment or something  :)
19:34 cotto_work ash_, yes
19:35 cotto_work 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.
19:36 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:37 ash_ 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.
19:38 darbelo 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
19:40 darbelo Wait. Hash is soon to be renamed to AssociativePMCArray?
19:40 darbelo I had never seen that before.
19:40 moritz I hope not
19:41 darbelo It's on the checklist at the bottom of L1Recap.
19:41 darbelo Item 1.
19:42 ash_ LongNamesAreBetter?
19:42 cotto_work I remember something about that, but I've been hoping that it doesn't get implemented.
19:43 darbelo LongNameWithTLAsInThem--
19:43 moritz AssocicativePoliMorphicContainerContainer
19:44 ash_ isn't putting PMC redundant? AssociativeArrayClassContainer
19:44 darbelo Also, 'APA' sucks a lot more than 'RPA', as far as contractions go.
19:45 moritz so what's wrong with "hash"? just the perl origins?
19:46 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
19:46 ash_ beats me, lots of languages have hashes and they are generally called a hash (or dictionary)
19:46 moritz most other languages use another term that hides the implementation
19:47 moritz dictionaries, maps, associative $stuff, whatever
19:49 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 ;-)
19:50 moritz (maybe the bikeshedding live on eternally :)
19:50 darbelo Yes, intentianally.
19:50 ash_ i always thought you used a map to get from point A to point B
19:50 moritz ash_: you're so web 1.0 ;-)
19:51 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
19:53 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.
19:54 japhb cotto_work, with a steel reinforced toe?
19:54 cotto_work yes
19:54 xenoterracide joined #parrot
19:56 * darbelo still has an old Compaq Net/1 running DOS at home.
19:57 * ash_ still has the Neverhood's original install disk, and the Day of the Tentacle
19:58 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?
19:58 japhb I think I have the original Wing Commander around here somewhere.
19:58 Coke mailing list is usually good, yes.
20:00 xenoterracide joined #parrot
20:02 Coke I think the rename away from hash is basically just marketing.
20:03 Coke "avoid looking like we just do perl."
20:03 Coke but I could be mistaken.
20:03 cotto_work That's my impression.
20:04 darbelo Can we do marketing without typing TooLongPMCTypeNames, please?
20:05 dalek parrot-linear-algebra: b96e385 | (Markus Mayr)++ | config/Makefile.in:
20:05 dalek parrot-linear-algebra: 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 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/b96e385faea551fe35d32125d165c4cce80fbe5c
20:05 dalek parrot-linear-algebra: 1b3b5f7 | (Markus Mayr)++ |  (3 files):
20:05 dalek parrot-linear-algebra: 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:05 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/1b3b5f7c0689080d7f24a87389fd771cf736b28a
20:11 davidfetter joined #parrot
20:12 dduncan joined #parrot
20:13 dduncan left #parrot
20:13 * darbelo wonders about the transopsed flag and Complex data.
20:14 darbelo desertm4x: Do you think it's worth it to make that flag men 'hermitian' with Complex values?
20:14 darbelo *mean
20:21 Coke hermitian?
20:21 moritz self-adjoint
20:21 moritz darbelo: you can really have both, so it's worth keeping separate flags around
20:21 darbelo conjugated transpose.
20:22 Coke darbelo: see https://trac.parrot.org/parrot/ticket/679 if you'd like to add a comment.
20:23 darbelo moritz: And just conjugate if both are set? Error out? kick the programmer in the nuts?
20:24 moritz or one flag for conjugated, one for transposed
20:24 joeri left #parrot
20:24 darbelo Oh sorry, I thought you meant transpose and hermitian.
20:26 moritz that's what I said, but not what I meant ;-)
20:27 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!"
20:27 moritz gesundheit!
20:31 dukeleto what is going on with hermitian vs. symmetrc?
20:31 * moritz proposed to have separate flags for symmetric and conjugated
20:32 darbelo dukeleto: We have a 'transposed' flag on the parrot-linear-algebra matrix class, to avoid moving stuff about in memory.
20:34 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.
20:35 darbelo dukeleto: I was wondering if we should make that flag mean transposed-and-conjugated for Complex matrices.
20:36 ash_ has anyone found out why cloning in a HLL crashes parrot yet?
20:38 * darbelo thinks he remembers a ticket by Austin about that.
20:39 jonathan I'm suspecting the issue is a tad more speicifc than that. ;-)
20:39 ash_ https://trac.parrot.org/parrot/ticket/757 is the ticket
20:39 Coke I clone stuff in tcl, I'm pretty sure.
20:39 jonathan Right.
20:39 jonathan And we in Rakudo too. :-)
20:39 ash_ err
20:40 ash_ i said cloning, i meant threading
20:40 * ash_ *facepalm*
20:40 Coke ah. because threading is experimental?
20:41 Coke partcl isn't using it, so I'm not a good person to ask. =-)
20:41 dukeleto darbelo: separate is better for performance
20:41 dukeleto 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
20:42 darbelo dukeleto: We'll have separate matrix classes for FLOATVAL and Complex.
20:43 dukeleto darbelo: hmm. are floatval's assumed to be real?
20:44 darbelo Yep, you wanted them imaginary?
20:44 darbelo I was wondering about CblasTrans and CblasConjTrans, in cblas-speak.
20:44 desertm4x Yes, me too.
20:45 dukeleto darbelo: no, just noting that the name "FLOATVAL" doesn't immediately tell me that it must be "real"
20:45 MoC joined #parrot
20:45 dukeleto darbelo: yes CblasTrans use floatvals, and CblasConjTrans use Complex
20:45 Coke RT down to 141 tickets.
20:45 dukeleto Coke++
20:45 MoC joined #parrot
20:45 darbelo Well, it's actaully a double, but parrot likes to call it that.
20:45 darbelo :)
20:47 darbelo Hmm, does parrot-linear-algebra check that FLOATVAL sizes are what we think they are?
20:47 dukeleto darbelo: probably doesn't
20:47 dukeleto doubles are very different from floats
20:47 dukeleto and there are cblas routines for each
20:48 dukeleto we should probably have something like ComplexDouble and ComplexFloat
20:48 Coke ETOOMANYTYPES
20:49 Coke (or are these for an HLL)
20:49 darbelo Coke: many HLLs (a linear algebra library)
20:50 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.
20:51 Coke pmichaud: when I'm using nqp-rx, is it just going to be an executable from my standpoint?
20:51 Coke (for partcl)
20:52 Coke (figure I can build in an optional configure probe for it now.)
20:53 darbelo $P0 = loadlib "linalg_group" \n $P1 = new 'NumMatrix2D'
20:54 darbelo after ' $P0 = loadlib "linalg_group" ' if $P0 is non-null you have it.
20:54 darbelo it's an easy probe.
20:57 dukeleto darbelo: I like it
20:58 dukeleto 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 dukeleto Coke: at least in CLBAS
20:58 dukeleto CBLAS, even
20:58 dalek nqp-rx: 88ab936 | pmichaud++ | src/ (6 files):
20:58 darbelo dukeleto: Well, that's how parrot library loading works.
20:58 dalek nqp-rx: [nqp]:  Add code assertions to nqp.
20:58 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/8​8ab9369c69b02d94a350ccf9828a0bf43050e67
20:59 dukeleto darbelo: I don't like the name 'NumMatrix2D', are we using that now?
20:59 darbelo It's whiteknight's fault.
20:59 Coke dukeleto: (performant) oh, that's fine if you're actually /getting/ the performance. I'd argue that parrot is not. =-)
20:59 * darbelo blames other people.
21:00 dukeleto Coke: for HLLs, yes. But we are writing a library directly on top of Parrot for other HLLs
21:01 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 ;)
21:01 darbelo dukeleto++
21:02 dukeleto i should be meeting up with chromatic at the PDX hackathon tonight, hopefully we can figure some stuff out
21:03 pmichaud Coke: yes, nqp is an executable.  But other than the regex library, it has no runtime of its own.
21:05 desertm4x left #parrot
21:06 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 darbelo Everything else is heresy.
21:08 Coke pmichaud: ok. so my probe can just check for an nqp_rx executable.
21:08 pmichaud correct.
21:08 pmichaud it may be called 'nqp', though.
21:08 Coke easy enough to change. I'll start with nqp.
21:08 dukeleto darbelo: if we don't want high performance apps written on our VM, then we should continue along the current route
21:08 pmichaud Coke: my initial thought for partcl was to first move the grammar to nqp and get it to parse
21:08 dukeleto darbelo: this is the best time to fix our previous mistakes
21:09 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
21:09 darbelo dukeleto: Sure, but that needs to happen in the parrot core. I'm wearing the 'naysaying library developer' hat now.
21:10 Coke pmichaud: ok. I'm not sure I'll be able to do any of that without more direction. =-)
21:10 pmichaud right
21:11 Coke but I can make sure we at least have a copy of npq to start with. =-)
21:11 Coke -> offline
21:11 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 :)
21:12 pmichaud *or*
21:12 pmichaud we could do a lolcode rewrite as a demo, then start on partcl :)
21:12 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.
21:16 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:17 dalek parrot: r42164 | mikehh++ | trunk/config/auto/arch.pm:
21:17 dalek parrot: fix codetest failure - trailing spaces
21:17 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42164/
21:17 xenoterracide joined #parrot
21:18 nnunley joined #parrot
21:18 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:21 darbelo 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:25 dukeleto darbelo: that could work, as long as we don't do conversions on huge numbers of elements
21:27 dalek nqp-rx: 719cd0e | pmichaud++ | t/nqp/34-rxcodeblock.t:
21:27 dalek nqp-rx: Add tests for rx codeblocks.
21:28 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/7​19cd0eeac8f53cda32204450f4226bfb7759877
21:28 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.
21:30 darbelo 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:33 mikehh All tests PASS (pre/post-config, smoke (#29505), fulltest) at r42164 - Ubuntu 9.10 RC amd64
21:33 patspam joined #parrot
21:34 mikehh actually I am up to date with Ubuntu so it's no longer RC
21:55 jan joined #parrot
22:13 patspam joined #parrot
22:14 Whiteknight joined #parrot
22:14 theory joined #parrot
22:16 Whiteknight hello
22:17 jonathan oh hai
22:17 darbelo Whiteknight: check http://irclog.perlgeek.de/p​arrot/2009-10-29#i_1661099 for some implementation ideas I was discussing with dukeleto earlier.
22:18 darbelo See how they fit in your Grand Algebraic Plan .
22:20 Whiteknight I had been planning to use consecutive values for ComplexMatrix2D
22:20 Whiteknight and if PIR wants to access a Complex value directly, it has to be through a Complex PMC
22:20 Whiteknight there's no other way to make those available from C
22:20 Whiteknight No other *good* way
22:22 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:24 darbelo On this box FLOATVAL is a double. On other boxes, who knows?
22:25 darbelo The other problem is: I can oly hand parrot FLOATVALs (doubles, for me), how do I work with a matrix of floats?
22:28 kid51 joined #parrot
22:30 Whiteknight the answer is we dont
22:30 Whiteknight the only thing we can support is the intersection between Parrot and CBLAS
22:30 Whiteknight we can't support CBLAS APIs that won't be accessible and usable from PIR
22:31 Whiteknight PIR has FLOATVAL, so that's what we can give to CBLAS
22:31 kid51 CBLAS ?
22:31 purl well, CBLAS is a good bet then
22:31 darbelo That *sucks* from a HPC perspective.
22:31 kid51 purl forget CBLAS
22:31 purl kid51: I forgot cblas
22:32 kid51 Could someone tell purl (and me) what CBLAS is?  thx
22:32 darbelo purl CBLAS is a C interface to BLAS.
22:32 purl OK, darbelo.
22:32 darbelo BLAS?
22:32 purl BLAS is at http://www.cert.nu
22:33 kid51 That link is useless.  The only  thing on that page is the string 'CERT.nu'
22:33 kid51 purl forget BLAS
22:33 purl kid51: I forgot blas
22:33 ruoso joined #parrot
22:33 darbelo Ehm, no BLAS is the Basic Linear Algebra Subprograms.
22:33 darbelo BLAS is the Basic Linear Algebra Subprograms.
22:33 Whiteknight darbelo: why does that suck from HPC?
22:33 darbelo purl: BLAS is the Basic Linear Algebra Subprograms.
22:33 purl i already had it that way, darbelo.
22:34 xenoterracide joined #parrot
22:34 darbelo You are putting extra restrictions on the implementor ability to solve the problem.
22:34 kid51 purl BLAS is also at http://www.netlib.org/blas/
22:34 purl okay, kid51.
22:34 kid51 purl, BLAS?
22:34 purl rumour has it BLAS is the Basic Linear Algebra Subprograms. or at http://www.netlib.org/blas/
22:34 Whiteknight darbelo: parrot has it's own restrictions
22:35 Whiteknight 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.
22:37 Whiteknight so the alternative is to have a second, nearly identical type that simply adds a single->FLOATVAL typecast into every operation
22:37 mikehh joined #parrot
22:37 darbelo Not really. I was thinking of 'boxing' like we'll do for complex.
22:38 xenoterracide joined #parrot
22:38 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 Whiteknight otherwise it's identical to NumMatrix2D
22:39 darbelo Mostly, yes. It calls functions with 's' prefix instead of 'd'.
22:40 Whiteknight you mean the CBLAS functions?
22:41 darbelo Yep. 's', 'd', 'c' and 'z' indicate the underlying type.
22:41 Whiteknight right
22:41 Whiteknight I worry about a few things
22:41 Whiteknight we're obviously going to want conversion methods to interchange between types
22:41 darbelo I would worry if you didn't :)
22:42 darbelo s2d() ?
22:42 Whiteknight s->d, s->c, s->z, d->s, d->c, d->z, etc
22:42 Whiteknight exactly
22:42 Whiteknight and I worry that it's a huge amount of namespace pollution
22:42 Whiteknight not to mention being highly ugly and a lot of repeat code
22:42 darbelo Doesn't parrot already do that on the packfile code?
22:43 Whiteknight it has C functions to read values from the packfile into a native type, yes
22:43 Whiteknight and it has a huge ugly file full of them
22:43 Whiteknight and I don't want that
22:43 darbelo The file's already there.
22:43 Whiteknight it's not quite the same thing
22:44 Whiteknight because the packfile routines are also adjusting for byteorder, and I don't think they are exported
22:44 darbelo Oh, right.
22:44 Whiteknight and, they only convert s<->d, not c or z
22:44 Whiteknight here's what I suggest we do: Create a "Matrix2D" abstract parent type
22:45 Whiteknight no, nevermind
22:45 darbelo c is two s , and z is two d
22:45 Whiteknight yes, but the conversion doesn't just copy values
22:46 Whiteknight okay, here's my plan:
22:46 * darbelo listens
22:46 Whiteknight create a "Matrix2D" abstract parent class. It defines a "Convert_to_type" method
22:47 Whiteknight Convert_to_type will take a flag value with the destination type "s", "d", "c", "z".
22:47 Whiteknight internally, it can do a switch on type and pass off to the correct accessor
22:48 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?
22:48 Whiteknight with that, we could also do other conversions like "rpa", "rfa", "ria", etc
22:48 Whiteknight darbelo: yes, creating a clone matrix of the new type
22:48 Whiteknight with the data in the required format
22:49 Whiteknight CBLAS requires data be stored internally in different formats. Different formats are going to be different PMC types
22:50 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?
22:50 Whiteknight and if you can't convert between them, the utility is significantly diminished
22:51 kj joined #parrot
22:51 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 darbelo And, we provide a 'play nice with parrot datatypes' matrix, for those day where you don't need *that* much speed.
22:52 Whiteknight it's not mixing. It's allowing a type conversion. It won't be high-performance, but it will be possible
22:52 Whiteknight I'm not sure what you mean about "place nice with parrot datatypes matrix"
22:52 Whiteknight NumMatrix2D plays nice with Parrot types
22:53 darbelo Yes. I'm saying we can add other matix types that aren't bound by that rule, for extra speed.
22:53 darbelo If the user is willing to live with the restrictions they carry.
22:54 darbelo NumMatrix2D is for convenience.
22:54 Whiteknight well, what's wrong with NumMatrix2D? Why can't we just improve its performance as-is?
22:54 Whiteknight it is intended to be a high-performance type, that's why we're doing it
22:54 Whiteknight RPA is for convenience
22:56 payload joined #parrot
22:57 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:58 Whiteknight so that's a consistency issue, not a performance one
22:59 darbelo Some people are very fussy about consistency. Or memory efficiency. I want to make them happy too.
23:00 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. ;-)
23:01 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
23:01 Whiteknight 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
23:03 Whiteknight 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.
23:03 Whiteknight Each PMC would define setter and accessor macros that convert to the underlying type
23:04 darbelo And once we're doing templating we can branch out to the non-GE BLAS functions.
23:05 Whiteknight exactly
23:05 mikehh joined #parrot
23:05 darbelo Which will be about two gazzillion PMCs, but it's generated code. We only maintain one copy.
23:06 Whiteknight we have Parrot and PGE around. We could write our own little language to define them
23:06 Whiteknight or whatever.
23:06 darbelo A pre-preprocessor?
23:06 dalek TT #1160 created by jkeenan++: t/compilers/tge/grammar.t:  failure in 'two rules of the same name'
23:07 Whiteknight right, it preprocesses into a PMC file, which gets preprocessed into C
23:09 dalek parrot: r42165 | jkeenan++ | trunk/t/compilers/tge/grammar.t:
23:09 dalek parrot: Add reference to TT #1160 for TODO-ed test.
23:09 dalek parrot: review: https://trac.parrot.org/parrot/changeset/42165/
23:10 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.
23:10 darbelo kid51: pong
23:10 rdice joined #parrot
23:11 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.
23:11 kid51 ... test #2 in t/compilers/tge/grammar.t passes for me on Darwin/PPC
23:12 kid51 ... but I think the reason why the ticket was reopened was observations of failures in Smolder reports
23:12 kid51 ... and, unfortunately, the links to those particular Smolder reports have been expired.
23:12 Whiteknight darbelo: I'm workin on that now, so hopefully it won't be too long
23:12 kid51 So I can't recall exactly which tests were at issue.
23:13 darbelo kid51: I was referring to the broken solaris build mentioned in TT#985
23:14 darbelo 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.
23:15 Andy I had some Solaris at one time.
23:15 darbelo I *was* confused about that. Then.
23:16 darbelo Andy: So, does r42161 help poor old Solaris 8 build?
23:16 Andy HAD
23:16 darbelo Ouch.
23:16 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.
23:17 kid51 'Andy' ne 'Andy Dougherty'
23:17 mokurai left #parrot
23:18 Andy ok, off to dinner
23:19 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 darbelo But, now we have to worry about platfroms with a correct clock_gettime() that don't #define _POSIX_TIMERS.
23:20 darbelo Like mine. :)
23:23 dalek tracwiki: v40 | cotto++ | ParrotQuotes
23:23 dalek tracwiki: https://trac.parrot.org/parrot/wiki/Pa​rrotQuotes?version=40&amp;action=diff
23:23 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.
23:23 cotto_work can anyone else try running the ruby version of this: http://asiajin.com/blog/2009/09/22/uroboros​-programming-with-11-programming-languages/ ?  I was really impressed until the ruby version died with a syntax error.
23:25 cotto_work I'm suspicious because I have the exact version of ruby that's supposed to work.
23:29 dalek parrot-linear-algebra: 70000f9 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
23:29 dalek parrot-linear-algebra: fix the destroy VTABLE
23:29 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/70000f986a17913e3b5cee72e8e1f0f6e4889c0a
23:29 dalek parrot-linear-algebra: 5d04573 | Whiteknight++ | src/pmc/nummatrix2d.pmc:
23:29 dalek parrot-linear-algebra: several misc cleanups. Also, fix iterate_function_inplace to compile now (needs testing)
23:29 dalek parrot-linear-algebra: review: http://github.com/Whiteknight/parrot-linear-algebr​a/commit/5d0457335c05402bfae5b596d703be81e9f967e6
23:30 kid51 darbelo:  Okay, if you can add anything to the ticket that clarifies the issues, please do so.
23:32 ash_ cotto_work: i get an encoding error with that
23:33 ash_ ruby script, that is
23:34 cotto_work ok.  I'm going to call it a sophisticated troll.
23:35 ash_ cotto_work: nope, got it working (i had extra new lines from when i copied it from the post)
23:35 ash_ worked for me, ruby 1.8.7 p 72
23:36 ash_ python one worked too
23:36 cotto_work yeah.  Apparently the code is supposed to be on one line.
23:37 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.
23:38 cotto_work It's working for me up through C.
23:38 ash_ thats umm... scary
23:40 ash_ anyway, i gotta get going, if i attempt to do anything with lorito i'll let someone know
23:41 dalek nqp-rx: 063d6a1 | pmichaud++ | src/ (6 files):
23:41 dalek nqp-rx: Remove some files we're no longer using.
23:41 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/0​63d6a13b0e999fe65b19ee6f3b1e107f99a71c6
23:41 dalek nqp-rx: d49ead9 | pmichaud++ |  (4 files):
23:41 dalek nqp-rx: [p6regex]:  Add \xNN, \XNN, and \x[NN,NN,...] to p6regexes.
23:41 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/d​49ead9cb9f8764c4aae6ada7a254679b105f430
23:41 dalek nqp-rx: c48afee | pmichaud++ | src/Regex/P6Regex/ (2 files):
23:41 dalek nqp-rx: [p6regex]:  Add \oNN, \ONN, and \o[nn,nn,...] escapes.
23:42 dalek nqp-rx: review: http://github.com/perl6/nqp-rx/commit/c​48afeebd59549288a121b7da8fa79bfdecb83a0

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced