|
Parrot 0.8.2 "Feliz Loro" Released www.parrot.org/news/2008/Parrot-0.8.2 Set by moderator on 23 December 2008. |
|||
| Whiteknight | surprise surprise, the COBOL grammar is gigantic | 00:00 | |
|
00:09
Limbic_Region joined,
AndyA joined
|
|||
| dalek | r34840 | rurban++ | branches/pdd30install_stage3 (3 files): | 00:30 | |
| : More trac TT#123 fixes, remove more hard-coded runtime/ paths from libs | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34840 | |||
| r34841 | pmichaud++ | trunk/languages/perl6/build: | 00:57 | ||
| : [rakudo]: Autothread junctions over concatenation (infix:<~>). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34841 | |||
| r34842 | pmichaud++ | branches/rvar/languages/perl6/src (2 files): | 01:12 | ||
| : [rakudo]: Handle public accessors for 'has' variables. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34842 | |||
|
01:16
TiMBuS joined
|
|||
| dalek | r34843 | chromatic++ | branches/pdd09gc_part2 (3 files): | 01:48 | |
| : [GC] Created an enum for Parrot_gc_trace_root() to select which of the root set | |||
| : and the system areas to trace for live PObjs. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34843 | |||
| r34844 | chromatic++ | branches/pdd09gc_part2 (3 files): | 02:03 | ||
| : [GC] Renamed Parrot_free_pmc_ext() to Parrot_gc_free_pmc_ext(). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34844 | |||
|
02:16
kid51 joined
02:18
leto joined
|
|||
| dalek | r34845 | chromatic++ | branches/pdd09gc_part2 (11 files): | 02:57 | |
| : [GC] Renamed src/gc/smallobject.c to src/gc/mark_sweep.gc and | |||
| : include/parrot/smallobject.h to include/parrot/gc_mark_sweep.h. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34845 | |||
| r34846 | jkeenan++ | branches/assert_args (6 files): | 03:47 | ||
| : Fix positioning of ASSERT_ARGS() to be below last variable declaration in a given subroutine; avoid C90 warnings. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34846 | |||
|
03:53
rurban_ joined
|
|||
| Infinoid | kid51: I'm actually in the process of making the opposite change | 04:02 | |
|
04:02
elmex_ joined
|
|||
| kid51 | In the branch or in trunk? | 04:02 | |
| Infinoid | in general. now that there's a branch, I'm not really sure where I should be working | ||
| kid51 | Well, if you're focusing just on this ASSERT_ARGS() stuff, I'd suggest the branch. | 04:03 | |
| I was making the change mostly to see if I understood the concept behind the warnings. | |||
| Infinoid | okay, I am, and will. | ||
| kid51 | Just svn up frequently in branch, because I'm working there now -- though I'll be headed to bed in about 30 min. | 04:04 | |
| Will probably do 2 more commits tonight. | |||
| Infinoid | no worries. for the moment, I'll mostly focus on updating / converting the work that's already been done | 04:05 | |
| shouldn't take long, but it won't conflict with your commits | |||
| dalek | r34847 | jkeenan++ | branches/assert_args/src: | 04:06 | |
| : Add ASSERT_ARGS() to each function. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34847 | |||
| kid51 | next commit will be in compilers/imcc/debug.c | ||
| Infinoid | I'm going to change the format of the generated headers, so they can be moved to the very top of the function. shouldn't break anything, but your "make headerizer" will probably catch some jit/i386 code that mine misses | 04:11 | |
| I also need to figure out why my bison is broken, so I can update IMCC and make sure I don't break that (again). | |||
| kid51 | So what is the net benefit of all this supposed to be? | 04:20 | |
| Infinoid | it finds cases when arguments were marked as ARGIN but really need to be ARGIN_NULLOK | 04:25 | |
| gcc has some compile-time checks to try to enforce this, but they don't work in all cases. | 04:26 | ||
| so we're enforcing the contract at runtime | |||
| which, in turn, should make such problems show up early, otherwise they will be ticking timebombs resulting in obscure bugs later on | 04:27 | ||
| Nicholas Clark suggested it in www.nntp.perl.org/group/perl.perl6....9677.html, he had to do the same thing to the perl5 codebase for the same reasons. | 04:28 | ||
| shorten | Infinoid's url is at xrl.us/bea6n7 | ||
| dalek | r34848 | jkeenan++ | branches/assert_args (3 files): | 04:32 | |
| : Add ASSERT_ARGS() to each function. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34848 | |||
| nopaste | "kid51" at 68.237.17.85 pasted "assert_args branch: 441 functions left to handle" (441 lines) at nopaste.snit.ch/15160 | 04:34 | |
| kid51 must sleep | 04:35 | ||
| purl | $kid51->sleep(8 * 3600); | ||
|
05:03
tetragon joined
|
|||
| dalek | r34849 | infinoid++ | branches/assert_args (2 files): | 05:11 | |
| : [headerizer] Fix so we can put ASSERT_ARGS at the very top of functions | |||
| : Make the ASSERT_ARGS declaration look like the declaration of a local | |||
| : variable. This means we can put it at the very top of every function, | |||
| : for maximum usefulness, and without causing GCC to emit warnings about | |||
| : ISO C90 prohibiting mixed declarations and code. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34849 | |||
| r34850 | infinoid++ | branches/assert_args (138 files): | 05:13 | ||
| : [headerizer] Apply the resulting changes to headerizer defines. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34850 | |||
| r34851 | infinoid++ | branches/assert_args/t/codingstd: | |||
| : [codingstd] Make sure ASSERT_ARGS() is at the *top* of the function. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34851 | |||
| r34852 | infinoid++ | branches/assert_args (65 files): | |||
| : [core] Move ASSERT_ARGS() up to the top of a bunch of existing functions. | |||
| : These are the result of a simple search & replace; there are 26 remaining | |||
| : functions (reported by c_arg_assert.t) which I will fix up in a later | |||
| : commit. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34852 | |||
| r34853 | infinoid++ | branches/assert_args (18 files): | 05:14 | ||
| : [core] Put ASSERT_ARGS in the proper location for the remaining cases. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34853 | |||
| r34854 | infinoid++ | branches/assert_args/include/parrot: | |||
| : [core] Fix PARROT_ASSERT_ARG to emit the correct file and line number. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34854 | |||
|
05:16
jimmy joined
|
|||
| jimmy | hello, is 'nan/inf, pdd14-numbers' rescheduled from 0.8.2? | 05:25 | |
|
05:29
MariachiElf joined
05:32
MariachiElf joined
05:43
MariachiElf joined
|
|||
| Infinoid | jimmy: hi. last I heard (in #parrotsketch on 2008-12-02) the nan/inf item was just a matter of updating the documentation | 05:54 | |
|
05:56
Theory joined
|
|||
| jimmy | Infinoid: yeah, after that is implementing pdd14-numbers | 06:05 | |
| Infinoid | cool. now that ASSERT_ARGS() goes at the very top of the functions, it means I can add them programmatically with s///. | 06:11 | |
| jimmy | good,I got a doubt before: why ASSERT_ARGS is not at the top of the functions. | 06:13 | |
| dalek | r34855 | infinoid++ | branches/assert_args/tools/build: | ||
| : [headerizer] Fix for generating asserts for "array[]" arguments. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34855 | |||
| r34856 | infinoid++ | branches/assert_args (2 files): | |||
| : [headerizer] Apply changes from previous headerizer fix. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34856 | |||
| Infinoid | jimmy: it was because gcc complains when you put code before variable declarations. the fix was to make it look like a variable declaration to gcc | 06:14 | |
| jimmy | Infinoid++ | ||
| dalek | r34857 | infinoid++ | branches/assert_args (37 files): | ||
| : [core] Tag the remaining 441 functions with ASSERT_ARGS. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34857 | |||
| jimmy | and now gcc does not complain? | 06:15 | |
| Infinoid | and now gcc does not complain. | ||
| jimmy | why | ||
| Infinoid | the generated assertions used to look like: assert(interp); assert(exception); | 06:16 | |
| now they look like: __attribute__unused__ int _ASSERT_ARGS_CHECK = PARROT_ASSERT_ARG(interp) || PARROT_ASSERT_ARG(exception); | |||
| ...where PARROT_ASSERT_ARG is an inline function that triggers an exception if needed, and returns 0 otherwise. | |||
|
06:17
canhope joined
|
|||
| Infinoid | another nice side effect is, we get a nice warning about a duplicate _ASSERT_ARGS_CHECK variable if we screwed up and added more than one ASSERT_ARGS() call | 06:18 | |
| jimmy | good, I think other debug function can be rewritten as inline function | ||
| Infinoid | I am a big fan of inline functions. I like the type checking they can provide | 06:19 | |
| jimmy | there were some debug functions in src\\stm\\backend.c should be rewrite as inline function | 06:20 | |
| Infinoid | is this the varargs macro stuff we discussed earlier? | 06:21 | |
| jimmy | no | 06:22 | |
| when it is 0, it is a static function | |||
| a redundant function | |||
| Infinoid | I think inline would speed things up slightly in that case | 06:23 | |
| save a few function calls, at least | |||
| jimmy | yeah | 06:24 | |
| varargs marco function or inline function | 06:25 | ||
| Infinoid | inline is more portable than macro | 06:26 | |
| jimmy | aye. for c89 | 06:27 | |
| Infinoid | though, I don't see why it couldn't be an inline function in both cases. assuming there's some sort of Parrot_io_vfprintf function | 06:28 | |
| jimmy | that is my mind. | 06:29 | |
| Infinoid | jimmy++ | 06:30 | |
| jimmy | when it is inline function, it will does not be compiled to binary codes | ||
| Infinoid++, for headerizer | 06:32 | ||
| Infinoid | jimmy: headerizer is Andy's baby. I'm just abusing it for my own vile machinations. | 06:33 | |
| dalek | r34858 | infinoid++ | (182 files): | 06:37 | |
| : [core] Merge from assert_args branch, with modifications. | |||
| : (Builds and tests okay for me.) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34858 | |||
| Infinoid | here's hoping it works equally well on other platforms | ||
| jimmy | Infinoid: seems that PARROT_ASSERT_ARG is equal to PARROT_ASSERT | 06:41 | |
| Infinoid | jimmy: PARROT_ASSERT doesn't return an integer, thus it can't be used in a variable initialization line. I tried to explain that in the comment above | 06:42 | |
| jimmy | #ifndef NDEBUG | 06:44 | |
| if(!x) Parrot_confess(name, file, line); | |||
| #endif | |||
| seems that it is redundant | |||
| Infinoid | the second and third argument to Parrot_confess are different | 06:45 | |
| if I used __FILE__ and __LINE__ there, the assert would report the line in the header file, not the line in the source file | |||
| that's what the r34854 fix was all about. | 06:46 | ||
| and that's why I couldn't just use PARROT_ASSERT there | 06:47 | ||
| (I tried) | |||
| jimmy | good, Parrot_assert is a good choice too. | 06:54 | |
| it is equal to 'if(!x) Parrot_confess(name, file, line);' | |||
| Infinoid | I saw that Parrot_assert takes an INTVAL, and that made me suspicious | 06:56 | |
| jimmy | yeah | ||
| Infinoid | I'm not sure how that would work on e.g. win64, so I decided to explicitly have a pointer argument for now | ||
| plus, if it's a real function, that's a lot more overhead than the inline | 06:57 | ||
| and it wouldn't get optimized out the way we want it to, when you turn optimization on. | |||
| (though I suppose the NDEBUG takes care of that) | |||
| dalek | r34859 | infinoid++ | trunk (31 files): | 06:59 | |
| : [cage] Codingstd fixes from recent merge (linelength, cuddled_else, c_operator). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34859 | |||
| r34860 | infinoid++ | trunk/src: | |||
| : [core] Tag new functions added since the assert_args branch was created. | |||
| : This gets t/codingstd/c_arg_assert.t passing. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34860 | |||
| r34861 | infinoid++ | branches: | 07:01 | ||
| : Done developing this feature, removing branch. (Will create fresh branch if additional development is required) | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34861 | |||
| jimmy | infinoid++ | 07:02 | |
| dalek | r34862 | infinoid++ | tags: | ||
| : Done developing assert_args branch, remove tag (for now). | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34862 | |||
| Infinoid | I'm very eager to hear if trunk builds for anyone else (preferably on a platform other than linux/x64) without excessive warnings | ||
| jimmy | I'm using windows | 07:03 | |
| Infinoid | great. does trunk build for you? (and which compiler do you use?) | 07:04 | |
| jimmy | i am using strawberry and windows xp with icu | ||
| gcc version 3.4.5 (mingw-vista special r3) | 07:05 | ||
| Infinoid | ok, I think that should work (I know these features work well in gcc) | ||
| if it doesn't work, that means I missed a file that's disabled on my platform | 07:06 | ||
| speaking of which, better test x86. | |||
| jimmy | let me give it a try | 07:07 | |
| src\\exec.c: In function `Parrot_exec': | 07:10 | ||
| src\\exec.c:90: warning: ISO C90 forbids mixed declarations and code | |||
| src\\exec.c: In function `add_data_member': | |||
| src\\exec.c:157: warning: ISO C90 forbids mixed declarations and code | |||
| src\\exec.c: In function `Parrot_exec_add_symbol': | |||
| src\\exec.c:236: warning: ISO C90 forbids mixed declarations and code | |||
| src\\exec.c: In function `Parrot_exec_add_text_rellocation': | |||
| src\\exec.c:327: warning: ISO C90 forbids mixed declarations and code | |||
| src\\exec.c: In function `symbol_list_find': | |||
| src\\exec.c:376: warning: ISO C90 forbids mixed declarations and code | |||
| not for Infinoid | |||
| Infinoid: works well for me | 07:11 | ||
| Infinoid | jimmy: the above warnings are from an older version, I hope... they should be fixed by now. | 07:12 | |
| jimmy | I don't know how to fix them | 07:13 | |
| Infinoid | I caused them, and I am seeing them on x86 linux, one moment and I'll fix it | 07:14 | |
| jimmy | seems that should exchange the macro and declarations. | ||
| Infinoid | no, its because the macro is out of date | ||
| "make headerizer" only regenerates prototypes for the files reported by Parrot::Distribution... but that list changes from one platform to the next. so when I do it on x86-64, it doesn't regenerate the JIT stuff, because that's only enabled on x86-32 | 07:15 | ||
| dalek | r34863 | infinoid++ | trunk (4 files): | 07:19 | |
| : [cage] Run headerizer on x86-32, to regenerate various JIT-related things. | |||
| : This fixes some ASSERT_ARGS warnings for src/exec.o. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34863 | |||
|
07:23
mberends joined
|
|||
| jimmy | infinoid++ | 07:25 | |
| Infinoid | not quite done yet... refreshing IMCC while I'm at it. | 07:27 | |
| jimmy | src\\atomic\\gcc_x86.c | 07:28 | |
| src\\atomic\\gcc_x86.c: In function `parrot_i386_cmpxchg': | |||
| src\\atomic\\gcc_x86.c:54: warning: passing arg 1 of `_PARROT_ASSERT_ARG' discards | |||
| qualifiers from pointer target type | |||
| src\\atomic\\gcc_x86.c: In function `parrot_i386_xadd': | |||
| src\\atomic\\gcc_x86.c:87: warning: passing arg 1 of `_PARROT_ASSERT_ARG' discards | |||
| qualifiers from pointer target type | |||
| src\\stm\\backend.c: In function `do_real_commit': | 07:29 | ||
| src\\stm\\backend.c:811: warning: null argument where non-null required (arg 2) | |||
| src\\stm\\backend.c: In function `wait_for_version': | |||
| src\\stm\\backend.c:1428: warning: null argument where non-null required (arg 2) | |||
| src\\stm\\waitlist.c | |||
| src\\stm\\waitlist.c: In function `waitlist_signal_all': | |||
| src\\stm\\waitlist.c:404: warning: null argument where non-null required (arg 3) | |||
| src\\string_primitives.c | |||
| Infinoid | those stm warnings are __attribute_nonnull__ doing it's job. patches welcome, but not directly caused by what I'm working on | 07:30 | |
| I'll look into the gcc_x86 stuff in a moment, thanks for pointing it out | |||
| jimmy | I don't know how to fixed it. it is a macro. | 07:45 | |
|
07:45
ask_ joined
07:49
Zaba joined
08:00
TimToady joined
|
|||
| dalek | r34864 | duff++ | trunk/languages/ecmascript/src/parser (2 files): | 08:04 | |
| : [ecmascript] implement variation of C-style for loops with variable declarations | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34864 | |||
| jimmy | infinoid: I have a question | 08:05 | |
| why does _PARROT_ASSERT_ARG need a return value? Am I ignorant? | 08:07 | ||
| Infinoid | jimmy: can't assign a variable to it otherwise. it's all a big trick to fool gcc into letting me put it at the top of the function | 08:14 | |
| jimmy | ah, it is disguise | 08:18 | |
| gcc-- | |||
| Infinoid | it's not really gcc's fault. it's a C89 constraint. gcc handles it fine, but it generates a warning | 08:19 | |
| or ISO C90 or whatever | 08:20 | ||
|
08:21
Zaba joined
|
|||
| jimmy don't know it is worth doing disguise for putting is at top of the function | 08:21 | ||
| s/is/it | |||
| Infinoid | it is worth it. some functions have a *lot* of logic in the local variable declaration lines, including calling other functions and dereferencing the pointer arguments directly. putting the assertion after that is useless, because it will have already segfaulted before then | 08:22 | |
| jimmy | it is happened only when NDEBUG was defined. | 08:24 | |
| is it? | |||
| purl | it's it! | ||
| Infinoid | yes. and so is PARROT_ASSERT. and so is the C library's assert() | 08:25 | |
| rather, it only happens when NDEBUG is *not* defined. | |||
| jimmy | yes, not defined | 08:27 | |
| Infinoid | so when NDEBUG is not defined (which is the common case), the asserts check the validity of the arguments | 08:29 | |
| that hasn't changed when I moved them to the top of the functions | |||
| the C library assert() behaves the same way. | 08:30 | ||
| also, all of this code disappears when parrot is built with optimization. (this is true for at least gcc) | 08:31 | ||
| jimmy | really? | 08:33 | |
| purl | really is it bad? | ||
| jimmy | there is still 'int _ASSERT_ARGS_CHECK' | 08:34 | |
| Infinoid | ...which is an unused function, initialized to 0 | 08:36 | |
| s/function/variable/ | |||
| jimmy | #define ASSERT_ARGS(a) ASSERT_ARGS_ ## a can write: #ifndef NDEBUG #define ASSERT_ARGS(a) ASSERT_ARGS_ ## a #else #define ASSERT_ARGS(a) ((void)0) #endif | 08:38 | |
| that is not initialized | 08:40 | ||
| Infinoid | NDEBUG isn't the only case when these things are stripped out, and it's not the case I'm worried about. take a look at gcc's documentation for the "nonnull" attribute on variables - when optimization is turned on, these checks will be short-circuited anyway | 08:43 | |
| so for ARGIN_NULLOK variables, there's no check to begin with, and for ARGIN variables, the check should be optimized out when compiling with -O2 | 08:44 | ||
| jimmy | does it work for other compilers? | 08:45 | |
| Infinoid | if other compilers have a nonnull attribute with the same semantics, it will work the same way. if they don't, it won't. | ||
| I would be very interested to see if there is any difference in performance from removing the unused variable entirely. if it doesn't make a difference, that means gcc is just dropping it entirely (which I think it should) | 08:46 | ||
| at the moment, I'm more concerned with catching weird bugs before they get weird than I am with microoptimizations. | 08:47 | ||
| speaking of weird bugs, cmpxchg needs NULLOK | 08:48 | ||
|
08:50
flh joined
08:51
iblechbot joined
|
|||
| jimmy | i was a bit confused | 08:52 | |
| ASSERT_ARGS should be removed from Parrot_confess && Parrot_assert | 08:54 | ||
| it caused recursion | 08:55 | ||
| Infinoid | if Parrot_confess and Parrot_assert have NONNULL attributes which can validly be NULL, they should be converted to NULLOK attributes. | ||
| (in my opinion) | 08:56 | ||
| jimmy | when not define NDEBUG , Parrot_confess was called by itself, and it is a recursion. | 08:57 | |
| Infinoid | the second time Parrot_confess is called, the parameters it is passed are not NULL. | 09:00 | |
| _PARROT_ASSERT_ARG calls it with the name of the variable (#n), not the NULL pointer itself | 09:01 | ||
| jimmy | when Parrot_confess was called, it called ASSERT_ARGS(Parrot_confess); first, and ASSERT_ARGS(Parrot_confess) called Parrot_confess | 09:04 | |
| Infinoid | with different arguments. | 09:05 | |
| jimmy | and seems that PARROT_ASSERT(x); in _PARROT_ASSERT_ARG function is none of use. | 09:06 | |
| Infinoid | if Parrot_confess is called with a null "cond" pointer, for example, triggering the assertion failure, it will result in a call to Parrot_confess("cond", "src/exceptions.c", 544) | 09:07 | |
| that is not a problem. | |||
| jimmy | I am stupid,however I saw them was a recursion. | ||
| Infinoid | its true that the function can be called twice, but I don't see any way it could keep recursing infinitely | ||
| jimmy | Infinoid: seems that PARROT_ASSERT(x); in _PARROT_ASSERT_ARG function is none of use. | 09:09 | |
| Infinoid | that's true. I'll look at that once I'm done with exec runcore tagging. | 09:12 | |
| jimmy | what we discussed ealier is that these macro will be thrown in .c files? | ||
| Infinoid | that's already done. | 09:13 | |
| jimmy | ah? | ||
| Infinoid | yep, all headerized functions have ASSERT_ARGS in them now | 09:14 | |
| jimmy | I saw '#define ASSERT_ARGS_exit_fatal' in .h files | ||
| Infinoid | oh, that. I was hoping Andy would want to do that :) | 09:15 | |
| its 1:15am and I am starting to make stupid mistakes, need to wrap up this patchset soon. | 09:16 | ||
| jimmy | anyway, I don't think we needs ASSERT_ARGS(Parrot_confess) themself. | 09:18 | |
|
09:18
Zaba joined
|
|||
| Infinoid | if Parrot_confess *is* called with a NULL pointer, it will crash without emitting a useful message. This emits a more useful message in that case. | 09:19 | |
| jimmy | log | 09:21 | |
| log? | |||
| purl | o/` it rolls downstairs, alone or in pairs, rolls over your neighbour's dog, it fits on your back, it's good for a snack, it's log, log log! o/` | ||
| jimmy | irclog? | ||
| purl | irclog is probably irclog.perlgeek.de/parrot/today or see also: infrared clogs | ||
| Infinoid | Log, from Blammo! | 09:22 | |
| jimmy | have to leave, goodbye infinoid. | 09:25 | |
| happy to discuss with you. | 09:26 | ||
| Infinoid | jimmy++, thanks for the review | 09:27 | |
| Infinoid commits and goes to sleep | |||
| dalek | r34865 | infinoid++ | trunk/include/parrot: | ||
| : [core] Fix PARROT_ASSERT_ARG's condition variable to be volatile. | |||
| : This fixes some warnings with the x86 atomic ops. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34865 | |||
| r34866 | infinoid++ | trunk (2 files): | |||
| : In src/atomic/gcc_x86.c, cmpxchg doesn't actually dereference the "expect" | |||
| : and "update" pointers. It is conceiveable that you might want to atomically | |||
| : swap out a NULL pointer for a non-NULL one, or vice versa. Thus these | |||
| : arguments should be NULLOK. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34866 | |||
| r34867 | infinoid++ | trunk/src/jit (3 files): | |||
| : [exec] Tag exec runcore functions with ASSERT_ARGS. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34867 | |||
| r34868 | infinoid++ | trunk/include/parrot: | |||
| : Remove extra PARROT_ASSERT() call from _PARROT_ASSERT_ARG. jimmy++ for noticing it. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34868 | |||
|
10:07
alvar joined
10:14
jq joined
10:18
flh joined
10:27
kj joined
|
|||
| kj | bleh. parrot won't build | 10:55 | |
| TiMBuS | current rev is workin on ubuntu amd64 | 10:59 | |
| although i cant guarantee optimized will work, since well, | 11:02 | ||
| yeah its like roulette :x | 11:03 | ||
| kj | i'm on windows. I'm sure it works on linux, as the changes were committed/tested there | 11:07 | |
|
11:10
barney joined
11:28
omega joined
|
|||
| dalek | r34869 | bernhard++ | trunk/languages/ecmascript/src/parser: | 11:34 | |
| : [codingstd] uncuddle an else | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34869 | |||
|
11:36
masak joined
11:37
alvar joined
11:53
rurban_ joined
|
|||
| dalek | r34870 | kjs++ | trunk/compilers/pirc/new (11 files): | 11:55 | |
| : [pirc] Add a new constant type for unicode strings. | |||
| : + move unicode string parsing to the lexer | |||
| : + const objects now use the value_type enumeration, not the pir_types | 11:56 | ||
| : + function docs. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34870 | |||
| r34871 | kjs++ | trunk/compilers/pirc/new (3 files): | 12:18 | ||
| : [pirc] add support for <encoding><charset><contents>. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34871 | |||
|
12:24
pdcawley joined
|
|||
| dalek | r34872 | kjs++ | trunk/compilers/pirc/new (5 files): | 12:28 | |
| : [pirc] add unicode string handling in bcgen and emitter. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34872 | |||
| r34873 | kjs++ | trunk/compilers/pirc/new (2 files): | 12:32 | ||
| : [pirc] remove an unused var and add some comments. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34873 | 12:33 | ||
| TiMBuS | what would be the best way to add a 'char' type pmc? should i just subclass a string and force it to only have one letter in the hll using it, or would it be a better idea to use an integer type and convert to a char when its value is needed? | 12:35 | |
| i guess a better question is, how well does parrot handle int<->char conversion, mostly regarding multibyte chars? | 12:36 | ||
| dalek | r34874 | bernhard++ | trunk/languages/pipp/t/php: | ||
| : [Pipp] Add two TODO tests, WRT superglobals. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34874 | |||
| kj | TiMBuS: well, I'm not really familiar with the whole string stuff, but Parrot was designed to handle unicode properly (regarding your need for multi-byte characters) | 12:37 | |
| I think I would subclass String, but I'm not really sure how efficient that would be | 12:38 | ||
| if you send something to the list, you'll probably get more helpful responses | |||
| TiMBuS | if ints can be converted to wide chars that would do just fine but im a little bit unsure how parrot will cope, since i thought string.split would correctly handle unicode and it doesnt seem to | 12:43 | |
| lathos | Unicode support is designed but not implemented. :( | 12:44 | |
| TiMBuS | time for the usual solution i guess: git branch | ||
| lathos | I will have more time next year, so hopefully will get around to it then. | 12:45 | |
| Um, this year. March or so. | |||
| TiMBuS | that would be cool | ||
| you should also look into fixing up some of the string ops that assume utf-8 means all characters are a byte in length for some reason =/ | 12:46 | ||
| lathos | Yeah. Like I said, Unicode support really isn't implemented. | ||
| Marking a string as UTF8 basically means nothing. | 12:47 | ||
| TiMBuS | well, i guess in that case i may as well use an int type pmc since they'd probably handle unicode just as well as a string type | 12:49 | |
| dalek | r34875 | bernhard++ | trunk/languages/pipp (2 files): | 13:03 | |
| : [Pipp] Declare package scope for superglobals for | |||
| : the remaining scope boundaries. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34875 | |||
|
13:04
gaurav joined
13:18
register joined
|
|||
| register | is there any opcode that forces a change in parrot context? | 13:19 | |
|
13:34
Zaba joined
13:47
Zaba joined
13:57
kid51 joined
|
|||
| dalek | r34876 | pmichaud++ | trunk/languages/perl6/docs: | 14:12 | |
| : [rakudo]: spectest-progress.csv update: 264 files, 5911 passing, 0 failing | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34876 | |||
| r34877 | pmichaud++ | branches/rvar/languages/perl6/src/parser: | 14:14 | ||
| : [rakudo]: Clean up var node handling in actions.pm a bit. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34877 | |||
| r34878 | kjs++ | trunk/compilers/pirc/new (9 files): | 14:38 | ||
| : [pirc] work on .const stuff. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34878 | |||
| r34879 | bernhard++ | trunk/languages/pipp/src/pmc: | 14:42 | ||
| : [Pipp] small beautifications | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34879 | |||
| r34880 | kjs++ | trunk/compilers/pirc/new: | 14:46 | ||
| : [pirc] clarification of value-type-to-pir-type stuff. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34880 | |||
| r34881 | kjs++ | trunk/compilers/pirc/new: | 14:47 | ||
| : [pirc] comment out some code. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34881 | |||
| r34882 | pmichaud++ | branches/rvar/languages/perl6/src (2 files): | 14:53 | ||
| : [rakudo]: Refactor public accessor handling. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34882 | |||
| r34883 | bernhard++ | trunk/languages/pipp (2 files): | 14:58 | ||
| : [Pipp] Simplify set_superglobals() | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34883 | |||
|
15:02
jimmy joined
|
|||
| Infinoid | kj: didI break builds on win32? | 15:05 | |
| kj | Infinoid: yes | 15:09 | |
| well not sure if you did it | |||
| but it broke | |||
| I checked out an older version, then I could continue work | |||
| Infinoid | kid51: thanks, got your message. what's the failure on darwin? | ||
| kj: ok, I'm looking at TT125. but I'm a bit confused | 15:10 | ||
| kj | msvc is sometimes a bit stricter than gcc | ||
| Infinoid | I made a lot of changes to include/parrot/exceptions.h, so I'm sure its something I caused. but I don't understand the error messages | 15:11 | |
| kj | neither do I | ||
| my knowledge of C's dark syntax corners is limited | |||
| my guess would be to check out the -E output of gcc | 15:14 | ||
| if that's possible | |||
| nopaste | "Infinoid" at 75.5.247.153 pasted "Does this patch have an effect on win32?" (14 lines) at nopaste.snit.ch/15161 | ||
| kj | (after preprocessing) | ||
| Infinoid | my best guess is that it has some weird ordering rules regarding the "inline" keyword | 15:15 | |
| lathos | Ooh, I have include/parrot/exceptions.h:282: error: syntax error before 'int' | ||
| kj | lathos: you on win? | ||
| lathos | Nope, but I turned on -pedantic | ||
| kj | ok | ||
| is inline c89? | |||
| lathos | Ah wait, it was -ansi that caused the error. | 15:16 | |
| -std=c89 has the error though. | |||
| Infinoid | ok, I'm trying that | 15:17 | |
| lathos | www.greenend.org.uk/rjk/2003/03/inline.html | ||
| kj | I guess that's a no then | 15:18 | |
| Infinoid | uck. well, I guess that explains why it isn't more common in parrot | 15:19 | |
| though (of course) its building just fine for me with -std=c89 too | 15:21 | ||
| kj: any chance you can try nopaste.snit.ch/15161 on win32? | 15:22 | ||
| kj | I can,but I'll have to checkout a new parrot first | 15:23 | |
| because I don't want to mess up my wc | |||
| dalek | r34884 | kjs++ | trunk/compilers/pirc/new (7 files): | ||
| : [pirc] fix correct pbc generation for PMC "Sub" .const stuff. | |||
| : + cleanup. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34884 | |||
| Infinoid | ok, no problem | ||
| kj | so it'll take 15 min before I get to it (must compile first, slow pc :-( | ||
| Infinoid | lathos: ok... -std=c89 built okay with the patch, failed with a nasty warning without it | 15:24 | |
| ./include/parrot/exceptions.h:282: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'int' | |||
| it does introduce a couple of warnings of its own, when building stub files that don't call it. and those warnings persist even without -std-c89... definitely need a better solution for this. | 15:30 | ||
| dalek | r34885 | bernhard++ | trunk/languages/pipp/t/php: | 15:31 | |
| : [Pipp] correct number of tests | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34885 | |||
| r34886 | bernhard++ | trunk/languages/pipp: | 15:33 | ||
| : [Pipp] Cast $_GET and $_POST into the PhpArray type | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34886 | |||
| kj | nopaste | 15:37 | |
| clunker3 | pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ | ||
| nopaste | "kjs" at 86.95.212.32 pasted "changed exeptions.h into this." (10 lines) at nopaste.snit.ch/15162 | 15:38 | |
| kj | Infinoid: I pasted something; couldn't applly the patch | 15:39 | |
| it seems the build process now continues | |||
| will take another 4 min or so to complete build | |||
| Infinoid | ok, it looks correct. | 15:40 | |
| I've got another patch that avoids the inline function entirely, which might be a better approach | 15:41 | ||
| szabgab | it seems rakudo is missing the unpack() sub, where should I report it ? | ||
| Infinoid | one interesting thing in C syntax: you can take a void function, and turn it into a typed rvalue by just putting a value after it with a comma. like: "return voidfunc(), 0" or "int i = voidfunc(), 0" | 15:42 | |
| I don't even know what to call that, so it's hard to tell how portable it is. is that a gccism? | |||
| dalek | r34887 | bernhard++ | trunk/languages/pipp/src/pmc: | 15:44 | |
| : [Pipp] localize some vars | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34887 | |||
| kj | dunno. I don't know it (and I'm happy I don't ;-) | ||
| I'll try, first coffee. | |||
|
15:44
flh joined
|
|||
| Infinoid | well, I need it (or something like it) to make this work, or else I need Parrot_confess's prototype to return an integer type | 15:45 | |
| barney | szabgab: if there are no spectests it's a bug. Otherwise www.perlfoundation.org/perl6/index....ure_status | ||
| shorten | barney's url is at xrl.us/bebd7u | ||
|
15:46
masak joined
|
|||
| szabgab | barney: so where are the spectest? | 15:48 | |
| and it is not mentioned there either way | |||
| nopaste | "Infinoid" at 75.5.247.153 pasted "A macro-only version" (43 lines) at nopaste.snit.ch/15163 | ||
| szabgab | are the spectest here: pugs/t/spec/ | ||
| and there is no test for unpack() there or in the whole test suit of pugs, for that matter | 15:50 | ||
| barney | szabgab: Then report it at rakudobug@perl.org | 15:56 | |
| kid51 | Infinoid: How would I apply the patch in 15163? It had rejects with patch -p1 | 15:57 | |
| szabgab | barney: and wher will it show up ? | 15:58 | |
| lathos | Perl 6 has unpack? | 15:59 | |
| szabgab | it is mentioned in STD.pm | ||
| lathos | Fair enough. | ||
| szabgab | and it does not say "we won't support unpack" | 16:00 | |
| masak | szabgab: unpack is underspecced atm, I'd say | ||
| szabgab | but I really don't know :-) | ||
| Infinoid | kid51: sorry, what's 15163? | ||
| oh, the nopaste | 16:01 | ||
| purl | i guess the nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste 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) | ||
| masak | szabgab: I'd be happy to help implement it in Rakudo if I knew a bit more about the specs. | ||
| kid51 | I tried applying that patch. It had rejects. I'm unfamiliar with how to apply patches coming from git | ||
| Infinoid | -p1 is the right way. I think I'm just cutpasting them wrong, or something | 16:02 | |
| ah, patch had the wrong base. rebasing | |||
| nopaste | "Infinoid" at 75.5.247.153 pasted "nopaste #15163 again, but against trunk, not against my previous nopaste" (48 lines) at nopaste.snit.ch/15164 | 16:03 | |
| Infinoid | nopaste 15161 is a possible solution, but it's pretty ugly. if 15164 works portably, I'd much prefer it | 16:05 | |
| kid51: what compiler are you using on darwin? | 16:09 | ||
| kj | anybody know how to check whether a string constant is the name of a "Sub" class (using "isa") ? | ||
| pmichaud | $P0 = get_class $S0 | 16:10 | |
| oh. | |||
| wait. | |||
| you have a class name and you want to know if that class isa "Sub" ? | |||
| kj | pmichaud: sorry, I mean in C | 16:11 | |
| I have the name of a PMC type | |||
| say "Sub", or "Coroutine" | |||
| and from C I'd like to know whether the type "isa" "Sub", so to prevent to check for enum_class_Sub || enum_class_Coroutine || enum_class_WhateverClassInheritsFromSub | |||
| but it seems I need to pass a PMC object as well | 16:12 | ||
| pmichaud | I think 'VTABLE_isa' works on class objects. | ||
| kid51 | Infinoid: /usr/bin/gcc --version | 16:13 | |
| powerpc-apple-darwin8-gcc-4.0.1 (GCC) 4.0.1 (Apple Computer, Inc. build 5250) | |||
| GCC | |||
| pmichaud | so, Parrot_oo_get_class_str to convert the name to the PMC type | ||
| kj | yes, so VTABLE_isa(interp, my_pmc_to_check, my_type_name_string) | ||
| Infinoid | kid51: thanks. ok, I'm fairly sure nopaste.snit.ch/15164 will work for you. | ||
| but I'm worried about msvc | |||
| pmichaud | then VTABLE_isa(interp, class_pmc, string_to_literal(interp, "Sub") ) | ||
| but really I think | 16:14 | ||
| better would be | |||
| use Parrot_oo_get_class_str for both your PMC type and for "Sub" | |||
| kj | ok, I'll check out that. Thanks for the pointers | ||
| pmichaud | and then do VTABLE_isa_pmc() | ||
| I'm trying to encourage people away from using strings as class identifiers. | 16:15 | ||
| dalek | r34888 | bernhard++ | trunk/languages: | 16:17 | |
| : TT #46 Remove LANGUAGES.STATUS? | |||
| : Remove the entries that are already in the Wiki. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34888 | |||
| masak | pmichaud: how's the rvar branch coming along? | 16:18 | |
|
16:18
DietCoke joined
|
|||
| pmichaud | fairly well. | 16:18 | |
| I have attribute accessors back in place. | |||
| Right now I'm working on is rw and is readonly traits. | |||
| Coke yawns | |||
| masak | woot | ||
| pmichaud | I'm _much_ happier with this refactor. And, of course, a lot of stuff works that didn't before. | 16:19 | |
| masak | sounds great. | ||
| pmichaud | and so far actions.pm is 33% shorter than before. | ||
| masak | always a good sign. | ||
| pmichaud | (still more to add, but still significantly shorter) | ||
| kj | pmichaud: I think I got it working. Thanks again. | 16:20 | |
| masak | I plan to add C<unpack> later tonight to trunk. shouldn't conflict with your work, since it's a function. | ||
| pmichaud | correct, shouldn't be an issue. | ||
| I'll be interested to see how you handle Str-vs-Buf :-) | |||
| masak | we have Bufs? :) | 16:21 | |
| pmichaud | not yet, which is why I'll be interested to see how it gets handled :-) | ||
| but somehow it feels like unpack should work on Buf instead of Str | |||
| masak | I thought I'd implement it now, before the problem arises. :) | ||
| nopaste | "kid51" at 71.247.49.39 pasted "paste 15164: 'make' still fails on Darwin" (13 lines) at nopaste.snit.ch/15165 | 16:23 | |
| kid51 | Infinoid: no improvement on Darwin; Linux remains okay with paste 15164 applied. | 16:24 | |
| Infinoid | oh, ppc. awesome. your issue is completely different from msvc's. | ||
| so ppc needs a "make headerizer" run to add the appropriate macros to src/jit/ppc/exec_dep.h | 16:25 | ||
| which might be tricky if the build process was interrupted too early, so the files headerizer needs haven't been generated yet | 16:26 | ||
| kid51 | Before trying patch, I did 'make clean' rather than 'make realclean'. Should that have made any difference? | 16:27 | |
| Infinoid | no. | ||
| kid51 | I didn't think so. | ||
| Infinoid | if headerizer doesn't work, we can bootstrap it by (temporarily) commenting out the ASSERT_ARGS macros that aren't working | ||
| kid51 | Should we consider backing this change out from trunk and re-trying in a branch? | 16:28 | |
| dalek | r34889 | kjs++ | trunk/compilers/pirc/new (2 files): | 16:29 | |
| : [pirc] more on .const "Sub". | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34889 | |||
| Infinoid | I don't know. your issue is easily fixable and I am hoping msvc's issue is fixed by the above patch. after that, only exposure will scare out the remaining bugs | ||
| if it turns out msvc isn't fixed, then it might be worth backburnering it for a little while to find a better solution. | 16:30 | ||
| kid51 must leave for a while | |||
| masak wonders how many years we have to go back for 'The computer fell asleep' to seem a ridiculous notion | 16:35 | ||
|
16:43
tewk joined
|
|||
| dalek | r34890 | infinoid++ | trunk/src/jit (2 files): | 16:44 | |
| : [arch] Backout the ASSERT_ARGS changes for platform-specific code that | |||
| : hasn't had "make headerizer" applied yet (arm, ppc). Once they have the | |||
| : proper macros generated, these can be added back in. | |||
| : In the meantime, this should fix builds on darwin/ppc. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34890 | |||
| r34891 | pmichaud++ | branches/rvar/compilers/pct/src/PAST: | 16:56 | ||
| : [pct]: Make the "Scope not found" error a bit more informative. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34891 | |||
|
16:59
kid51 joined
|
|||
| dalek | r34892 | kjs++ | trunk/compilers/pirc/new (3 files): | 17:01 | |
| : [pirc] .const "Integer" i = 42 now auto-boxes 42 in a HLL_map respecting Integer object in the constant table. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34892 | |||
| Infinoid | kid51: I am hoping r34890 gets darwin/ppc building again. | 17:04 | |
| dalek | r34893 | kjs++ | trunk/compilers/pirc/new: | 17:07 | |
| : [pirc] same auto-box trick for .const "String" and .const "Float" as previous. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34893 | |||
| kid51 | Infinoid: 'make' is getting farther on Darwin than before. | 17:11 | |
| rurban | seen barney? | 17:14 | |
| purl | barney was last seen on #parrot 1 hours, 18 minutes and 13 seconds ago, saying: szabgab: Then report it at rakudobug@perl.org | ||
| kid51 | Infinoid: 'make' completed; doing make smolder_test | 17:15 | |
| dalek | r34894 | kjs++ | trunk/compilers/pirc/new (2 files): | 17:16 | |
| : [pirc] add a comment so I don't forget, and cleanup. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34894 | |||
| Coke reinstalls darwin ports in an attampt to get kcachegrind to work. | 17:23 | ||
| holy crap it might be installing dependencies. | 17:32 | ||
| intarwebs++ | |||
| masak | they do come in handy sometimes, that series of tubes. | 17:34 | |
| Coke | so; I had to wipe darwinports, start over, install x11sdk, x11user (from apple, though I got them from online since my disk is missing...) | 17:35 | |
| /then/ 'sudo port install kcachegrind' actually starts doing something. | |||
| also, don't confuse 'port' with 'fink' at any point during this process. | 17:36 | ||
|
17:48
brunoV joined
|
|||
| kid51 | Infinoid 'make test' completed successfully on Darwin: smolder.plusthree.com/app/public_pr...ails/11779 | 17:50 | |
| shorten | kid51's url is at xrl.us/bebee5 | ||
| Infinoid | great, thanks | 17:53 | |
| kid51: if you run "make headerizer", does it result in local changes? if so, they should probably be checked in. | 17:54 | ||
| kid51 | Run 'make headerizer' at this point (i.e., after make and make test)? | 17:57 | |
| Infinoid | yeah, a fully built parrot is what it needs to work | 17:58 | |
| nopaste | "kid51" at 71.247.49.39 pasted "tail of output of 'make headerizer' on Darwin/PPC; output of 'svn diff src/jit/ppc/exec_dep.h'" (56 lines) at nopaste.snit.ch/15166 | 18:03 | |
| kid51 | Does that look ok? | ||
| Infinoid | yes, that's exactly what's needed to get ASSERT_ARGS() working on those functions I removed it from in r34890 | 18:06 | |
| and it looks like it's been a while since it was run on that platform, judging from the other updates | |||
| kid51 | k. Am doing 'make clean', then 'make' again, to be sure. | ||
| Then will commit. | |||
| Infinoid | ok, thanks. | ||
|
18:08
ruoso joined
|
|||
| brunoV | Hi, I'd like to volunteer in this todo/skip cleanup task that chromatic published in use.perl | 18:17 | |
| masak | brunoV: great! | ||
| brunoV | I have a question or two though, I'd like to know if I understood the task correctly | ||
| masak | sure. | 18:18 | |
| brunoV | I've downloaded the parrot code, I grepped to get a list of all files that have TODO and SKIP keywords. I cross-referenced with the already done files, and have a file list to work on. | ||
| Now | |||
| What I need to do is check whether a given TODO or SKIP mark has an associated ticket, right? | 18:19 | ||
| masak | looks that way to me, yes. | ||
| in both of the ticketing systems. | |||
| brunoV | yes, got that. Now, if there isn't a ticket, I shouldn't create one, right? that's another task for someone else? | ||
| masak | I think so, yes. | 18:20 | |
| (that you don't need to create a ticket) | |||
| brunoV | oh, ok. So to be 100% sure, i got this example. I am now looking at the ./t/doc/pod.t file, with only one TODO and no tickets. As I understand it, I should just mention this file, say it has only one TODO, and put the TODO description there, right? | 18:21 | |
| masak | right. | ||
| brunoV | perfect. Thanks a lot, I'll get started. | ||
| masak | brunoV++ | ||
| brunoV | :) glad that I can help | 18:22 | |
| dalek | r34895 | jkeenan++ | trunk/src/jit/ppc: | 18:24 | |
| : Run 'make headerizer' on Darwin/PPC to capture recent changes, particularly ASSERT_ARGS. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34895 | |||
| brunoV | one more question... it seems that someone posted their additions as a comment. Should I do just that, or edit the main list? | 18:25 | |
| masak | brunoV: do you have privs to edit the main list? | ||
| brunoV | I made myself an account, yes | ||
| masak | then I suggest you do that directly. | ||
| brunoV | ok, thanks | ||
| masak | np | 18:26 | |
|
18:30
Tene joined,
szabgab joined
18:31
dngor joined,
spinclad joined
18:42
chromatic joined
18:55
purl joined
19:04
purl joined
19:32
masak joined
|
|||
| masak | the assertion failure at t/spec/S06-signature/sub-ref when running 'make spectest' in languages/perl6, is that a known one? | 19:58 | |
|
20:06
tetragon joined,
rurban joined
|
|||
| Infinoid | is it a C-level assert failure? | 20:15 | |
| masak | Infinoid: failed assertion 'PObj_is_PMC_TEST(sig_pmc)' | 20:20 | |
| Infinoid | I don't get an assertion failure from that test, I get a "Statement not terminated properly" error. | ||
| masak | hm. | 20:21 | |
|
20:22
tetragon joined
20:23
ayrnieu joined
|
|||
| rurban | I'm cleaning up Parrot_locate_runtime_file_str now, based on TT#127 | 20:25 | |
| Infinoid | oh, I needed to run the fudged version. runs fine here, masak | ||
| rurban | I also found the cause of my RT#56996 fhs-runtime patch | ||
| masak | Infinoid: ok. maybe platform-specific? | 20:26 | |
| I'm on Mac OS X here. | |||
| rurban | e.g. the empty libpath "" will be expanded to prefix, this is wrong. /usr/config is different to ./config | ||
| Infinoid | masak: maybe. linux/amd64 here. did it give you a file and line number? | 20:27 | |
| masak | no. | ||
| Infinoid | I think it has to be inter_call.c, line 440, 453, or 489 | ||
| masak | I see. | ||
| Infinoid | but I don't know what would have caused it. has it been there for a while? | ||
| masak | don't know. haven't made spectest in a while. | 20:28 | |
|
20:37
raiph joined
|
|||
| Coke | anyone here use kcachegrind / kde? | 20:40 | |
|
20:43
tetragon joined
|
|||
| dalek | r34896 | infinoid++ | trunk/include/parrot: | 20:44 | |
| : [cage] Convert PARROT_ASSERT_ARG() to a macro-only solution, because inline | |||
| : functions are not C89. This significantly simplifies the implementation. | |||
| : I am hoping this will fix builds on MSVC, but either way, I believe it's a | |||
| : step in the right direction. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34896 | |||
| rurban | The config hash: Are there only strings allowed? I get segfaults when using an integer | ||
| chromatic | Which config hash? | 20:45 | |
| rurban | the one from config_lib.pasm | ||
| chromatic | You shouldn't get segfaults from PIR when using it. | ||
| rurban | paste? | 20:46 | |
| clunker3 | pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ | ||
| purl | paste is (see: nopaste) or like glue but a little safer to sniff. or nopaste.snit.ch:8001/ or scsys.co.uk:8001/ anywhere shadowpaste is or mmm, sticky paste or You there! Eating the paste. or <see> 2 girls, 1 paste | ||
| nopaste | "#rurban" at 212.183.49.22 pasted "config hash segfault when installed is 0, but not when 1" (11 lines) at nopaste.snit.ch/15167 | 20:47 | |
| rurban | "installed" is the only int key there, all other are strings | ||
| And in the debugger it works okay, strange | 20:48 | ||
| chromatic | That is strange. | ||
| rurban | Hmm, make realclean maybe | ||
| ./installable_parrot works okay, ./parrot not | 20:49 | ||
| I'm optimizing the library search path | |||
| Coke | chromatic: I think I have kcachegrind installed. | ||
| only took a day. | |||
| chromatic | Bonus. | 20:50 | |
| Coke | I don't see any pretty pictures. | ||
| kcachegrind parrot tcl.pbc foo.tcl ? | |||
| (lots of diag output, followed by: DCOP: unregister 'kded' | 20:51 | ||
| DCOP: unregister 'klauncher' | |||
| DCOPServer : slotSuicide() -> exit. | |||
| chromatic | Run it on the callgrind.out.PID file. | ||
| rurban | BTW: optimize is not used in ccflags | ||
| Coke | chromatic: but I don't have valgrind installed. =-) | 20:52 | |
| rurban | perl's optimize is not taken, and doing perl Configure.pl --optimize=-g3 doesn't help either | ||
| Coke | so, grabbing that from feather... | ||
| masak | in PIR, if I want to check if a string $S0 is equal to a literal string, how do I write? | ||
| chromatic | $I0 = eq $S0, '...' | 20:53 | |
| masak | chromatic: thanks. | ||
| Coke | there is a sugared version: "if $S0 = 'foo' goto bah" | ||
| chromatic: running against the .out.PID file also generates lots of KDE debug but ends with slotSuicide. | 20:54 | ||
| hurm. | |||
| masak | Coke: that's what I tried first, before asking. | 20:55 | |
| chromatic's version doesn't work either. | |||
| oh, I had an equals sign too many. | |||
| never mind. :/ | |||
| chromatic | Or your libparrot is haunted. | ||
| masak | might be that, too. | 20:56 | |
| Coke | chromatic: when generating the callgrind.out , are there options I must use to make kcachegrind happy? | 20:57 | |
| chromatic | alias cgp='time valgrind --tool=callgrind --dump-instr=yes --trace-jump=yes parrot' | 20:58 | |
| masak | chromatic: ok, now I think my libparrot is haunted `if $S0 = 'A' goto ascii` doesn't work. neither does what you suggested. | ||
| Coke | masak;are you sure $S0 is, in fact, A? | 20:59 | |
| (do you have a small sample?) | |||
| masak | Coke: well, it doesn't compile. | ||
| Coke | nopaste. | ||
| purl | i heard nopaste was at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste 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) | ||
| masak | oki, hold on | ||
| rurban | try_load_path is a bad name: it also finds directories, but it should not. It should only find files or symlinks. I'll add to ticket TT#127 | ||
| nopaste | "masak" at 130.238.45.242 pasted "the code and the errors in question" (31 lines) at nopaste.snit.ch/15168 | 21:00 | |
| pmichaud | those should be == | ||
| dalek | r34897 | pmichaud++ | branches/rvar/languages/perl6/src/parser: | ||
| : [rakudo]: Refactor readonly/rw/copy handling. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34897 | |||
| Coke | chromatic: I just went ot create a .sh with that in it, and found it already existed in ~coke/bin/cgp. | ||
| Apparently I am doomed to repeat myself. | 21:01 | ||
| masak | pmichaud: I tried that too. trying again. | ||
| pmichaud | if you want to test for equality into an int, it's $I0 = iseq $S0, 'foo' | ||
| Infinoid | chromatic: I've tried on two machines and with two versions of bison, and am thus far unable to regenerate sources correctly from imcc.y. I fear I've broken builds in --maintainer mode, and can't test/debug it. | ||
| pmichaud | if you want to branch to a label, it's if $S0 == 'foo' goto <label> | 21:02 | |
| Infinoid | bison 2.4 errors out. bison 2.3 generates a peculiar imcparser.c with about 100 thousand blank lines in the middle | ||
| masak | pmichaud: works better this time. apparently I had to know what I was doing for it to work. | ||
| chromatic | Infinoid, I saw some weird behavior there myself. I'll take a look in a bit. | 21:03 | |
| Infinoid | ok. please let me know if you run into breakage from the assert stuff | ||
| Coke now has a kcachegrind install that actually runs, talks to his X server...and does absolutely nothing. =-) | 21:06 | ||
| Coke gives up for a while. | 21:07 | ||
| Infinoid | Coke: I've got it running here. anything I can help with? | 21:08 | |
| rurban | chromatic: make realclean helped :) | ||
| chromatic | excellent | 21:09 | |
| rurban | I'll test now on three platforms and put to the install branch | ||
| chromatic | compilers/imcc/imcc.y:521: error: āASSERT_ARGS_INS_LABELā undeclared (first use in this function) | 21:10 | |
| compilers/imcc/imcc.y:521: error: (Each undeclared identifier is reported only once | |||
| purl | i already had it that way, chromatic. | ||
|
21:15
desertmax joined,
tetragon joined
|
|||
| masak | pmichaud: line 590 of src/builtins/any-str.pir reads "Note the multisub type here should be 'Str' or 'Str'". | 21:16 | |
| what's the difference? :) | 21:17 | ||
| pmichaud | masak: I suspect that's obsolete -- I'll check. | ||
| it's probably left over from Perl6Str, and originally read "should be 'Perl6Str' or 'Str'" | |||
| masak | ah. | ||
| pmichaud | jonathan did a global s/Perl6Str/Str/ in the code, and probably got the comments as well. | ||
| checking. | |||
| masak | comments is a tricky business. | ||
| pmichaud | the comment is in fact incorrect, and should be taken out. :multi('String') is correct. | 21:18 | |
| masak | ok. | ||
| I'm in that file now, so I can remove it, if you want. | |||
| pmichaud | please. | 21:19 | |
| masak | consider it done. | ||
| dalek | r34898 | masak++ | trunk/languages/perl6/src/builtins: | 21:23 | |
| : [rakudo] added C<unpack> implementation that passes szabgab's three original | |||
| : tests, and very nearly nothing more | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34898 | |||
| r34899 | masak++ | trunk/languages/perl6/src/builtins: | 21:24 | ||
| : [rakudo] removed obsoleted comment in any-str.pir | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34899 | |||
| masak | afk & | 21:25 | |
| dalek | r34900 | rurban++ | branches/pdd30install_stage3: | 21:34 | |
| : r34716 forgot to add addgenerated.pl to MANIFEST | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34900 | |||
|
21:38
tetragon joined
|
|||
| dalek | r34901 | rurban++ | branches/pdd30install_stage3: | 21:39 | |
| : Oops. r34900 was wrong. It is in tools/build/ | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34901 | |||
| r34902 | chromatic++ | trunk (4 files): | 21:47 | ||
| : [IMCC] Fixed headerizer for IMCC in maintainer mode, and reran it. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34902 | |||
| r34903 | pmichaud++ | branches/rvar/languages/perl6/src/parser: | 22:18 | ||
| : [rakudo]: Add 'is rw' trait to attributes. | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34903 | |||
|
22:20
gravity joined
22:43
TiMBuS joined
|
|||
| masak | I have reason to believe that Test.pm's line 160 should read `if $his ~~ List && $that ~~ List {` instead of `if $this ~~ Array && $that ~~ Array {`, as it does now. does anyone agree or disagree? | 22:43 | |
| Coke | Infinoid: (help) yes. make tcl run 5000 times faster. =-) | 22:44 | |
| Infinoid | heh. by 5pm? | 22:45 | |
| Coke | ^_^ | 22:47 | |
| pmichaud | I think it won't hurt to make them List. | 22:54 | |
| However, in rvar, they'll end up being Array | |||
| masak | pmichaud: why? | 22:55 | |
| pmichaud | (as a List in scalar context becomes an Array) | ||
| masak | ah. | ||
| my investigation was triggered by a test file that szabgab wrote... hold on... | |||
| pmichaud | I'm still of the opinion that is() should have is_deeply semantics, though. :-) | 22:56 | |
| (granted, it doesn't yet.) | |||
| masak | pmichaud: sounds like a reasonable idea. | ||
| svn.pugscode.org/pugs/t/spec/S29-str/unpack.t | |||
| note the [] around the unpack() calls. | |||
| that's beacause Test.pm has Array at line 160 :) | |||
| it's necessary because of that, I mean. | 22:57 | ||
| so I'm thinking I'll change Test.pm and remove the extra [] | |||
| ...in unpack.t. | |||
| pmichaud | works for me. | ||
| make it so. | |||
| masak makes it so | |||
| pmichaud | I have to run to the library and pay a colossal library fine and pick up more books. | 22:58 | |
| masak | :) | ||
| masak realizes he should run 'make spectest' before committing this | 22:59 | ||
| pmichaud | afk | ||
| masak | I also wanted to see how this impacted November -- we have an identical Test.pm file -- but it turned out that November doesn't currently build :/ | 23:00 | |
|
23:06
tetragon joined
|
|||
| masak | all tests successful. committing. | 23:23 | |
| dalek | r34904 | masak++ | trunk/languages/perl6: | 23:25 | |
| : [rakudo] in Tests.pm, made the smartmatch check for List, not Array | |||
| review: www.parrotvm.org/svn/parrot/revision?rev=34904 | |||
|
23:41
tetragon joined
|
|||