Camelia, the Perl 6 bug

IRC log for #parrot, 2009-09-24

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:09 jrtayloriv What attribute of the match object $/ is the actual text that was matched stored in?
00:11 jrtayloriv And can I use that to set the :value of a PAST::Val .... for instance, if it is $/.text that holds the text, can I just do --> my $past := PAST::Val.new(:value($/.text))
00:12 dalek close: r137 | Austin++ | wiki/nutshell (2 files):
00:12 dalek close: Added nutshell/
00:12 dalek close: review: http://code.google.com/p/close/source/detail?r=137
00:12 dalek close: r138 | Austin++ | trunk:
00:12 dalek close: Added extern link to nutshell wiki
00:12 dalek close: review: http://code.google.com/p/close/source/detail?r=138
00:12 dalek decnum-dynpmcs: r183 | darbelo++ | trunk/Configure.pl:
00:12 dalek decnum-dynpmcs: Exterminate Configure.pl
00:12 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=183
00:15 jrtayloriv nm -- I found it.
00:17 dalek close: r139 | Austin++ | trunk:
00:17 dalek close: Wiki edits
00:17 dalek close: review: http://code.google.com/p/close/source/detail?r=139
00:17 dalek close: r140 | Austin++ | wiki/nutshell:
00:17 dalek close: Wiki edits
00:17 dalek close: review: http://code.google.com/p/close/source/detail?r=140
00:20 TiMBuS joined #parrot
00:26 dalek close: r141 | Austin++ | wiki/CianToc.wiki:
00:26 dalek close: Created wiki page through web user interface.
00:26 dalek close: review: http://code.google.com/p/close/source/detail?r=141
00:31 dalek close: r142 | Austin++ | wiki/CianIntroduction.wiki:
00:31 dalek close: Created wiki page through web user interface.
00:31 dalek close: review: http://code.google.com/p/close/source/detail?r=142
00:31 dalek close: r143 | Austin++ | wiki/CianIntroduction.wiki:
00:31 dalek close: Edited wiki page through web user interface.
00:31 dalek close: review: http://code.google.com/p/close/source/detail?r=143
00:31 dalek close: r144 | Austin++ | wiki/CianLanguageBasics.wiki:
00:31 dalek close: Created wiki page through web user interface.
00:31 dalek close: review: http://code.google.com/p/close/source/detail?r=144
00:36 ash_ joined #parrot
00:38 dalek close: r145 | Austin++ | wiki/CianLanguageBasics.wiki:
00:38 dalek close: Edited wiki page through web user interface.
00:38 dalek close: review: http://code.google.com/p/close/source/detail?r=145
00:38 dalek close: r146 | Austin++ | wiki/CianToc.wiki:
00:38 dalek close: Edited wiki page through web user interface.
00:38 dalek close: review: http://code.google.com/p/close/source/detail?r=146
00:38 dalek close: r147 | Austin++ | wiki/CianTypes.wiki:
00:38 dalek close: Created wiki page through web user interface.
00:38 dalek close: review: http://code.google.com/p/close/source/detail?r=147
00:38 dalek close: r148 | Austin++ | wiki/CianLiterals.wiki:
00:38 dalek close: Created wiki page through web user interface.
00:38 dalek close: review: http://code.google.com/p/close/source/detail?r=148
00:42 Austin_away For the edification of anyone who gets here via Google, jrtayloriv's answer is: the stringification of the $/ or $<subrule> produces the text. So:  $past.value(~ $/);
00:42 dalek close: r149 | Austin++ | wiki/CianTypeConversions.wiki:
00:42 dalek close: Created wiki page through web user interface.
00:42 dalek close: review: http://code.google.com/p/close/source/detail?r=149
00:42 dalek close: r150 | Austin++ | wiki/CianExpressionsAndOperators.wiki:
00:43 dalek close: Created wiki page through web user interface.
00:43 dalek close: review: http://code.google.com/p/close/source/detail?r=150
00:47 szabgab joined #parrot
00:47 jrtayloriv Austin_away, Thanks -- I thought I had figured it out, but I was wrong :) ... this is very frustrating ... I'm definitely going to work on the PCT/AST docs once I figure this out.
00:48 Austin Forgot that I was "away". Sorry.
00:48 Austin Did that get you what you needed?
00:50 jrtayloriv Austin, Yes, for now. I'm about 15% sure about what exactly I'm doing here ... mostly voodoo/magic/randomly-try-th​ings-and-watch-what-happens programming at this point ... so I'm sure I'll have plenty of other questions for you :)
00:50 Austin :)
00:59 darbelo left #parrot
01:07 particle joined #parrot
01:10 ash_ so, has anyone done any messing around with the llvm and parrot for JIT stuff? I have been really interested in the llvm and also parrot so I was wondering if I could help in any way
01:12 jrtayloriv Austin, Are you familiar with Lisp or Scheme at all?
01:12 Austin Parentheses, lists, programs-are-data. That's about it.
01:13 Austin But it should be really easy to parse, no?
01:13 Austin rule sexp { <.paren> <ident> <arg_expr>* }
01:13 jrtayloriv Austin, extremely easy, from what I understand. The grammar was really simple.
01:14 Austin :)
01:14 jrtayloriv The grammar is done, I'm just having problems with the actions file. Trying to figure out what the best way to define the primitive procedures is.
01:14 Austin ash_: Look on Planet Parrot for WhiteKnight's blog posts. He and Cotto have been looking at llvm
01:14 Austin jrtayloriv: What kind of procedures? The builtins?
01:15 ash_ yeah, i saw his blog post
01:15 cotto Austin, i haven't been doing much actual looking
01:15 jrtayloriv For instance, the 'lambda' procedure needs to be defined in the initial environment in a certain way, but you can change the symbol 'lambda' to point to any procedure (or value) that you wish at any later point.
01:15 Austin Really? Did I confuse you with someone else?
01:16 Austin jrtayloriv: What happens to the lambda (original) after that?
01:16 jrtayloriv poof!
01:16 Austin Okay. That's pretty simple then.
01:17 jrtayloriv Would I just create a symbol hash that points to the standard subs, and then 'include' it somehow?
01:17 Austin No.
01:17 Austin Too complex.
01:17 Austin Just define the subs in the 'builtins.pir' (or collect them from individual .pir) and include them in your compiler
01:18 Austin To override a sub, just store to the global in the appropriate namespace.
01:19 jrtayloriv Oh! Didn't even notice 'builtins/' there. Thanks :)
01:21 Austin Look at http://nopaste.org/p/agTSIRQNJ and http://nopaste.org/p/asBA7Nr2x
01:22 Austin (It's a mistake on my part, but it illustrates the point.)
01:22 Austin You see the second one - the generated code - treats the "say" function as a global variable and generates a "get_global" opcode to fetch it.
01:23 Austin You can replace a sub by generating a "set_global", I think.
01:23 Austin Just make sure you've got the right data type. :)
01:23 * jrtayloriv is studying the code now ..
01:28 dalek parrot: r41440 | jkeenan++ | branches/auto_frames_refactor (2 files):
01:28 dalek parrot: Further refactoring to improve testability. Statement coverage up to 93%, which, given that we can't directly test the C code, is as about as good as we're going to do.
01:28 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41440/
01:38 ash_ so... if you were to write a C extension to parrot so you can expose some functions to parrot's PIR code, is there a guide to doing that? or where should I start
01:39 Austin NCI, I think you want. But you might want to look at the dynamic pmc stuff (dynpmc) under src/dynpmc
01:41 Austin jrtayloriv: It occurs to me that the lisp guys are always capturing and renaming stuff. You may want to actually make your subs be lexical variables, so you can create closures with renamed subs. (It's the difference between "this lexical var holds a sub" and "this sub is lexically renamed")
01:43 ash_ joined #parrot
01:43 ash_ umm, sorry i don't know if anyone awnsered my question, my computer just froze and I had to restart it
01:43 jrtayloriv Austin, That's why I was going to do a symbol hash. Basically use symbol names as keys, so I can map them to either constant values, pointers to lists, or pointers to anonymous subs.
01:43 Austin http://nopaste.org/p/aIV2QOifob
01:44 Austin Sure, but namespaces are already symbol hashes. It's what they do.
01:44 Austin That nopaste is a program that swaps sub names.
01:45 Austin parrot /usr/local/lib/parrot/1.6.0-​devel/languages/nqp/nqp.pbc  faketree.nqp
01:45 jrtayloriv Austin, I see. find_lex '$name' is what I was after.
01:45 Austin Probably not.
01:45 Austin That loads the name PBC - a string, containing "foo" - into a register.
01:46 Austin You probably want the sequence - $P0 = find_lex '$name'; $S0 = $P0; $P1 = get_global $S0
01:48 Austin Here's a warning for you: That program *requires* the "class Test;" up above. NQP generates different code if there's no namespace references involved. (You should generate the right code yourself directly, but NQP is "optimizing" for the local-reference case.)
01:49 Austin Is the phemer (?) source code browseable on line?
01:51 ash_ PMC's can call C functions directly correct?
01:52 jrtayloriv Austin, Not yet. In another day or two, I'll post it up, once it can a few basic things like procedure calls, bind variables, construct lists, and evaluate string and numeric constants.
01:52 Austin PMC's are implemented as a set of C functions. So a PMC can provide a vtable  (opcode) function or a named method that calls whatever C functions you want.
01:53 Austin jr: Don't be shy. Publish early. :)
01:53 jrtayloriv Austin, I'm just way to tired today (>4 hours of sleep last night) to take in information very well.  I'll probably get a lot more done tomorrow.
01:53 Austin s'ok
01:53 jrtayloriv Austin, OK -- I'll post up the grammar tomorrow at least ... the only thing that actions.pm does at this point is eval string constants.
01:53 Austin ash_ : The difference is between "core" PMCs - those that ship with Parrot's core - and others.
01:54 Austin Jr: Ok. But it's easier to make suggestions if I can look at the code, or at least at the grammar.
01:55 Austin One thing you should answer is the lexical functions issue. If it's not needed, you really don't want it. But if you must have it, best to know early.
01:56 jrtayloriv Austin, Understood. Here is the grammar, if you want to have a look -- http://pastebin.com/d4ffaba2 ... I'll post up actions.pm tomorrow after I've added some basic functionality to it.
01:57 ash_ So, wait, whats the difference? Sorry Austin you kinda of lost me with that last statement, core PMC's can be opt codes where as other PMC's are not?
01:57 Austin Jr: Tomorrow, put it in a VC repository like google code or gitorious
01:57 jrtayloriv Will do.
01:58 Austin ash_ : No. All PMC's can do all PMC-like things. But some of them are always available - because the ship with parrot - and others are only available if the user has compiled and installed your stuff.
01:58 nopaste "kid51" at 70.85.31.226 pasted "Squeeze a bit more test coverage out of auto::frames" (180 lines) at http://nopaste.snit.ch/18040
01:58 ash_ Austin: got ya, thanks
01:59 ash_ are there any restrictions on calling C++ from within a PMC?
01:59 kid51 msg darbelo In auto_frames_refactor branch, have squeezed a bit more test coverage out of auto::frames.  Cf.  http://nopaste.snit.ch/18040 and http://thenceforward.net/parrot/coverage/c​onfigure-build/config-auto-frames-pm.html.  Will apply in day or two.
01:59 purl Message for darbelo stored.
02:00 * kid51 must sleep
02:00 purl $kid51->sleep(8 * 3600);
02:03 Austin Boy, opening OOo 3 is a considerable pain
02:08 ash_ whats OOo 3
02:08 jrtayloriv bedtime for me -- good night #parrot
02:09 Austin OpenOffice.org - a freely-available replacement for Microsoft Office.
02:09 Austin Good night, JrTaylorIV
02:09 Austin (Or is that J.R. ?)
02:10 ash_ ah, I use Pages or Google Docs, mostly google docs though, i change computers a lot, its very nice having everything in 1 spot
02:10 Austin :)
02:10 Austin I'm still painfully shy of that, remembering things like the dead-user lockouts, and the fact that Google is a search engine. :-S
02:12 ash_ lol, yeah gmail has adds related to your email content, thats odd and umm not that comforting
02:13 Austin Well, that was foul.
02:14 Austin I went downstairs to get something to drink, and there sitting on the countertop was the glass of milk I poured 2 hours ago, before getting distracted and winding up here. :(
02:15 Austin If you ever need some infotaining reading, check out "The Frozen Water Trade."
02:16 ash_ i get distracted all the time, plus i am almost always on the internet so it happens a lot
02:18 skv_ joined #parrot
02:21 payload joined #parrot
02:26 petdance joined #parrot
02:34 dukeleto 'ello
02:39 dukeleto i am just learning that in PIR, $I1 is different than $I01 . is that tested/spec'ed anywhere?
02:39 Austin Hello, duke.
02:40 Austin I hadn't realized that difference, but I'm not too surprised.
02:40 Austin I wonder if $I0x01 is supported?
02:41 dukeleto Austin: read the "register type" section on http://coolnamehere.com/parrot/l​earn/02-variables-and-types.html
02:41 Austin FYI: $I0x01 is not supported.
02:41 dukeleto if we don't already, that behavior needs tests and to be described in a PDD somewhere
02:41 dukeleto Austin: are you meaning x as in $I001 or a literal 'x' ?
02:41 janus joined #parrot
02:42 Austin Duke: I was wondering if it just looked for '$' + '[ S P I N ]' + any-numeric-regex
02:42 Austin But apparently it just looks for \d+
02:42 Austin :(
02:43 dukeleto Austin: gotcha
02:44 Austin You can modify the section on using $ variables to quote me (Austin Hastings) as saying "A short chunk of code is less than 6 lines, including comments."
02:44 dukeleto sadly, you can not refer to registers by their octal number :(
02:44 Austin You can, but you have to be consistent.
02:44 dukeleto Austin: modify which section where?
02:44 Austin $I8 = 0 ; print $I011;   that won't work.
02:45 Austin "That makes register variables ideal for short chunks of code."
02:45 Austin That section.
02:45 purl that section is fundamentally crass.
02:45 dukeleto Austin: that is not my blog
02:45 Austin Oh. Too bad.
02:46 Austin So I shouldn't, solely on the basis of that blog, start calling you Brian?
02:46 dukeleto he is a nice guy that will definitely take patches, tho
02:46 dukeleto Austin: that would be a good assumption
02:46 dukeleto Austin: are you on the twitterwebs?
02:47 Austin No.
02:47 Austin I'm frankly not sure I'm smart enough to use IRC.
02:47 dukeleto meh
02:51 Austin dukeleto, do you know of a good explanation of parrot namespaces anywhere?
02:52 ash_ is there a C function for turning a C str into a PMC Str?
02:52 Austin ash_: Of course there is.
02:52 ash_ happen to know which header file its in?
02:52 Austin Actually, there is probably a C str -> Parrot-str -> PMC sequence.
02:52 Austin But I don't know what they are.
02:53 Austin Have a look at the "box" opcode.
02:53 ash_ k, well, ima dig through the header files
02:54 rg joined #parrot
02:54 Austin pmc.ops
02:54 Austin Never mind.
02:55 Austin ~/parrot/src/string/api.c
02:56 Austin Parrot_str_new - make a Parrot string from a specified C string.
02:56 Austin Plus pmc_new, plus set_string
02:56 Austin = profit!
02:56 dukeleto Austin: what are you looking to know about namespaces? the tests are a good start, but incomplete
02:57 Austin dukeleto: nothing. But I want to steal good explanatory ideas for a document.
02:58 ash_ in includes/parrot/string_funcs.h there is a macro "string_from_literal" that returns a parrot string
02:58 Austin That's probably a call to _str_new under the hood. Then you need to pmc-ify it?
02:59 dukeleto Austin: docs/pdds/pdd21_namespaces.pod
03:00 Austin dukeleto: yeah, I had that, lies and all. :-S
03:00 dukeleto Austin: the test are the closest to the truth that you are going to get :)
03:00 dukeleto s/test/tests/
03:01 dukeleto Austin: which lies did you find?
03:01 dukeleto Austin: they should become TODO tests
03:02 dukeleto sometimes writing a todo test is hard/impossible, but creating a TT makes sure it doesn't slip through the cracks
03:02 ash_ pmc2c is the way to compile a pmc right?
03:03 ash_ or can parrot run them dynamically?
03:06 rhr joined #parrot
03:13 dukeleto ash_: pmc2c takes the pseudocode that PMC's are written in and converts them to pure C, to be compiled
03:13 dukeleto ash_: does that answer your question?
03:13 ash_ yeah
03:13 ash_ can you convert them into a C++ ?
03:14 dukeleto ash_: i doubt it. what are you trying to do?
03:14 ash_ link to a C++ library
03:16 dukeleto you want to call functions in a c++ library from parrot?
03:16 darbelo joined #parrot
03:16 ash_ well, more I want to create objects from the C++ library in parrot and hide them in a parrot class, if that makes sense
03:17 ash_ specifically the llvm-jit
03:17 dalek close: r151 | Austin++ | wiki/CianIntroduction.wiki:
03:17 dalek close: Edited wiki page through web user interface.
03:17 dalek close: review: http://code.google.com/p/close/source/detail?r=151
03:18 darbelo ash_: It might not be exactly related but I wrapped the IBM decNumber library as a set of PMCs for GSoC
03:19 darbelo purl: decnum-dynpmcs?
03:19 purl decnum-dynpmcs is http://code.google.com/p/decnum-dynpmcs/ or a 2009 GSoC porject or a set of 'big' decimal arithmetic types for parrot.
03:19 ash_ i'll look into that, thanks
03:20 ash_ thats a C library, right?
03:20 darbelo Yes.
03:20 darbelo Basically, if the C/C++ thing you want to wrap can be hidden behind an object-like wrapper PMCs are the way to go.
03:21 ash_ the problem is I need them to be C++ files for me call things and have them exported as extern "C"
03:22 darbelo If what you really want is to just call functions from a library NCI is better.
03:23 darbelo Wait. Parrot has to call c++, or c++ has to call parrot?
03:24 ash_ parrot has to call C++
03:25 ash_ the problem is the C++ library doesn't have C bindings, so i can't directly call it from C
03:25 Austin joined #parrot
03:25 Austin Well, /that/ was irritating.
03:25 ash_ if i am not mistaken NCI only works with C librares
03:27 darbelo Hmm. I know parrot builds fine with c++ compilers, and uses ICU internally, so it can link with c++ code, but I'm not sure it's callable from PMCs.
03:27 dukeleto ash_: is that stated in the docs somewhere?
03:27 Austin Probably not - name mangling depends on both platform and compiler vendor.
03:27 ash_ pdd16_native_call.pod.html states NCI is for C libraries, i can try it with a C++ library though
03:28 Austin But if you make your C++ function into a C function, it should work.
03:29 ash_ oh, parrot already adds extern "C" to your functions, so I can call C++ from within the function no problem
03:30 ash_ my bad ><
03:31 ash_ pmc2c does mangle some of my C++ code however, wonder why...
03:33 darbelo pmc2c is not very smart.
03:34 darbelo It checks that every '{' has a matching '}', mangles VTABLEs and METHODs in to C and breaks at unexpected input.
03:35 darbelo Boy, was the first month of SoC *fun*
03:35 darbelo ash_: how are you calling pmc2c?
03:36 ash_ perl /path/to/pmc2c.pl LLVM_Wrapper.pmc --dump   followed by perl /path/to/pmc2c.pl LLVM_Wrapper.pmc -c
03:37 * ash_ doesn't know if i am doing this right, but trial and error usually gets me somewhere
03:37 darbelo Is it exploding?
03:38 ash_ well, no, but i looked at the C and one of my functions is missing and I don't know why
03:39 darbelo Just one? odd. I've had pmc2c misparse, get stuck and emit 'empty' VTABLEs before, but that was an all or nothing deal.
03:39 darbelo can you nopaste you .pmc?
03:39 darbelo purl: nopaste?
03:39 purl nopaste is probably at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://poundperl.pastebin.com/ 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
03:40 darbelo http://nopaste.snit.ch/parrot wil save tou some milliseconds.
03:41 darbelo You might also want to add an --include option to pmc2c
03:41 ash_ http://gist.github.com/192495
03:44 ash_ am i doing that right? when i run the pmc2c -c on it it removes my call_llvm function completely
03:45 dukeleto there also the awesome tools/dev/nopaste.pl . that will save you many hours
03:46 ash_ i'll look into that one, haven't used nopaste that much, i normally just put things in gists
03:46 Austin ash: If this is an issue, why not just make your pmc call some C++ in a different file?
03:47 dukeleto purl, nopaste is also https://trac.parrot.org/parrot/br​owser/trunk/tools/dev/nopaste.pl
03:47 purl okay, dukeleto.
03:47 ash_ Austin:  cause that makes to much sense
03:47 Austin Okay.
03:47 darbelo ash_: Tip: pmc2c only works if the name you declare on your pmclass line matches the filename.
03:47 ash_ darbelo i know, it gives you an error message otherwise
03:48 Zak joined #parrot
03:48 ash_ lol I am going to put them in a different file and include that one, like Austin suggests
03:49 darbelo For now I'd reccomend you build some c++ code that exports some functions as extern "C" and call that from your pmc
03:49 ash_ yup, that makes sense, i am doing that now
03:57 darbelo Also, if you want pmc2c to preserve ypur functions put them above the pmclass line.
03:58 darbelo only VTABLEs and METHODs are allowed inside the pmclass {} block.
03:58 ash_ but when you generate a template pmc it has some that don't ahve vtable or method
03:59 darbelo what did you use to generate them?
03:59 ash_ tools/dev/gen_class.pl
04:00 ash_ says in the docs that it can be used to generate a template PMC class
04:00 darbelo Hmm. Haven't used that before. Let me check.
04:00 ash_ http://docs.parrot.org/parrot/lates​t/html/tools/dev/gen_class.pl.html
04:06 darbelo Just checked it, those are actually VTABLEs.
04:06 ash_ oh, ummm how do you add vtables then? ?
04:08 darbelo The set of vtables a PMC has is fixed. You can't add them. That is, you can provide an implementation for one that's already defined, but not define a new one.
04:09 darbelo If there isn't a suitable VTABLE you'll have to use a METHOD
04:09 ash_ alright, i'll reference your code maybe that can help
04:10 darbelo Most vtables correspond to the syntactic constructs of pir, I made an arithmetic type so I implemented the add, mul, etc VTABLES.
04:10 darbelo for +, *, etc
04:11 darbelo My pmcs also provide a fused-multiply-add operation, which doesn't really map to any vtable. I made that a method.
04:14 ash_ that makes more sense now
04:15 darbelo Also, any (per-object) setup you need to do, like allocate buffers, set default values should be done in the init() VTABLE
04:16 darbelo and teardown code should go into the destroy() VTABLE.
04:17 dalek close: r152 | Austin++ | wiki/CianIntroduction.wiki:
04:17 dalek close: Edited wiki page through web user interface.
04:17 dalek close: review: http://code.google.com/p/close/source/detail?r=152
04:17 darbelo But with destroy() you'll have to tell parrot that you require "active destruction"
04:19 darbelo The standard way to do that is to have "PObj_active_destroy_SET(SELF);" in your init() VTABLE
04:19 ash_ how do you compile the C file?
04:20 darbelo With a veeeeeery long comand line.
04:20 ash_ hmm, time to steal your make file :P
04:20 ash_ mind?
04:21 darbelo That varies from platform to platform.
04:21 darbelo What you actually want is the one in cfg/src/pmc/Makefile.in
04:22 ash_ i might mimic your config setup
04:22 darbelo You'll have to run it through the tools/dev/gen_makefile.pl script or similar.
04:24 darbelo perl /path/to/parrot/src_or_instd​ir/tools/dev/gen_makefile.pl /path/to/Makefile.in /path/to/Makefile
04:25 darbelo everyting you see as @foo@ in the .in is replaced for the parrot_config entry for foo.
04:26 darbelo You can get a similar template out of the create_language script if you pass it the --with-pmc flag or similar.
04:26 darbelo But there might be some install-dir/build-dir confision there IIRC.
04:27 darbelo It depends if you are using an installed parrot or want to work out of a svn checkout.
04:29 ash_ so, you generated your cfg/src/pmc/Makefile.in with gen_makefile.pl?
04:30 darbelo It was a long time ago (in parrot development time) and quite a few details have changed. I've also edited the heck out of my makefiles since.
04:31 darbelo I'll give a look at what it's generating now.
04:31 ash_ hmm there is a tool/build/dynpmc.pl but i don't see a list of params for it
04:34 darbelo I think that's old and possibly deprecated.
04:34 ash_ k
04:35 darbelo I think rakudo still uses it FWIW.
04:37 darbelo Hmm. The 'supported' way this days is to have build pmcs via makefile.
04:42 nopaste "darbelo" at 190.3.143.132 pasted "This could be a starting point" (118 lines) at http://nopaste.snit.ch/18041
04:43 darbelo Oh wait, I didn't put in a linker line.
04:47 flh joined #parrot
04:47 nopaste "darbelo" at 190.3.143.132 pasted "This could be a better starting point" (54 lines) at http://nopaste.snit.ch/18042
04:47 darbelo There, http://nopaste.snit.ch/18042 has a bare-bones makefile.in skeleton for pmc-building.
04:48 darbelo The variables point to the installed location of files. So you'll need to make install-dev.
04:49 darbelo but I can whip up a version that points to the binaries built in your parrot checkout if you don't want to install anything.
04:51 ash_ i did make install for parrot (and perl6)
04:53 darbelo then that makefile.in should get you going.
04:55 darbelo You'll have to put some thought into the linking stage, but on most platform parrot uses c++ to perform linking, so it'll probably work.
04:56 darbelo Also, a parrot built with c++ could provide better defaults for @cc@ there.
05:02 ash_ i added a cxx and cxxflags
05:04 darbelo Hmm. That cxxflags will override the configure probe, I'm not sure it's a good idea.
05:05 darbelo I think the magical incantation this days is "perl Configure.pl --cxx=g++ --cc=g++ --link=g++ --ld=g++"
05:06 darbelo You override the compiler(s) and linker(s), but let Configure.pl figure out the right flags for your platform.
05:15 chromatic joined #parrot
05:16 darbelo We *really* need to make this stuff simpler for newcomers.
05:16 ash_ i wouldn't complain
05:16 ash_ :P
05:19 ash_ so for your makefile.in how woud i run that through the parrot configure?
05:23 darbelo Once your parrot is Configured and install-dev'ed you run
05:23 Austin joined #parrot
05:25 darbelo perl "whatever you put on --prefix here"/lib/1.6.0-devel/tools/dev/gen_makefile.pl Makefile.in Makefile
05:25 darbelo if you didn't specify a --prefix to Configure.pl that would be
05:25 darbelo perl /usr/local/lib/1.6.0-devel​/tools/dev/gen_makefile.pl Makefile.in Makefile
05:26 darbelo It's become parrot tradition to encapsulate that sort of thing into a Configure script for your project.
05:27 darbelo decnum-dynpmcs recently (under 24 hours ago) migrated from a Configure.pl to a Configure.pir
05:28 darbelo parrot-plumage has a Configure.nqp, rakudo has Configure.pl, etc.
05:28 darbelo The usual sequence is "run configure script"; make; make install
05:33 ash_ when i run the make file i get Makefile:43: *** missing separator.  Stop.
05:36 darbelo Ouch, I copied that out of an xterm. Tabs probably got turned into spaces.
05:37 darbelo lines 43, 46 and 49 should begin with a tab.
05:37 darbelo like:
05:37 darbelo <tab>$(CC) $(CC_OUT)your_pmc$(O) $(INCLUDES) $(CFLAGS) your_pmc.c
05:38 ash_ kk, i need to learn makefiles better ><
05:39 darbelo I can teach you to hate them if you want to.
05:41 darbelo The alternative is to pick a particular make, learn it and forget about portability.
05:41 Austin_away Learn HP's make.
05:41 Austin Every other make is compatible with HP make, because it has the fewest features.
05:41 darbelo What the one in hp-ux?
05:42 Austin Yeah
05:42 darbelo that's ancient.
05:42 Austin See?
05:42 darbelo but illustrates the point nicely.
05:42 Austin No features => no portability problems.
05:42 darbelo Austin++
05:42 Austin Everything you try in any other make will work.
05:42 dukeleto joined #parrot
05:42 chromatic That argues for Windows make.
05:43 darbelo Ew.
05:43 Austin No. Nmake has quite a few features, most of which are inspired by the C preprocessor and do not appear anyplace else.
05:43 * darbelo grew up on BSD make.
05:43 chromatic Use only those features which work *reliably*.
05:44 Austin They work every time I use them. :-|
05:44 darbelo I thought you were arguing *for* nmake...
05:44 Austin For portability, it's HP or perl.
05:45 Austin And we know why perl is a bad idea.
05:45 Austin I hate expense reports.
05:45 darbelo Or, do what most linux people do: use GNU make everywhere!
05:46 Austin I could be failing to get Close to work, but instead I'm stuck adding up fractional numbers.
05:47 Austin You know, forget health care. Why aren't electricity and water free?
05:47 Austin Talk about some stuff that everybody has to have.
05:48 Austin I paid for the house. If electric and water were free, it would be down to cable, cell phone, and food.
05:49 Austin I could get a job working for sandwiches, get free wifi, and use skype. 0 expenses.
05:49 Austin Then I wouldn't have to do expense reports.
06:08 * darbelo just noticed the Close blog.
06:18 fperrad joined #parrot
06:33 iblechbot joined #parrot
06:37 uniejo joined #parrot
06:46 kyle_l5l what does the opcode 'le' do?
06:46 treed less than or equal?
06:46 * treed guesses
06:46 moritz in perl le is 'less than or equal' for strings
06:46 kyle_l5l makes sense.
06:50 masak joined #parrot
06:55 particle joined #parrot
06:58 particle1 joined #parrot
07:10 nopaste "kyle_l5l" at 72.230.232.130 pasted "thread globals test" (29 lines) at http://nopaste.snit.ch/18044
07:11 kyle_l5l why isn't that doing what I want?
07:14 kyle_l5l (or is that Not Implemented Yet)
07:15 chromatic You didn't share that global between interpreters.
07:22 donaldh joined #parrot
07:26 kyle_l5l how do I do that?
07:27 chromatic I'm not sure.
07:27 chromatic There *is* a concurrency PDD in docs/pdds though.
07:29 dalek parrot: r41441 | chromatic++ | trunk/src/gc/gc_private.h:
07:29 dalek parrot: [GC] Increased initial sizes of GC pools to:
07:29 dalek parrot:  * fit on platform page size boundaries
07:29 dalek parrot:  * accommodate initial STRING/PMC counts for starting Parrot
07:29 dalek parrot: Note that the code still has too many magic numbers and assumptions, will
07:29 dalek parrot: require editing when PMC/STRING sizes change, may require tuning when the
07:29 dalek parrot: number of PMCs/STRINGs created change, and assumes 4k pages and 32-bit
07:29 dalek parrot: machines.  Better constant declarations which respect platform-specific probes
07:29 dalek parrot: welcome.  Even so, this improves Rakudo's startup time by 2.046% and likely
07:29 dalek parrot: improves further performance, due to larger (even though they grow) arenas.
07:29 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41441/
07:29 kyle_l5l yeah, doesn't say how to share though
07:29 chromatic I just saw that.
07:32 chromatic I can't find anything that calls VTABLE_share, which is how you do it from C.
07:32 chromatic That code may have gone away with STM.
07:33 kyle_l5l ahh, ok
07:34 chromatic I could add a couple of experimental ops for that if you really need them.
07:35 kyle_l5l that would be useful
07:37 chromatic What's the context of your need?
07:38 kyle_l5l I'm just trying to poke around at parrot threads, and would be happy to share a pmc.
07:39 kyle_l5l looks like in the last parrot revision that has stm, there's a sharedref.pmc
07:47 chromatic If you send a message to the mailing list asking for some design comments, I'll work on some ideas and implement whatever (though likely experimental) ops we agree on there.
07:49 kyle_l5l alright
07:50 chromatic Anything I do right now would be experimental, but I don't want to commit to any design without getting a little more input -- even with experimental ops.  Thus, we'll bat around your use case a bit and see what happens.
07:53 kyle_l5l Sure.  I've been mucking around with getting threads+HLLs working, and I just assumed that sharing PMCs was already there.  I would be happy to do what I can.
07:55 darbelo There's a lot of people asking for stuff to play with. Looks like parrot usage is on the raise.
08:08 jonathan kyle_l5l: I'm happy that you're working on threads + HLLs. :-)
08:08 kyle_l5l it's been a....learning experience.
08:08 jonathan :-)
08:10 moritz speaking of which, did anybody review and apply these patches already?
08:11 moritz (the threads + HLL patches, forgot ticket number)
08:11 moritz if not it might be worth sending a mail to parrot-dev asking for review
08:11 moritz or ask in next #ps (just missed one, d'oh)
08:13 darbelo If you have the TT# I can give them a look. But I'm not the best person for this, given I don't know how threading on parrot is even supposed to work.
08:13 moritz looking...
08:14 kyle_l5l no, no updates to uhm, #757
08:14 moritz https://trac.parrot.org/parrot/ticket/757
08:14 moritz right
08:17 mikehh chromatic: I had some problems with the --maintainer config option two days ago when bacek modified imcc.y
08:18 chromatic What happened?
08:18 purl We don't know what happened, so tell everyone nothing happened.
08:21 mikehh chromatic: it changed imcparser.h and .c files - it kept giving me an svn diff with them and I wanted to do a codetest commit
08:22 darbelo moritz: They *look* sane, but I'm not sure about the change in pmc.c
08:23 mikehh I think I have a different version of bison (2.3 as opposed to bacek 2.4)
08:23 chromatic That'd do it.
08:23 mikehh it's ok now though
08:27 darbelo Nobody calls visit_pmc_later(). Ever.
08:27 mikehh All tests PASS (pre/post-config, smoke, nqp_test, fulltest) at r41441 - Ubuntu 9.04 amd64
08:28 darbelo One less callback to care about!
08:29 Austin Namespaces question: If I have a namespace N containing a sub S1, and at runtime I load a pbc file containing another namespace N with sub S2, what happens? Are any and all references to namespace N the same object? Does that object get updated to have two subs, or does a new one get created? Are they versioned, the way classes are?
08:30 chromatic They should be the same object, provided they're in the same HLL.
08:31 Austin So the load-bytecode just adds a new key S2 with a link to the new sub, and anyplace the N namespace is in a register or whatever it appears?
08:32 chromatic I won't promise that's what it does, but I believe that's the intent.
08:32 Austin Intent is fine.
08:32 Austin Thanks.
08:32 nopaste "darbelo" at 190.3.143.132 pasted "Obliterate the visit_pmc_later callback." (101 lines) at http://nopaste.snit.ch/18045
08:33 darbelo chromatic: Would you consider http://nopaste.snit.ch/18045 to be in the general vincinity of 'sane'?
08:34 chromatic Provided no HLL uses it....
08:35 darbelo I'll check for that. But I doubt they do.
08:39 darbelo Directly touching pmc_freeze code is likely to cause acute segfaultitis.
08:40 Austin Chromatic: I noticed that if you call a function in PIR as  $P0 = "subname"() then it it doesn't "load" the "address" of the sub. Instead, it somehow memoizes or remembers it. Whereas if you do a get_*object and call indirect, you can replace the sub with another sub. Is the first behavior a "lexical" behavior, subject to changing if a new closure of the sub is taken, or is it somehow...
08:40 Austin ...compiled in, with IMCC binding the subid or some such?
08:40 Austin Okay, that's weird.
08:40 Austin Chromatic: I noticed that if you call a function in PIR as  $P0 = "subname"() then it it doesn't "load" the "address" of the sub. Instead, it somehow memoizes or remembers it. Whereas if you do a get_*object and call indirect, you can replace the sub with another sub. Is the first behavior a "lexical" behavior, subject to changing if a new closure of the sub is taken, or is it somehow...
08:40 Austin ...compiled in, with IMCC binding the subid or some such?
08:41 Austin (%O, not %C00)
08:42 chromatic I believe it's IMCC binding.
08:42 Austin Ouch.
08:43 chromatic Perl 5 does the same thing.
08:46 Austin Am I correct that there is no way for a non-sub to have a value at load-time?
08:47 Austin Change that. ... no way for a visible symbol that is not a sub ...
08:47 purl Austin: that doesn't look right
08:47 chromatic How about a .const ?
08:47 Austin Are those visible?
08:48 Austin Or does IMCC eat them?
08:48 Austin (By visible, I mean can some outsider get at them)
08:48 chromatic Not without inspecting the PBC, I think.
08:48 Austin Yeah.
08:50 Austin But my understanding is that the only "globals" are PMCs, and all PMCs (except *subs) require some kind of init code to run, and so none of them have values when loaded.
08:50 chromatic We don't have any good static initialization for value PMCs.
08:51 Austin Do we have any?
08:51 chromatic Not on purpose.
08:51 Austin I'm assuming not, and that I have to generate an :init sub to sneak it in.
08:52 chromatic I agree.
08:52 Austin <whew>
08:52 Austin :)
08:58 darbelo ok. partcl is slow. I'll have to remember that next time.
08:59 darbelo ... and needs ICU.
09:03 darbelo ... but survives the surgery.
09:03 darbelo Incoming !
09:03 dalek parrot: r41442 | darbelo++ | trunk (3 files):
09:03 dalek parrot: Remove the unused visit_pmc_later callback from the visit_info structure.
09:03 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41442/
09:14 dalek lua: 749ea27 | fperrad++ | config/makefiles/root.in:
09:14 dalek lua: rename target smoke to smolder
09:14 dalek lua: review: http://github.com/fperrad/lua/commit/74​9ea27f6aa23acc24224f46ff04ac5773ed5d4e
09:14 dalek lua: 33e5a9b | fperrad++ | config/makefiles/root.in:
09:14 dalek lua: refactor with curl (instead of LWP)
09:14 dalek lua: review: http://github.com/fperrad/lua/commit/33​e5a9b9470d94141ba2cff3ec4d46f4d5ccc36c
09:18 fperrad joined #parrot
09:31 bacek joined #parrot
09:32 bacek o hai
09:38 Austin ohai, bacek
09:38 bacek aloha Austin
09:45 chromatic joined #parrot
09:46 mikehh All tests PASS (pre/post-config, test, fulltest) at r41442 - Ubuntu 9.04 amd64
10:38 payload joined #parrot
10:46 TimToady joined #parrot
10:47 quek joined #parrot
11:32 tetragon joined #parrot
11:50 dalek rakudo: 722f82c | masak++ | src/parser/actions.pm:
11:50 dalek rakudo: [actions.pm] construct twigilled variables right
11:50 dalek rakudo: In <http://rt.perl.org/rt3/Tic​ket/Display.html?id=67846>, :$.bar
11:50 dalek rakudo: turned into $1bar. The <twigil> subrule was called with a
11:50 dalek rakudo: postfix:<?>, turning its submatch into an array.  The colonpair
11:50 dalek rakudo: action method now takes this into account. This is a first step
11:50 dalek rakudo: towards fixing #67846. Rakudo still doesn't conform to the semantics
11:50 dalek rakudo: explained in L<S06/Attributive parameters>, but now it at least has a
11:50 dalek rakudo: chance.
11:50 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/7​22f82c854e4231335fd925ad3f153f63ac06341
11:56 bacek joined #parrot
11:57 bluescreen joined #parrot
12:04 bacek seen pmichaud
12:04 purl pmichaud was last seen on #parrot 1 days, 8 hours, 22 minutes and 45 seconds ago, saying: (assuming the fresh checkout exhibits the same problem)  [Sep 23 03:34:27 2009]
12:09 bacek_ joined #parrot
12:10 bacek_ msg pmichaud I want to introduce new POST::Macro node to handle various .const, .lex and other stuff. Without it I will have to reparse POST::Op for emitting PBC from POST.
12:10 purl Message for pmichaud stored.
12:11 eiro_ joined #parrot
12:11 whiteknight joined #parrot
12:12 whiteknight good morning
12:12 purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
12:13 bacek_ whiteknight: you have to learn it. It's evening already. I told you many times :)
12:13 whiteknight I'm just so confused when I wake up
12:16 jrtayloriv morning whiteknight
12:17 whiteknight hello jrtayloriv
12:29 * whiteknight has been too busy this week to hack on Parrot
12:29 whiteknight and that makes me sad
12:32 jrtayloriv no fun :(
12:33 whiteknight irclogs?
12:33 purl irclogs is, like, http://irclog.perlgeek.de/parrot/today or see also: infrared clogs
12:34 ruoso joined #parrot
12:34 jrtayloriv I haven't been able to hack on Parrot due to knowledge shortage ... about halfway through my GC book now, though, so hopefully I'll be able to start shortly after I'm done with that in a week or so.
12:35 jrtayloriv Took a trip to university land so I could get access to ACM papers, and got bucketloads of awesome GC papers to read too!
12:35 whiteknight awesome. Let me know if you find any particularly good papers
12:35 whiteknight I had a stack of them, but can't find it anymore
12:36 bacek jrtayloriv: If you want I can create "gc-encapsulate" branch with my sketch idea about GC encapsulation.
12:37 dalek partcl: r744 | coke++ | trunk/config/makefiles/root.in:
12:37 dalek partcl: Fix smolder target for partcl on windows/gmake.
12:37 dalek partcl: Courtesy fperrad++
12:37 dalek partcl: review: http://code.google.com/p/p​artcl/source/detail?r=744
12:38 jrtayloriv whiteknight, One that I found that was interesting recently, was a paper talking about the generational hypothesis, and how it's false ... talks about "renewal older first" gc
12:39 jrtayloriv It is called "An Experimental Study of Renewal-Older-First Garbage Collection"
12:39 whiteknight that would be quite an interesting idea, if generational wasn't really a win
12:41 mj41_ joined #parrot
12:41 ttbot joined #parrot
12:43 jrtayloriv whiteknight, they're saying it's a win over other types of GC, they're just saying that doing generational where you don't always collect youngest-first can be a win over generational systems that do always do youngest-first
12:44 whiteknight so instead of a strict old/new generation system, instead use like a partitioning system where we focus effort on different partitions?
12:45 jrtayloriv "A pure renewal-older-first collector divides the heap into two generations, and always collects the older generation. Instead of grouping objects according to their actual age, however, the ROF algorithm groups objects according to their renewal age, which is defined as the time that has passed since the object was last classified as reachable by a collection within its generation, or as its actual age if it has never been conside
12:45 jrtayloriv red for collection.
12:45 jrtayloriv (quote)
12:46 jrtayloriv After each collection, therefore, the objects in the older generation that survived the collection are considered to be the youngest objects. We implement this by dividing the heap into steps that contain objects of similar age, and relabel the steps following each collection ...
12:46 jrtayloriv
12:47 he joined #parrot
12:50 iblechbot joined #parrot
12:51 jrtayloriv whiteknight, and basically, they *do* youngest first, in the sense that they keep a "nursery" around which *is* collected most frequently, but other than that, it's not always youngest first.
12:52 whiteknight oh okay, so it's always youngest first except it's not
12:52 whiteknight makes perfect sense
12:52 * whiteknight just has to read the paper, methinks :)
12:54 jrtayloriv I guess it would have been more clear to say that it is youngest first, but that you don't always try to collect younger objects before older ones. Sorry about not being clear -- I meant you don't always assume that younger --> collected first.
12:55 jrtayloriv But anyway, yeah -- the paper would be more clear than I'm being :)
12:56 jrtayloriv ... especially since I'm only about halfway through a 15 year old book on GC, and haven't even finished the chapter on generational systems yet ;)
13:12 fperrad seen Coke
13:12 purl Coke was last seen on #parrot 1 days, 9 hours, 56 minutes and 53 seconds ago, saying: sighs.  [Sep 23 03:07:33 2009]
13:13 he Hmm, www.parrot.org appears to be stuck somehow; it accepts connections but does not respond to http protocol requests.
13:14 * moritz looks at slashdot, maybe they mentioned parrot :-)
13:16 he ...and finally ends up closing the connection.
13:17 he who admins the web server?
13:18 moritz the hosting company, I think
13:22 jsut_ joined #parrot
13:26 he So nobody who is on here, then, I guess.
13:37 dalek lua: 45ed019 | fperrad++ | t/lua-TestMore:
13:37 dalek lua: update submodule lua-TestMore
13:37 dalek lua: review: http://github.com/fperrad/lua/commit/45​ed01970e3c754bc3b94e405b1f0331cb8460b1
13:41 ash_ joined #parrot
13:51 Austin_away joined #parrot
13:59 particle joined #parrot
14:07 whiteknight_ joined #parrot
14:22 theory joined #parrot
14:25 whiteknight_ joined #parrot
14:28 ash_ whiteknight: I have been playing with the llvm in a pmc in parrot, just wanted to let you know. Have you been doing much with it yet?
14:34 Psyche^ joined #parrot
14:36 moritz parrot's Configure.pl still detects libgmp, but pmichaud++ told me the BigInt PMC was gone...
14:37 moritz is there any good reason to still detect it?
14:38 pmichaud I suspect people didn't want to rip out the detection code.  But I'm waaaaay beyond my solid knowledgebase here -- my musings are more speculations than knowledge of actual facts :)
14:41 ash_ can anyone access parrot.org? its not pulling up for me at the moment
14:42 moritz ash_: we've had similar complaints here earlier (and it didn't work for me either)
14:44 ash_ moritz: as log as I am not the only one, anyone we should contact about that?
14:44 moritz ash_: I think coke and allison know how to contact our hosting company - not sure if anybody else does
14:45 pmichaud particle does
14:45 moritz let's hilight particle then :-)
14:50 particle looking...
14:52 * particle mails support@osuosl.org
14:52 particle pmichaud++ moritz++ ash_++
14:53 dukeleto yes, the parrot website seems to be hanging
14:53 kjeldahl joined #parrot
14:55 particle it's slow as heck, but responding
15:01 Austin joined #parrot
15:02 JimmyZ joined #parrot
15:05 jrtayloriv joined #parrot
15:06 cotto_w0rk hi
15:12 pmichaud I'm thinking it might be clogged intertubes
15:12 pmichaud I'm having trouble reaching gmail this morning
15:12 diakopter gmail flaky today
15:18 dalek parrot: r41443 | fperrad++ | trunk/tools/dev/gen_makefile.pl:
15:18 dalek parrot: [languages] allows extra configuration from language
15:18 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41443/
15:18 pmichaud joined #parrot
15:26 pmichaud joined #parrot
15:31 ruoso joined #parrot
15:34 kyle_l5l joined #parrot
15:38 tokuhirom____ joined #parrot
15:41 Austin joined #parrot
15:41 whoppix joined #parrot
15:43 mokurai joined #parrot
15:45 zerhash joined #parrot
16:03 Andy I didn't mean for my task for cpplint.py to rile everyone so.
16:07 particle http://scan.coverity.com/report/Coverity_Wh​ite_Paper-Scan_Open_Source_Report_2009.pdf
16:07 particle nice to see parrot here
16:07 ash_ is the cpplint.py your using the one from Google's style guide?
16:07 darbelo joined #parrot
16:09 Andy The ticket I wrote also mentions the Google style guide.
16:11 whiteknight Andy: did people get riled up about it?
16:11 Andy seemed to frm the comments I saw go bu
16:11 Andy by
16:11 * whiteknight apparently hasn't been paying enough attention
16:12 Andy https://trac.parrot.org/parrot/ticket/1059
16:12 Andy Maybe I read too much riledness into the comments at first.
16:13 pmichaud trac.parrot.org slow
16:16 particle re parrot.org: There was a site crawling it from over 30 ips on the trac instance. I
16:16 particle went ahead and blocked all of them as it was killing the VM.
16:17 pmichaud I used to have that problem with Yahoo! crawler
16:17 NotFound Maybe it lacks an adequate robots.txt ?
16:18 pmichaud on my site, all pages have explicit robot controls (more)
16:18 pmichaud but it was more than that -- Yahoo's crawler would end up crawling the home page some 300 to 500 times per day
16:19 particle yikes
16:20 particle i need to be able to view coverity reports
16:21 particle msg chromatic i need to be able to view coverity reports
16:21 purl Message for chromatic stored.
16:21 Andy why chromatic?
16:21 whiteknight I think somewhere along the line I was given a login, but never used it
16:21 Andy I can hook you up with the Coverity guy
16:21 whiteknight you gots da' hookup?
16:21 particle previously, c said, 'give me your info and i'll set you up'
16:22 whiteknight "whatchou need? I gots it"
16:22 particle but if you'll be my new sugardaddy i'll love you forever
16:22 Andy send to me and I'll forward it.
16:22 Andy Don't you love me forever anyway, Jerry?
16:22 particle what info is needed?
16:22 particle YES.
16:22 Andy just a uname and email I assume
16:22 pmichaud for those who are interested in my experience with yahoo's crawler:  http://www.pmichaud.com/pipermail/p​mwiki-users/2006-March/024894.html
16:22 particle particle and particle@parrot.org
16:22 pmichaud (yes, it's 2006.  I haven't looked recently)
16:26 particle it'd be nice to get parrot to coverity rung 3
16:26 particle it'd be extra nice to beat perl there
16:26 Andy particle: sent
16:26 whiteknight where does one go to log into coverity?
16:26 Austin joined #parrot
16:26 whiteknight nvermind, I found my email
16:27 dukelet0 Andy: i don't think anybody is riled, just not seeing how to use cpplint.py effectively. If you gave an example of it being of use to Parrot, those arguments would dissolve
16:27 Andy dukelet0: I'm not seeing how to use it, either.  I haven't even looked.
16:27 Andy It was a to-do.
16:30 Andy Now I can't find my Coverity credentials
16:32 whiteknight strangely enough, my coverity login name is "andrew"
16:32 whiteknight as if there are no other andrews around
16:32 Andy and I think mine is andy
16:34 whiteknight it would be much easier for me to remember "whiteknight" instead. But beggars can't be choosers
16:34 Andy as if there are no other white knights around.
16:35 dalek rakudo: 8e34da7 | pmichaud++ | src/setting/IO.pm:
16:35 dalek rakudo: Add the IO.t method for testing that a filehandle is opened to a tty.  (hv2++)
16:35 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​e34da7f66a201237cdf68049fa250c8a258a437
16:36 ash_ whiteknight: have you been working on the llvm stuff?
16:36 flh joined #parrot
16:36 whiteknight ash_: not a bit. Been very busy in $reallife these last two weeks
16:37 darbelo ash_: So, did your pmc build?
16:37 ash_ whiteknight: well, i have been playing with a PMC that call to the llvm so you can load it as a dynpmc
16:38 whiteknight yeah, I saw your comment earlier. I would love to see that
16:38 ash_ yah, that makefile you gave me helped but i ended up just manually making a bunch of changes (had to make it link to the llvm-libs and what have you) so its not really being generated automattically
16:38 whiteknight ash_: is your code visible anywhere?
16:39 ash_ its mostly the sample from the llvm-jit examples in their trunk http://gist.github.com/192495 wrapped in a single function in a PMC, thats almost it, i'll update that one to show you my actual code, one sec
16:40 ash_ i had to compile parrot with --cc=g++ and then after i used pmc2c on that pmc i changed a few things around in the C and changed the C file to a cpp file
16:41 ash_ http://blog.fallingsnow.net/2008​/05/23/simple-vm-jit-with-llvm/ has a good example of how to convert C code into llvm-opt code that you can load at runtime into your JIT so you don't have to write as much C++ for manually making functions
16:42 darbelo sounds like you've been busy.
16:44 ash_ although one thing i want to check is whether http://llvm.org/doxygen/classllvm_1_1Modu​le.html#0e4d944623267c9ba22ad8fb903ec4c0 allows for multi-methods, the doc explains that it finds a function based on the prototype you pass it, but if its given the wrong prototype it tries to change it to the right prototype, which could mean that llvm-jit methods are multi-methods but i can't say for sure, it could just be overriding the old func
16:44 ash_ new one too, i wanted to test that out
16:45 ash_ darbelo: i couldn't sleep last night so i just messed with it till it worked
16:45 ash_ eventually it did
16:45 ash_ if you bash it enough times with a hammer anyway
16:48 ash_ so, for the jit system did you guys want to translate pasm to llvm-ir? or could you just use the llvm to compile the fastcore into llvm-opt code then have it optimize that with the jit?
16:49 darbelo We're ummm... researching.
16:49 ash_ then it would be like how perl6 has its entire code in a C string and it just loads that into the parrot lib when you start it, you could have the runcore in effectively a C string thats loaded into the llvm-jit when you start parrot
16:51 ash_ i am sure there are parts of this that I am missing though
16:53 darbelo I guess I'm not really the best person to discuss this. My only JIT work was to rip the old one out.
16:56 darbelo But you just gave me a pretty evil idea.
16:56 ash_ i am in a similar boat, i have just read a bunch of the documentation for the llvm and saw how others are doing it (macruby, unladen swallow which is a fork of python where they are integrating the llvm)
16:57 whiteknight ash_: I think what we're planning is to compile the fastcore functions to LLVM-IR at build-time
16:57 darbelo I don't have LLVM on my platform, but we are also evaluating other alternatives.
16:57 kjeldahl Just got the bugfixes and kubuntu-desktop seems to install fine again. Hopefully my desktop will be back when I arrive at the office tomorrow. Thank you for helping out.
16:57 kjeldahl Oops: Sorry, wrong channel.
16:58 ash_ darbelo: yeah i have seen a lot about libjit recently, i tried looking into it more but the download link on http://www.gnu.org/software/do​tgnu/libjit-doc/libjit_1.html is dead
16:58 darbelo I'll see which work here and try to whip up a prototype.
17:00 ash_ didn't mono switch to libjit recently?
17:00 whiteknight the portable version did
17:00 whiteknight I don't know if that was recent
17:00 whiteknight and I don't know if "regular" mono did
17:01 whiteknight I guess I hadn't really realized that the LLVM API was only C++
17:01 joeri joined #parrot
17:01 ash_ yeah, llvm doesn't have pure C bindings currently, it can work with C but you have to do all that fancy stuff invovled with mixing C and C++
17:02 ash_ making sure you use the right extern and all that, compiling it with the right linkings
17:03 whiteknight I wonder what it would take to create some pure-C bindings
17:03 whiteknight I'm sure it would take a huge effort
17:04 darbelo A glue layer of extern "C" functions that call c++ would be easier.
17:04 NotFound What right externs? Manually name mangling?
17:04 darbelo Ew. I hope not.
17:05 NotFound There is no other way to use C++ functions from C if the C++ code does not use extern "C"
17:07 ash_ there are some llvm-c bindings actually, i just checked, don't know if they are complete though (llvm-c/ is the C bindings llvm/ is the C++ ones)
17:10 ash_ might be able to use the llvm-c stuff instead of the C++ ones, not sure, i can read into it more
17:14 whiteknight ash_: you have a link to the LLVM C bindings stuff? I would be interested to read it too
17:16 dalek decnum-dynpmcs: r184 | darbelo++ | trunk/cfg/Makefile.in:
17:16 dalek decnum-dynpmcs: Actually use the STAGING_DIR variable in the makefiles.
17:16 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=184
17:16 ash_ http://llvm.org/docs/FAQ.html#langirgen mentions it, http://llvm.org/docs/doxygen​/html/Core_8cpp-source.html has some info
17:16 ash_ still looking for more documentation on the llvm-c stuff, i just found it a few minutes ago
17:18 whiteknight http://llvm.org/docs/doxyge​n/html/Core_8h-source.html
17:20 ash_ oops, time for class, lost track of time, whiteknight i am going to keep looking into this to see if maybe you can link to the llvm without C++
17:21 ash_ i'll let you know if i find much, talk to you later
17:23 whiteknight awesome
17:26 * whiteknight has to go now. Giving a tutorial at work about unit testing and TDD
17:26 darbelo TDD++
17:30 mberends joined #parrot
17:34 dalek decnum-dynpmcs: r185 | darbelo++ | trunk/cfg/Makefile.in:
17:34 dalek decnum-dynpmcs: There's nothing in the build/directory we want to save, so 'make clean' removes
17:34 dalek decnum-dynpmcs: it altogether.
17:34 dalek decnum-dynpmcs: Further make targets recreate it if needed.
17:34 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=185
17:35 chromatic joined #parrot
17:35 dalek parrot: r41444 | NotFound++ | trunk/t/op/annotate.t:
17:36 dalek parrot: [t] use getinterp instead of new 'ParrotInterpreter' to get annotations, TT #1060
17:36 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41444/
17:51 theory joined #parrot
17:51 dalek decnum-dynpmcs: r186 | darbelo++ | trunk/build:
17:51 dalek decnum-dynpmcs: We don't need to version an empty directory. Really.
17:51 dalek decnum-dynpmcs: review: http://code.google.com/p/decnu​m-dynpmcs/source/detail?r=186
17:58 dalek parrot: r41445 | NotFound++ | trunk/tools/build/nativecall.pl:
17:58 dalek parrot: [nci] use char** instead of void** in type B parameters, this simplify the code and avoid strict-aliasing warnings
17:58 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41445/
17:59 TimToady joined #parrot
18:02 dalek parrot: r41446 | mikehh++ | trunk/config/gen/makefiles/root.in:
18:02 dalek parrot: add tests to make fulltest and clean up make cover
18:02 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41446/
18:04 cotto_work I'm amazed that the gdb hackers are using cvs.
18:05 darbelo There's still quite a few some people using CVS out there.
18:06 chromatic OpenBSD has a project to reimplement CVS.
18:07 NotFound Tell them to do it with PIR
18:07 dukeleto chromatic: oh my.
18:07 dukeleto chromatic: link?
18:07 purl or "Link is ... like ... this pointy eared goblin that walks around in midi-music land with a letter opener attacking circles and things and wooing princesses but not bannon, you know?" or preaction is Error.
18:07 darbelo dukeleto: It's mostly done even. I use it to update my ports and source trees.
18:07 darbelo OpenCVS
18:08 darbelo But the web pages don't say much about it.
18:08 dukeleto using cvs for a ports system makes sense, i guess. I say this grudgingly.
18:09 darbelo As far as I can tell the core devs mail each other patches until enough people say 'ok' then it goes into the tree.
18:10 theory joined #parrot
18:10 cotto_work I guess it does the job for them, but why?
18:11 * cotto_work put it out of his mind and gets back to "work".
18:11 cotto_work which at this point legitimately includes reading Chromatic's blog
18:11 cotto_work s/C/c/
18:12 darbelo legitimately? cotto++
18:12 cotto_work It'd be a dream job if it weren't a 12 month contract.
18:20 coke joined #parrot
18:20 coke msg mikehh the comment you added to the makefile reflects the status from the previous revision, not your fix.
18:20 purl Message for mikehh stored.
18:20 coke msg mikehh (just document the way it is now, not the way you fixed it from.)
18:20 purl Message for mikehh stored.
18:21 iblechbot joined #parrot
18:26 coke msg mikehh you might also be interested in TT#1061
18:26 purl Message for mikehh stored.
18:27 dalek TT #1061 created by coke++: Lists of test files duplicated.
18:33 whiteknight joined #parrot
18:38 mikehh coke: re TT #1061 - I looked at that but look at standard_tests in DefaultTests.pm for example
18:39 mikehh coke: I also couldn't figgure out how to get that into fulltest and cover
18:41 mikehh coke: some of the configure tests use those arrays
18:43 japhb joined #parrot
18:45 jan joined #parrot
18:46 dalek TT #1062 created by NotFound++: Type safe mark alive
18:50 chromatic +1 on the patch in TT #1062.
18:56 Austin joined #parrot
19:02 pmichaud +1 also
19:05 zerhash joined #parrot
19:12 darbelo msg japhb My attempt at teaching gitorius to dalek failed with ENOTUITS.
19:12 purl Message for japhb stored.
19:19 cotto_work NotFound++
19:21 cotto_work (and "why didn't we do that sooner?" to the patch)
19:22 NotFound I asked for objections, not for applauses ;)
19:23 whiteknight I object for not letting us applaud you
19:23 whiteknight Actually, I had thought about doing that exact same thing a while back and didn't. That makes me mad at myself
19:23 darbelo I object to not committing that right now.
19:24 pmichaud I object to anyone who objects
19:24 cotto_work I applaud your asking.
19:24 NotFound Ok, I'll commit it
19:24 mikehh is an objection a PMC object?
19:25 NotFound Is an ion encapsulated
19:25 japhb darbelo, no worries.  If you get it before someone else does, great.  If not, that's OK too.  :-)
19:25 cotto_work purl, Ok, I'll commit it is NO YOU FOOL!  YOU'LL KILL US ALL!
19:25 purl OK, cotto_work.
19:25 cotto_work purl, Ok, I'll commit it. is NO YOU FOOL!  YOU'LL KILL US ALL!
19:25 purl OK, cotto_work.
19:26 japhb cotto_work, shouldn't that be ... is <reply>... ?
19:26 cotto_work no purl, Ok, I'll commit it is <reply>NO YOU FOOL!  YOU'LL KILL US ALL!
19:26 purl okay, cotto_work.
19:26 cotto_work no purl, Ok, I'll commit it. is <reply>NO YOU FOOL!  YOU'LL KILL US ALL!
19:26 purl okay, cotto_work.
19:26 cotto_work japhb++
19:26 NotFound Ok, I'll commit it
19:27 not_purl NO YOU FOOL!  YOU'LL KILL US ALL!
19:27 japhb Odd, I wonder why that didn't trigger
19:27 * cotto_work kicks purl
19:27 * purl kicks cotto_work
19:28 * darbelo shoots purl
19:28 * purl sticks a finger in darbelo's gun barrel
19:28 * japhb is testing purl ...
19:28 japhb I'll commit it
19:29 japhb hmmm
19:29 japhb purl, foo is <reply>NO YOU FOOL!  YOU'LL KILL US ALL!
19:29 purl ...but foo is <reply>bar...
19:29 japhb purl, foob is <reply>NO YOU FOOL!  YOU'LL KILL US ALL!
19:29 purl OK, japhb.
19:29 japhb foob
19:29 japhb ???
19:29 darbelo foob?
19:29 purl NO YOU FOOL!  YOU'LL KILL US ALL!
19:30 darbelo Ok, I'll commit it
19:30 japhb huh.  Change of purl config somewhen?
19:30 purl japhb: that doesn't look right
19:30 darbelo Ok, I'll commit it?
19:30 dalek parrot: r41447 | NotFound++ | trunk (39 files):
19:30 dalek parrot: [gc] add new mark_... _alive functions, use it in a lot of mark vtable functions, and some cleanup related, TT #1062
19:30 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41447/
19:30 japhb "I'll commit it"?
19:30 cotto_work The bot is hopeless.
19:30 japhb sigh
19:31 * japhb adds that as item 78642 on his list of things to do before the sun goes red giant.
19:36 dukeleto purl, commit?
19:36 purl well, commit is 8d063cd8450e59ea1c611a2f4f5a21059a2804f1
19:36 dukeleto even purl uses git nowadays ;)
19:36 whiteknight one thing we definitely are going to need here in the next few days is a major overhaul of the GC-related documentation and PDD09
19:37 whiteknight consider how much of the API has changed recently
19:46 jrtayloriv whiteknight, I'd be interested in working on that. I've been really busy lately, but should be able to at least get some documentation written/edited. I already did a bit when I was working on gc-refactor.
19:47 whiteknight yeah, I'm sure a lot of the big points are still fine. Just needs some lovin'
19:47 jrtayloriv whiteknight, Definitely. I'll take a look at it later tonight -- doing a Linux install for a friend right now, so that's going to take up most of my day.
19:47 whiteknight yeah
19:53 chromatic 202 current Coverity defects.
19:53 chromatic Lots in PCC.
19:54 bacek joined #parrot
19:55 moritz 6
19:55 moritz sorry
19:55 darbelo The PCC refactor needs to happen *now*
19:56 moritz well, it doesn't seem very simple...
19:56 particle joined #parrot
19:58 darbelo It's likely to be very difficult. But the biggest blocker so far has been tuit shortage.
19:59 darbelo I don't doubt that if allison had the time it could land for the next release.
20:01 darbelo We need to kidnap the architect :)
20:03 cotto_work s/kidnap/clone/
20:04 darbelo Sure, with cloning tecnology, after you kidnap the first one you can make as many as you want.
20:05 cotto_work but yeah, having a very important branch that only allison can work on isn't helping
20:06 whiteknight I don't think that only allison can work on it
20:06 whiteknight if we put together a little strike team, I think a group of us could fix it up pretty quickly
20:08 darbelo The plan for it is in her head. We'd be driving half-blind in rough roads.
20:08 NotFound A problem is that the branch is old, lots of branch merges had happened.
20:09 whiteknight darbelo: her plan for it is implemented in code in the branch. Primary development is over, it's all fixing test failures now
20:09 cotto_work whiteknight, I think you're right.
20:09 mokurai joined #parrot
20:09 whiteknight NotFound: if we can make it work as-is in that branch, we can forward-port it to current trunk.
20:09 darbelo Oh, my bad then.
20:09 * cotto_work wishes for git
20:10 NotFound whiteknight: I can't
20:10 whiteknight so I say we do this: copy the pcc_arg_unify branch to a pcc_arg_for_serious branch, and we can work on it there without stepping on allison's toes
20:10 cotto_work whiteknight, where did you get "for serious"?
20:10 NotFound I think allison already has the intention to do it
20:11 mikehh All tests PASS (pre/post-config, smoke, fulltest) at r41447 - Ubuntu 9.04 amd64
20:11 cotto_work intention != tuits
20:11 whiteknight cotto_work: I don't know, it sounded better then "pcc_arg_unify2"
20:11 cotto_work I had a housemate who used to say that.
20:11 whiteknight if we get that branch working and mergable, that's a good thing
20:11 NotFound whiteknight: 2.0, is the norm these days ;)
20:11 cotto_work v. yes
20:11 whiteknight allison doing a code review is faster then allison doing deep debugging
20:12 pmichaud also, jonathan++ will be blocking on that branch very soon (like, within a week or two)
20:13 whiteknight I say that's the new plan: create a copy of the branch and everybody who is blocking on it can get their coding asses in there to fix it
20:13 cotto_work let's storm the castle!
20:13 NotFound Uh, I confused myself. I think allison talked about taking a diff of the branch, apply to trunk, and start a nwe branch with that.
20:13 whiteknight 2-5 dedicated coders could knock that out
20:15 whiteknight because personally I'm getting tired of not just doing it myself, considering how much is waiting for it
20:15 bluescreen joined #parrot
20:15 allison_ joined #parrot
20:15 cotto_work I can't currently commit code written at work, but I've got the tuits and there's nothing preventing me from reading it.
20:15 cotto_work speak of the architect...
20:16 cotto_work hi allison_
20:16 allison chromatic pinged me
20:16 whiteknight allison: I'm trying to put together a strike team to storm the pcc_arg_unify castle
20:16 allison I'll be home Saturday
20:16 Austin joined #parrot
20:17 allison I'm going to do a fresh branch, pull in the changes
20:17 NotFound allison: Have you seen TT #1062 ?
20:17 whiteknight is the branch still failing tests?
20:19 * dukeleto just did an inter-library loan for the newest edition of the dragon book. exciting!
20:20 NotFound dukeleto: Do you mean the D&D manual? ;)
20:22 whiteknight dukeleto: I own a copy. one of my favorite books!
20:22 diakopter whiteknight: 3rd edition?
20:22 purl 3rd edition is going to print in the near future
20:22 whiteknight diakopter: second I thought. the one with the purple dragon
20:23 whiteknight I couldn't get a copy of the red-dragon one, too expensive and hard to find
20:24 dukeleto it is the 2007 edition, whatever that is
20:24 mikehh partcl r744 builds on parrot r41447 - make test PASS (smolder #28015) - ubuntu 9.04 amd64
20:24 dukeleto i hope to learn some good spells ;)
20:25 whiteknight it's a great introduction to a lot of topics. Like parsing and lexing it's great for
20:25 allison whiteknight: having in person conversation with chromatic
20:25 whiteknight it has some sections on VMs, GC, op dispatch, etc, but nothing that you couldn't learn from the Parrot source code
20:25 NotFound Without guns?
20:25 dukeleto lulz
20:26 allison whiteknight: so, here's the plan, anybody who's interested have a look at the code in the next few days
20:26 whiteknight allison: yes, I'm jealous
20:26 allison whiteknight: while I'm on the plane, I'll write up a high-level description of how the new PCC is *supposed* to work
20:26 whiteknight allison: we have a lot of talented developers around here who seem to think they have no choice but to wait it out
20:26 allison whiteknight: (understanding that seems to be the biggest blocker for people getting involved)
20:26 whiteknight my intention is to focus that energy into fixing it
20:27 whiteknight allison: that would be wonderful and perfect
20:27 pmichaud whiteknight++ allison++
20:27 allison whiteknight: I'll prepare a list of tasks that need to be done, so they can be distributed
20:27 pmichaud \o/
20:27 NotFound Great
20:27 whiteknight you hear hat guys? light your torches and sharpen your pitchforks! We storm the castle at dawn!
20:28 whiteknight well, localtime(dawn)
20:28 NotFound Hooray!
20:28 allison dawn saturday :)
20:28 * pmichaud prepares his catapults and trebuchets
20:28 whiteknight localtime(saturday.dawn)
20:28 whiteknight whenever. All  need is a reason to grab the pitchfork
20:28 allison but, like I said, feel free to take a look at the code in the meantime
20:29 allison a trac diff on the changes in the branch will reveal what you need to see
20:29 pmichaud "A riot is an ugly thing.  But it's about time that we had one!!!"   -- line from "Young Frankenstein"
20:29 allison (it's a pure branch, no updates from trunk)
20:29 NotFound allison: I tooka look, but looking at code pre context refactoring give me headaches ;)
20:30 whiteknight yeah, that's the part I worry about the most: the Sub, Context, and Continuations refactors that all landed
20:30 whiteknight I think we can account for all of it, but it will require some effort
20:30 allison whiteknight: that's why I'm starting with a fresh branch
20:31 allison it's not that big a deal, just a few new functions added, and a lot of function names changed
20:31 whiteknight if the conflicts list gets too large, feel free to commit it and we can get more hands helping to resolve things
20:31 whiteknight one thing we do have is hands
20:32 NotFound And foots, to kick if required ;)
20:33 * dukeleto can kick like a horse
20:33 cotto_work
20:33 allison I have to go catch a flight, will be back online this evening after I speak at a Python user group
20:33 whiteknight NotFound: I have a bag of karma for you if you can type legibly with your foot
20:33 whiteknight allison++
20:33 allison (this is my last planned trip until December)
20:33 NotFound rakudo spectest PASS with r41447, amd64
20:34 whiteknight (allison is online for like 5 minutes and solves everybody's problems. Hooray!)
20:35 bacek good morning
20:35 purl And good moroning to you, bacek.
20:37 NotFound whiteknight: with a pen, or a keyboard?
20:37 darbelo NotFound: It's easier if you use both :)
20:37 cotto_work NotFound, with a keyboard.  Also, you have to upload a video of it to youtube
20:38 darbelo Grab the pen with your foot, and tap the keyboard with the pen.
20:38 bacek pmichaud: ping
20:39 NotFound I suppose a carpet keyboard doesn't count as valid
20:39 dukeleto bacek: howdy
20:40 bacek dukeleto: good-good
20:42 whiteknight one thing that I really don't understand well enough, because I don't do a lot of raw PASM, are the set_args and get_results opcodes
20:42 whiteknight get_params and set_returns too
20:42 nopaste "darbelo" at 200.49.154.173 pasted "compensation for japhb++" (53 lines) at http://nopaste.snit.ch/18052
20:42 NotFound whiteknight: black magic here
20:43 chromatic Hey, allison solved everyone's problem with some sage advice from Coach chromatic.
20:43 whiteknight chromatic++
20:43 whiteknight is that your title now? Coach?
20:43 chromatic Sure, why not?
20:43 darbelo I had you as the guru type
20:43 darbelo Or maybe a sage.
20:44 chromatic Someone needs to keep in mind the question "What could we do better to sustain this project over the long term?"
20:44 chromatic Someone else needs to keep in mind the question "What is the most important thing to work on right now to achieve our long term goals?"
20:45 chromatic That's a visionary.  (I prefer that term over "architect".)
20:45 NotFound Bank robbery?
20:45 purl Bank robbery is punishable by 20 years in Federal prison
20:45 bacek botsnack
20:45 purl :)
20:45 whiteknight the role of architect/visionary is a good thing, I think. I worry when I see people descending into an "us versus her" though
20:45 chromatic Exactly.
20:46 whiteknight so I don't want to "wait for allison to finish", I want to "all help allison finish"
20:46 chromatic She (and I believe the project) needs someone who's capable of and willing to consider the pragmatic, practical sustainability questions without stepping on the vision role.
20:46 whiteknight agreed
20:47 chromatic I told her I'm willing to ask the process questions and remind people that our goals in the short term have to lead us to the longer term goals.
20:48 chromatic Mostly we need to be able to discuss ideas and choose from alternatives while keeping both axes in mind.
20:49 japhb darbelo, go ahead and commit those Glue.pir diffs ... thanks!
20:50 jan joined #parrot
20:52 cotto_w0rk joined #parrot
20:55 kjeldahl joined #parrot
20:55 darbelo I forgot I was a committer. :)
20:56 dalek parrot: r41448 | NotFound++ | trunk (4 files):
20:56 dalek parrot: [examples] drop Mysql from parrot repo, now in �http://code.google.com/p/parrot-mysql/
20:56 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41448/
20:57 whiteknight Do we want to have a separately hosted project for every single library wrapper? I thought we were looking at a unified solution of sorts
20:58 darbelo whiteknight: We can have it both ways.
20:59 darbelo plumage is a central tool to pull together separately-hosted projects.
20:59 darbelo purl: plumage?
20:59 purl well, plumage is the future Parrot module ecosystem.  It will include tools to search metadata, handle dependencies, install modules, and so forth. or git://gitorious.org/parrot-​plumage/parrot-plumage.git or see https://trac.parrot.org/pa​rrot/wiki/ModuleEcosystem
20:59 NotFound And having some little projects is good for easy testing of plumage, I hope
20:59 whiteknight that's fine too, so long as there is a plan
21:00 moritz no plan; done_testing; # ;-)
21:00 PacoLinux joined #parrot
21:00 darbelo moritz++
21:02 whiteknight okay, it's time for me to go home. later
21:02 NotFound BTW I have a problem with mysql prepared statements. They need a C struct to set paraameters, there is no way to dynamicaly create it, and has a lot of private fields. That's a problem for NCI.
21:06 particle1 joined #parrot
21:08 moritz is that something a small C wrapper could "solve"?
21:08 NotFound moritz: yes, but then is no longer a pure NCI wrapper
21:09 moritz that's why I wrote "solve", not solve ;-)
21:09 bluescreen joined #parrot
21:16 bacek joined #parrot
21:16 dalek rakudo: f2acdbb | moritz++ | src/setting/Operators.pm:
21:16 dalek rakudo: implement some more use cases of infix:<...>
21:16 dalek rakudo: Much of that consists of ugly hacks because
21:16 dalek rakudo:  * we'd need multi slices for the signature, and don't have 'em
21:16 bacek hi again
21:16 purl oh, you're back!
21:16 dalek rakudo:  * I've hit at least three Rakudo bugs which I've worked around
21:16 dalek rakudo:  * infix:<...> has rather sophisticated cases, which I tried to cover
21:16 dalek rakudo:    at least partially without too much code duplication
21:16 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​2acdbb6487f6959894c457762e3bbc7ea2d6f7a
21:20 joeri left #parrot
21:36 ruoso joined #parrot
21:41 bacek joined #parrot
21:41 dalek rakudo: c394d6d | moritz++ | src/setting/Operators.pm:
21:41 dalek rakudo: forgot to remove debugging output, moritz--
21:41 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​394d6dede986def93f0ccbeb5a24fff2cc63e81
21:44 dalek parrot: r41449 | bacek++ | trunk/src (10 files):
21:44 dalek parrot: [core] Use more Parrot_gc_mark_PMC_alive function.
21:44 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41449/
21:45 * bacek just finished reading irclog
21:46 bacek Any one interested in "pcc_arg_unify" synced with trunk?
21:46 moritz bacek: only a new branch, afaict
21:46 darbelo Everyone, actually.
21:47 darbelo The plan is take all modifications made in branch and apply them to a fresh branch from trunk.
21:48 darbelo Why? Will you awesome git-fu make that a snap?
21:51 dalek parrot: r41450 | bacek++ | branches/pcc_arg_unify_2_0:
21:51 dalek parrot: New pcc_arg_unify branch synced with trunk
21:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41450/
22:15 bacek darbelo: git-fu is awesome, but sometime it's failing...
22:16 darbelo bacek++ # We reward failure too.
22:16 darbelo ;)
22:18 ttbot Parrot trunk/ r41451 i386-linux-thread-multi make error http://tt.ro.vutbr.cz/file/cmdout/104322.txt ( http://tt.ro.vutbr.cz//buil​dstatus/pr-Parrot/rp-trunk/ )
22:19 dalek parrot: r41451 | bacek++ | trunk (30 files):
22:19 dalek parrot: Merge branch 'pcc_arg_unify_local' into pcc_arg_unify_2_0_local
22:19 dalek parrot: It's work-in-progress commit. Few changes required.
22:19 dalek parrot: Conflicts:
22:19 dalek parrot: include/parrot/call.h
22:19 dalek parrot: include/parrot/interpreter.h
22:19 dalek parrot: lib/Parrot/Pmc2c/PCCMETHOD.pm
22:19 dalek parrot: src/call/pcc.c
22:19 dalek parrot: src/debug.c
22:19 dalek parrot: src/exceptions.c
22:19 dalek parrot: src/extend.c
22:19 dalek parrot: src/gc/alloc_register.c
22:19 dalek parrot: src/interp/inter_cb.c
22:19 dalek parrot: src/ops/core.ops
22:19 dalek parrot: src/ops/pic.ops
22:19 dalek parrot: src/packfile.c
22:19 dalek parrot: src/pmc/callsignature.pmc
22:19 dalek parrot: src/pmc/cpointer.pmc
22:19 dalek parrot: src/pmc/object.pmc
22:19 dalek parrot: tools/build/nativecall.pl
22:19 purl tools/build/nativecall.pl is supposed to be run manually, right?
22:19 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41451/
22:20 darbelo bacek: did you just break trunk?
22:20 bacek OH SHIT.
22:22 bacek darbelo: can you revert last commit please?
22:23 moritz I can do that if you want
22:23 bacek nm
22:23 bacek I did it.
22:24 moritz ok
22:24 chromatic Speaking of trunk, where are we with the "Remove strstart"?
22:24 dalek rakudo: a33b90c | moritz++ | src/setting/Operators.pm:
22:24 dalek rakudo: magic, eager 'a'...'z' and 'z'...'a' series
22:24 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​33b90cb8ca170bb964f7cedd327083477bd3f77
22:24 dalek rakudo: bac4abd | moritz++ | build/gen_setting_pm.pl:
22:24 dalek rakudo: add a vim modeline to gen_setting.pm which prevents accidental editing
22:24 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​ac4abd3152a50c956b05aa85aa81aa8cfe63918
22:26 darbelo A bit short of tuits on that front.
22:26 dalek parrot: r41452 | bacek++ | trunk (30 files):
22:26 dalek parrot: Revert "Merge branch 'pcc_arg_unify_local' into pcc_arg_unify_2_0_local"
22:26 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41452/
22:28 darbelo Looking at my notes: ~120 out of ~200 uses are inside src/string/ and src/gc
22:29 moritz one usage in rakudo (src/pmc/perl6str.pmc)
22:29 darbelo most of it is bookkeeping that can be removed along with the struct member.
22:29 darbelo Yes, rakudo has one use, partcl none.
22:30 darbelo didn't check cardinal
22:30 darbelo lua had none as far as I recall
22:30 moritz cardinal: 0
22:30 polyglotbot OUTPUT[Parrot VM: Can't stat languages/cardinal/cardinal.pbc, code 2.␤main: Packfile loading failed␤]
22:30 Tene polyglotbot hasn't worked properly in ages
22:31 Tene If anyone is interested, I can help them get access to feather3.
22:31 darbelo Biggest offender in strstart abuse is still pmc_freeze
22:31 was kicked by moritz: come back when you work again ;-)
22:32 chromatic pmc_freeze, okay.  What do we need there?
22:37 Austin joined #parrot
22:41 dalek parrot: r41453 | bacek++ | branches/pcc_arg_unify_2_0 (30 files):
22:41 dalek parrot: Sync branch with trunk and pcc_arg_unify branch.
22:41 dalek parrot: It's work-in-progress commit. Few changes required.
22:41 dalek parrot: Conflicts:
22:41 dalek parrot:     include/parrot/call.h
22:41 dalek parrot:     include/parrot/interpreter.h
22:41 dalek parrot:     lib/Parrot/Pmc2c/PCCMETHOD.pm
22:41 dalek parrot:     src/call/pcc.c
22:41 dalek parrot:     src/debug.c
22:41 dalek parrot:     src/exceptions.c
22:41 dalek parrot:     src/extend.c
22:41 dalek parrot:     src/gc/alloc_register.c
22:41 dalek parrot:     src/interp/inter_cb.c
22:41 dalek parrot:     src/ops/core.ops
22:41 dalek parrot:     src/ops/pic.ops
22:41 dalek parrot:     src/packfile.c
22:41 dalek parrot:     src/pmc/callsignature.pmc
22:41 dalek parrot:     src/pmc/cpointer.pmc
22:41 dalek parrot:     src/pmc/object.pmc
22:41 dalek parrot:     tools/build/nativecall.pl
22:42 purl well, tools/build/nativecall.pl is supposed to be run manually, right?
22:42 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41453/
22:43 darbelo joined #parrot
22:43 darbelo Gah. Power outage.
22:45 darbelo Okay I'm backlogged now.
22:46 darbelo pmc_freeze.c plays at increasing strstart to 'consume' the items at the start of the string.
22:47 darbelo That's the biggest piece of ugly there.
22:49 darbelo I think I got rid of most of *that* abuse, but there's still trickery hiding in that file.
22:52 darbelo Next biggest target is src/io which plays with buffers a lot. But I guess we can move most of it to abuse Buffer_bufstart() instead of strstart.
22:53 darbelo CAVEAT: A big part of that code is behind #ifdefs for platforms I can't test.
22:56 kid51 joined #parrot
23:00 tetragon joined #parrot
23:03 darbelo Maybe I should start opening tickets for the stuff I can't test.
23:06 dalek parrot: r41454 | bacek++ | branches/pcc_arg_unify_2_0 (2 files):
23:06 dalek parrot: Add more Context API functions for new Context fields
23:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41454/
23:06 dalek parrot: r41455 | bacek++ | branches/pcc_arg_unify_2_0 (6 files):
23:06 dalek parrot: Fix some merge errors
23:06 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41455/
23:39 Zak joined #parrot
23:46 Ryan52 is allison on vacation or something?
23:46 chromatic Traveling for work.
23:47 dalek parrot: r41456 | jkeenan++ | trunk (70 files):
23:47 dalek parrot: Merge auto_frames_refactor branch into trunk.  Refactors config/auto/frames.pm to improve testability and test coverage.  No change in functionality.
23:47 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41456/
23:47 darbelo kid51++
23:47 darbelo testability++
23:47 kid51 darbelo:  Thanks!
23:48 kid51 As promised, I left the C untouched.
23:48 Ryan52 chromatic: ah. thanks.
23:48 kid51 But I notice that that 'svn merge' -- perhaps due to an updated version of SVN on my server -- brought in a lot of "Property changes on" lines.
23:49 kid51 I myself modified only two files.
23:50 darbelo Merges are now tracked in properties, anything that saw alterations (on the branch or on trunk) since the branch point gets it's properties twiddeld at merge time.
23:50 darbelo svn:mergeinfo is the culprit
23:50 dalek parrot: r41457 | jkeenan++ | branches/auto_frames_refactor:
23:50 dalek parrot: Branch has been merged into trunk and is no longer needed at HEAD.
23:51 purl i already had it that way, dalek.
23:51 dalek parrot: review: https://trac.parrot.org/parrot/changeset/41457/
23:51 diakopter purl: ignore dalek
23:51 purl diakopter: huh?
23:51 diakopter twss.
23:52 darbelo purl: die in a fire
23:52 purl HALP
23:52 kid51 darbelo:  Thanks.  That was probably my first merge since a Subversion upgrade.
23:54 darbelo And that code looks a lot better than what I wrote^Wcargo-culted in the first place.
23:56 patspam joined #parrot
23:57 Austin joined #parrot

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

Parrot | source cross referenced