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