Camelia, the Perl 6 bug

IRC log for #parrot, 2009-01-03

Parrot | source cross referenced

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

All times shown according to UTC.

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

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

Parrot | source cross referenced