Parrot 1.1.0 Released | parrot.org/ | 322 RTs left | Weekly Priority: Remove Deprecated Items
Set by moderator on 6 May 2009.
00:06 ilia joined 00:10 ilia joined 00:12 bacek_ joined
dalek rrot: r38730 | whiteknight++ | trunk/src (5 files):
[docs] comment functions in a few files in src/*
00:31
00:33 allison joined
moderator Parrot 1.1.0 Released | parrot.org/ | 322 RTs left | Weekly Priority: Apply Patches, Fix Bugs, Close Tickets 00:38
00:47 gaurav left
dalek rrot: r38731 | whiteknight++ | trunk/src (2 files):
[docs] add lots more function-level documentation for places in src/* that needed it
00:48
rrot: r38732 | whiteknight++ | trunk/src/io (4 files):
[docs] add some function-level documentation for functions in src/io/* that needed it
00:58
01:02 ilia joined
dalek rrot: r38733 | whiteknight++ | trunk/src/io/api.c:
[io] small doc fixup. There is no 'src/io/common.c' file, it should be 'src/io/core.c' instead (I think)
01:04
Whiteknight hmm...the IO system is a lot less complete then I thought it was 01:26
it doesn't look to me like it really uses layers at all
01:28 eternaleye joined 01:46 Ademan joined 01:54 tetragon joined 02:01 Theory joined 02:04 eternaleye joined 02:12 Andy joined 02:42 janus joined 02:45 szabgab joined 03:00 zostay joined 03:20 donaldh joined
dalek rrot: r38734 | petdance++ | trunk/src/dynpmc/pair.pmc:
removed unused variable
03:31
03:32 particle joined
dalek rrot: r38735 | petdance++ | trunk (2 files):
Shimmed an unused interpreter
03:41
nopaste "Util" at 68.191.99.24 pasted "pbc_to_exe patch for pmichaud, now supports all platforms." (264 lines) at nopaste.snit.ch/16532 04:02
cotto util++
That's a lot longer than the old one. 04:03
dalek rrot: r38736 | petdance++ | trunk/include/parrot/exceptions.h:
disappear the assertions if we run under splint
04:04
Util It has to have a second code path for Win32. All one big string that can be directly used, vs a table of 16KB strings that must be copied to a block before use.
cotto It'll be very nice to have a more reasonable build time for rakudo. 04:06
Util While working on the patch, I had some trouble with the `make` dependencies not always rebuilding what I needed. In case anyone needs it, here is what I do on Rakudo (already built with --gen-parrot), after applying the patch : 04:11
cd parrot; rm pbc_to_exe{,.o,.c,.pbc}; make; cd ..; rm perl6{,.o,.c}; make
msg jonathan Could you try nopaste.snit.ch/16532 on your Win32 box with MS compiler? TIA 04:13
purl Message for jonathan stored.
cotto I've just been building against an installed parrot. 04:14
Util cotto: does pbc_to_exe get installed also, when parrot installs itself? 04:15
04:15 tetragon joined
cotto it does with install-dev 04:16
I'd have to check for install
Util Be advised that pbc_to_exe runs itself *on* itself, so you may have to make install-dev again after patching. 04:18
cotto It worked (Hardy i386). That's a massive improvement. 04:20
Util cotto: thanks for the quick testing! 04:21
cotto np. That step of the build process had been bugging me for a while. I'm glad to see it fixed. 04:22
dalek rrot: r38737 | petdance++ | trunk/include/parrot/exceptions.h:
eliminate errors for dupe macros
04:30
rrot: r38738 | petdance++ | trunk/src/packfile.c:
return NULL not 0 for pointers. Cast ->wordsize to int for %d
04:49
05:20 eternaleye joined 05:21 Debolaz joined
dalek rrot: r38739 | cotto++ | branches/pmc_pct/compilers/pmcc (7 files):
[pmcc] move ATTR serialization out of actions.pm

add a cli option to specify the search path for .dump files add stub stage to generate output files
05:42
bacek_ cotto++ # Yeah! 05:46
cotto HLLCompiler is kinda nice once you understand it 05:58
cxreg I bisected that /m bug using git. git++ 05:59
cotto cxreg++ 06:00
cxreg rt.perl.org/rt3/Public/Bug/Display.html?id=3038 06:01
06:01 chromatic joined
cotto That's a small number. 06:01
cxreg no kidding 06:02
06:03 uniejo joined
Tene jonathan: ping 06:31
06:52 iblechbot joined 07:20 donaldh joined
cotto pmichaud, ping 07:47
dalek rrot: r38740 | cotto++ | branches/pmc_pct/compilers/pmcc (4 files):
[pmcc] use PMC::Emitter::$?filename to store the name of the file being compiled
07:56
rrot: r38741 | cotto++ | branches/pmc_pct/compilers/pmcc/pmcc.pir:
[pmcc] revert accidental commit
08:00
cotto msg pmichaud Could you look at nopaste.snit.ch/16534 and tell what to do to make the evalfiles override work correctly? The nopaste is the same code in the pmc_pct branch. 08:02
purl Message for pmichaud stored.
Tene purl: msg pmichaud I'm running spectest_regression right now on a patch to make everything actually compile under a different .HLL. I'll commit if it passes, but I suspect you'll want to change some things, so please review my commit thoroughly... 08:10
purl Message for pmichaud stored.
Tene purl: msg pmichaud I'm a little concerned about how rakudo is modifying core parrot classes... 08:11
purl Message for pmichaud stored.
cotto msg purl hi 08:22
purl Message for purl stored.
dalek rrot: r38742 | fperrad++ | trunk/src/io/unix.c:
[codingstd] Correctly indented preprocessor directives
08:23
kudo: 1064529 | tene++ | (4 files):
Make everything actually compile under a different HLL.
08:32
08:46 masak joined 09:09 jq joined
nopaste "tene" at 98.232.146.13 pasted "spectest fails in .HLL 'perl6' in rakudo" (71 lines) at nopaste.snit.ch/16535 09:10
Tene purl: msg pmichaud look at nopaste.snit.ch/16535 09:11
purl Message for pmichaud stored.
09:15 cognominal joined
dalek rrot: r38743 | fperrad++ | trunk/t/codingstd/c_function_docs.t:
[codingstd] unTODO some files
10:01
10:02 donaldh joined 11:20 donaldh joined 12:03 burmas joined
dalek rrot: r38744 | bacek++ | branches/pmc_pct/compilers/pmcc/src/builtins.pir:
Add sub defined into util
12:12
rrot: r38745 | bacek++ | branches/pmc_pct/compilers/pmcc/src/emitter/pmc.pm:
Add pre_method_gen to Emitter::PMC
12:19 bkuhn joined 12:20 register joined
register twek are you online? 12:24
I am not a bot I just with to have a small chat with U
wisg
wish
dalek rrot: r38746 | bacek++ | branches/pmc_pct/compilers/pmcc/src/emitter/pmc/default.pm:
Add pre_method_gen and stub for get_vtable_func into Emitter::PMC::default
12:32
rrot: r38747 | bacek++ | branches/pmc_pct/compilers/pmcc/src/builtins.pir:
Add couple of useful methods into builtins
rrot: r38748 | coke++ | trunk/DEPRECATED.pod:
We can't remove something -in- the 1.4 release, but immediately after it.
rrot: r38749 | bacek++ | branches/pmc_pct/compilers/pmcc/tools/vtable_pm.pl:
pmc was renamed to pmcc
12:36 HG` joined
Infinoid good morning 12:39
12:40 rg1 joined 12:42 ruoso joined 12:45 cognominal joined
Coke (pbc_to_exe changing to Perl) - I'd avoid that, because then our installed code requires Perl5. 13:05
... caught up, see that's covered, nevermind. 13:08
13:09 gryphon joined
Util For the record, pbc_to_exe changing to Perl is off the table (and was only ever suggested as a sub-week measure). The new patch (nopaste.snit.ch/16532) is still in PIR. 13:21
Coke Util++ 13:47
moritz Util: I know nothing nearly about the compilers and the OSses, but wouldn't a distinction between compilers make more sense than a distinction between OSses? 13:49
(I also don't know if the compiler information is easily accessible)
Util: anyway, your patch works fine for me (linux amd64 with gcc-4.1) 13:55
13:55 davidfetter joined
moritz will test with gcc-4.3 and --optimize next 13:55
13:57 Andy joined 14:37 davidfetter joined
particle- msg whiteknight please remember that *all* api changes require deprecation. even if they're most likely unused, not well documented, or don't do the right thing. if it is a public interface, whether by spec or de facto, it must be properly deprecated in the post 1.0 world. 14:40
purl Message for whiteknight stored.
Coke msg whiteknight also, the notice can go in now, but the change cannot occur until AFTER the next big release, not IN the next big release. 14:41
purl Message for whiteknight stored.
particle- perhaps a wider audience needs this message.
moritz Util: your patch also works here with gcc-4.3 and --optimize 14:42
jonathan Also don't forget the catch-all get-out-of-jail-free card on that stuff that was in 1.0.
Util: Will try your patch on Win32/MSVC++ later today. 14:43
(I refer to:
All C API functions that aren't currently named according to the
'Parrot_<system>_*' scheme will be renamed. If you depend on these
functions in an extending/embedding interface or C-level custom PMCs,
check in 1.4 or 2.0 for the new names.
)
particle- maturing as a software development organization is not easy. 14:44
jonathan Not sure I get your point. 14:45
Coke jonathan: yay, I wasn't particularly happy with that entry as it basically sets aside the deprecation policy for 2 releases. :|
s/yay/yah/ 14:46
dalek rrot: r38750 | whiteknight++ | trunk (2 files):
temporary fix and deprecation node for TT #664
Coke I think having a process is nice and all, but having working code would be better.
jonathan pobject_lives for example was one thing that this deprecation policy explicitly says we don't have to worry about renaming. 14:47
Coke (which is a non-sequitor to the GOOJF entry)
jonathan (I agree in the long run something like this shouldn't be there. But I think it was the pragmatic decison for 1.0.)
Coke I tend to think it means that we shouldn't have called it 1.0. =-) 14:48
14:52 Theory joined, mikehh joined
Tene purl: msg pmichaud Many of those failures come from Actions.pm trying to call things that are now in the perl6 namespace... I'm thinking maybe we need to export them. 14:55
purl Message for pmichaud stored.
Tene purl: msg pmichaud I'll be working on this during spare time during class today... I'll have more to say after 4:00 PST 14:56
purl Message for pmichaud stored.
Util moritz: (compiler vs OS) Yes, exactly so. The "XXX" comment in the patch is about that issue. I could not find a good way to identify the compiler, and was favoring a completed patch over that edge case. 14:57
If the current patch tests well enough for me to commit (hopefully in the next few hours), I will then try something like `$P0['cc'] == 'cl'` as a refinement.
14:57 iblechbot joined
dalek rrot: r38751 | petdance++ | trunk/include/parrot/exceptions.h:
my splint versions of the assertions don't actually work. :-(
15:03
Andy is src/exec_save.c anything getting used? 15:10
Coke if it was in there before 1.0, theoretically, yes. 15:13
Andy it doesn't get built 15:14
particle- is the exec core around still? 15:15
Andy I don't know.
I'm just lookin' at parts.
15:20 donaldh joined
Andy sure looks to me like it's unused. removing src/exec_save.* has no effect on a build 15:21
particle- to 'make fulltest' 15:22
*do
Andy ok, but it doesn't cause any problems with a regular make 15:23
Coke note that even fulltest doesn't necessarily mean it's not used on some platform
(since core availability varies by platform)
particle- it may be unused, but we don't have sufficient proof yet
you're on the right track, though, andy 15:24
Andy prob'ly ditto exec_start.c
15:26 register joined
pmichaud cotto: ping 15:31
message Tene (re: actions.pm calling things in perl6 namespace) actions.pm should be running from the perl6 namespace, so it shouldn't be an issue. Either that or I'm not understanding the problem. 15:33
purl Message for tene stored.
15:34 jan joined 15:39 rdice joined 15:40 darbelo joined 16:10 register left 16:18 whoppix joined 16:21 rdice joined
cotto pmichaud, pong 16:26
Tene pmichaud: the problem was that I was still waking up and telling you my "solution" generated in my dream. :) 16:33
16:40 cghene joined
pmichaud cotto: you need to add :flat and :flat :named to your call to the superclass method 16:44
cotto pmichaud, I still get the same result after adding those: 16:50
nopaste "cotto" at 96.26.202.243 pasted "after adding :flat and :flat :named" (19 lines) at nopaste.snit.ch/16537
pmichaud cotto: it's trying to execute whatever is coming back from your compiler (which isn't executable) 16:56
if you're just returning a parse tree, then you probably want to be doing --target=parse
cotto Thanks! That makes it much clearer what's happening. 16:58
How could I prevent the compiler from trying to execute anything, since pmcc doesn't really care about that right now? 17:00
17:00 riffraff joined
particle- cotto: you just want things parsed? 17:00
pmichaud Yes, I was just thinking that perhaps HLLCompiler should be smart enough to know that if it gets a parse/PAST/POST tree back it should produce a warning and exit, instead of the cryptic invoke message. 17:01
particle- there's a trick with pasm, just issuen 'end' statement first
cotto I have a separate stage to generate some output file, but I don't care about anything after that.
pmichaud cotto: oh, then you ought to be customizing the stages.
particle- cotto: add target='separate-stage-name'
pmichaud see the 'stages' method on HLLCompiler 17:02
cotto pmichaud, I'm deleting the post, pir and evalpmc stages, and adding a custom gen_files.
pmichaud you can set the compiler to go through whatever sequence of stages you want.
particle- i wrote a blog post about customizing hllcompiler stages last year
cotto yup. nice feature that
pmichaud (the api for doing that will be changing shortly, but it'll work for now) 17:03
cotto So for now the best solution is to pass --target=last_stage?
pmichaud no, customizing the stages is okay. 17:04
There's a 50/50 chance I'll continue to support the 'stages' attribute. And if it isn't supported, it'll be easy to switch to whatever the new API is.
cotto ok, but it's still trying to execute what the last stage returns. I don't want that.
pmichaud if it's still trying to execute, then your stages aren't being set properly. 17:05
The error message is coming from evalpmc, so it's still getting there somehow.
17:05 cognominal joined
nopaste "cotto" at 96.26.202.243 pasted "error coming from 'eval'" (5 lines) at nopaste.snit.ch/16538 17:07
cotto should I override 'eval', which is where the error is coming from?
pmichaud oh, wait, you're right.
From your main routine (the one that calls 'command_line'), just pass a target parameter there. 17:08
It'll be used as the default.
cotto ok
pmichaud so you can have ...'command_line'(args, 'target'=>'gen_files')
cotto yup
Thanks for helping me figure that out. 17:09
pmichaud++
17:12 NotFound joined
dalek kudo: cf98479 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 388 files, 11257 passing, 0 failing
17:15
17:21 whoppix joined 17:32 jan joined
cotto bacek, you're going to like this 18:14
time? 18:15
purl time is 18:12:06 2009 and (did you mean "clock"?) or flowing like a river
cotto clock
clock?
purl cotto: LAX: Wed 11:15am PDT / CHI: Wed 1:15pm CDT / NYC: Wed 2:15pm EDT / LON: Wed 7:15pm BST / BER: Wed 8:15pm CEST / IND: Wed 11:45pm IST / TOK: Thu 3:15am JST / SYD: Thu 4:15am EST /
cotto or at least you will when you wake up
dalek rrot: r38752 | cotto++ | branches/pmc_pct/compilers/pmcc (6 files):
[pmcc] make pmcc emit files when involed from the command line, give some functions more accurate names
18:19
rrot: r38753 | cotto++ | branches/pmc_pct/compilers/pmcc/pmcc.pir:
[pmcc] remove an accidentally committed say
18:22 rdice joined
NotFound Some idea for a pipe write test that does not need temporary files? 18:24
cotto What's wrong with temporary files? 18:26
NotFound That's for bonus points ;) 18:27
Some idea for a pipe write test? Bonus points for avoiding temporary files? 18:28
cotto You could write up a tiny pir program that stores stdin to a temp file and pipe to that. 18:29
no bonus points, though
NotFound Negative point for using two temporaries ;) 18:30
rg1 you need to fork if you want to avoid temporary files 18:31
moritz why two temporaries?
NotFound Hey, if it were easy I didn't ask ;)
moritz rg: there's no fork on windows (afaik)
NotFound The generated pir program and the result.
moritz it doesn't have to be generated 18:32
it can simply live in the svn repo
(to avoid race conditions)
rg moritz: there must be something, but yes, i figured there would be the problem
NotFound There is some other test that aleady does that?
particle- doesn't parrot have file/temp.pir? 18:52
or equiv?
purl i guess equiv is getting the whole has_many
NotFound examples/pasm/cat.pasm looks like a good candidate
Tene pmichaud: what do you want me to do with things in parrot namespace that call perl6 functions? 18:59
pmichaud: like Role or Class
pmichaud: I'm doing get-root-global (rakudo-hll, ...) then invoking it that way
pmichaud Tene: depends on the function. If they're static, then we should be using .const 'Sub' 19:00
do you have an example handy?
dalek kudo: 3f8ff62 | pmichaud++ | src/builtins/io.pir:
Default file I/O to utf8 encoding.
19:01
kudo: 7b56f00 | pmichaud++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
Tene pmichaud: src/parrot/classhow.pir 19:02
'prefix:?'(...)
pmichaud I'd use the const Sub approach. 19:03
Tene can you show me an example here? 19:04
pmichaud checking.
purl i think checking is just different
pmichaud You might be able to do simply:
.const 'Sub' $P0 = 'prefix:?' 19:05
.tailcall $P0($I0)
but there might be compliciations since 'prefix:?' is a :multi
Tene um... how do you look up by hll namespace with that?
pmichaud if that's the case, then simply
you don't have to look up by hll namespace
it's looking up by :subid
Tene oh 19:06
some don't have subid
pmichaud since 'prefix:?' will be part of the same compliation unit as ClassHOW.pir (as well as the rest of the perl6 stuff), it's a local lookup.
Tene !dispatch-method
pmichaud Any sub w/o an explicit :subid uses its name as its subid.
Tene ah
thanks
:) 19:07
pmichaud If for some reason that doesn't work (e.g., because something is a multi and it's getting in the way), then feel free to give subs an explicit unique subid.
Tene making progress. :) 19:10
19:20 donaldh joined
dalek rrot: r38754 | NotFound++ | trunk (3 files):
[core] fix open pipe for write on linux, add a test for it
19:21
jonathan Tene: I'd pondered subclassing Parrot's Role at some point in the future rather than adding bits to it. 19:29
Tene: But it's a drop in the bucket when considered agaisnt all the other stuff we add to Parrot classes, so it's never really been high priority for me.
NotFound Urgh. Test pass in my laptop but fails in my desktop :/
jonathan Tene: Feel free to do a short-term-ish fix on ClassHOW.pir too - I expect Perl 6 will have it's own subclass of P6metaclass at some point also. 19:30
pmichaud I'm not worried about the places we muck around in parrot's classes/roles (yet) 19:31
19:31 Andy joined
jonathan Tene: I fixed something a copule of days ago that I think will also fix gist.github.com/109986 btw 19:32
erm, maybe even yesterday :) 19:33
moritz bug admins, please delete RT #65614 (spam) 19:42
cotto moritz, I don't see any spam. ;) 19:44
moritz cotto: that's good ;-) 19:45
NotFound Can someone try prove -v t/op/io.t with r38754 on linux?
moritz NotFound: sure, give me a second... 19:46
cotto NotFound, test 4 fails
nopaste "cotto" at 96.26.202.243 pasted "io test failure" (22 lines) at nopaste.snit.ch/16540
NotFound Is working in one of my systems and failing on the other. Don't know why, the pipe is working. 19:47
moritz same error here 19:48
PacoLinux same here 19:49
particle- moritz: you can move it to the spam queue
that's how you deal with rt spam 19:50
nopaste "NotFound" at 213.96.228.50 pasted "pipe write example" (6 lines) at nopaste.snit.ch/16541
moritz particle-: thanks
NotFound Can you try that to verify that the pipe is really working?
moritz NotFound: works here
NotFound Strange... 19:51
purl strange is but true
nopaste "darbelo" at 200.49.154.172 pasted "Results of prove -v t/op/io.t for OpenBSD -current, In case someone cares." (24 lines) at nopaste.snit.ch/16542 19:52
Coke anyone know who runs use.perl? 19:53
use.perl?
purl i think use.perl is use.perl.org, Pudge's slashcode test case or (see use perl) or www.faisal.com/images/weblog-lc.gif or (: use.perl journal rss) or slow or broken (pick one) or *horrible* from a mobile phone
Coke seen pudge?
purl pudge was last seen on #perl 19 days, 1 hours, 30 minutes and 4 seconds ago, saying: not as funny as your initial stupidity, of course. [Apr 24 18:20:25 2009]
Coke pudge?
purl it has been said that pudge is using what ARE the common meanings
NotFound darbelo: thanks
moritz NotFound: is the one machine wheere it passes the one where you wrote it?
NotFound moritz: yes 19:54
Tene jonathan: still looks broken to me...
moritz NotFound: maybe forgot to add a file?
NotFound: (I haven't looked at the test, ,so I don't know if that makes sense...)
jonathan Tene: OK, it must be something else then.
NotFound moritz: no, the file cat.pasm was already in the repo
jonathan Tene: It's ticketed so I'll get to it. 19:55
TimToady phone 20:00
Coke be there in 2m
Tene we still have a parrot issue with HLL and loadlib 20:03
if you load-bytecode something that uses loadlib, you get fails
depending on HLL
frex, --target pir with hll'd rakudo
NotFound What gcc version are tou using? Mine that pass is 4.3.3, fails in 4.2.4 20:04
Tene fails without .loadlib perl6-group and ops
moritz 4.3.2 (fail)
NotFound I'll try with a fresh checkout on the passing machine 20:07
Pass 20:13
I run out of ideas 20:14
20:14 jhorwitz joined
NotFound perl versions are: 5.10.0 pass, 5.8.8 fails 20:19
20:26 PacoLinux joined
moritz 5.10.0 fails (here) 20:30
darbelo 5.10.0 fails on OpenBSD too. 20:31
20:33 wilig joined 20:34 dduncan joined
Coke what's failing? 20:44
purl failing is good!
rg no, purl, failing is bad! 20:45
purl okay, rg.
darbelo rg: You're no fun ;)
20:47 dduncan left
moritz purl? 20:51
purl moritz?
moritz purl: you should answer with "purl is failing bad" or so ;-)
purl OK, moritz.
Infinoid Bilbo Baggins, huh 20:57
is this pre-evil-ring Bilbo or post-evil-ring Bilbo?
cotto also, who's supposed to be able to vote? I can change the options, but I don't see anything about voting. 20:59
Coke I presume it's a test for vote needed at the annual meeting.
did you login ?
cotto It'd be odd if I could edit without logging in. 21:00
Coke if I cancel my vote, I see "yes/no" radio buttons and a vote button. 21:01
if I vote, I see the tally.
you may have content privs.
(but not voting privs)
I see nothing restricting who can vote. 21:02
what browser are you using (works here in chrome)
cotto firefox, so it's probably a permissions thing 21:03
Coke I was nearly named Bilbo. Thankfully at least one of my parents was sober. 21:04
cotto One of the kids at my church is named "Zelda".
Coke oh dear jeebus.
I just tried with ff3.0.9 on winxp, worksforme. 21:05
cotto ok, so it's definitely permissions
dalek rrot: r38755 | NotFound++ | trunk/t/op/io.t:
[test] TODOed pipe writing test, don't know why fails
21:25
darbelo cotto: ping 21:30
cotto darbelo, pong
darbelo are there any examples I can check for 'group whatever' dynpmcs 21:31
cotto sure. The digest dynpmcs in src/dynpmc use them. 21:32
(md5, sha1, etc)
21:33 rdice joined
darbelo Oh. Yep, there it is. Sorry missed that before. 21:34
cotto np 21:38
darbelo One more question. 21:40
I need to get the pointer stored on the DecContext singleton. Should I use a method or somethong else? 21:41
s/somethong/somthing/
s/somthing/something/ # Fingers i h8 you. 21:42
cotto Why?
nm
obvious 21:43
darbelo To pass it to the decDoSomethingToNumber(number, othernumber, context)
cotto thining..
probably a method since get/set_pointer are taken
btw, lua + nes = awesome: www.youtube.com/watch?v=IvDXZmS2MAU
Infinoid (the singleton pmc api)-- 21:44
darbelo A method will expose the pointer to PIR, and everyone else. Which make me kinda nervous.
It's get-only, but still.
cotto yeah, the current state of things is not at all ideal 21:45
I wouldn't mind working on making things saner, but the change couldn't be committed until after the next stable release (1.4, July 21) 21:46
(or at least I think so, since it'd be an api change)
Infinoid yeah, some language dynpmcs might depend on the old behavior 21:47
cotto exactly
darbelo I would like PMC in a group to have a way to 'reach into eachother's guts'. So to speak. 21:48
Infinoid how would you fix it? I've been thinking about just adding a singleton flag to struct _vtable.flags
darbelo: shared state, hmm. like a shared struct? or inherited attrs? 21:49
cotto Infinoid, I haven't thought about it yet.
Infinoid darbelo: Maybe you could define a common struct typedef in a central header file and give each of your PMCs an attr instance of that struct? 21:50
darbelo Something akin to a PARROT_NAMEOFTHEOTHERPMC(pmc) accsessor.
But that would require reworking the wayt the groups are built.
Infinoid ah, is that missing for dynpmcs? hmm.
You'd also have to be quite sure that the PMC you've got is of the right type, subclasses might have a different attr struct layout 21:51
dalek rrot: r38756 | petdance++ | trunk/src/extend.c:
removed two unused vars
21:52
cotto Infinoid, actually subclasses will have a superset of the parent class' ATTR struct.
Infinoid Even with MI?
cotto We don't support MI for ATTRs.
Infinoid I was thinking the ordering might change
oh, ok
(is this why we don't support MI for ATTRs?) 21:53
cotto yes
darbelo It could only work for the members of the group, those are known at compile time.
I't a matter of generating an extra header. But that would require reworking the wayt the groups are built, and of pmc2c. Becouse it adds an extra pass. 21:54
cotto do not want 21:55
or at least not until pmcc is ready
darbelo Yeah, I'm not volunteering either.
Back to reality, then. There's no way to reach into the guts of another PMC that I can use? 21:58
Infinoid uh, there's already a VTABLE_PMC_IS_SINGLETON flag in vtables[n]->flags
cotto darbelo, what kind of gut reaching into do you want to do? 21:59
darbelo Just get the pointer stored in the ATTR
cotto Ok. I thought you were referring to something more promiscuous. 22:00
just use a method for now 22:01
actually, you could have a common abstract base class with the context as its ATTR and inherit from that 22:03
then PARROT_BIGFOO(x)->context would work on anything that inherited from the base class
and it'd stay hidden from PIR 22:04
darbelo A common ancestor ot both DecNum and DecContext. I there a way to make that non-instantiable? 22:06
nm
You said abstract.
cotto I haven't played with abstract PMCs, so there might be some gotchas
dalek rrot: r38757 | petdance++ | trunk/config/gen/makefiles/root.in:
many new splint flags
22:07
rrot: r38758 | petdance++ | trunk/src/packfile.c:
add a PARROT_WARN_UNUSED_RESULT
cotto idk if it'd need to be an ancestor of DecContext 22:08
darbelo It' be pretty trivial: one ATTR, no methods. There isn't too much I can get wrong ;)
cotto yup
darbelo Ha. It even works now! : trac.parrot.org/parrot/ticket/638 22:10
That would put another ATTR on DecNum, an unused pointer to a decContext structure. Right? 22:12
cotto phone: bbs 22:14
Infinoid I think the common ATTR would be in the base class, whatever you're calling that. (DecBase?) 22:17
then that field would automagically appear in your subclasses
#638 was about vtable function pointer initialization
dalek rrot: r38759 | petdance++ | trunk (2 files):
removed unused return values. shimmed unused arguments. Added some splint decorators.
Andy I love a good day with the code shears. 22:18
Infinoid Andy++
Andy I don't think it's bad to modify the func signatures I did.
Infinoid I'm not sure any code outside the parrot codebase itself calls those 22:20
cotto darbelo, sounds good
darbelo DecNum is going to accsess the field in DecContext and leave it's own completely untouched.
Infinoid in fact, I think only IMCC, PIRC and the Packfile PMCs would call the C packfile API 22:21
darbelo The macros support that?
Andy holy crud, please enjoy pf_debug_packed_size() in src/packfile.c 22:23
line 2632
I'm not normally Mr. Optimization, but I think that's a fair one in this case.
dalek rrot: r38760 | petdance++ | trunk/src/packfile.c:
use character \\0 instead of 0
22:24
jonathan Andy: Heh, gotta leave the optimizer some work. ;-)
Andy jonathan: No, I don't think we do. :-) 22:25
jonathan :-)
cotto Andy, nice find. I don't usually find code that funny.
jonathan Andy: I bet it dates back to a time when the C string was stored in the bytecode and we needed to calculate its length. 22:26
Andy Clearly it's trimmed-down cut'n'paste that's never been revisited. 22:27
jonathan Aye.
Well, it's not wrong, just sub-optimal.
Andy whoo! Saved 32 bytes in the .o file! WHOOOOO!
jonathan ;-)
Andy MAKE A SPECIAL RELEASE
jonathan lol
Andy DAMN THE MONTHLY SCHEDULE
THIS IS A PERLBUZZ SPECIAL REPORT....
running make test and going home for dinner. 22:28
cotto it's a good thing you can parallelize 22:29
Andy ?
you mean two projects at once?
moritz going home, and running 'make test'
Andy nohup make test &
bacek good morning 22:36
cotto hi, bacek
bacek cotto++ # Step 4 even closer!!!
cotto profit++ 22:37
bacek cotto: header files named "pmc_foo.h" 22:41
cotto easy fix 22:42
bacek indeed 22:43
22:43 Theory joined
bacek afk # @kids ~~ School, $self->work 22:44
Tene pmichaud: what about perl6multisub.pmc? it looks up !DISPATCH-JUNCTION-MULTI from the parrot ns explicitly... 22:49
pmichaud it should be using const.
oh 22:50
it can't do that, it's a pmc
ummmmmmm.
maybe !DISPATCH-JUNCTION-MULTI can always go into the perl6 .HLL ? 22:51
and perl6multisub.pmc always looks for it there?
Tene it uses get-hll-namespace(interp), but pmcs are *always* in the parrot namespace 22:53
pmichaud maybe stick !DISPATCH-JUNCTION-MULTI in both namespaces?
Tene OK 22:54
for now
pmichaud (yes, I realize none of these answers are particularly appetizing. It's annoying that PMCs always live in the parrot namespace)
the other option is to have perl6multisub.pmc always look for things starting at the root namespace
afk, dinner 23:04
23:20 donaldh joined
Tene pmichaud: all tests passing :) 23:23
rg <purl>ship it!</purl> ;)
Tene pmichaud: I'll leave it with hll parrot for now...
feels like hll perl6 is slower... need to check. 23:24
jonathan Tene++ # nice work! 23:40
jonathan -> sleep 23:41
dalek rrot: r38761 | cotto++ | branches/pmc_pct/compilers/pmcc/pmcc.pir:
[pmcc] pmc headers are named supposed to be named pmc_foo.h. Fix that.
23:43
Tene everything that failed before is passing now, but just now doing a last spectest run. 23:45