perl.inline http://www.nntp.perl.org/group/perl.inline/ ... Copyright 1998-2013 perl.org Sun, 26 May 2013 07:27:30 +0000 ask@perl.org Re: [rt.cpan.org #85336] Fails often when tested in parallel by Andreas Koenig &quot;Sisyphus via RT&quot; &lt;bug-Inline@rt.cpan.org&gt; writes:<br/><br/>&gt; Is that worth trying ?<br/><br/>This, or maybe apply some locking? Depends on how much work it is, and<br/>on how relevant for later real world behaviour it is.<br/><br/>Except for this, I&#39;d leave the judgement to the implementor;)<br/><br/>-- <br/>andreas<br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4456.html Wed, 22 May 2013 19:32:52 +0000 [rt.cpan.org #85336] Fails often when tested in parallel by Sisyphus via RT Sun May 19 01:37:37 2013: Request 85336 was acted upon.<br/>Transaction: Correspondence added by SISYPHUS<br/> Queue: Inline<br/> Subject: Fails often when tested in parallel<br/> Broken in: 0.53<br/> Severity: (no value)<br/> Owner: Nobody<br/> Requestors: ANDK@cpan.org<br/> Status: open<br/> Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=85336 &gt;<br/><br/><br/>On Sat May 18 10:40:47 2013, andreas.koenig.7os6VVqR@franz.ak.mind.de wrote:<br/>&gt; &quot;Sisyphus via RT&quot; &lt;bug-Inline@rt.cpan.org&gt; writes:<br/>&gt; <br/>&gt; &gt; Is that worth trying ?<br/>&gt; <br/>&gt; This, or maybe apply some locking? Depends on how much work it is, and<br/>&gt; on how relevant for later real world behaviour it is.<br/>&gt; <br/>&gt; Except for this, I&#39;d leave the judgement to the implementor;)<br/><br/>I don&#39;t think it&#39;s very relevant to real world usage - and hence my (personal) interest in this is nowhere near as keen as it would otherwise be.<br/><br/>However, David Oswald wants to write some patches that will put in place file locking. If there&#39;s no problem with those patches, I&#39;ll apply them (when I receive them) and release a new devel version of Inline.<br/><br/>Hopefully, that will keep everyone happy :-)<br/><br/>Cheers,<br/>Rob<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4455.html Sun, 19 May 2013 05:37:50 +0000 Re: Inline::CPP v0.44: Implement flocking by sisyphus1 <br/><br/>-----Original Message----- <br/>From: David Oswald<br/><br/>&gt; Here&#39;s what I&#39;ll do: I&#39;m going to release a dev release of Inline::CPP<br/>&gt; that does just that. If its smoke testing doesn&#39;t get any worse than it<br/>&gt; already is, I&#39;ll submit a patch for Inline that does the same thing. If<br/>&gt; you want to use it you can, and if you don&#39;t, no hard feelings. :)<br/><br/>If you provide a patch, I&#39;ll certainly apply it and release a new Inline <br/>devel version - providing, of course, that it doesn&#39;t break anything.<br/><br/>Cheers,<br/>Rob <br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4454.html Sun, 19 May 2013 02:15:11 +0000 Re: Inline::CPP v0.44: Implement flocking by David Oswald I appreciate your point of view as well. Disagreeing is healthy. If<br/>we all just fell in line with each other&#39;s whims and opinions we would<br/>risk heading off on a path to irrelevancy.<br/><br/>I also agree that I&#39;m hard-pressed to come up with a situation where a<br/>normal use of Inline would result in concurrent compilation. Race<br/>conditions only occur when there&#39;s a race. Perhaps if a script<br/>included two or more modules that both relied upon Inline, and both<br/>hadn&#39;t previously been compiled, but that&#39;s far-fetched.<br/><br/>On the one hand, we can reasonably assert that the CPAN testers are<br/>testing incorrectly if they&#39;re testing with concurrency, and that our<br/>failure to pass their tests is due to them not taking into<br/>consideration the fact that some modules will never be used that way.<br/>On the other hand, they have a monumental task in trying to test<br/>everything that shows up on CPAN, and expecting special case treatment<br/>for Inline might be more than they&#39;re able to accommodate. Yes,<br/>that&#39;s broken. But people look at the test results when weighing<br/>whether or not we&#39;re an appropriate solution, and unfortunately, they<br/>don&#39;t always dig into the &quot;why&quot; when they see a FAIL.<br/><br/>The easiest solution for Inline would be to simply flock a semaphore<br/>file before it compiles any target code, and unlock it after it&#39;s done<br/>with the build directory. This would require only a single flock, and<br/>would prevent concurrent use of the build resources. It would have<br/>zero impact on normal users (it would never block since they would<br/>never be compiling in parallel), but would cause the tests to block<br/>for a moment occasionally. That should avoid all race conditions.<br/><br/>Here&#39;s what I&#39;ll do: I&#39;m going to release a dev release of Inline::CPP<br/>that does just that. If its smoke testing doesn&#39;t get any worse than<br/>it already is, I&#39;ll submit a patch for Inline that does the same<br/>thing. If you want to use it you can, and if you don&#39;t, no hard<br/>feelings. :)<br/><br/>Dave<br/><br/>On Sat, May 18, 2013 at 2:59 AM, &lt;sisyphus1@optusnet.com.au&gt; wrote:<br/>&gt;<br/>&gt;<br/>&gt; -----Original Message----- From: David Oswald<br/>&gt;<br/>&gt;<br/>&gt;&gt; Rob: I notice there are numerous places in the Inline distribution where<br/>&gt;&gt; we&#39;re opening for output but not flocking. I didn&#39;t even look at possible<br/>&gt;&gt; issues where we might be opening for input, reading, then opening for<br/>&gt;&gt; output and expecting to not tromp on another process that may have gotten<br/>&gt;&gt; in the middle of the cycle.<br/>&gt;<br/>&gt;<br/>&gt; The key thing for me is that this absence of flocking has never (afaik) been<br/>&gt; reported as an issue for any *user*.<br/>&gt; Not wishing to denigrate cpan-testers (who do a fantastic job), but I&#39;ve<br/>&gt; always been loathe to address something that exists only in a smoking<br/>&gt; set-up, for fear it&#39;s going to open up a can of worms for those who actually<br/>&gt; want to make use of the module.<br/>&gt; I still see the occasional cpan-tester FAIL report where &#39;use diagnostics;&#39;<br/>&gt; is a fatal error ... which only reinforces my resolve to be a little bit<br/>&gt; cautious about the significance of the failures that the cpan-testers throw<br/>&gt; up :-)<br/>&gt;<br/>&gt;<br/>&gt;&gt; I think that Inline probably should be<br/>&gt;&gt; implementing flocking on all outputs, and anytime an output follows a<br/>&gt;&gt; read, we should use a flocked semaphore file to maintain the lock across<br/>&gt;&gt; the read/write cycle.<br/>&gt;<br/>&gt;<br/>&gt; I can&#39;t see that this should be necessary except perhaps for the<br/>&gt; configuration file that gets written in the top level build directory.<br/>&gt; I don&#39;t insist on not implementing stuff that&#39;s pointless (as along as it<br/>&gt; comes at little cost), but I&#39;m a bit wary of *flocking* across the board<br/>&gt; because I can never get the damn thing to work *portably* &amp;&amp; *silently*.<br/>&gt; (Maybe that&#39;s just because I&#39;m inexperienced in the use of flock.)<br/>&gt; If we do flock, I&#39;d rather do it only where it&#39;s proven to be necessary.<br/>&gt;<br/>&gt;<br/>&gt;&gt; I can confirm that even after fixing Inline::CPP,<br/>&gt;&gt; we still have race conditions that must be coming from inside of Inline,<br/>&gt;&gt; that rear their ugly head while executing tests in parallel.<br/>&gt;<br/>&gt;<br/>&gt; Can you give me an actual &quot;use&quot; case - one that&#39;s outside the<br/>&gt; cpan-tester/smoker/Test::Harness environment ?<br/>&gt; That would probably encourage me to become a more responsible and caring<br/>&gt; Inline maintainer :-)<br/>&gt;<br/>&gt;<br/>&gt;&gt; The fixes<br/>&gt;&gt; within Inline shouldn&#39;t be too difficult, but there are so many places<br/>&gt;&gt; that Inline interacts with files, it will be hard to assure we&#39;ve gotten<br/>&gt;&gt; all of them.<br/>&gt;<br/>&gt;<br/>&gt; My thinking is that we can&#39;t be missing too much or we would&#39;ve received at<br/>&gt; least one bug report about it from a user in the last 15 years.<br/>&gt;<br/>&gt;<br/>&gt;&gt; I suppose I could implement a semaphore flock at the<br/>&gt;&gt; beginning of compilation phase for Inline::CPP and release it after<br/>&gt;&gt; compilation phase finishes. That would make Inline::CPP concurrency-safe<br/>&gt;&gt; even if Inline were to remain not concurrency-safe. But that&#39;s just<br/>&gt;&gt; sweeping the dust under the carpet. :)<br/>&gt;<br/>&gt;<br/>&gt; Well ... that&#39;d be good enough for me. Does that work ?<br/>&gt;<br/>&gt; Although (as is clearly evident) I&#39;m not all that passionate about this at<br/>&gt; the moment, I would probably find it hard to ignore any patch that:<br/>&gt; a) broke none of the current tests;<br/>&gt; &amp;&amp;<br/>&gt; b) created no noise.<br/>&gt;<br/>&gt; (But I&#39;d still prefer that we flocked only where it&#39;s demonstrably needed.)<br/>&gt;<br/>&gt; And I still can&#39;t help feeling that cpan-testers/Test::Harness/smokers might<br/>&gt; be assuming something of Inline that it was never designed (or intended) to<br/>&gt; deliver ... dunno ... again, an actual &quot;use&quot; case demonstrating the problem<br/>&gt; would be helpful here.<br/>&gt;<br/>&gt; As you can see, David, I don&#39;t entirely agree with your POV at the moment.<br/>&gt; But I *do* appreciate that you took the time and effort to express it. (And<br/>&gt; I thank you for doing that !!)<br/>&gt;<br/>&gt; Cheers,<br/>&gt; Rob<br/><br/><br/><br/>-- <br/><br/>David Oswald<br/>daoswald@gmail.com<br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4453.html Sat, 18 May 2013 15:44:18 +0000 Re: [rt.cpan.org #85336] Fails often when tested in parallel by David Oswald via RT Sat May 18 11:23:47 2013: Request 85336 was acted upon.<br/>Transaction: Correspondence added by daoswald<br/> Queue: Inline<br/> Subject: Re: [rt.cpan.org #85336] Fails often when tested in parallel<br/> Broken in: 0.53<br/> Severity: (no value)<br/> Owner: Nobody<br/> Requestors: ANDK@cpan.org<br/> Status: open<br/> Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=85336 &gt;<br/><br/><br/>I get test failures in Inline::CPP when running tests in parallel.<br/>I&#39;ve gone through Inline::CPP and implemented file locking to<br/>eliminate race conditions, but the issue persists. That leads me to<br/>believe that there needs to be a similar fix in Inline. Changing<br/>Inline&#39;s tests to use separate build directories wouldn&#39;t fix the<br/>underlying issue of Inline not supporting concurrency. Proper file<br/>locking probably would resolve the issue, not only for Inline, but<br/>also for plugins such as Inline::CPP.<br/><br/><br/>On Sat, May 18, 2013 at 8:40 AM, (Andreas J. Koenig) via RT<br/>&lt;bug-Inline@rt.cpan.org&gt; wrote:<br/>&gt; Sat May 18 10:40:47 2013: Request 85336 was acted upon.<br/>&gt; Transaction: Correspondence added by andreas.koenig.7os6VVqR@franz.ak.mind.de<br/>&gt; Queue: Inline<br/>&gt; Subject: Re: [rt.cpan.org #85336] Fails often when tested in parallel<br/>&gt; Broken in: 0.53<br/>&gt; Severity: (no value)<br/>&gt; Owner: Nobody<br/>&gt; Requestors: ANDK@cpan.org<br/>&gt; Status: open<br/>&gt; Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=85336 &gt;<br/>&gt;<br/>&gt;<br/>&gt; &quot;Sisyphus via RT&quot; &lt;bug-Inline@rt.cpan.org&gt; writes:<br/>&gt;<br/>&gt;&gt; Is that worth trying ?<br/>&gt;<br/>&gt; This, or maybe apply some locking? Depends on how much work it is, and<br/>&gt; on how relevant for later real world behaviour it is.<br/>&gt;<br/>&gt; Except for this, I&#39;d leave the judgement to the implementor;)<br/>&gt;<br/>&gt; --<br/>&gt; andreas<br/>&gt;<br/><br/><br/><br/>-- <br/><br/>David Oswald<br/>daoswald@gmail.com<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4452.html Sat, 18 May 2013 15:23:58 +0000 Re: [rt.cpan.org #85336] Fails often when tested in parallel by via RT Sat May 18 10:40:47 2013: Request 85336 was acted upon.<br/>Transaction: Correspondence added by andreas.koenig.7os6VVqR@franz.ak.mind.de<br/> Queue: Inline<br/> Subject: Re: [rt.cpan.org #85336] Fails often when tested in parallel<br/> Broken in: 0.53<br/> Severity: (no value)<br/> Owner: Nobody<br/> Requestors: ANDK@cpan.org<br/> Status: open<br/> Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=85336 &gt;<br/><br/><br/>&quot;Sisyphus via RT&quot; &lt;bug-Inline@rt.cpan.org&gt; writes:<br/><br/>&gt; Is that worth trying ?<br/><br/>This, or maybe apply some locking? Depends on how much work it is, and<br/>on how relevant for later real world behaviour it is.<br/><br/>Except for this, I&#39;d leave the judgement to the implementor;)<br/><br/>-- <br/>andreas<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4451.html Sat, 18 May 2013 14:41:00 +0000 Re: Inline::CPP v0.44: Implement flocking by sisyphus1 <br/><br/>-----Original Message----- <br/>From: David Oswald<br/><br/>&gt; Rob: I notice there are numerous places in the Inline distribution where<br/>&gt; we&#39;re opening for output but not flocking. I didn&#39;t even look at possible<br/>&gt; issues where we might be opening for input, reading, then opening for<br/>&gt; output and expecting to not tromp on another process that may have gotten<br/>&gt; in the middle of the cycle.<br/><br/>The key thing for me is that this absence of flocking has never (afaik) been <br/>reported as an issue for any *user*.<br/>Not wishing to denigrate cpan-testers (who do a fantastic job), but I&#39;ve <br/>always been loathe to address something that exists only in a smoking <br/>set-up, for fear it&#39;s going to open up a can of worms for those who actually <br/>want to make use of the module.<br/>I still see the occasional cpan-tester FAIL report where &#39;use diagnostics;&#39; <br/>is a fatal error ... which only reinforces my resolve to be a little bit <br/>cautious about the significance of the failures that the cpan-testers throw <br/>up :-)<br/><br/>&gt; I think that Inline probably should be<br/>&gt; implementing flocking on all outputs, and anytime an output follows a<br/>&gt; read, we should use a flocked semaphore file to maintain the lock across<br/>&gt; the read/write cycle.<br/><br/>I can&#39;t see that this should be necessary except perhaps for the <br/>configuration file that gets written in the top level build directory.<br/>I don&#39;t insist on not implementing stuff that&#39;s pointless (as along as it <br/>comes at little cost), but I&#39;m a bit wary of *flocking* across the board <br/>because I can never get the damn thing to work *portably* &amp;&amp; *silently*. <br/>(Maybe that&#39;s just because I&#39;m inexperienced in the use of flock.)<br/>If we do flock, I&#39;d rather do it only where it&#39;s proven to be necessary.<br/><br/>&gt; I can confirm that even after fixing Inline::CPP,<br/>&gt; we still have race conditions that must be coming from inside of Inline,<br/>&gt; that rear their ugly head while executing tests in parallel.<br/><br/>Can you give me an actual &quot;use&quot; case - one that&#39;s outside the <br/>cpan-tester/smoker/Test::Harness environment ?<br/>That would probably encourage me to become a more responsible and caring <br/>Inline maintainer :-)<br/><br/>&gt; The fixes<br/>&gt; within Inline shouldn&#39;t be too difficult, but there are so many places<br/>&gt; that Inline interacts with files, it will be hard to assure we&#39;ve gotten<br/>&gt; all of them.<br/><br/>My thinking is that we can&#39;t be missing too much or we would&#39;ve received at <br/>least one bug report about it from a user in the last 15 years.<br/><br/>&gt; I suppose I could implement a semaphore flock at the<br/>&gt; beginning of compilation phase for Inline::CPP and release it after<br/>&gt; compilation phase finishes. That would make Inline::CPP concurrency-safe<br/>&gt; even if Inline were to remain not concurrency-safe. But that&#39;s just<br/>&gt; sweeping the dust under the carpet. :)<br/><br/>Well ... that&#39;d be good enough for me. Does that work ?<br/><br/>Although (as is clearly evident) I&#39;m not all that passionate about this at <br/>the moment, I would probably find it hard to ignore any patch that:<br/>a) broke none of the current tests;<br/>&amp;&amp;<br/>b) created no noise.<br/><br/>(But I&#39;d still prefer that we flocked only where it&#39;s demonstrably needed.)<br/><br/>And I still can&#39;t help feeling that cpan-testers/Test::Harness/smokers might <br/>be assuming something of Inline that it was never designed (or intended) to <br/>deliver ... dunno ... again, an actual &quot;use&quot; case demonstrating the problem <br/>would be helpful here.<br/><br/>As you can see, David, I don&#39;t entirely agree with your POV at the moment. <br/>But I *do* appreciate that you took the time and effort to express it. (And <br/>I thank you for doing that !!)<br/><br/>Cheers,<br/>Rob <br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4450.html Sat, 18 May 2013 09:00:49 +0000 [rt.cpan.org #85336] Fails often when tested in parallel by Sisyphus via RT Sat May 18 02:20:38 2013: Request 85336 was acted upon.<br/>Transaction: Correspondence added by SISYPHUS<br/> Queue: Inline<br/> Subject: Fails often when tested in parallel<br/> Broken in: 0.53<br/> Severity: (no value)<br/> Owner: Nobody<br/> Requestors: ANDK@cpan.org<br/> Status: new<br/> Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=85336 &gt;<br/><br/><br/>On Wed May 15 23:11:13 2013, ANDK wrote:<br/> <br/>&gt; There seems to be a race condition somewhere.<br/><br/>Both of the affected test scripts (t/21read_DATA.t and t/22read_DATA.t) use the same Inline build directory (.Inline) - and they therefore need to access the same configuration file.<br/><br/>If you think that could be the source of the problem, I could work around that by designating 2 different (separate) build directories for those 2 test scripts - thereby assuring that each script has its own copy of the configuration details.<br/>Is that worth trying ? (If so, let me know, and I&#39;ll upload a new developer version of Inline that does exactly that and we can see how that goes.)<br/><br/>Cheers,<br/>Rob<br/><br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4449.html Sat, 18 May 2013 06:20:47 +0000 Inline::CPP v0.44: Implement flocking by David Oswald Inline::CPP v0.44 has been uploaded to CPAN.<br/><br/>This version implements flocking on the typemap output file within<br/>CPP.pm, and on two temp files used by Makefile.PL. This should<br/>eliminate race conditions that could possibly be caused within<br/>Inline::CPP, particularly when testing under &quot;HARNESS_OPTIONS=jX&quot;, or<br/>by smokers that are testing more than one install at the same time.<br/>The general use case is unlikely to encounter problems, but you never<br/>know, so better safe than sorry.<br/><br/>Rob: I notice there are numerous places in the Inline distribution<br/>where we&#39;re opening for output but not flocking. I didn&#39;t even look<br/>at possible issues where we might be opening for input, reading, then<br/>opening for output and expecting to not tromp on another process that<br/>may have gotten in the middle of the cycle.<br/><br/>I think that Inline probably should be implementing flocking on all<br/>outputs, and anytime an output follows a read, we should use a flocked<br/>semaphore file to maintain the lock across the read/write cycle.<br/><br/>I can confirm that even after fixing Inline::CPP, we still have race<br/>conditions that must be coming from inside of Inline, that rear their<br/>ugly head while executing tests in parallel.<br/><br/>The fixes within Inline shouldn&#39;t be too difficult, but there are so<br/>many places that Inline interacts with files, it will be hard to<br/>assure we&#39;ve gotten all of them.<br/><br/>I suppose I could implement a semaphore flock at the beginning of<br/>compilation phase for Inline::CPP and release it after compilation<br/>phase finishes. That would make Inline::CPP concurrency-safe even if<br/>Inline were to remain not concurrency-safe. But that&#39;s just sweeping<br/>the dust under the carpet. :)<br/><br/>--<br/><br/>David Oswald<br/>daoswald@gmail.com<br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4448.html Sat, 18 May 2013 05:07:11 +0000 Re: Inline RT #85336 (Race Condition) by David Mertens I am not sure about the underlying mechanics, but if you need a second set<br/>of eyes on any of the code, feel free to drop a note with line numbers<br/>where the code does funny things.<br/><br/><br/>David<br/><br/><br/>On Wed, May 15, 2013 at 11:15 PM, David Oswald &lt;daoswald@gmail.com&gt; wrote:<br/><br/>&gt; I noticed Andreas Koenig opened a bug report on Inline (RT#85336)<br/>&gt; wherein he asserts there&#39;s probably a race condition present, as he&#39;s<br/>&gt; finding that operating several smokers in parallel will sometimes<br/>&gt; result in failures.<br/>&gt;<br/>&gt; This may be related to an issue I see, where running Inline::CPP&#39;s<br/>&gt; test suite with HARNESS_OPTIONS=j9 will also result in failures.<br/>&gt; Inline::CPP&#39;s tests are not sensitive to script order (tests within a<br/>&gt; script must be run in order, but it shouldn&#39;t matter what order the<br/>&gt; test scripts are run). As they&#39;re not order-sensitive, failure under<br/>&gt; harness parallel testing has to point to a race condition within<br/>&gt; Inline::CPP or Inline.<br/>&gt;<br/>&gt; I&#39;m going to look over Inline::CPP&#39;s code base with added scrutiny to<br/>&gt; assure that any IO operations it owns are implementing flocking. But<br/>&gt; it doesn&#39;t own many IO operations; most IO is pushed off to Inline, or<br/>&gt; the compilers themselves.<br/>&gt;<br/>&gt; One area I hadn&#39;t previously considered is Makefile.PL itself, which<br/>&gt; opens a file for output. That should be fine under normal user<br/>&gt; conditions, but could present a problem for smokers running in<br/>&gt; parallel.<br/>&gt;<br/>&gt; Dave<br/>&gt;<br/>&gt; --<br/>&gt;<br/>&gt; David Oswald<br/>&gt; daoswald@gmail.com<br/>&gt;<br/><br/><br/><br/>-- <br/> &quot;Debugging is twice as hard as writing the code in the first place.<br/> Therefore, if you write the code as cleverly as possible, you are,<br/> by definition, not smart enough to debug it.&quot; -- Brian Kernighan<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4447.html Fri, 17 May 2013 15:36:20 +0000 Inline RT #85336 (Race Condition) by David Oswald I noticed Andreas Koenig opened a bug report on Inline (RT#85336)<br/>wherein he asserts there&#39;s probably a race condition present, as he&#39;s<br/>finding that operating several smokers in parallel will sometimes<br/>result in failures.<br/><br/>This may be related to an issue I see, where running Inline::CPP&#39;s<br/>test suite with HARNESS_OPTIONS=j9 will also result in failures.<br/>Inline::CPP&#39;s tests are not sensitive to script order (tests within a<br/>script must be run in order, but it shouldn&#39;t matter what order the<br/>test scripts are run). As they&#39;re not order-sensitive, failure under<br/>harness parallel testing has to point to a race condition within<br/>Inline::CPP or Inline.<br/><br/>I&#39;m going to look over Inline::CPP&#39;s code base with added scrutiny to<br/>assure that any IO operations it owns are implementing flocking. But<br/>it doesn&#39;t own many IO operations; most IO is pushed off to Inline, or<br/>the compilers themselves.<br/><br/>One area I hadn&#39;t previously considered is Makefile.PL itself, which<br/>opens a file for output. That should be fine under normal user<br/>conditions, but could present a problem for smokers running in<br/>parallel.<br/><br/>Dave<br/><br/>--<br/><br/>David Oswald<br/>daoswald@gmail.com<br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4446.html Thu, 16 May 2013 04:16:05 +0000 [rt.cpan.org #85336] Fails often when tested in parallel by Andreas Koenig via RT Wed May 15 23:11:13 2013: Request 85336 was acted upon.<br/>Transaction: Ticket created by ANDK<br/> Queue: Inline<br/> Subject: Fails often when tested in parallel<br/> Broken in: 0.53<br/> Severity: (no value)<br/> Owner: Nobody<br/> Requestors: ANDK@cpan.org<br/> Status: new<br/> Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=85336 &gt;<br/><br/><br/>Yesterday my smoker produced two fails while 4 processes were testing Inline 0.53:<br/><br/>http://www.cpantesters.org/cpan/report/62c114d6-bda4-11e2-874b-cb6a10d45c6b<br/>http://www.cpantesters.org/cpan/report/64619edc-bda4-11e2-924f-916b10d45c6b<br/><br/>It&#39;s possible that these two were disturbing each other, they were both distrubed by some other, succeeding test run. I smoked with 4 parallel processes. It&#39;s not for the first time this happens, I have produced more fail reports in the past but not always they come in pairs. But I have not seen more than two in a row.<br/><br/>There seems to be a race condition somewhere.<br/><br/>HTH,<br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4445.html Thu, 16 May 2013 03:11:25 +0000 [rt.cpan.org #11748] Inline::CPP config gets lost because of Inline::C bug by Sisyphus via RT Wed May 08 22:45:09 2013: Request 11748 was acted upon.<br/>Transaction: Correspondence added by SISYPHUS<br/> Queue: Inline<br/> Subject: Inline::CPP config gets lost because of Inline::C bug<br/> Broken in: (no value)<br/> Severity: Important<br/> Owner: Nobody<br/> Requestors: nick_msu@pisem.net<br/> Status: open<br/> Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=11748 &gt;<br/><br/><br/>Marking as resolved.<br/>Fixed in Inline-0.53 (which was released to CPAN on 30th April 2013).<br/><br/>Cheers,<br/>Rob<br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4444.html Thu, 09 May 2013 02:45:19 +0000 Inline::CPP v0.43 released by David Oswald I&#39;ve released Inline::CPP v0.43 to CPAN. This is a mainstream release<br/>that bumps the Inline dependency requirement to 0.53 to address the<br/>&quot;typemap clobbers inc&quot; bug. As discussed here previously, this was<br/>probably an Inline::CPP issue, but the easiest fix was to make Inline<br/>more tolerant.<br/><br/>If anyone on the list is having trouble installing Inline::CPP<br/>(especially after disabling any HARNESS_OPTIONS environment variable<br/>settings -- concurrent tests seem to be a no-no) please let me know so<br/>that we can work out a solution. We&#39;re still failing on Dragonfly,<br/>and occasionally on what appears to be plain vanilla GNU/Linux.<br/><br/>Dave<br/><br/>--<br/><br/>David Oswald<br/>daoswald@gmail.com<br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4443.html Sat, 04 May 2013 15:12:52 +0000 Inline-0.53 released by sisyphus1 Hi,<br/><br/>Inline-0.53 has just been pushed to CPAN, and should be available at the <br/>various mirrors, soon.<br/><br/>No changes from 0.52_02, except for the inclusion of an additional test <br/>script (C/t/23validate.t).<br/><br/>Cheers,<br/>Rob <br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/05/msg4442.html Wed, 01 May 2013 08:49:56 +0000 Inline::CPP v0.42_002(dev) uploaded to CPAN by David Oswald Inline::CPP v0.42_002(dev) has been uploaded to CPAN. The primary<br/>change is to require Inline::C version 0.52_02. This dev version of<br/>Inline::C addresses the Inline RT#11748, which also solves Inline::C<br/>RT#84762.<br/><br/>The issue was that the INC parameter was being clobbered by<br/>Inline::CPP&#39;s typemap validation process. While it&#39;s likely that<br/>Inline::CPP was at fault for abusing Inline::C&#39;s API, it turned out<br/>that the simplest solution was to make Inline::C&#39;s API more tolerant<br/>of abuse, which is what Rob essentially did.<br/><br/>The other change was to the POD, addressing how to avoid &quot;Namespace<br/>stuttering&quot;: (See the POD&#39;s new &quot;The Perl Namespace Hack&quot; section) --<br/>this solution came from BrowserUk.<br/><br/>Once the dynamic duo of madness (Inline::C and Inline::CPP) make it<br/>through the smokers I understand Rob will be releasing Inline::C<br/>v0.43. Soon thereafter I&#39;ll bump the minimum Inline requirement to<br/>0.43, and will release Inline::CPP v0.53 (confusing; I hope I got that<br/>right).<br/><br/>Dave<br/><br/>--<br/><br/>David Oswald<br/>daoswald@gmail.com<br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4441.html Wed, 24 Apr 2013 07:20:11 +0000 Inline-0.52_02 released by sisyphus1 Hi,<br/><br/>Only change is a small alteration to Inline::C::validate().<br/>This is mainly for the benefit of Inline::CPP.<br/><br/>See:<br/>https://rt.cpan.org/Ticket/Display.html?id=11748<br/><br/>Unless cpan-testers reports tell us that this change has broken something, <br/>it will be released as 0.53 early next week.<br/><br/>Cheers,<br/>Rob <br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4440.html Wed, 24 Apr 2013 05:15:16 +0000 [rt.cpan.org #11748] Inline::CPP config gets lost because of Inline::C bug by Sisyphus via RT Tue Apr 23 23:49:15 2013: Request 11748 was acted upon.<br/>Transaction: Correspondence added by SISYPHUS<br/> Queue: Inline<br/> Subject: Inline::CPP config gets lost because of Inline::C bug<br/> Broken in: (no value)<br/> Severity: Important<br/> Owner: Nobody<br/> Requestors: nick_msu@pisem.net<br/> Status: open<br/> Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=11748 &gt;<br/><br/><br/>On Sat Apr 20 02:53:07 2013, iang wrote:<br/> <br/>&gt; I think the fault is in Inline::CPP, not Inline::C.<br/><br/>Yes, I now think that *is* right.<br/><br/>&gt; If Inline::CPP<br/>&gt; generates typemap data (if $typemap has non-zero length in<br/>&gt; Inline::CPP::write_typemap) then Inline::CPP::validate is called<br/>&gt; with the generated TYPEMAP data passed, but this calls<br/>&gt; Inline::C::validate, which sets $o-&gt;{ILSM}{MAKEFILE}{INC}, unless<br/>&gt; $o-&gt;UNTAINT is set.<br/>[snip]<br/>&gt; Part of the issue is that when validating TYPEMAP, all the other<br/>&gt; options are not passed to Inlince::C::validate. The initialization<br/>&gt; there sets INC and the previously passed value is not appended<br/>&gt; because it is not passed, only the TYPEMAP is passed.<br/><br/>Seems to me that Inline::C::validate is not really designed to receive that set of data, and Inline::CPP should probably not be passing that set of data to it.<br/>Nevertheless, it can apparently be easily fixed by applying the suggested change to Inline::C::validate - so I&#39;ll go with the original fix.<br/>A version of Inline containing this fix has been uploaded to CPAN as Inline-0.52_02. Unless, in the meantine, there&#39;s an issue found with Inline-0.52_02, it will be released as Inline-0.53 early next week.<br/><br/>Thanks again, Ian, for for the digging and the demo case.<br/><br/>Cheers,<br/>Rob<br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4439.html Wed, 24 Apr 2013 03:49:30 +0000 [rt.cpan.org #11748] Inline::CPP config gets lost because of Inline::C bug by Sisyphus via RT Sat Apr 20 07:06:17 2013: Request 11748 was acted upon.<br/>Transaction: Correspondence added by SISYPHUS<br/> Queue: Inline<br/> Subject: Inline::CPP config gets lost because of Inline::C bug<br/> Broken in: (no value)<br/> Severity: Important<br/> Owner: Nobody<br/> Requestors: nick_msu@pisem.net<br/> Status: open<br/> Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=11748 &gt;<br/><br/><br/>On Sat Apr 20 04:43:46 2013, iang wrote:<br/>&gt; I have looked at this a little further and, while I don&#39;t see any<br/>&gt; evidence of a bug in Inline::C, the bug in Inline::CPP (see Bug<br/>&gt; #84762) can be fixed by a change to Inline::C.<br/><br/>Thanks for the test case - and for digging around and providing ideas on how to fix this.<br/>Now that I have a demo to study, I can see that the &#39;-IC:/&#39; gets lost inside Inline::C::validate (which is called near the end of Inline::CPP::validate). This would suggest to me that it *is* a bug in Inline::C.<br/><br/>I&#39;ll do something about this when I get the time to study more closely what&#39;s going on. (Should have some time for that within the next fortnight.)<br/><br/>Thanks again, Ian.<br/><br/>Cheers,<br/>Rob<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4438.html Sat, 20 Apr 2013 11:06:28 +0000 [rt.cpan.org #11748] Inline::CPP config gets lost because of Inline::C bug by Ian Goodacre via RT Sat Apr 20 04:43:46 2013: Request 11748 was acted upon.<br/>Transaction: Correspondence added by iang<br/> Queue: Inline<br/> Subject: Inline::CPP config gets lost because of Inline::C bug<br/> Broken in: (no value)<br/> Severity: Important<br/> Owner: Nobody<br/> Requestors: nick_msu@pisem.net<br/> Status: open<br/> Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=11748 &gt;<br/><br/><br/>I have looked at this a little further and, while I don&#39;t see any evidence of a bug in Inline::C, the bug in Inline::CPP (see Bug #84762) can be fixed by a change to Inline::C.<br/><br/>An alternative to the change previously suggested is to change Inline::C::validate<br/><br/> if (not $o-&gt;UNTAINT and not defined($o-&gt;{ILSM}{MAKEFILE}{INC})) {<br/> require FindBin;<br/> $o-&gt;{ILSM}{MAKEFILE}{INC} = &quot;-I\&quot;$FindBin::Bin\&quot;&quot;;<br/> }<br/><br/><br/>This has the very small advantage of not requiring FindBin unless it will be used.<br/><br/>I don&#39;t understand what is happening to be confident this is the best way to fix the bug in Inline::CPP or that it doesn&#39;t cause other problems, but it is consistent with the other initializations in Inline::C::validate - only setting INC to default value if it is not already set.<br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4437.html Sat, 20 Apr 2013 08:43:58 +0000 [rt.cpan.org #11748] Inline::CPP config gets lost because of Inline::C bug by Ian Goodacre via RT Sat Apr 20 02:53:07 2013: Request 11748 was acted upon.<br/>Transaction: Correspondence added by iang<br/> Queue: Inline<br/> Subject: Inline::CPP config gets lost because of Inline::C bug<br/> Broken in: (no value)<br/> Severity: Important<br/> Owner: Nobody<br/> Requestors: nick_msu@pisem.net<br/> Status: open<br/> Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=11748 &gt;<br/><br/><br/>On Mon Jun 29 19:24:59 2009, SISYPHUS wrote:<br/>&gt; On Fri Mar 04 06:12:48 2005, guest wrote:<br/>&gt; &gt; It had seemed that Inline::CPP ignores INC Config option, but the bug<br/>&gt; &gt; has been discovered in Inline::C: $o-&gt;{ILSM}{MAKEFILE}{INC} gets<br/>&gt; &gt; erased each time validate() sub is called (sometimes it occurs<br/>&gt; &gt; several times per script execution).<br/>&gt; <br/>&gt; A simple script demonstrating the precise problem would be handy, just <br/>&gt; to make sure that we (I) understand correctly. I&#39;m not sure that the <br/>&gt; suggested patch is really necessary ... though there&#39;s probably no <br/>&gt; compelling reason to reject it.<br/>&gt; <br/>&gt; Cheers,<br/>&gt; Rob<br/><br/>I think the fault is in Inline::CPP, not Inline::C. If Inline::CPP generates typemap data (if $typemap has non-zero length in Inline::CPP::write_typemap) then Inline::CPP::validate is called with the generated TYPEMAP data passed, but this calls Inline::C::validate, which sets $o-&gt;{ILSM}{MAKEFILE}{INC}, unless $o-&gt;UNTAINT is set.<br/><br/>A simple script which elicits the problem is as follows. The extra include directory is useless, but it is also lost. Sorry, but the real case I was working on is a lengthy mess at the moment and I don&#39;t know a simple case where the extra include is actually needed.<br/><br/>Part of the issue is that when validating TYPEMAP, all the other options are not passed to Inlince::C::validate. The initialization there sets INC and the previously passed value is not appended because it is not passed, only the TYPEMAP is passed.<br/><br/><br/>#!C:/strawberry/perl/bin/perl.exe<br/>#<br/>use strict;<br/>use warnings;<br/>use Inline (&#39;CPP&#39; =&gt; &#39;DATA&#39;,<br/> &#39;INC&#39; =&gt; &#39;-IC:/&#39;,<br/> );<br/><br/>print &quot;9 + 16 = &quot;, add(9, 16), &quot;\n&quot;;<br/><br/>__END__<br/>__CPP__<br/><br/>// change 7<br/>int add(int x, int y) {<br/> return x + y;<br/>}<br/><br/>// Adding the following class causes Inline:CPP to generate<br/>// typemap data which is validated. The validation of the<br/>// typemap data causes the configuration of INC to be lost<br/>// In this case, Inline::C::validate, which is called from<br/>// Inline::CPP::validate, sets $o-&gt;{ILSM}{MAKEFILE}{INC}<br/>// unless $o-&gt;UNTAINT is set.<br/>class CRectangle {<br/> int x, y;<br/> public:<br/> void set_values(int, int);<br/> int area() { return(x*y); }<br/>};<br/><br/>void CRectangle::set_values(int a, int b) {<br/> x = a;<br/> y = b;<br/>}<br/><br/><br/><br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4436.html Sat, 20 Apr 2013 06:53:18 +0000 Inline-0.52_01 released to CPAN by sisyphus1 Hi,<br/><br/>Inline-0.52_01 has been uploaded to CPAN.<br/>It contains just one change from Inline-0.52.<br/><br/>In Inline.pm&#39;s sub read_DATA() I&#39;ve changed:<br/><br/> @{$DATA{$pkg}} = split /(?m)(__\S+?__\n)/, $data<br/>to:<br/> @{$DATA{$pkg}} = split /(?m)^[ \t]{0,}(__\S+?__\n)/, $data;<br/><br/>The bug that this addresses was discovered by Chris Nighswonger in some <br/>Inline::Python code.<br/>It can also affect Inline::C/Inline::CPP - but only if somewhat unorthodox <br/>coding styles are adopted. (Not sure what other Inline::* modules might be <br/>affected.)<br/><br/>By way of example, upto and including Inline-0.52 the following Inline::C <br/>script would *not* compile:<br/><br/>##################<br/>use Inline C =&gt; &#39;DATA&#39;;<br/><br/>foo();<br/><br/>__DATA__<br/>__C__<br/><br/>#define __symbol__ 42<br/><br/>void foo() {<br/> printf(&quot;%d: %s\n&quot;, __symbol__<br/> , &quot;Hello\n&quot;);<br/>}<br/><br/>##################<br/><br/>As of Inline-0.52_01 it will work as intended.<br/><br/>Note that this change has the potential to break existing (albeit <br/>ill-advisedly constructed) code.<br/>For example, upto and including Inline-0.52 the following inline::C script <br/>*would* compile (and run) fine, though it should probably have not:<br/><br/>##################<br/>use Inline C =&gt; &#39;DATA&#39;;<br/><br/>foo();<br/><br/>__DATA__<br/> some arbitrary garbage !@#$%^&amp;*()_+++ __C__<br/><br/>#define __symbol__ 42<br/><br/>void foo() {<br/> printf(&quot;%d: %s\n&quot;, __symbol__, &quot;Hello\n&quot;);<br/>}<br/><br/>##################<br/><br/>As of Inline-0.52_01 it will *not* compile. (And I think that is a step in <br/>the right direction.)<br/><br/>Finally, this is not a complete fix. Even as of Inline-0.52_01 the following <br/>Inline::C script will *not* compile (though it&#39;s valid C code):<br/><br/>##################<br/>use Inline C =&gt; &#39;DATA&#39;;<br/><br/>foo();<br/><br/>__DATA__<br/>__C__<br/><br/>#define __symbol__ 42<br/><br/>void foo() {<br/> printf(&quot;%d: %s\n&quot;,<br/> __symbol__<br/> , &quot;Hello\n&quot;);<br/>}<br/><br/>##################<br/><br/>For this particular Inline::C script, &#39;__symbol__&#39; is still deemed by <br/>0.52_01 to be a marker (as is also the case with 0.52 and earlier).<br/><br/>AFAIK the bug affects only those scripts that place their code under a <br/>__DATA__ or __END__ marker.<br/>If you do that and you have, in your code, some symbol (such as __symbol__ <br/>in the above examples, that&#39;s *not* a marker) that begins and ends with a <br/>double underscore, then you need to ensure that whenever that symbol appears <br/>on a line by itself, it is not immediately followed by a newline.<br/>If the symbol never appears on a line by itself then (as of 0.52_01) you <br/>have nothing to worry about.<br/>If the symbol is never followed immediately by a newline, then you have <br/>nothing to worry about.<br/>If you don&#39;t place your code under a __DATA__ or __END__ marker then you <br/>have nothing to worry about.<br/>If you don&#39;t have symbols in your code that begin and end with double <br/>underscores, then you have nothing to worry about.<br/><br/>So ... the conditions under which you can be bitten by this bug are quite <br/>limited.<br/><br/>I guess we could make them even more limited ... I don&#39;t see any need to <br/>rush into doing that. (Last thing I want to do is create breakage on a grand <br/>scale.)<br/><br/>Thanks to Chris Nighswonger and Stefan Seifert for their assistance with <br/>this.<br/><br/>It would be good if people could check that this change doesn&#39;t break other <br/>Inline::* module test suites. (I&#39;ve checked Inline-CPP-0.42, but no others.)<br/><br/>Cheers,<br/>Rob <br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4435.html Thu, 11 Apr 2013 06:38:35 +0000 Re: Using Inline Python to import Python vars by Chris Nighswonger On Tue, Apr 9, 2013 at 6:48 PM, &lt;sisyphus1@optusnet.com.au&gt; wrote:<br/><br/>&gt;<br/>&gt;<br/>&gt; Thanks for pursuing this, Chris, Stefan.<br/>&gt;<br/>&gt;<br/>Many thanks to Stefan for helping me along and to Rob for fixing things up.<br/><br/>Kind Regards,<br/>Chris<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4434.html Tue, 09 Apr 2013 23:29:43 +0000 Re: Using Inline Python to import Python vars by sisyphus1 <br/>From: Chris Nighswonger<br/><br/>&gt; This fixes the problem! Fantastic!<br/><br/>&gt;&gt; It&#39;s possibly a little convoluted at the moment ... maybe someone can<br/>&gt;&gt; improve on that.<br/>&gt;<br/>&gt; Is there any case where the marker would not be on a line by itself?<br/><br/>If it&#39;s not on a line by itself, it will be deemed to *not* be a marker.<br/>If it matches /__\S+?__\n/ and is on a line by itself, it *will* be regarded <br/>as a marker.<br/><br/>There is therefore still an opening (in Inline::C, at least) to break <br/>Inline.<br/><br/>Even after the alteration to sub read_DATA has been made, this Inline::C <br/>code is still broken:<br/><br/>void foo() {<br/> printf (&quot;%d\n&quot;,<br/> __MINGW32__<br/> + 7);<br/>}<br/><br/>Similarly, if it&#39;s valid python to rewrite<br/><br/> return __version__<br/><br/>as<br/><br/> return<br/> __version__<br/><br/>then Inline::Python would still be broken by the latter.<br/><br/>I reckon it&#39;s probably a real can of worms to try and fix that - so I&#39;ll <br/>just leave it as is (until someone complains, anyway).<br/>I think we would have to start checking for matches against known markers <br/>(__C__, __Python__, etc.) as you originally suggested. Even then there would <br/>be nothing to stop me from breaking Inline::C by defining a symbol named <br/>__Python__ (or __CPP__, etc.) and using that symbol in my Inline::C code.<br/><br/>Hopefully, everyone writes their code *across* the page, not *down* the page <br/>!!<br/><br/>&gt; If not perhaps we could just do such as<br/>&gt;<br/>&gt; @{$DATA{$pkg}} = split /(?m)^(__\S+?__\n)/, $data;<br/>&gt;<br/>&gt; and eliminate the need to remove whitespace?<br/><br/>In the past, Inline has removed the whitespace that precedes the marker - <br/>and it performs a check to verify that the whitespace has been removed.<br/>So ... we need to remove the whitespace to satisfy that check. <br/>(Alternatively, I could rewrite the check, but I think it&#39;s safer to stick <br/>to the original formatting rules.)<br/><br/>In fact, in the past, Inline has removed everything (not just whitespace) <br/>that precedes the marker on the line. So, in the past, you should have been <br/>able to write:<br/><br/>__DATA__<br/>some arbitrary stuff __Python__<br/>......<br/><br/>Inline would then remove the &quot; some arbitrary stuff &quot; that precedes the <br/>__Python__ marker.<br/><br/>This will no longer be the case. If the marker is preceded by anything other <br/>than whitespace, it will be regarded as not being a marker.<br/>So .... if anyone has been preceding the marker with anything other than <br/>whitespace, they&#39;ll find their code broken.<br/>Surely, no-one has been doing that ?<br/><br/>Anyway, I&#39;ll chew things over for a day or two - wait and see if there&#39;s any <br/>other thoughts on what ought to be done.<br/>Then I&#39;ll upload a 0.52_01 release that contains this amendment to <br/>Inline.pm. (I&#39;ll let the list know when that happens.)<br/><br/>Thanks for pursuing this, Chris, Stefan.<br/><br/>Cheers,<br/>Rob<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4433.html Tue, 09 Apr 2013 22:49:30 +0000 Re: Using Inline Python to import Python vars by Chris Nighswonger On Tue, Apr 9, 2013 at 4:15 AM, &lt;sisyphus1@optusnet.com.au&gt; wrote:<br/><br/>&gt;<br/>&gt; -----Original Message----- From: sisyphus1@optusnet.com.au<br/>&gt; Sent: Tuesday, April 09, 2013 12:44 PM<br/>&gt; To: Chris Nighswonger ; inline@perl.org<br/>&gt;<br/>&gt; Subject: Re: Using Inline Python to import Python vars<br/>&gt;<br/>&gt;<br/>&gt;<br/>&gt; -----Original Message----- From: Chris Nighswonger<br/>&gt;<br/>&gt; @{$DATA{$pkg}} = split /(?m)(__\S+?__\n)/, $data;<br/>&gt;&gt;<br/>&gt;<br/>&gt; Try replacing that line (in Inline.pm) with:<br/>&gt;<br/>&gt; #warn &quot;\n########\n\$data:\n$data\n#**#######\n&quot;;<br/>&gt; @{$DATA{$pkg}} = split /(?m)(\n[ \t]{0,}__\S+?__\n)/, $data;<br/>&gt; for(@{$DATA{$pkg}}) {$_ = (split /\s/, $_)[-1] . &quot;\n&quot; if $_ =~<br/>&gt; /^\s{0,}__\S+?__\n$/} # remove any whitespace that precedes marker<br/>&gt; #warn &quot;\n########\n&quot;, scalar(@{$DATA{$pkg}}), &quot;\n&quot;;l<br/>&gt; #for(@{$DATA{$pkg}}) {warn &quot;&gt;&gt;$_&lt;&lt;\n&quot;}<br/>&gt;<br/>&gt; It&#39;s only 2 lines of code - the (commented out) warnings might be useful<br/>&gt; if things go awry. They won&#39;t appear in the final version of Inline.pm.<br/>&gt;<br/>&gt; That works ok for my failing Inline::C script, and without causing any of<br/>&gt; the Inline tests in the Inline-0.52 test suite to fail.<br/>&gt; I&#39;m hopeful it will do the trick for your Inline::Python script, too.<br/>&gt;<br/>&gt;<br/>This fixes the problem! Fantastic!<br/><br/><br/>&gt; It&#39;s possibly a little convoluted at the moment ... maybe someone can<br/>&gt; improve on that.<br/>&gt;<br/><br/>Is there any case where the marker would not be on a line by itself? If not<br/>perhaps we could just do such as<br/><br/> @{$DATA{$pkg}} = split /(?m)^(__\S+?__\n)/, $data;<br/><br/>and eliminate the need to remove whitespace?<br/><br/>Kind Regards,<br/>Chris<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4432.html Tue, 09 Apr 2013 19:29:29 +0000 Re: Using Inline Python to import Python vars by Chris Nighswonger Hi Rob,<br/><br/>On Tue, Apr 9, 2013 at 4:15 AM, &lt;sisyphus1@optusnet.com.au&gt; wrote:<br/><br/>&gt;<br/>&gt;<br/>&gt; -----Original Message----- From: sisyphus1@optusnet.com.au<br/>&gt; Sent: Tuesday, April 09, 2013 12:44 PM<br/>&gt; To: Chris Nighswonger ; inline@perl.org<br/>&gt;<br/>&gt; Subject: Re: Using Inline Python to import Python vars<br/>&gt;<br/>&gt;<br/>&gt; -----Original Message----- From: Chris Nighswonger<br/>&gt;<br/>&gt; @{$DATA{$pkg}} = split /(?m)(__\S+?__\n)/, $data;<br/>&gt;&gt;<br/>&gt;<br/>&gt; Try replacing that line (in Inline.pm) with:<br/>&gt;<br/>&gt; #warn &quot;\n########\n\$data:\n$data\n#**#######\n&quot;;<br/>&gt; @{$DATA{$pkg}} = split /(?m)(\n[ \t]{0,}__\S+?__\n)/, $data;<br/>&gt; for(@{$DATA{$pkg}}) {$_ = (split /\s/, $_)[-1] . &quot;\n&quot; if $_ =~<br/>&gt; /^\s{0,}__\S+?__\n$/} # remove any whitespace that precedes marker<br/>&gt; #warn &quot;\n########\n&quot;, scalar(@{$DATA{$pkg}}), &quot;\n&quot;;l<br/>&gt; #for(@{$DATA{$pkg}}) {warn &quot;&gt;&gt;$_&lt;&lt;\n&quot;}<br/>&gt;<br/>&gt; It&#39;s only 2 lines of code - the (commented out) warnings might be useful<br/>&gt; if things go awry. They won&#39;t appear in the final version of Inline.pm.<br/>&gt;<br/>&gt; That works ok for my failing Inline::C script, and without causing any of<br/>&gt; the Inline tests in the Inline-0.52 test suite to fail.<br/>&gt; I&#39;m hopeful it will do the trick for your Inline::Python script, too.<br/>&gt;<br/>&gt; It&#39;s possibly a little convoluted at the moment ... maybe someone can<br/>&gt; improve on that.<br/>&gt;<br/><br/>I&#39;ll be out of the office most of the day today, but will try this out<br/>later this afternoon/evening and post back.<br/><br/>Kind Regards,<br/>Chris<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4431.html Tue, 09 Apr 2013 10:36:24 +0000 Re: Using Inline Python to import Python vars by sisyphus1 <br/><br/>-----Original Message----- <br/>From: sisyphus1@optusnet.com.au<br/>Sent: Tuesday, April 09, 2013 12:44 PM<br/>To: Chris Nighswonger ; inline@perl.org<br/>Subject: Re: Using Inline Python to import Python vars<br/><br/><br/><br/>-----Original Message----- <br/>From: Chris Nighswonger<br/><br/>&gt; @{$DATA{$pkg}} = split /(?m)(__\S+?__\n)/, $data;<br/><br/>Try replacing that line (in Inline.pm) with:<br/><br/> #warn &quot;\n########\n\$data:\n$data\n########\n&quot;;<br/> @{$DATA{$pkg}} = split /(?m)(\n[ \t]{0,}__\S+?__\n)/, $data;<br/> for(@{$DATA{$pkg}}) {$_ = (split /\s/, $_)[-1] . &quot;\n&quot; if $_ =~ <br/>/^\s{0,}__\S+?__\n$/} # remove any whitespace that precedes marker<br/> #warn &quot;\n########\n&quot;, scalar(@{$DATA{$pkg}}), &quot;\n&quot;;l<br/> #for(@{$DATA{$pkg}}) {warn &quot;&gt;&gt;$_&lt;&lt;\n&quot;}<br/><br/>It&#39;s only 2 lines of code - the (commented out) warnings might be useful if <br/>things go awry. They won&#39;t appear in the final version of Inline.pm.<br/><br/>That works ok for my failing Inline::C script, and without causing any of <br/>the Inline tests in the Inline-0.52 test suite to fail.<br/>I&#39;m hopeful it will do the trick for your Inline::Python script, too.<br/><br/>It&#39;s possibly a little convoluted at the moment ... maybe someone can <br/>improve on that.<br/><br/>Cheers,<br/>Rob <br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4430.html Tue, 09 Apr 2013 08:16:06 +0000 Re: Using Inline Python to import Python vars by sisyphus1 <br/><br/>-----Original Message----- <br/>From: Chris Nighswonger<br/>Sent: Tuesday, April 09, 2013 6:39 AM<br/>To: inline@perl.org<br/>Subject: Re: Using Inline Python to import Python vars<br/><br/>&gt;<br/>&gt; So it does look as though the DATA splitting algorithm is a bit &quot;loose.&quot;<br/>&gt;<br/>&gt; In Inline.pm abt line 354:<br/>&gt;<br/>&gt; @{$DATA{$pkg}} = split /(?m)(__\S+?__\n)/, $data;<br/>&gt; shift @{$DATA{$pkg}} unless ($ {$DATA{$pkg}}[0] || &#39;&#39;) =~ <br/>&gt; /__\S+?__\n/;<br/>&gt; }<br/>&gt;<br/>&gt; It appears we split on anything prefixed and suffixed with double<br/>&gt; underscores.<br/>&gt;<br/><br/>A newline (immediately after the closing __) is also needed before any <br/>splitting takes place:<br/><br/>######################<br/>use warnings;<br/><br/>$data = &quot;__DATA__ __C__ __other__ __Python__\n__version__&quot;;<br/>@stuff = split /(?m)(__\S+?__\n)/, $data;<br/><br/>print &quot;&gt;&gt;$_&lt;&lt;\n&quot; for @stuff;<br/>######################<br/><br/>Outputs:<br/>&gt;&gt;__DATA__ __C__ __other__ &lt;&lt;<br/>&gt;&gt;__Python__<br/>&lt;&lt;<br/>&gt;&gt;__version__&lt;&lt;<br/><br/>I can get the same type of failure with this (non-portable) Inline::C <br/>script:<br/><br/>######################<br/>use strict;<br/>use warnings;<br/><br/>use Inline C =&gt; &#39;DATA&#39;;<br/><br/>foo();<br/><br/>1;<br/><br/>__DATA__<br/><br/>__C__<br/><br/>void foo() {<br/> printf(&quot;%d %s\n&quot;,__MINGW32__<br/> ,&quot;Hello&quot;);<br/>}<br/>######################<br/><br/>However, there&#39;s no problem at all if I rewrite foo() as:<br/><br/>void foo() {<br/> printf(&quot;%d %s\n&quot;,__MINGW32__,<br/> &quot;Hello&quot;);<br/>}<br/><br/>Thanks for digging this up, Chris !!<br/><br/>I don&#39;t personally use the &quot;__DATA__&quot; approach.<br/>I&#39;ll do some digging myself right now, and see if I can come up with a <br/>simple improvement to the regex.<br/>(All the better if someone else beats me to it.)<br/><br/>As a quick guess, perhaps we split only if there&#39;s nothing other than <br/>whitespace between the previous newline and the opening double underscore.<br/><br/>In the meantime, if (in Python) it&#39;s permissible to add whitespace at the <br/>end of a line, then adding a space after __version__ should do the trick <br/>methinks.<br/><br/>Cheers,<br/>Rob <br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4429.html Tue, 09 Apr 2013 02:45:26 +0000 Re: Using Inline Python to import Python vars by Chris Nighswonger On Mon, Apr 8, 2013 at 4:25 PM, Chris Nighswonger &lt;<br/>cnighswonger@foundations.edu&gt; wrote:<br/><br/>&gt; On Mon, Apr 8, 2013 at 3:14 PM, Stefan Seifert &lt;nine@detonation.org&gt;wrote:<br/>&gt;<br/>&gt;&gt; I&#39;ve never used DATA file handles in Perl much less with Inline::Python,<br/>&gt;&gt; so<br/>&gt;&gt; I&#39;m not exactly sure. But the debug output looks like the Python source<br/>&gt;&gt; code<br/>&gt;&gt; ends at __version__. So I guess, the code reading the DATA file processes<br/>&gt;&gt; everything from __Python__ to the next marker and treats every word<br/>&gt;&gt; enclosed<br/>&gt;&gt; in double underscores as such marker.<br/>&gt;&gt;<br/>&gt;<br/>&gt;<br/><br/>So it does look as though the DATA splitting algorithm is a bit &quot;loose.&quot;<br/><br/>In Inline.pm abt line 354:<br/><br/> @{$DATA{$pkg}} = split /(?m)(__\S+?__\n)/, $data;<br/> shift @{$DATA{$pkg}} unless ($ {$DATA{$pkg}}[0] || &#39;&#39;) =~ /__\S+?__\n/;<br/> }<br/><br/>It appears we split on anything prefixed and suffixed with double<br/>underscores.<br/><br/>Assuming that I&#39;m not way off here:<br/><br/>I&#39;m guessing that this is because we really don&#39;t know whether this is C,<br/>Java, Python, or FooBar?<br/><br/>Can we have the language extension pass in what it is and actually search<br/>for that marker rather than for __ANYTHING__?<br/><br/>Could we actually check for some specific end-of-code-block maker? Say<br/>&#39;__EOI__&#39; for &quot;end-of-inline&quot; or some such?<br/><br/>Kind Regards,<br/>Chris<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4428.html Mon, 08 Apr 2013 20:39:47 +0000 Re: Using Inline Python to import Python vars by Chris Nighswonger On Mon, Apr 8, 2013 at 3:14 PM, Stefan Seifert &lt;nine@detonation.org&gt; wrote:<br/><br/>&gt; Hi Chris,<br/>&gt; Using perl Makefile.PL -debug when building Inline::Python gives a good<br/>&gt; hint.<br/>&gt; With this flag it will print loads of information including Python source<br/>&gt; code<br/>&gt; it compiles to stderr.<br/>&gt;<br/>&gt;<br/>Thanks for that valuable piece of information. I was wondering how to get<br/>the XS foo to spit out the Printf&#39;s.<br/><br/><br/>&gt; I&#39;ve never used DATA file handles in Perl much less with Inline::Python, so<br/>&gt; I&#39;m not exactly sure. But the debug output looks like the Python source<br/>&gt; code<br/>&gt; ends at __version__. So I guess, the code reading the DATA file processes<br/>&gt; everything from __Python__ to the next marker and treats every word<br/>&gt; enclosed<br/>&gt; in double underscores as such marker.<br/>&gt;<br/><br/>I really should have thought to look at the compiled module. Here is what<br/>it is:<br/><br/>namespace : %<br/> classes : %<br/> functions : @<br/> pykota_version<br/>filtered : &lt;&lt;EOV-<br/><br/>def pykota_version():<br/> import pykota.version<br/> return<br/>EOV<br/><br/><br/>Clearly the problem is exactly as you point out.<br/><br/>I&#39;ll see if I can fix it.<br/><br/>Kind Regards,<br/>Chris<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4427.html Mon, 08 Apr 2013 20:26:10 +0000 Re: Using Inline Python to import Python vars by Stefan Seifert Hi Chris,<br/><br/>On Monday 08 April 2013 14:45:40 Chris Nighswonger wrote:<br/><br/>&gt; &gt; However, this code borks:<br/>&gt; &gt; ...<br/>&gt; &gt; __DATA__<br/>&gt; &gt; <br/>&gt; &gt; __Python__<br/>&gt; &gt; <br/>&gt; &gt; def pykota_version():<br/>&gt; &gt; from pykota.version import __version__<br/>&gt; &gt; return __version__<br/>&gt; &gt; <br/>&gt; &gt; The error is:<br/>&gt; &gt; File &quot;&lt;string&gt;&quot;, line 3<br/>&gt; &gt; <br/>&gt; &gt; from pykota.version import<br/>&gt; &gt; <br/>&gt; &gt; ^<br/>&gt; &gt; <br/>&gt; &gt; SyntaxError: invalid syntax<br/><br/>Using perl Makefile.PL -debug when building Inline::Python gives a good hint. <br/>With this flag it will print loads of information including Python source code <br/>it compiles to stderr.<br/><br/>This gives us:<br/><br/>py_eval: code: <br/>def pykota_version(): <br/> from pykota.version import <br/>py_eval: main_module=0x7fd023985be8<br/>py_eval: globals=0x229aac0<br/>py_eval: type=1<br/>py_eval: context=257<br/> File &quot;&lt;string&gt;&quot;, line 3<br/> from pykota.version import <br/> ^<br/>SyntaxError: invalid syntax<br/><br/>I&#39;ve never used DATA file handles in Perl much less with Inline::Python, so <br/>I&#39;m not exactly sure. But the debug output looks like the Python source code <br/>ends at __version__. So I guess, the code reading the DATA file processes <br/>everything from __Python__ to the next marker and treats every word enclosed <br/>in double underscores as such marker.<br/><br/>Indeed, every other way of giving Python source code to Inline::Python seems <br/>to work ok.<br/><br/>Regards,<br/>Stefan<br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4426.html Mon, 08 Apr 2013 19:15:16 +0000 Re: Using Inline Python to import Python vars by Chris Nighswonger On Mon, Apr 1, 2013 at 12:57 PM, Chris Nighswonger &lt;<br/>cnighswonger@foundations.edu&gt; wrote:<br/><br/>&gt; However, this code borks:<br/>&gt;<br/>&gt; use Inline Python =&gt; &#39;DATA&#39;,<br/>&gt; DIRECTORY =&gt; &#39;/usr/share/webmin/pykota/.Inline/&#39;,<br/>&gt; NAME =&gt; &#39;PyKota::Test&#39;;<br/>&gt;<br/>&gt; print pykota_version();<br/>&gt; 1;<br/>&gt;<br/>&gt; __DATA__<br/>&gt;<br/>&gt; __Python__<br/>&gt;<br/>&gt; def pykota_version():<br/>&gt; from pykota.version import __version__<br/>&gt; return __version__<br/>&gt;<br/>&gt;<br/>&gt; The error is:<br/>&gt;<br/>&gt; File &quot;&lt;string&gt;&quot;, line 3<br/>&gt; from pykota.version import<br/>&gt; ^<br/>&gt; SyntaxError: invalid syntax<br/>&gt; Error -- py_eval raised an exception at<br/>&gt; /usr/local/lib/perl/5.14.2/Inline/Python.pm line 177.<br/>&gt; INIT failed--call queue aborted.<br/>&gt;<br/><br/>So I threw together some C to see if the problem was with my Python syntax<br/>in the context of Inline::Python. Below is what I did and it works as<br/>expected.<br/><br/>Any suggestions as to where I&#39;m going wrong here?<br/><br/>Kind Regards,<br/>Chris<br/><br/><br/><br/>#include &lt;Python.h&gt;<br/><br/>main( ) {<br/> PyObject *pstr, *pmod, *pdict;<br/> Py_Initialize( );<br/><br/> pmod = PyImport_ImportModule(&quot;__main__&quot;);<br/> pdict = PyModule_GetDict(pmod);<br/> pstr = PyRun_String(<br/> &quot;def pykota_version():\n&quot;<br/> &quot; from pykota.version import __version__\n&quot;<br/> &quot; return __version__\n&quot;<br/> &quot;print pykota_version()\n&quot;<br/> , Py_file_input, pdict, pdict);<br/><br/> if (!pstr) {<br/> PyErr_Print();<br/> exit (1);<br/> }<br/><br/> Py_DECREF(pmod);<br/> Py_DECREF(pstr);<br/>}<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4425.html Mon, 08 Apr 2013 18:46:13 +0000 Re: Hitting issue of Inline::Config existance by sisyphus1 <br/><br/>-----Original Message----- <br/>From: Piyush Verma<br/>Sent: Wednesday, April 03, 2013 10:28 PM<br/>To: sisyphus1@optusnet.com.au<br/>Cc: inline@perl.org<br/>Subject: Re: Hitting issue of Inline::Config existance<br/><br/><br/>&gt; I checked with Inline directory Inline:Config is not present.<br/>&gt; [root@prome-2s-dhcp82 5.10.0]# perl -MInline::Config -le<br/>&gt; &#39;for(keys(%INC)){print &quot;$_: $INC{$_}&quot;}&#39;<br/>&gt; Can&#39;t locate Inline/Config.pm in @INC (@INC contains: /root/workspace/vtaf<br/>&gt; /usr/local/lib/perl5/5.10.0/i686-linux-thread-multi-64int<br/>&gt; /usr/local/lib/perl5/5.10.0<br/>&gt; /usr/local/lib/perl5/site_perl/5.10.0/i686-linux-thread-multi-64int<br/>&gt; /usr/local/lib/perl5/site_perl/5.10.0 .).<br/>&gt; BEGIN failed--compilation aborted.<br/>&gt;<br/>&gt;<br/>&gt; Could there be any other reason of this issue/ or at run time this module<br/>&gt; is generate while running the code.<br/><br/>This script demonstrates that Inline::Config does not have to be loaded for <br/>%main::Inline::Config:: to be true:<br/><br/>#######################################<br/>#!perl<br/><br/>$Inline::Config::some{&#39;key&#39;} = &#39;val&#39;;<br/><br/>if(%main::Inline::Config::) {<br/> for(keys(%main::Inline::Config::)) {<br/> print &quot;$_\n&quot;;<br/> }<br/>}<br/><br/>#######################################<br/><br/>For me, that outputs:<br/>some<br/><br/>So ... let&#39;s see the keys your %main::Inline::Config:: contains.<br/>Find the lib/auto/Inline/check_config_file.al that was installed and, in <br/>that file, just before the line:<br/><br/> croak M14_usage_Config() if %main::Inline::Config::;<br/><br/>insert this code (from above script):<br/><br/>if(%main::Inline::Config::) {<br/> for(keys(%main::Inline::Config::)) {<br/> print &quot;$_\n&quot;;<br/> }<br/>}<br/><br/>Then run your troublesome script, and see if we can make any sense of the <br/>keys that are reported.<br/><br/>(At this stage I have absolutely no idea what the problem is.)<br/><br/>Cheers,<br/>Rob<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4424.html Thu, 04 Apr 2013 07:15:32 +0000 Re: Hitting issue of Inline::Config existance by Piyush Verma Hi,<br/><br/>Please find below the answer of above questions:-<br/>&gt;&gt;&gt; What OS are you using ? ... which versions of Inline and Inline::Java ?<br/>... and which version of perl ?<br/>[root@prome-2s-dhcp82 5.10.0]# cat /proc/version<br/>Linux version 2.6.18-348.3.1.el5 (mockbuild@builder17.centos.org) (gcc<br/>version 4.1.2 20080704 (Red Hat 4.1.2-54)) #1 SMP Mon Mar 11 19:40:14 EDT<br/>2013<br/>[root@prome-2s-dhcp82 5.10.0]# perl -MInline -e &#39;print &quot;$Inline::VERSION\n&quot;&#39;<br/>0.46<br/>[root@prome-2s-dhcp82 5.10.0]# perl -MInline::Java -e &#39;print<br/>&quot;$Inline::Java::VERSION\n&quot;&#39;<br/>0.52<br/>[root@prome-2s-dhcp82 5.10.0]# perl -v<br/><br/>This is perl, v5.10.0 built for i686-linux-thread-multi-64int<br/><br/>Copyright 1987-2007, Larry Wall<br/><br/>Perl may be copied only under the terms of either the Artistic License or<br/>the<br/>GNU General Public License, which may be found in the Perl 5 source kit.<br/><br/>Complete documentation for Perl, including FAQ lists, should be found on<br/>this system using &quot;man perl&quot; or &quot;perldoc perl&quot;. If you have access to the<br/>Internet, point your browser at http://www.perl.org/, the Perl Home Page.<br/><br/><br/><br/>I checked with Inline directory Inline:Config is not present.<br/>[root@prome-2s-dhcp82 5.10.0]# perl -MInline::Config -le<br/>&#39;for(keys(%INC)){print &quot;$_: $INC{$_}&quot;}&#39;<br/>Can&#39;t locate Inline/Config.pm in @INC (@INC contains: /root/workspace/vtaf<br/>/usr/local/lib/perl5/5.10.0/i686-linux-thread-multi-64int<br/>/usr/local/lib/perl5/5.10.0<br/>/usr/local/lib/perl5/site_perl/5.10.0/i686-linux-thread-multi-64int<br/>/usr/local/lib/perl5/site_perl/5.10.0 .).<br/>BEGIN failed--compilation aborted.<br/><br/><br/>Could there be any other reason of this issue/ or at run time this module<br/>is generate while running the code.<br/><br/><br/>Regards,<br/>Piyush<br/><br/><br/><br/>On Wed, Apr 3, 2013 at 10:23 AM, &lt;sisyphus1@optusnet.com.au&gt; wrote:<br/><br/>&gt;<br/>&gt;<br/>&gt; -----Original Message----- From: Piyush Verma<br/>&gt; Sent: Tuesday, April 02, 2013 3:27 PM<br/>&gt; To: inline@perl.org<br/>&gt; Subject: Hitting issue of Inline::Config existance<br/>&gt;<br/>&gt; Hi,<br/>&gt;&gt;<br/>&gt;&gt; I am hitting issue.<br/>&gt;&gt; *<br/>&gt;&gt; *<br/>&gt;&gt; * Failed to load Inline Java:As of Inline v0.30, use of the Inline::Config<br/>&gt;&gt; module is no longer supported*<br/>&gt;&gt; *or allowed. If Inline::Config exists on your system, it can be removed.<br/>&gt;&gt; See<br/>&gt;&gt; *<br/>&gt;&gt; *the Inline documentation for information on how to configure Inline.*<br/>&gt;&gt; *(You should find it much more straightforward than Inline::Config :-)*<br/>&gt;&gt;<br/>&gt;<br/>&gt; Wow - ancient history. I didn&#39;t know there ever was an Inline::Config<br/>&gt; module.<br/>&gt;<br/>&gt;<br/>&gt; Please let me know where to find Inline::Config, to resolve this issue.<br/>&gt;&gt;<br/>&gt;<br/>&gt; Relative to where Inline.pm is installed, you would find this Config.pm in<br/>&gt; the ./Inline folder.<br/>&gt; But maybe something else is going on - surely, you cannot be using<br/>&gt; Inline-0.26 or earlier.<br/>&gt;<br/>&gt;<br/>&gt; Please point out if there is any other way of resolving this issue.<br/>&gt;&gt;<br/>&gt;<br/>&gt; The error comes about from this line of code (in version 0.52 of<br/>&gt; Inline.pm):<br/>&gt;<br/>&gt; croak M14_usage_Config() if %main::Inline::Config::;<br/>&gt;<br/>&gt; So, for you, %main::Inline::Config:: is returning true. I guess that means<br/>&gt; Inline::Config got loaded. (Can it mean anything else ?)<br/>&gt;<br/>&gt; What do you get when you run:<br/>&gt;<br/>&gt; perl -MInline::Config -le &#39;for(keys(%INC)){print &quot;$_: $INC{$_}&quot;}&#39;<br/>&gt;<br/>&gt; That should give at least confirm whether (and where) Inline::Config is to<br/>&gt; be found.<br/>&gt;<br/>&gt; NOTE:<br/>&gt; If you&#39;re on MS Windows, you need to instead run:<br/>&gt; perl -MInline::Config -le &quot;for(keys(%INC)){print \&quot;$_: $INC{$_}\&quot;}&quot;<br/>&gt;<br/>&gt; What OS are you using ? ... which versions of Inline and Inline::Java ?<br/>&gt; ... and which version of perl ?<br/>&gt;<br/>&gt; Cheers,<br/>&gt; Rob<br/>&gt;<br/>&gt;<br/><br/><br/>-- <br/>*Piyush Verma*<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4423.html Wed, 03 Apr 2013 11:28:21 +0000 Re: Hitting issue of Inline::Config existance by sisyphus1 <br/><br/>-----Original Message----- <br/>From: Piyush Verma<br/>Sent: Tuesday, April 02, 2013 3:27 PM<br/>To: inline@perl.org<br/>Subject: Hitting issue of Inline::Config existance<br/><br/>&gt; Hi,<br/>&gt;<br/>&gt; I am hitting issue.<br/>&gt; *<br/>&gt; *<br/>&gt; * Failed to load Inline Java:As of Inline v0.30, use of the Inline::Config<br/>&gt; module is no longer supported*<br/>&gt; *or allowed. If Inline::Config exists on your system, it can be removed.<br/>&gt; See<br/>&gt; *<br/>&gt; *the Inline documentation for information on how to configure Inline.*<br/>&gt; *(You should find it much more straightforward than Inline::Config :-)*<br/><br/>Wow - ancient history. I didn&#39;t know there ever was an Inline::Config <br/>module.<br/><br/>&gt; Please let me know where to find Inline::Config, to resolve this issue.<br/><br/>Relative to where Inline.pm is installed, you would find this Config.pm in <br/>the ./Inline folder.<br/>But maybe something else is going on - surely, you cannot be using <br/>Inline-0.26 or earlier.<br/><br/>&gt; Please point out if there is any other way of resolving this issue.<br/><br/>The error comes about from this line of code (in version 0.52 of Inline.pm):<br/><br/> croak M14_usage_Config() if %main::Inline::Config::;<br/><br/>So, for you, %main::Inline::Config:: is returning true. I guess that means <br/>Inline::Config got loaded. (Can it mean anything else ?)<br/><br/>What do you get when you run:<br/><br/>perl -MInline::Config -le &#39;for(keys(%INC)){print &quot;$_: $INC{$_}&quot;}&#39;<br/><br/>That should give at least confirm whether (and where) Inline::Config is to <br/>be found.<br/><br/>NOTE:<br/>If you&#39;re on MS Windows, you need to instead run:<br/>perl -MInline::Config -le &quot;for(keys(%INC)){print \&quot;$_: $INC{$_}\&quot;}&quot;<br/><br/>What OS are you using ? ... which versions of Inline and Inline::Java ? ... <br/>and which version of perl ?<br/><br/>Cheers,<br/>Rob<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4422.html Wed, 03 Apr 2013 04:53:42 +0000 Hitting issue of Inline::Config existance by Piyush Verma Hi,<br/><br/>I am hitting issue.<br/>*<br/>*<br/>* Failed to load Inline Java:As of Inline v0.30, use of the Inline::Config<br/>module is no longer supported*<br/>*or allowed. If Inline::Config exists on your system, it can be removed. See<br/>*<br/>*the Inline documentation for information on how to configure Inline.*<br/>*(You should find it much more straightforward than Inline::Config :-)*<br/><br/>Please let me know where to find Inline::Config, to resolve this issue.<br/>Please point out if there is any other way of resolving this issue.<br/><br/>Coding design I am using:-<br/>I have written a wrapper of Inline Java which calls method Inline.<br/>If any module want to use java method, it first load inline java.<br/>(ps x|grep inlineJava and get port number if already running otherwise<br/>start new inline java server in new port.)<br/><br/>I am using thread programming also in my project and this issue is coming<br/>after thread module is successfully executed. After that I am not able to<br/>load inline java.<br/><br/>-- <br/>*Piyush Verma*<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4421.html Tue, 02 Apr 2013 16:45:17 +0000 Using Inline Python to import Python vars by Chris Nighswonger I seem to be misunderstanding something about importing Python package vars<br/>with Inline. I&#39;m thinking it may be some syntax problem.<br/><br/>This code returns the value of __version__ as expected:<br/><br/>use Inline Python =&gt; &quot;from pykota.version import __version__; print<br/>__version__;&quot;;<br/><br/><br/><br/>However, this code borks:<br/><br/>use Inline Python =&gt; &#39;DATA&#39;,<br/> DIRECTORY =&gt; &#39;/usr/share/webmin/pykota/.Inline/&#39;,<br/> NAME =&gt; &#39;PyKota::Test&#39;;<br/><br/>print pykota_version();<br/>1;<br/><br/>__DATA__<br/><br/>__Python__<br/><br/>def pykota_version():<br/> from pykota.version import __version__<br/> return __version__<br/><br/><br/>The error is:<br/><br/> File &quot;&lt;string&gt;&quot;, line 3<br/> from pykota.version import<br/> ^<br/>SyntaxError: invalid syntax<br/>Error -- py_eval raised an exception at<br/>/usr/local/lib/perl/5.14.2/Inline/Python.pm line 177.<br/>INIT failed--call queue aborted.<br/><br/>Kind Regards,<br/>Chris<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/04/msg4420.html Mon, 01 Apr 2013 16:57:48 +0000 [rt.cpan.org #84181] Akses internet broadband - Upload Extreme by marketing via RT Sun Mar 24 21:30:39 2013: Request 84181 was acted upon.<br/>Transaction: Ticket created by marketing@bagusnet.net.id<br/> Queue: Inline<br/> Subject: Akses internet broadband - Upload Extreme<br/> Broken in: (no value)<br/> Severity: (no value)<br/> Owner: Nobody<br/> Requestors: marketing@bagusnet.net.id<br/> Status: new<br/> Ticket &lt;URL: https://rt.cpan.org/Ticket/Display.html?id=84181 &gt;<br/><br/><br/>Dengan Hormat, <br/><br/>All Customer,<br/><br/> <br/><br/>Sebelumnya Kami ucapkan terima kasih atas kesempatan yang telah diberikan. Ijinkan lah kami memperkenalkan diri. Kami adalah PT. Borneo Broadband Technology &acirc;&#128;&#147; Bagusnet, adalah perusahaan yang bergerak dalam bidang Sistem Integrator dan Internet Service Provider menawarkan layanan kami, berupa IT solution, akses internet berkecepatan tinggi dan produk-produk network wire maupun wireless yang di dukung oleh principal kami.<br/><br/> <br/><br/>Pada kesempatan ini kami bermaksud untuk menawarkan bantuan solusi kepada perusahaan anda, dimana banyak terdapat kantor cabang yang mau dihubungkan dengan kantor pusat. Link yang kami hubungkan dengan menggunakan radio link ini sangat diperlukan untuk:<br/><br/>Mengirimkan Data, Fax, Voice, maupun Gambar Video (CCTV) pada sebuah infrastruktur jaringan berbasis IP untuk perusahaan dengan lokasi yang tersebar baik di dalam maupun diluar pulau kalimantan (Memudahkan akses data antar cabang dengan kantor pusat). <br/>Dengan beberapa alternatif kecepatan akses, jasa IP ini dapat digunakan baik oleh perusahaan dengan skala kecil, menengah, maupun besar. <br/>Akan menurunkan biaya komunikasi secara signifikan dibandingkan dengan teknologi tradisional yang umum digunakan oleh perusahaan saat ini. Efisiensi budget untuk komunikasi antar cabang (Telp/Fax) dengan komunikasi VOIP gratis melalui jaringan IP. VOIP dapat dikembangkan untuk koneksi antar ruangan dengan menambahkan PABX.<br/> <br/><br/>Instalasi dan maintenance dilakukan oleh tenaga ahli kami yang memang sudah berpengalaman di bidang radio link ini. sehingga pelanggan akan mendapatkan lebih banyak efisiensi budget.<br/><br/> <br/><br/>Bersama ini juga kami ingin memperkenalkan produk kami yaitu akses internet broadband : Upload Extreme<br/><br/> <br/><br/>Pilihan Paket:<br/><br/> <br/><br/> <br/><br/>1. Upload 2 Mbps Single,<br/><br/>- Maximum Upload = ut 2 Mbps<br/><br/>- Maximum Download = ut 1 Mbps<br/><br/> - Gratis email : namapelanggan@bagusnet.net.id (50 MB x 5 account email)<br/><br/>= Rp660.000 / bulan<br/><br/> <br/><br/>2. Upload 3 Mbps Double,<br/><br/>- Maximum Upload = ut 3 Mbps<br/><br/>- Maximum Download = ut 2 Mbps<br/><br/>- Gratis email : namapelanggan@bagusnet.net.id (50 MB x 5 account email)<br/><br/>= Rp990.000 / bulan<br/><br/> <br/><br/>Biaya Setup:<br/><br/>a. Registrasi &amp; aktifasi = --- hubungi marketing kami ---<br/><br/>b. Instalasi Perangkat WLAN = --- hubungi marketing kami ---<br/><br/>c. Outdoor pipa monopole / tower triangle &amp; STP Cable = --- (beradasarkan hasil survey ke lokasi)<br/><br/> <br/><br/>Perangkat WLAN (radio + antena + Adaptor + poe) dipinjamkan selama berlangganan, bila persediaan masih ada.<br/><br/> <br/><br/>Demikian kami sampaikan, apabila Bapak/ibu membutuhkan informasi lebih lanjut dapat menghubungi kami setiap saat. Atas perhatian dan kerjasamanya saya ucapkan terima kasih.<br/><br/> <br/><br/>wassalam,<br/><br/> <br/><br/>Internet Service Provider (ISP)- Bagusnet<br/><br/>PT. Borneo Broadband Technology (BBT)<br/><br/>Jl. K. S. Tubun No. 163 RT. 15, Kelurahan Pekauman<br/><br/>Kecamatan Banjar Selatan, Kota Banjarmasin,<br/><br/>Propinsi Kalimantan Selatan - 70243<br/><br/>Indonesia<br/><br/> <br/><br/>website = www.bagusnet.net.id <br/><br/>Email = marketing2@bagusnet.net.id<br/><br/>YM ID = bbt_bagusnet<br/><br/>HP. Telkomsel = +62 813 4820 7813<br/><br/>HP. Indosat = +62 858 2817 7669<br/><br/>HP. XL = +62 878 1445 2624 / +62 878 1618 2524<br/><br/>(SMS Only) = +62 853 9329 7245<br/><br/> <br/><br/>Telp. = +62 511 3265 327 / +62 511 3265 328<br/><br/>Fax. = +62 511 3265 329<br/><br/> <br/><br/>---------------------------------------------------------------------------------------------------------------------------<br/><br/> <br/><br/>Legal aspec PT. Borneo Broadband Technology, berdasarkan :<br/><br/>Akte notaris no 528/BH/16-10/VI/2006 yang di perkuat dengan,<br/><br/>Ijin departemen postel No. 197/DIRJEN/2008 (DEPKOMINFO), <br/><br/>tergabung anggota APJII (Asosiasi Penyelenggaraan Jasa Internet Indonesia) sejak tahun 2007.<br/><br/> <br/><br/>---------------------------------------------------------------------------------------------------------------------------<br/><br/> <br/><br/>Berminat jadi reseller internet ISP Bagusnet?<br/><br/>setiap bulan dapat komisi insentif hingga juta-an rupiah dari pembayaran bulanan pelanggan yang di dapat. segera lah hubungi kami.<br/><br/> <br/><br/>---------------------------------------------------------------------------------------------------------------------------<br/><br/> <br/><br/>Kami juga menyediakan peralatan jaringan komputer baik wire maupun wireless sekaligus pemasangan &amp; instalasinya untuk penggunaan jaringan komputer bersama (LAN) dan aplikasi internet yang didukung banyak vendor sebagai berikut :<br/><br/> <br/><br/>&gt; VoIP:<br/><br/>1. Internet Telephony Gateway / IP PABX <br/><br/>2. Internet Video Conferencing <br/><br/>3. VoIP Adapter<br/><br/> <br/><br/>&gt; Wireless Application:<br/><br/>1. Wireless Access Point<br/><br/>2. Hot Spot Billing untuk caf&Atilde;&copy;, hotel dan public spot <br/><br/>3. Wireless Point to Point <br/><br/>4. Instalasi ( Setting dan Pointing )<br/><br/> <br/><br/>&gt; Network Solution:<br/><br/>1. Fiber Optik Interkoneksi<br/><br/>2. Switch Manage / Unmanage (1000/100/10 Mbps) <br/><br/>3. Router Mikrotik <br/><br/>4. Bandwith Management / Limiter <br/><br/>5. Server Application (WEB/Mail/Database) <br/><br/>6. Cable (UTP/STP/Fiber Optic) <br/><br/>7. VSAT C-Band &amp; Ku-Band <br/><br/>8. Storage / Back up Solution <br/><br/>9. Rack Server <br/><br/>10. CCTV, IP-Cam <br/><br/>11. ADSL Telkom <br/><br/>12. Etc.<br/><br/> <br/><br/> <br/><br/> <br/><br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/03/msg4419.html Mon, 25 Mar 2013 01:30:51 +0000 Re: Eliminating Inline by Matthew Persico Wow. InlineX::C2XS is exactly what I want. Then I could reconstitute the<br/>Devel::PL_ origargv as an XS module. If the author is unwilling, then I<br/>could upload Devel::PL_origargvXS; not like that hasn&#39;t been done before.<br/><br/>Thanks. I&#39;ll keep you informed<br/><br/>On Friday, March 22, 2013, David Mertens wrote:<br/><br/>&gt; What Rob suggested will work. Furthermore, if you manage to run your<br/>&gt; module like this during the build stage, you can use this approach to build<br/>&gt; your XS at build time. It&#39;ll work because the paths here are relative.<br/>&gt;<br/>&gt; However, due to cross-architecture concerns, Perl places binary module<br/>&gt; material in platform-specific directories. The approach Rob suggests<br/>&gt; side-steps this machinery and makes your module less robust. InlineX::C2XS<br/>&gt; is probably the better solution.<br/>&gt;<br/>&gt; David<br/>&gt; On Mar 22, 2013 4:51 AM, &lt;sisyphus1@optusnet.com.au &lt;javascript:_e({},<br/>&gt; &#39;cvml&#39;, &#39;sisyphus1@optusnet.com.au&#39;);&gt;&gt; wrote:<br/>&gt;<br/>&gt;&gt; Hi Matthew,<br/>&gt;&gt;<br/>&gt;&gt; Like David, I&#39;d probably go for using XS .<br/>&gt;&gt; Unlike David, I&#39;d use InlineX::C2XS to generate that XS file.<br/>&gt;&gt;<br/>&gt;&gt; If you really want to stick with Inline::C, something like this works for<br/>&gt;&gt; me (on Win32):<br/>&gt;&gt;<br/>&gt;&gt; ##########################<br/>&gt;&gt; package Some::FOO;<br/>&gt;&gt;<br/>&gt;&gt; BEGIN{<br/>&gt;&gt; our $dir = $INC{&#39;Some/FOO.pm&#39;};<br/>&gt;&gt; $dir =~ s/FOO\.pm\b//i;<br/>&gt;&gt;<br/>&gt;&gt; unless (-d &quot;$dir/my_inline_build&quot;) {<br/>&gt;&gt; mkdir &quot;$dir/my_inline_build&quot;;<br/>&gt;&gt; }<br/>&gt;&gt;<br/>&gt;&gt; };<br/>&gt;&gt;<br/>&gt;&gt; use Inline C =&gt; Config =&gt;<br/>&gt;&gt; DIRECTORY =&gt; &quot;$dir/my_inline_build&quot;,<br/>&gt;&gt; BUILD_NOISY =&gt; 1;<br/>&gt;&gt;<br/>&gt;&gt; use Inline C =&gt; &lt;&lt;&#39;EOC&#39;;<br/>&gt;&gt;<br/>&gt;&gt; void greet() {<br/>&gt;&gt; printf(&quot;Hello World\n&quot;);<br/>&gt;&gt; }<br/>&gt;&gt;<br/>&gt;&gt; EOC<br/>&gt;&gt;<br/>&gt;&gt; $FOO::VERSION = 1.5;<br/>&gt;&gt;<br/>&gt;&gt; 1;<br/>&gt;&gt; ##########################<br/>&gt;&gt;<br/>&gt;&gt; That will use the my_inline_build directory (which is located in the same<br/>&gt;&gt; folder as Some/FOO.pm) for the Inline build directory.<br/>&gt;&gt; And that will be the Inline build directory irrespective of what the<br/>&gt;&gt; current working directory is.<br/>&gt;&gt;<br/>&gt;&gt; However, some considerations:<br/>&gt;&gt;<br/>&gt;&gt; 1) The my_inline_build directory needs to be in existence *before* Inline<br/>&gt;&gt; is loaded. If it doesn&#39;t already exist, you could have<br/>&gt;&gt; File::Path::make_path() create it (in the very same BEGIN{} block that has<br/>&gt;&gt; determined the value for $dir). I&#39;ve just used mkdir() as I know that&#39;s all<br/>&gt;&gt; I need for my chose build directory.<br/>&gt;&gt;<br/>&gt;&gt; 2) The file path separator (in the above example it&#39;s a forward slash)<br/>&gt;&gt; can change from one platform to another. That complicates things a bit when<br/>&gt;&gt; it comes to examining %INC correctly ( and specifying directories) across<br/>&gt;&gt; different platforms.<br/>&gt;&gt;<br/>&gt;&gt; Hope there&#39;s something there that helps.<br/>&gt;&gt;<br/>&gt;&gt; Cheers,<br/>&gt;&gt; Rob<br/>&gt;&gt;<br/>&gt;&gt; -----Original Message----- From: Matthew Persico<br/>&gt;&gt; Sent: Friday, March 22, 2013 3:27 AM<br/>&gt;&gt; To: inline@perl.org &lt;javascript:_e({}, &#39;cvml&#39;, &#39;inline@perl.org&#39;);&gt;<br/>&gt;&gt; Subject: Eliminating Inline<br/>&gt;&gt;<br/>&gt;&gt; Greetings.<br/>&gt;&gt;<br/>&gt;&gt; This is probably an RTFM, but I can&#39;t seem to find it in the FM.<br/>&gt;&gt;<br/>&gt;&gt; I want to use PL::origargv in the next version of Devel::ptkdb. I don&#39;t<br/>&gt;&gt; want _Inline dirs all over the place for each person running the debugger.<br/>&gt;&gt; I don&#39;t (for political reasons) want to set PERL_INLINE_DIRECTORY.<br/>&gt;&gt;<br/>&gt;&gt; What I want to do is force the _Inline for PL::origargv to be in<br/>&gt;&gt; Devel:;ptkdb&#39;s installed directory tree when used by Devel:;ptkdb.<br/>&gt;&gt;<br/>&gt;&gt; Would my best bet be to cut n paste PL::origargv into Devel::ptkdb and<br/>&gt;&gt; turn<br/>&gt;&gt; THAT into an inline c consumer, setting and appropriate _Inline dir that<br/>&gt;&gt; will be used by all?<br/>&gt;&gt;<br/>&gt;&gt; Could I get that dir created by the ptkdb installation somehow instead of<br/>&gt;&gt; waiting for first use?<br/>&gt;&gt;<br/>&gt;&gt; Thanks<br/>&gt;&gt;<br/>&gt;&gt;<br/>&gt;&gt; --<br/>&gt;&gt; Matthew O. Persico<br/>&gt;&gt;<br/>&gt;<br/><br/>-- <br/>Matthew O. Persico<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/03/msg4418.html Fri, 22 Mar 2013 19:12:10 +0000 Re: Eliminating Inline by David Mertens What Rob suggested will work. Furthermore, if you manage to run your module<br/>like this during the build stage, you can use this approach to build your<br/>XS at build time. It&#39;ll work because the paths here are relative.<br/><br/>However, due to cross-architecture concerns, Perl places binary module<br/>material in platform-specific directories. The approach Rob suggests<br/>side-steps this machinery and makes your module less robust. InlineX::C2XS<br/>is probably the better solution.<br/><br/>David<br/>On Mar 22, 2013 4:51 AM, &lt;sisyphus1@optusnet.com.au&gt; wrote:<br/><br/>&gt; Hi Matthew,<br/>&gt;<br/>&gt; Like David, I&#39;d probably go for using XS .<br/>&gt; Unlike David, I&#39;d use InlineX::C2XS to generate that XS file.<br/>&gt;<br/>&gt; If you really want to stick with Inline::C, something like this works for<br/>&gt; me (on Win32):<br/>&gt;<br/>&gt; ##########################<br/>&gt; package Some::FOO;<br/>&gt;<br/>&gt; BEGIN{<br/>&gt; our $dir = $INC{&#39;Some/FOO.pm&#39;};<br/>&gt; $dir =~ s/FOO\.pm\b//i;<br/>&gt;<br/>&gt; unless (-d &quot;$dir/my_inline_build&quot;) {<br/>&gt; mkdir &quot;$dir/my_inline_build&quot;;<br/>&gt; }<br/>&gt;<br/>&gt; };<br/>&gt;<br/>&gt; use Inline C =&gt; Config =&gt;<br/>&gt; DIRECTORY =&gt; &quot;$dir/my_inline_build&quot;,<br/>&gt; BUILD_NOISY =&gt; 1;<br/>&gt;<br/>&gt; use Inline C =&gt; &lt;&lt;&#39;EOC&#39;;<br/>&gt;<br/>&gt; void greet() {<br/>&gt; printf(&quot;Hello World\n&quot;);<br/>&gt; }<br/>&gt;<br/>&gt; EOC<br/>&gt;<br/>&gt; $FOO::VERSION = 1.5;<br/>&gt;<br/>&gt; 1;<br/>&gt; ##########################<br/>&gt;<br/>&gt; That will use the my_inline_build directory (which is located in the same<br/>&gt; folder as Some/FOO.pm) for the Inline build directory.<br/>&gt; And that will be the Inline build directory irrespective of what the<br/>&gt; current working directory is.<br/>&gt;<br/>&gt; However, some considerations:<br/>&gt;<br/>&gt; 1) The my_inline_build directory needs to be in existence *before* Inline<br/>&gt; is loaded. If it doesn&#39;t already exist, you could have<br/>&gt; File::Path::make_path() create it (in the very same BEGIN{} block that has<br/>&gt; determined the value for $dir). I&#39;ve just used mkdir() as I know that&#39;s all<br/>&gt; I need for my chose build directory.<br/>&gt;<br/>&gt; 2) The file path separator (in the above example it&#39;s a forward slash) can<br/>&gt; change from one platform to another. That complicates things a bit when it<br/>&gt; comes to examining %INC correctly ( and specifying directories) across<br/>&gt; different platforms.<br/>&gt;<br/>&gt; Hope there&#39;s something there that helps.<br/>&gt;<br/>&gt; Cheers,<br/>&gt; Rob<br/>&gt;<br/>&gt; -----Original Message----- From: Matthew Persico<br/>&gt; Sent: Friday, March 22, 2013 3:27 AM<br/>&gt; To: inline@perl.org<br/>&gt; Subject: Eliminating Inline<br/>&gt;<br/>&gt; Greetings.<br/>&gt;<br/>&gt; This is probably an RTFM, but I can&#39;t seem to find it in the FM.<br/>&gt;<br/>&gt; I want to use PL::origargv in the next version of Devel::ptkdb. I don&#39;t<br/>&gt; want _Inline dirs all over the place for each person running the debugger.<br/>&gt; I don&#39;t (for political reasons) want to set PERL_INLINE_DIRECTORY.<br/>&gt;<br/>&gt; What I want to do is force the _Inline for PL::origargv to be in<br/>&gt; Devel:;ptkdb&#39;s installed directory tree when used by Devel:;ptkdb.<br/>&gt;<br/>&gt; Would my best bet be to cut n paste PL::origargv into Devel::ptkdb and turn<br/>&gt; THAT into an inline c consumer, setting and appropriate _Inline dir that<br/>&gt; will be used by all?<br/>&gt;<br/>&gt; Could I get that dir created by the ptkdb installation somehow instead of<br/>&gt; waiting for first use?<br/>&gt;<br/>&gt; Thanks<br/>&gt;<br/>&gt;<br/>&gt; --<br/>&gt; Matthew O. Persico<br/>&gt;<br/><br/> http://www.nntp.perl.org/group/perl.inline/2013/03/msg4417.html Fri, 22 Mar 2013 11:15:27 +0000