Parrot 2.0.0 "Inevitable" released! | parrot.org | Priorities: merge branches, remove deprecations | Roadmap: icanhaz.com/parrotroadmap | Latest modified TT's: icanhaz.com/parrotbugs
Set by moderator on 9 February 2010.
Austin Wagle, every possible variety of assignment has an "opcode". Each opcode has to be built especially. In your example, there are two complex operations going on at the same time: the concat op, and the indexed-assignment op. 00:03
Each of those has a bunch of special cases to deal with. In general, assembly type languages only permit one little bit of complexity per op. (Sometimes less.) 00:04
dalek rrot: r43976 | whiteknight++ | branches/op_pmcs (3 files):
add test files for Opcode and OpLib
00:06
Whiteknight x86 is sort of an exception
if you count its hundreds of addressing modes as operations
I've seen plenty of abuses of the lea op 00:07
darbelo x86 shouldn't be the dominating arch in PCs, much less used as an example ;)
wagle Austin: its fine, was just expecting that addressing mode
Whiteknight darbelo: shouldn't be, maybe. but it is
wagle RISC! 00:08
darbelo Preach it brother!
wagle .param string myglobal 00:10
.param pmc myvalue
push_eh aieeee
$P0 = find_name myglobal
doesnt generate exception.. is it because its looking for "myglobal" instead of the contents of myglobal?
darbelo Okay, first draft of NEWS for tomorrow's release is in. Please check for missing items and typos. 00:11
wagle (no matter what i set myglobal to, an exception isnt raised) 00:13
Tene wagle: no, there is no autoquoting in PIR 00:16
find_name(out PMC, in STR) 00:17
Find the name $2 in lexical, current, global, or builtin namespace
and store it in $1. If the name doesn’t exist either throws an
exception or sets $1 to PMCNULL, depending on current errors
settings. See errorson.
from var.pod
cotto_work Whiteknight, what's your plan for that new branch? 00:18
Tene wagle: as well, if it *were* looking for "myglobal", it wouldn't find it, unless you also created a lexical variable named "myglobal" in some outer scope.
cotto_work has it crossed your ugly threshold or is that code holding something up? 00:19
Tene wagle: names defined with .local aren't lexical vars, just automatically allocated aliases for registers.
Whiteknight cotto, want to reaname funcs mostly 00:20
pmc_new -> Parrot_pmc_new, etc
Tene wagle: does that answer your question? 00:21
wagle Tene: well, its not generating an exception if the var doesnt exist, just sets P0 to null 00:22
Tene wagle: look at what I quoted from docs/ops/var.pod
dalek rrot: r43977 | darbelo++ | trunk/NEWS:
First draft of 2.1.0 NEWS.
rrot: r43978 | whiteknight++ | branches/pmc_func_cleanup:
branch to cleanup functions in src/pmc.c
Tene wagle: "If the name doesn’t exist either throws an exception or sets $1 to PMCNULL, depending on current errors settings. See errorson." 00:23
wagle Tene: oh, i looked just at the highlighted stuff (ie, with my name in it)
Tene *nod*
wagle Tene: i'm not mucking with errorson
Tene The default errors setting is to not throw an exception for names that aren't found.
but to return PMCNULL instead.
So, it's behaving as specified. 00:24
wagle well, it WAS earlier, just stopped
Tene orly?
purl YA RLY.
Tene you must have been doing something other than find_name.
wagle .PARROT_ERRORS_GLOBALS_FLAG
Throw an exception if global doesn't exist. Default: on.
from errorson (I looked at it, decided to do exceptions instead) 00:26
Tene wagle: You're right. find_name doesn't ever look at the error flags, and doesn't throw an exception. 00:27
Austin wagle++
Tene That's probably a bug.
Austin Ooh. Another explorer!
Tene However, I don't seem to see PARROT_ERRORS_GLOBALS_FLAG actually used anywhere. 00:28
Austin wagle: Have you created an account on trac.parrot.org yet?
wagle huh.. maybe i was throwing an exception when i tried to use the result (and got confused about when the exception was thrown)
Tene Yes, that's likely. 00:29
wagle Austin: no.. maybe in a week or three
Austin Don't put it off that long! You've already got your first ticket ready to go.
wagle hahaha.. ok 00:30
Tene wagle: since you seem to be working with exceptions, I seem to have ended up the resident exceptions guy, so if you have any questions, don't hesitate to poke me directly.
Austin Tene: I have some exception questions... :) 00:33
Tene Austin: go ahead.
wagle found the source in ./src/global.c... 00:35
Austin How do I create a pir/nqp subclass of Exception PMC that can be thrown? How are type numbers allocated? How do I reproduce the "backtrace" opcode's output using an exception's backtrace attribute? When, exactly, does the "information about the throw location" get set up, and how can I force it? 00:36
wagle i'm not sure how to throw exceptions from down yonder 00:37
NotFound Austin: last time I checked there was a problem in the throw opcode, it checks that his argument is a Exception PMC, any other thing is not allowed. 00:39
Tene You don't subclass Exception. It's unsupported in similar ways to ExceptionHandler, Class, and a few other PMCs that can't yet be subclassed from PIR.
If it's important to you, I can try to work on it.
Austin Yeah, I saw it checking base type, but I figured that just meant the thing at the bottom of the vtable.
Okay 00:40
So the usage model is "create an Exception and throw it"
Tene There isn't any kind of interface for allocating type numbers. No reasonable process at all. Just add something to the list of definitions in Parrot.
The current vaguely-recommended model is that you put your high-level object int he 'payload' attribute of the Exception 00:41
Kinda.
Which sucks.
NotFound Austin: yes, and any other thing you may need to put in the exception must be in a payload object.
Austin (sucks) Yeah.
Whiteknight exceptions should be closer to subclasability after the Context PMC was created
I would like to see a test that proves that it's still not possible to subclass, and then figure out what's standing in the way, if anything 00:42
NotFound Whiteknight: the filter in throw must be relaxed before any test.
Whiteknight NotFound, where? 00:43
purl hmmm... NotFound, is there any reason to keep RT#50092 open?
Austin Okay. So I create an Exception, make up my own Type number, and stick details in Payload. 00:44
Tene Austin: the backtrace information comes from the resume continuation.
NotFound Whiteknight: core.ops:780
Austin When does the backtrace get set - at throw time, or new time, or can I do it meself?
NotFound And the same in 793 00:45
Tene NotFound: my parrot might not be up-to-date. You're talking about "Parrot_str_new(interp, "exception", 9))"?
NotFound: 'cos that line isn't relevant.
Whiteknight NotFound: that only checks base_type, which can still be Exception if it's a subclass
Tene Austin: the resume continuation gets set when you throw the exception.
Whiteknight somebody put together a test to prove it doesnt work
NotFound Tene: != enum_class_Exception)except->vtable->base_type != enum_class_Exception)
Tene updates parrot. 00:46
NotFound Urgh, bad paste
Tene Austin: explain "force it"?
Austin Tene: I've created an exception, and I want to specify the backtrace details. I guess that means I want to provide a 'resume continuation' ? 00:48
NotFound Whiteknight: mmmm... maybe, but in that case it has restrictions with multiple inheritance.
Whiteknight NotFound: whatever, so long as something works
Tene Austin: That's unsupported. It wouldn't be too hard to get the 'throw' opcode to allow already-set return continuations to pass through, though. 00:49
Austin: explain "specify the backtrace details". Are you hoping to shove some text in there? How are you hoping to specify that? 00:51
NotFound Isn't that what the two args throw does?
Austin Tene: No. I want to give it my own resume continuation.
I think.
IOW, if i say " if $something.is_wrong() { Exception.new("something is wrong").throw; } ", or even if I cache the exception creation, I want to be able to redirect the resume continuation away from the throw method and back to the place where it was .new'ed 00:53
Or at the least, back to the caller of throw 00:54
dalek rrot: r43979 | mikehh++ | trunk/compilers/pirc/src/pircompiler.c:
add ASSERT_ARGS
00:55
Tene Austin: so you'd want to pass the return continuation of the current invocation of your throw function, for example.
wagle =item C<PMC * Parrot_find_name_op(PARROT_INTERP, STRING *name, void *next)>
TT #1223 - THIS IS BROKEN - it doesn't walk up the scopes yet
...
so its broken, AND it doesnt throw the exception no matter what 00:56
Austin Tene: I think I'd want to attach it to the exception.
Tene Austin: Yes, you'd want to modify 'op throw' to check for an existing resume continuation.
wagle if the exception is turned on, as it is supposed to be, shitloads of stuff is going to break
Austin wagle: heh, heh, heh. Welcome to parrot. 00:57
wagle wants a cracker
with cheese 00:58
ok.. how is that handled? break it, and make people fix it?
Austin gives wagle Taylor Swift.
Tene I actually have no idea what the two-arg version of 'throw' is, but the second arg certainly is not a resume continuation.
00:59 abqar joined
Whiteknight Tene: that's a good point. I have no idea what throw_p_p does 00:59
Tene wagle: it will need ot happen in a branch, and someone will need to check with allison to see if there needs to be a deprecation cycle or not.
wagle Taylor Swift?
Whiteknight DEPRECATE it
Austin It looks like "throw with here's your next addr"
dalek tracwiki: v4 | plobsing++ | FreezeThawTasklist
tracwiki: Move pmc_freeze_with_pmcs branch tasks into done category 01:00
tracwiki: trac.parrot.org/parrot/wiki/FreezeT...ction=diff
Austin what does "expr NEXT()" return?
wagle: Cracker, with cheese, right?
Tene Whiteknight: it might not need a cycle, 'cos it would be making the behavior change to meet the current spec.
Austin: gets the address of the op that will execute next.
cotto_work Austin, it's the position of the next op.
see lib/Parrot/OpsFile.pm around line 103 01:01
Austin Yeah, so throw_p basically makes $2 = NEXT, which I assume is a crude resume continuation.
Or perhaps Parrot_ex_throw_from_op is going to fix it
NotFound I'm thinking that some of that stuff should me moved fro the ops to the excepcions.c file
Tene Austin: throw_p *also* creates a resume continuation and stores it in the 'resume' attribute of the exception. 01:02
Austin Tene: based on the same NEXT result.
Tene Right.
wagle waugh, i wanted to work on my compiler.. 01:03
shockwave Austin, are you a Parrot developer or user?
wagle ph33r mission creep
Austin Shockwave: I'm a particularly irritating user, I suspect.
cotto_work that about covers it
NotFound Tene: =item B<throw>(invar PMC, invar PMC) - Throw the exception in $1 with continuation from $2.
cotto_work we need more like him 01:04
Tene the only place the $2 of throw_p_p ends up used is in the end of Parrot_ex_throw_from_op:
wagle UTSL
Tene address = VTABLE_invoke(interp, handler, dest);
shockwave Not in my opinion. I got to the Intermediate code generation in my compiler, and your questions sometimes help me.
^ Austin.
Tene but I'm not sure if it even makes it to where that's returned
wagle the source does something for pp.. no idea what
Tene NotFound: I expect that throw_p_p is currently broken, then. It would be great to determine if there were tests for that. 01:05
NotFound Tene: I don't even know how to resume. 01:08
nopaste "tene" at 64.245.157.4 pasted "test demonstrating non-throwability of Exception subclasses" (14 lines) at nopaste.snit.ch/19629
Tene NotFound: $P0 = ex['resume'] \\n $P0() 01:09
Whiteknight NotFound++ 01:10
Austin TT#1448
Whiteknight if we get rid of that filter, should work
cotto_work Tene, t/pmc/exception.t and t/pmc/exceptionhandler.t definitely don't touch throw_p_p
NotFound Whiteknight: I think the base type is Object, or maybe PMC_proxy
Tene Austin: great, thank you. 01:11
Whiteknight somewhere we should be able to tell it's a subclass of Exception
Austin That's for "pass through resume c10n
NotFound Whiteknight: isa, or does
Austin Whiteknight: isa?
purl isa is, like, 'hashref[dbix::class::storage::dbi]' => definitely a bug on jnapiorkowski's part since DBIx::Class::Storage::DBI is not a Moose object and therefore there's no TypeConstraint to match this
Austin But I think does.
We're perilously close to acknowledging that Java had a good idea, with 'Throwable' 01:12
NotFound Austin: we're supposedly more dynamic than that.
Austin More dynamic than what? 01:13
NotFound Austin: than requiring a hard coded type.
Coke btw, throw "foo" is really "die "foo"" (one line throw an exception).
Austin The type in question (Throwable) is an interface (aka: role).
Presently, we require a PMC type. 01:14
NotFound Austin: but isa and does are overridable
dalek TT #1448 created by Austin_Hastings++: Modify `throw` opcode to pass through pre-configured resume continuation
Austin Sure.
I'm doing that wholesale. :)
wagle ok. i sent an email to the devel mailing list asking for how to proceed 01:17
Whiteknight wagle++
01:19 chromatic joined
NotFound A nice addition might be to set the object in the payload when throwing the "Not a throwable object" exception. 01:19
Tene I'm not really clear at all on VTABLE_{isa,does}, but lemme see what happens if I just try using them.
NotFound That way one can throw and catch anything, if wanted. 01:20
Tene NotFound: how is that different from putting it in ['payload'] yourself? 01:22
I'm sketchy about abusing automatic behavior like that.
01:23 kid51 joined
NotFound Tene: a lot less code. 01:23
Tene s/automatic behavior/an error reporting facility/
Austin Actually, 'thrower' is settable from pir, but not gettable. 01:24
NotFound I don't see what's abusive. Is using the payload as intended.
nopaste "kid51" at 70.85.31.226 pasted "codingstd error observed at r43936" (14 lines) at nopaste.snit.ch/19630
Austin NotFound: I think it may have been the "throw whatever you want" part that got to him.
payload oh i think using "payload" _is_ abusive ^^ 01:25
nopaste "tene" at 64.245.157.4 pasted "This seems to work for throwing subclasses of exception... testing it now." (13 lines) at nopaste.snit.ch/19631
wagle whats wrong with line 3? 01:26
.param string myglobal
$P0 = find_name myglobal
.return $P0
cotto_work Good work putting isa to work
Tene We've got a release tomorrow, yes? Should I hold this off until after the release? 01:27
cotto_work wagle, could you please nopaste in the future?
Tene, no harm in waiting
wagle 3 lines?
purl rumour has it 3 lines is ok
Tene Hmm. Looks like some test failures.
I'll also add a .handle_types method to ExceptionHandler. 01:28
wagle i figured it out anyway
dalek rrot: r43980 | mikehh++ | trunk/compilers/pirc/src/piremit.c:
add ASSERT_ARGS
NotFound wagle: .return($P0)
rrot: r43981 | mikehh++ | trunk/compilers/pirc/src/pirsymbol.c:
add ASSERT_ARGS
nopaste "kid51" at 70.85.31.226 pasted "Many codingstd errors in compilers/pirc/src/*.c" (14 lines) at nopaste.snit.ch/19632
wagle tried ()'s and it didnt work the first try.. then it worked.. dunno
NotFound Haven't we killed string_from_literal yet? 01:30
Tene I got a ton of dynpmc errors. Maybe I need to realclean or something.
NotFound: I got warnings with CONST_STRING, and say other uses of string_from_literal in src/ops/*.ops
NotFound: I saw no uses of CONST_STRING in src/ops/*.ops
NotFound Tene: that same op is using Parrot_str_new_constant 01:31
Tene What *should* I use there? I don't know the STRING infrastructure at all.
kid51 retests, to see if mikehh's commits solved that problem
Tene NotFound: ... thank you. Reading comprehension failure. ><
NotFound Tene: we need to some cleaning in the .ops files, then. 01:32
Or better, in the whole tree 01:33
dalek tracwiki: v28 | coke++ | BranchDescriptions
tracwiki: update from script
tracwiki: trac.parrot.org/parrot/wiki/BranchD...ction=diff
wagle where do you find the type names for the new op?
(documentation)
Tene wagle: explain "the type names for the new op"? 01:34
You're writing an additional op?
oh man, I need to figure out svn branches again. hrmph. 01:35
I think I'll just keep this in a private branch until after the release.
cotto_work wagle, the op named 'new' is documented in the same place as it's implemented, in src/ops/pmc.ops
Coke the pod is also extracted to docs/ops/pmc.pod 01:36
purl okay, Coke.
cotto_work the pod?
purl i guess the pod is very good if you knwo all about POE and want to figure out how to Apply it ... and very bad if you don't.
Coke also docs.parrot.org/parrot/latest/html/ops.html 01:37
wagle pdd17 is it
FixedPMCArray
the string 2nd arg 01:38
01:38 Themeruta joined
Tene Hmm. I actually get no test failures with this patch, and it's just adding additional behavior, not changing anything... anyone actually object if I commit it to trunk? 01:38
Austin wagle: The new op creates new PMCs. So any PMC is a type name. Look in $_PARROT/src/pmc at the *.pmc files, then guess how they are capitalized.
kid51 Tene ... it *is* very close to release time.
Austin Or look at the dictionary for PMC entries: trac.parrot.org/parrot/wiki/Parrot%20Dictionary 01:39
Tene wagle: or grep enum_class include/parrot/core_pmcs.h
kid51: that's why I'm asking. 01:40
kid51 I'm not the release manager, but if I were, I'd say no, regardless of its merits. 01:41
Tene nods.
kid51 Patch looks reasonable to me, but it's in such a fundamental source code file that I'd recommend trying it tomorrow night instead. 01:44
Tene treed_: I remember you complaining about throwing subclasses of Exception. I can't find any tickets about it on trac.
dalek rrot: r43982 | mikehh++ | trunk/compilers/pirc/src/pirregalloc.c:
add ASSERT_ARGS
wagle ok.. suppose I have a string with a name of a global in it.. I want to set it to a FixedPMCArray.. how do I do that? (not sure how to look for documentation on how to do that indirection)
kid51 mikehh++ Now down to 13 unused assert macros found in total 01:45
Tene $P0 = new 'FixedPMCArray' \\n set_hll_global myname, $P0
wagle Tene thanks 01:46
Tene Austin: looks like I'm going to be working on exceptions again soon, so if you have requests, please make them known. :)
mikehh I think I got 'em all now at r43983 01:54
cotto_work protip: having a 122GB file in your working dir slows down ack 01:55
treed_ Tene: Hm.
ISTR that it was one of those "Oh, yeah, everyone knows about that."
Austin cotto_work: VM image, or horrible mistake?
treed_ afk off and on though 01:56
cotto_work closer to' the latter 01:57
kid51 Coke: rm_cflags PASS on linux/i386: smolder.plusthree.com/app/projects/...ails/32214 02:00
dalek rrot: r43983 | mikehh++ | trunk/compilers/pirc/src/pirpcc.c:
add ASSERT_ARGS
bacek_at_work mikehh, can you also add ARGIN/ARGMOD decorators for args? 02:01
kid51 r43983: t/codingstd/c_arg_assert.t PASS. Thanks, mike 02:02
mikehh bacek_at_work: I will add them a bit later - if I try now I will probably do something v.stoopid - need a break - like some sleep 02:05
bacek_at_work mikehh, just got to the bed NAO! :) 02:06
cotto_work clock?
purl cotto_work: LAX: Mon 6:06pm PST / CHI: Mon 8:06pm CST / NYC: Mon 9:06pm EST / LON: Tue 2:06am GMT / BER: Tue 3:06am CET / IND: Tue 7:36am IST / TOK: Tue 11:06am JST / SYD: Tue 1:06pm EST /
mikehh anyway I will try in a few hours if somebody doesn't beat me to it 02:07
02:09 cognominal joined
cotto_work msg mikehh It looks like there are some short functions in some imcc code that'd be easy to document. 02:11
purl Message for mikehh stored.
dukeleto ello
kid51 r43984: make fulltest PASS linux/i386 02:13
Hit that release button!
Austin cotto_work: VM image, or horrible mistake? 02:15
ww
dalek rrot: r43984 | mikehh++ | trunk/t/codingstd/c_function_docs.t:
remove passing TODO tests from list
02:17
kudo/master: f483b59 | (Solomon Foster)++ | src/core/Any-str.pm:
Fix shortcomings in the previous trim-leading and trim-trailing implementations.
02:20
kudo/master: 4716fbc | (Solomon Foster)++ | build/Makefile.in:
Undo the leak of the alpha spectest hack into master.
Whiteknight kid51: ping 02:25
Coke CONDITIONED_LINE is deprecated, according to lib/Parrot/Configure/Compiler.pm - I don't see a ticket for it. 02:26
someone want to add a ticket and get it into deprecated.pod for the release tomorrow? (would be eligible in 2.4) 02:27
Whiteknight what is it?
purl it's it!
Coke makefile syntax. 02:28
Tene treed_: So you don't remember opening a ticket about it? I'm hoping to avoid duplicating a ticket.
Coke er, makefile.in syntax
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32215), fulltest) at r43984 - Ubuntu 9.10 amd64 (g++ with --optimize) 02:32
dalek rrot: r43985 | whiteknight++ | branches/vc9:
delete this old branch because it's well over a year old and nobody is working on it
02:33
wagle how do i pass a function (sub) as an argument in a call? 02:36
Tene wagle: the same way as anything else... 02:37
$P0 = <get a function> \\n foo($P0) 02:38
Austin wagle: get the sub into a register, then pass it
wagle barfs.. but still working on it
Austin $P0 = get_hll_global or $P0 = find_lex or whatever
Tene wow, t/pmc/role.t is... less than I had hoped.
nopaste "Austin" at 68.37.46.53 pasted "Passing a subref" (7 lines) at nopaste.snit.ch/19634 02:39
Austin wagle: See nopaste
Tene oh, class.t is more extensive.
dalek TT #1449 created by Austin_Hastings++: Add support for String PMC in NameSpace::get_pmc_keyed 02:40
wagle Austin: ok, thanks 02:41
Austin np
cotto good non-morning 02:43
wagle i gotta do table lookups for labels defined in the same file?
thats not even linktime
Tene wagle: that's not the only way to do it. 02:44
Austin Nope.
wagle: You still talking about passing a sub?
wagle Austin: yeah
Tene .const 'Sub' $P0 = "foo-subid"
wagle Tene: OOOOooooOOOooooh 02:45
Austin Then yeah, you have to either make them constants or look them up in the namespace. I'd go with looking them up in the namespace, since it lets you replace them.
wagle forgot about Sub
Tene you can also specify :subid('foo-subid') on a .sub declaration
it all depends on what you want to do, and looking something up in a namespace is the most-generic, and you didn't specify any further...
wagle sure... i dont know what to specify.. still learning 02:46
Tene nods.
wagle the sub name is lambda_0.. whats the most direct way of referring to it as a function value to be passed as an argument? putting quotes around the name makes me think of table lookups, not a link-time binding 02:49
Tene wagle: the {.const 'Sub' $P0 = 'lambda_0'} syntax uses the subid, which is a unique per-compilation-unit identifier. There isn't really a "link-time" with PIR, though, so not quiiiite sure what you're aiming for. 02:50
You won't be able to refer to a sub defined in a different file with that syntax, for example. 02:51
Austin Wagle, are you trying to do lisp?
Tene (well, maybe with .include, I guess, but don't use that)
Austin: He's working on a scheme, last I heard.
wagle Austin: Scheme compiler.. *<8-D
Austin Then you probably want to look at things related to lexical variables. 02:52
I think the "doing-lisp" guys always wind up with lexical subs.
That is, subs stored in lexical vars. 02:53
Tene wagle: any way of referring to something else is going to involve *a* table at some point. What properties of "table lookup" do you want to avoid, and what properties of "link-time" are you desiring?
wagle: {.const "Sub" ...} is resolved once, at compilation time, and won't change later, regardless of changes to namespaces, etc.
wagle Tene: ok.. i'm currently having trouble with that .const.. finding the docs now 02:54
Tene wagle: do you want your sub to be present in a namespace or not? 02:55
nopaste "tene" at 76.27.121.193 pasted "Here are two examples" (17 lines) at nopaste.snit.ch/19635 02:59
Tene wagle: ^
wagle just trying to get your way to work.. cant find the doc for .const
Tene wagle: grep '\\.const' docs/ 03:00
wagle oh.. i was trying to use the web
Tene docs/pdds/pdd19_pir.pod and docs/pmc/subs.pod
wagle silly me
Tene google doesn't like punctuation 03:01
wagle no, i have a bunch of urls bookmarked
Tene I have no idea what the web presence of parrot's docs are. I've never even tried to look. local documentation is so much more convenient for me.
it's also mentioned in docs/book/pir/ch03_basic_syntax.pod 03:02
wagle yeah.. i'm forcing myself to use the opportunity to have to skim through the docs and, in that way, get more familer 03:04
Tene nodnod
"teach a man to wear a fish costume" and all that.
Now, that might be not the solution you want at all. You still haven't explained that situation, or what you're wanting to do. :) 03:05
dalek tracwiki: v154 | Austin_Hastings++ | WikiStart 03:13
tracwiki: Added HLL Resources
tracwiki: trac.parrot.org/parrot/wiki/WikiSta...ction=diff
tracwiki: v1 | Austin_Hastings++ | HLL%20Resources
tracwiki: trac.parrot.org/parrot/wiki/HLL%20R...ction=diff
tracwiki: v155 | Austin_Hastings++ | WikiStart
tracwiki: Removed HLL-focused stuff to HLL page
tracwiki: trac.parrot.org/parrot/wiki/WikiSta...ction=diff
wagle myresult = lambda_0(myenv,myargs) 03:17
produces the error
error:imcc:syntax error, unexpected VAR, expecting '(' ('myresult')
wtf?
Austin sub names have to be quoted
myresult = 'lambda_0'(myenv, myargs)
wagle i havent had to do that before
Austin Then nopaste your code. 03:18
wagle checks that statement
Austin Did you declare myresult?
wagle yeah.. this syntax is wacky, sorry 03:19
Austin You're right. No quotes required.
dukeleto Austin: sub names required quotes a long time ago, but not now
nopaste "Austin" at 68.37.46.53 pasted "calling the sub" (10 lines) at nopaste.snit.ch/19636 03:20
Austin That's progress dukeleto!
dukeleto Austin: backward and downward, Parrot soldiers!
Austin Anybody here understand how the Configure.pl system works?
In particular, how I can control/configure the individual operations it does? 03:21
cotto dukeleto, I thought something closer to the opposite was true and that quoted names are preferable.
dukeleto Austin: i try to forget when I go to sleep each night, but a little more knowledge sticks around
Austin Cotto: I think it depends on whether you're mechanically generated them, or having to type all those **@#@#$@#%%#$%#% quotes by hand.
dukeleto cotto: I am not sure, actually.
wagle nopaste.snit.ch/19637 03:22
dukeleto Austin: be more specific
Austin dukeleto: I've got this file called VERSION in my tld. When I run Configure.pl, it apparently "checks" it for me, and complains. I want to know what the --stfu switch is for that test.
cotto For now both work.
Austin wagle: .return (myresult) 03:23
dukeleto wagle: you want ".return()"
wagle: parens matter :)
wagle someone got the line # wrong 03:24
dukeleto Austin: not quite sure.
Austin sings, "I ran down Division Street. Some of them boys followed me, down to the dry goods store..." 03:25
duke: Any pointers?
purl i guess Any pointers is there any book which gives a description??
wagle is "set $P1,2" the same as "$P1 = 2"? 03:28
woot.. i applied my first homebrew closure 03:32
cotto question: Why is imcc ugly? 03:33
Austin wagle: yes, and it's probably not what you want.
wagle: Be aware of the difference between "assign" and "bind". 03:34
For an integer value, you have to either 'box' it, or create a PMC that can accept it and then assign the integer into that pmc.
$P0 = box 2 ; or $P0 = new 'FixedStringArray' ; $P0 = 2 03:35
The first creates a numeric PMC with value=2, the second creates a FixedStringArray and uses the assign opcode to set its dimension.
So, actually, no. set $P1, 2 is not the same as $P1 = 2, since $P1 = 2 would be "assign". 03:36
I suck at explaining stuff. Sorry.
wagle .sub fts
.param pmc x
.return(x)
.end
Austin mkey 03:37
mkay
wagle Austin: setting the size of a fixed size array
Austin Has to be done once.
wagle ah 03:38
ok, whats the accepted way to cast 10 as a pmc? 03:42
Austin $P0 = box 10
cotto That'll respect any HLL maps you happen to have lying around too. 03:43
wagle box?
purl box is, like, gettinga bit cranky anyway, maybe this will make it work better
Austin puts it in a box. 03:44
cotto it puts a ISN value into a PMC 'box'
Austin You've heard of "autoboxing" ?
This is no-auto boxing.
cotto It's auto if an HLL does it.
wagle interesting 03:45
whats the diff in effect betweem box and my fts above? 03:46
Austin Nothing.
purl hmmm... nothing is shared - this is why things work
cotto let me check on that. I think there's a subtle difference. 03:47
shockwave Is it possible to use getattribute from outside of :method. I get an not found error.
Austin Parrot autoboxes constants across calls, so if you say " fts(10) " you'll get a pmc back.
shockwave: details?
purl details are important when programming or my program will not do what you thought you told it to
wagle i was doing fts(10)
shockwave Austin, pasting. 03:48
03:48 janus joined
nopaste Someone at 76.119.137.239 pasted "PS C:\\workspace\\platform\\ink\\B" (36 lines) at nopaste.snit.ch/19638 03:49
Tene shockwave: looks like you're trying to getattribute a string
not a PMC 03:50
look at the _s_ in getattribute_s-p_sc
that's _string-pmc_string-constant
shockwave Oh, right.
Let me try it out.
nopaste "Austin" at 68.37.46.53 pasted "Looks the same" (31 lines) at nopaste.snit.ch/19639 03:51
Austin wagle, see nopaste
Tene Yes, that's the same. 03:52
Austin Shockwave: Attributes are pmcs, always.
shockwave I'm using a string as the return value of getattribute.
Austin Do it as two steps.
shockwave .local string pkgName
Austin $P0 = getattribute object, 'attrname' ; $S0 = $P0 03:53
shockwave pkgName = getattribute $P1, 'package'
Get attribute returns a PMC.
cotto Austin, other than pcc and efficiency differences, I think those are equivalent.
shockwave ? 03:54
Austin Shockwave: Attributes are pmcs, always.
Do it as two steps.
$P0 = getattribute object, 'attrname' ; $S0 = $P0
(Alternatively, return a String pmc) 03:55
shockwave When I changed that variable to a pmc, something changed. I get a different type of error, which should be unrelated. 03:56
I think that's what I was looking for.
How can I compate an attribute of a class, which is a pmc, to a string param? This does't work: $I1 = pkgName == pkg 04:01
Tene use 'iseq' instead of == 04:02
nopaste "Austin" at 68.37.46.53 pasted "PMC vs string" (11 lines) at nopaste.snit.ch/19640
04:06 shamu joined
wagle how do you do this: 04:09
.param string mysubname
.local 'Sub' mycode = mysubname
chromatic You don't; that's not constant.
Tene fetch it from the namespace
wagle oops.. s/local/const/
Tene .local pmc mycode \\n mycode = get_hll_global ['whatever'], mysubname 04:10
shockwave It takes some time for the book to notice the paste: nopaste.snit.ch/19641
04:10 shamu joined
shockwave Thanks, Austin. 04:10
wagle doesnt feel efficient to me.. sigh 04:11
Tene wagle: what are you concerned about, exactly? what are you hoping you can do?
dalek kudo/master: 65e2d3d | (Solomon Foster)++ | src/core/Any-num.pm:
Tweak radians cases of to- and from-radians so that they properly return a Num instead of a Float.
04:12
Tene If you're wanting to look up a sub by name at runtime, you're going to have to look it up in some table somewhere, yes? how else are you hoping to find a sub by name dynamically at runtime?
I might be misunderstanding your intentions. 04:13
treed_ He probably means typing-wise inefficient.
Tene wagle: is that right? am I misunderstanding "feel efficient"? 04:15
treed: I have subclassable exceptions working fine locally. There's some concern about making a change like that the evening before the release, though, so I'll hold off until after the release tomorrow. 04:16
treed nods.
Tene treed: I'll also add class-based filters to ExceptionHandler
treed I still need to get the object model working, but it's nice to know something's been done on the subclass front.
Ooh!
I remember wanting that, too.
Tene treed: It's not actually much code... did you ever actually ask me to work on it? 04:17
treed Not you, no.
There were folks here who debugged it with me.
Tene Oh, that explains it.
purl Damn right it does.
treed Before saying, "Oh, yeah, that makes sense. No, that won't work."
I could probably dig up logs. 04:18
Tene eh, not really relevant.
s/relevant/important
treed I think at the time it was kind of a "Oh, boy. Another subclassing problem. *sigh*" 04:19
Tene depending on how I want to do it, it's either one simple change (repeated for push_p_p which is weird), or two. 04:20
nopaste "tene" at 76.27.121.193 pasted "Here's the patch, treed" (35 lines) at nopaste.snit.ch/19642
Tene VTABLE_isa or VTABLE_does
treed Huh.
I figured it'd be something like that.
wagle Tene having all this strings running around makes me nervous.. the sigh was to indicate that i expect i need to get used to it 04:22
treed How e lse would you represent it besides strings? 04:23
Tene wagle: but the code you pasted was trying to find a function by its name, given a string. That's what I thought you were trying to do.
treed afk 04:24
Austin Tene++ (in advance, for the subclassable exceptions) 04:25
wagle using the strings makes it seem like reflection 04:26
and that, at run-time, i'm doing all these lookups
you assure me that this isnt the case, so, well, umm 04:27
Tene wagle: What do you want to do *instead*?
wagle: if you're accepting a sub name at runtime, as indicate by ".param string subname", then there's no way to look it up before you get that name.
before the function is invoked.
wagle i tried to abstract the lookup 04:28
Tene wagle: can you please post some code showing what you're trying to do here?
wagle never mind the code i pasted.. i'm not using that
right now, i want to concentrate on getting the factorial function to just compute.. once i have that, i'll polish it 04:29
Tene If you want to have your reference to a sub resolved *statically* at *compile-time*, then you need a literal name literally in the program text.
wagle i'm hand writing the code i expect my compiler to generate 04:30
nopaste "tene" at 76.27.121.193 pasted "Like this, wagle" (17 lines) at nopaste.snit.ch/19643
Tene if you don't specify a :subid, then it defaults to the identifier after ".sub"
and that's exactly what PCT generates for you 04:31
wagle ok.. i see.. lemme do my "just get it to work, THEN polish" thing.. else, I'm just confusing myself and everyone else 04:32
Tene nods.
I'd like to see what you have once you have it working.
wagle: what's the scheme code that you're using for this example? 04:34
wagle: I'd like to show you the PIR that my scheme compiler generates for the code you're considering. 04:36
dalek rrot: r43986 | Util++ | trunk/PLATFORMS:
Updated PLATFORMS, adding a Darwin, and refreshing a 64-bit Linux.
05:01
wagle I have a specific way I'm trying to do it 05:02
Tene listens 05:03
wagle i had a whole course on building scheme compilers.. just reimplementing that
when i do, you will see what's in my head.. oh well 05:06
:slurpy doesnt bother to create the array with only 1 arg? 05:10
Tene It definitely does. 05:11
nopaste "tene" at 76.27.121.193 pasted "example" (9 lines) at nopaste.snit.ch/19644
wagle blinks and stares at the code some more
unpossible 05:14
Austin Nopaste.
purl nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others) or gist.github.com/ or paste or gtfo or tools/dev/nopaste.pl or trac.parrot.org/parrot/browser/tru...nopaste.pl
wagle oh, i got further than i expected 05:16
3628800 05:18
... is the fact(10) 05:21
ok.. i got rid of half the get_hll_global's, but the other half is necessary because the "symbols" dont exist (and arent bound) until run-time... the clever trick of lisp/scheme, is that the symbol is created by the reader, not the compiler, and so you have the O(1) access you want.. but here.. hmm 05:33
nopaste.snit.ch/19645 is where i am now in seeing if the pir I expect to generate will run (which it does) 05:41
main problem is that the symbols need to exist before the compiler runs 05:43
Tene, now that i'm done with this phase, i wouldnt mind seeing what yours generates.. 05:46
most of my code is library, not generated, by the way 05:48
the generated code is _main, lambda_0, and lambda_1 05:51
oh, and i didnt implement environments yet 05:52
how would you declare a global fixedpmcarray such that .const could find it at compile time? 05:59
Austin You don't.
wagle only sub's?
Austin There are some other constants, but aggregate constants are not supported AFAIK
wagle well, the aggregrate is constant, the contents of wouldnt be 06:00
i wonder if this is the problem solved by lexicals 06:01
Austin No. 06:03
Lexicals and globals are both transient storage.
wagle yeah.. someone mentioned that all the scheme implementers ended up there, but this isnt it
Austin That was me. But it's because you can redefine the functions. 06:04
wagle haha.. i could define symbols as getters and setters and use multiple dispatch to choose 06:06
everyone's on the east coast? 06:07
Austin Heavens no.
purl hell yeah!
Austin Bacek is in OZ, Kurahaupo is in NZ. 06:08
Moritz is in DE, I think.
wagle this channel went quiet about midnight on the east coast
Austin Yeah, Whiteknight's in pa.us, and I think Tene is in ma.us. 06:09
bacek_at_work Someone have to be at $dayjob :)
Austin :)
wagle i'm in portland oregon
Austin Really? You're right down the street from a bunch of people. 06:10
wagle yeah.. i talk to dukeleto in person a bit
Austin Cotto is in wa.us, I think dukeleto is or was in pdx.
Particle is out there somewhere, maybe also wa.us.
bacek_at_work www.ohloh.net/p/parrot 06:12
there is nice map in left bottom corner
cotto closer to Redmond, but within a reasonable from Seattle 06:14
Austin LOL!
That's horribly out of date.
The east coast contributors are Infinoid and dsugalski.
Test::More.pir doesn't support null. 06:18
bacek_at_work Austin, (null) ? 06:23
Austin bacek: Can't pass it to is, doesn't have a special check for it. 06:24
*is = is(_, _, String)
bacek_at_work ah, yeah... 06:28
apparently MMD can't multy-dispatch on Nulls 06:34
Austin I saw someting about that, but I don't believe it. 06:35
It fails on get_string at iseq.
I think it got dispatched, but didn't check in the PMC, PMC case for null.
Ima patch
bacek_at_work patches are welcome! :) 06:36
scratch it
commits are welcome!
Austin Moo! No commits. It's release day. 06:37
No xor op? 06:45
06:47 shockwave joined
Tene Austin: I'm currently in Utah, and planning to move to San Francisco soon. 06:50
Austin Tene: I'm sorry.
Tene np 06:51
wagle: you *can* declare a compile-time constant, but I'm not sure of the details. If you mark a sub as :immediate, it's run as soon as it's parsed, and its return value replaces it in the compile-time symbol table, or something like that. 06:52
chromatic That's right. 06:55
Austin chromatic: where are the test cases for Test::More? 07:01
chromatic t/library 07:04
07:08 cognominal joined 07:12 patspam joined 07:13 patspam joined
dukeleto Austin: if you need help with Parrot's Test::More, let me know 07:16
Austin I'm getting a bunch of "CONST_STRING split across lines" errors on all kinds of files, which aren't true.
dukeleto: For some reason I can't build at 43698. So patching is going to be tough. 07:17
*43986
07:19 uniejo joined
Austin Maybe it's a newline problem. 07:20
dos2unix to the rescue
dukeleto Austin: i am updating to see if it happens to me 07:26
Austin It was a dos2unix problem.
My svn client is on windows, so when the \\r\\n's show up, it breaks the linux build. 07:27
08:00 fperrad_ joined
cotto commits something 08:05
08:11 iblechbot joined 08:13 bacek joined
bacek o hai 08:13
davidfetter hai 08:14
dalek rrot: r43987 | cotto++ | trunk (2 files):
[docs] document some internal debugger functions (no functional changes)
08:18
cotto examples/c/nanoparrot.c is kinda neat. We should be pointing that out as a good starting place to get a grasp of how Parrot works on a VM level. 08:22
It's nice to have a complete VM in <350 loc. 08:27
Austin Sure, but how does it perform? 08:28
Because, I mean, there's still a couple of hours until the release, right? 08:29
cotto I'm done. 08:30
davidfetter w00t!
2.1.0?
purl 2.1.0 is not supported
cotto davidfetter, darbelo's cutting the release. I'm just saying that I'm done committing stuff for tonight. 08:31
davidfetter ah
davidfetter will not pester darbelo about pl/parrot until he's had some chance to recover from this 08:32
cotto I'm on next month
Austin So will 2.2 feature the nanoparrot replacing the current vm?
davidfetter heh
Austin (Surely, <loc implies <bugs, right?)
davidfetter
.oO(picoparrot, done in 0.3 loc)
08:33
cotto It's nice as a teaching or learning tool.
nanoparrot?
Austin 27 more days.
26, really. 08:34
See if you can get it out on Steak & BJ day.
dalek rrot: r43988 | bacek++ | trunk/src/gc/gc_inf.c:
Add headerizer decorators into GC INF.
rrot: r43989 | cotto++ | trunk (2 files):
[docs] make nanoparrot build and add some missing function docs

makefile target, so it won't mess with the release.
cotto Woohoo. bacek's living on the wild side too.
davidfetter steak & bj day?!? where do i sign up? 08:36
davidfetter <3 steaks
Austin davidfetter: Google is your friend.
cotto I also got to use the word "Parrotesque". It's been a good day. 08:38
davidfetter o/` today was a good day o/`
cotto night, meatbags 08:40
cotto can clearly see how much he needs to get to sleep
Austin night, bender
night, bender 08:41
ww
dalek rrot: r43990 | bacek++ | trunk/compilers/pirc/src/pirregalloc.c:
Headerizer happiness work
08:50
rrot: r43991 | bacek++ | trunk/compilers/pirc/src/pirsymbol.c:
Headerizer happiness work
rrot: r43992 | bacek++ | trunk/compilers/pirc/src/pirregalloc.c:
Headerizer happiness work
rrot: r43993 | bacek++ | trunk/compilers/pirc/src/main.c:
Headerizer happiness work
Austin Invalid type 33 in add_namespace() 09:17
What does *that* mean?
bacek make realclean 09:21
Some stale PMC/PBC left in your build tree
dalek kudo/master: c3aaa2e | moritz++ | t/spectest.data:
turn on two more passing tests
09:22
nopaste "Austin" at 68.37.46.53 pasted "Patch to add null checking to is(), and add is_null() test, to Test::More" (404 lines) at nopaste.snit.ch/19646 09:23
dalek rrot: r43994 | bacek++ | trunk/compilers/pirc/src/pircompunit.c:
Headerizer happiness work
09:24
Austin No commit - it's release day.
:)
rrot: r43995 | bacek++ | trunk/compilers/pirc/src/piremit.c:
Headerizer happiness work
rrot: r43996 | bacek++ | trunk/compilers/pirc/src/pirmacro.c:
Headerizer happiness work
bacek 404 lines - patch not found 09:26
dalek kudo/master: e3a4d9a | moritz++ | t/spectest.data:
Turn on 18 more passing test files

   ulimit -v 1048576
   perl tools/update_passing_test_data.pl
And then looking closer at lines that start with [SPA]
09:34
rrot: r43997 | bacek++ | trunk/compilers/pirc/src/pirregalloc.c:
Headerizer happiness work
09:40
Austin bacek: How did you run the patch? I used patch -p0 < foo.patch and it worked okay. 09:45
bacek Test::More" (404 lines) at nopaste.snit.ch/19646
:)
Austin ...? 09:46
purl quietly listens while the crickets chirp
bacek Austin, check number of lines 09:47
And classic HTTP response code
Austin Ahh... :)
bacek++ 09:48
bacek :) 09:49
dalek rrot: r43998 | bacek++ | trunk/compilers/pirc/src/pirmacro.c:
Add ASSERT_ARGS
09:56
rrot: r43999 | bacek++ | trunk/compilers/pirc/src/pirregalloc.c:
Add ASSERT_ARGS
rrot: r44000 | bacek++ | trunk/compilers/pirc/src/pirsymbol.c:
Add ASSERT_ARGS
kudo/master: 4730a80 | masak++ | src/builtins/Str.pir:
fixed tailcall to prefix:<?>
10:08
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32220), fulltest) at r44000 - Ubuntu 9.10 amd64 (gcc with --optimize) 10:16
10:20 purl joined 10:22 riffraff joined 10:25 payload joined
mikehh rakudo - All tests PASS - make test, make spectest_smolder #32221 - parrot at r44000 - Ubuntu 9.10 amd64 (gcc with --optimize) 10:27
10:28 payload joined 10:37 riffraff joined
bacek mikehh, I'm dcommiting a lot of changes that will fail codetest L) 10:38
:)
c_assert_args for example 10:39
c_arg_assert actually
Just add ASSERT_ARG if you have time 10:40
dalek rrot: r44001 | bacek++ | trunk/compilers/pirc/src (2 files):
Really use headerizer
10:45
rrot: r44002 | bacek++ | trunk/compilers/pirc/src (2 files):
Really use headerizer
rrot: r44003 | bacek++ | trunk/compilers/pirc/src (2 files):
Really use headerizer
rrot: r44004 | bacek++ | trunk/compilers/pirc/src (2 files):
PIRC: Really use headerizer
rrot: r44005 | bacek++ | trunk/compilers/pirc/src (2 files):
PIRC: Really use headerizer
rrot: r44006 | bacek++ | trunk/compilers/pirc/src (2 files):
PIRC: Really use headerizer
mikehh bacek: ok will have a look in a couple of hours - hopefully before darbelo++ does his bit 10:56
bacek mikehh, it's just major cleanup for PIRC. 10:57
Doesn't affect anything apart codetest
11:00 iblechbot joined
nopaste "Austin" at 68.37.46.53 pasted "Amended patch for Test::More.is_null, etc., with correct plan" (412 lines) at nopaste.snit.ch/19647 11:05
mikehh anyway got to go out for a bit - bbl 11:06
11:17 fperrad_ joined
dalek rrot: r44007 | bacek++ | trunk/compilers/pirc/src (2 files):
PIRC: Really use headerizer
11:19
rrot: r44008 | bacek++ | trunk/compilers/pirc/src (2 files):
PIRC: Really use headerizer
rrot: r44009 | bacek++ | trunk/compilers/pirc/src (2 files):
PIRC: Really use headerizer
rrot: r44010 | bacek++ | trunk/compilers/pirc/src (4 files):
PIRC: Really use headerizer
rrot: r44011 | bacek++ | trunk/compilers/pirc/src (2 files):
PIRC: Really use headerizer
rrot: r44012 | bacek++ | trunk/compilers/pirc/src (3 files):
PIRC: Really use headerizer
rrot: r44013 | jonathan++ | trunk/runtime/parrot/library/P6object.pir:
[p6object] Minor fix up for P6object with respect to changes in Rakudo.
Austin Invalid type 33 in add_namespace() 11:34
Patching and reinstalling parrot had no effect (other than potentially some karma tomorrow). 11:35
dalek kudo/master: 2b2da10 | jonathan++ | src/core/operators.pm:
Tweak a couple of signatures that should have Mu in.
kudo/master: 5aca279 | jonathan++ | build/PARROT_REVISION:
Bump PARROT_REVISION to get auto-threading fix.
kudo/master: 31260a4 | jonathan++ | t/spectest.data:
Turn S03-junctions/boolean-context.t back on again.
rrot: r44014 | bacek++ | trunk/compilers/pirc/src/piremit.c:
PIRC: Add ASSERT_ARG
12:08
rrot: r44015 | bacek++ | trunk/compilers/pirc/src/pirsymbol.c:
PIRC: Add ASSERT_ARGS
rrot: r44016 | bacek++ | trunk/compilers/pirc/src/pirregalloc.c:
PIRC: Add ASSERT_ARGS
rrot: r44017 | bacek++ | trunk/compilers/pirc/src/pirpcc.c:
PIRC: Add ASSERT_ARGS
rrot: r44018 | bacek++ | trunk/compilers/pirc/src/pirmacro.c:
PIRC: Really use headerizer
rrot: r44019 | bacek++ | trunk/compilers/pirc/src/pirmacro.c:
PIRC: Fix ASSERT_ARGS usage
12:17 nbrown joined 12:25 kid51 joined
he Hmm, ./src/pmc/lexinfo.pmc:151: failed assertion 'v_type == enum_hash_int' 12:26
Have core dump and parrot compiled with -g. 12:28
This was during execution of ./parrot runtime/parrot/library/PGE/Perl6Grammar.pir --output=compilers/pge/PGE/builtins_gen.pir compilers/pge/PGE/builtins.pg
12:36 fperrad_ joined
nopaste "shockwave" at 76.119.137.239 pasted ".namespace ['TestXXX' ; 'A'] ." (8 lines) at nopaste.snit.ch/19649 12:43
shockwave I'm trying to set an attribute of a class: nopaste.snit.ch/19649 12:44
dalek kudo/master: 0afe11b | moritz++ | t/spectest.data:
list-quote-junction.t now passes again
shockwave I get this error:
set_attr_str() not implemented in class 'Class'
current instr.: 'ink;TestXXX;Test;init' pc 12 (TestXXX.pir:15)
NotFound shockwave: addattribute 12:45
purl i heard addattribute was done one the class
NotFound Ops
Austin Right, the old "class vs object" confusion. 12:46
It happened to me, too.
NotFound shockwave: you don't need to setattribute in the class object.
addattribute is enough
Austin Shockwave: You are confusing the class, which can "add" an attribute, with an object OF that class, which will later be able to "set" the attribute.
shockwave I forot a line there.
Austin You add attributes while configuring the class, then you create a new object of that class, then you set the attribute on the object. 12:47
shockwave oh
Got it.
Austin $P0 = newclass ... ; addattribute $P0, 'foo'; $P1 = new $P0 ; setattribute $P1, 'foo', <some value>
shockwave I actually think I ran into this issue about 5 years ago, one time I took a quick look at Parrot for curiosity purposes. 12:49
Thanks
Or maybe 3 years ago. 12:50
Austin But definitely a prime number.
shockwave lol 12:51
12:53 fperrad joined 13:03 bluescreen joined
dalek kudo/master: a6e4c1f | jonathan++ | src/ (3 files):
Get prefix:<|> working in argument lists. All of foo(|@a), foo(|%h) and foo($c) work - the last of those never worked properly in alpha (it now passes along both positional and named parts of the capture).
13:07
13:26 bluescreen joined 13:27 he_ joined
dalek rrot: r44020 | mikehh++ | trunk/CREDITS:
modify entry in CREDITS
13:46
nopaste "he" at 158.38.152.119 pasted "stack backtrace of core'd parrot rev 44006, during the build" (94 lines) at nopaste.snit.ch/19651 13:49
13:51 payload joined 13:54 whiteknight joined
dalek rrot: r44021 | whiteknight++ | branches/tt_1449:
Creating branch to explore TT #1449
14:03
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32225), fulltest) at r44020 - Ubuntu 9.10 amd64 (g++ with --optimize) 14:04
dalek rrot: r44022 | whiteknight++ | trunk/DEPRECATED.pod:
Add experimental note about GC_SYS_NAME
14:20
TT #1450 created by whiteknight++: Improve handling of experimental features 14:30
14:31 whiteknight_ joined
dalek rrot: r44023 | whiteknight++ | branches/tt_1449/src/pmc/namespace.pmc:
initial fix for TT #1449. Left in some C++ comments as flags to keep track of changes
14:36
whiteknight Austin: ping 14:39
Austin Whiteknight: pong?
whiteknight Austin: created the tt_1449 branch to tackle your issue, have a potential fix committed
care to test?
Austin Which one is that?
whiteknight String PMC as a key in Namespace PMC
Austin Ah. Got it. 14:40
whiteknight although I've already got a comment on the ticket about a better fix than the one I provided
dalek kudo/master: fd288ff | pmichaud++ | src/builtins/Str.pir:
Internal call in Str.pir to prefix:<?> should have &-prefix.
14:41
Austin Seems pretty simple to test. Are you going to follow up NotFound's suggestion?
For myself, I don't see a huge amount of value in the keyed-array access mode. I just don't see when I'd use that. 14:42
But I'll see about getting you some test code.
whiteknight Yeah, I'm going to see about planning out the more comlicated behaviors before committing more fixes 14:44
Austin Aww, son of a ... 14:47
14:47 fperrad_ joined
Austin Okay, this particular piece of perl6 syntax is going to be the source of a fair number of bugs, I'll bet... 14:48
I just found out the problem I was having with my function: 5 method declare_class($class, $parent?) {...} 0
It's the old "you're missing a character you can barely see." problem. It should have been: 5 method declare_class($class, :$parent?) {...} 0 14:49
moritz if you use a named argument, the ? is optional 14:50
Austin In nqp, or P6 ?
moritz which makes the two cases a bit more visually distinct
in Perl 6
no idea bout nqp
Austin moritz: Apparently, nqp makes it optional regardless of the '?'. 14:56
And makes it required with ! 14:57
I have to say, though, that the : is still pretty hard to see.
Oh frabjous day - more snow. 14:59
NotFound wonders if people from countries with lots of snow tends to make whitespace significant in his designs. 15:01
dalek kudo/master: 626ff56 | pmichaud++ | src/Perl6/Grammar.pm:
Add a more useful nyi error message for supersede.
15:04
Coke Is there still a question about how to declare a fixedpmcarray as a const? 15:06
(ah, no, tene covered it, nevermind.)
Coke figures out why bacek had all those individual commits. :| 15:07
wagle why does this capture calls with 0 args? 15:11
:multi()
why does this capture calls with 1 args (i mean)
Coke it could still be the best match.
without seeing all your other multis, hard to say.
wagle nopaste
Coke nopaste.snit.ch
wagle but thats not a match.. 8) 15:12
Coke src/mmd.c might explain why parrot disagrees with you.
dalek p-rx: 5c81874 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION.
15:13
p-rx: 7db921a | pmichaud++ | (2 files):
Add simple form of \\cnnn processing.
p-rx: 9bf03df | pmichaud++ | (2 files):
Add \\c[nn,nn,nn] form of character specification.
wagle nopaste.snit.ch/19653
both times call getter
Coke it's not P 15:14
it's _ or PMC
try that.
15:14 whiteknight joined
wagle oh ok (bad docs! bad! no cookie for you!) 15:15
moritz wagle: feel free to submit doc patches - those usually get applied very quick 15:16
Coke +1.
purl 1
Coke purl, idiot says what?
purl no idea, coke
Coke looks like docs/book/pir/ch06_subroutines.pod is the badness. yes? 15:17
wagle still a bug that a 0-arity sub gets passed 1 arg? 15:18
15:18 bubaflub joined
wagle without complaining? 15:18
Coke 0-arity subs are special.
they don't complain.
I don't think this is /desired/, necessarily, but it would break a lot of :main's 15:19
I think that's the line I was given when i complained about it. =-)
wagle its :main that is special, not 0-arity
oh well 15:20
Coke that /should/ be special, yes.
ISTR when I tried to patch IMCC to make it squawk, it was hard. but I'm not a c programmer, so..
Coke tries to find the ticket...
TT #1033 15:21
Please add your vote to how that should work there.
wagle url? 15:22
15:22 plobsing joined
Coke trac? 15:24
purl trac is a web-based software project management and bug/issue tracking system emphasizing ease of use and low ceremony. It provides an interface to the Subversion revision control systems, integrated Wiki and convenient report facilities. projects.edgewall.com/trac/ or Python, SQLite and ClearSilver or killing killtrac or a bug-tracking tool or at trac.parrot.org/parrot/ or slow or REALLY slow
Coke ugh.
trac.parrot.org/parrot/ticket/1033
parrot trac?
purl rumour has it parrot trac is trac.parrot.org/parrot/
dalek p-rx: b72372c | pmichaud++ | (2 files):
Add \\c[UNICODE CHAR NAME] literals.
wagle trac.parrot.org/parrot/ticket/1033 15:25
15:25 Andy joined
wagle (ie, i found it.. too late) 15:25
15:33 bubaflub joined
dalek p-rx: 61e9bd4 | pmichaud++ | src/Regex/P6Regex/ (2 files):
Add \\c[...] literals to regexes.
15:35
15:37 bubaflub joined
wagle comment added to 1033 15:39
Coke danke.
wagle is there a reason for an assembly language to not be pedantic about the 3 args to a :main?
15:40 lucian joined
wagle in theory, programs write the asm, not humans.. (yes, I know about practice) 15:40
15:40 theory joined
Coke env comes in through a PMC, not parameters. 15:40
wagle ok 15:41
s/3/2/g
Coke and if we enforced a signature, it'd just be a single .param pmc argv :slurpy
NotFound :optional
purl :optional is probably a flag to an argument
Coke NotFound: I suppose, but there's not much harm in passing in a 0-length array.
wagle i envisions a :sloppy tag in there somewhere.. 8) 15:42
Coke wagle: you might want to clarify in your comment that when you fixed the bug in your setter that that went away.
(goodness knows what :multi(P) was being parsed as. a single pmc parameter of class 'P', probably.
NotFound A good rule to evaluate if a compiler is really fast: compile something on a phone X-) 15:44
wagle Coke: done, i think 15:49
PPPS added. sigh 15:52
wagle forgot his ran out of coffee yesterday, and hasn't gone out for his morning coffee yet 15:53
15:56 Psyche^ joined
dalek rrot: r44024 | pmichaud++ | failed to fetch changeset:
Update nqp-rx sources with \\c[...] capabilities in strings/regexes.
15:58
kudo/master: 2795c05 | jonathan++ | t/spectest.data:
Turn S02-builtin_data_types/capture.t back on.
15:59 hudnix joined
bubaflub i'm using git svn and on trunk (after a `make realclean`) i'm seeing a few files that aren't in the repo / aren't cleaned up: 16:03
pmichaud very possible
if you let us know or submit a patch, I'm sure it'll get fixed :)
bubaflub pmichaud: i can submit a patch, just want to make sure before i set `make realclean` to nuke a vital file 16:04
gist.github.com/305618
whiteknight wagle++ 16:07
stick it to the man
Coke bubaflub: to be sure, remove them by hand, re-config, make, realclean, and see if they are still there. 16:09
(they might be leftovers that used to be generated but aren't anymore, therefore no need to clean them.) 16:10
pmichaud I just looked at it locally -- "make realclean" isn't removing them from my build tree.
(at least not the json ones)
Coke right. but that might be on purpose.
without looking at the individual files that we're talking about.
bubaflub Coke: will do. i'll post my results here. 16:16
Coke: after manually removing, `make realclean`, a fresh build, and another `make realclean` those files i listed in the gist are still there. that would imply that they are generated files, yes? 16:21
dalek p-rx: 42d216f | pmichaud++ | src/stage0/ (3 files):
Update bootstrap files.
16:23
Coke bubaflub: ayup 16:25
it's easy enough to fix; gimme a sec.
bubaflub okey dokey
Coke data_json fixed, commit soon as I test. 16:30
the opengl ones I think require a small amount of config code.
bubaflub Coke++
Coke that's one. 16:36
nopaste "coke" at 65.91.151.194 pasted "bubaflub, try this patch: you'll need to reconfig and realclean." (14 lines) at nopaste.snit.ch/19654 16:40
dalek p-rx: 4fc27f3 | pmichaud++ | src/HLL/Actions.pm:
Unrecognized charname should .panic instead of pir::die.
p-rx: bbfd1a7 | pmichaud++ | src/stage0/ (3 files):
Update bootstrap with improved panic message for charnames.
Coke I thought that configure.pl had a way to track what files were generated so you could just say "delete all of them", but I don't see that, looking at the code.
so I just added those 2 gen'd files to the list of gen'd library files. 16:41
16:42 mikehh joined
Coke whiteknight: two different mailing lists. 16:42
one is parrot-dev, the other is parrot-tickets
bubaflub Coke: that takes care of the OpenGL generated files.
Coke bubaflub: ok.
dalek kudo/master: 13ccd20 | jonathan++ | src/b (2 files):
Implement captures in signatures.
16:44
Coke whiteknight: nevermind, kept the thread in the ticket. 16:46
dalek rrot: r44025 | whiteknight++ | branches/tt_1449/src/pmc/namespace.pmc:
Add use of array types to key NameSpace, on suggestion from NotFound++
16:47
16:47 iblechbot joined
rrot: r44026 | coke++ | trunk (2 files):
cleanup compilers/data_json leftovers; bubaflub++
rrot: r44027 | pmichaud++ | failed to fetch changeset:
[nqp]: Update source files with improved charname error message.
rrot: r44028 | whiteknight++ | branches/tt_1449/src/pmc/namespace.pmc:
[tt_1449] some error handling, need to check what Parrot_get_namespace_keyed_str returns in these situations
rrot: r44029 | coke++ | trunk/config/gen/makefiles/root.in:
Make sure these 2 opengl files are removed on realclean. bubaflub++
rrot: r44030 | whiteknight++ | branches/pmc_func_cleanup (4 files):
rename PMC_is_null to Parrot_pmc_is_null
whiteknight my regex foo is weak 16:50
in ack, how do I match "foo" but not "_foo"? I need a negative look-behind assertion, right? 16:51
Andy that's what I'd do
Coke pmichaud: is darbelo ok with you changing nqp-rx moments before release?
Andy or, ack foo | ack -v _foo
pmichaud Coke: they're very minor changes, and I'm testing heavily. 16:52
whiteknight Andy: and what's the syntax for that?
purl the syntax for that is weird
pmichaud (and I'm done with them for today)
darbelo Coke: I can live with it.
Andy whiteknight: It's whatever the syntax is.
whiteknight I don't have my trusty camel book here with me
Andy it's just regex.
Coke ok. just risky since we have no nqp-rx tests internal to parrot, yes?
negative lookbehind?
purl rumour has it negative lookbehind is new in perl 5.005
Andy whenever I'm in your situation, I just ack foo | ack -v _foo
Coke whiteknight: "perldoc perlre"
Andy and avoid looking it up. :-)
pmichaud whiteknight: I think it's (?<!_) 16:53
whiteknight meh, I'll just "make" and let the compiler find the errors for me
pmichaud so, (?<!_)foo
Coke (though in perlre it's "look-behind" with a dash.
pmichaud Coke: (risky) yes, I recognize the slight risk -- as I said, I'm testing pretty heavily. 16:54
Coke: and it's also a huge benefit to rakudo's release if these changes make it in before parrot's release.
whiteknight might be worthwhile to setup a Parrot make target to checkout a copy of NQP-RX's test suite and run it 16:55
pmichaud well, I already test that nqp-rx passes its own test suite before checking updates into parrot :) 16:56
dalek nxed: r404 | julian.notfound++ | trunk/examples/Xlib.winxed:
new Xlib example using NCI directly instead of the parrot example module
16:57
Coke pmichaud: ok. there was no public exposure on the testing or anything, so you can see why i'd ask. =-) 16:58
pmichaud Coke: yes, absolutely. 16:59
purl Quite so.
Coke I'll be more concerned when I get around to writing runtime/library in nqp-rx.
=-)
pmichaud lunch break! 17:00
dalek kudo/master: 79e7b62 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to get latest \\c[...] fixes.
17:03
kudo/master: fdcde82 | pmichaud++ | (3 files):
Add <isLu> and other <isProp> subrules.
kudo/master: cdf816d | pmichaud++ | src/b (2 files):
Merge branch 'master' of git@github.com:rakudo/rakudo
kudo/master: 6ef9f8e | jonathan++ | t/spectest.data:
S12-class/basic.t should not be in the regressed files list - we run it.
kudo/master: b73e000 | pmichaud++ | t/spectest.data:
Merge branch 'master' of git@github.com:rakudo/rakudo
darbelo Coke: The release manager guide claims I need to whine at someone to grant me 'editor' privileges. You're it ;) 17:04
Same with adding ssh keys for ftp-osl.osuosl.org 17:05
dalek rrot: r44031 | whiteknight++ | branches/pmc_func_cleanup (83 files):
start rename of pmc_new to Parrot_pmc_new
Coke darbelo: read further; do you need any other kind of privs? 17:08
(I see no "editor" privs granted on the admin screen.)
lots of developer...
also, your trac id is... ? 17:09
darbelo is darbelo
But I think it's meant for parrot.org, not Trac.
Coke oh!
that would have been nice to know. =-) 17:10
you are (no longer) an admin on trac. =-)
darbelo Awwww.
Coke darbelo: ... did you check to see if you were an editor first before you pinged me? 17:12
(you are: editor, member, poster) but not (admin, director)
i agree with pmichaud. lunch time. 17:15
17:17 pjcj joined
darbelo Okay. Release tarbal, for now, at web.fi.uba.ar/~darbelo/parrot-2.1.0.tar.gz please test. 17:20
17:20 mikehh joined 17:27 davidfetter joined
Austin Whiteknight: If you want foo at start of word, try ack "\\bfoo". If you want foo anywhere but not after _, try "[^_]foo". If you're scripting it, then you need to dig out the full negative-lookback voodoo... 17:27
Coke darbelo: doing a fulltest now on a vanilla platform. 17:31
darbelo Coke++
I'm releasing from non-vanilla, so let me know how it goes. 17:32
Coke SFSG 17:34
darbelo: looks mostly good on feather, though I appear to be hung on t/distro/file_metadata.t 17:37
(it's the old svk bug.)
darbelo Oh.
dalek kudo/master: ed95e25 | jonathan++ | t/spectest.data:
Add S06-signature/unpack-array.t to spectest.data.
17:38
kudo/master: f5d9b53 | jonathan++ | (2 files):
Add a first cut implementation of infix:<xx> so we can pass all of S03-operators/repeat.t again.
darbelo ISTR that killing the svk process unhung the test.
Also, why are we running metadata tests out of a tarball? 17:40
Coke the problem is that it keeps running the svk test over and over and over. =-)
presumably once per sub-test.
darbelo Ugh.
Coke creates an infinite kill-svk loop. 17:41
f it. 17:42
so, mostly good except for that.
darbelo Good enough for me. 17:43
mikehh with PLATFORMS should we have the latest dates that the various test were run?
17:43 cosimo joined
Coke darbelo: TT #1451 17:44
ah. it's chunked, so you get N tests * M chunks per test. 17:45
Coke has a "didn't I /write/ that code?" moment.
dukeleto 'ello 17:46
dukeleto tests the release tarball
darbelo 'i
mikehh hi
All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32229), fulltest) at r44031 - Ubuntu 9.10 i386 (g++ with --optimize) 17:47
Coke docs.parrot.org/parrot/2.1.0/html/ exists, based on that tarball. 17:48
I'll link to it from latest when you say boo.
darbelo fulltest passes here. 17:51
Release tagged and bagged.
dalek TT #1451 created by coke++: t/distro/file_metadata.t should not be run from distro tarball. 17:53
darbelo Okay now somebody with ssh access to ftp-osl.osuosl.org needs to execute step 8 of the release manager guide.
Coke ok. latest docs now point to 2.1.0 - might take a day for the cache to switch over. 17:54
darbelo: good luck finding that person. =-)
dalek rrot: r44032 | darbelo++ | trunk (7 files):
Bump version numbers for the release.
17:55
Coke darbelo++
rrot: r44033 | darbelo++ | tags/RELEASE_2_1_0:
Tag the 2.1.0 release.
bubaflub darbelo++ 17:56
dukeleto darbelo++
mikehh darbelo++
dukeleto darbelo: i may have access to ftp-osl. I think anybody who has done a release before can do that. 17:57
Coke dukeleto: not true. most release managers just punt on that step.
(not even the board all has access. =-)
darbelo As I'm doing now ;)
dukeleto Coke: i gave allison an ssh key, i think it was for that 17:58
darbelo: is there any different in web.fi.uba.ar/~darbelo/parrot-2.1.0.tar.gz and what is tagged as 2.1.0 in svn?
s/different/difference/
mikehh anyway heading back to amd64 - bbiab 17:59
darbelo There shouldn't be :)
Coke I don't think nqp is float only.
I think it defaults to float.
you want an int back, you can cast it.
dukeleto darbelo: ok. i have a "make fulltest" still running from your initial test tarball, so I just wanted to know
whiteknight renaming all these functions is making me so happy 18:00
Coke whiteknight: not to rain on your parade (because it feels like that's all I do when I talk to you, sorry. :( ), but is the rename covered by an existing DEP notice?
plobsing: ping. 18:01
plobsing Coke: pong
Coke you have a commit bit now, right?
plobsing yes.
Coke reassigned your old patch from 1329 to you. 18:02
my problem with it is that it carps on code like that mentioned in my comment from 3 months.
so I would make sure you address that before applying the change to the indent checker. 18:03
I for one would be happy with an indent check that was smart enough to allow the for() loop in the comment, PDD be damned.
(I'll even update the PDD if you like. =-)
plobsing Coke: Someone already went through and fixed the legit errors. I've been trying off and on to get it to behave sanely 18:04
whiteknight Coke: yes. All non-standard-named functions have been covered by the notice for months
Coke: "C API coding standards cleanup [eligible in 1.1]", TT #443
darbelo takes a lunch break. 18:05
whiteknight darbelo: ditto
Coke whiteknight++ #thanks.
plobsing I don't know how to get it to do so. I think at this point I am willing to admit defeat
Coke plobsing: you could have it ignore things inside ()'s, I suppose. 18:06
might be overly lenient.
plobsing Coke: it's not just that. it chokes plenty of places it shouldn't and probably will until it is able to parse C 18:07
which, as it turns out, is actually pretty hard
(for me at least) 18:08
Coke plobsing: we could always punt and go for a literal 4-space rule. 18:09
I would rather not, but we already cater to codingstandards over sanity in many locations.
18:10 mikehh joined
plobsing Coke: I just wontfix'ed it. 18:11
dalek rrot: r44034 | whiteknight++ | branches/pmc_func_cleanup (37 files):
rename the rest of the functions in pmc.c, start updating the rest of the codebase but not complete yet
18:12
dukeleto who was working on parrot on the iphone? 18:13
dalek kapo: 59db593 | austin++ | (17 files):
Centralized a bunch of PMC methods in COMMON.

Discovered bug probably at bottom of funky behavior of Testcase, DQ. Added some bootstrap tests for P6. Added NameSpace to _base config. Renamed VERSION to VERSION.txt to avoid Configure.pl conflict. Signed-off-by: Austin Hastings <Austin_Hastings@Yahoo.com>
18:17
Coke dukeleto: iphone - i wasn't aware anyone was. 18:19
nopaste "shockwave" at 76.119.137.239 pasted "How to use 'isa' opcode?" (26 lines) at nopaste.snit.ch/19656
shockwave I'm trying to use the 'isa' keyword to determine the inheritance of an object. 18:20
But the test is hitting the error message.
Oh, waith. 18:21
NotFound shockwave: you can't build keys that way, that syntax is only for constants. 18:22
shockwave NotFound, I didn't get an error.
I guess this would be related to my other question.
NotFound shockwave: imcc diagnostics are not always good. 18:23
shockwave How do I subclass from a class in a certain namespace: $P0 = subclass 'Hash', ['{{PACKAGE}}' ; '{{class}}']
Those that apply there as well?
plobsing NotFound: this line seems to be working for me 18:24
$S1 = sig_table[$S0; field_name]
are hash keys magic in imcc?
NotFound plobsing: maybe I'm outdated with that. 18:25
pmichaud registers have been in keys for a long time... at least since 2004 18:26
unless they got taken out at some point
shockwave This doesn't work: $P0 = subclass ['TestXXX' ; 'A'], ['{{PACKAGE}}' ; \t'{{class}}']
dalek TT #1329 closed by plobsing++: [PATCH] extend scope of t/codingstd/c_indent.t
shockwave I guess for adding to non built-in class, one has to use a different method. 18:27
pmichaud subclass works for non-builtins
NotFound shockwave: get the class object from the key, and the use it for subclassing. 18:28
shockwave Yeah. I was trying the other way first in case I could evade having to create an instance just for subclassing. 18:29
Hopefully is lightweight.
NotFound shockwave: get_class does not create an instance 18:31
Coke (not of the original class, anyway. it does instantitate a Class object, IIRC)
18:31 theory joined, shamu left
shockwave In the docs, under Inheritance: docs.parrot.org/parrot/latest/html/...s.pod.html 18:32
I has this: $P3 = subclass $P2, 'Bar'
Isn't $P2 an instance acquired using 'new' opcode? Whas is get_class()? 18:33
18:33 chromatic joined
NotFound shockwave: get_class gives you the class object give his name or key 18:33
shockwave NotFound: using 'new' ? 18:34
NotFound shockwave: using get_class
dalek kudo/master: 5245dca | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to Parrot 2.1.0. PARROT_REVISION frozen until
18:36
NotFound $P0 = get_class ['{{PACKAGE}}' ; '{{class}}']
shockwave I'm giving it a try. Editing some autogenerated code. 18:38
NotFound. Thanks, it worked! :) 18:40
Coke if I didn't dislike pir so much at this point, I would consider trying to update the book. =-) 18:42
dukeleto Coke: do you dislike PIR or IMCC or both? 18:43
Coke pir. I have no specific beef with IMCC - it's as impervious to me as PIRC is. 18:44
darbelo comes back. 18:45
Coke I mean, it beats PASM, that's for sure. =-)
dukeleto Coke: i find PIR quite agreeable
Coke depends on what you're doing. if you're writing a compiler, I vote for nqp-rx. 18:46
dukeleto other than svk tests, everything passes on darwin-ppc for the 2.1.0 tarball
Coke (why are we even testing for svk anymore? the one user we had (chromatic) now uses git-svn.)
dukeleto can we delete svk tests?
do they do anything other than waste peoples time? 18:47
particle svk is no longer maintained
we should drop it asap
dukeleto Coke: i totally agree. but some people seem to think PIR needs to be replaced
whiteknight thinks that
purl thinks that is a good enough reason
whiteknight PIR is lousy in all regards
dukeleto particle: that is all I need to hear. can it just be deleted or does any dep cycle come into effect 18:48
whiteknight: I know, you were the "some people" i was thinking of
particle dukeleto: it's not part of our api
svk can be dropped forthwith
dukeleto particle: good. I just like to ask and be sure.
particle: svk is actually in a few parts of parrot. the tests but also some of the scripts in tools/dev 18:49
PerlJam whiteknight: PIR is fine for human understanding :)
darbelo Okay, as soon as an authorized party uploads the tarball I'll start with the announcements.
dukeleto particle: you are saying that all svk-related tests can be removed?
whiteknight dukeleto: there's a reason why most projects are written in NQP now. And there's a reason why IMCC is a disgusting mess
dukeleto whiteknight: just to be sure, I think IMCC needs to be replaced, but I don't think PIR itself is so evil 18:50
whiteknight PerlJam: it is "fine" for humans, but it's not great. It's also not great in terms of parsablity
cotto_work darbelo, I can do that. Where's the tarball?
darbelo web.fi.uba.ar/~darbelo/parrot-2.1.0.tar.gz 18:51
whiteknight dukeleto: It's not the root of all evil, but it grew in a very organic and disorganized fashion, subscribed to no particular design methodology, and doesn't excel in any area
particle dukeleto: i suggest you create a branch for svk removal, send a list mail giving 3 days for comment on why it shouldn't be ripped out, start working, get warnocked, and rip it out
dukeleto whiteknight: i read your blog posts on it and agree with much of what you said, but I think PIR can be improved/fixed
darbelo whiteknight: You can apply that description to about a third of the codebase.
dukeleto particle: ok
Coke dukeleto: I don't think it needs to be /replaced/ no. It's fine for machines to target, or for smaller stuff. (i'd never recommend anyone use PASM for writing, just reading.)
whiteknight dukeleto: first thing is to ask what the end-goal of the fixes are? What do we hope to gain by fixing it? 18:52
Coke after years of writing it, though, I'm very very very glad I have another alternative in nqp-rx.
whiteknight To make it easier to parse, use PASM instead. To make it better for programmers, use NQP instead
cotto_work darbelo, md5sum 9d3fb336868c8a66216d7d7e50e8b3b9 look good?
Coke oooh, the gmake extensions I built into configure's makefile generator are still there.
(which get translated into the LCD makefile syntax when you build the makefile) 18:53
PerlJam NQP still needs to drop down to PIR occasionally. I'd hate for that to end up being "drop down to PASM" instead.
er, humans writing NQP that is.
dalek kudo/master: 1e7c195 | (Solomon Foster)++ | src/core/Num.pm:
It should be !from-radians, not .from-radians.
kudo/master: 76aa9dd | (Solomon Foster)++ | src/core/Num.pm:
Implementation for acotanh.
kudo/master: 41b9fea | (Solomon Foster)++ | src/core/Num.pm:
Implement acotan.
kudo/master: d1cb483 | (Solomon Foster)++ | src/core/Num.pm:
Port alpha's acosec to master.
darbelo cotto_work: Yep.
dalek kudo/master: cc3f629 | (Solomon Foster)++ | src/core/Complex.pm:
Reactive the remainder of the Complex trig functions that were turned off.
kudo/master: 30f5ef4 | (Solomon Foster)++ | src/core/Complex.pm:
Reactive Complex.asin again.
cotto_work It's uploaded. It usually takes a few minutes to get to all the mirrors. 18:54
Do you want to get your ssh key on that machine?
Coke cotto_work: yes. =-) 18:55
can I ping you on that when I get home and have access to my desktop?
cotto_work sure
Coke ok. rm_cflags branch now supports @foo?bar@ substitution in makefiles; that should make it possible to conditionalize the warnings per-file. 18:57
so we can have @ccwarn@, and also @ccwarn?src/string/api.c@ 18:58
(eventually won't matter once we generate all these rules at config time, but this will help during the xition.
cotto_work #ps in 91 18:59
dukeleto whiteknight: i mostly want to fix IMCC, i am not so sure how to fix PIR
whiteknight dukeleto: that's exactly the point though, PIR isn't worth fixing since there are better alternatives 19:00
write stuff in NQP now. NQP and PCT and other code generators should produce PASM or (gasp!) PBC directly 19:01
dalek rrot: r44035 | coke++ | branches/rm_cflags (2 files):
Allow @foo?bar@ replacement when generating makefiles.
Coke dukeleto: is it worth fixing IMCC, given PIRC?
dukeleto whiteknight: i don't quite follow you. NQP is written in PIR. So you want to rewrite NQP in PASM?
Coke: I meant to say "replace IMCC with a working PIRC" 19:02
Coke dukeleto: if think th epreference there would be to generate PBC.
whiteknight dukeleto: PIR can stay around. IMCC can stay around. We can turn IMCC into a standalone program that converts PIR->PBC
NQP can stay as it is, as one of the few programs that use PIUR
PIR
Coke dukeleto: ok. I have a patch that will let you set a C define during Config. you should totally take that and use it to switch whether we're using IMCC or PIRC.
whiteknight all new work can be NQP
dukeleto whiteknight: that is where i slightly disagree. IMCC needs to be put down 19:03
dukeleto has to go to a meating
PerlJam whiteknight: and for those bits of NQP where the programmer needs to "talk to the metal" they would use what?
whiteknight dukeleto: so then kill IMCC in a fire, replace with PIRC, make PIRC a stand-alone PIR->PBC converter, etc
PerlJam: NQP has the ability to write all Parrot ops that I have seen
PerlJam: and in the rare event that somebody needs PIR, we will have a compiler for it (IMCC and/or PIRC) 19:04
NotFound whiteknight: Winxed is such rare event,
plobsing whiteknight: a good feature of PIR and PASM is they aren't so vulnerable to PBC_COMPAT bumps. I don't want to have to recompile everything all the time. 19:05
whiteknight but that's like asking "shouldn't everything be written in ASM just because some people need ASM to 'talk to the metal'?"
plobsing: that's a good point, but NQP would be even more divorced from PBC_COMPAT changes
and in any case, we need a more robust PBC system
something that is more tolerant of changes
plobsing holds breath, turns blue, and passes out waiting for that to happen 19:06
Coke whiteknight: if you're generating PBC, no, it's more closely tied to PBC_COMPAT. 19:07
(generating -and saving- PBC)
whiteknight Coke: in that case, only the PBC code generator is tied to it
as opposed to ALL PIR code tied to it now
NotFound I don't think that imcc, pirc, or whatever name must be a stand-alone program. We have load_language, compreg and all such nice things.
Coke ... all pir is not currently tied to PBC COMPAT.
i can rerun my .pir and it doesn't care if pbc_compat changed.
whiteknight Coke: what PBC_COMPAT changes are you talking about, exactly? 19:08
Coke I cannot rerun my .pbc ; if you're talking about having nqp generate pbc instead of pir (and cache it), then that is a problem.
whiteknight: any time pbc_compat changes, all PBCS must be recompiled.
whiteknight because for most cases of a direct NQP->PIR translator, PBC_COMPAT changes won't break it either
Coke: so we won't write our code directly in PBC
we'll use something higher-level, like, say, NQP 19:09
dukeleto is back
whiteknight most PBC_COMPAT changes involve a change in OPS or PMC numbering, and those numbers can be determined by any code generator 19:10
NotFound whiteknight: I don't want to write pir by hand, but I want to write pir code generators.
whiteknight NotFound: So you want to write a generator that produces middle-level code that's slow to parse and compile?
NotFound: if you're writing a code generator, generate PASM directly 19:11
or, and we're developing these tools now, create your own PBC
NotFound whiteknight: I can, but I don't want to be forced to.
dukeleto whiteknight: i agree that if you are generating code, might as well generate PASM rather than PIR 19:12
whiteknight NotFound: that's cool too. And like I said: we'll keep around IMCC/PIRC as a standalone PIR->PBC compiler
NotFound: so you can generate whatever you want, and call the next compiler in line to continue the process
Winxed produces PIR, IMCC compiles PIR->PBC, Parrot runs PBC 19:13
that's fine too
Coke huh. where is ccwarn actually set?
(in config)
whiteknight dukeleto: considering that there tends to be a direct relationship between lines of PIR and snippets of PASM, it's not hard to update existing code translators
PerlJam whiteknight: where does lorito live? 19:14
whiteknight PerlJam: eventually everything will be written in Lorito. PIR will be a macro level over Lorito, PASM will be a macro level over Lorito, etc 19:15
PerlJam: so no changes
or, no architectural ones
PerlJam gotcha
Coke AHAHAHAHAHAH. 19:16
@ccwarn@ is never set.
plobsing whiteknight: I saw your 'systemp' language at github. how does that factor into all of this?
Coke but it's buried in the set inside CFLAGS, so you'd never notice.
frikkin' awesome. 19:17
whiteknight plobsing: that was just a test, I think I'm going to abandon it
plobsing: I wasn't able to produce a consistent grammar for it internally that would be an improvement over anything we already have
dalek rrot: r44036 | whiteknight++ | branches/pmc_func_cleanup (16 files):
finish the bulk of the conversions, parrot builds
19:18
darbelo Release announced!
plobsing shoot! I was hoping for an HLL where I didn't have to fight with the parser over op selection.
whiteknight plobsing: if you want to collaborate and make it a reality, that would be cool 19:19
I keep hoping Austin's Close language will mature soon
plobsing Yeah, that looks good too, but from what I can tell, is a little more divorced from the guts of parrot. 19:22
NotFound plobsing: you can take a look at winxed.
PerlJam darbelo++ 19:25
cotto_work It's a little odd that the release announcement doesn't have a link to download the release.
darbelo It point to parrot.org/download 19:26
PerlJam darbelo: not announced on parrot.org 19:27
dukeleto darbelo: you gonna write a release post on parrot.org ?
darbelo I did. I'm seeing it now on the parrot.org front page. 19:28
Coke darbelo: there is no link in the email that just went to parrot-dev
PerlJam darbelo: weird.
Coke PerlJam: it's there; referesh?
refresH/
whiteknight what's the release name?
Coke F5
darbelo whiteknight: "As 19:29
Scheduled."
PerlJam I've refreshed quite a bit I can tell you. I still only see the 2.0.0 release announcement.
moderator Parrot 2.1.0 "As Scheduled" Released! 19:29
Coke the links work on the website, of course; I think you just cut and pasted the rendered HTML into text to get the email announcement, which is slightly borked. 19:29
www.parrot.org/news/2010/Parrot-2.1.0
I see it even if I log out. 19:30
(so it's not that I'm special)
ps?
purl ps is postscript or process status or see "parrotsketch" or non-vector?! or annoying.
Coke parrotsketch?
purl i guess parrotsketch is a status meeting for parrot core committers held every Tuesday at 18:30 UTC in #parrotsketch
PerlJam maybe I'm special in a bad way
19:30 bacek joined
PerlJam :) 19:30
Coke that's wrong, innit?
it's at 20:30 now, right?
bacek yawning 19:31
6:30 AM
Coke bacek: UTC, doofus. :P
19:31 bacek joined
Coke bacek: UTC, doofus. :P 19:31
particle time?
purl i think time is 19:31:02 2010 and (did you mean "clock"?) or flowing like a river or the fire in which we burn
particle err
clock?
purl particle: LAX: Tue 11:31am PST / CHI: Tue 1:31pm CST / NYC: Tue 2:31pm EST / LON: Tue 7:31pm GMT / BER: Tue 8:31pm CET / IND: Wed 1:01am IST / TOK: Wed 4:31am JST / SYD: Wed 6:31am EST /
chromatic KAPOW 19:32
wagle zow?
darn
Coke yay. CFEclipse has adopted a regular (though odd) release schedule. 19:33
dukeleto darbelo: developer download link on parrot.org needs updating
Coke www.parrot.org/download ? 19:34
dalek rrot: r44037 | coke++ | branches/rm_cflags/config/auto/warnings.pm:
Turns out @ccwarn@, though referenced, was not defined for the common gcc case.

Change this, so we can override it.
19:35
darbelo dukeleto: done.
purl dalek: that doesn't look right
rrot: r44038 | chromatic++ | trunk/src/call/args.c:
[pcc] Replaced VTABLE access to number of args/params with macro use.
rrot: r44039 | chromatic++ | trunk/src/gc/alloc_resources.c:
[GC] Extracted the helper function free_memory_pool() from

Coverity (CID #438 and #439) and was overly cute anyway. No functional changes.
purl changes is part of the communication in a release, and should involve actual human thought
rrot: r44040 | chromatic++ | trunk/src/pmc/string.pmc:
[PMC] Replaced some uses of get_string VTABLE internally with direct access to

modest benchmark improvement for Rakudo.
rrot: r44041 | chromatic++ | trunk/src/string/api.c:
[str] Simplified Parrot_str_concat() to avoid creating more STRING headers than

It's less code, anyhow.
darbelo ... or not. The redirect isn't getting updated. 19:36
PerlJam There has got to be a cache of some sort between me and parrot.org. 19:37
darbelo And now it is.
PerlJam the home page *just* updated (I've been continually refreshing)
Coke chromatic: was r44040 originally doing an explicit copy instead of just relying on COW?
(why do we even HAVE Parrot_str_copy if we have COW strings?) 19:38
darbelo For giving strings to outsiders?
dalek website: darbelo++ | Parrot 2.1.0 Released! 19:39
website: www.parrot.org/news/2010/Parrot-2.1.0
PerlJam But 2.0.0 is still at the top of www.parrot.org/category/news/news
dukeleto hears a parrot string say "moo"
whiteknight can we merge tickets 784, 562, and 1040 if they're all the same issue? 19:40
19:40 lucian_ joined
whiteknight And then, I hope, we can work on a fix for it 19:40
Coke aside from the fact that trac doesn't really support merging tickets, yes.
dukeleto darbelo: dev release link still points to 1.9.0
Coke trac--
I would pick one to be the master, and put a prefix in the description on the other two tickets to point to the master. 19:41
19:41 lucian joined
whiteknight Coke: gotcha 19:41
Coke (and put prefix the master with a pointer to dups)
darbelo dukeleto: I land at ftp://ftp.parrot.org/pub/parrot/releases/devel/2.1.0/ when I follow it.
PerlJam dukeleto: and the supported release still points to 2.0.0 for me too
Coke PerlJam: that IS the supported release. :P
dukeleto particle: can we remove SVK instructions from parrot.org/download as well?
darbelo PerlJam: That's as it should be.
Coke dukeleto: yes.
PerlJam oh, right.
PerlJam was looking for things to be wrong because the home page hadn't updated 19:42
chromatic Coke, Parrot_str_copy() *does* COW.
PerlJam For instance ... a snapshot just taken ... feather.perl6.nl/~duff/parrot.org.png 19:43
dukeleto ok, i was seeing a cached copy. parrot.org looks correct now
dalek nxed: r405 | julian.notfound++ | trunk/winxedst1.winxed:
minor classes and functions renaming
19:44
dukeleto news of parrot 2.1.0 is now sliding down the tubes of the socialwebs 19:47
whiteknight w00t 19:48
darbelo++
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32232), fulltest) at r44037 - Ubuntu 9.10 amd64 (gcc with --optimize) 19:49
darbelo PerlJam: I think I fixed it now. Can you check?
19:49 lucian_ joined
PerlJam darbelo: you mean for News? No, it's still got 2.0.0 at the top 19:50
dukeleto PerlJam: you are seeing cache 19:51
PerlJam wonders where this cache lives.
darbelo wonders where PerlJam lives. 19:52
dukeleto PerlJam: restart your local power company and then reboot your computer. The cache should then be fixed. 19:53
PerlJam Well, I've opened this page in several different browsers and tried to force reloads, so that makes me tend to think that the cache isn't on my local system
bacek PerlJam, it says 2.1.0 in my browser. 19:54
PerlJam (unless all of konquerer, chrome, firefox, epiphany, etc. share the same cache)
bacek "Transparent" ISP cache? 19:55
PerlJam I haven't knowingly installed caching software either.
bacek: could be though that would be weird (I'm on a university campus)
19:55 KingOfKarlsruhe joined
whiteknight darbelo: still intending to rename ImageIO? 19:56
dalek kapo: a6b4d2d | austin++ | (8 files):
Started bootstrap tests for UnitTest classes.
19:57
plobsing darbelo: I have done some cleanups on ImageIO pmc in tt362 branch
darbelo plobsing: Ohh, I missed that. Is it recent?
plobsing 2 days old.
it adds ImageIOSize pmc to satisfy TT362 19:58
darbelo I'll have to look that one up. I don't recall it's contents.
PerlJam I just conferred with some colleagues in another build (still on the same campus) they too see 2.0.0 rather than 2.1.0 at www.parrot.org/category/news/news
nopaste "chromatic" at 173.50.130.127 pasted "Make the fast core truly the default (fails annotation tests)" (69 lines) at nopaste.snit.ch/19657
bacek hmm... 19:59
chromatic There's another 4% performance improvement, if we can fix the tests.
bacek On /news/news still saying 2.0 for me
darbelo PerlJam: Maybe you campus runs a cache or proxy?
PerlJam darbelo: bacek isn't on my campus :)
NotFound That's funny, I see 2.0 while unlogged, after logging 2.1 20:00
PerlJam NotFound: ah, a clue. I'm trying all of this without being logged in.
PerlJam logs in to see if there's a difference.
NotFound Afetr logout, keeps 2.1
PerlJam yep, shows 2.1.0 when I'm logged in. 20:01
I'm going to blame drupal at this point :-)
NotFound Maybe some problem with the server clock confuses the caches?
PerlJam nah, I think it's just the drupal is broken in some subtle way. 20:02
wagle dukeleto: i didnt get find_name to generate an error or exception. i looked at the source and saw that Parrot_find_name_op() didnt even try to throw an exception, so I gave up and deleted the code. The documentation says that it will pay attention to the errorson() flag for unbound vars returning null (default is to throw exception). But there's a billion different ways to fetch a variable binding, and find_name is just one of
them. I found NOTHING paying attention to the errorson() flag. What should I do to help?
PerlJam I'm going to stick with that for now :)
bubaflub (i see 2.1.0 on front page, 2.0.0 on news/news) 20:03
i see what happened there
perhaps it's because it's tagged with "news" (lower-case n) and not "News" (upper-case N)
darbelo blames drupal too. 20:04
bubaflub yep, the release notice for 1.7.0 is on the front page tagged with "news" and is not in news/news
dalek kudo/master: 61f3368 | jonathan++ | src/binder/bind.c:
Cache some type IDs and a commonly used string to win a little performance in the binder (few percent).
darbelo bubaflub: There's two news tags, some release are missing one. I think I put both on 2.1 20:05
bubaflub darbelo: that should solve the Hardy Boys and the case of the missing news item
i'm heading home from work; catch ya tomorrow #parrot people 20:07
Coke chromatic++ # making the deprecated vultures back off. (yes, that's me.)
PerlJam interesting ... when you add a trailing / it shows 2.1.0, without the /, you get 2.0.0
Coke the article is marked as "published" and "promoted to front page". 20:08
PerlJam (while not logged in)
Coke on ... the hostname?
er, "/" (eaten by irssi)
dalek rrot: r44042 | chromatic++ | trunk (4 files):
[src] Changed the (static, thus no deprecation necessary) parseflags() to use

us switch to the fast core when we get annotations working properly there.
20:08 ZeroForce joined
darbelo That's bizzare.
Coke for me, "..org" -> "..org/" automagically.
PerlJam Coke: www.parrot.org/category/news/news vs. www.parrot.org/category/news/news/ 20:09
Coke ... don't check news, check the home page?
www.parrot.org/
PerlJam Coke: homepage appears fine now. 20:10
Coke It is also in the News & Releases categories.
purl okay, Coke.
Coke [:facepalm:]
purl, are you rainman?
purl coke: i don't know
Coke PerlJam: at a guess, something on your end was caching news 20:11
(but not news/)
PerlJam Coke: only if it's campus-wide (possible, but I don't think so)
20:11 whiteknight joined
PerlJam still blames drupal 20:11
Coke it is possible for them to have the cache and proxy in place and have you not even know it. 20:12
PerlJam it's the most likely culprit from where I sit
whiteknight chromatic: what were the performance results of the GC threshold?
particle could be varnish
Coke it is also possible that drupal is caching as well.
purl okay, Coke.
Coke DIE PURL DIE
purl NYOOMMMMM SPLAT
PerlJam I *know* drupal does various forms of caching.
I also know drupal is quirky
Coke ... in which case, stop complaining about it. =-)
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32233), fulltest) at r44041 - Ubuntu 9.10 amd64 (g++ with --optimize) 20:13
Coke (you could also try passing in query params to see if that changes it next time.)
PerlJam an admin person can just turn the caching off though
IIRC drupal has 3 levels of caching (without any additional modules): none, "normal", and aggressive. 20:15
Coke PerlJam: It's set to normal, min lifetime: 30m. 20:17
it's probably the 30m that killed you 20:18
I just dropped it to 10m.
er... no. I just TRIED. 4 times.
it's still 30m.
...
... maybe it's cached.
PerlJam heh 20:19
chromatic whiteknight, ~13% improvement on the PIR fib benchmark, ~4% on the NQP benchmark.
dukeleto said he could give some better numbers.
whiteknight wowers
chromatic Exactly. 20:20
20:20 bacek_ joined
whiteknight Tene: can you commit that patch to a branch? 20:22
20:22 joeri joined
whiteknight Tene: actually, nothing stopping you. Put it in trunk if it's ready. The release is out 20:23
cotto_work #ps in 6 20:24
5
Tene whiteknight: I have trouble with svn branches. Most times I've tried svn branches in the past, I've screwed something up and needed to have someone else clean up after me. 20:26
dalek kudo/master: 74bddc2 | pmichaud++ | src/Perl6/Grammar.pm:
Correct misspelled supersede (bkeeler++).
20:27
kudo/master: 9267d1e | pmichaud++ | src/binder/bind.c:
Merge branch 'master' of git@github.com:rakudo/rakudo
whiteknight Tene yeah, they can be a pain.
cotto_work bacek, is your #ps report complete? It looks like it might have skipped some lines. 20:28
bacek cotto_work, I probably just forgot about what I have done :)
Tene aka q1q 20:29
Coke msg wagle you have to .include the file that defines that constant.
purl Message for wagle stored.
whiteknight damnit he's a magical coding robot, not a magical remembering robot
bacek whiteknight, lol :) 20:30
whiteknight :)
Coke Tene: branches in svn-<current> are much better.
darbelo ps in 0 20:31
Coke (as long as you started the branch in svn-<current>)
Util All tests PASS (fulltest) at r44041 - Ubuntu 9.10 x86 (gcc 4.4.1) 20:32
darbelo ponders qiq 20:33
plobsing qiq? 20:34
darbelo like q1q but imaginary.
plobsing purl, no clever quip for that one?
purl plobsing: no idea
Tene darbelo: miswin
wagle Coke thats errors.pasm 20:35
20:38 allison joined
Coke qiqqity. 20:38
q1qq1ty?
20:38 jsut_ joined
allison Ah, inflight wireless internet, lovely. 20:38
Coke mmmhehehe. 20:39
welcome to #parrot, can I get you a beverage?
allison :)
cotto_work nice
dalek rrot: r44043 | whiteknight++ | branches/pmc_func_cleanup (2 files):
last two changes that I can find in the core repo. Parrot builds and passes all coretests
20:41
rrot: r44044 | Util++ | branches/autoprops:
Removing rusted branch; will re-branch when I work on TT#994 again.
Util whiteknight: TT #768 was a spam ticket 20:43
dalek kudo/master: 9df5b4a | jonathan++ | t/spectest.data:
Turn S06-multi/type-based.t and S06-multi/proto.t back on.
20:45
kudo/master: 8d9598e | jonathan++ | src/ (3 files):
Various corrections to handling of where clauses and type captures, which was the main issue we faced in getting us doing most of S06-multi/type-based.t again.
Coke tene: durak.org/sean/pubs/software/versio...rging.html , look for "svn merge ^/trunk" 20:46
moderator Parrot 2.1.0 "As Scheduled" Released! | Tasks: PCC deprecations branch, HLL subclassing and MMD branch 20:48
cognominal joined
Coke wonders why tools/build/cc_flags.pl was modified in the vtable_massacre branch. odd. 20:58
dalek rrot: r44045 | chromatic++ | branches/fix_hll_mmd:
Branch to fix HLL subclassing and MMD
Coke smacks dukeleto for his late, mid-stream report! 20:59
Tene allison: the main driver here is cardinal, which has a detailed exceptions model that I'm really wanting to support, as well as class-based filters. 21:02
dalek kudo/master: 5c09ebb | jonathan++ | src/core/Bool.pm:
Implement Bool.ACCEPTS.
kudo/master: cad6d12 | jonathan++ | t/spectest.data:
Turn S03-smartmatch/any-bool.t back on.
allison Tene: that makes sense, so you you're looking for the best way to hook into the Parrot exceptions
Tene: in cardinal, are they a full exception hierarchy? as in, actually subclasses inheriting from a base class? 21:03
Tene allison: Yes.
Well, in ruby they are.
whiteknight how to regenerate the test PBCs?
Tene allison: pdd23 also describes a parrot type hierarchy.
allison Tene: it seems to make sense to duplicate the Ruby hierarchy as closely as possible 21:04
Tene: yes, we defined it as a parrot type hierarchy, but in practice it turned out to be more heavyweight than we need in core parrot
Tene: but, we need to allow languages to define full exception hierarchies
Tene we also need to support things like "catch any IO exceptions, from any language" 21:05
allison Tene: so, if you encounter any difficulties doing that with Ruby, it shows we need some more core work
Tene: (it should be possible now, but I suspect it may be checking "isa" Exception in a few places)
Tene allison: Yes, that's right. That's what I've done locally.
Well, it's not even doing "isa", it's checking the base_type, so not even subclasses of Exception work in current Parrot. 21:06
allison Tene: even worse :)
Tene I've been trying to work out if that should be 'isa' or 'does', and it looks like it's the latter.
allison Tene: a switch to 'does exception' should work fine, double-checking that the core Exception type actually declares 'provides exception' 21:07
Tene I need to confirm that I can reimplement a class from PIR that does 'exception' and works.
it currently doesn't, but I added it for testing.
allison I'm not sure we have a PIR way of declaring 'provides' yet, but we should
Tene I'll figure something out. 21:08
allison Tene: aye 21:09
Tene: when you do, let's give the exceptions PDD a quick once-over to make sure it matches any revisions in the design
Tene Right.
bacek whiteknight, sh tools/dev/mk_native_pbc --noconf 21:11
whiteknight thanks! 21:12
dalek rrot: r44046 | coke++ | failed to fetch changeset:
Merge latest changes from trunk
21:15
rrot: r44047 | whiteknight++ | trunk (88 files):
merge the op_pmcs branch. This bumps PBC_COMPAT, which is going to require a realclean after updating. Also, I haven't regenerated the test PBCs yet, so the packfile tests are failing
rrot: r44048 | whiteknight++ | branches/op_pmcs:
delete this branch, merged to trunk already
rrot: r44049 | allison++ | branches/pcc_reorder_results:
Creating branch for PCC deprecation item to reorder set_returns and get_results.
Coke gah. I just updated my branch to the latest merge and now there's another one? =-) 21:21
chromatic No kidding.
Coke good problem to have.
chromatic At least we can do `git rebase`... wait, I'll come in again. 21:22
whiteknight it's release day, the branches come crashing in
Coke chromatic: LINE!
chromatic These pretzels are MAKING me thirsty.
Tene git rebase chromatic #parrot
chromatic These branches coming in are making me <<<thirsty===crashing>>>. 21:23
Tene OH SHIT A MERGE CONFLICT
GET THE SLEDGEHAMMER
Coke ok. is trunk safe now after bacek's fixup? 21:25
chromatic Should be. 21:26
bacek Coke make test is still running on my box
Coke chromatic: rakudo doesn't need breathing room, they're using the 2.0 release.
er, 2.1
dalek kudo/master: 0161485 | (Solomon Foster)++ | src/core/Any-num.pm:
Remove fossil "is export" from Any.sec.
21:27
kudo/master: 40e481e | (Solomon Foster)++ | src/core/Num.pm:
Fix the definition of cosech.
chromatic There's a difference between the "I will die if I don't eat this week!" need and the "I'm going to go crazy with all of these little details, can you come back later?" need. 21:28
Coke I am very happy that 'svn merge ^/trunk' seems to be dtrt. I hope it works on mergeback as smoothly.
21:28 hercynium joined
Coke I do wonder why docs/book/* seems to be getting updated all the time. 21:30
chromatic SVN merge properties. 21:31
Coke yes, but shouldn't I have already gotten all of those?
or shouldn't I get them on EVERY file?
ah well. I'll close my eyes and think of England.
dalek rrot: r44050 | bacek++ | trunk/t/native_pbc (4 files):
Rebuild native PBCs
21:33
chromatic I *think* it's only files that already had merge properties thanks to 1.5 merge tracking, but the cross between an elephant and a rhinoceros.
Coke 16:33 < Coke> chromatic: I bet my problem is that some people aren't using the "new" svn merge. 21:36
16:34 < darbelo> Coke: git-svn users for sure don't.
16:34 < Coke> e.g.: ports/debian/parrot.install.in
16:34 < Coke> just added :
16:34 < Coke> /branches/op_pmcs/ports/debian/parrot.install.in:43820-44044
16:34 < Coke> ... but that branch didn't touch that file, did it?
perhaps if we get down to NO branches, we can kill all the merge properties and start over. =-)
chromatic I know Allison had branched for the book with SVN 1.5.
allison a stock SVN merge doesn't leave merge traces through the tree, it only shows modified files 21:37
I haven't figured out what tool is leaving the traces, but it is annoying
merge properties are pretty useless 21:38
Coke merge properites are how svn-latest does it, no?
Since you no longer have to merge specific revision numbers. 21:39
allison Coke: AFAIK, yes
Coke ah. you mean, "something else is adding them and screwing it up." I'm thinking an old version of svn. 21:40
... like the one used by git-svn? =-)
bacek Coke, trunk should be clean at r44052
chromatic I doubt git-svn would use SVN properties. Git has a much better way of tracking nodes. 21:41
Coke ah well. as long as it works (even if it's really noisy), that's all I care about for now.
allison Coke: indeed 21:42
21:42 bluescreen joined
Coke ok. merging trunk into my branch, I get a ton of packfile errors. 21:42
(even after a realclean.) 21:43
there goes 10m of my life.
should those op* pmcs be static or dynamic?
chromatic You weren't doing anything with those ten minutes anyway, just sitting around humming the theme song to Alf.
particle here, lucky lucky lucky... 21:44
Coke ... gah. no, that's the NEXT ten minutes.
(you 9*&#$#)
ah, it's bacek's fault! 21:45
;)
bacek Coke NO WAY!
Coke bacek - did you fix the pbcs wrongly the first time?
bacek But I did fix them from second attempt :)
Coke ok. trying the merge again... 21:46
bacek C'mon! Merging is easy! :-P 21:49
Coke just slow.
dalek rrot: r44051 | bacek++ | trunk/src/pmc (2 files):
Unconsting strings in OpLib/OpCode. Fix c++ build
rrot: r44052 | bacek++ | trunk/t/native_pbc (4 files):
Rebuild native PBCs (again, after realclean...)
Coke I am now getting tree conflicts on every merge, because of the wierd mergeinfo on a file I deleted.
thankfully that's easy to fix. =-) 21:50
dalek kudo/master: 3030f55 | jonathan++ | src/Perl6/Actions.pm:
Make sure we don't crash and burn if somebody writes double semicolon in their code!
kudo/master: a73f7b3 | jonathan++ | t/spectest.data:
Turn S06-advanced_subroutine_features/return.t back on.
darbelo How can a nonexistant file causes a tree conflict with another nonexistan file? 21:51
Coke I deleted it. it's still alive on branch.
bacek "svn - every conflict is possible!" 21:52
Coke so when branch is erroneously updated with mergeinfo, I am given the new mergeinfo.
(and then I throw it away. muahhaha.)
darbelo Coke: Oh I misread. But the one I mentioned is still possible.
It happened to me.
21:54 ruoso joined 21:57 brooksbp joined
dalek nie: r101 | allisonrandal++ | trunk/README:
Some updates to the main readme.
21:57
Coke ugh. 'ack' on feather is very old. 22:00
Coke installs a frsh one locally.
Andy that's why I always have ~/bin/ack
chromatic I heard you had the source code to Ack tattooed on your own bad self. 22:02
Coke andy - iwbni betterthangrep.com/ linked to whatever you're using for issues.
github.com/petdance/ack/issues ? 22:03
Coke wishes that github.com/petdance/ack/issues#issue/88 was fixed. =-)
Andy yes
Coke ponders forking and trying to make that work.
Andy Not until 2.0
Coke cries. 22:04
Andy make a new filetype that is .mak
Coke doesn't search Makefile, then, do it? 22:05
(I could do --make --makefrag, I suppose, but at that point, easier to just abuse the shell.)
dalek rrot: r44053 | coke++ | branches/rm_cflags (91 files):
merge latest changes from trunk.

  (we need to figure out where all these wrong mergeinfo records are coming from)
22:06
Andy Coke: It will search whatever type it knows. 22:11
So just creating a makefrag type, you get it searched automatically.
By default, ack searches all file types it understands.
dalek nxed: r406 | julian.notfound++ | trunk/winxed.winxed:
use the .pbc instead of the executables from the driver when stage > 0
22:12
kudo/master: 88f3c6e | jonathan++ | src/Perl6/Grammar.pm:
Add a missing case of unspace.
22:14
kudo/master: 3603f51 | jonathan++ | src/builtins/Routine.pir:
Add back reviewed assuming implementation.
kudo/master: ff97a28 | jonathan++ | t/spectest.data:
Turn two assuming tests back on.
Coke Andy: I want something that searches just .mak and Makefile 22:17
(and .mk would be fine too) 22:18
Andy: hey, you're a "clean build" kind of guy.
We only support warnings (right now) on gcc. I am thinking that we should move config/auto/warnings.pm into config/auto/gcc.pm 22:19
(all compilers can twiddle with 'ccwarn' to their hearts content.)
darbelo +1
purl 1
Coke Also, if there are any files known to hate a particular option for that compiler, it should go into config/auto/<compiler>.pm as an exception to the rule. 22:20
Andy OK
I haven't looked at any of that in forever.
Right now I'm dealing with the new tidy
Coke ?
Andy I have no opinion on your compiler options question. 22:21
Coke hokay. 22:22
I'll just make it work and we can go from there. =-)
22:22 Whiteknight joined
Coke hurm. I ponder warnings-<compiler> instead.... except that involves messing with config steps, which is a pain point for me. original plan it is. 22:23
dalek nxed: r407 | julian.notfound++ | trunk/Makefile:
fix and rearrange Makefile dependencies to avoid buliding most fakecutables when
22:27
Coke wonders why the conf object doesn't have a printIfVerbose method. 22:28
(how much boilerplate would that save)
chromatic This is Perl. Embrace the boilerplate. 22:29
Coke ... no?
chromatic What, our "Hello, world!" is shorter than Java's. Clearly we win.
Coke pick a name for that method. mine's too java-like. 22:30
(and I'll open a ticket.)
NotFound pfv
Or more meaningful: cry 22:31
darbelo whine()
NotFound Hey, what an idea: cry: same as say, but output to stderr X-) 22:32
darbelo NotFound++
Coke goes for "debug"
darbelo boooos 22:33
NotFound Coke: much less poetic
Coke you may bikeshed the ticket.
KingOfKarlsruhe hi, how can I read the integer representation of an character inside a string? (i am trying to save a string into an pmc "ResizableIntegerArray" in PIR)
Coke but only if you write the patch that implements it.
KingOfKarlsruhe: $P1 = box $S0; $I0 = $SO 22:34
NotFound KingOfKarlsruhe: a string iterator is a good way
KingOfKarlsruhe thank you Coke
Coke iterator for sting to int? seems like overkill.
(if the string is really a String, you can leave off the box.)
(and do $I0 = $P0)
I /think/ this works. testing. =-) 22:35
NotFound Oh, I misread, I was thinking about character codes.
Coke yup, seems to.
(note that ; isn't really a command separate in PIR, also)
dalek TT #1452 created by coke++: add method debug to $conf object 22:38
Coke ponders a wholesale removal of AUTHOR information. 22:39
dalek kudo/master: 5594188 | pmichaud++ | src/core/Iterator.pm:
Remove incorrect Iterator.Seq, improve Iterator.Str .
22:40
kudo/master: 9d1d903 | pmichaud++ | src/core/Range.pm:
When stringifying or numifying Range, just ask $.iterator directly
kudo/master: 2bb2172 | pmichaud++ | src/core/Iterator.pm:
Add a working version of Iterator.Seq .
kudo/master: 04f3504 | pmichaud++ | src/ (10 files):
Merge branch 'assign'

  \tsrc/binder/bind.c
kudo/master: 33b1bf9 | pmichaud++ | (10 files):
Merge branch 'master' of git@github.com:rakudo/rakudo
22:42 kid51 joined
Coke kid51: you are welcome to steal TT#1452, as I may not get back there for a week or 3. 22:42
dalek nie: r102 | allisonrandal++ | trunk/Lib/test/bootstrap/lists.py:
Add a test for 'del', already implemented.
22:53
kudo/master: 72a8b74 | jonathan++ | src/ (4 files):
Get us implementing prefix:<!> in terms of .Bool, plus add some missing .Bool methods.
23:49