|
www.parrot.org | Parrot 1.6.0 "half-pie" released: The JIT is dead! | Testing priorities: Exception and MultiSub Set by moderator on 20 September 2009. |
|||
| jrtayloriv | What attribute of the match object $/ is the actual text that was matched stored in? | 00:09 | |
| 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:11 | ||
| dalek | ose: r137 | Austin++ | wiki/nutshell (2 files): Added nutshell/ |
00:12 | |
| ose: r138 | Austin++ | trunk: Added extern link to nutshell wiki |
|||
| cnum-dynpmcs: r183 | darbelo++ | trunk/Configure.pl: Exterminate Configure.pl |
|||
| jrtayloriv | nm -- I found it. | 00:15 | |
| dalek | ose: r139 | Austin++ | trunk: Wiki edits |
00:17 | |
| ose: r140 | Austin++ | wiki/nutshell: Wiki edits |
|||
|
00:20
TiMBuS joined
|
|||
| dalek | ose: r141 | Austin++ | wiki/CianToc.wiki: Created wiki page through web user interface. |
00:26 | |
| ose: r142 | Austin++ | wiki/CianIntroduction.wiki: Created wiki page through web user interface. |
00:31 | ||
| ose: r143 | Austin++ | wiki/CianIntroduction.wiki: Edited wiki page through web user interface. |
|||
| ose: r144 | Austin++ | wiki/CianLanguageBasics.wiki: Created wiki page through web user interface. |
|||
|
00:36
ash_ joined
|
|||
| dalek | ose: r145 | Austin++ | wiki/CianLanguageBasics.wiki: Edited wiki page through web user interface. |
00:38 | |
| ose: r146 | Austin++ | wiki/CianToc.wiki: Edited wiki page through web user interface. |
|||
| ose: r147 | Austin++ | wiki/CianTypes.wiki: Created wiki page through web user interface. |
|||
| ose: r148 | Austin++ | wiki/CianLiterals.wiki: Created wiki page through web user interface. |
|||
| 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 | ose: r149 | Austin++ | wiki/CianTypeConversions.wiki: Created wiki page through web user interface. |
||
| ose: r150 | Austin++ | wiki/CianExpressionsAndOperators.wiki: Created wiki page through web user interface. |
|||
|
00:47
szabgab joined
|
|||
| 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:47 | |
| Austin | Forgot that I was "away". Sorry. | 00:48 | |
| Did that get you what you needed? | |||
| jrtayloriv | Austin, Yes, for now. I'm about 15% sure about what exactly I'm doing here ... mostly voodoo/magic/randomly-try-things-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
01:07
particle joined
|
|||
| 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:10 | |
| jrtayloriv | Austin, Are you familiar with Lisp or Scheme at all? | 01:12 | |
| Austin | Parentheses, lists, programs-are-data. That's about it. | ||
| But it should be really easy to parse, no? | 01:13 | ||
| rule sexp { <.paren> <ident> <arg_expr>* } | |||
| jrtayloriv | Austin, extremely easy, from what I understand. The grammar was really simple. | ||
| 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. | ||
| Austin | ash_: Look on Planet Parrot for WhiteKnight's blog posts. He and Cotto have been looking at llvm | ||
| jrtayloriv: What kind of procedures? The builtins? | |||
| ash_ | yeah, i saw his blog post | 01:15 | |
| cotto | Austin, i haven't been doing much actual looking | ||
| 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. | ||
| Austin | Really? Did I confuse you with someone else? | ||
| jrtayloriv: What happens to the lambda (original) after that? | 01:16 | ||
| jrtayloriv | poof! | ||
| Austin | Okay. That's pretty simple then. | ||
| jrtayloriv | Would I just create a symbol hash that points to the standard subs, and then 'include' it somehow? | 01:17 | |
| Austin | No. | ||
| Too complex. | |||
| Just define the subs in the 'builtins.pir' (or collect them from individual .pir) and include them in your compiler | |||
| To override a sub, just store to the global in the appropriate namespace. | 01:18 | ||
| jrtayloriv | Oh! Didn't even notice 'builtins/' there. Thanks :) | 01:19 | |
| Austin | Look at nopaste.org/p/agTSIRQNJ and nopaste.org/p/asBA7Nr2x | 01:21 | |
| (It's a mistake on my part, but it illustrates the point.) | 01:22 | ||
| 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. | |||
| You can replace a sub by generating a "set_global", I think. | 01:23 | ||
| Just make sure you've got the right data type. :) | |||
| jrtayloriv is studying the code now .. | |||
| dalek | rrot: r41440 | jkeenan++ | branches/auto_frames_refactor (2 files): 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 | |
| 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:38 | |
| Austin | NCI, I think you want. But you might want to look at the dynamic pmc stuff (dynpmc) under src/dynpmc | 01:39 | |
| 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:41 | ||
|
01:43
ash_ joined
|
|||
| 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. | ||
| Austin | nopaste.org/p/aIV2QOifob | ||
| Sure, but namespaces are already symbol hashes. It's what they do. | 01:44 | ||
| That nopaste is a program that swaps sub names. | |||
| 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. | ||
| Austin | Probably not. | ||
| That loads the name PBC - a string, containing "foo" - into a register. | |||
| You probably want the sequence - $P0 = find_lex '$name'; $S0 = $P0; $P1 = get_global $S0 | 01:46 | ||
| 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:48 | ||
| Is the phemer (?) source code browseable on line? | 01:49 | ||
| ash_ | PMC's can call C functions directly correct? | 01:51 | |
| 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. | ||
| 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. | ||
| Austin | s'ok | ||
| 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. | ||
| Austin | ash_ : The difference is between "core" PMCs - those that ship with Parrot's core - and others. | ||
| Jr: Ok. But it's easier to make suggestions if I can look at the code, or at least at the grammar. | 01:54 | ||
| 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:55 | ||
| jrtayloriv | Austin, Understood. Here is the grammar, if you want to have a look -- pastebin.com/d4ffaba2 ... I'll post up actions.pm tomorrow after I've added some basic functionality to it. | 01:56 | |
| 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 | ||
| jrtayloriv | Will do. | ||
| 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 nopaste.snit.ch/18040 | ||
| ash_ | Austin: got ya, thanks | ||
| 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. nopaste.snit.ch/18040 and thenceforward.net/parrot/coverage/c...s-pm.html. Will apply in day or two. | ||
| purl | Message for darbelo stored. | ||
| kid51 must sleep | 02:00 | ||
| purl | $kid51->sleep(8 * 3600); | ||
| Austin | Boy, opening OOo 3 is a considerable pain | 02:03 | |
| ash_ | whats OOo 3 | 02:08 | |
| jrtayloriv | bedtime for me -- good night #parrot | ||
| Austin | OpenOffice.org - a freely-available replacement for Microsoft Office. | 02:09 | |
| Good night, JrTaylorIV | |||
| (Or is that J.R. ?) | |||
| 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 | :) | ||
| I'm still painfully shy of that, remembering things like the dead-user lockouts, and the fact that Google is a search engine. :-S | |||
| ash_ | lol, yeah gmail has adds related to your email content, thats odd and umm not that comforting | 02:12 | |
| Austin | Well, that was foul. | 02:13 | |
| 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:14 | ||
| If you ever need some infotaining reading, check out "The Frozen Water Trade." | 02:15 | ||
| ash_ | i get distracted all the time, plus i am almost always on the internet so it happens a lot | 02:16 | |
|
02:18
skv_ joined
02:21
payload joined
02:26
petdance joined
|
|||
| dukeleto | 'ello | 02:34 | |
| i am just learning that in PIR, $I1 is different than $I01 . is that tested/spec'ed anywhere? | 02:39 | ||
| Austin | Hello, duke. | ||
| I hadn't realized that difference, but I'm not too surprised. | 02:40 | ||
| I wonder if $I0x01 is supported? | |||
| dukeleto | Austin: read the "register type" section on coolnamehere.com/parrot/learn/02-va...types.html | 02:41 | |
| Austin | FYI: $I0x01 is not supported. | ||
| dukeleto | if we don't already, that behavior needs tests and to be described in a PDD somewhere | ||
| Austin: are you meaning x as in $I001 or a literal 'x' ? | |||
|
02:41
janus joined
|
|||
| Austin | Duke: I was wondering if it just looked for '$' + '[ S P I N ]' + any-numeric-regex | 02:42 | |
| But apparently it just looks for \\d+ | |||
| :( | |||
| dukeleto | Austin: gotcha | 02:43 | |
| 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 :( | ||
| Austin | You can, but you have to be consistent. | ||
| dukeleto | Austin: modify which section where? | ||
| Austin | $I8 = 0 ; print $I011; that won't work. | ||
| "That makes register variables ideal for short chunks of code." | 02:45 | ||
| That section. | |||
| purl | that section is fundamentally crass. | ||
| dukeleto | Austin: that is not my blog | ||
| Austin | Oh. Too bad. | ||
| 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 | ||
| Austin: that would be a good assumption | |||
| Austin: are you on the twitterwebs? | |||
| Austin | No. | 02:47 | |
| I'm frankly not sure I'm smart enough to use IRC. | |||
| dukeleto | meh | ||
| Austin | dukeleto, do you know of a good explanation of parrot namespaces anywhere? | 02:51 | |
| ash_ | is there a C function for turning a C str into a PMC Str? | 02:52 | |
| Austin | ash_: Of course there is. | ||
| ash_ | happen to know which header file its in? | ||
| Austin | Actually, there is probably a C str -> Parrot-str -> PMC sequence. | ||
| But I don't know what they are. | |||
| Have a look at the "box" opcode. | 02:53 | ||
| ash_ | k, well, ima dig through the header files | ||
|
02:54
rg joined
|
|||
| Austin | pmc.ops | 02:54 | |
| Never mind. | |||
| ~/parrot/src/string/api.c | 02:55 | ||
| Parrot_str_new - make a Parrot string from a specified C string. | 02:56 | ||
| Plus pmc_new, plus set_string | |||
| = profit! | |||
| dukeleto | Austin: what are you looking to know about namespaces? the tests are a good start, but incomplete | ||
| Austin | dukeleto: nothing. But I want to steal good explanatory ideas for a document. | 02:57 | |
| 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? | ||
| dukeleto | Austin: docs/pdds/pdd21_namespaces.pod | 02:59 | |
| 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 :) | ||
| s/test/tests/ | |||
| Austin: which lies did you find? | 03:01 | ||
| Austin: they should become TODO tests | |||
| 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? | ||
| or can parrot run them dynamically? | 03:03 | ||
|
03:06
rhr joined
|
|||
| dukeleto | ash_: pmc2c takes the pseudocode that PMC's are written in and converts them to pure C, to be compiled | 03:13 | |
| ash_: does that answer your question? | |||
| ash_ | yeah | ||
| can you convert them into a C++ ? | |||
| dukeleto | ash_: i doubt it. what are you trying to do? | 03:14 | |
| ash_ | link to a C++ library | ||
| dukeleto | you want to call functions in a c++ library from parrot? | 03:16 | |
|
03:16
darbelo joined
|
|||
| 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:16 | |
| specifically the llvm-jit | 03:17 | ||
| dalek | ose: r151 | Austin++ | wiki/CianIntroduction.wiki: Edited wiki page through web user interface. |
||
| darbelo | ash_: It might not be exactly related but I wrapped the IBM decNumber library as a set of PMCs for GSoC | 03:18 | |
| purl: decnum-dynpmcs? | 03:19 | ||
| purl | decnum-dynpmcs is code.google.com/p/decnum-dynpmcs/ or a 2009 GSoC porject or a set of 'big' decimal arithmetic types for parrot. | ||
| ash_ | i'll look into that, thanks | ||
| thats a C library, right? | 03:20 | ||
| darbelo | Yes. | ||
| Basically, if the C/C++ thing you want to wrap can be hidden behind an object-like wrapper PMCs are the way to go. | |||
| ash_ | the problem is I need them to be C++ files for me call things and have them exported as extern "C" | 03:21 | |
| darbelo | If what you really want is to just call functions from a library NCI is better. | 03:22 | |
| Wait. Parrot has to call c++, or c++ has to call parrot? | 03:23 | ||
| ash_ | parrot has to call C++ | 03:24 | |
| the problem is the C++ library doesn't have C bindings, so i can't directly call it from C | 03:25 | ||
|
03:25
Austin joined
|
|||
| Austin | Well, /that/ was irritating. | 03:25 | |
| ash_ | if i am not mistaken NCI only works with C librares | ||
| 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? | ||
| Austin | Probably not - name mangling depends on both platform and compiler vendor. | ||
| ash_ | pdd16_native_call.pod.html states NCI is for C libraries, i can try it with a C++ library though | ||
| Austin | But if you make your C++ function into a C function, it should work. | 03:28 | |
| ash_ | oh, parrot already adds extern "C" to your functions, so I can call C++ from within the function no problem | 03:29 | |
| my bad >< | 03:30 | ||
| pmc2c does mangle some of my C++ code however, wonder why... | 03:31 | ||
| darbelo | pmc2c is not very smart. | 03:33 | |
| It checks that every '{' has a matching '}', mangles VTABLEs and METHODs in to C and breaks at unexpected input. | 03:34 | ||
| Boy, was the first month of SoC *fun* | 03:35 | ||
| ash_: how are you calling pmc2c? | |||
| ash_ | perl /path/to/pmc2c.pl LLVM_Wrapper.pmc --dump followed by perl /path/to/pmc2c.pl LLVM_Wrapper.pmc -c | 03:36 | |
| ash_ doesn't know if i am doing this right, but trial and error usually gets me somewhere | 03:37 | ||
| darbelo | Is it exploding? | ||
| ash_ | well, no, but i looked at the C and one of my functions is missing and I don't know why | 03:38 | |
| 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 | |
| can you nopaste you .pmc? | |||
| purl: nopaste? | |||
| purl | nopaste is probably at nopaste.snit.ch/ (ask TonyC for new channels) or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl | ||
| darbelo | nopaste.snit.ch/parrot wil save tou some milliseconds. | 03:40 | |
| You might also want to add an --include option to pmc2c | 03:41 | ||
| ash_ | gist.github.com/192495 | ||
| am i doing that right? when i run the pmc2c -c on it it removes my call_llvm function completely | 03:44 | ||
| dukeleto | there also the awesome tools/dev/nopaste.pl . that will save you many hours | 03:45 | |
| 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? | ||
| dukeleto | purl, nopaste is also trac.parrot.org/parrot/browser/tru...nopaste.pl | 03:47 | |
| purl | okay, dukeleto. | ||
| ash_ | Austin: cause that makes to much sense | ||
| Austin | Okay. | ||
| darbelo | ash_: Tip: pmc2c only works if the name you declare on your pmclass line matches the filename. | ||
| ash_ | darbelo i know, it gives you an error message otherwise | ||
|
03:48
Zak joined
|
|||
| ash_ | lol I am going to put them in a different file and include that one, like Austin suggests | 03:48 | |
| 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 | ||
| darbelo | Also, if you want pmc2c to preserve ypur functions put them above the pmclass line. | 03:57 | |
| 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 | ||
| darbelo | what did you use to generate them? | 03:59 | |
| ash_ | tools/dev/gen_class.pl | ||
| 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. | ||
| ash_ | docs.parrot.org/parrot/latest/html/...ss.pl.html | ||
| darbelo | Just checked it, those are actually VTABLEs. | 04:06 | |
| ash_ | oh, ummm how do you add vtables then? ? | ||
| 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:08 | |
| 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 | ||
| 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 | |
| for +, *, etc | |||
| My pmcs also provide a fused-multiply-add operation, which doesn't really map to any vtable. I made that a method. | 04:11 | ||
| ash_ | that makes more sense now | 04:14 | |
| darbelo | Also, any (per-object) setup you need to do, like allocate buffers, set default values should be done in the init() VTABLE | 04:15 | |
| and teardown code should go into the destroy() VTABLE. | 04:16 | ||
| dalek | ose: r152 | Austin++ | wiki/CianIntroduction.wiki: Edited wiki page through web user interface. |
04:17 | |
| darbelo | But with destroy() you'll have to tell parrot that you require "active destruction" | ||
| 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? | ||
| darbelo | With a veeeeeery long comand line. | 04:20 | |
| ash_ | hmm, time to steal your make file :P | ||
| mind? | |||
| darbelo | That varies from platform to platform. | 04:21 | |
| What you actually want is the one in cfg/src/pmc/Makefile.in | |||
| 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. | ||
| perl /path/to/parrot/src_or_instdir/tools/dev/gen_makefile.pl /path/to/Makefile.in /path/to/Makefile | 04:24 | ||
| everyting you see as @foo@ in the .in is replaced for the parrot_config entry for foo. | 04:25 | ||
| You can get a similar template out of the create_language script if you pass it the --with-pmc flag or similar. | 04:26 | ||
| But there might be some install-dir/build-dir confision there IIRC. | |||
| It depends if you are using an installed parrot or want to work out of a svn checkout. | 04:27 | ||
| ash_ | so, you generated your cfg/src/pmc/Makefile.in with gen_makefile.pl? | 04:29 | |
| 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:30 | |
| 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 | ||
| darbelo | I think that's old and possibly deprecated. | 04:34 | |
| ash_ | k | ||
| darbelo | I think rakudo still uses it FWIW. | 04:35 | |
| Hmm. The 'supported' way this days is to have build pmcs via makefile. | 04:37 | ||
| nopaste | "darbelo" at 190.3.143.132 pasted "This could be a starting point" (118 lines) at nopaste.snit.ch/18041 | 04:42 | |
| darbelo | Oh wait, I didn't put in a linker line. | 04:43 | |
|
04:47
flh joined
|
|||
| nopaste | "darbelo" at 190.3.143.132 pasted "This could be a better starting point" (54 lines) at nopaste.snit.ch/18042 | 04:47 | |
| darbelo | There, nopaste.snit.ch/18042 has a bare-bones makefile.in skeleton for pmc-building. | ||
| The variables point to the installed location of files. So you'll need to make install-dev. | 04:48 | ||
| 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:49 | ||
| ash_ | i did make install for parrot (and perl6) | 04:51 | |
| darbelo | then that makefile.in should get you going. | 04:53 | |
| 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:55 | ||
| Also, a parrot built with c++ could provide better defaults for @cc@ there. | 04:56 | ||
| ash_ | i added a cxx and cxxflags | 05:02 | |
| darbelo | Hmm. That cxxflags will override the configure probe, I'm not sure it's a good idea. | 05:04 | |
| I think the magical incantation this days is "perl Configure.pl --cxx=g++ --cc=g++ --link=g++ --ld=g++" | 05:05 | ||
| You override the compiler(s) and linker(s), but let Configure.pl figure out the right flags for your platform. | 05:06 | ||
|
05:15
chromatic joined
|
|||
| darbelo | We *really* need to make this stuff simpler for newcomers. | 05:16 | |
| ash_ | i wouldn't complain | ||
| :P | |||
| so for your makefile.in how woud i run that through the parrot configure? | 05:19 | ||
| darbelo | Once your parrot is Configured and install-dev'ed you run | 05:23 | |
|
05:23
Austin joined
|
|||
| darbelo | perl "whatever you put on --prefix here"/lib/1.6.0-devel/tools/dev/gen_makefile.pl Makefile.in Makefile | 05:25 | |
| if you didn't specify a --prefix to Configure.pl that would be | |||
| perl /usr/local/lib/1.6.0-devel/tools/dev/gen_makefile.pl Makefile.in Makefile | |||
| It's become parrot tradition to encapsulate that sort of thing into a Configure script for your project. | 05:26 | ||
| decnum-dynpmcs recently (under 24 hours ago) migrated from a Configure.pl to a Configure.pir | 05:27 | ||
| parrot-plumage has a Configure.nqp, rakudo has Configure.pl, etc. | 05:28 | ||
| The usual sequence is "run configure script"; make; make install | |||
| ash_ | when i run the make file i get Makefile:43: *** missing separator. Stop. | 05:33 | |
| darbelo | Ouch, I copied that out of an xterm. Tabs probably got turned into spaces. | 05:36 | |
| lines 43, 46 and 49 should begin with a tab. | 05:37 | ||
| like: | |||
| <tab>$(CC) $(CC_OUT)your_pmc$(O) $(INCLUDES) $(CFLAGS) your_pmc.c | |||
| ash_ | kk, i need to learn makefiles better >< | 05:38 | |
| darbelo | I can teach you to hate them if you want to. | 05:39 | |
| The alternative is to pick a particular make, learn it and forget about portability. | 05:41 | ||
| Austin_away | Learn HP's make. | ||
| Austin | Every other make is compatible with HP make, because it has the fewest features. | ||
| darbelo | What the one in hp-ux? | ||
| Austin | Yeah | 05:42 | |
| darbelo | that's ancient. | ||
| Austin | See? | ||
| darbelo | but illustrates the point nicely. | ||
| Austin | No features => no portability problems. | ||
| darbelo | Austin++ | ||
| Austin | Everything you try in any other make will work. | ||
|
05:42
dukeleto joined
|
|||
| chromatic | That argues for Windows make. | 05:42 | |
| 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. | ||
| darbelo grew up on BSD make. | |||
| chromatic | Use only those features which work *reliably*. | ||
| Austin | They work every time I use them. :-| | 05:44 | |
| darbelo | I thought you were arguing *for* nmake... | ||
| Austin | For portability, it's HP or perl. | ||
| And we know why perl is a bad idea. | 05:45 | ||
| I hate expense reports. | |||
| darbelo | Or, do what most linux people do: use GNU make everywhere! | ||
| Austin | I could be failing to get Close to work, but instead I'm stuck adding up fractional numbers. | 05:46 | |
| You know, forget health care. Why aren't electricity and water free? | 05:47 | ||
| Talk about some stuff that everybody has to have. | |||
| I paid for the house. If electric and water were free, it would be down to cable, cell phone, and food. | 05:48 | ||
| I could get a job working for sandwiches, get free wifi, and use skype. 0 expenses. | 05:49 | ||
| Then I wouldn't have to do expense reports. | |||
| darbelo just noticed the Close blog. | 06:08 | ||
|
06:18
fperrad joined
06:33
iblechbot joined
06:37
uniejo joined
|
|||
| kyle_l5l | what does the opcode 'le' do? | 06:46 | |
| treed | less than or equal? | ||
| treed guesses | |||
| moritz | in perl le is 'less than or equal' for strings | ||
| kyle_l5l | makes sense. | ||
|
06:50
masak joined
06:55
particle joined
06:58
particle1 joined
|
|||
| nopaste | "kyle_l5l" at 72.230.232.130 pasted "thread globals test" (29 lines) at nopaste.snit.ch/18044 | 07:10 | |
| kyle_l5l | why isn't that doing what I want? | 07:11 | |
| (or is that Not Implemented Yet) | 07:14 | ||
| chromatic | You didn't share that global between interpreters. | 07:15 | |
|
07:22
donaldh joined
|
|||
| kyle_l5l | how do I do that? | 07:26 | |
| chromatic | I'm not sure. | 07:27 | |
| There *is* a concurrency PDD in docs/pdds though. | |||
| dalek | rrot: r41441 | chromatic++ | trunk/src/gc/gc_private.h: [GC] Increased initial sizes of GC pools to: * accommodate initial STRING/PMC counts for starting Parrot Note that the code still has too many magic numbers and assumptions, will require editing when PMC/STRING sizes change, may require tuning when the number of PMCs/STRINGs created change, and assumes 4k pages and 32-bit machines. Better constant declarations which respect platform-specific probes welcome. Even so, this improves Rakudo's startup time by 2.046% and likely improves further performance, due to larger (even though they grow) arenas. |
07:29 | |
| kyle_l5l | yeah, doesn't say how to share though | ||
| chromatic | I just saw that. | ||
| I can't find anything that calls VTABLE_share, which is how you do it from C. | 07:32 | ||
| That code may have gone away with STM. | |||
| kyle_l5l | ahh, ok | 07:33 | |
| chromatic | I could add a couple of experimental ops for that if you really need them. | 07:34 | |
| kyle_l5l | that would be useful | 07:35 | |
| chromatic | What's the context of your need? | 07:37 | |
| kyle_l5l | I'm just trying to poke around at parrot threads, and would be happy to share a pmc. | 07:38 | |
| looks like in the last parrot revision that has stm, there's a sharedref.pmc | 07:39 | ||
| 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:47 | |
| kyle_l5l | alright | 07:49 | |
| 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:50 | |
| 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:53 | |
| darbelo | There's a lot of people asking for stuff to play with. Looks like parrot usage is on the raise. | 07:55 | |
| jonathan | kyle_l5l: I'm happy that you're working on threads + HLLs. :-) | 08:08 | |
| kyle_l5l | it's been a....learning experience. | ||
| jonathan | :-) | ||
| moritz | speaking of which, did anybody review and apply these patches already? | 08:10 | |
| (the threads + HLL patches, forgot ticket number) | 08:11 | ||
| if not it might be worth sending a mail to parrot-dev asking for review | |||
| or ask in next #ps (just missed one, d'oh) | |||
| 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... | ||
| kyle_l5l | no, no updates to uhm, #757 | 08:14 | |
| moritz | trac.parrot.org/parrot/ticket/757 | ||
| right | |||
| mikehh | chromatic: I had some problems with the --maintainer config option two days ago when bacek modified imcc.y | 08:17 | |
| chromatic | What happened? | 08:18 | |
| purl | We don't know what happened, so tell everyone nothing happened. | ||
| 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:21 | |
| darbelo | moritz: They *look* sane, but I'm not sure about the change in pmc.c | 08:22 | |
| 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. | ||
| mikehh | it's ok now though | ||
| 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 | ||
| darbelo | One less callback to care about! | 08:28 | |
| 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:29 | |
| chromatic | They should be the same object, provided they're in the same HLL. | 08:30 | |
| 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:31 | |
| chromatic | I won't promise that's what it does, but I believe that's the intent. | 08:32 | |
| Austin | Intent is fine. | ||
| Thanks. | |||
| nopaste | "darbelo" at 190.3.143.132 pasted "Obliterate the visit_pmc_later callback." (101 lines) at nopaste.snit.ch/18045 | ||
| darbelo | chromatic: Would you consider nopaste.snit.ch/18045 to be in the general vincinity of 'sane'? | 08:33 | |
| chromatic | Provided no HLL uses it.... | 08:34 | |
| darbelo | I'll check for that. But I doubt they do. | 08:35 | |
| Directly touching pmc_freeze code is likely to cause acute segfaultitis. | 08:39 | ||
| Austin | Chromatic: I noticed that if you call a function in PIR as 07$P0 = "subname"()00 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 | |
| ...compiled in, with IMCC binding the subid or some such? | |||
| Okay, that's weird. | |||
| Chromatic: I noticed that if you call a function in PIR as 07$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... | |||
| ...compiled in, with IMCC binding the subid or some such? | |||
| (%O, not %C00) | 08:41 | ||
| chromatic | I believe it's IMCC binding. | 08:42 | |
| Austin | Ouch. | ||
| chromatic | Perl 5 does the same thing. | 08:43 | |
| Austin | Am I correct that there is no way for a non-sub to have a value at load-time? | 08:46 | |
| Change that. ... no way for a visible symbol that is not a sub ... | 08:47 | ||
| purl | Austin: that doesn't look right | ||
| chromatic | How about a .const ? | ||
| Austin | Are those visible? | ||
| Or does IMCC eat them? | 08:48 | ||
| (By visible, I mean can some outsider get at them) | |||
| chromatic | Not without inspecting the PBC, I think. | ||
| Austin | Yeah. | ||
| 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. | ||
| Austin | Do we have any? | 08:51 | |
| chromatic | Not on purpose. | ||
| Austin | I'm assuming not, and that I have to generate an :init sub to sneak it in. | ||
| chromatic | I agree. | 08:52 | |
| Austin | <whew> | ||
| :) | |||
| darbelo | ok. partcl is slow. I'll have to remember that next time. | 08:58 | |
| ... and needs ICU. | 08:59 | ||
| ... but survives the surgery. | 09:03 | ||
| Incoming ! | |||
| dalek | rrot: r41442 | darbelo++ | trunk (3 files): Remove the unused visit_pmc_later callback from the visit_info structure. |
||
| a: 749ea27 | fperrad++ | config/makefiles/root.in: rename target smoke to smolder |
09:14 | ||
| a: 33e5a9b | fperrad++ | config/makefiles/root.in: refactor with curl (instead of LWP) |
|||
|
09:18
fperrad joined
09:31
bacek joined
|
|||
| bacek | o hai | 09:32 | |
| Austin | ohai, bacek | 09:38 | |
| bacek | aloha Austin | ||
|
09:45
chromatic joined
|
|||
| mikehh | All tests PASS (pre/post-config, test, fulltest) at r41442 - Ubuntu 9.04 amd64 | 09:46 | |
|
10:38
payload joined
10:46
TimToady joined
10:47
quek joined
11:32
tetragon joined
|
|||
| dalek | kudo: 722f82c | masak++ | src/parser/actions.pm: [actions.pm] construct twigilled variables right turned into $1bar. The <twigil> subrule was called with a postfix:<?>, turning its submatch into an array. The colonpair action method now takes this into account. This is a first step towards fixing #67846. Rakudo still doesn't conform to the semantics explained in L<S06/Attributive parameters>, but now it at least has a chance. |
11:50 | |
|
11:56
bacek joined
11:57
bluescreen joined
|
|||
| 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
|
|||
| 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,
whiteknight joined
|
|||
| whiteknight | good morning | 12:12 | |
| purl | Here I am, brain the size of a planet, and all they say is 'Good Morning' | ||
| 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 | ||
| jrtayloriv | morning whiteknight | 12:16 | |
| whiteknight | hello jrtayloriv | 12:17 | |
| whiteknight has been too busy this week to hack on Parrot | 12:29 | ||
| and that makes me sad | |||
| jrtayloriv | no fun :( | 12:32 | |
| whiteknight | irclogs? | 12:33 | |
| purl | irclogs is, like, irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
|
12:34
ruoso joined
|
|||
| 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:34 | |
| 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 | ||
| I had a stack of them, but can't find it anymore | |||
| bacek | jrtayloriv: If you want I can create "gc-encapsulate" branch with my sketch idea about GC encapsulation. | 12:36 | |
| dalek | rtcl: r744 | coke++ | trunk/config/makefiles/root.in: Fix smolder target for partcl on windows/gmake. |
12:37 | |
| 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:38 | |
| 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,
ttbot joined
|
|||
| 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:43 | |
| whiteknight | so instead of a strict old/new generation system, instead use like a partitioning system where we focus effort on different partitions? | 12:44 | |
| jrtayloriv | "A pure renewal-older-ļ¬rst 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 deļ¬ned as the time that has passed since the object was last classiļ¬ed as reachable by a collection within its generation, or as its actual age if it has never been conside | 12:45 | |
| red for collection. | |||
| (quote) | |||
| 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 | ||
|
12:47
he joined
12:50
iblechbot joined
|
|||
| 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:51 | |
| whiteknight | oh okay, so it's always youngest first except it's not | 12:52 | |
| makes perfect sense | |||
| whiteknight just has to read the paper, methinks :) | |||
| 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:54 | |
| But anyway, yeah -- the paper would be more clear than I'm being :) | 12:55 | ||
| ... 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 ;) | 12:56 | ||
| 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] | ||
| he | Hmm, www.parrot.org appears to be stuck somehow; it accepts connections but does not respond to http protocol requests. | 13:13 | |
| moritz looks at slashdot, maybe they mentioned parrot :-) | 13:14 | ||
| he | ...and finally ends up closing the connection. | 13:16 | |
| who admins the web server? | 13:17 | ||
| moritz | the hosting company, I think | 13:18 | |
|
13:22
jsut_ joined
|
|||
| he | So nobody who is on here, then, I guess. | 13:26 | |
| dalek | a: 45ed019 | fperrad++ | t/lua-TestMore: update submodule lua-TestMore |
13:37 | |
|
13:41
ash_ joined
13:51
Austin_away joined
13:59
particle joined
14:07
whiteknight_ joined
14:22
theory joined
14:25
whiteknight_ joined
|
|||
| 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:28 | |
|
14:34
Psyche^ joined
|
|||
| moritz | parrot's Configure.pl still detects libgmp, but pmichaud++ told me the BigInt PMC was gone... | 14:36 | |
| is there any good reason to still detect it? | 14:37 | ||
| 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:38 | |
| ash_ | can anyone access parrot.org? its not pulling up for me at the moment | 14:41 | |
| moritz | ash_: we've had similar complaints here earlier (and it didn't work for me either) | 14:42 | |
| 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 | ||
| pmichaud | particle does | 14:45 | |
| moritz | let's hilight particle then :-) | ||
| particle | looking... | 14:50 | |
| particle mails support@osuosl.org | 14:52 | ||
| pmichaud++ moritz++ ash_++ | |||
| dukeleto | yes, the parrot website seems to be hanging | 14:53 | |
|
14:53
kjeldahl joined
|
|||
| particle | it's slow as heck, but responding | 14:55 | |
|
15:01
Austin joined
15:02
JimmyZ joined
15:05
jrtayloriv joined
|
|||
| cotto_w0rk | hi | 15:06 | |
| pmichaud | I'm thinking it might be clogged intertubes | 15:12 | |
| I'm having trouble reaching gmail this morning | |||
| diakopter | gmail flaky today | ||
| dalek | rrot: r41443 | fperrad++ | trunk/tools/dev/gen_makefile.pl: [languages] allows extra configuration from language |
15:18 | |
|
15:18
pmichaud joined
15:26
pmichaud joined
15:31
ruoso joined
15:34
kyle_l5l joined
15:38
tokuhirom____ joined
15:41
Austin joined,
whoppix joined
15:43
mokurai joined
15:45
zerhash joined
|
|||
| Andy | I didn't mean for my task for cpplint.py to rile everyone so. | 16:03 | |
| particle | scan.coverity.com/report/Coverity_W...t_2009.pdf | 16:07 | |
| nice to see parrot here | |||
| ash_ | is the cpplint.py your using the one from Google's style guide? | ||
|
16:07
darbelo joined
|
|||
| Andy | The ticket I wrote also mentions the Google style guide. | 16:09 | |
| whiteknight | Andy: did people get riled up about it? | 16:11 | |
| Andy | seemed to frm the comments I saw go bu | ||
| by | |||
| whiteknight apparently hasn't been paying enough attention | |||
| Andy | trac.parrot.org/parrot/ticket/1059 | 16:12 | |
| Maybe I read too much riledness into the comments at first. | |||
| pmichaud | trac.parrot.org slow | 16:13 | |
| particle | re parrot.org: There was a site crawling it from over 30 ips on the trac instance. I | 16:16 | |
| went ahead and blocked all of them as it was killing the VM. | |||
| pmichaud | I used to have that problem with Yahoo! crawler | 16:17 | |
| NotFound | Maybe it lacks an adequate robots.txt ? | ||
| pmichaud | on my site, all pages have explicit robot controls (more) | 16:18 | |
| but it was more than that -- Yahoo's crawler would end up crawling the home page some 300 to 500 times per day | |||
| particle | yikes | 16:19 | |
| i need to be able to view coverity reports | 16:20 | ||
| msg chromatic i need to be able to view coverity reports | 16:21 | ||
| purl | Message for chromatic stored. | ||
| Andy | why chromatic? | ||
| whiteknight | I think somewhere along the line I was given a login, but never used it | ||
| Andy | I can hook you up with the Coverity guy | ||
| whiteknight | you gots da' hookup? | ||
| particle | previously, c said, 'give me your info and i'll set you up' | ||
| whiteknight | "whatchou need? I gots it" | 16:22 | |
| particle | but if you'll be my new sugardaddy i'll love you forever | ||
| Andy | send to me and I'll forward it. | ||
| Don't you love me forever anyway, Jerry? | |||
| particle | what info is needed? | ||
| YES. | |||
| Andy | just a uname and email I assume | ||
| pmichaud | for those who are interested in my experience with yahoo's crawler: www.pmichaud.com/pipermail/pmwiki-u...24894.html | ||
| particle | particle and particle@parrot.org | ||
| pmichaud | (yes, it's 2006. I haven't looked recently) | ||
| particle | it'd be nice to get parrot to coverity rung 3 | 16:26 | |
| it'd be extra nice to beat perl there | |||
| Andy | particle: sent | ||
| whiteknight | where does one go to log into coverity? | ||
|
16:26
Austin joined
|
|||
| whiteknight | nvermind, I found my email | 16:26 | |
| 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. | ||
| It was a to-do. | |||
| Now I can't find my Coverity credentials | 16:30 | ||
| whiteknight | strangely enough, my coverity login name is "andrew" | 16:32 | |
| as if there are no other andrews around | |||
| Andy | and I think mine is andy | ||
| 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. | ||
| dalek | kudo: 8e34da7 | pmichaud++ | src/setting/IO.pm: Add the IO.t method for testing that a filehandle is opened to a tty. (hv2++) |
16:35 | |
| ash_ | whiteknight: have you been working on the llvm stuff? | 16:36 | |
|
16:36
flh joined
|
|||
| whiteknight | ash_: not a bit. Been very busy in $reallife these last two weeks | 16:36 | |
| 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 | ||
| 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 | ||
| whiteknight | ash_: is your code visible anywhere? | ||
| ash_ | its mostly the sample from the llvm-jit examples in their trunk 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:39 | |
| 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:40 | ||
| blog.fallingsnow.net/2008/05/23/sim...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:41 | ||
| darbelo | sounds like you've been busy. | 16:42 | |
| ash_ | although one thing i want to check is whether llvm.org/doxygen/classllvm_1_1Modul...fb903ec4c0 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 | |
| new one too, i wanted to test that out | |||
| darbelo: i couldn't sleep last night so i just messed with it till it worked | 16:45 | ||
| eventually it did | |||
| if you bash it enough times with a hammer anyway | |||
| 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:48 | ||
| 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 | ||
| i am sure there are parts of this that I am missing though | 16:51 | ||
| 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:53 | |
| 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) | ||
| 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. | ||
| 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. | ||
| Oops: Sorry, wrong channel. | |||
| ash_ | darbelo: yeah i have seen a lot about libjit recently, i tried looking into it more but the download link on www.gnu.org/software/dotgnu/libjit-...jit_1.html is dead | 16:58 | |
| darbelo | I'll see which work here and try to whip up a prototype. | ||
| ash_ | didn't mono switch to libjit recently? | 17:00 | |
| whiteknight | the portable version did | ||
| I don't know if that was recent | |||
| and I don't know if "regular" mono did | |||
| I guess I hadn't really realized that the LLVM API was only C++ | 17:01 | ||
|
17:01
joeri joined
|
|||
| 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:01 | |
| making sure you use the right extern and all that, compiling it with the right linkings | 17:02 | ||
| whiteknight | I wonder what it would take to create some pure-C bindings | 17:03 | |
| I'm sure it would take a huge effort | |||
| darbelo | A glue layer of extern "C" functions that call c++ would be easier. | 17:04 | |
| NotFound | What right externs? Manually name mangling? | ||
| darbelo | Ew. I hope not. | ||
| NotFound | There is no other way to use C++ functions from C if the C++ code does not use extern "C" | 17:05 | |
| 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:07 | |
| might be able to use the llvm-c stuff instead of the C++ ones, not sure, i can read into it more | 17:10 | ||
| whiteknight | ash_: you have a link to the LLVM C bindings stuff? I would be interested to read it too | 17:14 | |
| dalek | cnum-dynpmcs: r184 | darbelo++ | trunk/cfg/Makefile.in: Actually use the STAGING_DIR variable in the makefiles. |
17:16 | |
| ash_ | llvm.org/docs/FAQ.html#langirgen mentions it, llvm.org/docs/doxygen/html/Core_8cpp-source.html has some info | ||
| still looking for more documentation on the llvm-c stuff, i just found it a few minutes ago | |||
| whiteknight | llvm.org/docs/doxygen/html/Core_8h-source.html | 17:18 | |
| 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:20 | |
| i'll let you know if i find much, talk to you later | 17:21 | ||
| whiteknight | awesome | 17:23 | |
| whiteknight has to go now. Giving a tutorial at work about unit testing and TDD | 17:26 | ||
| darbelo | TDD++ | ||
|
17:30
mberends joined
|
|||
| dalek | cnum-dynpmcs: r185 | darbelo++ | trunk/cfg/Makefile.in: There's nothing in the build/directory we want to save, so 'make clean' removes Further make targets recreate it if needed. |
17:34 | |
|
17:35
chromatic joined
|
|||
| dalek | rrot: r41444 | NotFound++ | trunk/t/op/annotate.t: [t] use getinterp instead of new 'ParrotInterpreter' to get annotations, TT #1060 |
17:35 | |
|
17:51
theory joined
|
|||
| dalek | cnum-dynpmcs: r186 | darbelo++ | trunk/build: We don't need to version an empty directory. Really. |
17:51 | |
| rrot: r41445 | NotFound++ | trunk/tools/build/nativecall.pl: [nci] use char** instead of void** in type B parameters, this simplify the code and avoid strict-aliasing warnings |
17:58 | ||
|
17:59
TimToady joined
|
|||
| dalek | rrot: r41446 | mikehh++ | trunk/config/gen/makefiles/root.in: add tests to make fulltest and clean up make cover |
18:02 | |
| cotto_work | I'm amazed that the gdb hackers are using cvs. | 18:04 | |
| darbelo | There's still quite a few some people using CVS out there. | 18:05 | |
| chromatic | OpenBSD has a project to reimplement CVS. | 18:06 | |
| NotFound | Tell them to do it with PIR | 18:07 | |
| dukeleto | chromatic: oh my. | ||
| chromatic: link? | |||
| 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. | ||
| darbelo | dukeleto: It's mostly done even. I use it to update my ports and source trees. | ||
| OpenCVS | |||
| 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. | ||
| 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:09 | |
|
18:10
theory joined
|
|||
| cotto_work | I guess it does the job for them, but why? | 18:10 | |
| cotto_work put it out of his mind and gets back to "work". | 18:11 | ||
| which at this point legitimately includes reading Chromatic's blog | |||
| s/C/c/ | |||
| 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
|
|||
| 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. | ||
| coke | msg mikehh (just document the way it is now, not the way you fixed it from.) | ||
| purl | Message for mikehh stored. | ||
|
18:21
iblechbot joined
|
|||
| coke | msg mikehh you might also be interested in TT#1061 | 18:26 | |
| purl | Message for mikehh stored. | ||
| dalek | TT #1061 created by coke++: Lists of test files duplicated. | 18:27 | |
|
18:33
whiteknight joined
|
|||
| mikehh | coke: re TT #1061 - I looked at that but look at standard_tests in DefaultTests.pm for example | 18:38 | |
| coke: I also couldn't figgure out how to get that into fulltest and cover | 18:39 | ||
| coke: some of the configure tests use those arrays | 18:41 | ||
|
18:43
japhb joined
18:45
jan joined
|
|||
| dalek | TT #1062 created by NotFound++: Type safe mark alive | 18:46 | |
| chromatic | +1 on the patch in TT #1062. | 18:50 | |
|
18:56
Austin joined
|
|||
| pmichaud | +1 also | 19:02 | |
|
19:05
zerhash joined
|
|||
| darbelo | msg japhb My attempt at teaching gitorius to dalek failed with ENOTUITS. | 19:12 | |
| purl | Message for japhb stored. | ||
| cotto_work | NotFound++ | 19:19 | |
| (and "why didn't we do that sooner?" to the patch) | 19:21 | ||
| NotFound | I asked for objections, not for applauses ;) | 19:22 | |
| whiteknight | I object for not letting us applaud you | 19:23 | |
| Actually, I had thought about doing that exact same thing a while back and didn't. That makes me mad at myself | |||
| darbelo | I object to not committing that right now. | ||
| pmichaud | I object to anyone who objects | 19:24 | |
| cotto_work | I applaud your asking. | ||
| NotFound | Ok, I'll commit it | ||
| mikehh | is an objection a PMC object? | ||
| 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. :-) | ||
| cotto_work | purl, Ok, I'll commit it is NO YOU FOOL! YOU'LL KILL US ALL! | ||
| purl | OK, cotto_work. | ||
| cotto_work | purl, Ok, I'll commit it. is NO YOU FOOL! YOU'LL KILL US ALL! | ||
| purl | OK, cotto_work. | ||
| 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! | ||
| purl | okay, cotto_work. | ||
| cotto_work | no purl, Ok, I'll commit it. is <reply>NO YOU FOOL! YOU'LL KILL US ALL! | ||
| purl | okay, cotto_work. | ||
| cotto_work | japhb++ | ||
| NotFound | Ok, I'll commit it | ||
| not_purl | NO YOU FOOL! YOU'LL KILL US ALL! | 19:27 | |
| japhb | Odd, I wonder why that didn't trigger | ||
| cotto_work kicks purl | |||
| purl kicks cotto_work | |||
| darbelo shoots purl | 19:28 | ||
| purl sticks a finger in darbelo's gun barrel | |||
| japhb is testing purl ... | |||
| I'll commit it | |||
| hmmm | 19:29 | ||
| purl, foo is <reply>NO YOU FOOL! YOU'LL KILL US ALL! | |||
| purl | ...but foo is <reply>bar... | ||
| japhb | purl, foob is <reply>NO YOU FOOL! YOU'LL KILL US ALL! | ||
| purl | OK, japhb. | ||
| japhb | foob | ||
| ??? | |||
| darbelo | foob? | ||
| purl | NO YOU FOOL! YOU'LL KILL US ALL! | ||
| darbelo | Ok, I'll commit it | 19:30 | |
| japhb | huh. Change of purl config somewhen? | ||
| purl | japhb: that doesn't look right | ||
| darbelo | Ok, I'll commit it? | ||
| dalek | rrot: r41447 | NotFound++ | trunk (39 files): [gc] add new mark_... _alive functions, use it in a lot of mark vtable functions, and some cleanup related, TT #1062 |
||
| japhb | "I'll commit it"? | ||
| cotto_work | The bot is hopeless. | ||
| japhb | sigh | ||
| japhb adds that as item 78642 on his list of things to do before the sun goes red giant. | 19:31 | ||
| dukeleto | purl, commit? | 19:36 | |
| purl | well, commit is 8d063cd8450e59ea1c611a2f4f5a21059a2804f1 | ||
| dukeleto | even purl uses git nowadays ;) | ||
| 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 | ||
| consider how much of the API has changed recently | 19:37 | ||
| 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:46 | |
| 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. | ||
| whiteknight | yeah | ||
| chromatic | 202 current Coverity defects. | 19:53 | |
| Lots in PCC. | |||
|
19:54
bacek joined
|
|||
| moritz | 6 | 19:55 | |
| sorry | |||
| darbelo | The PCC refactor needs to happen *now* | ||
| moritz | well, it doesn't seem very simple... | 19:56 | |
|
19:56
particle joined
|
|||
| darbelo | It's likely to be very difficult. But the biggest blocker so far has been tuit shortage. | 19:58 | |
| I don't doubt that if allison had the time it could land for the next release. | 19:59 | ||
| We need to kidnap the architect :) | 20:01 | ||
| cotto_work | s/kidnap/clone/ | 20:03 | |
| darbelo | Sure, with cloning tecnology, after you kidnap the first one you can make as many as you want. | 20:04 | |
| cotto_work | but yeah, having a very important branch that only allison can work on isn't helping | 20:05 | |
| whiteknight | I don't think that only allison can work on it | 20:06 | |
| if we put together a little strike team, I think a group of us could fix it up pretty quickly | |||
| 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. | ||
| 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
|
|||
| 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. | ||
| cotto_work wishes for git | |||
| 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 | ||
| cotto_work | whiteknight, where did you get "for serious"? | ||
| NotFound | I think allison already has the intention to do it | ||
| mikehh | All tests PASS (pre/post-config, smoke, fulltest) at r41447 - Ubuntu 9.04 amd64 | 20:11 | |
| cotto_work | intention != tuits | ||
| whiteknight | cotto_work: I don't know, it sounded better then "pcc_arg_unify2" | ||
| cotto_work | I had a housemate who used to say that. | ||
| whiteknight | if we get that branch working and mergable, that's a good thing | ||
| NotFound | whiteknight: 2.0, is the norm these days ;) | ||
| cotto_work | v. yes | ||
| whiteknight | allison doing a code review is faster then allison doing deep debugging | ||
| pmichaud | also, jonathan++ will be blocking on that branch very soon (like, within a week or two) | 20:12 | |
| 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! | ||
| 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. | ||
| whiteknight | 2-5 dedicated coders could knock that out | ||
| because personally I'm getting tired of not just doing it myself, considering how much is waiting for it | 20:15 | ||
|
20:15
bluescreen joined,
allison_ joined
|
|||
| 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 | |
| speak of the architect... | |||
| hi allison_ | 20:16 | ||
| allison | chromatic pinged me | ||
| whiteknight | allison: I'm trying to put together a strike team to storm the pcc_arg_unify castle | ||
| allison | I'll be home Saturday | ||
|
20:16
Austin joined
|
|||
| allison | I'm going to do a fresh branch, pull in the changes | 20:17 | |
| NotFound | allison: Have you seen TT #1062 ? | ||
| whiteknight | is the branch still failing tests? | ||
| dukeleto just did an inter-library loan for the newest edition of the dragon book. exciting! | 20:19 | ||
| NotFound | dukeleto: Do you mean the D&D manual? ;) | 20:20 | |
| whiteknight | dukeleto: I own a copy. one of my favorite books! | 20:22 | |
| diakopter | whiteknight: 3rd edition? | ||
| purl | 3rd edition is going to print in the near future | ||
| whiteknight | diakopter: second I thought. the one with the purple dragon | ||
| I couldn't get a copy of the red-dragon one, too expensive and hard to find | 20:23 | ||
| 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 | ||
| dukeleto | i hope to learn some good spells ;) | ||
| 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 | ||
| whiteknight | it has some sections on VMs, GC, op dispatch, etc, but nothing that you couldn't learn from the Parrot source code | ||
| NotFound | Without guns? | ||
| dukeleto | lulz | ||
| 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 | ||
| 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 | ||
| whiteknight | allison: we have a lot of talented developers around here who seem to think they have no choice but to wait it out | ||
| allison | whiteknight: (understanding that seems to be the biggest blocker for people getting involved) | ||
| whiteknight | my intention is to focus that energy into fixing it | ||
| allison: that would be wonderful and perfect | 20:27 | ||
| pmichaud | whiteknight++ allison++ | ||
| allison | whiteknight: I'll prepare a list of tasks that need to be done, so they can be distributed | ||
| pmichaud | \\o/ | ||
| NotFound | Great | ||
| whiteknight | you hear hat guys? light your torches and sharpen your pitchforks! We storm the castle at dawn! | ||
| well, localtime(dawn) | 20:28 | ||
| NotFound | Hooray! | ||
| allison | dawn saturday :) | ||
| pmichaud prepares his catapults and trebuchets | |||
| whiteknight | localtime(saturday.dawn) | ||
| whenever. All need is a reason to grab the pitchfork | |||
| allison | but, like I said, feel free to take a look at the code in the meantime | ||
| 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" | ||
| allison | (it's a pure branch, no updates from trunk) | ||
| NotFound | allison: I tooka look, but looking at code pre context refactoring give me headaches ;) | ||
| whiteknight | yeah, that's the part I worry about the most: the Sub, Context, and Continuations refactors that all landed | 20:30 | |
| I think we can account for all of it, but it will require some effort | |||
| allison | whiteknight: that's why I'm starting with a fresh branch | ||
| 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 | ||
| one thing we do have is hands | |||
| NotFound | And foots, to kick if required ;) | 20:32 | |
| dukeleto can kick like a horse | 20:33 | ||
| cotto_work | ā | ||
| allison | I have to go catch a flight, will be back online this evening after I speak at a Python user group | ||
| whiteknight | NotFound: I have a bag of karma for you if you can type legibly with your foot | ||
| allison++ | |||
| allison | (this is my last planned trip until December) | ||
| NotFound | rakudo spectest PASS with r41447, amd64 | ||
| whiteknight | (allison is online for like 5 minutes and solves everybody's problems. Hooray!) | 20:34 | |
| bacek | good morning | 20:35 | |
| purl | And good moroning to you, bacek. | ||
| NotFound | whiteknight: with a pen, or a keyboard? | 20:37 | |
| darbelo | NotFound: It's easier if you use both :) | ||
| cotto_work | NotFound, with a keyboard. Also, you have to upload a video of it to youtube | ||
| darbelo | Grab the pen with your foot, and tap the keyboard with the pen. | 20:38 | |
| bacek | pmichaud: ping | ||
| NotFound | I suppose a carpet keyboard doesn't count as valid | 20:39 | |
| dukeleto | bacek: howdy | ||
| bacek | dukeleto: good-good | 20:40 | |
| 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 | |
| get_params and set_returns too | |||
| nopaste | "darbelo" at 200.49.154.173 pasted "compensation for japhb++" (53 lines) at nopaste.snit.ch/18052 | ||
| NotFound | whiteknight: black magic here | ||
| chromatic | Hey, allison solved everyone's problem with some sage advice from Coach chromatic. | 20:43 | |
| whiteknight | chromatic++ | ||
| is that your title now? Coach? | |||
| chromatic | Sure, why not? | ||
| darbelo | I had you as the guru type | ||
| Or maybe a sage. | |||
| chromatic | Someone needs to keep in mind the question "What could we do better to sustain this project over the long term?" | 20:44 | |
| 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?" | |||
| That's a visionary. (I prefer that term over "architect".) | 20:45 | ||
| NotFound | Bank robbery? | ||
| purl | Bank robbery is punishable by 20 years in Federal prison | ||
| bacek | botsnack | ||
| purl | :) | ||
| 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 | ||
| chromatic | Exactly. | ||
| 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. | ||
| whiteknight | agreed | ||
| 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:47 | |
| Mostly we need to be able to discuss ideas and choose from alternatives while keeping both axes in mind. | 20:48 | ||
| japhb | darbelo, go ahead and commit those Glue.pir diffs ... thanks! | 20:49 | |
|
20:50
jan joined
20:52
cotto_w0rk joined
20:55
kjeldahl joined
|
|||
| darbelo | I forgot I was a committer. :) | 20:55 | |
| dalek | rrot: r41448 | NotFound++ | trunk (4 files): [examples] drop Mysql from parrot repo, now in ļæ½code.google.com/p/parrot-mysql/ |
20:56 | |
| 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:57 | |
| darbelo | whiteknight: We can have it both ways. | 20:58 | |
| plumage is a central tool to pull together separately-hosted projects. | 20:59 | ||
| purl: plumage? | |||
| 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 trac.parrot.org/parrot/wiki/ModuleEcosystem | ||
| NotFound | And having some little projects is good for easy testing of plumage, I hope | ||
| whiteknight | that's fine too, so long as there is a plan | ||
| moritz | no plan; done_testing; # ;-) | 21:00 | |
|
21:00
PacoLinux joined
|
|||
| darbelo | moritz++ | 21:00 | |
| 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
|
|||
| moritz | is that something a small C wrapper could "solve"? | 21:08 | |
| NotFound | moritz: yes, but then is no longer a pure NCI wrapper | ||
| moritz | that's why I wrote "solve", not solve ;-) | 21:09 | |
|
21:09
bluescreen joined
21:16
bacek joined
|
|||
| dalek | kudo: f2acdbb | moritz++ | src/setting/Operators.pm: implement some more use cases of infix:<...> * we'd need multi slices for the signature, and don't have 'em * I've hit at least three Rakudo bugs which I've worked around * infix:<...> has rather sophisticated cases, which I tried to cover at least partially without too much code duplication |
21:16 | |
| bacek | hi again | ||
| purl | oh, you're back! | ||
|
21:20
joeri left
21:36
ruoso joined
21:41
bacek joined
|
|||
| dalek | kudo: c394d6d | moritz++ | src/setting/Operators.pm: forgot to remove debugging output, moritz-- |
21:41 | |
| rrot: r41449 | bacek++ | trunk/src (10 files): [core] Use more Parrot_gc_mark_PMC_alive function. |
21:44 | ||
| bacek just finished reading irclog | 21:45 | ||
| Any one interested in "pcc_arg_unify" synced with trunk? | 21:46 | ||
| moritz | bacek: only a new branch, afaict | ||
| darbelo | Everyone, actually. | ||
| The plan is take all modifications made in branch and apply them to a fresh branch from trunk. | 21:47 | ||
| Why? Will you awesome git-fu make that a snap? | 21:48 | ||
| dalek | rrot: r41450 | bacek++ | branches/pcc_arg_unify_2_0: New pcc_arg_unify branch synced with trunk |
21:51 | |
| bacek | darbelo: git-fu is awesome, but sometime it's failing... | 22:15 | |
| darbelo | bacek++ # We reward failure too. | 22:16 | |
| ;) | |||
| ttbot | Parrot trunk/ r41451 i386-linux-thread-multi make error tt.ro.vutbr.cz/file/cmdout/104322.txt ( tt.ro.vutbr.cz//buildstatus/pr-Parrot/rp-trunk/ ) | 22:18 | |
| dalek | rrot: r41451 | bacek++ | trunk (30 files): Merge branch 'pcc_arg_unify_local' into pcc_arg_unify_2_0_local Conflicts: \tinclude/parrot/call.h \tinclude/parrot/interpreter.h \tlib/Parrot/Pmc2c/PCCMETHOD.pm \tsrc/call/pcc.c \tsrc/debug.c \tsrc/exceptions.c \tsrc/extend.c \tsrc/gc/alloc_register.c \tsrc/interp/inter_cb.c \tsrc/ops/core.ops \tsrc/ops/pic.ops \tsrc/packfile.c \tsrc/pmc/callsignature.pmc \tsrc/pmc/cpointer.pmc \tsrc/pmc/object.pmc \ttools/build/nativecall.pl |
22:19 | |
| purl | tools/build/nativecall.pl is supposed to be run manually, right? | ||
| darbelo | bacek: did you just break trunk? | 22:20 | |
| bacek | OH SHIT. | ||
| darbelo: can you revert last commit please? | 22:22 | ||
| moritz | I can do that if you want | 22:23 | |
| bacek | nm | ||
| I did it. | |||
| moritz | ok | 22:24 | |
| chromatic | Speaking of trunk, where are we with the "Remove strstart"? | ||
| dalek | kudo: a33b90c | moritz++ | src/setting/Operators.pm: magic, eager 'a'...'z' and 'z'...'a' series |
||
| kudo: bac4abd | moritz++ | build/gen_setting_pm.pl: add a vim modeline to gen_setting.pm which prevents accidental editing |
|||
| darbelo | A bit short of tuits on that front. | 22:26 | |
| dalek | rrot: r41452 | bacek++ | trunk (30 files): Revert "Merge branch 'pcc_arg_unify_local' into pcc_arg_unify_2_0_local" |
||
| darbelo | Looking at my notes: ~120 out of ~200 uses are inside src/string/ and src/gc | 22:28 | |
| 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. | ||
| Yes, rakudo has one use, partcl none. | |||
| didn't check cardinal | 22:30 | ||
| lua had none as far as I recall | |||
| moritz | cardinal: 0 | ||
| polyglotbot | OUTPUT[Parrot VM: Can't stat languages/cardinal/cardinal.pbc, code 2.ā¤main: Packfile loading failedā¤] | ||
| Tene | polyglotbot hasn't worked properly in ages | ||
| If anyone is interested, I can help them get access to feather3. | 22:31 | ||
| darbelo | Biggest offender in strstart abuse is still pmc_freeze | ||
| chromatic | pmc_freeze, okay. What do we need there? | 22:32 | |
|
22:37
Austin joined
|
|||
| dalek | rrot: r41453 | bacek++ | branches/pcc_arg_unify_2_0 (30 files): Sync branch with trunk and pcc_arg_unify branch. Conflicts: include/parrot/call.h include/parrot/interpreter.h lib/Parrot/Pmc2c/PCCMETHOD.pm src/call/pcc.c src/debug.c src/exceptions.c src/extend.c src/gc/alloc_register.c src/interp/inter_cb.c src/ops/core.ops src/ops/pic.ops src/packfile.c src/pmc/callsignature.pmc src/pmc/cpointer.pmc src/pmc/object.pmc tools/build/nativecall.pl |
22:41 | |
| purl | well, tools/build/nativecall.pl is supposed to be run manually, right? | 22:42 | |
|
22:43
darbelo joined
|
|||
| darbelo | Gah. Power outage. | 22:43 | |
| Okay I'm backlogged now. | 22:45 | ||
| pmc_freeze.c plays at increasing strstart to 'consume' the items at the start of the string. | 22:46 | ||
| That's the biggest piece of ugly there. | 22:47 | ||
| I think I got rid of most of *that* abuse, but there's still trickery hiding in that file. | 22:49 | ||
| 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:52 | ||
| CAVEAT: A big part of that code is behind #ifdefs for platforms I can't test. | 22:53 | ||
|
22:56
kid51 joined
23:00
tetragon joined
|
|||
| darbelo | Maybe I should start opening tickets for the stuff I can't test. | 23:03 | |
| dalek | rrot: r41454 | bacek++ | branches/pcc_arg_unify_2_0 (2 files): Add more Context API functions for new Context fields |
23:06 | |
| rrot: r41455 | bacek++ | branches/pcc_arg_unify_2_0 (6 files): Fix some merge errors |
|||
|
23:39
Zak joined
|
|||
| Ryan52 | is allison on vacation or something? | 23:46 | |
| chromatic | Traveling for work. | ||
| dalek | rrot: r41456 | jkeenan++ | trunk (70 files): Merge auto_frames_refactor branch into trunk. Refactors config/auto/frames.pm to improve testability and test coverage. No change in functionality. |
23:47 | |
| darbelo | kid51++ | ||
| testability++ | |||
| kid51 | darbelo: Thanks! | ||
| As promised, I left the C untouched. | 23:48 | ||
| Ryan52 | chromatic: ah. thanks. | ||
| 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. | ||
| I myself modified only two files. | 23:49 | ||
| 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 | |
| svn:mergeinfo is the culprit | |||
| dalek | rrot: r41457 | jkeenan++ | branches/auto_frames_refactor: Branch has been merged into trunk and is no longer needed at HEAD. |
||
| purl | i already had it that way, dalek. | 23:51 | |
| diakopter | purl: ignore dalek | ||
| purl | diakopter: huh? | ||
| diakopter | twss. | ||
| darbelo | purl: die in a fire | 23:52 | |
| purl | HALP | ||
| kid51 | darbelo: Thanks. That was probably my first merge since a Subversion upgrade. | ||
| darbelo | And that code looks a lot better than what I wrote^Wcargo-culted in the first place. | 23:54 | |
|
23:56
patspam joined
23:57
Austin joined
|
|||