With eval and symbol table magic modules import could could be modifing the syntax of the main program.

If either of those features are used, the syntax checker should emit at warning that the perl program uses dangerous, deprecated features, and exit before some real damage is done.

I think realy you should be mad at the people who have there imports unlinking files etc not at perl ;)

I'm mad at the coders for making the code awkward; I'm mad at the designers of perl for making it impossible to write even the most basic of tools to fix code made possible by the design of perl, when I consider it patently obvious that such tools are necessary and important.

I want a code aware refactoring browser. I want tools that can automatically security audit my code for me, and ensure that no funny business is going on. I want tools that can analyse a given program, determine the underlying algorithms, and subsitute in known better algorithms and data structures in cases where it knows what to do. I want compilers that know what sort of data is typical for a given application, and self-optimize their data structures to deal with those situations. I want more intelligent tools that make me do less work; not more.

I'll settle for a simple syntax check that verifies the code is part of the language -- without running the program itself. If perl can't do that, perl should be fixed until it can.

This is just part of the price you pay for a dynamic language.

Well then, when are all these dynamic mis-features going to be removed from the language, so that all the necessary productivity tools to prove correctness and language safety can be developed?

I don't need to play games with syntax of a language so much as I need a language which will do what I ask it to do; and nothing that I don't.

If I ask for a syntax check, I should get a syntax check. If I ask for a variable to be renamed within a given scope, only that variable should change, not comments, not subroutines, . If I ask for a proof of correctness to guarantee that a given set of variables can't be affected, directly or indirectly, by a given other section of code, I should be able to build the tools to scan the code trees, and do it. If I ask for an analysis of what a program does, I should be able to tell what kind of I/O the program will attempt to do: access the file systems, write to sockets, connect to a database, etc.

No one is writing those sorts of tools; no one is making perl even remotely what it could be. I don't know why anyone thought added "symbol table magic" to code was a good idea when the cost is uncheckable code. It's just not worth it.


In reply to Re^6: Syntax checking without BEGIN blocks by Anonymous Monk
in thread Syntax checking without BEGIN blocks by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.