#parrot Parrot 0.6.1 "Bird of Paradise" Released | parrotcode.org
Set by moderator on 29 April 2008.
00:03 davidfetter joined 00:11 particl2 joined 00:13 rdice joined 00:31 particle joined 00:37 kid51 joined 00:44 mire_ joined 01:05 particl1 joined, mire__ joined 01:36 mire__ joined 01:55 mire_ joined 01:58 Andy joined 02:13 mire__ joined 02:28 mire_ joined 02:35 janus joined, Ademan joined 02:51 mire_ joined 03:18 mire_ joined 03:19 andy753421 joined
andy753421 Hello, does anyone know if/where there's some up-to-date documentation on PASM? 03:20
specifically on working with subroutines
pmichaud not really. Most people are using PIR these days anyway.
you might look at pdd03, in the section "PIR SYNTAX EXAMPLES" at the end of the file 03:22
dalek r27401 | petdance++ | trunk: 03:40
: add another warning for old-style prototypes
diff: www.parrotvm.org/svn/parrot/revision?rev=27401
Andy DID YOU MISS ME?
03:45 tetragon joined
spinclad just dreadfully! 04:01
04:06 andy753421 left 04:14 grim_fandango joined 04:19 cout joined
dalek r27402 | petdance++ | trunk: 04:26
: use STRNEQ instead of strcmp() as a boolean
diff: www.parrotvm.org/svn/parrot/revision?rev=27402
04:31 Psyche^ joined
Andy So do cage tests normally fail? 04:37
pmichaud some do, depending on how they're invoked 04:38
'make test' doesn't run all tests, iirc
so there are some tests (e.g., codingstd) that we have but that we don't yet include as part of 'make test'
04:45 Theory joined 04:53 rhr joined 05:20 iblechbot joined
Tene Okay, I mostly know what I need to do to get placeholder vars to replace the signature instead of augmenting it. 05:33
It's the sorting that might be a problem.
I also need to check if I should be inserting the vars into the symtable as $^a or as just $a. 05:34
Looks like probably the former.
I'm mainly unsure how to do the sorting. IIRC, rakudo doesn't have a 'sort' defined yet... 05:35
Tene looks around.
Okay, parrot has a Data::Sort. 05:36
dalek r27403 | petdance++ | trunk: 05:46
: helpful use of the PARROT_DOES_NOT_RETURN. Also, removed impossible condition of a function returning NULL
diff: www.parrotvm.org/svn/parrot/revision?rev=27403
Tene Hm. I should include a test. 05:51
I need to figure out if there's a way to set svn metadata from git-svn. 05:52
dalek r27404 | tene++ | trunk: 05:53
: Variable assignment works in cardinal.
: Swipe scope handling from rakudo for cardinal.
: Minor syntax updates for cardinal.
diff: www.parrotvm.org/svn/parrot/revision?rev=27404
06:05 Zaba_ joined 06:44 barney joined
Zaba moin 07:23
dalek r27405 | fperrad++ | trunk: 07:29
: [docs]
: - docs/strings.pod removed since r27305
diff: www.parrotvm.org/svn/parrot/revision?rev=27405
r27406 | fperrad++ | trunk: 07:34
: [docs]
: - rename HQ9plus to hq9plus (new implementation since r26620)
diff: www.parrotvm.org/svn/parrot/revision?rev=27406
08:22 Ivatar joined 09:07 jonathan joined 09:57 desertmax joined
dalek r27407 | allison++ | pdd25cx: 10:16
: [pdd25cx] Throw an exception when attempting to remove an exception or event handler that doesn't exist.
diff: www.parrotvm.org/svn/parrot/revision?rev=27407
10:17 tetragon joined
dalek r27408 | allison++ | pdd25cx: 10:42
: [pdd25cx] Update the expected error message when attempting to delete an
: exception handler when there is none. TODO rethrow test and a dynamic scope
: test.
diff: www.parrotvm.org/svn/parrot/revision?rev=27408
10:51 iblechbot joined 11:00 masak joined 11:21 desertmax joined 11:23 mire_ joined 12:03 kid51 joined
dalek r27409 | allison++ | pdd25cx: 13:02
: [pdd25cx] Clean up stray tab added by unhelpful Vim config.
diff: www.parrotvm.org/svn/parrot/revision?rev=27409
r27410 | allison++ | pdd25cx: 13:03
: [pdd25cx] TODO rethrow test.
diff: www.parrotvm.org/svn/parrot/revision?rev=27410
r27411 | allison++ | pdd25cx: 13:05
: [pdd25cx] Change several more instances of 'throwcc' to 'throw'.
diff: www.parrotvm.org/svn/parrot/revision?rev=27411
13:13 ambs joined 13:17 rdice joined 13:19 mire__ joined 13:34 Ivatar joined 13:43 mire_ joined
dalek r27412 | fperrad++ | trunk: 14:07
: [Lua]
: - translates first opcodes
diff: www.parrotvm.org/svn/parrot/revision?rev=27412
r27413 | allison++ | pdd25cx: 14:13
: [pdd25cx] Bringing the pdd25cx branch up-to-date with trunk r27411.
diff: www.parrotvm.org/svn/parrot/revision?rev=27413
14:15 mire__ joined 14:18 kid51 joined 14:24 grim_fandango joined
pmichaud Tene: (sorting) -- I had been thinking that for sorting we would use an insertion sort as placeholder variables are encountered 14:39
as opposed to trying to call a sort algorithm
14:40 NotFound joined
NotFound Hello. 14:40
ambs waves 14:41
pmichaud NotFound: were you looking at the case of having NULL keys in hashes? 14:44
NotFound pmichaud: I left the issue expecting chromatic decision. 14:45
pmichaud okay. Last night while scanning RT tickets I also found RT#43485: Null Key Strings Make Hashes Cry
apparently chromatic encountered something similar :-) 14:46
(about a year ago)
14:46 mire_ joined
NotFound I can't understand scheme 14:49
But the issue is clearly than null keys are not valid, the code in hash.c assume they never are. 14:50
pmichaud okay. I was just pointing out the ticket in case it was useful to you or chromatic. :-) 14:51
(especially since chromatic is wanting to reduce the number of outstanding tickets for the may 20 release)
NotFound I think the check for nullness is usefule, maybe a PARROT_ASSERT about that help catch bugs. 14:52
pmichaud oh, that might be good, yes. 14:56
NotFound Talking about solving tickets, someone looked at 46629? 14:57
pmichaud seems reasonable to me. 14:59
at least within the limits of the Complex implementation, which has some oddities 15:00
NotFound At least is testable. 15:01
dalek r27414 | allison++ | pdd25cx:
: [pdd25cx] Reverting two headerizer changes, suggested by chromatic.
diff: www.parrotvm.org/svn/parrot/revision?rev=27414
15:08 mire__ joined
NotFound With the assertion in place, the test case in 53890 is catched. 15:10
src/hash.c:342: failed assertion 'bucket->key'
Patch sended to RT#53890 15:15
jonathan pmichaud++ # nice Rakudo work 15:16
Especially happy to see the fatarrow parsing bug fixed. 15:17
pmichaud yes, that was going to be an ongoing pain :-)
fortunately it wasn't too difficult to correct
jonathan :-) 15:18
If one understands PGE, at least. ;-)
pmichaud I think I also have a way to fix the -> bug
jonathan Other than a fail hack in the operator parser? 15:19
pmichaud yes
jonathan Cool.
I'm very happy to have you take care of the parser issues. Though I do want to try and understand PGE internals better at some point.
pmichaud unfortunately it means refactoring the OPP a bit...back to the form I had originally. :-( 15:20
but it'll be more std.pm-like (since std.pm ended up using the form I had originally :-) 15:21
jonathan Closing in on STD.pm is generally a good thing. 15:22
I try to edge us further towards it now and then. 15:23
pmichaud I'm fairly sure I'll try to spend some dedicated time over the summer to getting ltm working
jonathan That would be a big step forward.
Larry mentioned he was parsing something like 2000 chars a second with his prototype in the last call.
pmichaud it may also be a substantial rewrite of pge. But fortunately the abstractions are such that I don't think it'll impact anything 15:24
jonathan I'm hoping the Parrot implementation might manage more than that. ;-)
pmichaud oh, I'm sure it will. :-)
jonathan OK, good.
pmichaud I'm even thinking of rewriting PGE in C
it depends on how the ltm code is structured.
jonathan It may be the only way to get the performance we need, and working in something higher level than PIR may well make development easier. 15:25
pmichaud heh
I went with PIR because *it* made development easier. :-)
jonathan "higher level" ;-)
Yeah 15:26
pmichaud I can almost guarantee that a C implementation will be less accessible
jonathan True.
There's pros and cons either way.
I'm pondering how best to spend my Rakudo time. While objects are very high in the list, I think there's plenty of other stuff that wants attention too. 15:29
pmichaud I don't have a good answer at the moment :-|
jonathan I'm pondering dividing it half and half - half to incrementally get S12 in, but spend the rest on other bits: builtins, applying patches people send it (or giving feedback when they're not right), fixing other bugs, etc. 15:30
pmichaud that seems extremely reasonable. It's at least a good start.
jonathan s/but/and/
pmichaud I'd say go with that and feel free to change the mix as you go
jonathan I stubbed in parsing a bunch of S12 stuff on Tuesday that I plan to fill out.
got it parsing, but panicing with an "unimplemented" message...prefer to make it clear when stuff parses but shouldn't be expected to work. 15:31
dalek r27415 | allison++ | pdd25cx: 15:32
: [pdd25cx] Updating exception names in merged code.
diff: www.parrotvm.org/svn/parrot/revision?rev=27415
jonathan So filling those out will likely by my next OO task, and then after that I plan to take on attributes in roles.
pmichaud I think I'll work on spectest a bit this morning
dalek r27416 | allison++ | pdd25cx: 15:33
: [pdd25cx] Renabling generation of src/stacks.str.
diff: www.parrotvm.org/svn/parrot/revision?rev=27416
jonathan (spectest work)++
I'm mostly offline for the next 3-4 days with moving.
moritz (whoever fixed multiple pairs in sub calls)++ 15:34
jonathan Will do my Rakudo day towards the end of next week, once I've got into the new appartment etc.
pmichaud that should work well with me
jonathan OK, great.
pmichaud afaict I don't have anything coming up for the end of the week 15:35
jonathan I've got a lot of talks to prepare for the end of the month.
pmichaud I'm envious. Wish I could get to do as many talks as you're getting to do :-)
jonathan Are you planning to get return and other control exception-ish stuff in soon?
pmichaud for various values of "soon" (more)
it would be better to get list assignment done first, as return will somewhat want that 15:36
jonathan Talks - yes, I really enjoy sharing with people what's getting done on Perl 6.
pmichaud but return comes shortly thereafter.
jonathan OK, makes sense.
pmichaud heh
those are #1 and #2 :-) 15:37
jonathan #3 and #4 are keeping me entertained. ;-)
pmichaud #5 is somewhat high as well -- just need to update the Digest::MD5 library a bit first
jonathan is that "selected libraries written in Perl 6"? 15:38
pmichaud yes
jonathan Digest::MD5?
purl rumour has it Digest::MD5 is on CPAN
pmichaud the blocker is that PCT doesn't generate unique sub names 15:39
(across multiple invocations)
ambs purl, sure it is
purl OK, ambs.
pmichaud so, we'll md5 the source in order to produce a unique component of the name
moritz jonathan: if there's something I can do to help you (for example preparing very simple test cases) please let me know
pmichaud (test cases)++
jonathan moritz: I would *love* more OO tests.
moritz jonathan: what kind of OO tests? 15:40
jonathan You don't even have to write some of them - there's plenty of starting points in the Pugs test and also the Moose ones.
moritz: The most helpful thing to me at the moment is tests for the OO features that are already implemented in Rakudo. 15:41
So as to be sure they don't accidentally get broken.
moritz jonathan: so mostly inheritance and role composition?
jonathan So inheritance, attributes, role composition, the cases of handles that are done so far...
methods
moritz ok
jonathan WHENCE stuff, particularly in calls to new.
(e.g. for initializing superclasses) 15:42
I plan to work on private methods shortly.
pmichaud: md5 - understand now, makes sense.
15:42 mire_ joined
moritz jonathan: ok, that can get me started 15:43
jonathan pmichaud: I think we also need to be able to have a way to emit a sub and choose what class is used.
So we can differentiate method from regex etc
I don't think Parrot supports that; I was pondering proposing a :class('Name') adverb for .sub 15:44
pmichaud ....differentiate method from regex?
in what sense? 15:45
jonathan They are different types in Perl 6.
pmichaud ohhhh
yes, I agree
we need a way to tell PIR what sort of Sub object to create.
jonathan I think we might need that to get Submethod's right.
Or at least, it's one way. 15:46
pmichaud well, we definitely want a compile-time mechanism to distinguish the various types of code objects
jonathan Right, agree.
We don't want to have to fix that up at runtime.
pmichaud I've mentioned it a couple of times before but haven't gotten any traction.
(but also haven't pushed it hard because there are other fish to fry) 15:47
jonathan I'll send my proposal in complete with an offer to impelement it. :-)
pmichaud that's more than I can do at this point (the "offer to implement it" part)
although I'm rapidly getting to the point of understanding more about Parrot internals
jonathan Hopefully it's not so hard.
dalek r27417 | allison++ | trunk: 15:48
: [cage] Add svn:ignore property to generated file src/call_list.txt.
diff: www.parrotvm.org/svn/parrot/revision?rev=27417
15:59 desertmax joined 16:03 wknight8111 joined 16:04 wknight8111 left 16:06 wknight joined 16:14 radhios joined
dalek r27418 | pmichaud++ | pgeupdates: 16:43
: Branch for PGE/S05 method updates
diff: www.parrotvm.org/svn/parrot/revision?rev=27418
16:43 davidfetter joined 16:49 nopaste joined 16:55 Senaka joined
Senaka seen infinoid 16:56
purl infinoid was last seen on #parrot 19 hours and 58 minutes ago, saying: Cardinal Fang, fetch ... the comfy chair!
Senaka :(
16:56 Senaka left 17:09 Theory joined 17:13 tetragon joined
dalek r27419 | allison++ | pdd25cx: 17:19
: [pdd25cx] Replace 'internal_exception' with 'exit_fatal'.
diff: www.parrotvm.org/svn/parrot/revision?rev=27419
allison@perl.org | Concurrency Tasks: 17:29
link: www.perlfoundation.org/parrot/index...ency_tasks
shorten dalek's url is at xrl.us/bjqpy
18:04 Zaba_ joined 18:10 rdice joined 18:14 wknight8111 joined 18:15 cognominal joined 18:18 ambs joined 19:17 peepsalot joined 19:31 peepsalot joined 19:37 guru joined 19:57 Theory joined 20:02 desertmax_ joined
Tene pmichaud: the last thing I'm still considering is how to detect that a signature was given. Just scan the symtable every time we encounter a new placeholder var looking for vars that don't contain ^ as a twigil and throw an exception if we find one? 20:04
20:07 ruoso joined
pmichaud well, scanning the symtable might not be enough 20:11
20:11 ambs joined
pmichaud since other symbols are there 20:11
easier might be to set a flag on the block to indicate that it has a signature
since we put a signature on the block before we scan it 20:12
Tene Any suggestion on how I can do that? Are there arebitrary name/value keys I can throw at a past node?
pmichaud well, you can stick anything you want in the node's symtable :-) 20:13
Tene So adding a "ZOMGLWEHAVEASIGNATURELOL" entry to the symtable would be acceptable?
pmichaud it's within the spec. :-) 20:14
whether it's "acceptable" is another question :-)
Tene The two other things I'm going to have to track down, then, are what sort of error to create and how to create it, and whether I store placeholder vars as '$a' or '$^a' 20:15
pmichaud creating an error is just $/.panic("message") 20:24
placeholder vars need to be '$^a', since $^a and $a are distinct variables
(iirc) 20:25
Tene nods.
pmichaud++
20:26 mire_ joined 20:31 pfig joined
dalek r27420 | pmichaud++ | pgeupdates: 20:31
: [pge]:
: Initial conversions to correspond to S05 updates:
: 'get_scalar' => 'item'
: 'get_array' => 'list'
: 'get_hash' => 'hash'
diff: www.parrotvm.org/svn/parrot/revision?rev=27420
Tene Hm. 20:53
sub foo { say "make and return a sub to say: $^a"; my $x = sub { say $^a }; return $x } 20:54
pmichaud pct still needs a little work on closures, I think.
Tene placeholders are always local to the sub they're used in, I guess.
pmichaud correct.
purl no, it's not!
pmichaud I would write that as 20:55
sub foo { my $a := $^a; say "...."; ... }
and then the inner sub would use $a
Tene Right. Just making sure I don't have to scan around in outer blocks checking. 20:56
21:05 Theory joined
dalek r27421 | pmichaud++ | pgeupdates: 21:12
: [pge]:
: * More updates.
: * Have PGE::Match use Capture_PIR as a base class (DRY).
diff: www.parrotvm.org/svn/parrot/revision?rev=27421
21:18 IllvilJa joined
pmichaud afk # library 21:19
Tene gcc -Llibrary
Ack. I'm duplicating a lot of code. 21:24
Hm. String comparisons in NQP. 21:32
NQP doesn't have 'lt' and 'gt'. Trying to call rakudo's infix:lt and infix:gt is awkward. 21:42
pmichaud We can add lt and gt 21:43
since we now have a need for them :-)
dalek r27422 | pmichaud++ | trunk: 21:47
: [core]: Deprecate Super PMC (RT#53968)
diff: www.parrotvm.org/svn/parrot/revision?rev=27422
pmichaud I guess we need 'le' and 'ge' also, then. 21:48
although we could just implement <=> and leg and be done with it :-) 21:49
Added, r27423 21:52
dalek r27423 | pmichaud++ | trunk: 21:53
: [nqp]:
: * Add lt, le, gt, ge infix operators.
diff: www.parrotvm.org/svn/parrot/revision?rev=27423
Tene pmichaud++
22:06 wknight8111 joined 22:09 teknomunk joined 22:35 wknight8111_ joined 22:54 rdice joined 23:11 wknight8111 left
dalek r27424 | pmichaud++ | trunk: 23:17
: [nqp]:
: * Oops! Forgot a piece of the lt, le, gt, ge operators! (pmichaud--)
diff: www.parrotvm.org/svn/parrot/revision?rev=27424
23:18 TonyC joined 23:37 radhios joined
rafl wonders if files.perldition.org/rakudo_list_undef_perl.diff looks sane 23:44
23:47 askie joined
pmichaud should probably use an interator to loop over elements of the List 23:52
also, should it be (a, b, c) or [a, b, c] ?
*iterator
rafl not sure about the iterator. all of the other methods in List.pir are implemented like that. 23:55
no idea about () vs []. let me see.. 23:56
(a, b, c) and <a b c> is tested 23:58
however [a, b, c] also works, as it seems. what's the difference?
pmichaud no, my question is what should .perl return 23:59
purl okay, pmichaud.
pmichaud should it use (...) or [...] ?
purl, forget my question
purl pmichaud, I didn't have anything matching my question