Parrot 0.8.2 "Feliz Loro" Released www.parrot.org/news/2008/Parrot-0.8.2
Set by moderator on 23 December 2008.
dalek r34947 | jkeenan++ | trunk (5 files): 00:08
: Change names of two Parrot::Configure::Data methods to reduce the number of
: subroutines named '*slurp*'. Cf.: trac.parrot.org/parrot/ticket/117.
review: www.parrotvm.org/svn/parrot/revision?rev=34947
r34948 | jkeenan++ | trunk (5 files): 00:10
: Change names of two postconfiguration test files to correspond to changes in names of Parrot::Configure::Data methods.
review: www.parrotvm.org/svn/parrot/revision?rev=34948
00:10 AndyA joined
dalek r34949 | Whiteknight++ | branches/pdd09gc_part1/src/gc: 00:11
: [pdd09gc_part01] pulled out some stuff that I don't support like PMC_next_for_GC and dod_trace_ptr, which can be dealt with later
review: www.parrotvm.org/svn/parrot/revision?rev=34949
00:22 Limbic_Region joined 00:28 tetragon joined
dalek r34950 | Whiteknight++ | branches/pdd09gc_part1/src/gc: 00:39
: [pdd09gc_part1] some small fixes and diagnostics. Current crash appears to be in the memory pool handling during string concatenation, and not part of the normal GC
review: www.parrotvm.org/svn/parrot/revision?rev=34950
r34951 | jkeenan++ | trunk (5 files): 01:01
: Remove dwim.pir example. Cf.: trac.parrot.org/parrot/ticket/120.
review: www.parrotvm.org/svn/parrot/revision?rev=34951
01:10 Fayland joined, tetragon joined
nopaste "kid51" at 68.237.17.128 pasted "warning during Configure.pl: gen::makefiles" (3 lines) at nopaste.snit.ch/15187 01:21
kid51 allison: ping 01:26
01:26 pdcawley joined
allison kid51: pong 01:26
kid51 allison: does the warning shown in my last nopaste pertain to what you were doing earlier today?
(importing stuff from rurban's branch)? 01:27
chromatic Looks like a Cygwin thing.
allison kid51: possibly, do you know what revision it appeared on?
kid51: the suspicious revision is going to be r34940 01:28
kid51 I'm seeing it at 34951. I know it must be recent because I've been running Configure.pl frequently today.
allison kid51: that's where I merged in some cygwin configure changes
kid51: and what platform? 01:29
kid51 Darwin and Linux
purl Darwin and Linux are the OSes I have...
kid51 purl has good taste in OSes
purl kid51: what?
allison Darwin PPC/Intel? which version? 01:30
kid51 PPC
But I think this should appear on any OS other than cygwin. 01:31
chromatic Agreed.
allison r34940 had no problems on 10.5 Intel and Ubuntu Edgy... checking for changes since then 01:33
01:35 MariachiElf joined
nopaste "kid51" at 68.237.17.128 pasted "Possibly relevant code from config/gen/makefiles/root.in" (15 lines) at nopaste.snit.ch/15188 01:35
allison ok, it was definitely introduced in r34940 01:37
(just confirmed)
kid51 What would 'config.fpmc' be? Typo? 01:38
Infinoid that's what we generate config_lib.pasm from with miniparrot during build time, I think
kid51 Well, it makes a certain kind of sense to say that 'cygchkdll' is undefined on non-Cygwin systems. Question is: How come this warning was never triggered previously? 01:41
allison oddly, that changeset includes a change to set 'cygchkdll' to an empty string by default 01:43
kid51 Perhaps the deletion of cygchkdll => '', from config/init/defaults.pm ?
Let me try that. 01:44
allison kid51: yes, that's almost certainly it, revert that change 01:45
kid51 doing make realclean;perl Configure.pl 01:46
01:47 jrockway joined
dalek r34952 | jkeenan++ | trunk/config/init: 01:50
: Restore assignment of empty string to 'cygchkdll' so that that attribute is not seen as undefined by genfile() call in config step gen::makefiles.
review: www.parrotvm.org/svn/parrot/revision?rev=34952
rurban I've just deleted the whole cygchkdll stuff, because it is not needed anymore. 01:57
The config checks can be done via cygwin, and the dll check is unnecessary 01:58
s/done via cygwin/done with cygwin/
Why do you have to that at 3am in the night :)
01:59 tetragon joined
rurban allison, kid51: cygchkdll is required in that version because the library patches are not yet in. the importlib and dll must be in build_dir. and all references to cygchkdll must also be gone. 02:06
allison rurban: the problem was that the patch deleted the default value of 'cygchkdll' 02:07
rurban: try again? that last comment doesn't make sense 02:08
rurban In the end we don't need cygchkdll anymore. But we have now an interim state. why don't you apply the patches in the order I committed
I got rid of cygchkdll completely.
allison rurban: okay, will you want to reintroduce 'cygchkdll' later? 02:09
rurban config/inter/libparrot.pm is important e.g.
allison rurban: or have you permanently removed it? 02:10
rurban No. in the branch it is gone completely.
permanently removed. bad name, lame functionality
allison rurban: you had so many different changes mixed together, I had to break them down into stages 02:11
rurban :)
allison rurban: independent patches generally work best
rurban we have time enough to fix everything 02:12
allison rurban: ?
rurban the problem is that they are interconnected. one fix leads to the change, and so on.
allison rurban: yes, exactly, that's the problem. If you develop your changes independently it will be much better. 02:13
rurban These were massive changes
allison rurban: well, they were several independent changes 02:14
rurban: each could be grouped into a set and applied to trunk cleanly
rurban: it just requires a bit of organization
rurban I organized with quilt and all my patchsets worked fine, up and down. 02:15
you need to apply them in the correct order
and all, not just cherrypicking.
allison rurban: right, but we aren't applying all the patches
rurban: that's the reason for logical groupings of changes, so they can be accepted/rejected as a group, rather than being all mixed up 02:16
rurban ooh. will there be discussion? if you have told me what is bad I would have done that in the branch.
chromatic Certainly not in one big thud to trunk.
allison rurban: I sent you an initial email, will send to the list if you're comfortable with it 02:17
rurban Sure. But it's a it late, and if I knew before it would have been easier.
I had theese ready patches in august.
allison rurban: aye, but it was such a huge changeset, it took me a long time to review it 02:18
02:18 ask_ joined
allison rurban: if they were smaller independent change sets, I could have reviewed them one at a time and given you a quick reply on each 02:18
mugwump would just bounce them for not being small and independent :-> 02:19
allison mugwump: we give new developers more grace :)
rurban hopefully you apply the important parts so that trunk works and can be installed at least.
allison rurban: I applied several independent changesets that could cleanly apply to trunk/
rurban I can make easily 100 patches out of it, but it is logically grouped to the tickets 02:20
allison rurban: I extracted them from the total diff on the trunk and made sure each passed all tests.
rurban but then they were applied in strange random order.
allison rurban: the problem is that the tickets depend on eachother.
rurban yes
allison rurban: each ticket should stand alone, be able to be applied without any of the other tickets 02:21
rurban but only two, the big makefile changes
allison rurban: yes, the makefile changes I didn't apply
rurban that's not possible. there must be an order.
allison rurban: also, the src/library.c changes I didn't apply, because they still crash
rurban similar to be p5p cleanup I made. he applied just the makefile changes but not the Configure changes. So it didn't work at all. 02:22
allison rurban: well, I had to introduce the change adding #IF and #UNLESS before the makefile changes from #CONDITIONAL_LINE and #INVERSE_CONDITIONAL_LINE could be made 02:23
rurban can you please paste the src/library.c errors? I tested on cygwin, debian and freebsd.
allison but, the conditional line changes should have been a completely separate patch from the install changes
rurban I needed them for the install logic 02:24
allison rurban: I'm taking your word for the crashes, it says in the comments
rurban you mean ,brak up the lib from the makefiles, okay, that's a point
chromatic Work in smaller increments. 02:25
rurban well, i have full time for two more days...
allison and do one set of changes for CONDITIONED_LINE to IF, and a separate set of changes for other makefile changes
rurban: I gave some specific suggestions for how to move forward on the remaining code in the branch in the email 02:27
rurban: do feel free to ask questions. Putting together good independent patches is a skill all good developers learn at some point, and a bunch of us here are glad to help. 02:28
02:28 Andy joined
mugwump my recommendation on that front is to use something like quilt 02:31
(or stgit if you're a git-svn user, or mq if you prefer mercurial, etc)
allison mugwump: he used quilt, but that doesn't actually force you to create sensible patch sets 02:38
mugwump: only a bit of programmer skill can do that
mugwump: the tricky part is that the order the developer thought of things is almost never the right order for patch sets 02:40
(which has always been my biggest argument with git)
kid51 My 2 cents: I've been following the pdd30install_stage3 and have become concerned that the changes being planned there are too big for one branch. This afternoon, e.g., I noticed vast changes in 'make test'. But, OTOH, I can see that extracting patches from a branch still undergoing development and applying them to trunk is a recipe for trouble. 02:50
I concede that I haven't read the PDD in question, so I may not understand the scope of what had to be done. 02:52
02:52 Eevee joined
kid51 My 3rd cent: Other than issues already documented in RT, Configure.pl must run cleanly at all times. So any time a warning or failure shows up there, immediate attention is required. 02:57
mugwump allison: yes. having quilt-like features are essential though for re-ordering hunks through the incremental patch sequence as it is built 03:06
of course the programmer skill to built the incremental sets should go without saying..
kid51 Parroteers: feedback requested on this: use.perl.org/~kid51/journal/38219 03:24
allison kid51: I've now applied all changes from pdd30install_stage 3 that will be applied to trunk. All remaining changes I've asked Reini to split into smaller patch sets. 03:25
pmichaud kid51: the answer to your second question is thus far best answered by www.rakudo.org/2008/12/rakudo-perl-...ver-5.html 03:26
shorten pmichaud's url is at xrl.us/bebhyp
pmichaud kid51: if parts of your question are left unanswered, then let me know which and I'll post answers.
kid51 Well, *you* were, of course, the person that post was primarily intended for :-) 03:27
pmichaud does my post adequately answer the second question? 03:28
allison kid51: and agreed on Configure.pl running cleanly at all times. My bad in this case, because I didn't see the warning when I applied the patch.
kid51 pmichaud: Part 2 I dig. It's graphic. And for this purpose I'm looking for something that makes a strong first impression. 03:29
Something that says, "If you don't like this, then RTFM."
mugwump kid51: gosh there was a lot of FUD along those lines on the /. post about perl.git too
pmichaud of course, the graphic is out of date -- more up-to-date graphs are at www.pmichaud.com/perl6/ and www.rakudo.de/ 03:30
kid51 pmichaud: Well we should figure out a way to have the latest graph at rakudo.org -- because in these situations, I need to be able to remember a web address quickly. 03:31
pmichaud yes, I need to get with Andy and find out what we can do to have some permanent pages set up on rakudo.org
either that or we'll need to point people to the perl6/rakudo wiki
kid51 allison: And I didn't see it at first either, because I was focusing at that moment on things that are post-configuration and hence don't require my compulsive 'make realclean'. 03:32
A cron job that updates it nightly would be good.
Andy pmichaud: I"m thinking of switching Rakudo.org to Drupal over MT 03:33
kid51 A somewhat related question I got posed today at this Linux meetup was: "Why doesn't Perl just build on the Java virtual machine?"
Andy "just"
pmichaud Andy: Drupal could work too. 03:34
Andy prob'ly more suited towards publishing pages
kid51 I knew enough to respond by asking: "The JVM: is that open-source?" Response: "It is now."
Andy SO MUCH I CAN DO WHEN BOOK IS DONE
03:34 ask_ joined
kid51 wonders what BOOK Andy is writing. 03:35
Andy oh good golly
pmichaud as for your first question, I'd probably respond with something like "oh, when did the Perl 5 specification finish?" ;-)
Andy www.amazon.com/Land-Tech-Job-You-Lo...1934356263
mugwump kid51, audreyt posed a similar question, why did VM development have to stall language design, before writing pugs
pmichaud I don't know that VM development stalled language design. AFAICT, what stalled language design was implementation. 03:36
03:36 tetragon joined
kid51 pmichaud: That sort of response is a bit too esoteric for the kind of situation I'm describing. 03:36
pmichaud it's a fallacy to think that language design completely precedes or is independent of implementation in this case. 03:37
mugwump sure, pragmatically you consider implementation when designing
pmichaud kid51: it's not really intended as an esoteric response. People have this mythical idea that we stabilize language design and then build an implemenetation. But that's not really how it works.
I'd say that 80% of the language design changes over the past three years have been in direct response to things discovered in the process of making an implementation. 03:38
kid51 pmichaud: I know the esotericity (?) is unintended. But the people who pose this question are, to a greater or less extent, looking to bait me. I don't want to get into the game of out snarky-ing them. I need an answer I can give with a straight face and force them to drop their attempts to bait me and to engage in a serious discussion. 03:40
pmichaud then the answer is "the test suite for Perl 6 needs a lot more tests, and Rakudo covers about 60% of the tests we do have." 03:42
kid51 pmichaud: In other words, I want to provide a response that changes the tone of the discussion to one that is respectful of what we've accomplished so far and curious about the next steps.
chromatic I take software development advice from people who haven't tried to build a new language on a new virtual machine with almost completely no money somewhat less than seriously.
03:44 jimmy joined
pmichaud at our current rate of progresses (June 2008 to present), we would expect to be passing ~15,000 tests by the end of 2009. 03:44
kid51 chromatic: Well, these people aren't even going so far as to offer advice. But my other concern is that I want to recruit other people *in New York City* to work on the Parrot project. 'cause just working online gets awfully lonely. I enjoyed this Linux meetup today for the same reason that I enjoy our hackathons: F2F hacking.
chromatic My best response is "How long *should* it take to write this software?" 03:45
Then keep asking for details. 03:46
pmichaud the typical answer to that would be "eight years is too long."
(I don't agree with that answer, but that's what it would be from a baiter)
chromatic Okay, how long should it take to write a grammar engine which supports lexically scoped modifications? 03:49
kid51 More specific to Parrot: We could use a demonstration of one language built on Parrot using libraries from another. That, in addition to the speed of register-based design, was, as I recall, part of the initial 'promise' of Parrot.
chromatic Oh, and you have zero dollars to do it.
But Pheme did that in 2006!
pmichaud kid51: that's Parrot's goal for July 2009.
kid51 chromatic: I understand where you're coming from by citing the dollars attached. But I don't want to conduct the discussion on that turf, if only because I'm soliciting people's volunteer efforts. 03:50
July 2009, ie. 1.5?
mugwump how solvent is the parrot foundation these days?
or, is it solvent yet, I guess
pmichaud kid51: I'm assuming that sort of thing is what we mean by "language interoperability"
kid51 The Parrot Foundation is so new that it probably has 0 funds.
pmichaud kid51: tsk -- at least read the parrot foundation news blog :-) 03:51
kid51 pmichaud: Yes. What would be a nice would be a lang interop demonstration that someone could run at a local user group meeting.
chromatic It seems to me that saying "It should take X periods of time" depends very heavily on the available amount of ideal work units. 03:52
When everyone's a volunteer, the number of predictable work units is zero.
pmichaud kid51: I suspect we'll be there in July. In the meantime, we do at least have mod_parrot, which can have multiple languages running in the same interpreter (and communicating with or via Perl 6) 03:53
kid51 chromatic: Again, in these sorts of discussions, I don't really want to answer one question with another. There's a risk that people will perceive that as intellectual one-ups-manship. And, from a recruiting/collaborating POV, I want to avoid that as much as possible. 03:54
03:55 rurban_ joined
mugwump you certainly have to compare apples with apples, like comparing the development time put into jvm or .net 03:55
*plus* that developing Java 03:56
or C#
kid51 IIRC, JVM was *not* open-source at time of onset of Parrot development -- and people at meetup today said it was not completely open-source even today. Correct? 03:57
chromatic C# being ten years old.
mugwump then look at the year it was written, way before .net - and COM+ was about Y2000 as well
s/written/proposed/
although COM dates back to 1993
chromatic The JVM wasn't anywhere near open source at the time of writing, and it's arguable that it's completely open now.
Certainly there's little chance we'd get to make changes to the JVM according to our needs. 03:58
kid51 chromatic: Not *that* is an interesting point.
e.g., "How much influence will you, Mr Language Developer, be able to exert on the future development of the JVM or on .NET?" 03:59
chromatic Considering they're still debating whether to add support to the JVM to invoke a method when you don't know the type of the invocant at compile time, very little. 04:00
This is not a VM for dynamic languages.
kid51 ... which is another point.
chromatic You'd have to build a lot of Parrot on top of the JVM to make Perl 6 work.
kid51 Alright, my bedtime nears. If y'all can synthesize any of this for comments to my use.perl post, I would appreciate that. 04:01
pmichaud kid51: keep bugging me until I do. Tonight's not a good night for me to do that (I'm focused on branch update/merge) 04:02
jimmy JVM seems to be a stack machine, and parrot is a register machine. 04:25
chromatic Not a huge difference to Perl 6 either way. 04:27
dalek r34953 | pmichaud++ | branches/rvar/compilers/pct/src/PCT:
: [pct]: Add .clone method to PCT::Node .
review: www.parrotvm.org/svn/parrot/revision?rev=34953
jimmy parrot is failed to build on windows xp with strawberry perl now. 04:28
dalek r34954 | pmichaud++ | branches/rvar/languages/perl6/src (2 files):
: [rakudo]: Add simple type constraints to attributes.
review: www.parrotvm.org/svn/parrot/revision?rev=34954
r34955 | tene++ | branches/pct_hll (3 files): 04:36
: [pct]: Accept a namespace for parsegrammar in HLLCompiler
: [rakudo]
: * Use a namespace for parsegrammar and parseactions
: * Add a workaround for a scary crash
review: www.parrotvm.org/svn/parrot/revision?rev=34955
r34956 | tene++ | branches/pct_hll (6 files): 04:37
: Assorted updates all over to make things play nicer with HLLs.
: Languages can get through compilation... don't actually run yet.
review: www.parrotvm.org/svn/parrot/revision?rev=34956
Tene pmichaud: I think I only have one item left... 04:40
dalek r34957 | tene++ | branches/pct_hll/languages/lolcode: 04:42
: [lolcode]: Remove some debugging.
review: www.parrotvm.org/svn/parrot/revision?rev=34957
Tene pmichaud: the compiled things run, but in the wrong HLL. If I add .HLL to the --target=pir output, it works.
Oh, idea... 04:43
allison jimmy: what's the build failure message?
04:48 Debolaz joined
Tene Setting :hll on the PAST::Block works for lolcode, but not for rakudo... 04:48
dalek r34958 | tene++ | branches/pct_hll (6 files): 05:36
: Fix some typos. Looks like rakudo works in its own HLL pretty well now.
review: www.parrotvm.org/svn/parrot/revision?rev=34958
r34959 | tene++ | branches/pct_hll/languages/perl6/t/pmc (4 files): 05:40
: [rakudo]: Add some .HLLs to pir tests.
review: www.parrotvm.org/svn/parrot/revision?rev=34959
05:40 MariachiElf joined
Tene pmichaud: nevermind about earlier question. 05:42
05:51 TiMBuS joined 05:59 MariachiElf joined 06:03 particle joined
Tene Okay, I now have lolcode, rakudo, and cardinal in their own HLL namespaces. 06:09
06:09 jimmy joined
dalek r34960 | tene++ | branches/pct_hll/languages/cardinal (14 files): 06:09
: [cardinal]: Use the 'cardinal' HLL namespace.
review: www.parrotvm.org/svn/parrot/revision?rev=34960
jimmy allison: see TT #130 06:11
dalek r34961 | pmichaud++ | branches/rvar/languages/perl6/src/builtins: 06:13
: [rakudo]: Handle multi-level namespace classes.
review: www.parrotvm.org/svn/parrot/revision?rev=34961
Tene Next I need to add :lang to rakudo's eval.
06:22 cotto joined
dalek r34962 | pmichaud++ | branches/rvar/languages/perl6/src/parser: 06:32
: [rakudo]: Throw exception on attempts to define attributes outside of classes
review: www.parrotvm.org/svn/parrot/revision?rev=34962
r34963 | tene++ | branches/pct_hll (409 files): 06:40
: Marge trunk into branch.
review: www.parrotvm.org/svn/parrot/revision?rev=34963
pmichaud Tene: can I review pct_hll before it's merged back to trunk? 06:41
Tene pmichaud: yes, please
pmichaud okay if I do it tomorrow?
Tene Sure.
06:42 flh joined
pmichaud excellent work on getting those languages to run in hll, btw. 06:42
that's just... well, fantastic :-)
Tene pmichaud: available to discuss implementation of rakudo's eval handling the :lang parameter?
pmichaud my guess at this point is that :lang corresponds to a compiler name. 06:43
eval('source', :lang<Cardinal>)
Tene can I just load_bytecode "languages/$lang/$lang.pbc"? Do we need a central registry somewhere? 06:44
pmichaud I think we had decided that language .pbcs would end up in runtime/parrot/library/languages
just a sec, I'll find the reference. 06:45
dalek r34964 | tene++ | branches/pct_hll/languages/perl6/src/builtins: 06:47
: [rakudo]: Initial implementation of :lang for eval.
review: www.parrotvm.org/svn/parrot/revision?rev=34964
Tene With that patch, this works, which is exciting:
eval('VISIBLE "O HAI"', :lang<lolcode>);
pmichaud Tene: irclog.perlgeek.de/parrotsketch/200...9#i_559140
allison proposed a "load_language" opcode. 06:48
for now you can shim in anything that works and isn't too much code, though. 06:49
Until we get a load_language opcode I'm guessing I'll make a 'load_language' method on the Parrot HLLCompiler object (when it's written)
Tene As does this:
eval('puts "lol"', :lang<cardinal>);
pmichaud okay, I wanna see APL work then :-) 06:50
Tene Working on it... 06:52
pmichaud: is there :hll for STMTS, or just for Block? 06:57
pmichaud just Block at the moment, I think. 06:58
does APL produce a ::Stmts?
Tene TOP returns a PAST::Op.
I'll make it return a Block
pmichaud just put it inside of a Block
(that's what the compiler does anyway.)
Tene pmichaud: the problem with APL is that it prints its return values instead of returning them. 07:04
pmichaud well, printing is the normal behavior, yes.
it could probably print + return.
dalek r34965 | tene++ | branches/pct_hll/languages/APL (2 files): 07:05
: [APL]: Move to an HLL namespace.
review: www.parrotvm.org/svn/parrot/revision?rev=34965
pmichaud even if it just prints for now, that's okay with me.
Tene for example:
my $x = eval("X←8+3\\nXĆ·2", :lang<APL>);
returns undef into $x
and prints 5.5 to stdout
pmichaud right.
Tene unless APL has a return operator... 07:06
pmichaud my $catchpir := " get_results '0', $P0\\n $S0 = $P0\\n print $S0\\n 07:07
exit 1\\n";
just change that exit 1 so that it does .return ($P0)
maybe that will be enough.
actions.pm:21
Tene nope, doesn't work 07:08
07:08 uniejo joined
Tene I think I need to pop off the last item in the statement list and change it into a return op 07:09
pmichaud no, that's not entirely it either 07:10
there's a 'try' node involved here for some reason.
I think it's to catch domain errors.
maybe need to add a return op to the statementlist 07:12
Tene This works:
nopaste "tene" at 67.186.244.107 pasted "APL patch to return values" (19 lines) at nopaste.snit.ch/15193
Tene That doesn't print, though.
Wait, I lied. 07:13
pmichaud you definitely don't want to .pop
Tene I left off the .push()
No, that doesn't work. You're right.
pmichaud in tools/gen_operator_defs.pl, modify the 'aplprint' sub so that it returns the value printed. 07:15
that ought to do it.
then if aplprint gets called, we still get the result value back.
Tene Yes, it both prints and returns. Which is okay, but suboptimal. 07:16
pmichaud that's the APL spec, though.
APL says that any expression that isn't an assignment prints the result.
Tene nodnod
pmichaud I'd rather keep APL true to spec at this point. Besides, we get the point across :-) 07:17
Tene nodnod
dalek r34966 | pmichaud++ | branches/rvar/languages/perl6/src/parser:
: [rakudo]: Add private method declarations. Also clean trailing spaces.
review: www.parrotvm.org/svn/parrot/revision?rev=34966 07:18
pmichaud okay, I need a nap for a while. I'll look over the pct_hll branch stuff when I re-awake.
Tene in rakudo, t/pmc/perl6multisub-type.t fails, not sure why
spectest_regression looks nice to far, though
pmichaud it's probably looking for some things in the wrong hll namespace. 07:19
Tene pmichaud: one last thing...
what's the rakudo syntax for use for another lang?
pmichaud rakudo, or Perl 6?
Tene eh, whichever
pmichaud well, I think officially it's "eval" :-) 07:20
Tene unofficially we could add use Foo :lang<...>; ?
pmichaud for inline language support it'd likely be something like Q:APL but we'll need some heavy-duty parser support for that.
oh 07:21
for 'use' it's use Foo:from<lang>
Tene Ah.
Is that syntax okay in rakudo right now?
Tene looks.
pmichaud no.
I don't think we're parsing the colon stuff in names yet.
Tene Is that coming sometime? 07:22
pmichaud yes, not too long.
Tene kk
pmichaud how much had to change in rakudo to get hll to work?
Tene Not very much
pmichaud okay, good.
Tene a few .HLL decls, s/String/parrot;String/ and such in parent=> decls, (more) 07:23
pmichaud while I'll definitely be in favor of merging the other pct_hll stuff to trunk, I might want to hold off for rakudo's hllification until after rvar is merged back to trunk.
Tene pass namespaces for parsegrammar and parseactions
Sure.
pmichaud but that won't be long, and if there aren't many changes, then it should be easy to do.
Tene should be
ETA for rvar?
pmichaud the :lang mod to eval would still work even if Rakudo is in the Parrot branch
sorry, in the Parrot HLL 07:24
rvar is getting pretty close. I think I just have roles, grammars, subsets, and WHENCE left to do
but each new feature is getting easier and easier to add. 07:25
Tene "just" :)
pmichaud well, I'm not having to implement them from scratch, I'm just having to take what jonathan++ has already done and refactor them into the new structure
it takes me longer to figure out what was happening in the original than it does to put it in rvar :-)
Tene I think I'm going to come up with some grammar for cardinal to use for 'require'.
pmichaud sounds like fun. 07:26
Tene Formally I'm supposed to work at $realjob tomorrow, so I might not be around much.
spectest_regression is taking way too long to run, I think... 07:27
not sure
pmichaud it often takes a while, depending onyour machine. 07:28
after I get rvar merged (and write some reports) I think I'll work on the HLLCompiler refactor. It's timely, and a prereq for the PGE changes I need to make.
Tene I'll clean this up a bit after review from you tomorrow and then work on a blog post. 07:30
pmichaud fantastic. you've achieved a major parrot milestone. :-)
anyway, I'm falling asleep at my keyboard so I'd better make it to the bed while I still can :-)
Tene goodnight
Oh, maybe I can get pipp in an HLL namespace too. 07:31
TiMBuS quick q: does parrot have an op or pmc method to get the max intval? 07:33
nopaste "tene" at 67.186.244.107 pasted "rakudo test_summary output from pct_hll branch for pmichaud++" (63 lines) at nopaste.snit.ch/15194 07:34
TiMBuS failing that, is there a macro with it defined so i can just make a quick op in C
chromatic I don't think there's an op or method. 07:46
PARROT_INTVAL_MAX in config.h might work though. 07:47
TiMBuS that sounds like it'd do
woop, works just fine 07:52
thanks chromatic
chromatic You're welcome. 07:53
dalek r34967 | petdance++ | trunk (2 files): 08:02
: working on the more stringent perlcritic-cage target
review: www.parrotvm.org/svn/parrot/revision?rev=34967
r34968 | rurban++ | trunk/config/gen/makefiles: 08:05
: fix cygchkdll leftover issue with r34836
review: www.parrotvm.org/svn/parrot/revision?rev=34968
jimmy TT #130 fixed now? 08:09
rurban blib/lib is not created on mingw? 08:12
jimmy: Your pasted cmdline is not correct. -Wl,-L "E:/pipp/ Parrot-dev/blib/lib" -Wl,-L "E:/pipp/Pa rrot-dev/blib/lib" 08:13
08:15 elmex joined
rurban jimmy: what is the value of set P0["libparrot_shared"], in your config_lib.pasm? 08:17
it is not created
nopaste "tene" at 67.186.244.107 pasted "Perl 6, Ruby, and APL in the same program" (3 lines) at nopaste.snit.ch/15195 08:18
lathos aExcellent. 08:23
jimmy rurban:\tset P0["libparrot"], "$(LIBPARROT_SHARED)"
rurban jimmy: P0["libparrot_shared"] ? 08:24
I'm just setting up vanilla perl...
jimmy set P0["libparrot_shared"], "libparrot.dll" 08:25
rurban does "mingw32-make libparrot.dll" work?
jimmy wait
jimmy had pasted it at TT #130 08:27
Is it readable? 08:29
rurban It is better to use {{{ code }}} in trac
dalek r34969 | tene++ | branches/pct_hll/languages/APL (2 files):
: [APL]: Return results in addition to printing them.
review: www.parrotvm.org/svn/parrot/revision?rev=34969
cxreg is anyone maintaining an up to date apt source for parrot? alioth is pretty out of date and sam didn't get a response when he asked to update it
jimmy should I repaste it?
rurban nope, I see the problem
dalek r34970 | tene++ | branches/pct_hll/languages/pipp (2 files):
: [pipp]: Move to the 'pipp' HLL NameSpace
review: www.parrotvm.org/svn/parrot/revision?rev=34970 08:30
rurban First I have to fix the vanilla distribution, ... The Config logic is broken there 08:31
I'm building now...
jimmy cxreg: I don;t know, 08:37
rurban jimmy: I can reproduce your problem. I'll fix ASAP 08:38
jimmy I used strawberry perl.
rurban That's basically the same as vanilla. strawberry has more cpan libs 08:39
jimmy Iet me try it again
rurban The problem is -Wl,-L <prefix>/blib/lib => -Wl,-L <prefix>
dalek r34971 | tene++ | branches/pct_hll/languages/pynie (2 files):
: [pynie]: Start using the 'pynie' HLL namespace.
review: www.parrotvm.org/svn/parrot/revision?rev=34971
rurban I'm just wondering why mingw don't uses any import lib, like libparrot.lib 08:40
08:42 allison joined
jimmy rurban: I know nothing about it. 08:42
rurban Allison: I just fixed up cygchkdll for cygwin, and I'm working on fixing mingw right now 08:43
jimmy rurban: I had pasted failed message after running 'make realclean' at TT #130. 08:46
rurban jimmy: I'm just testing my fix for youi. This will need some time 08:47
jimmy 'make reaclean && perl Configurel.pl && make
I see. 08:48
08:52 iblechbot joined
rurban jimmy: The problem is that I can immediately fix it for you, but then it is not to good installable anymore. 08:54
Tene allison: around? 08:55
allison Tene: yes 08:56
Tene allison: nevermind, I have a workaround.
allison ok
allison about to leave, total system fail (it thinks it has 80GB of virtual memory, with 7GB free disk space, and thrashing horribly) 08:57
jimmy rurban: That is nothing, my
Tene allison: ouch 08:58
allison rurban: the best solution is to simply revert r34940
dalek r34972 | tene++ | branches/pct_hll (3 files):
: [pheme]: Use the 'pheme' HLL namespace.
review: www.parrotvm.org/svn/parrot/revision?rev=34972
allison rurban: if those changes weren't adequately tested in that combination, they we blow them away 08:59
08:59 Zaba joined
allison s/they/then/ 08:59
rurban allison: I know. But then the libparrot_shared path is hardcoded and when installed you cannot compile anymore.
allison rurban: that's the way it worked before, so no loss
rurban I know, but I wanted to make it installable :) 09:00
allison rurban: later
rurban okay. I revert the mingw part for now. and fix it later.
allison rurban: there are quite a few install changes we're waiting on until they're more stable, this is just one more
rurban: good
jimmy I had build parrot.exe 09:01
built 09:02
dalek r34973 | tene++ | branches/pct_hll/languages/pheme: 09:04
: [pheme]: Register pheme as the compiler for 'pheme' instead of 'Pheme'
: to match the directory it's in.
review: www.parrotvm.org/svn/parrot/revision?rev=34973
Tene pmichaud: couldn't 'Q:APL' come from something like APL.pm adding a rule to the grammar at compile time? 09:11
09:16 Zaba joined, allison joined
rurban jimmy: can you try r34974? 09:16
dalek r34974 | rurban++ | trunk/config/init/hints:
: fix mingw compilation - TT#130 - and add vanilla cfg
review: www.parrotvm.org/svn/parrot/revision?rev=34974
jimmy ok 09:19
Tene allison: I was originally going to ask about modifying TGE to allow specifying the HLL ns of the grammar you're deriving from. I worked around it by just exporting ['TGE'] to the current HLL ns beforehand. 09:20
dalek r34975 | cotto++ | trunk/languages/pipp/config/makefiles: 09:23
: [pipp] update test-pmc target, add to make test
review: www.parrotvm.org/svn/parrot/revision?rev=34975
rurban My TT#130 mingw fix allows compilation with an already installed shared libparrot. So it's better than before.
09:26 ChrisDavaz joined
jimmy rurban: ok is not that ok 09:28
rurban Still not compiling?
jimmy yes
not
rurban did you do archclean and realclean? 09:29
jimmy just make realclean && perl Configure.pl && make
rurban what is set P0["libparrot_ldflags"] in your config_lib.pasm? 09:30
jimmy set P0["libparrot_ldflags"], "libparrot.dll"
rurban I see. Wait, I'll have to check 09:31
jimmy ruiban++
09:33 alvar joined
rurban jimmy: my mingw smoke is at smolder.plusthree.com/app/public_pr...ails/12210 09:41
shorten rurban's url is at xrl.us/bebijw
rurban jimmy:what is your ALL_PARROT_LIBS line in Makefile? 09:42
jimmy ALL_PARROT_LIBS = libparrot.dll $(ICU_SHARED) $(C_LIBS)
maybe downloading strawberry perl can reproduce the failure. 09:45
rurban No, I can reproduce it also. Just have to find out how to do that best. 09:46
jimmy I thought you can not. 09:47
rurban I'm playing with the best strategy for libparrot_ldflags. The former failure I had because there was still a parrot process around 09:48
It's either '-Wl,-L$(BUILD_DIR) libparrot.dll' or '-Wl,-L$(BUILD_DIR) libparrot.lib'
09:50 cotto joined
jimmy I like best strategy. :) 09:50
rurban can you try: config/init/hints/mswin32.pm line ~236: libparrot_ldflags => '-Wl,-L$(BUILD_DIR) libparrot.dll', 09:51
09:53 Zaba joined
allison Tene: modifying TGE to support the HLL namespace is the right way to go eventually, but glad you found a work around for now 09:58
09:59 braceta joined
Tene I'm very pleased with the pct_hll branch. 10:01
Need sleep now, though.
jimmy rurban: I will try it. 10:07
rurban Wait, It will not work for pbc_to_exe 10:08
I'm currently testing vlibparrot_ldflags => "\\"$build_dir\\\\libparrot.dll\\"",
libparrot_ldflags => "\\"$build_dir\\\\libparrot.dll\\"",
Plus I added the importlib for mingw. 10:09
But the importlib is only needed when being installed
jimmy what's the solution before? 10:10
rurban -Wl,-L$(BUILD_DIR) libparrot.dll will fail within pbc_to_exe complation
-Wl,-L$(BUILD_DIR) libparrot.dll will fail within pbc_to_exe compilation 10:11
It's still a little bit of a mess...
jimmy what's the solution before 34940? 10:12
actually, I don't know what happened. 10:13
rurban I switched the default to being directly linked, not via -lparrot, because this is disturbed by -L/usr/lib picking up an already installed parrot. of you wanted to know exactly :) 10:14
jimmy > libparrot_ldflags => "\\"$build_dir\\\\libparrot.dll\\"" does not work.
rurban oh, works good for me. 10:15
jimmy so I think you could download the strawberry perl 10:16
maybe it is very strange. 10:17
nopaste "rurban" at 212.183.49.253 pasted "mingw-tryout.patch" (68 lines) at nopaste.snit.ch/15196
rurban I have about 50 different perls around... strawberry is also somewhere 10:18
The above paste should work on every mingw perl, if it's vanilla, strawberry or self-compiled 10:22
jimmy wow
rurban tyring now with strawberry-perl-5.10.0.3
jimmy Iet me give it a try.
I am using strawberry-perl-5.10.0.3-ddrive.exe 10:23
rurban yes, confirmed: strawberry is a plan vanilla with just some cpan modules added. same system as vanilla 10:29
But TAP::Harness::Archive is missing. 10:31
jimmy rurban: works now with 15196 10:35
but why there is libparrot.lib. 10:38
rurban For r34976 I'm sending now the mingw smoke report also 10:41
dalek r34976 | rurban++ | trunk/config (2 files):
: More mingw fixes, analog to cygwin:
: - link directly to dll to protect against already installed libparrot
: - add importlib for mingw for easier installation
: - force gcc.exe to gcc for Makefile check
: Tested with vanilla and strawberry perl
review: www.parrotvm.org/svn/parrot/revision?rev=34976
r34977 | kjs++ | trunk/compilers/pirc/src (2 files): 10:46
: [pirc] work on parser. There may be a bug in bison, but added a workaround.
review: www.parrotvm.org/svn/parrot/revision?rev=34977
10:47 tomyan joined, kj joined
rurban latest mingw t/pmc/complex fails: smolder.plusthree.com/app/public_pr...ails/12225 10:48
shorten rurban's url is at xrl.us/bebimw
jimmy yes, it failed all the time. 10:49
rurban I'll fix now the complex problem: only two wrong tests
10:50 Zaba joined
jimmy rurban: 10:50
nopaste "jimmy" at 220.231.152.66 pasted "another patch for rurban" (20 lines) at nopaste.snit.ch/15197 10:51
jimmy this patch works well too.
without nopaste.snit.ch/15196 10:52
i hate libparrot.lib. 10:53
rurban you will need libparrot.lib when being installed and you want to do link with -lparrot 10:55
jimmy hope so. I don't know why only win32 and cc==gcc. 10:56
rurban you can always link directly to the dll as we do in our internal build, but there's no search logic for dll's, only .lib 10:57
jimmy seems that it is for gcc only
rurban msvc has it's own importlib logic. I don't want to touch that
jimmy nopaste.snit.ch/15197 works well for me.
rurban ron should try that
good, thanks. 10:58
jimmy these two lines must be added. other is unuseful. 10:59
dalek r34978 | kjs++ | trunk/compilers/pirc/src (5 files): 11:00
: [pirc] better error message for unrecognized sub pragmas.
: + add an error alternative to parser, so it can try to continue after the first error.
review: www.parrotvm.org/svn/parrot/revision?rev=34978
jimmy and let me give a try with removing mingw-make condition 11:03
rurban you mean the makefile? this is completely ignored in our build. we only need it when being installed 11:06
11:07 ruoso joined
jimmy rurban++ 11:21
dalek r34979 | kjs++ | trunk/compilers/pirc/src (5 files): 11:25
: [pirc] disallow $P0. $P1(), $P0 .$P1() and $P0 . $P1(). Give proper error messages.
: Fix a bug in the parser (action method only).
review: www.parrotvm.org/svn/parrot/revision?rev=34979
jimmy should we remove parrot_config.* after make clean? 11:26
11:27 Lorn joined, donaldh joined
jimmy seems that parrot_config.* is not removed by 'make clean' 11:31
11:33 mberends joined
dalek r34980 | kjs++ | trunk/compilers/pirc/src (3 files): 11:40
: [pirc] improve error checking in PASM mode.
: + some refactoring of regular expressions.
review: www.parrotvm.org/svn/parrot/revision?rev=34980
11:46 masak joined, kj joined 11:53 rurban_ joined 12:12 PacoLinux joined 12:28 braceta joined
dalek r34981 | rurban++ | trunk/lib/Parrot: 12:35
: Fix msvc warning in t/src/compiler.t:
: LINK : warning LNK4044: Nicht erkannte Option "Lblib\\lib"; ignoriert
: And we don't want to use /LIBPATH:$PConfig{blib_dir} here, only for static.
review: www.parrotvm.org/svn/parrot/revision?rev=34981
r34982 | rurban++ | trunk/lib/Parrot: 12:54
: Fix fatal [perl #58704] [BUG] t/src/compiler.t failures with VC++ / Win32
: - added -DPARROT_IN_EXTENSION on MSVC. To be tested on borland.
review: www.parrotvm.org/svn/parrot/revision?rev=34982
r34983 | kjs++ | trunk/compilers/pirc/src (7 files): 13:00
: [pirc] value of basic .consts are now returned by lexer.
review: www.parrotvm.org/svn/parrot/revision?rev=34983
13:18 gaz joined 13:59 register joined 14:11 gryphon joined
jonathan hi all 14:14
jonathan is working on bytecode annotations
tewk jonathan++ 14:16
14:18 Wknight8111 joined
dalek r34984 | Whiteknight++ | trunk/docs/book: 14:19
: [Book] Two small modifications, preparing to include more info about LexPads
review: www.parrotvm.org/svn/parrot/revision?rev=34984
Coke (hll/pct) that removes one of the big blockers to switching tcl to pct. 14:22
jonathan My word, how slow can merging be... :-S 14:35
Wknight8111 what are you merging? 14:39
jonathan Updating my bcanno branch with latest trunk. 14:42
Coke rurban: note, borland isn't one of our core targets for win32. 14:45
(not that getting it to work wouldn't be nice)
dalek r34985 | jonathan++ | branches (1168 files): 14:53
: Updated bcanno branch with latest from trunk.
review: www.parrotvm.org/svn/parrot/revision?rev=34985
Wknight8111 what does the bcanno branch do?
jonathan Wknight8111: Bytecode annotations, so we can have HLL line/file info. 14:56
Wknight8111 oh, very nice
Infinoid hasn't made any recent progress with bytecode at all, sadly. 14:57
Coke jonathan: ah, that'll be much nicer than my fallback plan. 15:04
... if that works for something like tcl that is mostly runtime dispatch. 15:05
15:07 jimmy joined
dalek r34986 | jonathan++ | branches/bcanno/src: 15:09
: [bcanno] Resolve a merge conflict.
review: www.parrotvm.org/svn/parrot/revision?rev=34986
jimmy rurban: I know what happened now. mswin32.pm is really a bit complicated. 15:12
dalek r34987 | jonathan++ | branches/bcanno/src:
: [bcanno] Resolve more merge conflicts, s/PIO_/Parrot_io_/ for annotations dump.
review: www.parrotvm.org/svn/parrot/revision?rev=34987
r34988 | jonathan++ | branches/bcanno/src: 15:13
: [bcanno] Remove extraneous underscore in last ci.
review: www.parrotvm.org/svn/parrot/revision?rev=34988
jonathan Coke: Don't see why not, provided the PIR you generate has the right things in it. 15:14
Phew. Back to having my branch building again.
Coke jonathan: part of the potential problem is that I'm not always generating PIR; oft times I am merely invoking things from the runtime library. 15:19
but I will hold out hope (and thereby avoid spending any cycles thinking about it. =-) 15:20
dalek r34989 | infinoid++ | trunk/lib/Parrot:
: Clean up an old, commented out merge conflict in Parrot::Configure.
review: www.parrotvm.org/svn/parrot/revision?rev=34989
r34990 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files): 15:22
: [jit_h_files] move over another function, passes all tests.
review: www.parrotvm.org/svn/parrot/revision?rev=34990 15:23
jonathan Coke: If it doesn't work for Tcl, then we can look into why not and work out a solution. :-) 15:24
kj jonathan: hi, long time no see 15:25
jonathan kj: Hi! :-)
Yes, I was having Christmas/new years break, had family here to entertain, etc.
pmichaud message Tene the pct_hll branch changes all look great! I'm comfortable with merge-to-trunk for everything except rakudo (I want to merge the rvar branch first) 15:26
purl Message for tene stored.
pmichaud message Tene it's okay to implement eval :lang in Rakudo in trunk, though :-)
purl Message for tene stored.
kj ah very good. Hope you recharged for a new season of hacking :-)
jonathan Yes!
Already digging into fighting with IMCC. ;-)
kj pirc got some new ammunition ;-) 15:27
jonathan (And relying in you to do a better, less hacky job of .annotate in PIRC.)
kj actually, just doing a co of bcanno branch to see what you're doing :-)
pmichaud jonathan: I have a question for you on objects/inheritance 15:28
t/spec/S12-class/parent_attributes.t:25 looks wrong to me
dalek r34991 | jonathan++ | branches/bcanno/compilers/imcc (4 files): 15:29
: [imcc] Fix imcc.y and compile it and imcc.l.
review: www.parrotvm.org/svn/parrot/revision?rev=34991
jonathan I'd have expected method set($v) { $.x = $v }
pmichaud would that work? $.x isn't rw 15:30
jonathan Right, it would need to be.
pmichaud okay.
jonathan I think $!x shoudl only be lexically visible.
(Rakudo may well not enforce that right now.)
pmichaud that's what the spec says
rvar enforces it :-) 15:31
jonathan Ah, good.
pmichaud okay, I'll change the test then.
jonathan Yes, agree.
pmichaud jonathan++ # thanks 15:32
jonathan pmichaud++ # fixing rakduo so that it fails bad tests 15:34
kj jonathan: IIUC, annotations are stored in bytecode as pairs of 2 integers; the first integer is an index into the constant table indicating the key, the second integer is an index into the constant table indicating the value
(that's only the annotations stuff, not the "annotation group" stuff, haven't read that yet) 15:35
sjn jonathan: thanks for your talk submission, btw :D 15:37
pmichaud needs to get his talk submission in.
jonathan sjn: I submitted for four different conferences this weekend. ;-)
sjn jonathan: feel free to submit more for NPW ;-) 15:38
jonathan sjn: I'm pondering doing that.
Would there be interest in a kinda mini-Perl 6 tutorial?
I'm doing one at the Belgian Perl Workshop.
sjn could be, give us a writeup and we'll figure it out ;-) 15:39
jonathan kj: Not quite - there are three values.
offset, key (but that's not an index into the constants table, but the annotation keys section), and value. 15:40
kj ah yes, I misread. I see now. But they're not really inline with the instructions in the code segment right? I mean, annotations are stored in a separate segment 15:41
jonathan Right. 15:43
I'm just stashing them as instructions from an IMCC point of view
But we don't emit anything into the bytecode in pbc.c
Or won't.
Still working on that bit.
dalek r34992 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files): 15:48
: [jit_h_files] a few more functions moved over
review: www.parrotvm.org/svn/parrot/revision?rev=34992
Coke wonders what's going on with these slurp commits. 15:49
kj wonders what's a slurp commit 15:51
15:53 jhorwitz joined
Coke e.g. r34947. 15:59
ah, there's a ticket in the commit msg.
Coke posts his self-de-confusing comment to the ticket. 16:06
dalek r34993 | jonathan++ | branches/bcanno/compilers/imcc (2 files): 16:09
: [imcc] Get annotations now being passed through to code generation stage, so we can start work on storing them.
review: www.parrotvm.org/svn/parrot/revision?rev=34993
r34994 | kjs++ | trunk/compilers/pirc/src (5 files): 16:13
: [pirc] improve support for annotations.
review: www.parrotvm.org/svn/parrot/revision?rev=34994
16:15 davidfetter joined
Coke presses the "build is broken" button. 16:30
(ok, it's make test, not the build. still)
trac.parrot.org/parrot/ticket/131
16:39 hercynium joined
dalek r34995 | jonathan++ | branches/bcanno/src: 16:39
: [core] Correct dump output for annotations segment to be consistent with othesrs.
review: www.parrotvm.org/svn/parrot/revision?rev=34995
r34996 | jonathan++ | branches/bcanno/compilers/imcc: 16:40
: [imcc] Create annotations segment when needed, along with initial group.
review: www.parrotvm.org/svn/parrot/revision?rev=34996
jhorwitz mmmmm, tasty tasty annotations 16:42
kj jonathan: currently there's a SEGMENT_NAME #define for directory, fixup, constant and bytecode. 16:43
should there be one for ANNOTATIONS? 16:44
(in packfile.h)
jonathan kj: Perhaps.
Coke (i wonder how many spec tests for tcl I could pass if I could give annotation information in the error messages) 16:45
kj also, maybe it should be created as part of create_default_segments, but then again, maybe not as not all bytecode will have annotations
jonathan I worry about the way we associate debug segs with code segs (by name) at the moment...it seems fragile.
I think we need not bother creating it if we have no annotations.
No point creating/packing/unpacking it otherwise. 16:46
dalek r34997 | moritz++ | trunk/languages/perl6/t: 16:48
: [rakudo] track file merges/moves in t/spectest.data. Also add a few more test
: files.
review: www.parrotvm.org/svn/parrot/revision?rev=34997
16:57 flh joined 17:11 jan joined 17:15 steffen joined
steffen hi everyone, i've been trying to get parrot to execute some perl6 for me, but i can't get it to make the perl6.pbc file, can anyone help me? 17:17
jonathan Probably. :-) 17:18
Infinoid hi steffen, you're in the right place. can you paste your build log to us at nopaste.snit.ch/ ?
mberends did you manage to make parrot ok? 17:19
steffen i'm not sure lol
i installed parrot 0.6.1 with gentoo's package manager
mberends nonononono
that's way too old 17:20
steffen thought that might come ;)
so i tried building parrot 0.8.2 from the downloads but that gave an error, let me just find that one sec
got it, just gonna post it to that link you posted
dalek r34998 | kjs++ | trunk/compilers/pirc/src (2 files): 17:21
: [pirc] store annotations in circular list. Add function to bcgen module, copied from jonathan++ 's annotation work.
review: www.parrotvm.org/svn/parrot/revision?rev=34998 17:22
nopaste "steffen" at 94.192.245.178 pasted "parrot 0.8.2 buildlog" (14 lines) at nopaste.snit.ch/15198
steffen i posted the last bit, i can copy it all if you want
i'm quite experienced with gentoo but because portage is so great i always shied away from manually installing things with make so i might've made a silly mistake 17:23
17:23 Wknight8111 joined
mberends probably not needed, if you're happy to start again from scratch 17:24
steffen yeah sure
i'll uninstall parrot 0.6 with portage as well make sure that doesn't get in the way
mberends good idea, and then make sure you have subversion client installed 17:25
steffen got that
mberends btw, how come your gentoo still has perl 5.8.8 ? 17:26
steffen its the latest gentoo has
just checking bugzilla for 5.10
ok i found some ebuilds for perl 5.10 should i try to install that? 17:28
17:28 Wknight8111_ joined
mberends no need, just try the subversion install line from parrot.org 17:28
you can update to perl 5.10 later, it's desirable but not essential for parrot 17:29
steffen ok checking it out now
17:30 contingencyplan joined
mberends after subversion completes your parrot directory, run perl Makefile.pl in there 17:31
steffen done, it suggests gmake next should i do that?
mberends yes 17:32
steffen emerging parrot 0.6 only took 3 minutes so this shouldnt be too long hopefully
17:32 ruoso joined
mberends we're patient... 17:33
steffen thanks :)
Infinoid mberends: it might be a while for gentoo to get 5.10. I've hacked it into my gentoo install, but it breaks some things 17:34
mberends pity about that
Infinoid its worth it in the long run...
steffen yeah updating programming languages is quite difficult for gentoo 17:35
Infinoid if portage had direct support for CPAN, that would fix a lot of stuff. there's some mention of adding that to paludis, but so far that seems to be vapor 17:36
g-cpan is a nice hack but far from complete
steffen that would be very nice, stop duplicating so much work 17:37
gmake just finished btw
Infinoid indeed
mberends after gmake is done, try gmake test, and if that's happy, gmake perl6
steffen i think, it doesnt give any success indicator it just went back to command line
trying test now
Infinoid great
steffen looks good so far
mberends if gmake perl6 looks ok, then cd languages/perl6 and do a make test there 17:39
steffen ok
still testing ;) 17:41
mberends and for good measure, in a separate shell do gmake spectest_regression in languages\\perl6 - it takes even longer
steffen hehe its always a good sign if the tests take longer than the compile 17:42
Infinoid especially when they pass. 17:43
steffen lol yeah
running this as a user should be ok right?
Infinoid correct
mberends your paths may differ, but here I also added: sudo ln -s /home/mydir/parrot/languages/perl6/perl6 /usr/local/bin/perl6 17:44
steffen thats a good idea yeah
Infinoid that's probably a better idea than "make install"
steffen yeah i dont like to use make install manually 17:45
ok gmake test just finished and failed
Failed 7/397 test scripts. 35/11685 subtests failed
mberends please nopaste the entire make test log 17:46
steffen ok
stupid question again, does it produce a log file automatically? 17:47
mberends sorry, I meant the console transcript
sometimes parrot goes unstable for short periods, then either the developers fix it or reverse the most recent changes 17:48
nopaste "steffen" at 94.192.245.178 pasted "parrot gmake test output" (429 lines) at nopaste.snit.ch/15199 17:49
steffen yeah makes sense
i posted everything from the scrollback but the beginning was already gone
i'm pretty sure the relevant bits are in there though
17:50 chromatic joined
Infinoid hmm. did you build with the same user you tested with? 17:51
steffen yeah
mberends odd, the error messages claim 'cannot find -lparrot' 17:52
Infinoid I'm on x86-64 gentoo too, so I can try to reproduce the issue. which subversion rev are you building from? ("svn info" will tell you that)
steffen rev34998 17:53
yeah i did the build and test in the same shell
Infinoid did you pass any parameters when you ran Configure.pl or Makefile.PL?
steffen no
Infinoid ok, one moment, lemme see if it works here 17:54
steffen just ran Makefile.PL, then gmake, then gmake test
ok cheers :)
mberends this one beats me, but in the past a flaky toolchain did that to me on gentoo. now I'm on debian unstable, which is pretty stable anyway 17:58
Infinoid you do have some files in blib/lib/, right? (libparrot.a libparrot.so libparrot.so.0.8.2)
steffen: ok, I'm seeing the same issues 17:59
steffen i got libparrot.a libparrot.so libparrot.so.0.8.2
hm i'll just load up my debian VM and try in that if i get the same error
dalek r34999 | jonathan++ | branches/bcanno (5 files):
: [core][imcc] Store bytecode annotations in the packfile. This also tweaks a few other things, including associating the code and annotations segments when unpacking. Followed the model of debug segments, though may change both in the future.
review: www.parrotvm.org/svn/parrot/revision?rev=34999
Infinoid the only -L in the gcc command line for these tests is /usr/lib64. so it seems to be assuming parrot was installed, and that seems wrong. any recent merges from pdd30-install branches or somesuch? 18:00
steffen not by me ;) 18:02
Infinoid steffen: this stuff worked fine for me a couple days ago, so I'm trying to figure out which patch broke it 18:03
steffen ok :)
mberends so would adding a -L to the local blib/lib/ in the appropriate Makefile fix this?
jonathan OK, break/dinner time, and afterwards more work on annotations. Might even have something working/useful by the end of the day.
chromatic It has to precede the /usr/libxx part, but it should.
Infinoid mberends: I think it was already there, trying to figure out the details now :) 18:04
18:06 ask_ joined
steffen im gonna try linking the files from blib/lib to /usr/lib64 and run tests again, might as well give it a shot :) 18:06
Infinoid that'll probably work. in the meantime, I'm bisecting 18:07
dalek r35000 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files):
: [jit_h_files] move a few more functions over.
review: www.parrotvm.org/svn/parrot/revision?rev=35000
Wknight8111 35000!
purl I don't like big numbers like that.
mberends 35000 factorial, yes, that's a big number even for pugs
Infinoid Wknight8111++ 18:08
steffen would hate having to calculate that one without a computer
Tene 3^^^3 18:10
steffen can i find perl6 libs on cpan as well or is separate? 18:11
Infinoid separate, I think. the Perl6:: stuff on CPAN is for adding perl6-like features to perl5 18:14
steffen yeah i think you're right 18:15
is there a central place for perl6 yet? cpan6.org appears to be a placeholder 18:16
Infinoid good question, I don't know. (I'm not really a perl6 guy.) most of the modules I know of are in the parrot or pugs repositories
chromatic citeseerx.ist.psu.edu/viewdoc/summa....1.59.1271 18:18
Context threading for VMs.
steffen ok with the stuff from blib/lib linked to /usr/lib64 gmake test runs fine 18:20
Infinoid great. move on to languages/perl6, build and test there?
steffen had already started doing gmake perl6, someone said that earlier 18:21
Infinoid wow, they improved branch prediction by 95% 18:23
Coke_away (issues with parrot) see trac # 131
shorten that
purl That URL is at xrl.us/bebjy9 [citeseerx.ist.psu.edu]
steffen yeah that seems pretty impressive
coke: was that for my problems?
chromatic Improved branch prediction could be a 10-15% performance improvement easily.
Infinoid thanks Coke 18:24
Coke steffen: trac.parrot.org/parrot/ticket/131
Infinoid yep, that's the issue
steffen thanks 18:25
i'll post my testoutput to that bug as well 18:27
and the workaround
purl it has been said that the workaround is to force Perl to use magical string
Infinoid the bug was introduced in r34981
steffen it seems my perl6 has just said hello world :)
mberends \\o/
Infinoid - ? "$PConfig{rpath_blib} -L$PConfig{blib_dir} "
+ ? ("$PConfig{rpath_blib} " .
+ ($^O =~ m/MSWin32/ and $PConfig{cc} eq 'cl'
+ ? "" : "-L$PConfig{blib_dir} "))
steffen yeah it works :) 18:29
chromatic r30000 was 5 months ago. 18:30
steffen thanks everyone :) gonna let it finish the regression test and then add my info to the bugreport 18:32
Infinoid steffen: its ok, I've just committed a fix.
steffen++
steffen even better :) 18:33
dalek r35001 | infinoid++ | trunk/lib/Parrot:
: Fix a build error introduced in r34981 (precedence error). This fixes TT #131.
review: www.parrotvm.org/svn/parrot/revision?rev=35001
Coke Infinoid: thanks for tracking that down. I got an email from kid51 about it earlier today, and only had enough tuits to verify and log.
Infinoid Coke: if you have a moment, please verify the fix?
steffen i'll try it as well once these regression tests have finished 18:36
Infinoid no problem, thanks. if "prove t/perl/Parrot_Test.t" works, that's good enough for me. 18:38
steffen Infinoid: you mentioned most of the perl6 modules you know are in the pugs and parrot repos, is it part of the main subversion tree or is it in another place?
Coke Infinoid: running now.
mberends steffen: the parrot and pugs repos contain everything afaik 18:40
steffen ok 18:42
Infinoid on that front, things are still pretty disorganized. probably because there isn't all that much to organize 18:43
is November the biggest perl6 project at the moment?
mberends yes, it's the most cited rakudo application 18:44
steffen whats november?
purl november is at www.november-wiki.org/ or use.perl.org/~masak/journal/37212 or github.com/viklund/november/
steffen ah ok just saw the page 18:45
that sounds useful
especially since i wanna do a webapp
mberends in a few days I'll have enough done on a rakudo http daemon to share it 18:46
Infinoid ooh! 18:47
there's also mod_parrot, if you want to go the apache route
steffen nice
jhorwitz and mod_perl6... 18:48
purl i heard mod_perl6 was happy with it too
jhorwitz purl: forget mod_perl6
purl jhorwitz: I forgot mod_perl6
steffen hehe 18:49
Infinoid purl, mod_perl6 is built on mod_parrot 18:50
purl OK, Infinoid.
dalek r35002 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files): 18:51
: [jit_h_files] a few more functions moved over.
review: www.parrotvm.org/svn/parrot/revision?rev=35002
Wknight8111 grumbles angrily about the JIT system on i386 18:52
Infinoid well, at least i386 *has* one.
Wknight8111 grumbles about the lack of JIT on other systems 18:53
Infinoid heh :)
Wknight8111 getting JIT working for amd64 is on my 2009 to-do list
so many things on the list, so few days in a year 18:54
Infinoid that actually sounds like a lot of fun. too bad I don't know the first thing about JIT
kj I thought targeting some other JIT engine was part of the plan
kj forgot the name
LLVM 18:55
Wknight8111 i dont know anything about LLVM
Wknight8111 should probably look into that
Infinoid hmm. I'm also interested in JIT on ARM, which LLVM doesn't support (but then, it's not a parrot core target either) 18:59
Coke Infinoid: +1
purl 1
Coke (on the tests)
Infinoid thanks! Coke++
Infinoid closes the ticket. 19:00
steffen btw here is what spectest_regression had to say: All tests successful (4 subtests UNEXPECTEDLY SUCCEEDED) 19:02
:)
Infinoid sounds like things are working well
steffen yeah
Wknight8111 LLVM looks interesting, now that I'm reading the documentatio 19:03
19:07 Wknight8111_ joined
Wknight8111 (my internet connection)-- 19:20
dalek r35003 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files):
: [jit_h_files] another long string of functions moved
review: www.parrotvm.org/svn/parrot/revision?rev=35003
Wknight8111 only about 26 more functions to move, I think 19:21
may as well be 1000, at the rate this is going.
steffen hehe 19:22
dalek r35004 | Whiteknight++ | branches/jit_h_files/src/jit/i386 (2 files): 19:31
: [jit_h_files] another string of functions moved
review: www.parrotvm.org/svn/parrot/revision?rev=35004
19:41 Limbic_Region joined 19:42 Wknight8111 joined 19:48 ask_ joined 19:51 On2 joined 19:52 gmansi joined, estrabd joined 19:53 On2 joined 19:54 Khisanth joined
Infinoid at some point, the Parrot Bug Summary should be made trac-aware 19:57
Coke the PBS is tied to RT. 20:09
so, we might get a new, trac based email, but that one isn't changing.
whee, bus error
purl Go take a walk.
20:12 geof joined
Coke are freeze/thaw expected to work? 20:13
chromatic Yes. 20:14
Otherwise we can't use PBC. 20:15
Coke I have a .tcl file; I load it in, compile it to an Eval PMC; I freeze the PMC and write it to disk. in a separate process, I read in the .fpmc, and thaw it.
when I thaw it, bus error.
chromatic That's a problem.
Coke hurm. the .fpmc has only 1973 bytes. I find that odd. 20:16
(no pun intended)
chromatic Yes, that does sound small.
Coke chromatic: I'm happy to check this in to partcl if you wish to poke. 20:17
or happy to ask you dumb questions and be enlightened. =-)
Tene Oh... calling conventions to invoke scheme routines are awkward. It expects a cons for passing multiple arguments. 20:18
nopaste "coke" at 72.228.52.192 pasted "generate the fpmc" (45 lines) at nopaste.snit.ch/15200
chromatic Scheme or Pheme?
Coke ah, the lowness of the tcl file is explained by the "error what;" code I'm compiling there;
(had a different error when trying to compile the actual file.) 20:19
chromatic What's the size of frozen before you say it?
Tene chromatic: pheme
my $add = eval("(lambda (x) (+ x 2))", :lang<pheme>); say $add.arity(); 20:20
1
chromatic Oh, right.
Hm.
but that lambda only takes one argument 20:21
Tene erm 20:23
copied wrong
my $add = eval("(lambda (x y) (+ x y))", :lang<pheme>); say $add.arity();
chromatic That one should take two arguments.
nopaste "coke" at 72.228.52.192 pasted "generate the fpmc (fixed) (still bus errors on thaw)" (37 lines) at nopaste.snit.ch/15201
Tene It doesn't.
chromatic The generated PIR should have .param pmc x and .param pmc y. 20:24
If I recall correctly.
Tene I'll be writing a PCT scheme soon.
I can't get pheme to output PIR
chromatic --target=PIR should work
Tene ... oh, it does. 20:25
Coke chromatic: length of the preparsed tcltst.tcl is now 99029; seems to be the same on disk, after reading but before thawing, etc. 20:26
nopaste "tene" at 97.117.74.5 pasted "--target=pir output for chromatic++" (26 lines) at nopaste.snit.ch/15202
Coke chromatic: doh. I actually "say" the output, not print it.
chromatic Hm. I wonder why I did that. 20:27
Coke changing that to a print, it's 99028 all around (including before printing it the first time). I seem to get further, but still it still bus errors.
chromatic Probably because it fit Scheme's calling conventions better.
20:28 On joined
chromatic I wonder why the say truncates it. 20:28
Coke it didn't.
the shortness was because I was trying to compile a hard coded tcl snippet. sorry about the initial confusion. 20:29
20:29 On joined
Coke when I thaw it, I now get an Eval object. if I invoke it, bus error. If I do fpmc=fpmc[0] to get the first invokable sub, I then get the nicer "attempt to access code outside of current code segment" 20:29
(but it still dies without running the frozen tcl.) 20:30
s/frozen/thawed/
Coke rebuilds parrot without optimize. 20:31
(sos I can get a bt.) 20:33
dalek r35005 | Whiteknight++ | trunk/docs/book: 20:34
: [Book] A few small changes and fixes to chapter 4
review: www.parrotvm.org/svn/parrot/revision?rev=35005
Coke ah. turning off optimize yields the more informative: 20:37
src/inter_call.c:440: failed assertion '(sig_pmc)->vtable->base_type == enum_class_FixedIntegerArray'
Abort trap
chromatic You're trying to invoke something which isn't a Sub, apparently. 20:38
Coke What if it were a PIR subclass of a .Sub ? 20:39
chromatic Then hopefully it gets thawed correctly. 20:40
Coke (currently, it's trying to invoke an Eval) 20:41
chromatic We might not freeze the associated PMCProxy for a PIR subclass.
Coke if I add the fpmc=fpmc[0] trick to get at the first invokable in the Eval, it claims to be a Sub before I invoke it. 20:42
(which it may be. checking on the freeze side.)
chromatic A Sub or a TclSub?
Coke Sub. 20:43
(there are probably tclprocs internally, but the top level items pre-freeze and post-thaw is a Eval, whose [0] is Sub
particle Infinoid: ping
Infinoid particle: hey 20:44
Coke I don't know that I can tell where it goes south after I invoke the fpmc on thaw.
particle happy new year! those asserts are killing me.
chromatic Can you thaw it in process and invoke it there?
Infinoid particle: how and where?
the only feedback I've gotten about MSVC so far is from kj, but I'm foggy on the details 20:45
nopaste "particle" at 76.121.106.245 pasted "partial build output for infinoid" (3789 lines) at nopaste.snit.ch/15203
Coke chromatic: aha. no. 20:46
if I freeze it, thaw it, invoke the thaw, same assertion failure.
chromatic Alright, that's a start.
Now we need to reproduce it in PIR.
Infinoid wow. I take it there's no __attribute__unused__ on MSVC? 20:47
dalek r35006 | tene++ | trunk (31 files):
: Partially erge pct_hll branch into trunk.
: I'm *mostly* sure this doesn't break anything.
review: www.parrotvm.org/svn/parrot/revision?rev=35006
Coke chromatic: I'll see if I can strip this down a bit.
particle Infinoid: we've got warnings set pretty high
Infinoid particle: what's different between you and kj? different versions of MSVC maybe?
particle ...for msvc.
does he not get those warnings? i don't know. i'm running msvc2008. 20:48
i'm making tags now to see what's going on 20:49
Infinoid last I heard, it built fine for him
particle it builds fine. those are *warnings* 20:50
Infinoid I can see how they would get really annoying tho
20:51 estrabd joined
particle -DHASATTRIBUTE_DEPRECATED -DHASATTRIBUTE_NORETURN 20:53
nothing about UNUSED
chromatic What's the UNUSED macro look like in MSVC?
nopaste "coke" at 72.228.52.192 pasted "this just generates an error on key type" (33 lines) at nopaste.snit.ch/15204 20:54
Coke (be nice if it told you what type that was.)
dalek r35007 | Whiteknight++ | trunk/docs/book: 20:55
: [Book] Add some stubbish sections about classes and objects, that I'll expand on later.
review: www.parrotvm.org/svn/parrot/revision?rev=35007
Coke I hate to chase this down since it's just a hack to try to eke out a little more speed for now.
(also seems odd that parrot lets me freeze something it cannot thaw.) 20:56
Infinoid chromatic: judging from parrot/compiler.h, MSVC doesn't have an equivalent to gcc's __attribute__((__unused__)) 20:57
(or we haven't added support for it.)
particle may need to #define UNUSED(x) x = x 20:59
ah, i see #define UNUSED(a) if (0) (void)(a); 21:00
Infinoid well, we can hack the ASSERT_ARGS() macro to put one of those after the variable declaration. but will that result in a warning about mixing variable declarations with code? 21:03
(it would on GCC.)
particle of course it would, it needs to be C89
in fact, it's an *error* on msvc 21:04
21:08 On2 joined
Infinoid hmm. there's a lot to be said for XS's ability to just wrap the entire function with init and exit code :) 21:08
chromatic That's one of the features of XS I like. 21:10
Nothing else comes to mind at the moment. 21:11
Infinoid same here 21:12
Coke wonders how long it will be until we have no .c files checked in. 21:13
(we already mangle PMC and OPS...) 21:14
21:14 alvar joined
Infinoid preprocessing all of the C sources does not seem very practical to me as a short term solution... as much as I might wish I could. 21:16
so far, I can think of the following alternate solutions:
1. disable ASSERT_ARGS() on MSVC (or a particular version of MSVC) somehow, maybe #defining it to something to make it ignore the trailing semicolon 21:17
2. disable ASSERT_ARGS() everywhere by default, enable it only if a particular Configure.pl option is passed
#2 isn't so bad, actually, assuming we can get rid of the trailing semicolon in a portable way. it's already found all of the current issues, after all 21:18
well, ok, *most* of the current issues.
21:19 contingencyplan_ joined
particle define it as UNUSED(ASSERT_ARGS_ # x = 0) ? 21:20
21:20 contingencyplan_ joined
particle er, not quite 21:21
Infinoid the trailing semicolon is a problem for parsing, but we can always remove it from the sources and put it in the macro as necessary, that's an easy fix (if a big patch). 21:22
and then for MSVC we can just define it to ""
I was hoping to avoid that, because it's a little weird when you're browsing sources. 21:23
particle why is the trailing semi a problem? are two semis in a row a C error
#define UNUSED(a) if (0) (void)(a); 21:24
Infinoid in gcc, if you have a lone ";" before a variable declaration, it triggers the mixed declarations and code warning
Coke (take that, msvc)
particle hrmm 21:25
chromatic You ask yourself "How can Microsoft possibly break the C language? I'm here to tell you, MSVC."
Infinoid particle: trailing semi in the macro is fine. I'm talking about the trailing semi in "ASSERT_ARGS(some_function);" littered throughout the C source files 21:26
after ASSERT_ARGS() is replaced by whatever, the semi is still there
particle yes, i know
so you get if (0) (void)(...);; 21:27
if UNUSED is expanded
Infinoid well, we can set up a special UNUSED() macro without the extra semi, if it helps
...but won't you still have a warning because that if(0) is too high in the function?
or error, as the case may be.
Coke do other projects written in C jump through these hoops, OOC? 21:28
particle not many 21:29
Tene perl6: eval(q<VISIBLE "O HAI GUYZ">, :lang<lolcode>)
polyglotbot OUTPUT[O HAI GUYZ␤]
Infinoid we have a ton more codingstd seatbelts than most C projects
particle tene++
Coke nifty.
particle now do tcl! :)
Coke Tene: does this magic require the target language use PCT? 21:30
Tene perl6: eval(q<(lambda (msg) (write "scheme got " msg))>, :lang<pheme>)("omg")
polyglotbot OUTPUT[scheme got omg]
Tene Coke: no, it just runs load_bytecode and then compreg's whatever the :lang is
particle: if someone wants to update the rebuild-parrot script running on feather3 to compile TCL too, that would be great. 21:31
21:31 confound joined
Tene Coke: it potentially requires the language to live in its own .HLL, depending on whether anything happens to conflict without it. 21:32
Coke tcl does that.
Tene Then as long as tcl.pbc is in languages/tcl/tcl.pbc, :lang<tcl> should work fine.
Coke now I can finally update partcl's [inline] to work with other languages aside from PIR and PASM. 21:33
(last time I tried it, I ran into the HLL issues, where languages would step on each other.)
Tene Rakudo doesn't live in its own .HLL yet, as pmichaud wanted to wait for the rvar merge first.
particle but you can do apl 21:34
Tene cardinal, pheme, lolcode, pynie, and APL all work, though.
particle tene: have you updated abc yet?
Tene particle: no
particle ok, that's a good one to do, because it will likely always ship with parrot
21:37 estrabd joined
Tene www.reddit.com/r/programming/commen...preter_in/ 21:40
shorten Tene's url is at xrl.us/bebmgu
pmichaud adds a twitter note. 21:43
Infinoid nice. now we get to start worrying about variables declared in one language having different subclassed methods than what we're used to in other languages? 21:44
pmichaud isn't that something that we wanted to eventually be worrying about? ;-)
Infinoid absolutely, it's great progress 21:45
(I know we've talked about that before.)
Coke tene++
tene: in partcl, I just created a new builtin command, [inline {lang} {source}] ; there 21:46
estrabd bumped it up
pmichaud I don't suppose feather's p6eval builds any of the other langs. 21:47
chromatic I'd add that to Pheme, but quoting is going to be a pain there.
Coke code.google.com/p/partcl/source/bro...inline.pir
shorten Coke's url is at xrl.us/bebmhi
Coke will see about fixing that up this evening. 21:51
GeJ Good morning everyone
jonathan is back 21:52
Tene chromatic: was the plan for me to write a PCT scheme implementation to replace pheme or in addition to pheme? 21:53
nopaste "infinoid" at 96.238.213.50 pasted "particle: does this clear up the warnings, or just replace them with new ones?" (23 lines) at nopaste.snit.ch/15205 21:54
Infinoid particle: ^^
particle Infinoid: *boom* 22:08
doesn't like the bare semicolon
src\\string.c(140) : error C2143: syntax error : missing ';' before 'type' 22:09
src\\string.c(143) : error C2065: 'd' : undeclared identifier
etc
Infinoid I was afraid of that.
any ideas for something else we can stuff in there to make things work?
jonathan What are you trying to twist MSVC to do? :-) 22:10
Infinoid right now, we're just trying to silence a ton of warnings: nopaste.snit.ch/15203 22:11
jonathan I did see _lots_ of ASSERT warnings...
Ah, yes.
Tene jonathan: did you figure out that Parrot_oo_get_class_str issue I was harassing you about?
jonathan Tene: It kinda slipped my mind - sorry. :-( Have only really got properly back into stuff today. 22:12
Tene jonathan: s'okay
jonathan Infinoid: Does this just appear when we have an argument that isn't used?
22:13 TiMBuS joined
particle jonathan: no, it happens at least once for every function 22:13
Infinoid jonathan: no. it's to do with how we're actually emitting the assertions
hopefully at most once for every function, too
jonathan Hmm.
So is ASSERT_ARGS_CHECK a macro?
Infinoid it's a ton of macros, generated by headerizer. 22:14
ASSERT_ARGS() concatenates the name of the function to make the macro name
jonathan Ah yes, so I'm seeing.
chromatic Tene, I'd like to port Pheme to PCT.
jonathan And where is PARROT_ASSERT_ARG defined? 22:15
pmichaud chromatic: as in you'd like to see it done, or you'd like to do it yourself?
Tene chromatic: okay, that's going to be one of my next big items, then.
Infinoid jonathan: include/parrot/exceptions.h
in order to do the maximum amount of good, I tried to make it possible to put them at the very top of the function (many functions in parrot do a lot of work on the lines of local variable declarations, including passing the function arguments in calls to other functions) 22:16
c89 isn't always easy...
jonathan Infinoid: In exceptions.h I see lines like 22:17
#define ASSERT_ARGS_exit_fatal __attribute__unused__ int _ASSERT_ARGS_CHECK = \\ PARROT_ASSERT_ARG(format)
chromatic I probably won't have time to do all of it myself.
Infinoid yep, that's what I'm talking about
chromatic If Tene has time, he's welcome.
jonathan But I don't see PARROT_ASSERT_ARG defined until the bottom of exceptions.h?
Tene pmichaud: was I supposed to be working on any of the other milestones for this release? 22:18
Infinoid jonathan: the ASSERT_ARGS() is parsed later, so it all works.
unfortunately, MSVC doesn't have an __attribute__unused__, hence the warnings
pmichaud Tene: not that I'm aware of. I think we can mark this one as "landed" also.
Infinoid hack upon hack upon hack
jonathan looks up the flag to get post-preprocessed output
22:19 donaldh joined
Tene pmichaud: and "multiple languages in the same interpreter" for the Feb. release also landed? 22:19
Infinoid jonathan: on gcc, it looks like: __attribute__((__unused__)) int _ASSERT_ARGS_CHECK = ((interp) ? (0) : (Parrot_confess("interp", "src/string.c", 3238), 0)) || ((tc) ? (0) : (Parrot_confess("tc", "src/string.c", 3238), 0));
PARROT_ASSERT_ARG is just PARROT_ASSERT, but it returns 0 so I can use it in an initialization chain 22:20
I'm not married to this ugly hack, it's just the only way I could see to get the args checked at the top of the function. 22:21
jonathan Hmm, I get 22:22
int _ASSERT_ARGS_CHECK = (0) || (0);
Ah, and thus the warning.
Infinoid maybe NDEBUG is defined, that short-circuits the asserts
but the warning will occur either way, I think
jonathan OK, but it's clear to me now why it warns about unused. 22:23
Yes.
particle yep
Infinoid any suggestions are welcome. (including ripping it out entirely :))
particle no varargs macros, either :( 22:25
Infinoid yeah, and no inline functions. 22:26
jonathan Nothing comes to mind right away. :-(
particle #define FUNCTION(name, args) name(args); \\ 22:27
ASSERT_ARGS(x);
then FUNCTION(Parrot_default_charset, (SHIM_INTERP))
er, of course, you need { in there :(
foo, there's no good way
jonathan particle: Yeah, I followed the same line of thought, then realized you'd need something at the end too... 22:28
Infinoid this stuff is working reasonably well with gcc, and it caught a bunch of problems which I've fixed. I think I'd rather disable it on MSVC somehow rather than revert it entirely
particle aha! have a perl script preprocess out every line with ASSERT_ARGS(...)
Infinoid haha
if we were going to go down that route, I'd rather have the perl script *insert* it for capable platforms 22:29
tewk Don't change line numbers based on platform, thats evil.
Infinoid I can insert a blank line in its place. 22:30
particle don't need to change line numbers, just add /* */
inserting it causes line numbers to change. deleting it doesn't have to.
Infinoid oh, I see. well, I can always append it to the "{" line 22:31
dalek r35008 | pmichaud++ | trunk/languages/perl6/docs:
: [rakudo]: spectest-progress.csv update: 265 files, 5914 passing, 0 failing
review: www.parrotvm.org/svn/parrot/revision?rev=35008
Infinoid but ... all this seems a bit heavy-handed just to make a codingstd seatbelt not barf on a major supported platform.
jonathan Infinoid: Agree with just disabling it for MSVC.
Maybe make it appear with --maintainer?
chromatic +1 to disable
Infinoid I'm fine with that.
jonathan We've enough developers using gcc to spot issues that come up as a result of this. 22:32
chromatic Not enough people build with maintainer, I fear.
jonathan chromatic: I meant the two in conjunction rather than one or the toher.
*other
Infinoid with my version of bison, I can't build with --maintainer
jonathan So you do get it on MSVC if you --maintainer
Infinoid well, we'd still have to make it *work* on MSVC for that :) 22:33
jonathan Infinoid: Erm, actually that's a good point. I can't build on Win32. ;-)
Infinoid: It's not that it doesn't work, it's just that it spews warnings.
chromatic If it works on MSVC with --maintainer, that's fine. I don't know MSVC.
jonathan Disable under MSVC and leave it at that would do me.
Infinoid ok. so how do I do that without getting an error about the trailing semicolon?
jonathan Oh. 22:34
Infinoid (if I have no choice but to remove the trailing semicolons from 1800 functions, I will. but I think I've already made branch merging hard enough)
jonathan Why can't we write:
tewk can't you use a pragma around the #define contents to turn off warnings?
jonathan ASSERT_ARGS(PackFile_Constant_unpack_key)
Instead? And have the macro stick it in?
Yes, maybe wait for some branch merges to happen. ;-) 22:35
Infinoid jonathan: that's what I was talking about, removing trailing semicolons from 1800 functions.
the resulting sources read a little weird, but that's not the worst thing that can happen
22:36 davidfetter joined
jonathan Uppercase suggets macro suggests magic. :-) 22:36
Infinoid yeah
donaldh Has anyone built on linux-x86-gcc3.4.6, I don't see it mentioned in PLATFORMS 22:37
Infinoid I did, about a year ago. it worked.
(gentoo's "hardened" toolchain has been 3.4.x for a long time) 22:38
donaldh I'm seeing a weird link problem where global symbols from .o files are becoming local to libparrot.so and then main.o won't link. 22:39
tewk donaldh: what symbol? is it marked PARROT_EXPORT? 22:40
Infinoid do those symbols have ... yeah, what tewk said
donaldh Yep, e.g. src/embed.c Parrot_new 22:41
e.g. 00000000 T Parrot_new in src/embed.o
but 000dc1b0 t Parrot_new in blib/lib/libparrot.so 22:42
nopaste "donaldh" at 213.123.171.12 pasted "link error on linux-x86-gcc3.4.6" (18 lines) at nopaste.snit.ch/15206 22:43
22:45 acmoore joined, acmoore left
Infinoid donaldh: is this your first trying builds on this machine, or is it a new error? 22:45
donaldh First on this machine. I've been working on Cygwin but want to run valgrind. 22:46
So I'm guessing a toolchain problem.
It's a system based on Redhat Enterprise Linux so I'm not sure of the provenance of the toolchain, even though it reports gcc 3.4.6 22:47
Infinoid I have an old 3.3.6 on this machine if you think testing that will help 22:50
donaldh Hmm, thanks, but I'll maybe just rebuild this machine. 22:51
particle how do i expand a literal newline in a c macro? 22:55
s/expand/emit/ 22:56
Infinoid \\n maybe?
particle that's what i was going to try, ok 22:57
sigh, can't have a macro spit out a pragma anyway 22:58
Infinoid if you stick pragmas around the macro, do they stick when the macro is used? 22:59
Infinoid has a habit of expecting far too much sophistication from the tools he uses.
particle no :( 23:01
#pragma warning( disable: 4189)
doesn't work
purl Look buddy, doesn't work is a strong statement. Does it sit on the couch all day? Is it making faces at you? Does it want more money? Is it sleeping with your girlfriend? Please be specific!
Infinoid particle: well, the patch I nopasted above, in addition to moving the semicolons into the ASSERT_ARGS macro works fine for me 23:03
is there a strategically optimal moment to check that change in? I've already touched a ton of files last week, and I'd like to avoid making branch merging any worse if possible 23:04
or I could just make the change, and post something to the list essentially saying "victim here!" and offering to help with any possible merging problems. 23:05
(I've got some scripts to help me add and modify these things pretty easily.) 23:06
jonathan Infinoid: Your last patch only caused me minor merge issues.
svn being retarted caused me bigger ones.
erm, retarded 23:07
...takes one to know one...
I doubt the whipping out the semis would be a big pain to me.
Infinoid in that case, I'll JFDI
jonathan pm's branch touches relatively little C. 23:08
AFAIK.
donaldh Does anything ever set a PMC's real_self pointer to anything other than the PMC itself?
jonathan Yes.
donaldh how / where?
jonathan When you subclass a PMC with a high level class. 23:09
See class.pmc for where in the code this happens.
Or if not in there, something called from there.
donaldh I grepped for real_self and only found pmc.c and dod.c 23:10
Which is where my confusion started.
chromatic dod.c: where confusion goes to die
jonathan That's...odd.
23:11 Whiteknight joined
jonathan If we're not using that, I have to wonder how on earth calling subclassed vtable methods works... 23:11
donaldh I'm trying to wind backwards from Parrot_ObjectRef_mark crashing when real_self = 0xff 23:12
chromatic That sounds more like a corrupt PMC to me.
jonathan I guess the real test is, does commenting out the 4 lines that reference real_self and then removing it from the struct and re-compiling make any difference to any tests/languages? 23:13
donaldh I can try that/
jonathan (That isn't a fix to the problem though, it sounds like corruption.)
donaldh Yes it does.
purl if you say so...
jonathan (So I expect you'll hit another issue further down the line.)
donaldh That's why I thought I'd try valgrind. 23:14
Infinoid big patch incoming, hopefully this makes MSVC happy 23:16
dalek r35009 | infinoid++ | trunk (98 files): 23:17
: [cage] Attempt to work around MSVC warnings related to ASSERT_ARGS().
: * remove the trailing semicolon from ASSERT_ARGS() in the functions being checked.
: * add the semicolon to ASSERT_ARGS() itself.
: * disable ASSERT_ARGS() so it defines to nothing on MSVC.
: * update t/codingstd/c_args_assert.t so it no longer expects to see the semicolon.
review: www.parrotvm.org/svn/parrot/revision?rev=35009
particle rebuilds 23:19
Infinoid still built fine on linux, testing now
particle Infinoid++ # building fine 23:20
donaldh jonathan: everything builds with real_self removed 23:27
Whiteknight we don't use real_self? 23:28
...actually, that doesn't surprise me, I could never figure out what it was supposed to be doing anyway 23:29
donaldh Whiteknight: apparently not.
btw does anyone listen to / moderate legal@parrot.org ? 23:30
jonathan wonders how PMCs get virtual calls to vtable methods right now when they are subclassed... 23:31
Whiteknight sounds like a little bit of black magic to me
chromatic find_vtable_method 23:32
or something
jonathan chromatic: No, I mean if you are in a VTABLE method and you call another one, or do a method call. Does it dispatch by the subclass or not? 23:33
real_self was added for that purpose
I'm guessing we must be doing it some other way.
chromatic Don't know right yet. 23:35
23:36 hercynium joined
donaldh Is the code for that in oo.c - Parrot_oo_find_vtable_override 23:39
chromatic That sounds right.
donaldh It looks like it walks from the PMC's class vtable so a new method dispatch would start at the PMC's class again. 23:44
chromatic Through >mro? 23:47
Tene pmichaud: any thoughts yet on what you want for the PCT tutorial? 23:57