Not yet.  There are only two options that I know of:

(1) use the original throw-away tmp syntax for slice
     assignments:  E.g., ( my $tmp = $a(:) ) .= $b

(2) use perl-5.15 which appears to have replaced the
     lvalue failure by a warning.  I don't have that perl
     available to test so I cannot verify.

It should be possible for NiceSlice to detect when the
code is being compiled under the debugger and then
automatically implement #1 behind the scenes and
that definitely would rely on more smarts in the filter.

Once the new NiceSlice is working for files and
interactive/evals, it should be possible to add the
debug workaround feature.

Cheers,
Chris

On Fri, Oct 14, 2011 at 1:21 AM, Karl Glazebrook <[email protected]> wrote:
> Any chance this will allow NiceSlice to work in debugger?
>
> A long standing curse of mine...
>
> Karl
>
> On 13/10/2011, at 1:58 AM, Chris Marshall wrote:
>
>> If you wish to try the new PDL::NiceSlice engine, it is
>> now available in the CHM/PDL-2.4.9_009.tar.gz CPAN
>> developers release and via http://search.cpan.org .
>>
>> The new approach has some work-arounds for upstream
>> "features" in Text::Balanced and Filter::Simple which
>> have not been verified for many platforms.  If you try
>> the new engine (e.g., set the environment variable and
>> run 'make test' or your own code) and report any
>> problems or successes.
>>
>> Cheers,
>> Chris
>>
>> On Mon, Oct 10, 2011 at 1:25 PM, Chris Marshall <[email protected]> 
>> wrote:
>>> For reference, the only way I see to improve PDL::NiceSlice
>>> beyond the Filter::Simple implementation would be to look
>>> at understanding more of the perl syntax (via PPI).  It would
>>> be nice to have but I think the Filter::Simple approach takes
>>> us 99% of the way there...
>>>
>>> --Chris
>>>
>>> On Mon, Oct 10, 2011 at 1:22 PM, Chris Marshall <[email protected]> 
>>> wrote:
>>>> Given that source filters "don't work for eval" and I've
>>>> not found any way around that limitation, the most
>>>> straightforward fix will be to copy the implementation
>>>> of the code_no_comment handling from Filter::Simple
>>>> which uses Text::Balanced to do its magic.
>>>>
>>>> There may be a very clever way to get Filter::Simple
>>>> and such to work from eval but I think it will be
>>>> much quicker to reimplement/copy and move on...
>>>> I observe that that is pretty much what was done
>>>> for the current interactive PDL::NiceSlice support.
>>>>
>>>> --Chris
>>>>
>>>> On Mon, Oct 10, 2011 at 8:27 AM, chm <[email protected]> wrote:
>>>>> On 10/9/2011 11:17 PM, Craig DeForest wrote:
>>>>>>
>>>>>> This is really cool, thanks very much!
>>>>>>
>>>>>> In the long term, I hope we eventually just switch
>>>>>> over once everyone's happy -- I get very nervous
>>>>>> when environment variables get too prominent for
>>>>>> interpreting one's code...
>>>>>
>>>>> The PDL_NICESLICE_ENGINE is there so that
>>>>> folks can use/test with and without the new
>>>>> engine without changing their code.  The
>>>>> plan is to go to a parameter in perldl.conf,
>>>>> replacing the PDL_NICESLICE_ENGINE run-time
>>>>> check by build-time configuration.
>>>>>
>>>>> The new engine works for program files but
>>>>> the translation in perldl and pdl2 evals still
>>>>> needs to be implemented.
>>>>>
>>>>> Basically the code for both engines uses the
>>>>> perldlpp routine for the filtering.  However,
>>>>> the Filter::Simple does some filtering of the
>>>>> source *before* handing it off to perldpp.
>>>>> That needs to be replicated.  It sure would
>>>>> be nice if source filters could work in
>>>>> evals...
>>>>>
>>>>> Cheers,
>>>>> Chris
>>>>>
>>>>>
>>>>>> On Oct 9, 2011, at 8:35 PM, chm wrote:
>>>>>>
>>>>>>> PDL::NiceSlice users:
>>>>>>>
>>>>>>> I just pushed to PDL git a refactoring of the
>>>>>>> PDL::NiceSlice source filter to allow for
>>>>>>> different filter engines.  Thus you can choose
>>>>>>> either the original engine based on the
>>>>>>> Filter::Util::Call module or the new filter
>>>>>>> engine using Filter::Simple by setting the
>>>>>>> environment variable PDL_NICESLICE_ENGINE to
>>>>>>> the desired engine module name.
>>>>>>>
>>>>>>> The new engine avoids source filter changes
>>>>>>> within perl comments/POD and within most
>>>>>>> string contexts (source filtering can still
>>>>>>> happen within the / / of a pattern operator.
>>>>>>> If this is an issue, just use the m/ / form
>>>>>>> instead).
>>>>>>>
>>>>>>> Here is an example of a test case based on
>>>>>>> the original sf.net bug report with a SQL query
>>>>>>> string being constructed in a string:
>>>>>>>
>>>>>>>> $ cat ttt.pm
>>>>>>>> use PDL::NiceSlice;
>>>>>>>>
>>>>>>>> $table = 'ZEB21';
>>>>>>>> $yr = 1991;
>>>>>>>> $schema = 'schema';
>>>>>>>>
>>>>>>>>
>>>>>>>> print qq{
>>>>>>>>   CREATE TABLE $table (
>>>>>>>>   CHECK ( yr = $yr )
>>>>>>>>   ) INHERITS ($schema.master_table)
>>>>>>>>   } . "\n";
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> This is the output from the original PDL::NiceSlice
>>>>>>> filter engine:
>>>>>>>
>>>>>>>> $ perl -Mblib ttt.pm
>>>>>>>>
>>>>>>>>   CREATE TABLE ZEB21 ->nslice(CHECK(yr=1991)) INHERITS
>>>>>>>> (schema.master_table)
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Here is the result from the Filter::Simple engine:
>>>>>>>
>>>>>>>> $ PDL_NICESLICE_ENGINE='Filter::Simple' perl -Mblib ttt.pm
>>>>>>>>
>>>>>>>>   CREATE TABLE ZEB21 (
>>>>>>>>   CHECK ( yr = 1991 )
>>>>>>>>   ) INHERITS (schema.master_table)
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Enjoy!
>>>>>>> Chris
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Perldl mailing list
>>>>>>> [email protected]
>>>>>>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> -----
>>>>>> No virus found in this message.
>>>>>> Checked by AVG - www.avg.com
>>>>>> Version: 10.0.1410 / Virus Database: 1522/3943 - Release Date: 10/07/11
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>> _______________________________________________
>> Perldl mailing list
>> [email protected]
>> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
>
>

_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to