Jump to content

Perl compiler?


DavidW

Recommended Posts

I see lots of 2004-era pages for gratis/libre compilers, while this: http://www.indigostar.com/perl2exe.php is the only recent thing I can find (it's released as freemium, but the free version should be enough for your needs). That said, I think it should be possible to add SSL support natively to WeiDU (except I don't know Perl, so you'd have to finish your SSL documentation).

Link to comment
That said, I think it should be possible to add SSL support natively to WeiDU (except I don't know Perl, so you'd have to finish your SSL documentation).

 

That would be amazing from my point of view, but since I'm basically the only person who uses SSL, is it really worth your time?

Link to comment
IIRC, Wisp uses it in Item Randomizer (and other people might start using it if it became more accessible); moreover, it's possible that it cuts down on scsii's install time (and complexity, viz. Linux).

 

OK, in which case I'll give it some thought. The documentation is 90% complete anyway.

Link to comment
That would be amazing from my point of view, but since I'm basically the only person who uses SSL, is it really worth your time?

in a pretend world, i would pay for ssl docs. in this one, just a "please" and "thank you".

 

In a pretend world, I would have written them by now. In this one, we'll see what happens.

Link to comment

Some random brainstorming questions follow (to help me decide on the algorithm and whatnot).

 

- Would it be OK for the hypothetical COMPILE_SSL command to compile the file directly to BCS and put it in the override? Compiling -> BAF or -> BCS seem equally hard to me, but compiling -> BCS should further cut down on install time by skipping a step.

- IF blocks do always compile to 0 or 1 BCS blocks (and compile to 0 only via RequireBlock/IgnoreBlock)?

- The only commands that cause IF TRIGGER to compile to more than one BCS block are multiple Target calls (incl. TargetBlock) and multiple Action?

- Is there a testing suite somewhere?

Link to comment
Some random brainstorming questions follow (to help me decide on the algorithm and whatnot).

 

- Would it be OK for the hypothetical COMPILE_SSL command to compile the file directly to BCS and put it in the override? Compiling -> BAF or -> BCS seem equally hard to me, but compiling -> BCS should further cut down on install time by skipping a step.

 

Yes, I think that's fine. I run the occasional REPLACE_TEXTUALLY on a BAF file post-SSL before compiling, but it's infrequent at best, and could easily be done via DECOMPILE-COMPILE. 99 times out of 100 I just compile the SSL output direct.

 

- IF blocks do always compile to 0 or 1 BCS blocks (and compile to 0 only via RequireBlock/IgnoreBlock)?

 

Yep. I need to check, but I think RequireBlock/IgnoreBlock are the only exceptions to the rule that IF blocks have the same syntax in SSL as in BAF.

 

- The only commands that cause IF TRIGGER to compile to more than one BCS block are multiple Target calls (incl. TargetBlock) and multiple Action?

You can also do ConditionalTargetBlock([some targets];[some BAF trigger, probably with scstarget in it]), which works like TargetBlock but adds the BAF trigger as an extra condition. Example in use (mage/combatblocks/highpowered_sequencers.ssl):

 

IF TRIGGER
ConditionalTargetBlock(PCsPreferringWeak;HPPercentLT(scstarget,40))
TargetBlock(PCsPreferringWeak)
!HasItemEquiped("clck26",scstarget)
RequireBlock(HasL7)
IgnoreBlock(IsEvoker)
TriggerBlock(MR|ResistFire|SIConjuration|ArrowSafe|SpellTurn|Stoneskin|MinorGlobe|Enemy|Helpless)
THEN DO
Action(Sequencer,5,"dw#0w303","dw#0w303","dw#0w303") // 3x Flame Arrow
END

 

- Is there a testing suite somewhere?

 

Do you mean a file or files that exhibit all the salient features? If so, no, sorry. (Compiling beholder/behhiv01.ssl and mage/gorlic01.ssl will probably test pretty much everything in use between them, but of course they're long, complicated scripts.) I can probably produce something, though.

Link to comment

Yes, I'm convinced that this is doable without inappropriate amounts of work.

 

Do you mean a file or files that exhibit all the salient features? If so, no, sorry. (Compiling beholder/behhiv01.ssl and mage/gorlic01.ssl will probably test pretty much everything in use between them, but of course they're long, complicated scripts.) I can probably produce something, though.

Those scripts should be enough for my needs, thank you.

Link to comment
SSL_COMPILE ~file1.ssl~ ~file2.ssl~ LIBRARY ~file1.slb~ ~file2.slb~ VARIABLES ~var1=foo&var2=bar~ USING ~myfile.tra~

and will generate override/file1.bcs, override/file2.bcs etc.

 

On reflection, if it's straightforward to do, it might be convenient to have a don't-compile-BAF-to-BCS option, just to help with debugging. (It can be quite tricky to know why a complicated SSL script doesn't compile all the way to BCS without having the option to generate the intermediate BAF.

 

(I don't actually need this, though, as I can always use the original Perl compiler. So don't worry if it's complicated.)

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...