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
