Camelia, the Perl 6 bug

IRC log for #parrot, 2010-02-25

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:03 tetragon joined #parrot
00:03 Whiteknight doing that kind of stuff from NQP is key.
00:04 Whiteknight especially if we want to have any hope of supplanting PIR one day
00:06 darbelo You, PIR hater, you.
00:07 Austin Hmm...Parrot_range_rand needs fixing.
00:07 Whiteknight pmichaud: i would like to start building a PBC compilation library, with the ultimate goal of using it as a backend to PCT one day. would like your ideas on interface and design to reach that goal
00:08 Whiteknight Austin: no,your application needs to lower its expectations
00:08 Austin Well, I was kind of expecting it to behave as documented.
00:08 Austin Apparently, I forgot where I was for a moment...
00:08 Whiteknight foolish
00:08 * Austin slaps himself..
00:09 Whiteknight whats the problem?
00:09 purl well, the problem is that WikiDoc doesn't use Pod formatting codes, and I don't like to have two sets of formatting codes.
00:09 cotto_work a pbc compilation library could help with direct past to pbc generation
00:09 cotto_work s/could/would/
00:09 Whiteknight cotto_work, thats the idea
00:19 dalek TT #1479 created by Austin_Hastings++: Improve random-ness of Parrot_range_rand
00:20 Austin Should it be Array.uniq or Array.unique ?
00:20 Austin (Or uniquify, I guess.)
00:23 kid51 joined #parrot
00:25 lucian_ joined #parrot
00:28 Whiteknight unique
00:29 Austin I went with distinct
00:29 Austin The SQL got me.
00:29 Whiteknight no pain in spelling it out
00:29 Whiteknight ok
00:31 darbelo Coke: ping
00:34 dukeleto Whiteknight: i like your 2nd reply to Jon Gentle, he has some interesting ideas
00:36 Whiteknight I support good ideas, and lambast bad ones on my blog :)
00:40 dukeleto Whiteknight: duly noted ;)
00:41 davidfetter or in my case, dully ;)
00:43 dukeleto davidfetter: there you go, always causing trouble :)
00:43 davidfetter heh
00:44 darbelo purl: msg Coke See http://nopaste.snit.ch/19772 for the last build problem with Sun cc on rm_cflags.
00:44 purl Message for coke stored.
00:49 darbelo purl: msg Coke Once that's solved feel free to merge back to trunk, you won't break any builds.
00:49 purl Message for coke stored.
00:53 dalek rakudo/master: 5d38786 | jonathan++ | src/core/Mu.pm:
00:53 dalek rakudo/master: Add back default .perl.
00:53 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/5​d387865deb66d9a4a1a61e7b0f691c4ff4319dc
00:53 dalek rakudo/master: 88f57f6 | jonathan++ | t/spectest.data:
00:53 dalek rakudo/master: We pass three more spectests now (deferal related stuff).
00:53 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/8​8f57f6273a71e009cd0ca52af2fb615ec82b301
00:53 dalek rakudo/master: 1cdb0d8 | jonathan++ | src/ (4 files):
00:53 dalek rakudo/master: Get deferal stuff back in place, to the degree we had it in alpha.
00:53 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/1​cdb0d867be54eb587f51c5bb1de82f3a1ecfe98
00:53 bacek joined #parrot
01:16 cotto joined #parrot
01:21 Whiteknight Austin: have a suggestion to improve Parrot_range_rand?
01:21 * Whiteknight has to find it in the codebase
01:22 Austin It's in dyn*/math
01:22 Austin Add one, then limit?
01:23 Austin random * (max - min + 1) ; if result > max { result--; }
01:24 Austin But check the definition of the drand code-  it may be possible to change the range to 0.9999
01:24 Whiteknight we could just change the documentation of Parrot_range_rand to say it goes from [x to y)
01:25 Austin Except for when it occasionally doesn't?
01:25 Whiteknight when that happens, we open a ticket, try it out a few times, and inevitably close it as WORKSFORME
01:25 Whiteknight :)
01:25 Austin :)
01:25 Austin whiteknight--
01:26 Austin You have a future in tech support.
01:27 Whiteknight Parrot_range_rand has this documentation: "Returns a C<FLOATVAL> in the interval C<[0.0, 1.0)>."
01:27 Whiteknight so it seems that it should never reach 1.0, if the docs are to be believed
01:28 Austin Okay.
01:28 Austin You mean some other function than range_rand. Fload_rand maybe?
01:28 Austin *Float
01:28 Austin range_rand says [from, to]
01:29 Whiteknight yeah, I see that
01:29 Austin So if float_rand is [0, 1)
01:29 Austin then no problem.
01:29 Austin Just make sure the range is inclusive.
01:29 Whiteknight no, the _drand48 docs say it's [0.0, 1.0)
01:29 Austin 1 + (max - min)
01:29 Austin Add one.
01:30 Austin Because 0.9999 in C is 0.
01:30 Whiteknight that would create a small bias towards (max - 1)
01:30 Whiteknight small, but so long as we're fixing it, we should do it right
01:31 Austin So range_rand(0,1) would return 0 + (double)(1 - 0) * rand = 0 + 1.0*random = 0 + 0.999 = 0 always
01:31 Austin No bias. It's a fencepost error.
01:31 Austin The drand48/float_rand function returns a range excluding the max.
01:32 Whiteknight http://www.opengroup.org/online​pubs/007908775/xsh/drand48.html
01:32 Whiteknight that page says it's inclusive of max
01:33 Whiteknight are you seeing documentation that disagrees?
01:34 Austin Nope. I was trusting the your earlier remark.
01:35 Whiteknight okay, this is what I am following then
01:37 Whiteknight While I'm looking at it, I think we could improve Parrot_uint_rand to output a 64-bit integer on 64-bit systems
01:37 Whiteknight ...but that's another issue for another time
01:37 Whiteknight this whole file smells of "quickly implemented"
01:37 Austin Heh.
01:37 Austin Looking at the _erand48 code in utils.c, I tend to agree with 1.0)
01:38 Austin The max value for a short is 65535, and they are dividing by 65536.0
01:38 Austin So it's going to be 0.999 all the way.
01:40 Austin My suggestion then is to add 1 to the (max-min) range computed in Parrot_range_rand, before multiplying by float_rand.
01:41 Whiteknight fixed
01:41 Austin Thus a range request of [2,4] would produce 2 + (1 + 4-2)*rand, or 2 + 3*rand, or 2  + [0, 3), aka [2, 4]
01:42 Whiteknight r44467
01:42 Austin w00t
01:42 Whiteknight w00t indeed
01:42 Austin FWIW, this isn't tested exhaustively in the unsort testcase. :)
01:44 Whiteknight Austin: improved tests always appreciated :)
01:44 Whiteknight you have a commit bit now, right?
01:44 Austin yeah
01:44 Whiteknight rock that sucker
01:44 Austin It's a kakapo thing.
01:44 ttbot Parrot trunk/ r44467 i386-linux-thread-multi make error http://tt.ro.vutbr.cz/file/cmdout/215159.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
01:46 Whiteknight what test harness does distutils use? Does it use Tapir?
01:49 Austin IDK
01:49 Austin No, distutils just assumes you have a t/ dir with a harness executable, etc.
01:50 Whiteknight without a t/harness, it looks like it searches for tapir, and then it falls back to using prove in some capacity
01:51 Whiteknight dukeleto: ping
01:51 Whiteknight looks like I have to isntall tapir, and distutils will use it
01:52 Coke darbelo: pong
01:53 Coke austin: tcl has been using dynops for years.
01:54 Austin coke: how do you make it work?
01:54 dalek parrot: r44467 | whiteknight++ | trunk/src/utils.c:
01:54 dalek parrot: fix Parrot_range_rand to alleviate the bias on the upper limit. Austin++ for the catch. Also, a few small doc updates
01:54 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44467/
01:55 Whiteknight purl msg dukeleto: I think Tapir needs some love. It doesn't run tests for me on my system (can't find GetOpt::Obj), when it's installed it isn't chmod +x, and when I run the installed version it can't find lib/Tapir/parser.pbc
01:55 purl Message for dukeleto stored.
01:56 Coke .loadlib 'tcl_ops'
01:56 Coke You could probably do it with the loadlib opcode if you put it into an :immediate block.
01:56 Austin So you're not doing it *from* tcl?
01:57 Coke no.
01:57 Coke partcl is written in pir.
01:57 Austin Right. I was trying to get it working from nqp.
02:01 Coke welp, partcl is broken today, but the .sub '' :anon :immediate; loadlib 'tcl_ops' ; .end might work.
02:02 Coke then you can put it in a sub of some kind.
02:02 Austin :)
02:02 Austin Thanks.
02:02 Austin I got it working with dlfunc.
02:14 Whiteknight what does the NQP error "rtype not set" mean?
02:14 Whiteknight It's on this line: "if $len >= $max_length"
02:16 Whiteknight actually, maybe it's this line: "my $len := pir::length__i_s($_);"
02:18 Austin Really?
02:18 Austin Usually I get it when I'm assigning instead of calling.
02:18 Whiteknight no, nevermind, I don't think the line number reported is happening in my code
02:18 Austin laugh
02:19 Austin I find that doing $foo.method := 1 instead of $foo.method(1) gives me the rtype error.
02:19 Austin (I had to blog it so I could remember it.)
02:24 * Austin sings, "Sometimes I live in the country. Sometimes I live in town. Sometime I take a fool notion .. to jump in the river and drown!"
02:25 Whiteknight okay, in NQP, I write "$i = pir::length__i_s($filename)"
02:25 Austin :=
02:26 Whiteknight and the error I get is "The opcode 'length_i_p' (length<2>) was not found."
02:26 Austin pir::length__IS
02:26 Whiteknight I meant :=
02:26 Austin Tho I think you can use lowercase, if you want.
02:30 Whiteknight this line gives me the "rtype not set" error: "pir::exit__I(1);"
02:30 Whiteknight so why is that?
02:30 Austin I disbelieve.
02:31 Whiteknight I comment out that line, error goes away
02:31 Austin Okay. I believe.
02:31 Austin You declared a return type.
02:31 Austin Just do pir::exit(1)
02:31 Whiteknight no other way to tell, since the super-helpful error message doesn't have a line number
02:31 Austin or maybe pir::exit__vI(1)
02:31 Austin What are you doing in nqp, if I may ask?
02:32 dalek kakapo: 9604856 | austin++ |  (3 files):
02:32 dalek kakapo: Converted all of the array code (but 'new') to methods.
02:32 dalek kakapo: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
02:32 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/9604856f0db328235497554d89a2e7d007a8191c
02:56 Whiteknight Austin: I'm trying to update the test harness for Parrot-Data-Structures
02:57 Whiteknight it has been long-neglected
02:57 Austin ahh
02:57 Whiteknight I'm also just trying to get my feet wet with NQP, I haven't used it nearly as much as I should have
02:57 Whiteknight I want to rewrite much of the test suite in it
02:57 chromatic Meh.
02:57 Whiteknight right now I fake it with a shit-ton of Q:PIR{} blocks
02:57 Whiteknight Meh?
02:57 purl well, Meh is 'unexciting or unappealing' or http://www.youtube.com/watch?v=zSDj7bjAv2s
02:58 chromatic Oh, the PDS test suite.  Un-meh.
02:58 Whiteknight chromatic: yeah, I wouldn't dare with the Parrot suite
02:59 Whiteknight but PDS is safe
02:59 Coke I == Integer, not integer, no?
02:59 Coke seems like vi would be better.
02:59 Whiteknight I use PIR for benchmarks to keep a little bit more control, but for tests NQP is fine
02:59 Whiteknight vi is never better
03:00 Coke ah, no, I is int register, but i can also be an int constant.
03:02 Whiteknight ...and on that note I'm off to bed. Goodnight
03:04 dalek parrot-data-structures: eceb4bf | Whiteknight++ | t/harness:
03:04 dalek parrot-data-structures: some aesthetic improvements to the output of the test harness. FPQ still fails a does test that I can't quite explain. FPQ2 and FPQ3 are still aborting early with a floating point exception.
03:04 dalek parrot-data-structures: review: http://github.com/Whiteknight/parrot-data-structur​es/commit/eceb4bf3ef01a742283d58914e2a4311c32eedd5
03:06 kid51 me has bedtime reading:  Whiteknight's recent blog posts
03:06 kid51 Since they're all over my head, I expect to get to sleep really quickly ;-)
03:10 theory joined #parrot
03:10 cotto joined #parrot
03:38 dalek kakapo: 7104cf8 | austin++ | src/ (12 files):
03:38 dalek kakapo: More Array functions! Plus got rid of ::empty.
03:38 dalek kakapo: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
03:38 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/7104cf87a662f708bbb6e7dce8da8e21a8b07334
04:00 janus joined #parrot
04:07 dalek parrot: r44468 | mikehh++ | trunk/src/utils.c:
04:08 dalek parrot: can not modify a const
04:08 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44468/
04:24 dalek parrot: r44469 | tene++ | branches/exceptions_refactor/src/ops/core.ops:
04:24 dalek parrot: Allow subclasses of Exception to be thrown
04:24 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44469/
04:59 AndChat| joined #parrot
05:25 desertm4x_ joined #parrot
05:29 dalek parrot: r44470 | mikehh++ | trunk/src/utils.c:
05:29 dalek parrot: range needs to be [from .. (to  - 1)] not [0 .. (to - from + 1)]
05:29 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44470/
05:39 cotto joined #parrot
06:45 JimmyZ joined #parrot
07:09 dalek rakudo/master: e79112d | duff++ | t/spectest.data:
07:09 dalek rakudo/master: Add S06-multi/unpackability.t to spectest.data
07:09 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/e​79112d12ab61d512ed8bfc1cd6acdc2121c1977
07:22 bacek joined #parrot
07:34 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32386), fulltest) at r44470 - Ubuntu 9.10 amd64 (gcc with --optimize)
07:40 dalek parrot: r44471 | mikehh++ | trunk/src/utils.c:
07:40 dalek parrot: the range must be [from .. to] inclusive - the removed test would double up on (to - 1)
07:40 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44471/
07:56 dalek parrot: r44472 | mikehh++ | trunk (2 files):
07:56 dalek parrot: change some of the tests so that [from..to] does not overlap [0..((to - from) + 1)] and update copyright on previous commit
07:56 purl dalek: that doesn't look right
07:56 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44472/
08:05 fperrad joined #parrot
08:10 iblechbot joined #parrot
08:36 eternaleye joined #parrot
08:40 fperrad msg darbelo have you seen r44453 ?
08:40 purl Message for darbelo stored.
09:13 bacek joined #parrot
09:23 mj41 msg NotFound  pbc_disassemble.exe hanging on some taptinder windows clients at http://nopaste.snit.ch/19753
09:23 purl Message for notfound stored.
09:28 barney joined #parrot
09:30 AndyA joined #parrot
09:30 yoyo joined #parrot
09:38 pdcawley joined #parrot
09:59 uniejo joined #parrot
10:00 wagle joined #parrot
10:02 cosimo joined #parrot
10:17 uniejo $ echo ".HLL 'test1'" | ./parrot -E -   # Revision 44472
10:17 uniejo Segmentation fault
10:17 purl (Core dumped)
10:18 jhelwig joined #parrot
10:18 moritz uniejo: open a track ticket
10:19 uniejo moritz: Do you have a link
10:19 moritz uniejo: https://trac.parrot.org/parrot/newticket (you might need to create an account first)
10:30 gaz joined #parrot
10:41 lucian joined #parrot
10:46 dalek TT #1480 created by uniejo++: Preprocessing using parrot -E fails
11:23 payload joined #parrot
12:16 bluescreen joined #parrot
12:37 payload joined #parrot
12:55 whiteknight joined #parrot
12:57 whiteknight good morning #parrot
13:15 Austin joined #parrot
13:15 wknight8111 joined #parrot
13:15 payload joined #parrot
13:16 ruoso joined #parrot
13:17 Austin Good morning, Whiteknight. Are you done bouncing?
13:19 whiteknight Austin: yeah, done.
13:19 whiteknight I brought my personal computer in to work today, so I switched over to that
13:20 whiteknight if I can't get home because of the weather, I'm staying the night at my parent's hous
13:20 Austin Man, you're hardcore.
13:20 Austin I left the baby at home, but I'm taking my laptop to shelter...
13:21 whiteknight my wife took the baby with her, and will likewise be staying with her 'rents if she can't get home
13:21 Austin Ahhh
13:21 whiteknight it's a weird situation where we both work very close to where our Parents live, and very far away from where we live
13:22 Austin Hmm. I think I've found another nqp bug
13:22 whiteknight "undocumented feature"
13:24 whiteknight did those improvements to Parrot_range_rand that I made yesterday actually fix the issue?
13:24 nopaste "Austin" at 68.37.46.53 pasted "Potential nqp-rx parse error" (13 lines) at http://nopaste.snit.ch/19775
13:25 Austin I don't know. I saw some commits from mikehh that seemed to indicate there were testing problems.
13:25 whiteknight well, let me run some tests now, see what I get
13:29 mikehh I first had a problem building and then after I fixed that I found I was getting intermittent failures with the math.t test
13:30 whiteknight damnit. Let me look
13:30 mikehh then I found it was returning 0..20 or something rather than 5..25, fixed that and then modified the test so that it wouldn't hapopen again
13:31 mikehh s/hapopen/happen/
13:31 Austin zounds!
13:31 whiteknight all coretests successful here
13:32 mikehh they should be now
13:32 whiteknight mikehh++
13:33 Austin FYI: The is.. opcode (forexample: islt) will store a condition into an integer.
13:34 whiteknight I positively hate all the comparison opcodes we have
13:34 whiteknight of course, I positively hate many of our opcodes
13:34 Austin :)
13:35 Austin Did you get a chance to read my idea from yesterday morning, or were you part of the irc droppage?
13:35 whiteknight Austin: a refresher might be appreciated :)
13:35 Austin Unify vtable and methods.
13:35 whiteknight how so?
13:36 Austin Put them all in one big table.
13:36 whiteknight a table with variable length?
13:36 Austin Nope.
13:36 Austin Create an interned string type (what I think you've referred to a constant strings)
13:37 Austin Assign a sequential number to all method names.
13:38 Austin Every method call is either (1) a vtable call; (2) a call to a method with a name known at load-time, in which case it can be num-ified; (3) a name known only at run time, which has to be looked up in the enumerator or, if not found, dispatched to the _AUTOLOAD or whatever mechanism.
13:38 Austin The "vtable" is simply the low NNN methods. We can manage that based on frequency of use or necessity.
13:39 whiteknight I'm not sure how that improves on anything we currently have
13:39 Austin It means that vtable calls and method calls with fixed names take the same time.
13:39 Austin (Modulo argument packaging)
13:40 whiteknight but it sounds like VTABLE management becomes sigificantly more expensive
13:40 Austin No, why would it?
13:40 Austin $object -> vtable [ x ]
13:40 whiteknight at the moment, VTABLEs are a fixed-length structure, and we store all the VTABLEs in a large array, which we index by type number
13:41 Austin Right.
13:41 whiteknight so making VTABLEs different lengths with numbers of methods in it makes that all harder
13:41 Austin I'd replace that with a pointer to the table.
13:41 Austin And the vtables would be the same length.
13:41 whiteknight so then how do you re-implement Parrot_pmc_new, which takes a type number?
13:41 whiteknight we keep another mapping around?
13:41 Austin $interp -> new( type_number )
13:42 whiteknight right. internally, how do we go from type_number to VTABLE*?
13:42 Austin Why would you want to? Call the class, let it set the vtable.
13:43 whiteknight I'm missing some important details in my mind
13:43 Austin I think part of it may be too much internals knowledge.
13:44 whiteknight yeah, I'm damaged goods like that
13:44 Austin The way to create a new object is to ask the class for one.
13:44 Austin So you need to lookup the class, then ask it.
13:44 whiteknight Austin: okay, so how do we look up the class?
13:44 Austin I'm glad you asked. :)
13:44 whiteknight I'm becoming less and less so
13:44 whiteknight :)
13:45 Austin Pretend you're in pir or nqp: you go to the namespace and ask it for the class.
13:45 Austin You use the name to get the namespace, natch.
13:45 Austin If you want some subsystem to cache that info, then the caching is an internal problem - let the subsystem deal with it.
13:46 Austin So, the pcc system will probably hold on to the RPA and Hash class pointers.
13:46 Austin etc.
13:46 whiteknight So to create a new PMC, I have to lookup the NameSpace in some global cache, ask that for the Class, and ask the Class for a new object?
13:47 Austin Isn't that what you do now?
13:47 whiteknight We can't cache class pointers, because HLLs can override default types at runtime
13:47 whiteknight Austin: internally, no. We use type numbers
13:47 whiteknight Parrot_pmc_new(interp, enum_class_ResizablePMCArray)
13:47 Austin And what do you do with them?
13:48 Austin Sounds like someone is holding a cache ...
13:48 whiteknight and then we lookup the vtable as interp->vtables[x]
13:48 Austin That would change.
13:48 whiteknight each type has an idx number which is put into an enum list at compile time
13:48 whiteknight Austin: internally it's a huge performance win to do it that way
13:49 whiteknight the idea of assinging built-in methods an integer index and using that index for fast lookups of staticly-given names is an interesting one
13:50 whiteknight ...assuming we can get around the problems of ducktyping and other introspective nonsense
13:50 Austin That's not a problem.
13:50 whiteknight foo."bar"() may not always point to the same method for the same class
13:50 Austin Right.
13:50 Austin It will always point to the same method for the same class. It may get replaced if an object does a local override.
13:51 Austin Each class needs a different table, just like now.
13:52 Austin Dog.bark() and Tree.bark() would be in the "bark" slot, but different tables. DogTree.bark() would get set up my the MRO to point to one or the other.
13:52 Austin *by the
13:53 Austin *ever* class would have a "bark" slot, but most of them would point to the default "try-to-AUTOLOAD-this-or-throw​-a-method-not-found-exception" method.
13:53 Austin The win here is replacing code with data.
13:54 whiteknight So we're paying a cost in a huge amount of extra storage for every class, because every class has a slot for every method, but defaults on most of them?
13:54 Austin Build a method that throws the appropriate error, fill in all the slots with it, and eliminate a bunch of conditional logic.
13:54 Austin Right.
13:54 whiteknight that sounds like a huge memory expenditure
13:54 Austin Per class?
13:54 purl Per class is "with 'Role::Foo'"
13:55 whiteknight yeah, how many classes do you think an average program running in an HLL on top of Parrot needs to be aware of?
13:55 Austin Maybe 1000 ?
13:55 whiteknight VTABLEs are already 2k
13:56 Austin I bet we could reduce that.
13:56 whiteknight I've been trying like hell
13:56 Austin So double it.
13:56 Austin 4k methods @ 8 bytes per pointer = ... 32k per table.
13:56 Austin * 1k classes = 32m
13:56 whiteknight A better idea, I think, would be to let the class object do that caching itself. Store it in an array in the class, not in the vtable
13:57 whiteknight we're asking the class anyway, it can look things up, cache them, and update caches when ducktyped
13:57 Austin My point is not to ask the class.
13:57 Austin Just *pointer()!
13:57 Austin Actually:  (*pointer)()
13:58 whiteknight We're also looking into adding callsite caching with PIC. Method pointers for each callsite only need to be looked up once per class, and the class can cache to support multiple callsites
13:58 Austin I think we could shrink that 32m number with some smart opcodes (call-method-below-1k, call-method-below-2k, etc.)
13:58 Austin This would eliminate that.
13:59 whiteknight It's definitely an interesting idea, but I'm not sure that there's a performance win to be had at all, much less one commeasurate with the development effort expenditure
14:01 Austin I'm pretty sure that $object -> methods [ x ] is a performance win over callmethodcc.
14:02 Austin My approach lets us make the caching standard, and puts it in the class (which will probably leave it set to the default).
14:03 Austin But yeah, it'd take a lot of work to implement.
14:03 Austin :)
14:05 whiteknight Austin: it's a performance win over callmethodcc as it exists now.
14:05 whiteknight add in some aggressive caching, both call-site and class-side caching, and I don't think there's a win anymore
14:06 Austin ok
14:06 whiteknight imagine a callmethodcc call that takes an extra parameter, which is a cache object. We can create the cache object at compile time and store it in the constants table.
14:07 whiteknight callmethodcc, if it has the cache object, looks up the method in there.
14:08 whiteknight I say"if it has a cache object" because for places where the optimizer is guaranteed to know the type in advance, we can forget all this nonsense and inline a direct call
14:09 Austin So callmethodcc looks in the cache and sees if the invocant object has dispatched the particular method before. And if so it calls the subref it has. And if not is does the lookup?
14:09 Austin *not it does
14:09 whiteknight Austin: basically, yes. But it can be cheap because we can lookup based on object type number (for a constant method name)
14:10 whiteknight if the method name is variable, bets are off anyway
14:11 whiteknight so something like find_method_p_sc would do aggressive cachin, find_method_p_s wouldn't
14:13 iblechbot joined #parrot
14:21 Austin Well, this is gonna hurt.
14:21 whiteknight ?
14:21 Austin Replacing all the squillions of references to @array.elements with .elems
14:22 Austin No chances for error there...
14:24 whiteknight add an elements method to array that outputs a backtrace to stderr
14:24 whiteknight then run the program
14:24 Austin Heh
14:24 Austin Nah, I'm perling out all the .elements -> .elems
14:24 Austin It's the case where that WASN'T a method call I'm worried about.
14:24 whiteknight that's cool too
14:25 whiteknight why "elems" as opposed to "elements"? a little verbosity is rarely a bad hing
14:25 whiteknight thing*
14:27 Austin P6
14:27 Austin S32::Containers
14:27 Austin "elems"
14:28 Austin our Int method elems (@array: ) is export
14:29 Austin Like 'exists'.
14:29 Austin Except that 'exists' bothers me more.
14:29 Austin %hash.exists('foo')
14:29 Austin No!
14:29 Austin %hash.contains('foo')
14:32 Coke I was going to ask why you were going all P6-y here, but this is to make parrot objects looks slightly more p6-like for nqp, yes?
14:32 Austin If only I could add methods to the null pmc
14:32 Austin Coke: yeah. Kakapo
14:32 Coke Austin: you can't just shove methods into the null namespace?
14:32 bacek joined #parrot
14:32 Coke (I mean, it would freak me out, but It might work.)
14:32 Austin No. Stupid parrot checks for null access.
14:33 Austin :)
14:33 Austin I wonder if there's a way to hllmap the nullpmc?
14:33 Tene *blink* *shudder*
14:33 Austin Oooh. Only 5 failures...
14:33 Tene That's kinda creepy.
14:33 Austin What?
14:34 PerlJam Austin: if you have a commit bit to the pugs repo, you can always adjust the spec  to your liking  ;)
14:34 Tene hllmap nullpmc
14:34 Austin Weren't you one of the guys telling me how we had to have nullpmc different from undef so people could differentiate between exists-but-not-set and not-exists?
14:34 Austin PerlJam: ;)
14:35 Coke Austin: I imagine hll mapping null is going to fail.
14:35 Austin Yeah. Discrimination, patently.
14:35 Coke I suspect things like isnull are checking for the PMCNULL singleton.
14:35 Coke rather than "isa 'null'"
14:36 Austin Lazy coding
14:36 Austin Hey, I wouldn't mind if the hllmap was to another singleton.
14:36 Austin I just want to put methods on it.
14:36 Austin method exists() { 0; }
14:37 Austin unless %hash<key>.exists { say("No such key"); }
14:42 Austin git--
14:43 Austin I'm the only person working on my private branch. I'm only using one computer. So how can I get push rejected, not fast-forward?
14:43 Austin purl, tapir?
14:43 purl tapir is being written to be testable from the ground up, unlike nqpTAP or http://github.com/leto/tapir or a TAP Harness written in PIR
14:44 dalek kakapo: 323b693 | austin++ |  (2 files):
14:44 dalek kakapo: More Array functions! Plus got rid of ::empty.
14:44 dalek kakapo: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
14:44 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/323b69340b9da65d196d32c8ca0c95a4168e39b5
14:44 dalek kakapo: e96df4c | austin++ |  (10 files):
14:44 dalek kakapo: Added more methods. Yay. Also, test cases. Yaaaay. Now with less bugs!
14:44 dalek kakapo: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
14:44 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/e96df4c057d2fcab18e7e683db70e40544830b79
14:44 dalek kakapo: 85fc81b | austin++ |  (16 files):
14:44 dalek kakapo: Replaced .elements with .elems in Array, Hash.
14:44 dalek kakapo: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
14:44 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/85fc81bd6d63b4df5b16e36bdb412639f17cb197
14:46 Austin Does anyone have mod_parrot running publicly
14:46 Austin ?
14:57 kurahaupo joined #parrot
15:04 parthm joined #parrot
15:08 parthm left #parrot
15:11 dalek kakapo: c1d92a2 | austin++ |  (3 files):
15:12 dalek kakapo: Added class name support to Mock
15:12 dalek kakapo: Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
15:12 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/c1d92a2fa8acedf20b2254a0fadbf12cccc13bf3
15:12 dalek kakapo: 90201f8 | austin++ | :
15:12 dalek kakapo: review: http://gitorious.org/kakapo/kakapo/commit​/90201f8eecdc9033bb844bf4ec6c95adf3e2915c
15:15 theory joined #parrot
15:21 Ryan52 joined #parrot
15:22 Coke a yahoo address! how quaint! =-)
15:27 whiteknight yahoo email? what's that? Let me look it up on Alta Vista
15:41 NotFound Austin: pmcnull is basically a replacement for NULL that throw in a controlated way when used instead of segfaulting the VM.
15:44 lucian joined #parrot
15:44 szbalint it could be worse, it could be @aol.com
15:46 whiteknight or @earthlink.com
15:47 Psyche^ joined #parrot
15:51 wagle @me.com
15:52 wagle (@narcissist.com)?
15:54 NotFound What is supposed to do the -E option? Generating pasm?
16:00 Austin You guys are just jealous because I change jobs more often than I change ISPs.
16:01 Austin Speaking of jobs, I hope there's some work this year.
16:01 NotFound Jobs, steve?
16:03 Austin_away It's one o'clock and time for lunch ... dum de dum de dum
16:05 whiteknight one o'clock? it's 11 here
16:05 whiteknight and you're deinitely not two time-zones away
16:06 patspam joined #parrot
16:18 dukeleto 'ello
16:20 dukeleto msg whiteknight i will check into those tapir issues. thanks for the notification
16:20 purl Message for whiteknight stored.
16:25 dalek rakudo/master: 37e2865 | pmichaud++ | docs/ROADMAP:
16:25 dalek rakudo/master: Refactor ROADMAP with recent accomplishments and task estimates.
16:25 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/3​7e2865ac5602b7a3821132a21356f0316034fff
16:26 Myhrlin joined #parrot
16:27 whiteknight dukeleto: no problem. I was trying to pretty-up the test output for PDA. I ended up making modifications to the built-in harness, but I would much rather use Tapir if possible
16:31 dalek rakudo/master: 1926c29 | pmichaud++ | docs/ROADMAP:
16:31 dalek rakudo/master: Update difficulty estimate for lexical classes and roles (jnthn++).
16:31 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/1​926c2988f0c73c974690529dc4cb13a83060db6
16:36 dalek rakudo/master: a21f056 | pmichaud++ | docs/ROADMAP:
16:36 dalek rakudo/master: More difficulty estimate updates from jnthn++ .
16:36 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/a​21f05651c9933337e8afc9e71e9dbfd4a4f5b39
16:36 dalek rakudo/master: b06dfe5 | pmichaud++ | docs/ROADMAP:
16:36 dalek rakudo/master: More ROADMAP tweaks.
16:36 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/b​06dfe5dceda01b3b3348392634b04020252d301
16:36 dalek rakudo/master: 1d4a471 | (Solomon Foster)++ | src/core/Array.pm:
16:36 dalek rakudo/master: Simple port of Array.delete from alpha.
16:36 dalek rakudo/master: This implementation works but is not lazy.
16:36 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/1​d4a471e182914ed5a7027ab59f4e85b4423bdd5
16:36 dalek rakudo/master: 2c553a5 | (Solomon Foster)++ | src/core/operators.pm:
16:37 dalek rakudo/master: Change the signature of undefine to accept Mu too -- otherwise you cannot undefine something twice at the moment.
16:37 purl dalek: that doesn't look right
16:37 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/2​c553a5cc219dd730c471a6020ccddb4d7f65aec
16:40 dukeleto whiteknight: that GetOpt::Obj error is odd. did namespaces change format again?
16:40 whiteknight not that I am aware of
16:40 dukeleto whiteknight: do you have a link for the changes that you had to make?
16:40 whiteknight Are you seeing it too?
16:40 whiteknight dukeleto: it was all just aesthetic stuff
16:41 whiteknight http://github.com/Whiteknight/parrot-data-structur​es/commit/eceb4bf3ef01a742283d58914e2a4311c32eedd5
16:41 dukeleto whiteknight: oh. i thought you said tapir was broken? don't you have a commitbit on tapir?
16:41 whiteknight I do have a commit bit, but I don't have a lot of time to fix it and I wanted to make sure you were aware
16:42 dukeleto whiteknight: gotcha. so did you only make aesthetic changes to the output? or are there bugs ? custom output formats are definitely on my TODO list
16:43 Coke question. we now have .mak files scattered throughout the repo.
16:43 dukeleto whiteknight: also, you are always free to push to a branch in the tapir repo if you want me to take a look at something
16:43 Coke if I need to make one of these a template that is transformed by the config process (like root.in), then is it preferred to put the .in with the root.in, or keep it in the same directory as the generated .mak?
16:44 Coke (I lean towards the latter, but can be convinced of the former.)
16:44 whiteknight dukeleto: I only made changes to the test harness for PDS. I didn't touch Tapir
16:49 dukeleto whiteknight: gotcha. i will look into providing an easy way to customize the output format, or just make the default format not so ugly :)
16:50 whiteknight I think the Tapir output format is decent. I know because I made some changes there earlier :)
16:50 whiteknight The harness in PDS was based on a very very old version of Tapir and was showing it's age
16:59 dalek rakudo/master: c9e1981 | pmichaud++ | docs/ROADMAP:
16:59 dalek rakudo/master: Update s/// roadmap items based on comments from PerlJam++ .
16:59 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/c​9e1981a4b221f27c9c2d64fbecf107a045a410f
16:59 dalek rakudo/master: a725daa | pmichaud++ | src/core/ (2 files):
16:59 dalek rakudo/master: Merge branch 'master' of git@github.com:rakudo/rakudo
16:59 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/a​725daaedf69537d2e725a8b849be5f08d4fbdfe
17:01 gaz joined #parrot
17:11 davidfetter joined #parrot
17:12 cosimo joined #parrot
17:19 parthm joined #parrot
17:43 parthm left #parrot
17:52 dalek dbm-dynpmcs: af0834f | darbelo++ |  (2 files):
17:52 dalek dbm-dynpmcs: Pull in changes from trunk.
17:52 dalek dbm-dynpmcs: Add methods to open and close a db. This solves the database removal issues on windows.
17:52 dalek dbm-dynpmcs: review: http://gitorious.org/dbm-dynpmcs/dbm-dynpmcs/c​ommit/af0834f3c262eb43162e185ac7633e24ae62efdb
18:07 payload joined #parrot
18:15 darbelo Coke: reping.
18:17 kthakore hi folks
18:20 cotto_work hi kthakore
18:24 Whiteknight joined #parrot
18:50 kurahaupo joined #parrot
18:51 dukeleto kthakore: how is SDL coming along?
18:51 kurahaupo joined #parrot
18:55 kthakore dukeleto: coming
18:55 kthakore cotto_work: hi
18:55 purl privet, kthakore.
18:56 Coke darbelo: repong.
18:56 kthakore dukeleto: chromatic told me to go ahead with the redesign
18:56 kthakore dukeleto: so I am scheduling in a hack schedule for it
18:57 kthakore dukeleto: need to learn some pir then I am going to start laying out the ground work
18:57 darbelo Coke: Dis you see my purl-msgs? rm_cflags looks pretty much done from a non-gcc standpoint.
18:57 kthakore dukeleto: today went away to squashing bugs in perl5 SDL and a new game for CEbiT
18:57 Coke did see that, yes. two bits left: 1) get it warnigns clean on gcc.
18:58 kthakore dukeleto: so that is how it is going
18:58 kthakore :)
18:58 dukeleto kthakore: ok, let me know if you need PIR help
18:58 Coke 2) put back the optimize hackery (to disable optimization on certain files in certain cases.)
18:58 kthakore dukeleto: will do
18:58 kthakore dukeleto: HELP!
18:58 darbelo Well, warning cleanup can be achieved in trunk.
18:59 dukeleto does anybody know if anybody has tried making  a GTK binding for parrot?
18:59 payload joined #parrot
18:59 kthakore dukeleto: I saw some on the google
18:59 kthakore dukeleto: I was looking for ways to do callbacks
19:00 kthakore dukeleto: gtk popuped up
19:00 dukeleto kthakore: have you looked at examples/tutorial ? it give nice and simple PIR examples
19:01 kthakore will do
19:01 kthakore dukeleto: frankly this week was super busy
19:01 kthakore so I just hacked PIR with out reading
19:01 kthakore Austin helped me a lot in it
19:02 davidfetter joined #parrot
19:02 chromatic joined #parrot
19:02 kthakore hi chromatic
19:03 bacek joined #parrot
19:03 dukeleto kthakore: learning by fire, nothing wrong with that
19:04 kthakore dukeleto: hey! that is how I learned perl
19:04 kthakore ;)
19:04 kthakore dukeleto: I find it faster to get started
19:06 dalek rakudo/master: 0bcb821 | pmichaud++ | docs/spectest-progress.csv:
19:06 dalek rakudo/master: spectest-progress.csv update: 204 files, 24339 (68.2% of 35695) pass, 0 fail
19:06 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/0​bcb821a37938c0a353787233929f4f87be191ae
19:06 Coke darbelo: it can, but i'm trying to make sure when I merge back that it's as good as it was before I started.
19:07 darbelo Cool. So, what's your plan for the optimize hackery?
19:08 Coke basically the same thing I did for the warnings.
19:08 Coke break out the optimize flags into CC_OPT, have a @optimize::path/to/file.c@ setup explicitly for the few files that need it.
19:12 dalek rakudo/master: 64305d7 | (Solomon Foster)++ | src/core/Any-list.pm:
19:12 dalek rakudo/master: Add Any.kv to provide .kv for Positionals and scalars, as well as a proto sub for kv.
19:12 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/6​4305d79677c359a2a49f9e8fe05f1267cd8877e
19:12 dalek rakudo/master: 9f11da6 | (Solomon Foster)++ | src/core/Enum.pm:
19:12 dalek rakudo/master: Enum.kv should return a Parcel, not a list.
19:12 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/9​f11da61d06b75808009821562f31551f44143d5
19:15 preflex joined #parrot
19:18 clinton joined #parrot
19:19 Coke who owns src/nci_extra_thunks ?
19:19 AndyA joined #parrot
19:20 AndyA joined #parrot
19:21 Coke AndyA: how's the back?
19:21 dukeleto Coke: sounds like something plobsing or japhb would know about
19:21 AndyA Back's fine, thanks :)
19:25 Coke dukeleto: eh. I'll just silence the warnings. they can fix them later.
19:28 Coke uh... why do we have src/extra_nci_thunks.c and src/nci/extra_thunks.c ?
19:28 Coke which are nearly identical?
19:34 japhb Coke, dunno, that's all plobsing's work
19:44 Coke gcc warning questions: what flags control:
19:44 Coke warning: assignment discards qualifiers from pointer target type
19:45 Coke DOH. nevermind.
19:46 Coke no, mind. I though it'd be -cast-qual, but that's not covering it.
19:46 darbelo Coke: Sprinkle 'const' on your variable declarations.
19:46 Coke can't.
19:46 Coke this is generated code.
19:47 darbelo Ouch.
19:48 * dukeleto sprinkles 'const' on his yogurt
19:49 NotFound Coke: silent the warnings isn't a solution, most times it'll fail in c++ build.
19:49 Coke NotFound: this is in IMCC's generated code. it would have broken teh build already.
19:50 Coke (like 4 years ago)
19:51 Coke also would like to silence logical '&&' with non-zero constant wi
19:51 Coke ll always evaluate as true
19:53 NotFound Ah, yes, no problem. Flex and bison developers takes care in that case.
19:55 chromatic They take *some* care.
19:57 Coke chromatic: any idea how I can kill these last warnings?
19:58 nopaste "coke" at 65.91.151.194 pasted "few remaining build warnings." (13 lines) at http://nopaste.snit.ch/19777
19:59 Coke I mean, I guess we could just with NO warnings on imcparser.c and imclexer.c
19:59 Coke (but that seems like overkill)
19:59 NotFound The isSOUBROUTINE problem is easy. Just kill the warn unused result qualifier.
19:59 Coke if you do that in trunk, I can just merge that in. =-)
19:59 Coke ;)
20:00 NotFound That qualifier is used when you never must ignore the result, which obviously isn't the case.
20:00 NotFound Coke: ok
20:00 chromatic Coke, I've tried to remove those.  I think it's "File a bug with flex/bison."
20:00 nopaste "coke" at 65.91.151.194 pasted "all remaining build warnings in rm_cflags branch (gcc)" (13 lines) at http://nopaste.snit.ch/19778
20:01 Coke chromatic: i'm not trying to clean the file, just get gcc to not warn on them.
20:02 chromatic Can you disable specific flags on specific files for a -DNDEBUG build?
20:02 Coke looks like compilers/imcc/symreg.c:1007 doesn't need ANY cast.
20:02 Coke chromatic: assume that's set by some kind of Configure.pl option, yes.
20:02 bacek morning
20:02 Coke *assuming
20:03 cotto_work hi bacek
20:03 bacek cotto_work, aloha. What happened to ops_pct?
20:04 cotto_work still waiting for tuits, either mine or pmichaud's
20:04 cotto_work it builds but doesn't pass any tests due to pct changesw
20:04 pmichaud I did look at ops_pct
20:04 cotto_work any findings?
20:04 pmichaud my suggestion would be to rewrite it in terms of the new nqp :)
20:05 pmichaud I don't know of anything that changed in pct that would cause it to stop working, though.
20:05 bacek pmichaud, good suggestion :)
20:05 pmichaud cotto_work: did you want me to see if I could get it to compile+run again, or ... ?
20:05 bacek compilers/opsc/t/01-parse.t .. Method '!cursor_start' not found for invocant of class 'String'
20:05 Coke chromatic: emit_open() takes a (void *), but is only ever called with a NULL or a (void*) of a const char * const ... why not just make emit_open take the right type?
20:06 chromatic Coke, reading the code.
20:06 bacek it's in generated code
20:06 Coke s/chromatic/any c hackers really/
20:06 cotto_work I was thinking along the lines of "make it work again", but if you think a rewrite's best we could go with that.
20:06 pmichaud bacek: the ops_pct is using the old API for parsing
20:06 pmichaud the invocation semantics for rules in the new system are different from the old
20:06 bacek pmichaud, any links to new API description?
20:07 cotto_work I imagine that the usable code could be ported over once there's a skeleton working.
20:07 pmichaud bacek: normally one parses by calling the .parse method on a grammar object, now.
20:07 Coke reg_sort_f is another function that is defined as taking void but only ever takes a specific type.
20:07 chromatic Coke, is this on your rm_cflags branch?
20:07 Coke chromatic: yes, but fixing on trunk is fine, I can always merge up.
20:07 pmichaud the previous api would invoke a rule sub passing the string to be parsed.
20:08 chromatic Coke, I don't see the warning on trunk.  I'm trying the branch.
20:08 pmichaud I can probably get a skeleton parse working again fairly quickly.
20:08 Coke I'm just trying to get it warnings clean (preferentially by fixing things being warned on)
20:08 Coke chromatic: trunk is sweeping a lot of imcc crap under the covers.
20:09 Coke (rather than just the generated files, it ignored cast-qual on compilers/imcc/*
20:09 cotto_work pmichaud, you mean an nqp-based one?
20:09 Coke nqp-rx?
20:09 purl nqp-rx is http://github.com/perl6/nqp-rx
20:09 cotto_work that's what I meant
20:09 chromatic Coke, fixed one.
20:10 pmichaud yes, an nqp-rx based parser.  parsers are easy :-)
20:11 cotto_work Cool.  Just call it opsc-nqp so that old code can be copied easily from the current opsc if necessary.
20:11 pmichaud will do.  can I do the work in trunk, or make a fresh branch, or ... ?
20:12 cotto_work Trunk would be nice to avoid frequent syncs, but the compiler shouldn't ship until it starts to resemble usefulness.
20:12 cotto_work a new branch would be best
20:13 Coke (merge in the new svn is acceptable, usually)
20:13 pmichaud I'll make a fresh branch from current trunk, then.
20:13 cotto_work Thanks.
20:14 cotto_work I'll look forward to hacking on it.
20:14 cotto_work bacek++ for getting that started
20:14 cotto_work pmichaud++ for the branch and skeleton
20:15 bacek cotto++ # just for fun :)
20:15 cotto_work -Ofun++
20:15 cotto_work karma -Ofun
20:15 purl -ofun has neutral karma
20:15 cotto_work karma Ofun
20:15 purl ofun has karma of 3
20:15 cotto_work (-Ofun)++
20:15 cotto_work karma -Ofun
20:15 purl -ofun has karma of 1
20:17 dalek rakudo/master: 2df2463 | (Solomon Foster)++ | t/spectest.data:
20:17 dalek rakudo/master: Turn on S32-array/kv.t.
20:17 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/2​df2463fe02b1eb17a29d577eb727814c4fd2581
20:21 chromatic Two warnings fixed, Coke.
20:21 NotFound parrot_nci_thunk_gen keeps failing for me in linux i386
20:21 NotFound Doesn't break the build, but fails.
20:22 cotto_work pmichaud, what's a good nqp-rx-based compiler that I can steal code and techniques from, ideally less complex than rakudo?
20:23 NotFound cotto_work: nqp-rx itself?
20:24 pmichaud I'm likely to write one in the next day or so
20:24 pmichaud I want to get started on an nqp book
20:24 pmichaud I was thinking of doing a lolcode compiler again, just because it's fun and demos most of the features
20:25 pmichaud I could also do abc again
20:25 NotFound pmichaud: some people are telling that the squak tutorials are outdated.
20:25 pmichaud yes, they are.
20:26 pmichaud somehow I've never been able to get enthused about sqaak as a language, though.
20:26 NotFound That discourages newcomers.
20:26 Coke so lets replace them with an lolcode tutorial. =-)
20:26 NotFound +1
20:26 purl 1
20:26 Coke as long as there is /a/ tutorial, that's fine.
20:26 pmichaud well, I was hoping for something a little less glib than lolcode, I think
20:26 NotFound As Coke said
20:26 Coke ok. tcl. =-)
20:27 pmichaud but on the plus side, lolcode would be fun (for me), so it's -Ofun
20:27 pmichaud whereas I don't find squaak to be particularly -Ofun.  That's not anything against squaak, for some reason it just never grabbed me.
20:27 Coke i will assume notfound was responding to something other than "tcl' on that.
20:27 darbelo <@Coke> as long as there is /a/ tutorial, that's fine.
20:28 NotFound Well, you can try a minimalistic tcl of sorts ;)
20:28 pmichaud tcl is somewhat weird, though.  it's not along the same lines as a python, perl, or php
20:29 NotFound BTW, the ecmascript in languages need some love... or a big axe.
20:29 bluescreen joined #parrot
20:30 dalek parrot: r44473 | NotFound++ | trunk/compilers/imcc (3 files):
20:30 dalek parrot: switch iSUBROUTINE static function declaration from WARN_UNUSED to IGNORABLE_RESULT because is used that way
20:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44473/
20:30 dalek parrot: r44474 | chromatic++ | branches/rm_cflags/compilers/imcc/symreg.c:
20:30 dalek parrot: [IMCC] Removed a spurious cast from _mk_address() to avoid a compiler warning.
20:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44474/
20:30 dalek parrot: r44475 | chromatic++ | branches/rm_cflags/compilers/imcc (3 files):
20:30 dalek parrot: [IMCC] Changed emit_open() and open emitter signature to take a C string, not a
20:30 dalek parrot: void pointer.  This removes a warning.
20:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44475/
20:30 dalek parrot: r44476 | bacek++ | trunk/compilers/imcc (4 files):
20:30 dalek parrot: Constify some bison/flex strings
20:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44476/
20:30 dalek parrot: r44477 | darbelo++ | branches/rm_cflags (2 files):
20:30 dalek parrot: Make codetest happy.
20:30 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44477/
20:31 PerlJam pmichaud: tcl is a specialist language like lisp, just with a different speciality.  Python, Perl and PHP are almost the exact opposite.   (IMHO)
20:31 pmichaud anyway, a new nqp-based language tutorial is very high on my todo list
20:31 cotto_work pmichaud, I'd love to see that.
20:32 bacek cotto_work, pmichaud, r44478 :)
20:32 bacek PmTcl is very good tutorial :)
20:35 tewk Is it possible to print the address of a PMC from PIR?
20:36 bacek tewk, get_addr $P0
20:37 cotto_work assuming that the PMC doesn't override get_addr
20:37 bacek (not 100% true, but...)
20:37 cotto_work s/addr/pointer/
20:38 cotto_work several do
20:39 mj41_ joined #parrot
20:41 dalek rakudo/master: 9a1d71b | (Martin Berends)++ | src/glue/run.pir:
20:41 dalek rakudo/master: [glue/run.pir] when running as a main program, create $*PROGRAM_NAME and @*ARGS
20:41 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/9​a1d71b2e34e17b29cc8c9267b29a17214582b8f
20:42 kurahaupo1 joined #parrot
20:43 kthakore what is the file cloneflags.pasm?
20:44 kthakore yay!
20:44 kthakore one more demo works
20:44 kthakore :)
20:46 dalek parrot: r44478 | bacek++ | branches/ops_pct/compilers/opsc (5 files):
20:46 dalek parrot: Resurrect OPSC
20:46 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44478/
20:47 AndyA joined #parrot
20:49 chromatic Coke, here are more IMCC warnings squashed.
20:49 Coke chromatic++
20:51 kthakore what do I need to do print in parrot?
20:52 chromatic First, you must invent the universe.
20:52 chromatic Wait, that's "How do I make an apple pie in Parrot?"
20:52 kthakore oh
20:52 kthakore ...
20:52 chromatic There's a print opcode and a say opcode.  Do you need something more complex?
20:52 kthakore chromatic: nope
20:53 kthakore just want to print out a stderr saying file not found
20:53 chromatic Then you need printerr "File not found"
20:53 darbelo you want the printerr opcode.
20:54 kthakore ah ok
20:54 kthakore how do I die?
20:54 kthakore just die?
20:54 purl hmmm... just die is fine
20:54 japhb kthakore, there's a die opcode too
20:54 cotto_work what the bot said
20:54 NotFound chromatic: I want a cry opcode.
20:54 kthakore wow
20:54 kthakore hehe
20:54 NotFound Like say, but to stderr
20:54 japhb kthakore, yep, target^Wopcode heavy environment
20:55 kthakore the opcode die<0> was  not found
20:55 Tene kthakore: it expects a string argument
20:55 kthakore ahhh
20:55 cotto_work yeah.  Whiteknight would like that opcode's days to be numbered, if I read his blog correctly
20:55 Tene I'm planning on experimenting with removing the die opcode in my branch.
20:55 Tene Isn't "say" not a real opcode anymore, or something?
20:56 Tene some kind of magic fake opcode?
20:56 chromatic It's a real wooden boy now.
20:57 kthakore what am I miising? die filename.' not found'
20:57 Tene kthakore: are you hoping that . is a concat there?
20:57 Tene PIR doesn't handle nesting ops like that.
20:57 chromatic die takes a string, not an expression that evaluates to a string
20:57 Tene $S0 = concat filename, ' not found'
20:57 Tene die $S0
20:57 NotFound kthakore: remember, pir is a glorifier assembler, it doesn't evaluate expressions.
20:58 kthakore it says contcat expect \n
20:58 kthakore ok
20:58 kthakore I see
20:58 dalek rakudo/master: 795e94c | (Solomon Foster)++ | t/spectest.data:
20:58 dalek rakudo/master: Turn on S32-array/keys_values.t.
20:58 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/7​95e94c363ea2387823f4f999d1d1b11e84ace06
20:58 dalek rakudo/master: 72a95fc | (Solomon Foster)++ | src/core/Any-list.pm:
20:58 dalek rakudo/master: Quick lazy implementations of Any.keys and Any.values, plus matching protos.
20:58 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/7​2a95fc00152996805a09c9961c7a95ba6dd0863
20:58 NotFound Sometimes it can evaluate something, but when only constant values are involved.
21:00 kthakore Tene: unexpected COMMA, expecting '\n'
21:00 kthakore ???
21:00 * dukeleto just starting using ack.vim, booya
21:00 cotto_work I don't know what that is, but I want it.
21:00 dukeleto cotto_work: ack integration in vim. it is sweet
21:01 Tene kthakore: is 'filename' a P register, or S?
21:01 Coke ack.vim is http://github.com/mileszs/ack.vim
21:01 dukeleto Coke++
21:01 kthakore .param string filenam
21:01 kthakore ..
21:01 Coke google++
21:01 kthakore Tene: String?
21:01 Coke skynet=+
21:01 Tene kthakore: yeah
21:01 Tene kthakore: dunno
21:02 kthakore s ok
21:02 kthakore Tene: let me pus hit
21:02 dukeleto Coke: i was ++'ing you because I was too lazy to give a link ;)
21:02 Tene I was sure I remembered something about 'say' being translated into a pair of 'print' ops, or something...
21:03 Tene was that just imaginary?
21:03 NotFound Give a little link of your web to me...
21:03 Tene src/ops/io.ops still has 'op say', so I must have made that up.
21:03 dukeleto Tene: i think there is a say opcode now, last i remembered, but i could be wrong and/or crazy
21:03 NotFound There is
21:03 Coke I made 'say' a real opcode some time ago.
21:04 Coke it used to be imcc magic.
21:04 dalek parrot: r44479 | chromatic++ | branches/rm_cflags/compilers/imcc (3 files):
21:04 dalek parrot: [IMCC] Added empty do/while loop to definition of YYFREE to silence useless
21:04 dalek parrot: code compiler warning in IMCC parser.
21:04 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44479/
21:04 Tene ah
21:04 NotFound I've been using it with my code generation tests.
21:04 Tene why was it changed?
21:04 Tene because imcc is evil?
21:04 cotto_work We've got too much imcc magic. coke++
21:04 NotFound So I'm pretty sure.
21:05 Tene I was considering making die, exit, throw, etc. into imcc magic for a single super-exception-op
21:05 Coke chromatic: That just leaves the && error. danke.
21:05 Coke s/error/warning/
21:05 Tene but if we hate that, nevermind
21:05 kthakore Tene: http://bit.ly/9DimYF
21:05 chromatic Let's save that magic for Lorito.
21:06 Coke rather than have things that look like opcodes, I would just add .hll_macros or imcc .directives
21:06 NotFound Too much imcc magic is evil specially if/when we're going towards replacing imcc. Forces to duplicate the magic in any candidate.
21:07 nopaste "tene" at 76.27.121.193 pasted "like this, kthakore" (6 lines) at http://nopaste.snit.ch/19779
21:07 Tene Ah, I can do that.
21:08 kthakore Tene: yeah ... doesn't work in my context
21:08 kthakore oh wait
21:08 kthakore concat!
21:08 purl it has been said that concat is "."
21:08 kthakore kok
21:08 Tene kthakore: isn't that what I said the first time?
21:08 Tene 13:57 <@Tene> $S0 = concat filename, ' not found'
21:08 Tene 13:57 <@Tene> die $S0
21:09 kthakore yeah I am stupid
21:09 NotFound BTW you can also use sprintf
21:10 kthakore NotFound: I need a cry opcode now
21:10 kthakore NotFound: you guys are evil :P
21:11 NotFound kthakore: I said you that maybe it will be better to prototype in some hll, remember? ;)
21:11 kthakore NotFound: lies!
21:11 kthakore all lies!
21:11 purl they can't ALL be lies!!!
21:11 kthakore purl: yes they can be ALL lies!!!
21:11 purl kthakore: sorry...
21:12 NotFound Isn't great to have a defensive bot?
21:12 Tene NotFound: he's trying to throw an exception, not just print, I think.
21:12 kthakore Tene: yes
21:12 kthakore if_null image, image_error
21:12 kthakore the crptic messages of parrot are no fun
21:12 kthakore no offense
21:12 NotFound Tene: yes, but sprintf may be useful to format more elaborate error messages before dying.
21:13 kthakore NotFound: I only need a simple fix now
21:13 Tene ahh, I just can't read. :)
21:14 NotFound kthakore: you can wait some months until some of the alternative pir compiler is ready and have better diagnostics ;)
21:14 kthakore NotFound: nah
21:15 kthakore NotFound: I am just playing around now
21:15 kthakore NotFound: not serios
21:15 kthakore yet
21:21 joeri joined #parrot
21:22 dalek rakudo/master: 46bc261 | jonathan++ | t/spectest.data:
21:22 dalek rakudo/master: Turn on S02-magicals/progname.t, thanks to patch from mberends++.
21:22 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/4​6bc26177efc65023df31bb38a066de63bcdf469
21:28 dalek rakudo/master: 6373c3b | jonathan++ | t/spectest.data:
21:28 dalek rakudo/master: Another test file we can run again.
21:28 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/6​373c3bd3608860a8ed6edf1f5a39b94bee7da30
21:29 nopaste "tewk" at 155.98.68.48 pasted "closures, what am I doing wrong?" (45 lines) at http://nopaste.snit.ch/19780
21:33 Austin_away does newclosure supercede the capture_lex thing?
21:40 tewk Austin, I looked newclosure clones the sub and calls capture_lex on the clone.
21:42 Austin Okay, then the other obvious thing is that the vars are in the same register. Is it capturing the register, or its contents?
21:44 tewk The register shouldn't matter, I'm boxing the value and .lex only works with pmcs.
21:44 tewk pmichaud, ping could you take a quick look at http://nopaste.snit.ch/19780, am I doing something stupid?
21:45 Austin Sure. But the capture_lex code points the cloned sub's outer_ctx as the current context, and you're changing that.
21:46 pmichaud tewk: what are you expecting to happen?
21:46 Austin 10, 20
21:46 pmichaud at the time you call each closure, pip is set to 20
21:46 tewk what austin said
21:46 pmichaud a closure doesn't snapshot values, it snapshots variables.
21:47 pmichaud both closures are referring to the same variable.
21:47 pmichaud in Perl, it'd be like:
21:47 pmichaud my $pip = 20;
21:47 pmichaud my $a = sub { print($pip); }
21:47 pmichaud $pip = 30;
21:48 pmichaud my $b = sub { print($pip); }
21:48 pmichaud $a();  $b();
21:48 chromatic 30, 30
21:48 pmichaud both subs are referring to the same $pip
21:48 Austin If you leave the kone sub, then re-enter it, do you get a new $pip?
21:49 pmichaud yes
21:49 Austin *new = different
21:49 pmichaud actually, you get a new $pip whenever you enter
21:49 pmichaud but the closures you created will refer to whatever $pip was in place at the time of the newclosure/capture_lex
21:50 Austin Is that lexical, or dynamic?
21:51 NotFound It captures the contexts chain, like a continuation, isn't it?
21:51 Austin If I take a closure, will that capture find_dynamic_lex stuff?
21:51 pmichaud find_dynamic_lex is strictly dynamic
21:51 pmichaud there's no outer scoping involved
21:51 Austin Right.
21:51 Austin And newclosure is ... ?
21:51 pmichaud newclosure  performs a capture_lex and creates a clone
21:52 pmichaud newclosure $P0, $P1  is the same as    capture_lex $P1;  $P0 = clone $P1
21:52 pmichaud (or I might have those backwards)
21:52 tewk Ok I think I got it.
21:53 Austin So capture_lex is strictly lexical, not dynamic?
21:54 pmichaud it updates the target's outer_ctx to the current context of its outer_sub
21:54 pmichaud I don't know what "strictly lexical" would mean here.
21:54 Austin Capturing nothing but the :outer lexicals
21:54 pmichaud all it does is set the target's outer_ctx
21:55 pmichaud in that sense it "captures", yes.
21:55 Austin Okay, but what's an outer_ctx?
21:55 pmichaud an outer_ctx is the outer scope
21:55 pmichaud i.e., it's the outer context for a sub
21:56 pmichaud let's see if I can explain it this way....
21:56 pmichaud a context is an activation record, it contains the lexicals for a specific invocation of a sub
21:57 pmichaud each context also has an outer context and a caller context
21:57 pmichaud the caller context is the context of its immediate caller
21:57 pmichaud the outer context is the context of the outer scope that was in effect at the time the inner context was created
21:58 Austin okay
21:58 pmichaud when we invoke a sub, we create a context and set its outer and caller contexts appropriately
21:58 pmichaud capture_lex tells a sub which outer context to use whenever it's invoked
21:58 pmichaud (it basically tells the sub to grab the current context of its outer sub)
21:59 pmichaud if we clone a sub and capture_lex the clone, then invoking that clone will always use the outer context that was in effect at the time the clone was created, even if subsequent invocations end up capture_lex on the original sub
22:00 pmichaud (because each capture_lex "resets" the sub to a new outer context)
22:01 Austin But we're only going to see the "different counters running in parallel" type behavior if the outer context changes in between captures, because that's what the captured subs are being pointed at.
22:02 pmichaud I don't follow "different counters running in parallel", but yes, it's if the outer context changes between captures.
22:02 pmichaud Here's an example:
22:02 Austin $pip = 10, $pip= 20
22:02 pmichaud those are the same variable
22:02 pmichaud here's an example...
22:03 Austin Because they're part of the outer context which hasn't changed, right?
22:03 pmichaud right
22:03 Austin (The "different counters" thing is the classic "Look, ma, perl5 closures!" example.)
22:03 pmichaud sub kone() { my $pip = 10; return sub { $pip } };
22:03 pmichaud my $a = kone();
22:03 pmichaud my $b = kone();
22:04 pmichaud $a and $b end up referring to different $pip's
22:04 pmichaud because each invocation of kone() creates a different $pip
22:04 Austin Because kone() exited between captures.
22:04 pmichaud not because it exited, because it was re-entered.
22:04 pmichaud (recursion can also create new outer contexts.)
22:04 Austin Would it have been the same if kone() had yielded?
22:05 pmichaud *entering* a sub is what creates a new context, and a new lexpad.
22:05 Austin okay.
22:07 nopaste "tewk" at 155.98.68.48 pasted "binding verses assignment bites me again, I wish we made a clear distinction in parrot" (30 lines) at http://nopaste.snit.ch/19783
22:08 tewk pmichaud, thanks, I think this is the second or third time I've gotten confused on this same issue, when I see scheme code its clear, when I see PIR, I don't think clearly.
22:08 Tene tewk: so write a scheme compiler, like I did. ;)
22:08 pmichaud afk for a bit
22:11 plobsing_ can someone who knows a bit about PCC take a look at TT 1477?
22:12 plobsing_ I would like advice regarding which kind of aggregate would work best
22:13 chromatic In theory, you could build your own CallSignature (or is it CallContext now?) PMC.
22:14 Coke plobsing_: are you the nci thunks guy?
22:14 plobsing_ Coke: yes. what do you need to know
22:14 Coke why do we have src/nci/extra_thunks.c and src/extra_nci_thunks.c ?
22:14 plobsing_ chromatic: it seems like a perfect fit functionality-wise, but I'm wary of how volatile that code seems to be
22:14 Austin I'm with chromatic. If you're going to build a c data structure, build the one we want.
22:14 plobsing_ Coke: One is for a dynext library and one is for static inclusion.
22:15 Whiteknight plobsing_ (Re #1477): Yeah, best bet is probably to build a CallContext PMC
22:15 plobsing_ Coke: my intent is to be able to disable inclusion of all those thunks when you don't need them
22:15 chromatic One large flaw in the old PCC code was several different paths into PCC from C.
22:15 NotFound plobsing_: parrot_nci_thunk_gen fails foe me in i386
22:15 Whiteknight we might want a Parrot_ext_call_signature() function to make the call with the given signature
22:15 plobsing_ NotFound: nopaste?
22:15 purl nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels)  or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at http://www.extpaste.com/ or http://paste.scsys.co.uk (for #catalyst, #dbix-class, #moose  and others) or http://gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or https://trac.parrot.org/parrot/br​owser/trunk/tools/dev/nopaste.pl
22:15 chromatic Whiteknight, I think we already have that function (with a different name).
22:16 Whiteknight chromatic: I'm not so sure. At least, not in a way that isn't deprecated
22:16 Whiteknight almost all our calling functions that are externally-visible were deprecated
22:16 Whiteknight we do have Parrot_pcc_invoke_from_sig_object
22:16 Whiteknight but that's not an API function that I am aware of
22:16 Whiteknight er, not an extending interface API function
22:16 nopaste "NotFound" at 213.96.228.50 pasted "parrot_nci_thunk_gen fails" (5 lines) at http://nopaste.snit.ch/19784
22:17 NotFound Ugh, ugly formatting
22:17 Coke plobsing_: ok. in the mean time we have two super huge generated files that are nearly identical. that might warrant some docs. =-)
22:18 Coke I am also getting those data_json issues in my build.
22:18 purl okay, Coke.
22:18 plobsing_ NotFound: hmmm...that looks like some of the bugs I dealt with on the tt362 branch
22:18 Coke purl, botdeath.
22:18 purl Coke: excuse me?
22:18 NotFound I think that it also happens in windows builds.
22:18 Coke plobsing_: that generated code is also not warnings-clean, btw.
22:19 Coke (I'm disabling whatever warning that is in the rm_cflags branch for now.)
22:19 plobsing_ Coke: I can try to clean it if you give me the warnings, but I'm not sure what the priority on that should be
22:19 NotFound It fails the same way if calling the pbc instead of the fakecutable
22:20 dalek rakudo/master: 2ab6b38 | jonathan++ | src/pmc/perl6multisub.pmc:
22:20 dalek rakudo/master: Fix .clone on multis.
22:20 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/2​ab6b38ebdd291b5a8a4e37ccc327ae484610f85
22:20 dalek rakudo/master: abd99af | jonathan++ | src/core/Any-str.pm:
22:20 dalek rakudo/master: Add back sprintf.
22:20 plobsing_ NotFound: yeah, I think the pbc has bad counts because somehow ImageIOSize is giving bogus results.
22:20 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/a​bd99af55f2219c8363c7257fd31a939469a710c
22:20 dalek rakudo/master: d798874 | jonathan++ | t/spectest.data:
22:20 dalek rakudo/master: We now pass S32-str/sprintf.t again.
22:20 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/d​7988741953be329173b96b7cc6ebbf218504a96
22:23 plobsing_ the bug is elsewhere, but the fault is still mine :-)
22:25 NotFound plobsing_: the problem is that the build doesn't break, so is easy to not see the fail.
22:37 Coke plobsing_: the build should not have any warnings.
22:37 plobsing_ Coke: I am willing to write docs (there's actually a whole stack I should write about freeze/thaw). Please suggest where I should mention this.
22:37 Coke plobsing_: I don't know. I only noticed they were identical because they both generated the exact same compiler warnings.
22:38 plobsing_ Coke: nopaste the warnings and I'll try to fix 'em
22:40 Coke plobsing_: will try to later. in branch they're squashed. (you should be seeing them on trunk)
22:52 AndyA joined #parrot
23:00 dalek rakudo/master: 740ce02 | (Solomon Foster)++ | t/spectest.data:
23:00 dalek rakudo/master: Turn on S32-array/delete.t.
23:00 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/7​40ce02a0f3e2b96b11c5de3db7cb93725b40c90
23:12 dalek rakudo/master: 6ffe11a | jonathan++ | src/metamodel/RoleToClassApplier.nqp:
23:12 dalek rakudo/master: Just rely on code thingies stringifying sanely; means Parrot subs just work in the role composer too.
23:12 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/6​ffe11a1dcdf010f35893c2e382780cd39aed996
23:12 dalek rakudo/master: 7ce3765 | jonathan++ | src/glue/dispatch.pir:
23:12 dalek rakudo/master: Fix up .+ and .* with multis.
23:12 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/7​ce3765cedd60758f436789fd9c8424e0ad65087
23:12 dalek rakudo/master: 3be16bb | jonathan++ | t/spectest.data:
23:12 dalek rakudo/master: We now pass S12-methods/calling_sets.t again.
23:12 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/3​be16bb47d9dff3b967f6eccdf34af2d7a817961
23:18 dalek rakudo/master: cf150fc | pmichaud++ | src/Perl6/Actions.pm:
23:18 dalek rakudo/master: Quoted lists should act like ('1', '2', '3') instead of '1', '2', '3'
23:18 dalek rakudo/master: (especially in function calls).
23:18 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/c​f150fc08a41f72fbcc9a1ac54f8ce6348141a48
23:18 dalek rakudo/master: b3fcd6c | pmichaud++ |  (5 files):
23:18 dalek rakudo/master: Merge branch 'master' of git@github.com:rakudo/rakudo
23:18 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/b​3fcd6cbb06f623135f8379a0a15710c1c4fcb16
23:18 dalek rakudo/master: a215ee5 | pmichaud++ |  (3 files):
23:18 dalek rakudo/master: Merge branch 'master' of git@github.com:rakudo/rakudo
23:18 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/a​215ee54d77686b4c9f9246a255f157d0882cb0f
23:38 Coke plobsing_: you still around?
23:39 plobsing_ yes
23:39 Coke k. generating warnings.
23:43 Coke plobsing_: http://feather.perl6.nl/~coke/er
23:44 dalek tracwiki: v4 | cotto++ | LoritoPrimitives
23:44 dalek tracwiki: add some of the simpler smalltalk operations
23:44 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Lori​toPrimitives?version=4&amp;action=diff
23:49 plobsing_ Coke: if I understand correctly it wants 'char *(* func_t)()' to be 'char *(* func_t)(void)' right?
23:49 dalek parrot: r44480 | coke++ | branches/rm_cflags/lib/Par​rot/Configure/Compiler.pm:
23:49 dalek parrot: Treat .mak files like makefiles for the purpose of genfile
23:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44480/
23:49 dalek parrot: r44481 | coke++ | branches/rm_cflags/config/auto/pmc.pm:
23:49 dalek parrot: Don't tack on gcc-specific warning flags here...
23:49 dalek parrot: ... if we need these, do it via config/auto/warnings.pm instead.
23:49 dalek parrot: review: http://trac.parrot.org/parrot/changeset/44481/
23:49 Whiteknight plobsing_: the two *should* be equivalent. What compiler are we talking about?
23:50 plobsing_ Whiteknight: ask Coke
23:50 Whiteknight Coke?
23:50 purl hmmm... Coke is Will Coleda <mailto:will@coleda.com> or perpetually annoyed. or magical ticket robot or (if Diet), something that turns into formaldehyde in my blood. or getting those data_json issues in Coke's build.
23:50 Whiteknight well, Coke IS perpetually annoyed...
23:51 Whiteknight I think he was playing around with suncc
23:52 plobsing_ sun eh? do they make anything that doesn't hate me?
23:53 chromatic Do they make anything anymore?
23:54 kid51 joined #parrot
23:56 Whiteknight ZING!
23:56 Whiteknight If Oracle drops support for OpenSolaris, I propose we drop support for it too
23:57 Whiteknight because: screw OpenSolaris
23:57 darbelo I doubt they will, and even then. There's still (unopened) Solaris to think about.
23:58 Whiteknight damn fart crap.
23:58 darbelo And, it's Sun CC that you probably hate and not the OS.
23:59 Whiteknight no , I'm particularly unfond of the OS as well
23:59 dalek rakudo/master: 852213b | (Solomon Foster)++ | t/spectest.data:
23:59 dalek rakudo/master: Turn on S32-hash/pairs.t and S32-list/grep.t.
23:59 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/8​52213bcf7d80ff4f3efc206817fd4a648462d90

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

Parrot | source cross referenced