Yes, I'm aware that writing a series of aricles titled in the format of "$x sucks" makes me a troll. Maybe I'll write later that "trolls suck" and lament that even when trying very hard to approach delicate topics delicately, some people, such as myself, generally fail miserably and are confronted with a choice of not approaching delicate topics at all (a popular choice) or living life as a troll. But that's neither here nor there. Perhaps a better title would be "any attempt to compile Perl results in suckage". Anyway...
So, I've got this project. It involves physical gaming machines installed at real casinos in Vegas -- pretty damn neat. In order to accomplish this, all systems including all code must be approved by the Navada Gaming Commission. Many, many, many things are required for that to happen, but one of them is that all code must be compiled.
"That's dumb!", a thousand voices cry in unison. It's security through obscurity. The effect it has on C code, that of badly mangling it, it doesn't have on Perl. With minimal effort, a good faximilie of the original can be reproduced. But regardless, we need this.
Perl's built-in B::Bytecode (perl -MO=Bytecode) unearthed a string of coredumps, some from the compiler, some from the compilee. Anyway, I've come around to needing to explore this more. Likewise, par and pp utterly fall down, but Bytecode filtering is marked as depricated, so I'm not filing any bug reports there.
People involved in the project before me settled on IndigoStar's compiler. It threatens to work pretty well, but then exhibits brain damage where least expected. Regexes inexplicably fail, and comparisons come out wrong. $^O, printed out, clearly says "linux", but $^O eq 'vms' on my Linux laptop comes back true, taking the VMS case on an if statement. But trying to use a module that uses another module utterly fails, no matter how many #perl2exe_include lines you put in. Argh!
That brings me to ActiveState Perl. There are a lot of fly by night sites that have good graphic design but were clearly done by complete kiddies. I know ActiveState employes well known and well respected Perl personalities, but they send off this vibe, big time. First stop, they make you make an account. Ghetto, lame, but whatever. Download the product. Next step, documentation. Hmm. None of the four or five nav bars say anything about documentation but there's a search bar. Search for documentation:
http://www.activestate.com/search/index.plex?cx=005567415255730122040%3Aiof7fts
Zero results.
Okay, the documentation is probably in the tarball. In fact, there's a Welcome.txt, telling me exactly where to find the documentation:
Please see the PDK User Guide at %%HTMLDIR%%/index.html
cd '%%HTMLDIR%%'. No such file or directory. Alright, probably just a string of glitches. Taking an educated guess and doing some find'ing, I cd into pdk/share/doc/HTML/en/pdk where there's an index.html. I fire up w3m on it. There is a blank page, save for two gif logos. My heart skips a beat. Then I realize that w3m doesn't do JavaScript or Flash, and it's probably an intro page. Firefox. Nope. index.html really is blank.
Version seven of this "perl development kit" thing. Maybe version eight will offer documentation. Originally I hadn't thought to air this bit of dirty laundry and go be a troll. I was going to tease them a bit for their profound bit of silliness and failed at that too. I clicked on contact, and even though I had made an account and "logged in" so I could download the thing, it informed me that I hadn't verified my account and offered to resend the verify email, which I did. Ten minutes later, still no email from them shows up. I bet they don't get a lot of feedback...
So, after this long, tedious, painful journey of Perl compilers not working right, do I really want to try one that has a whole site that doesn't work right and no documentation to be found?
Bleah.
Next question. It's almost impossible to write secure C, and it's very tedious to do anything in it. I hate Python but it compiles well. I don't know about compilation in Ruby. Java is extremely tedious but an option. Dear reader, if I have to rewrite this project just to make it compile, what language should I use?
-scott
perl is compiled! (Score:1)
Re: (Score:1)
-scott
Heh (Score:1)
Re: (Score:1)
-scott
One minor point… (Score:2)
One minor thing: your search was
q=%A0documentation, so I'm not 100% surprised that it didn't match anything.As to which language, I'd probably say Java. It may be ugly as sin, but it does work, and it's designed to be compiled. And the tools [eclipse.org] are quite useful.
PAR?? (Score:2)
@JAPH = qw(Hacker Perl Another Just);
print reverse @JAPH;
Not helpful (Score:1)
Care to elaborate? I have successfully packaged applications with over 150k SLOC. There is an active PAR mailing list which helps most requesters who have managed to at least skim the FAQ list. I don't think statements like the one I'm quoting above help much except vent off frustration.
Also, the topic of your rant is quite inappropriate. ActiveState have done a lot to improve Perl-support on Win32. Their Perl Dev Kit, at least when I bought it, was a valuable resourc
Re: (Score:1)
Packaging, not compiling (Score:1)
Using PAR + Inline::CPP has been a bit of trouble, but even that could be worked around.
Both suffer from the dynamic problem that not all modules can be inferred from a static inspection of the code, but it's nothing hard to work through if you're aware of the situation.
Re: (Score:1)
As for adding "use Foo;" for every module so that the packagers can pick it up: That may be undesirable in several occasions. For example, you may have optionally loaded modules, environment/OS dependent modules, or just the case where you want a GUI app to show a loading-progress-bar as soon as po
Re: (Score:1)
+1 For PAR (Score:2)
Re: (Score:1)
I should have been more clear about using pp with -f Bytecode as a lot of traffic was generated by concerned par users.
-scott
not kiddies (Score:1)
Re: (Score:1)
He just said that their site looks like a fly by night site that was put together by kiddies. He's got a point. Although I must admit that I like the current design a more than the old one. That one looked like they ripped the artwork from some Soviet propaganda.
Of course the people who are well-known at ActiveState are known for their programming abilities, and not their graphical prowess.
Re: (Score:1)
Incidentally, there is a documentation link right on the main PDK page ("resources" on the right side) and typing "documentation" into the search box on any activestate.com page brought back hundreds of results.
I don't know what local docs they bundle, but %%HTMLDIR%% looks like a Makefile target or similar, so maybe some kind of build/install procedure hadn't been run yet. But that's only a guess.
In short, I think the rumors of ActiveStat
Re: (Score:1)
You're right that documentation is on the right if you visit the right page. I don't know about you, but I tend to look for documentation on the top and left. Where normal sites put it. As he described, there is no link to documentation on the places where you expect the nav bar to be.
Type documentation into the search bar, yup, lots of results. But if you look at his post he gives the link to the search result that he got [activestate.com]. Try that link, and no results. Why not? Well staring carefully at t
Re: (Score:1)
Note which high-bit character strayed into his URI: it says %A0, byte value 160, which, if interpreted as Latin-1, is
U+00A0, otherwise known as NO-BREAK SPACE and declared in HTML as . Ring a bell? If so, you can tell why he missed it…Re: (Score:1)
Given an isolated example, you may choose to call it invalid because it doesn't fairly represent the norm. Or, if you're clever, you can call it a bad sample size, being a sample size of one =)
I could have swore I tried the search twice, thinking something must have misfired, but maybe I was having a bad keyboard day.
I'm not attacking ActiveState. Relax. I'm merely publicly bitching at them for frustrating *me* when *I* tried to find their documentation, with no pretense that my experience is normal. Bu
Re: (Score:1)
Thanks for your comment. As usual, my high level of drama got a few feathers rilled.
Anyway, I don't know graphic design and really can't comment on it, but I thought the site looked good. But that's part of what gives me the vibe -- sites that look really good but work very badly, especially with regards to user interface design. I can understand wanting to cut down on inappropriate email, but not letting people contact you until they've verified their account will keep you from ever hearing fr
"ActiveState sucks" roundup (Score:1)
As usual, people veered into the minutia rather than running with the topic. Some people were concerned about me having problems with par (I should have been more clear that it was the deprecated Par::Filter::Bytecode module to blame). Others were
Re: (Score:1)
It's
use Perl;, after all. Or maybe you just timed your post right so that it appeared at the top of the list of recent blogs at the optimum time. Or maybe those who replied first happen to have lots of Friends, who then saw their comments. Or your words had a blogelectic-fit inducing pattern in them.Alternative language: D (Score:2)
if I have to rewrite this project just to make it compile, what language should I use?
Well, the first language I'm planning on looking into next, is D [boscoh.com]. It's like an alternative to C++, but with plenty of features that are commonly only seen with scripting languages. At least, that's what I hope to find.
Some links:
OCaml (Score:1)