% iblechbot has joined #parrot % iblechbot has left iblechbot!~iblechbot@170.4-dial.augustakom.net % AndyA has joined #parrot % Senaka has joined #parrot seen chromatic chromatic was last seen on #parrot 1 day and 2 hours ago, saying: Or jonathan. [Apr 4 22:49:14 2008] seen Allison Allison was last seen on #parrot 4 days and 12 hours ago, saying: Infinoid: it's not currently spec'd. In fact, we're not planning to implement a compacting or copying collector until after 1.0 [Apr 1 12:41:04 2008] oops seen Infinoid Infinoid was last seen on purl 3 hours and 4 minutes ago, saying: seen Jonathan Jonathan was last seen on #parrot 14 hours and 33 minutes ago, saying: I thought the .c extension triggers this? seen lathos lathos was last seen on #parrot 2 days and 18 hours ago, saying: For that you may want the concurrency PDD. That's another one worth staying away from. [Apr 3 06:26:49 2008] seems that no one is arnd :( % Senaka has left Senaka!~senaka@124.43.220.157 % Senaka has joined #parrot % Senaka has left #parrot % iblechbot has joined #parrot r26801 | fperrad++ | trunk: : [readline] : - fix configure on MinGW32 diff: http://www.parrotvm.org/svn/parrot/revision?rev=26801 % Senaka has joined #parrot anyone knows about copy-on-write usage? % barney has joined #parrot r26802 | jonathan++ | trunk: : [core] Make Integer and Float PMCs handle somewhat better when subclassed by a high level object. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26802 % AndyA has left AndyA!~andy@87.238.46.251 % AndyA has joined #parrot % AndyA has left AndyA!~andy@87.238.46.251 % AndyA has joined #parrot % Senaka has left #parrot r26803 | bernhard++ | trunk: : [coding_std] : Satisfy c_operator.t diff: http://www.parrotvm.org/svn/parrot/revision?rev=26803 % Senaka has joined #parrot r26804 | bernhard++ | trunk: : #50596: [PATCH][PCT] Add basic "tests" : Apply patch from aparker42@gmail.com with some tweaks. : 'svn move' t/compilers/past-pm/*.t' in order to preserve history. : Load 'dumper.pbc' as 'Dumper.pbc' was not found. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26804 % rdice has joined #parrot % Senaka has left Senaka!~senaka@124.43.220.157 % Senaka has joined #parrot what is Parrot_dod_free_pmc for? have you got to explicitly say what to free? Senaka: Sorry, I never dug into GC % Senaka has left Senaka!~senaka@124.43.208.130 r26805 | bernhard++ | trunk: : Give credit to Andrew Parker. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26805 % kid51 has joined #parrot % barney has left barney!~bernhard@dslb-084-058-133-109.pools.arcor-ip.net % paco has left paco!~chatzilla@139.Red-80-36-122.staticIP.rima-tde.net r26806 | infinoid++ | trunk: : [src] Apply C++ correctness patch from RT #52510. Senaka++ diff: http://www.parrotvm.org/svn/parrot/revision?rev=26806 Infinoid: Have begun looking at the ops2c patch. This might be a good candidate for starting a new SVN branch in which to do revisions -- particularly if changes to the tests are needed. ok. what's the goal? the goal is to announce a boostrapped perl6 one way or another in YAPC::NA :) purl: I think we've already achieved that goal. kid51: sorry... I'm happy to work on refacting ops2c further, but it helps me to know when to stop :) Since ops2c.pl is invoked very early in the 'make' process, any errors we make have big effects downstream. So this limits potential damage to others working in trunk. This wouldn't have to be a long-lived branch, but it would permit all (3) interested to work on it without bothering others. sounds reasonable It's what I did when I refactored this script originally -- but I'll let you make the call. please go ahead and make the branch k I guess my first step would be to document Ops2c::Utils, because I'm unlikely to understand the code otherwise. Call: svn co https://svn.perl.org/parrot/branches/ops2c r26807 | jkeenan++ | ops2c: : Creating ops2c in https://svn.perl.org/parrot/branches diff: http://www.parrotvm.org/svn/parrot/revision?rev=26807 r26808 | jkeenan++ | ops2c-26806: : Tagging trunk at r26806 so that the ops2c can later be synched to it. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26808 Ah, this dalek bot fellow performs much better than svnbotl did in this usage. dalek++ seen barney barney was last seen on #parrot 1 hour and 9 minutes ago, saying: Senaka: Sorry, I never dug into GC exterminate all humans I think svnbotl ignored all changes to tags/, only reporting changes to trunk and branches this one isn't so discerning. I don't mind that. Tags don't change very often. But in this circumstance, svnbotl would puke at the large number of files being created/modified and go off-line for 10-15 minutes. Fixing it to ignore tags would probably be a snap, but might not be worth the effort. * kid51 applies Infinoid's patch to Ops2c.pm in ops2c branch and runs tests with Devel::Cover All tests in t/tools/ops2cutils/*.t continue to pass. Coverage actually improves slightly: lib/Parrot/Ops2c/Utils.pm 99.2 86.1 100.0 100.0 maybe I reduced the number of conditionals slightly. *shrug* Re-reading the POD in Parrot::Ops2c::Utils, I see that I had to write an FAQ to explain some of its arcane aspects. The most unusual/annoying aspect of it was the closing of a filehandle and its subsequent reopening. I've never seen that in any other Perl program. I can see why you'd be so enthusiastic about refactoring it. r26809 | jkeenan++ | ops2c: : Applying Mark Gline's 20080405 patch in : http://rt.perl.org/rt3/Ticket/Display.html?id=52506. Refactoring of several : internal subs in Parrot::Ops2c::Utils. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26809 * Coke wakes up. r26810 | jonathan++ | trunk: : [core] Make scalar PMC (and things inheriting from it) work better when inherited from by high level classes. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26810 r26811 | jonathan++ | trunk: : [core] Some of the key handling code blindly assumed what it was being passed was a key. Add some checks for this. Before, the fact that you passed an Integer PMC into there and it would do something sensible (as happens with array access) was pretty much blind luck. This change lets languages that have different integer types that maybe use flags or pmc_ext have their arrays work. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26811 % paco has joined #parrot % jan has left jan!~chatzilla@90-229-128-103-no52.tbcn.telia.com % Senaka has joined #parrot seen Infinoid Infinoid was last seen on #parrot 51 minutes and 48 seconds ago, saying: I can see why you'd be so enthusiastic about refactoring it. seen Jonathan Jonathan was last seen on #parrot 21 hours and 16 minutes ago, saying: I thought the .c extension triggers this? jonathan: ping infinoid: ping I need to know few things regarding the GC. Is anyone around? r26812 | pmichaud++ | trunk: : [rakudo]: : * Fix 3e4 parsing bug (RT#49910). diff: http://www.parrotvm.org/svn/parrot/revision?rev=26812 Senaka: hi hi What do you need to know? I'll answer if I can... k thanks first of all have you got to call methods such as, Parrot_dod_free_pmc? Isn't the GC supposed to internally manage these? No, those should just be called by the GC itself. next is that, as it seems from the exposed interface, the GC is un-aware of object allocations? If not, the interface seems to be distributed beyond the header dod.h Allocations are out of arenas. I think it's maybe memory.c that deals with some of that. so isn't the GC informed saying... I'm picking space from you? maybe the GC works that out after the fact, during the next sweep Right. It goes through the arenas that are allocated. you mean the allocation? No, the GC. yes The allocation is done out of these arenas. :) the GC discovers the allocation after it's already happened I meant the discovery rather ok but is this inline with normal GC operations? ex:- say I allocate large chunks so rapidly and free them almost instantly so, the "sweep" phase discovers a lot of newly allocated blocks or doesn't :) sweep isn't called that often isn't it? and the GC being stop-the-world I don't think so or the mark phase am I missing something here? sweep is called either explicitly from the bytecode using the sweep instruction, or on an allocation when all arenas are full. * Infinoid still learning the terminology "or on an allocation when all arenas are full." where is the code that figures this out? grepping didn't get me any clue... :( src/gc/memory.c I think oh no, not there src/gc/smallobject.c That one. cool found it what's get free object doing? do you reuse dead PMCs? hmm seems... seems? I know not seems. it'll reuse the buffer from them, sure While everyone's talking about GC, how is the GC going to handle an embedded C library that does it's own allocs -- will it take hints from the shim code that does the embedding, or just let that all play off in a corner on its own? malloc can be wrapped right? The GC only cares about objects allocated out of its memory pools. stuff allocated outside the arenas can fend for itself Right. yes that's legal new question where would such objects lie? you're asking where PObjs are stored? Infinoid: stuff allocated outside the arenas can fend for itself doesn't the Arenas span the heap space? oh. that'd end up wherever malloc decides to put it, which is platform-specific I see The areans hang off struct Arenas *arena_base; in Parrot_Interp structure (interpreter.h) * skids assumes if a PDC references into such an allocation there is a way to tell the pointer apart from a GC-controlled buffer object? skids: it wouldn't be pointing into an arena's memory range so ok... Now since allocations are handled by Arenas the GC will have to rather seek locations of such allocations perhaps scan a list on Harmony, the allocation would happen through the GC rather so will have to work on some wrapper perhaps or are their some callbacks etc.? Senaka: Harmony can service the calls parrot makes into smallobject.c, right? you wrap those, I mean are you talking about object allocation, or arena allocation? object ok. so yeah. parrot calls gc_ms_get_free_object (or whatever), your wrapper calls the appropriate Harmony function, and Harmony gives us a newly allocated buffer right? So when reading the new PDD I did think of a potential "confounding case" surrounding the "buffers never point to PDDs" thing -- a parrot-native trie data structure would have trouble with that, given that "keys" and "values" (the latter pointers to PDDs) are stored in the trie. (and having a mapping table of values to PDDs would take extra space, defeating the purpose of a trie) PDDs? PMCs? kid51: you around? Yes newly allocated buffer ... chunk of memory rather Infiniod: right, sorry, still learning to squawk right. :-) well, may be we'll have to address PMC allocations and buffer allocations separately is it? I was under the impression that PMCs resided within buffers hmm buffer is inside PMC ain't it? kid51: how goes the TAP::Harness refactoring of t/harness? I'm volunteering the rest of my day today to set up a build farm, using whichever (smolder/pgbuildfarm) build farm orchestration we decide(d) on. that's what I was thinking I have 400GB of disk and 3072MB of ram and VMWare Server 2.0 beta2 on amd64 to devote to the project. from PDD: "Parrot really has two independent GC models, one used for objects (PMCs) and the other used for buffers (including strings). The core difference is that buffers cannot contain other buffers, so incremental marking is unnecessary." diakopter: that's one good box It' skids: yes it says so that makes sense. there's some confusion over the definition of "buffer" PMCs are PObjs It's been rather dormant. But I have to eat breakfast now, so let me get back to you in a while. buffer is like any free space? your "trie" data structure is a PMC, which points to other PMCs % kid51 is now known as kid51_afk % iblechbot has left iblechbot!~iblechbot@ppp-62-216-204-111.dynamic.mnet-online.de data buffers (strings and so forth) are allocated from a different pool, I guess yes two arenas pdd09 says so Infinoid: internally it has to point to other buffers -- every node in the trie being a PMC would not allow for a compact trie, too much overhead. * diakopter begins creating oodles of VMs. ok, now there's another concept of movability of buffers so I believe that a buffer == raw chunk of memory isn't it? (mainly I came by this quandry when pondering fixed-type-hashes-as-tries and libjudy, but if it turns out that regexps can do double duty as efficient DFAs that might be better than a trie implementation) Senaka: in this case, "buffer" has the specific meaning of "chunk of memory allocated from the 'buffer' arena, used for raw data and not for PMCs" Infinoid: yes e.g. adding a pair to a "trie" is $regexp = regexp { $regexp | $pair }, and dumping the trie uses the :e adverb. so I think I got it right here ok :) so well that seems sorted and perhaps might be too early to decide on what could be done what could be done further what needs some attention is how the GC discovers the allocation? isn't that what the whole mark & sweep thing does? hmm... well ok let me put it like this in Harmony, when you allocate, the GC can be made aware of the process, so that it will Garbage collect if the memory is exhausted how does Parrot do that? smallobject.c doesn't say much on this fact are you talking about the need to allocate more arenas, or the need to exert memory pressure because the system is out of RAM and malloc failed? like, isn't it required that the GC running in some situations where there is no contiguous blocks of memory at least in the arenas for buffers sure, so it allocates a new arena and adds it to the list new arena? I think you didn't get me say that I want to allocate in a given arena. But it is nearly full. freespace is scattered. Now when I call alloc, should the GC get called too so that it can make space for me? alloc is a gc function, so the gc is called if the arena is out of free objects, it needs to either call malloc() to get another arena, or realloc() to expand an existing one, right? hmm ok well in the case of PMCs yes in the case of buffers not always you can compact ain't it? if you find all the pointers pointing to those buffers, and fix them all up, and prevent contention from other threads, you can move things around, yes I don't think we do that at the moment. aha that's what I was searching I guess :) on which OSes/architectures do folks want to see parrot smoked nightly this is where we start talking about bounce pointers or backreferences or read barriers, and people's eyes start glazing over ok seems sorted next issue is regarding Copy-on-write Harmony doesn't support this is COW mandatory? COW is a memory optimization. you could just copy immediately, at the expense of extra memory usage and extra processing overhead I don't know how big an effect it would have. (I've seen instances where the effect would be huge, but I don't have any real world stats.) ok so perhaps it is not a key requirement isn't it? it is not mandatory its just a nice hack, where it's available. k cool Now I have just a few left to sort out Parrot_dod_trace_ methods are some we'll probably have to fix up some code which expects to set the PObj_COW_FLAG bit and borrow another object's pointers, but that's all hmm % jan has joined #parrot % tetragon has joined #parrot Parrot_dod_trace_roots will mark all live objects isn't it? looks like it trace_system_areas() is interesting, traces the current thread's stack that's thread stack enumeration :) ./breakfast & ok % buildbot has left buildbot!~buildbot@smtp.matisse.net any thoughts on pinning objects? % kid51_afk is now known as kid51 diakopter: Broadly speaking, there are two big problems with our smoke testing: * Limited scope of platform/OS/C-compiler combinations from which smokes are being submitted. * Badly designed software which refuses to accept valid smoke reports but does allow people to post raw HTML directly to our servers. Obtaining a big server with plenty of VMs helps with the first problem, but not necessarily the second. I started to refactor the various components: * t/harness * lib/Parrot/Harness/Smoke.pm * tools/util/smokeserv-client.pl * tools/util/smokeserv-server.pl But ran into several obstacles: * Parrot::Harness::Smoke require-s two obsolescent CPAN modules, Test::TAP::HTMLMatrix and Test::TAP::Model::Visual -- and then overwrites a key sub from Test::TAP::Model. Very much a hack. * Trying out changes in our smoke setup requires coordination with perl.org webmasters, which, understandably, cannot be a high priority on their schedules. * Coke wanted us to consider Smolder, Tinderbox, etc. The latter did not seem appropriate for our needs; the former is poorly documented. My hope was to refactor the 4 files above so that I could run a test smoke server on my own server and then: * Have t/harness and Smoke.pm generate a data file -- rather than a fully CSS-ed HTML file -- which would be sent by client.pl to a server of anyone's choice, which would then transform the data into HTML (or any other reporting medium). * Use this set up for fine-tuning and debugging. And that's where things have stood since Jan 23. .eor Senaka: apparently not Ok and is it possible to force GC? yes I think since the interface is exposed yeah, there's a pasm op for that t/op/gc.t tests it what the op? it has been said that the op is an opcode structure. It's the thing that perl -Dx prints collect http://svn.perl.org/parrot/trunk/docs/ops/core.pod purl, forget the op Infinoid: I forgot op oops, nm -- that one isn't in the repo :) yeah 404 http://svn.perl.org/parrot/trunk/src/ops/core.ops look for found it on the machine http://svn.perl.org/parrot/trunk/docs/ops/core.pod srry /usr/local/share/doc/parrot/docs/ops/core.pod right... docs/ops/core.pod gets generated from src/ops/core.ops afk, lunch got it Parrot_go_collect in parrot/resources also, can you time the GC operations? % Limbic_Region has joined #parrot kid51: I have a VPS which can host another smoke server, if necessary, helping the 2nd problem. Which smoke system do you want to use? Smolder? % iblechbot has joined #parrot I know very little about Smolder. When I went to its sourceforge sites, I couldn't find much documentation. So I wasn't in a position to explore it. If you are familiar with it and can get a prototype up and running, then go for it. Would Smolder both run the smoke tests and display the results? Or would it simply receive reports generated by average Parrot users and display them? Or some combination of the two? * diakopter looks at http://buildbot.eigenstate.net:8040/ I guess there is http://www.perlfoundation.org/parrot/index.cgi?buildbot does anyone know anything about that? This page is mostly my musings: http://www.perlfoundation.org/parrot/index.cgi?rfp_parrot_needs_better_smoke_reports kid51's url is at http://xrl.us/biy53 http://www.perlfoundation.org/parrot/index.cgi?buildbot is Matisse Enzer's description of that which you were looking at at eigenstate.net Both pages were last updated in January of this year. kid51: do you still think storing test results by testfile.t is the right way to go? (I'm not challenging it; just curious) r26813 | jonathan++ | trunk: : [rakudo] Start refactoring the type hierarchy somewhat. Add the Any type and make types such as Int, Num and so forth lie beneath this - basically, all but Junction. This should allow us to get MMD and Junctions working with Any as the default parameter type. Additionally, it means we can start making classes do various roles, like Positional. Due to what appears to be a Parrot bug, the vartype storage doesn't seem to get inherited in classes that also inhe diff: http://www.parrotvm.org/svn/parrot/revision?rev=26813 kid51: I think I'll set these up merely to run 'make smoke' and not try to solve other problems. What OSes/architectures do you suggest I create as VMs? I was going to do: 32- and 64-bit Windows 2003/2008 on cygwin, strawberry, and msvc++ (12 Windows VMs), and 32- and 64-bit DebianSid/Centos5.1. any other suggestions? diakopter: In debugging test failures, t would be useful for me to say, "At what point did this test start to fail?" That would seem to require a data structure where the fundamental unit is the individual .t file. Which is what it in effect is right now ... except that the data is not searchable because it's all hard-coded in HTML files. Those are excellent starting points. We don't get many reports from Windows in general, and we would benefit from regular periodic smoking on the various C compilers people use on Windows. % Senaka has left #parrot Some people get consistently smooth builds on Windows; others experience horrible failures. But we don't have enough data to spot patterns. It would be good to add a "diakopter's battle plan" section to http://xrl.us/biy53 wow, Ops2c::Utils->_reset_line_number() is silly. a simple seek(0, 0) would work much more nicely. Feel free to refactor away! As I said earlier, that's the way the code was before I started with it, and not breaking anything was my biggest concern. But in a branch, you can break as much as you want ;-) \o/ * Infinoid goes for the high score r26814 | infinoid++ | ops2c: : [ops2c] Stage 1 of cleaning up the silly file handling: : * single function to write a C source file, just calls the top/bottom functions : for now. : Next step is to fix the handling of $SOURCE, and to use seek() instead of : reopening it. Or just use $SOURCE->input_line_number() instead of counting : them manually. *gasp* diff: http://www.parrotvm.org/svn/parrot/revision?rev=26814 r26815 | infinoid++ | ops2c: : [ops2c]: : * name it print_c_source_file() to be consistent with print_c_header_file name. : * make print_c_source_file responsible for opening the file, then pass that to : the child functions. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26815 diakopter: all of them? Coke: sure, why not? diakopter: seriously, though, we seem to have linux and darwin covered. something solaris x86 would be awesome. Coke: ok Coke: oh, i see your joke I've used SunOS... does that count Infinoid: 26814 passed all tests. But tests start to break at 26815. diakopter: kid51 has some excellent points, but if it's a question of which platforms, pretty much anything other than linux will help more than linux. (just because many of developers use that and catch stuff sooner than later.) this is prep to fix _reset_line_number(), which I should have done in a few minutes diakopter: yup. % askie has left askie!~askie@81.171.100.207 r26816 | infinoid++ | ops2c: : [ops2c] It helps when I use the correct syntax for IO::File. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26816 amd64-linux-x86_64 is updated infrequently "kid51" at 70.107.12.156 pasted "Failures in 'make buildtools_tests' at r26815" (31 lines) at http://nopaste.snit.ch/12631 Coke: agreed re platforms there needs to be more google hits for "Parrot polishing" I just told a friend that's what I was doing today, and think I gave him the wrong idea. % kid51 is now known as kid51_afk % Coke is now known as Coke_oooh_ps3 % askie has joined #parrot ok. I'll have to fix up the test suite from the API changes I just made r26817 | infinoid++ | ops2c: : [ops2c] There, _reset_line_number() no longer reopens anything. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26817 * diakopter downloads solaris 10 isos r26818 | infinoid++ | ops2c: : [ops2c] Fix and clarify the SYNOPSIS a bit. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26818 % braceta has joined #parrot % ruoso has left ruoso!~ruoso@81.84.156.87 r26819 | infinoid++ | ops2c: : [ops2c] Fix POD to pass t/doc/pod.t. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26819 % ruoso has joined #parrot r26820 | infinoid++ | ops2c: : [ops2c]: : * Move the final rename() into print_c_source_file(). Child subroutines should : only be concerned with printing. : * Add a test for print_c_source_file(), based on 03-print_c_header_file.t. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26820 % grim_fandango has joined #parrot r26821 | infinoid++ | ops2c: : [ops2c] update MANIFEST and metadata diff: http://www.parrotvm.org/svn/parrot/revision?rev=26821 % kid51_afk is now known as kid51 4 tests still failing as of 26821 kid51: any other platforms besides solaris? Well, why not ask for the moon and the stars! OpenBSD, NetBSD AIX kid51: fixing up t/tools/ops2cutils/ right now last time I tried dragonfly, it was at a very early stage of support Let me ask an OT question: If I've just been given a shell account on a Solaris box, and if the default shell on that is ksh, but I want to use bash, what is the quickest way to make bash my default shell? check if the chsh command exists. if it does, use that. Infinoid: We were getting regular smoke reports on Dragonfly; good ones too. great. I had to patch some stuff in config/ to even get it to build but that was a while ago. * diakopter wonders if AIX is available % Senaka has joined #parrot Infinoid: Unfortunately, no 'chsh' or similar commands on this Solaris box. Would setting up a .profile file work? to make ksh execute bash? probably might be as simple as inserting an "exec bash". but if it doesn't work for some reason, it might be difficult to remove that again. % braceta has left #parrot have a second shell open just in case u mean bash on solaris? Yes. or any other shell? I specifically want bash on solaris. u can right? i mean just change the shell that's what he was asking. let me see if I can locate some solaris folks It's definitely available on this box: /opt/bash/3.0/bin/bash is the resultant of various symlinks. no chsh? :( correct, no chsh I have to leave now, so if anyone has a suggestion they can msg me in purl. /etc/shells? seeya, kid51 ok will tell purl c ya % kid51 has left kid51!~jkeen@70.107.12.156 http://www.unixguide.net/unix/bash/A7.shtml perhaps Infinoid: how do you tell purl to keep this msg? msg Sorry, I've never seen before. r26822 | jonathan++ | trunk: : [rakudo] Re-work constraint types so we can use them in declarations (e.g. my EvenInt $x). diff: http://www.parrotvm.org/svn/parrot/revision?rev=26822 msg kid51 http://www.unixguide.net/unix/bash/A7.shtml Message for kid51 stored. r26823 | infinoid++ | ops2c: : [ops2c] move the $file->close() to the toplevel print_c_source_file() function. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26823 r26824 | infinoid++ | ops2c: : [ops2c]: : Adapt 04-print_c_source_top.t and 05-print_c_source_bottom.t to the new API. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26824 % AndyA has left AndyA!~andy@87.238.46.251 r26825 | allison++ | trunk: : [manifest] Deleting file that doesn't exist from manifest. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26825 r26826 | infinoid++ | ops2c: : [ops2c]: Adapt the rest of t/tools/ops2cutils/ to my API changes. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26826 why does src/jit_emit.h have source in it? take a look at 1720+ aha JIT % Ademan has left Ademan!~dan@h-68-164-168-66.snfccasy.dynamic.covad.net ok ok implicit function pointer casts are seen in src/jit_emit.h these won't compile in C++ also a function pointer casted to void * AFAIK on a 64bit PPC is going to have its address truncated this is because a function pointer being larger than a data pointer I don't know about ppc64, but I know all pointers are 64 bit on amd64 and void * is a data pointer so we get warnings about casting int to (void*), which are fixed by using long instead of int long void? oh oh ok ok long to void * is valid is anyone here who tests on ppc64? :) even int to void * is valid yes that should fail int to void * is not portable, it causes warnings on amd64. so don't do that. purl, int to void *? gcc is silent about this warning but windows throws it i think int to void * is not portable, it causes warnings on amd64. so don't do that. * Infinoid pats purl on the head * purl purrs gcc warns about it here ok logically it is correct did u (void *)int_type? and fail? void abort(void); purl, forget void abort(void); Senaka, I didn't have anything matching void abort(void); heh wierd ok his definition of "fail" is good, I think http://www.parrotvm.org/svn/parrot/revision?rev=26796 thanks check is an "int", but it doesn't store a pointer value, it's just a flag they wanted to pass through that's something cool to know s/check/check_only/ ok * Senaka wonders what 128bit would look like % guru has joined #parrot ipv6 routing would be *fast*. * Senaka thinks new C standard they'd probably invent something ridiculous like "long long long" for 128 bit ints there is a long long /// int hehe you can do things like that but personally, I'd be happy if they just called it uint128_t and left everything else alone no need to break things even worse. that'd be super cool Toshiba's got a 128-bit MIPS processor ok regarding the fn pointer -> data pointer issue oh cool * Senaka thinks intel would be thinking of a 128bit even nw * Senaka thinks AMD might already have one Intel's too busy thinking up new 3 letter acronyms, I think I think we'd see more benefit if they fit 8 cores into one chip, rather than increase the register size again hehe that's only a 15-bit address space (TLAs) true hehe * Senaka wonders about temperature control that's the new "BBQ" feature instead of trying to keep it cool, they've added a grill so you can cook things on it ok well, speaking about the ppc64 it is something popular does that go with OMG and WTF? and that's an undefined behaviour in the C99 standard Intel's Proprietary WTF Technology Preview :) will feature in the new Intel Pentium(c)(r) Quad Nifty Über Spiffy Pro Core Pro Pro Hypercube Deux(tm)(omg) * Senaka wondering whether the PC will replace the grill % Ademan has joined #parrot why not? P4 chips are already rated up to 100 watts * Senaka thinks the laptop will the only thing you need for a picnic Senaka: actually, you can configure processors in all kinds of ways that aren't friendly to C99. For instance, you can configure x86 in a protected mode with 16-bit data pointers and 32-bit code pointers ...but noone does that. Except ppc64, apparently. * Senaka wondering where I saw this ppc64 issue here's a good way to rate how annoying and complicated each platform is: du -sb /usr/src/linux/arch/*/kernel/module*.c | sort -n top 5: IA64, PA-RISC (same thing as IA64, I thought), PPC64, S/390, and Blackfin. (that's the code that has to perform relocations for modules you've inserted with insmod. so it has to deal with all kinds of weird linker stuff.) * Senaka Rethinking about the PPC64 issue http://developer.apple.com/documentation/Darwin/Conceptual/64bitPorting/building/chapter_5_section_2.html seems helpful Senaka's url is at http://xrl.us/bizau msg kid51 There, ops2c passes all tests again as of r26826. And I've got all the funky filehandle nonsense consolidated into print_c_source_file(), where it should be. (opening, closing and renaming) Message for kid51 stored. % Senaka has left Senaka!~senaka@124.43.218.62 % Psyche^ has joined #parrot % Patterner has left Patterner!~Psyche@e177233083.adsl.alicedsl.de % Psyche^ is now known as Patterner % guru has left guru!~guru@67-208-9-121.ip.tor.radiant.net % leo has left leo!lt@feather.perl6.nl % pmichaud has left pmichaud!pmichaud@feather.perl6.nl % jonathan has left jonathan!jonathan@feather.perl6.nl % wolverian has left wolverian!wolverian@feather.perl6.nl % Juerd has left Juerd!juerd@feather.perl6.nl % PerlJam has left PerlJam!duff@feather.perl6.nl % dalek has left dalek!dalek@feather.perl6.nl that soooo isn't dalek's fault. :) % dalek has joined #parrot % svnbotl has joined #parrot % Juerd has joined #parrot % svnbotl has left svnbotl!diakopter@feather.perl6.nl diakopter: I sent svnbotl a SIGSTOP, but maybe you want to remove it from supervise? % wolverian has joined #parrot I'm quite happy with dalek's performance thus far. dalek: *hug* % pmichaud has joined #parrot % pmichaud has left pmichaud!pmichaud@feather.perl6.nl % pmichaud has joined #parrot Hi. If anyone knows which process on feather used all available memory (and swap), please let me know. % AndyA has joined #parrot % Stephen has joined #parrot % LimbicRegion has joined #parrot % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net % LimbicRegion is now known as Limbic_Region % Limbic_Region has left Limbic_Region!~Limbic_Re@c-68-49-236-220.hsd1.md.comcast.net % Theory has joined #parrot % lichtkind has joined #parrot pmurias: everything went fine did hit deadline last second, like in american movies % Stephen has left #parrot pmichaud: everything went fine did hit deadline last second, like in american movies % jonathan has joined #parrot % leo has joined #parrot % iblechbot has left iblechbot!~iblechbot@ppp-62-216-196-175.dynamic.mnet-online.de % AndyA has left AndyA!~andy@062249178199.customer.alfanett.no % paco has left paco!~chatzilla@139.Red-80-36-122.staticIP.rima-tde.net % AndyA has joined #parrot % Coke_oooh_ps3 is now known as COke % COke is now known as Coke * Coke skips review. particl1: you in? we need to follow up on eric's question regarding mentors. kid51: I added amd64-linux-cc and amd64-linux-gcc VMs to smoke automatically. Still working on x86 Solaris. :/ % wknight8111 has joined #parrot % lichtkind has left lichtkind!~chatzilla@d83-189-48-252.cust.tele2.de r26828 | jonathan++ | trunk: : [rakudo] Add type-checking of parameters to subroutines and methods. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26828 Coke: freebsd and netbsd next? x86 or amd64? We can haz type checking. Infinoid: I d[r]owned svnbotl in supervise (now) Juerd: no, I don't know. I'll keep an eye on botnix in case its memory usage spirals diakopter: Oh, but it might be a better idea to just impose a memory limit diakopter: man ulimit msg kid51 should I have the autosmokers make clean before svn update, or vice versa? Message for kid51 stored. make realclean before svn update % contingencyplan has left contingencyplan!~contingen@cpe-76-186-27-146.tx.res.rr.com Infinoid: thanks, ok make realclean; svn update; perl Configure.pl; make smoke Infinoid: should they run 'make smoke' in languages/ as well? also, anyone, now's your chance to request any branches to be smoked nightly. there's a "make languages-smoke" in the toplevel directory ah I had friends who used to talk about smoking branches nightly used to? Thats a bad drug-using joke anyway, how do you answer messages from purl? msg Sorry, I've never seen before. no, i have messages waiting, how do I read them? purl, messages? messages are almost working. that's helpful. and reassuring msg Infinoid hey purl, tell me how to access messages Message for infinoid stored. purl, ping Infinoid: excuse me? [16:28] You have 1 message waiting. [16:28] messages [16:28] You received the following messages: [16:28] Infinoid [Sun Apr 6 16:28:29 2008] said: hey purl, tell me how to access messages okay, i got them. thanks guess that was it always deceptively easy purl, messages? messages are almost working. no, messages is To access your messages, msg me with the word "messages". purl, messages? To access purl's messages, msg me with the word "messages". * Infinoid pats purl don't mess with me * Infinoid messes with purl [around] with * Infinoid splashes in puddles with purl! make languages-smoke takes a while. oh yeah, it takes forever * diakopter anticipates a higher power bill % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.or.comcast.net % contingencyplan has joined #parrot diakopter: Try setting up a datacentre. We thought we know what to expect, re power bill. Server power usage turned out to be a bit lower than we'd calculated, but we had no idea that UPSes and aircon were such power suckers. out of curiosity, what was the ratio of wall-power to server-power? (how efficient are UPS's?) % guru has joined #parrot % braceta has joined #parrot % braceta has left #parrot jonathan, particl1: jonathan, you want to mentor the perl6 test guy? % kid51 has joined #parrot #51980 % wknibot has joined #parrot #51980 The link is at: http://rt.perl.org/rt3/Public/Bug/Display.html?id=51980 better! if you have an RT account, http://rt.perl.org/rt3/Ticket/Display.html?id=51980 is a heck of a lot more useful than http://rt.perl.org/rt3/Public/Bug/Display.html?id=51980 oh, i see that now that I compare the two. I couldn't figure out why there were "reply" links sometimes and not others heh. annoying, isn't it? loathe Public/Bug/ I'm a case study in the failure of users to find and read documentation % wknibot has left wknibot!~wknibot@c-71-230-33-251.hsd1.pa.comcast.net wuh RT has documentation?! well, i certainly failed to find it so have I. % wknibot has joined #parrot no worries :) now that that's working, I'd appreciate some comments on #52478 The link is at: http://rt.perl.org/rt3/Public/Ticket/Display.html?id=52478 wknight8111++ s,Public/,, yay! more karma! urg, more errors! % wknibot has left wknibot!~wknibot@c-71-230-33-251.hsd1.pa.comcast.net % wknibot has joined #parrot Infinoid: I've confirmed that the ops2c tests pass on both Linux and Darwin. great, someone else confirmed win32 too Is there any other work that needs to be done in this branch? I don't know. I asked that on the ticket. * kid51 looks at RT there's nothing on my list that I care about enough to keep this out of trunk #52506 The link is at: http://rt.perl.org/rt3/Ticket/Display.html?id=52506 wknight8111++ cotto_home: sorry, it's over my head. but do you think its possible to get the semantics you need through subclassing? Okay, I think you're correct in that this can be merged into trunk. Your remaining questions don't pose any obstacle to merging into trunk. polymorphism is definitely something that some languages like more than others Assuming it's okay with you, I'll prepare a merge. great, thanks! Then I'll look at the other questions over the next week. % guru has left guru!~guru@bas7-toronto01-1242513966.dsl.bell.ca (if they're even worth it. I was trying really hard to find TODO items.) % guru has joined #parrot anyway, was fun having my own branch for a day, thanks for managing it for me. The kid51 giveth, and the kid51 taketh away. No, they're valid. Ex.: The tests were among my first contributions to the project, so I was being extra cautious. Hence, the boilerplate. I don't know if its worth splitting out the helper functions into a separate module, but I was kinda getting that urge while going through them % Theory has joined #parrot Well, they're probably not used anywhere else. Which is an argument against splitting them out. Sometimes it's good to split things out simply to keep files to a manageable length. We're probably at an edge case here. I'm a big fan of keeping helper .pm files with the tests they are used by, but I don't see any of that happening in the parrot tree... Do you mean .pm files that are used exclusively by t/*.t files? I've had a few of them over time, but they've tended to evolve out of existence. Otherwise, no, all our tests are under t/ and all our modules are under lib/Parrot/ or config/ or such. % guru has left #parrot * kid51 runs final tests on merged branch * kid51 starts cooking dinner r26829 | rgrjr++ | trunk: : * docs/pdds/draft/pdd06_pasm.pod: : + Remove refs to old pad ops. : * docs/pdds/pdd03_calling_conventions.pod: : + Remove unmatched ")". diff: http://www.parrotvm.org/svn/parrot/revision?rev=26829 has anybody taken a look at #48549? I don't have bison to test it, but i think it should work The link is at: http://rt.perl.org/rt3/Ticket/Display.html?id=48549 r26830 | jkeenan++ | trunk: : Merging ops2c branch into trunk. See : https://rt.perl.org/rt3/Ticket/Display.html?id=52506. Refactors code within : Parrot::Ops2c::Utils and makes necessary adjustments in tests, : tools/build/ops2c.pl and MANIFEST. infinoid++ diff: http://www.parrotvm.org/svn/parrot/revision?rev=26830 % guru has joined #parrot r26831 | jkeenan++ | ops2c: : Branch has been merged into trunk and is no longer needed at HEAD; removing. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26831 r26832 | jkeenan++ | ops2c-26806: : Branch corresponding to tag has been deleted. Hence, tag is no longer needed. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26832 kid51++ wknight8111: thanks for the reply no worries, I'm working on the patch now. what do we do in the off-chance that PARROT_HAS_SNPRINTF, PARROT_HAS_C99_SNPRINTF and _MSC_VER are all undefined? % grim_fandango has left grim_fandango!~matt@bas2-kingston08-1167929677.dsl.bell.ca in that case, there will be no snprintf available at all such a situation might be impossible in practice, i dont know % guru has left #parrot in that case, if we don't have one of our own, we're screwed do we have one? if not, maybe fall back on sprintf, maybe Configure.pl tosses an error "Error: you don't have snprintf, get a real C library" let me double-check what the capabilities are for Parrot_secret_snprintf no, Parrot_secret_snprintf relies on vsnprintf, which likely doesnt exist if a variant of snprintf doesnt probably not, indeed. of course, I have an implementation, but its pretty minimal, probably better to get the user thinking about why their system is broken anyway, will Parrot_secret_snprintf even build and link, if snprintf/vsnprintf are missing? no, it wont Darwin, MSWin, and most *Nix should have it, but i'm not familar with all the other systems that Parrot targets its the weird ones that keep us up at night it's keeping me up tonight Parrot_secret_snprintf relies on the macro BLAHBLAHBLAH_WAS_A_CHECK_FOR_VNSNPRINTF, what I can't find used anywhere else i'm not entirely certain it's even a real macro, and not just a placeholder this is what I get for trying to fix a simple compiler warning: endless nonsense, problems with no answers, macros that don't make sense, etc some are definitely easier than others. :) % rdice has left rdice!~richarddi@CPE001217e365c7-CM00159a01d44c.cpe.net.cable.rogers.com I love the "BLAHBLAHBLAH_WAS_A_CHECK_FOR_VNSNPRINTF" btw gives you lost of confidence to find that sitting in src/ vnsnprintf() doesn't even exist, as far as I know :P (and if it does, I dunno what the extra "n" stands for) i gave up on hunting, I'm doing a quick build. urg. compile warning in src/pmc/pointer.pmc: snprintf is undefined there. I'll try to solve that one too compilers/imcc/instructions.c too lots of places actually. This is turning into a big job you'll be making the world a better place, even if you just take 'em one at a time % kid51 has left kid51!~jkeen@pool-70-107-12-156.ny325.east.verizon.net Infinoid: botnix's ram usage groweth. urgh. why? well, urgh. why is vim pumping out capital letters when i try to use the arrows to move around in insert mode?? purl, forget urgh. why Infinoid: I forgot urgh. why purl may not be helpful, but at least he listens wknight8111: huh? you heard what i said % wknibot has left wknibot!~wknibot@c-71-230-33-251.hsd1.pa.comcast.net % wknight8111 has left wknight8111!~nobody@c-71-230-33-251.hsd1.pa.comcast.net r26833 | chromatic++ | trunk: : [library] Robustified Test::More include library in the face of .namespace : directives. : directives are not mentioned. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26833 r26834 | chromatic++ | trunk: : [library] Improved test plan handling in Test::Builder; previously the ability : to share a single test plan across multiple Test::Builder objects was too : fragile. If you don't immediately know what this means, good -- you shouldn't : have to, and this changes makes it more likely that you'll never have to. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26834 purl, forget directives Infinoid, I didn't have anything matching directives purl, forget : directives Infinoid: what? purl, forget : directives. Infinoid: i'm not following you... r26835 | rgrjr++ | trunk: : * examples/pir/hanoi.pir: : + Use proper PIR subroutine calling instead of bsr/ret, and (not : incidentally) flush save/restore use as well. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26835 % Theory has left Theory!~Theory@c-24-21-175-208.hsd1.mn.comcast.net r26836 | chromatic++ | trunk: : [library] Added Test::Class port to PIR. The API may change, but it works. diff: http://www.parrotvm.org/svn/parrot/revision?rev=26836 % tetragon has left tetragon!~seneca@CPE0040d001f62f-CM000a736592a8.cpe.net.cable.rogers.com % Senaka has joined #parrot hi all, regarding topic! "YAPC::NA talks deadline is Mar 31 | http://tinyurl.com/2pmnlq" is out-dated isn't it? % Senaka has left Senaka!~senaka@124.43.225.175 mmmm. driveby % cotto_work has left cotto_work!~cotto@tide534.microsoft.com #50878 I think http://rt.perl.org/rt3/Public/Bug/Display.html?id=50878 can safely be closed % davidfetter has left davidfetter!~davidfett@start.fetter.org % davidfetter has joined #parrot % TonyC has left TonyC!~tony@202-154-105-237.people.net.au % nopaste has left nopaste!~opaste@202-154-105-237.people.net.au % purl has left purl!purl@sentient.life % purl has joined #parrot % AndyA has left AndyA!~andy@062249178237.customer.alfanett.no % iblechbot has joined #parrot % nopaste has joined #parrot