|
#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Priority: fix line number annotations | Finish GSoC applications Set by moderator on 6 April 2010. |
|||
|
00:00
kurahaupo joined
00:03
davidfetter joined
|
|||
| tcurtis | Is there a technical reason why PIR of the form "$P0 = foo() | 00:29 | |
| .return ($P0)" can't be automatically optimized to ".tailcall foo()" | |||
| Whiteknight | no | 00:30 | |
| darbelo | The glib answer is: Yes, IMCC. | 00:31 | |
| chromatic | I'd rather have that as a PAST optimization. | ||
| Whiteknight | +1 to PAST optimization | 00:32 | |
|
00:32
payload joined
|
|||
| chromatic | If no one takes that on for GSoC, I'll submit a Hague grant for it. | 00:33 | |
| darbelo | Cool. | 00:34 | |
| Whiteknight | chromatic, what, optimizing tailcalls in PAST? | ||
| darbelo | I would expect "PAST optimization" in general. | 00:35 | |
| chromatic | Writing a PAST optimization layer. | ||
| Whiteknight | +1 | ||
| purl | 1 | ||
| darbelo | Shame Rakudo Star is so close. I think it would really benefit from that. | 00:36 | |
| chromatic | If we can get constant string handling improvements in 2.3, we'll see a lot of benefit. | 00:37 | |
| Mostly we need a clever algorithm/data structure pass through the branch before it's ready. | |||
| An AVL tree is still arguably the right data structure, but we need to tune our use of it severely. | 00:38 | ||
| If anyone's looking for an evening's worth of low-hanging but high-value work.... | 00:39 | ||
| darbelo | Speaking of low-hanging fruit, tucking _buflen into the buffer data tourned out not to be. Strings like to play dirty games with it. | 00:41 | |
| chromatic | I'm surprised. | 00:42 | |
| Halfway. | |||
| darbelo | It's probably debugable, since it looked like an issue with externally allocated data. But it will be much easier to do after bacek's branch lands. | 00:43 | |
| chromatic | The immutable string branch? | 00:44 | |
|
00:45
ash_ joined
|
|||
| darbelo | Yeah. | 00:45 | |
| sorear | darbelo: R* is also pretty far | 00:46 | |
| purl | okay, sorear. | ||
| sorear | after the first R* in late May, there will be new blessed bundle releases also called R* every N months | ||
| I am not privy to the value of N | |||
| darbelo | If strings are immutable, then they can't go around poking into each other's buffer's without asking first. | ||
| chromatic | allison needs more convincing about immutable strings. | ||
| She thinks, in part, that it'll make writing more expensive. | 00:47 | ||
| (which is true, but ameliorated by the fact that reads get much cheaper, and they happen much more frequently than writes) | |||
| sorear | It will. Good thing we don't actually care that much about writing | ||
| darbelo | We could also indirect through mutable buffers to speed up some operations. | 00:48 | |
| Whiteknight | chromatic: what's an evening's worth of low-hanging but high-value work? | ||
| chromatic | Fixing the AVL tree in the constant string caching branch. | 00:49 | |
| sorear | At some point I'd like to try and implement type inference in NQP | ||
| Coke | $P14 = "Capture[0x1ace630]"() | 00:50 | |
| ... that looks wrong. =-) | |||
|
00:58
abqar joined
01:04
Mokurai joined
01:05
Mokurai1 joined
|
|||
| dalek | rtcl-nqp: 867850c | Coke++ | src/Partcl/commands/ (2 files): eliminate _Tcl::string_trim , it duplicates the helper function for [string trim] |
01:12 | |
|
01:21
leprevost joined
01:29
Mokurai1 joined
01:30
Mokurai joined
01:38
leprevost joined
01:54
Andy joined
|
|||
| dalek | rrot: r45438 | petdance++ | trunk/src/key.c: removed unused var |
01:57 | |
|
02:03
kyle_l5l joined
|
|||
| dalek | rrot: r45439 | petdance++ | trunk/src/pmc.c: removed unused arg from Parrot_pmc_reuse_noinit |
02:30 | |
|
02:46
eternaleye joined
|
|||
| dalek | rrot: r45440 | petdance++ | trunk/include/parrot/pmc.h: re-headerizerd |
02:47 | |
|
02:54
janus joined
|
|||
| dalek | rrot: r45441 | petdance++ | trunk/src/pmc.c: reducing number of exits out of functions |
03:20 | |
| sorear | (what, no comments on the concept of NQP type system?) | 03:29 | |
|
03:56
Mokurai2 joined
|
|||
| cotto | It's a nice idea, but part of the idea of nqp is that it's mostly a subset of perl 6. | 04:15 | |
| I can't say I'd mind some better compile-time checks | |||
| though | |||
| sorear | cotto: I am very speculatively thinking that less wrapper PMCs and more $S and $I variables will mean less garbage while running NQP-rx parsers, which could be a win on a par with immutable strings for bootstrap performance. | 04:17 | |
| *Rakudo/etc bootstrap | 04:18 | ||
| Alternatively, it could be nearly useless. | |||
| cotto | My impression was that the lack of non-PMC lexicals was the blocker for anything like that. | 04:19 | |
| sorear | $I0 works fine? | 04:21 | |
| or are you talking about find_lex | |||
|
04:21
snarkyboojum joined
|
|||
| sorear thinks NQP doesn't actually need to use Parrot lexicals, since it's such a static language | 04:22 | ||
| cotto | "$I0" works fine, but it's still a PMC internally. | 04:23 | |
| kurahaupo | !? | ||
| cotto | in nqp | ||
| nopaste | "cotto" at 71.231.102.30 pasted "%I0 is a pmc in nqp" (16 lines) at nopaste.snit.ch/20202 | 04:25 | |
| sorear | IREG seems to exist | ||
| NQP is not FORTRAN | |||
| NQP values are all PMCs | 04:26 | ||
| cotto | yeah | ||
| sorear | I would fix it in a Not Quite Perl6 way - my int $x := 1 | ||
| as opposed to selecting on the first name character | |||
| cotto | That could be an improvement. | ||
| and compatible with perl 6 | 04:27 | ||
|
05:06
Mokurai1 joined
05:07
eternaleye joined
05:14
snarkyboojum_ joined
|
|||
| dalek | parrot: 7e1353d | dukeleto++ | plparrot.c: Correct pushing floats onto func_args |
05:16 | |
| parrot: 113e58a | dukeleto++ | plparrot.c: Refactor conversion of PG datatypes into Parrot datatypes into the plparrot_push_pgdatatype_pmc function |
|||
| rrot: r45442 | petdance++ | trunk (3 files): Hid all the macro logic behind the new ->valid_macro method |
05:47 | ||
| rrot: r45443 | petdance++ | trunk (2 files): removed redundant copy of extract_function_declarations |
|||
|
06:00
payload joined
06:02
uniejo joined
|
|||
| dalek | rrot: r45444 | petdance++ | trunk (2 files): removed redundant extract_function_declarations and updated the one in Parrot::Headerizer |
06:04 | |
| rrot: r45445 | petdance++ | trunk (2 files): encapsualted all the warnings in the Headerizer object, and set them via ->squawk method |
|||
| rrot: r45446 | petdance++ | trunk/tools/build/headerizer.pl: removed unused hash %opt |
|||
| TT #1545 closed by petdance++: Properly split the headerizer | 06:09 | ||
| TT #1545: trac.parrot.org/parrot/ticket/1545 | |||
|
06:12
snarkyboojum joined
06:23
Mokurai1 joined
06:25
Austin joined
06:27
Austin joined
06:31
Mokurai joined
|
|||
| dalek | rrot: r45447 | petdance++ | trunk/tools/dev/nci_thunk_gen.pir: quiet a ton of unused warnings and do some consting |
06:36 | |
|
06:41
pjcj joined
|
|||
| dukeleto | what is the best way to see if a ResizablePMCArray is empty from C? | 07:03 | |
| sorear | VTABLE_elements | ||
| purl | VTABLE_elements is failing likely because mro is null | ||
| sorear | or VTABLE_get_bool | 07:04 | |
| dukeleto | sorear++ | 07:06 | |
| GeJ | clock? | 07:22 | |
| purl | GeJ: LAX: Thu 12:22am PDT / CHI: Thu 2:22am CDT / NYC: Thu 3:22am EDT / LON: Thu 8:22am BST / BER: Thu 9:22am CEST / IND: Thu 12:52pm IST / TOK: Thu 4:22pm JST / SYD: Thu 5:22pm EST / | ||
|
07:27
yjh joined
07:36
fperrad joined
07:37
yjh joined
07:39
AndyA joined
|
|||
| dalek | parrot: 17bdd73 | dukeleto++ | plparrot.c: Correct function signature for Parrot_ext_call and refactor a bit which returns nothing. Also, refactor create_* functions so that the global interpreter does not have to be passed in. |
07:39 | |
| parrot: b6ffc8c | dukeleto++ | plparrot.c: Fix signature of Parrot_ext_call and actually get PIR sub return values |
|||
|
07:48
fperrad joined
07:50
payload joined
08:00
payload joined
08:11
payload joined
|
|||
| sorear | it appears that the return value of get_pmc_keyed is supposed to be an lvalue | 08:26 | |
| although I can't keep all these layers of indirection straight in my head | |||
| Austin | Heh | ||
| I thought the return value of get_pmc_... should be a pmc, no? | |||
| sorear | yes | ||
| but pmcs can be lvalueish or rvalueish | |||
| my_pmc_thingie = array[12] | 08:27 | ||
| my_pmc_thingie = 5 | |||
| if array is a RPA, it's just been modified in place | |||
| but if array was a RIA, it hasn't been | |||
| it's all extremely confusing | 08:28 | ||
| and I have no idea what the right semantics for any operation are | |||
| Austin | Is this from perl, or from pir? | ||
| sorear | RIA get_pmc_ returns a duplicate of the stored value | ||
| pir | |||
| Austin | Ahh | ||
| sorear | RPA get_pmc_ returns an alias of the stored value | ||
| which is correct? | |||
| Austin | You're getting confused by an irritating "feature" of pir | ||
| In any case where there is an "operation" on the rhs of an = in pir, the = is really syntactic sugar for a 3-part opcode: | 08:29 | ||
| sorear | if Perl is going to be implemented on Parrot ever, then it needs to be able to do lvalue gets | ||
| \\$array[12] | |||
| Austin | my_pmc = array[12] | ||
| sorear | $$ref = 42; | ||
| Austin | is really "get_pmc_keyed_int my_pmc, array, 12" | 08:30 | |
| sorear | but if $array could be either RIA or RPA, then it seems this is unimplementable | ||
| Austin: cute syntax, but it tells me nothing about how get_pmc_keyed_int is supposed to be used | 08:31 | ||
| Austin | On the other hand, in a case where = is the only visible op, then you are looking at an "intelligent" system that maps = to either "bind" (aka set) or "assign" | ||
|
08:31
riffraff joined
|
|||
| sorear | half of parrot treats PMCs as containers, the other half treats them as reference values | 08:31 | |
| this would be much simpler if the Integer PMC was immutable | 08:33 | ||
| Austin | The upshot is that $P0 = $P1 is a pointer copy, while $P0 = 5 is really sugar for set_integer $P0, 5 | ||
| sorear | yes | 08:34 | |
| Austin | For myself, I'd prefer a different syntax. But it's too late for that. | ||
| sorear | it seems that right now, if you get_pmc_, you need to always clone afterward | ||
| since if you're accessing a RPA it might only be an alias and could be changed out from under you at any time | 08:35 | ||
| and if you want to do an lvalue, you need to make a wrapper object | |||
| and you should always clone before set_pmc, because it might bind internally | |||
| unless I'm hopelessly confused | 08:36 | ||
| which I am | |||
| Austin | :-$ | ||
| sorear | the upshot of this is that I'm writing PMCs and it appears any combination of semantics is valid for PMCs | ||
| Austin | You probably need a "reference" pmc. | 08:37 | |
| sorear | (am I coming acrosss as complaining?) | ||
| Austin | You could fake it with a FPA[1], but ... | ||
| sorear | What does a reference PMC do | ||
| Austin | Actually, this is pretty normal. Most people make a lot more noise, or just quietly walk away. | 08:38 | |
| A reference PMC would enable you to do \\\\\\\\\\\\\\$foo, or whatever. | |||
| Sorry. | |||
| A Reference PMC ... | |||
| sorear | What I /want/ is a formal denotational semantics for PASM | ||
| Austin | Heh | ||
| Sure. | |||
| moritz wants a ponie | 08:39 | ||
| Austin | Email me a copy when you get it. | ||
| Moritz, are you on windows? | |||
| sorear | when I look at Parrot interfaces, PMC* can be an object, or a container | ||
| it's like I'm looking at machine code and I don't know if a word is an integer or an address | |||
| and... different PMCs implement the same function with different interpretations of the arguments | 08:40 | ||
| Austin | Yeah, that's a little irksome.. | ||
| moritz | Austin: only for $work - my whole dev setup is linux | ||
| Austin | Hmm.. I have you in my mind as knowledgeable about Parrot/win. | ||
| Bummer. | 08:41 | ||
| moritz | Austin: nope... try jonathan, particle or ... dunno :-) | ||
| Austin | Sure | ||
|
08:42
JimmyZ joined
|
|||
| sorear | jnthn is definitely a Parrot/win person | 08:42 | |
| Austin: It's a little irksome for you, who already have Parrot enlightenment | 08:43 | ||
| I have no coherent mental model of what "PMC *" means | |||
| Austin | Yeah, but I don't have to deal with very many PMC types, so it's only a little irksome. | ||
| sorear | and I've spent two days completely stalled on Blizkost because of this | ||
| Austin | PMC* means "object handle" | ||
| sorear | which basically boil down to "to what extent should the return value of get_pmc_keyed be lvalueish?" | 08:44 | |
| Austin | What are you calling get pmc keyed on? | 08:45 | |
| sorear | Perl5 HASH references | ||
| Austin | So the key is a string? | ||
| (Or does p5 do object hashing now?) | |||
| sorear | AAAAA | ||
| don't. go. there. | |||
| Austin | Sorry. "String PMC" | 08:46 | |
| sorear | p5 does object hashing too, but only for tied hashes, and my brain will explode if you make me think about that | ||
| it's hard enough just contemplating a returned PMC* | |||
| now you want me to think about an argument!!! | |||
|
08:50
eternaleye joined
08:56
eternaleye joined
09:01
clinton joined
09:16
AndyA joined
|
|||
| sorear | so, uh, help? | 09:21 | |
| under what circumstances should get_pmc_keyed return an lvalue? | |||
|
11:21
lucian joined
11:26
aukjan joined
12:05
bluescreen joined
12:08
bluescreen joined
12:13
whiteknight joined
|
|||
| bacek | Good morning, Mr. Whitworth :) | 12:15 | |
|
12:24
preflex joined
|
|||
| Coke | brad.livejournal.com/2409049.html | 12:31 | |
| (how google eats open source developers, and how to help people contribute to your project.) | |||
|
12:34
preflex joined
12:41
tetragon joined
|
|||
| whiteknight | good morning, #parrot | 12:44 | |
| kthakore | whiteknight: morning | 12:56 | |
| whiteknight | good morning kthakore | ||
| kthakore | whiteknight: or should I say 'squawk!' | ||
|
12:58
atrodo joined
|
|||
| kthakore | I guess not | 12:58 | |
| whiteknight | :) | ||
| kthakore | whiteknight: so for the lame ness | ||
| whiteknight | lots of GSoC proposals! That makes me happy | 12:59 | |
| kthakore | whiteknight: yup | ||
| whiteknight: who new perl hackers wanted to do game stuff | 13:00 | ||
| whiteknight: I see 7 apps related to games | |||
| :) | |||
| makes me happy | |||
| atrodo | I wish GSoC was around when I was in school | ||
|
13:02
Andy joined
13:04
smash joined
|
|||
| smash | hello everyone | 13:04 | |
| whiteknight | good morning smash | ||
| dukeleto: ping | |||
|
13:05
hudnix joined
|
|||
| whiteknight | looks like TPF has 17 proposals total so far. By my count, 6 of those target Parrot specifically, and 1 more targetting Rakudo which could have some benefit to Parrot as well | 13:09 | |
| so that's quite a nice haul | |||
| as for how many slots we get, and how many of these proposals for Parrot get accepted, that's a different story entirely | 13:10 | ||
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33064), fulltest) at r45447 - Ubuntu 10.04 beta amd64 (gcc with --optimize) | 13:11 | |
| moritz | in the last two years we got about $slots == .8 * $appplications, but I guess in both cases there was a good deal of luck involved | ||
| in particular I've heard from other organizations that their factors were much smaller | 13:12 | ||
| PerlJam | also haven't there been 2 rounds of slot allocation? The initial allocation and then when there are "extra" slots from other orgs, they redistribute them | 13:13 | |
| moritz | yes, but the second round usually changes not much | 13:15 | |
| +/- 1 slot usually | |||
| particle | we had 16 apps last year, ~15 good enough, and 6 slots | ||
| er, 26 apps last year | 13:16 | ||
| proposals, applications, whatever. gosh, i'm tired. | |||
| moritz | that many? | 13:17 | |
| wow, my memory must have tricked me | 13:18 | ||
| kthakore | particle: yes I es | 13:20 | |
| particle: tired | |||
|
13:20
Mokurai joined
|
|||
| kthakore | particle: wow how did you choose out of 26 for 6 slots? | 13:20 | |
| particle | the first pass makes sure the proposals meet our criteria, all fields filled out with enough detail, etc | 13:22 | |
| we determine how many mentors we have, and how many projects we can take on | |||
| (last year, we had 44 prospective mentors, and enough to handle 6 for any sub-project (bricolage, p5, p6, parrot)) | 13:23 | ||
| moritz | and then, we vote | ||
| particle | then, all prospective mentors vote | ||
| ewilhelm created an app that makes sure that mentors vote according to the rules we set up | 13:24 | ||
| only a certain amount of votes total per mentor, only +1, 0, -1 votes allowed per application | |||
| then there is a subjective look at the proposals: | 13:25 | ||
| moritz | I think most mentors are not yet aware of these rules :-) | ||
| particle | of those ranked lowest, who are likely to succeed? | ||
| this is usually done by the org admins, and subproject experts | 13:26 | ||
| Coke | petdance - what is wrong with "fail early" to exit a function? | ||
| er, also Andy. | |||
|
13:26
ruoso joined
|
|||
| particle | after that, we submit a request for the amount of slots | 13:26 | |
| and we wait. | 13:27 | ||
| Coke | msg andy - r45441 - what's wrong with "fail early" to exit a function? | ||
| purl | Message for andy stored. | ||
|
13:32
atrodo joined
|
|||
| PerlJam wishes the stupid socghop app weren't as stupid. | 13:33 | ||
| I want to sort by rank, so let's see ... 1,10,11,12,2,3 ... yeah, that's perfect. | 13:34 | ||
| :( | |||
| mikehh | rakudo (6b54693 builds on parrot r45447 - make test PASS, spectest_smolder (pugs r30336 -> #33035) FAIL - Ubuntu 10.04 beta amd64 (gcc with --optimize) | ||
| rakudo - t/spec/S06-multi/syntax.rakudo - Failed tests: 21-22 | |||
| rakudo - t/spec/S05-mass/properties-general.rakudo - TODO passed: 4-6, 11-13, 544-546, 550 | |||
| Coke | someone just complained about that. have we filed a bug y et? | ||
| PerlJam has no idea how to file a bug on that | 13:35 | ||
| moritz submitted a bug report | |||
| Coke | moritz++ | 13:36 | |
| PerlJam | moritz++ indeed | ||
| mikehh | the rakudo smolder test is #33065 | ||
| moritz | turns out it was a dupe: code.google.com/p/soc/issues/detail?id=847 | 13:39 | |
| it seems fixed, but the fix is not yet deployed | |||
|
13:46
payload joined
13:51
GodFather joined
13:55
atrodo_ joined
13:58
patspam joined
14:10
ascent_ joined
|
|||
| Coke | just had someone in #perl6 ask about TT#827. | 14:12 | |
|
14:23
Andy joined
|
|||
| Coke wonders why And<TAB> hits AndyA first. | 14:26 | ||
| Andy: hio. | |||
| Andy | hey Coke | ||
| I wanna find more attributes! | 14:31 | ||
|
14:35
bubaflub joined
14:36
integral joined
14:41
theory joined
|
|||
| dalek | rrot: r45448 | petdance++ | trunk/src/global_setup.c: removed unused variable |
14:49 | |
| rrot: r45449 | petdance++ | trunk/config/auto/warnings.pm: Add new flags for cage mode under ICC |
|||
| Andy | Just discovered how to turn on the cranky warnings in ICC. Lots of goodness there. | 14:56 | |
|
15:02
lucian joined
|
|||
| dalek | rrot: r45450 | petdance++ | trunk/src/runcore/main.c: Comment out code only used with computed GOTO |
15:05 | |
|
15:17
payload left
15:31
cotto_work joined
|
|||
| dalek | rrot: r45451 | petdance++ | trunk (2 files): marking functions with annotations |
15:54 | |
|
16:00
davidfetter joined,
Maddingue joined
16:11
theory joined
16:21
senf_statt_oel joined
16:24
payload joined
16:33
jan joined
16:44
ash_ joined
|
|||
| dalek | kudo: 6b54693 | (Ingy dot Net)++ | src/Perl6/Module/Locator.pm: Patched rakudo to look for .pm6 modules. Signed-off-by: Moritz Lenz <moritz@faui2k3.org> |
16:45 | |
| cotto_work | www.fourmilab.ch/documents/apostrophe/ | 17:11 | |
| ash_ | i like theoatmeal.com/comics/apostrophe | 17:16 | |
|
17:31
ash_ joined
17:36
whiteknight joined
|
|||
| cotto_work | morning whiteknight | 17:40 | |
| whiteknight | hello cotto_work | ||
|
17:50
joeri joined
17:57
doubi joined
|
|||
| Coke | parrotsketch? | 18:06 | |
| purl | rumour has it parrotsketch is a status meeting for parrot core committers held every Tuesday at 20:30 UTC in #parrotsketch | ||
| Coke | whiteknight: someone on #perl6 was asking after the option to limit the amount of memory used by parrot. | 18:13 | |
| (just to bump that up ever so slightly on your priority list.) | 18:14 | ||
| whiteknight | Coke: okay, will look at it soonish | ||
|
18:14
petdance joined
|
|||
| Coke | danke. | 18:15 | |
|
18:18
Coke joined
18:24
senf_statt_oel left
18:25
mikehh joined
18:32
chromatic joined
|
|||
| chromatic | ccl.clozure.com/manual/chapter16.4.html | 18:43 | |
| PerlJam | chromatic: that's the GC algorithm you're going to implement next? :) | 18:49 | |
| chromatic | I don't see the word volunteer anywhere! | 18:50 | |
| darbelo | A compacting collector? I thought parrot was morally oposed to those? | ||
| PerlJam | Actually .... where's a gsoc student when you want one? | ||
|
19:05
ash_ joined
|
|||
| dalek | nxed: r442 | julian.notfound++ | trunk/examples/packfile.winxed: print offsets in hexa in pirado disassemblies |
19:07 | |
| chromatic | Coke, Andy, I'm curious about r45441 as well. | ||
| Andy | ? | ||
| you mean trac.parrot.org/parrot/changeset/45451/ ? | 19:08 | ||
| oh, I see | |||
| OK, what are you curious about? | 19:09 | ||
| chromatic | Why? | 19:10 | |
| Andy | Why what? | ||
| chromatic | Why did you make that change? | 19:11 | |
| Andy | "reducing number of exits out of functions" | ||
| chromatic | Pretend I'm not a third grader. Why is reducing the number of exits out of functions useful? | ||
| Coke | I think the readability of "fail early" trumps that. | ||
| Andy | If what you're really saying is "I don't think that was useful", then just say that. | 19:12 | |
| chromatic | I can't tell why it's useful, that's why I'm asking why you did it. | ||
| Coke | there's a difference between "I don't think that's useful" and "why do you think that's useful". | ||
| Andy | Because I think having fewer, ideally one, exits from a function is generally safer. | 19:13 | |
| Is this a bizarre, unheard of concept? | |||
| Have you never heard of that before? | |||
| Coke | safer how? | ||
| chromatic | Like I said, pretend I know a little bit about C and have some programming experience. | ||
| Coke | (I'm not trying to be a jerk.) | ||
| Andy | It sounds like you're fucking wth me to make a point. | ||
| Coke | me? no. | ||
| chromatic | I'm asking you a sincere, honest question. | ||
| Coke | sounds like you're overly defensive. | 19:14 | |
| Andy | OK, I apologize then. | ||
| Because usually "Please explain to me why you did this" is the prelude to "I'm now going to tell you why you're full of shit." | |||
| dalek | rrot: r45452 | mikehh++ | trunk/src/runcore/main.c: fix codetest failure - Correctly indented preprocessor directives |
||
| chromatic | I hope that's not the case on #parrot at least. | 19:15 | |
| Andy | Fair enough. | ||
| moritz | so how would you ask why somebody did something as an honest question? | ||
| PerlJam | Never on #parrot that I've ever seen | ||
| moritz: less tersely :) | |||
| Andy | In general, I try to keep a single exit point from a function, almost as reflex. | 19:16 | |
| www.c2.com/cgi/wiki?SingleFunctionExitPoint | |||
| Austin | The 45451 that I see is "marking functions with annotations" ...? | ||
| Andy | Austin: no, wrong one. | 19:17 | |
| I poisted the wrong link | |||
| Austin | Oh | ||
| Andy | Plus, in this case, what we're really saying is "If we have to change it, here's what you do." | ||
| I see "return pmc" x2 as DRY. | |||
| Austin: trac.parrot.org/parrot/changeset/45441/ | 19:18 | ||
| chromatic | I don't know; if guard clauses violate DRY, that seems very, very DRY. | ||
| Andy | Well, you say "guard" and I don't think that's right. | 19:19 | |
| Should it actually be an error if we ask for a change in type if it's already that type? | |||
| Coke | I can definitely see the appeal if you're duplicating more than a return statement. | ||
| Andy | Sould that if actually be an assert()? | ||
| chromatic | In a dynamic language, I think that'd be harder to work around the assert (and that, only if you're using a debug build) than making this an early return no op. | 19:20 | |
| You'd effectively move the "are these the same types?" checks to every place which calls this function, rather than within the function. | 19:21 | ||
| Andy | Again, not sure of the intent. | ||
| We're not really guarding against anything. | |||
| Austin | Anyone know how to access a *program* environment from within a *dll* in windows? | 19:23 | |
| Coke | www.c2.com/cgi/wiki?GuardClause seems to indicate that these are also used as 'checks for trivial cases'. | ||
| Andy | I'm really not up for a debate. | ||
| I explained. | 19:24 | ||
| Coke | Andy: harsh. | ||
| Andy | Why? | ||
| I'm not interested in debating. I'm just not. | |||
| If you think it should be changed back, then let's deal with that. | |||
| Coke | I think it's more readable the other way, yes. | 19:25 | |
| Andy | I'm not pissed that you want to debate. I just don't want to take part in it. :-) | ||
| chromatic | I don't particularly care about this one. I think it's easier to read the other way too, but it's not sufficiently more readable that I want to debate it either. | ||
| PerlJam would have written it the other way too | |||
| Andy | I have nothing invested in it. | ||
| chromatic | I'd rather find out if you're likely to refactor other functions this way, and if so I think it's a matter of coding style to discuss. | ||
|
19:26
smash joined
|
|||
| Andy | Depends on the amount of DRY involved. | 19:26 | |
| smash | hello everyone | ||
| cotto_work | hi smash | ||
| chromatic | Well if "return pmc" is sufficient to trigger your DRY reflexes, there are a lot of potential candidates. | 19:27 | |
| tewk | I prefer the early exit. | ||
| Andy | If I promise not to do it again, can we stop talking about it? | 19:28 | |
| chromatic | For everyone preferring the early exit, is this because you see it as a guard clause? | ||
| Andy | "return pmc" is inadequate for DRY. Got it. | ||
| I defer. | |||
| mikehh | BTW I am getting hundreds of warnings of the form: | 19:29 | |
| src/nci/extra_thunks.c:78: warning: ignoring return value of āPMC* Parrot_pcc_build_call_from_c_args(parrot_interp_t*, PMC*, const char*, ...)ā, declared with attribute warn_unused_result | |||
| Andy | any other functions besides that? | 19:30 | |
| mikehh | which I did not get in my last build at r45447 | ||
| Andy | i'm working on it mikehh | ||
| tewk | dynamic type checks at the beginning of a function are really contract checks, returning early is the C equivalent of throwing an exception because the contract was violated. | ||
| Andy | there's no disagreement, tewk | ||
| mikehh: You getting problems with anything beside Parrot_pcc_build_call_from_c_args ? | 19:32 | ||
| tewk | single return in such cases makes me think the contract is part of the semantics of the function, not just a pre condition, thats why I like early exit. | ||
| Andy++ for cleanup and C safety | |||
| mikehh | Andy: Yes mostly nci related | 19:33 | |
| Andy | ok, what other functions? | ||
| what are you buildling that causes these warnings? | |||
| mikehh | make corevm/make world | ||
| Andy | specific target in make world I can focus on? | 19:34 | |
| mikehh | fulltest PASSes though - it's just warnings | ||
| let me go through the log | |||
| Andy | I'm wondering what you built that threw all those warnings, such that I'm not building it and therefore seeing them as well | 19:36 | |
| PerlJam | mikehh: did you do a "make realclean" prior to your build? | 19:38 | |
| cotto_work | src/extra_nci_thunks.c generates many warnings | ||
| Andy | when did you last update, cotto_work > | 19:39 | |
| chromatic | On a quick skim, it almost looks like removing that function call from several NCI thunks would work just fine. | ||
| cotto_work | just now | ||
| purl | Now!? I'm not even close to ready! | ||
| cotto_work | core_thunks too | ||
| Andy | mikehh: svn up and those warnings should disappear | 19:40 | |
| cotto_work: Do a make realclean | |||
| cotto_work | that's after reconfig, which does realclean | ||
| Andy | and you get a bunch of warnings in nci_thunks? What warning specif? | 19:41 | |
| chromatic | Okay, wait. | 19:42 | |
| Andy | for? | ||
| purl | for fun. | ||
| chromatic | Parrot_pcc_build_call_from_c_args() shouldn't be ignorable. | ||
| Andy | it's ignored all the time. | ||
| cotto_work | nm. seems to be happy now | 19:43 | |
| chromatic | It's dead code in those cases. | ||
| Andy | ok | ||
| cotto_work | not necessarily correct, but happy | ||
| Andy | so it's building a call that we're just throwing away? | ||
| chromatic | I'm 95% certain of that. | ||
| Andy | and the real problem is that we're calling Parrot_pcc_build_call_from_c_args for now reason? | ||
| chromatic | Yes. | ||
| Andy | well awesome. | ||
| chromatic | Yeah, the warning found dead code. That's very good. | 19:44 | |
| cotto_work | warnings++ | ||
| darbelo | (dead code)-- | ||
| Andy | ok, so I'll go reverse the warning AGAIN | ||
| chromatic | Thanks. | 19:45 | |
| Andy | glad to get shit done. :-) | ||
| chromatic | You could always argue about something or other on p5p. That looks like a peculiar type of fun. | 19:46 | |
| Andy | I'd rather not. | ||
| If you haven't noticed, I'm not one for arguing for enjoyment. | |||
| chromatic | I've known you too long to believe that. | ||
| dalek | rrot: r45453 | petdance++ | trunk (2 files): Parrot_pcc_build_call_from_c_args is actually ignorable |
19:47 | |
| Andy | Believe it. | ||
| I don't argue for fun. | |||
| I'm the anti-arguer. | |||
| Which is why I didn't want to get into the early return debate. | |||
| Coke | oh, I had meant to complain - why do we have "#if 0" in parrot? can't we just rip all that out? | 19:48 | |
| Andy | Coke: I've been pulling it out where I see it. | ||
| Coke | I guess complain is the wrong word. | ||
| Andy | No, i don't think so. #if 0 sucks. :-) | ||
| We have version control to take care fothat. | 19:49 | ||
| chromatic | Yes, please delete it. | ||
| Coke | whee. danke. | ||
| Andy | Related, I am giving a talk in Columbia, SC in a week on what kids don't know coming out of college | ||
| kids = programming | |||
| darbelo | We also have #if DEFINE_THAT_DOES_NOT_EXIT_ANYMORE in a few places. | 19:50 | |
| Andy | darbelo: seems an easy fix | ||
| cotto_work | Yeah. Change it to 0. | ||
| mikehh | Andy: that seems to have cleared up most of the warnings | ||
| cotto_work | ;) | ||
| darbelo | I've ripped out the ones I've seen. | ||
| Andy | mikehh: They're coming back next commit. :-) | ||
| doubi | 'evening all. I'm working on a GSoC application (for porting ctypes to perl) and it was suggested that I ask in here if anyone knows much about C/Invoke as compared to other FFI libraries? | ||
| darbelo | But the could be more. | 19:51 | |
| PerlJam | Andy: will the talk be recorded or transcribed in some way? | ||
| Andy | PerlJam: Dunno | ||
| I'll have the slides up on slideshare | |||
| PerlJam | Andy: I've some some student workers who are going to graduate soon who could use another voice other than mine telling them all the things they don't know :) | 19:52 | |
| s/some/got/ | |||
| Andy | I'm oing to put up my mindmap for it | ||
| and I welcome input. | |||
| #1 on the list: Build systems. | 19:53 | ||
| chromatic | msg sorear If you find the Parrot development ethos "appalling", this is the place to discuss it. | ||
| purl | Message for sorear stored. | ||
| Andy | #2: version control | ||
| purl | i think version control is like backups. You advise your customers to do it. | ||
| Andy | chromatic: What was that in response to? | ||
| chromatic | Non bug reports not filed here. | ||
| Andy | so, bitching? | ||
| chromatic | I'm not going to categorize it as anything other than "I can't fix bugs no one reports." | 19:54 | |
| Andy | petdance.com/random/mindmap.png | 19:56 | |
| Rough order of presentation is down the left side, then down the right side | 19:58 | ||
| and I have to say, I rather like freemind. | |||
| Austin | Heh | ||
| Andy | freemind is mind-mapping software at freemind.sourceforge.net/ | ||
| Austin | I'm laughing at the part in the middle... | ||
| "Day 1" | 19:59 | ||
| Andy | which? | ||
| purl | which is bad because it means that a role can generate different methods for different classes | ||
| Andy | I don't get the funny. | ||
| Austin | How long is this talk supposed to be? | ||
| mikehh | oh forgot to report | ||
| All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33071), fulltest) at r45452 - Ubuntu 10.04 beta amd64 (g++ with --optimize) | |||
| Andy | Austin: an hour | ||
| PerlJam | Andy: Neat. I've been trying to get a "software craftsmanship" course offered locally that would cover everything on the left but Business. Unfortunately the local profs seem to think there's adequate coverage of these topics (while I have 5 very-bright students near the top of their class who had no clue about most of these things) | 20:00 | |
| Andy | I origiinally framed it around telling students what they're missing, but the real target is the educators. | ||
| posscon.org/april-16th-day/ | 20:01 | ||
| 11:30am | |||
| PerlJam | Andy: 2 of the students recently went on job interviews and told me that the things they've learned here figured prominently in the interview. | ||
| Andy | Where is "here"? | ||
| purl | hmmm... "here" is where? There are -4 stores EVERYWHERE in Taiwan | ||
| PerlJam | Andy: Corpus Christi TX, Texas A&M University Corpus christi | 20:02 | |
| chromatic | I wish schools had a software craftsmanship class. | ||
| dukeleto | Andy: the book "Apprenticeship Patterns" from O'reilly would probably interest you. | ||
| PerlJam | Andy: (I work at a research institute on the campus) | ||
| Andy | dukeleto: Written by fellow Chicagoan Dave Hoover, as I recall. | ||
| Yeha, he took our standing Perl Mongers meetings and started a Polyglot Programmers group | 20:03 | ||
|
20:03
theory joined
|
|||
| Andy | I dont' even care about it from a craftsman point of view. | 20:04 | |
| I would just love it if, for example, they gave out assignments like "You ahve to do project X. Your one deliverable to me at dd/mm hh:mm is a URL to your repo that I can check out and build with setup.sh" | |||
| Or | 20:05 | ||
| "Here is a steaming shitpile of code. Add feature X to it." | |||
| PerlJam | heh. | ||
| Andy | Because THAT is what the student will be doing on dayone. | ||
| chromatic | Al Aho's compilers class does something like that. I was jealous. | ||
| PerlJam | yep | ||
| Andy | Not starting on green field development. | ||
| "Yeah, uh, we're between projects, so, uh.... go look at ticket #2112 and fix it." | |||
| dalek | rrot: r45454 | petdance++ | trunk (2 files): In fact, Parrot_pcc_build_call_from_c_args should NOT be ignored. If it is called without saving the return value, then it is dead code. The warning is a flag that we need to change that dead code. |
||
| Austin | That's probably the way to sell it to professors. | 20:06 | |
| Andy | chromatic: Are you getting the many errors at src/extra_nci_thunks.c ? | ||
| PerlJam | A good class would be how to turn "steaming shitpile" into "nice, clean, refactored" code. | ||
| Andy | s/error/warning/ | ||
| chromatic | I'm building and checking now, Andy. | ||
| Andy | That's why I'm giving this talk. :-) | ||
| Austin | They've already got a pile of code that they've been working on for a while - and because they're academics, it's crappy code almost by definition. | 20:07 | |
| chromatic | Andy, I am. | ||
| Andy | chromatic: Good! | ||
| Austin | So the assignment would be "deliver to me a patch for an open ticket, or an update to the ticket that explains why it can't be patched, for my steaming pile of phd research" | ||
| They'd love you. | 20:08 | ||
| Andy | I'm just here to be the voice of the working world. | ||
| Austin | How'd you get involved with that? | ||
| Andy | One of the organizers saw me at OSCON last year, asked me to talk | 20:09 | |
| 'cause Saturday is a 2-hour resume + interviewing talk posscon.org/april-17th-day/ | |||
| dalek | kudo: 8681735 | smashz++ | (2 files): Implement getc funcion in IO, add getc.t to spectest.data |
||
| Austin | Were you talking about the same stuff at oscon? | 20:11 | |
| Andy | just job hunting | 20:15 | |
|
20:27
bluescreen joined
|
|||
| Andy | I'm interested in what is being done with the headerizer. | 20:29 | |
| Wondering who was working on splitting it out. | |||
| Even if he/she caused me pain in the process. :-) | |||
| Coke | I'd check with blame, but that sounds like the sort of cleanup kid51 does. | ||
| your pain sounds familiar enough I nearly looked for a ticket to see if I already complained about it. | 20:30 | ||
| Andy | it was just incomplete refactoring. | ||
| Coke | In fact I did. | 20:31 | |
| trac.parrot.org/parrot/ticket/532 | |||
| Andy | Donde? | ||
| purl | Donde is where, not why | ||
| Andy | ALSO | ||
| can you look at RTs # 39085 and #39917 and either reject them or migrate | |||
| I have had that as a todo in my task list FOREVER | |||
| it's from you | |||
| Coke | parrot doesn't have any rts any more. | 20:32 | |
| Andy | That's what I figured. | ||
| Coke | those are now: trac.parrot.org/parrot/ticket/1291 | ||
| ... and an RT error. | 20:33 | ||
| Andy | oh, good, so I already didit! | ||
| yay me! | |||
| I think my next big thing will be consting the ops. | 20:34 | ||
| darbelo | Consting the PMCs might be worthwhile too. | 20:38 | |
| dalek | rrot: r45455 | chromatic++ | trunk/lib/Parrot/Pmc2c/PCCMETHOD.pm: [lib] Removed a warning message about ignoring the return value of |
20:39 | |
| rrot: r45456 | chromatic++ | trunk/tools/dev/nci_thunk_gen.pir: [NCI] Removed a warning about ignoring the return |
|||
| rrot: r45457 | chromatic++ | trunk/src/nci/core_thunks.c: [NCI] Removed a warning about ignoring the return |
|||
| rrot: r45458 | chromatic++ | trunk/tools/dev/nci_thunk_gen.pir: [NCI] Removed a warning about ignoring the return |
|||
| rrot: r45459 | chromatic++ | trunk/src/nci/core_thunks.c: [NCI] Regenerated core NCI thunks to avoid warnings. |
|||
| chromatic | Summary: it's not dead code, but it's a confusing API. | 20:40 | |
| Andy | darbelo: I would like to if we could consistently, but unless we change the typedefs of the function pointers, it's worthless. | ||
| It doesn't matter if the function is a const, because the caller has to know it's feeding stuff into const. | 20:42 | ||
| There's a LOT I would like to const, but all these dispatch tables make that pretty undoable. | 20:44 | ||
| ttbot | Parrot trunk/ r45459 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/255713.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) | ||
| Coke | oooh, someone broke the build! | 20:47 | |
| darbelo | B-b-b-buildbreaker! | 20:48 | |
| Coke | chromatic, looks like either 45457 or 45458. | 20:49 | |
| inder-tt1/client-data/Parrot-trunk-temp/src/nci/core_thunks.c:1274: undefined reference to `_imp__Parrot_str_new_constant' | |||
| cotto_work | So if the return value of Parrot_pcc_build_call_from_c_args in those nci thunks was ignored, why wasn't stuff exploding? | 20:50 | |
| Andy | couldn't be me, I've never broken a build in my life. | ||
| <cough> | |||
| Coke | Andy: ^_O | ||
| Andy | cotto_work: Because they were called unnecessarily, I assume. | ||
| It was just extra work getting done. | |||
| chromatic | No, they're necessary. The API doesn't make it obvious. | 21:02 | |
| Those calls *set* return values in an existing CallContext. | |||
| darbelo | Misleading, evil, functions. | 21:03 | |
| chromatic | Yeah, we should probably break them into two separate functions. | 21:04 | |
| allison might not like that though; she really wanted to unify the paths. | |||
| darbelo | The returning is just another call thing? | 21:07 | |
| chromatic | Yeah, that's the nice thing about CPS. | 21:08 | |
| The problem is, the C API doesn't make that obvious. | |||
| If you ignore the CallContext created when you're making a call, that's a problem. | |||
| darbelo | So, C needs continuations ;) | ||
| Andy | If they're setting return values as a side effect, then why is it not ok to ignore the reutrn values? | ||
| chromatic | If you ignore the CallContext returned when you're invoking a return continuation with the CallContext you're passing in (which is the same one which you get returned), it's not a problem. | 21:09 | |
| Andy | what is nci anyway? | ||
| purl | nci is Native Call Interface or the National Cancer Institute, a part of the NIH or national cancer institute | ||
| darbelo | Andy: Sometimes it's ok, sometimes it's not! | ||
| chromatic | NCI lets you call functions in shared libraries from Parrot. | ||
| Andy | src/nci/*.c are not getting headerized. | ||
| Soon they will be. | 21:10 | ||
| chromatic | A Parrot_pcc_build_return_from_c_args() which returns nothing would clear all of this up. | 21:11 | |
| dalek | rrot: r45460 | chromatic++ | trunk/src/nci/core_thunks.c: [NCI] Removed a spurious, build-breaking #define |
21:12 | |
|
21:12
Whiteknight joined
|
|||
| darbelo | Hi, Whiteknight. | 21:13 | |
| Whiteknight | hello darbelo | ||
| cotto_work | Wow. fperrad sure seems to like writing pir. | 21:28 | |
| dalek | rrot: r45461 | fperrad++ | trunk (7 files): [library] add a TAP parser |
||
| darbelo | Fortunately, he also seems to be quite good at it. | 21:29 | |
| cotto_work | Sure. I'm just curious why he didn't use nqp to write a parser. | 21:30 | |
| That's one of nqp's strong points. | |||
| PerlJam | he really likes PIR :) | 21:31 | |
| darbelo | I think dukeleto had tried to write a TAP parser in nqp and found it horrybly slow. | 21:32 | |
| (The parser, not NQP) | |||
| cotto_work | That's surprising. I thought it was a very simple language. | 21:34 | |
| Andy | Does pir support includes? | 21:35 | |
| cotto_work | yes | ||
| .include "foo.pir" | |||
| Andy | I'm trying to figure where Parrot_nci_load_core_thunks is getting created | ||
| darbelo | But they're dumb text-replacement ones. | 21:36 | |
| cotto_work | tools/dev/mk_nci_thunks.pl | 21:42 | |
| mikehh | All tests PASS (pre/post-config, make corevm/make coretest, smoke (#33072), fulltest) at r45460 - Ubuntu 10.04 beta amd64 (gcc with --optimize) | ||
| dalek | rrot: r45462 | petdance++ | trunk (2 files): headerizing src/nci/api.c. There are two other functions in include/parrot/nci.h that have redundant declarations |
21:44 | |
| rrot: r45463 | petdance++ | trunk/tools/dev/nci_thunk_gen.pir: consting |
22:01 | ||
|
22:13
snarkyboojum joined
22:17
plobsing joined
|
|||
| plobsing | hi #parrot | 22:18 | |
| Coke | why are we adding a tap parser to parrot? | ||
| Andy is looking at cppcheck sourceforge.net/apps/mediawiki/cppc...=Main_Page | 22:19 | ||
| In Perl, every program will expand until it is able to parse TAP. | 22:20 | ||
| Coke | I thought the plan was to reduce our runtime/library and push that into plumage. | 22:21 | |
| Andy | I don't know, I'm just making funnies. | 22:22 | |
| plumage? | |||
| purl | plumage is the future Parrot module ecosystem. It will include tools to search metadata, handle dependencies, install modules, and so forth. The repository is at gitorious.org/parrot-plumage/parrot-plumage and the design docs are at trac.parrot.org/parrot/wiki/ModuleEcosystem | ||
| Coke | also, I wonder how this is supposed to relate to tapir. | ||
|
22:23
arnsholt joined
|
|||
| darbelo | Coke: Ask fperrad. My guess is that it's for distutils. | 22:26 | |
| Coke | I guess I'd like to see some discussion on list or in a ticket before changing the library. | 22:27 | |
| (or after.) | 22:28 | ||
| darbelo | You are just in time for after ;) | 22:30 | |
| dalek | rrot: r45464 | petdance++ | trunk/tools/dev/nci_thunk_gen.pir: Removed declarations in source file that are redundant to the header file |
22:34 | |
| rrot: r45465 | petdance++ | trunk/include/parrot/nci.h: move non-headerized functions up top so we can see they are not headerized |
|||
| cotto_work | Coke: you can ping fperrad | 22:38 | |
|
22:44
snarkyboojum left
|
|||
| dalek | rrot: r45466 | petdance++ | trunk/src/pmc/lexinfo.pmc: Removed unused attrs var. Consted some lexicals. |
23:07 | |
| darbelo | The keys in config_lib.pasm definitely need some review. | 23:09 | |
| "HAS_OPENGL" vs "has_opengl" | 23:10 | ||
| include/parrot/compiler.h | 23:11 | ||
| Eh, the last line was a mis-paste. | 23:12 | ||
| japhb | darbelo: the opengl detection sets several redundant flags mostly because (at the time, at least) *other* detection steps did the same. It was cargo-culted, because I had no idea why other steps did that. | 23:13 | |
| chromatic | The more we cut from that file, the faster Parrot will start. | ||
| japhb | I have no objection to man walking on the moon. | 23:14 | |
| darbelo | japhb: Oh, I'm not singling you out at all, there's plenty of cruft in there to go around ;) | ||
| japhb | :-) | ||
| darbelo | There's also what apears to be a lot of redundant definitions of integer types. | 23:15 | |
|
23:16
theory joined
|
|||
| darbelo | And I'm pretty sure all of the _provisional keys aren't supposed to be there at all. | 23:16 | |
| Whiteknight | are there any .NET coders around here? | 23:20 | |
| arnsholt | I know a bit about .Net | 23:21 | |
| darbelo | I am within five meter of one ;) | ||
| nopaste | "whiteknight" at 68.46.29.192 pasted "Parrot running in C#" (36 lines) at nopaste.snit.ch/20218 | 23:23 | |
| Whiteknight | take a look at that nopaste. It works in mono on my machine | ||
| dalek | rrot: r45467 | petdance++ | trunk/src/pmc_freeze.c: consting |
23:24 | |
| rrot: r45468 | petdance++ | trunk/src/pmc/unmanagedstruct.pmc: removed unused return value from calc_offsets. Consted locals. |
|||
| darbelo | Whiteknight++ | ||
| Whiteknight | It's not exactly pretty, but could be cleaned up a little bit | ||
| darbelo | A C# wrapper of our embed/extend API could be nice to have. | 23:26 | |
|
23:26
kid51 joined
|
|||
| Whiteknight | darbelo: I was thinking that exact thing | 23:26 | |
| japhb | Whiteknight++ indeed | 23:27 | |
| darbelo wonders about runtimes within runtimes. | 23:31 | ||
| japhb | If m.c. escher was a modern computer scientist .... | 23:32 | |
| cotto_work | cool project a co-worker is working on to make OSS suck less on Windows: arst.ch/iaa | 23:33 | |
| darbelo | Package management for windows? I'm already scared. | 23:35 | |
| dalek | rrot: r45469 | plobsing++ | trunk/src/nci/api.c: build_call_func will actually never return null |
23:40 | |
|
23:46
tetragon joined,
ruoso joined
|
|||
| darbelo | Though, from reading the comments, the guy doing it seems to have put some serious thought into doing it right... | 23:47 | |
| darbelo chuckels at "Being an open source developer at Microsoft is kindof like being a preacher in Vegas" | 23:49 | ||
| kid51 | cotto_work: Are those developers in contact with the Strawberry Perl folks? | 23:52 | |