“heredoc” multi-line strings

DWScript now supports multi-line strings, aka “heredoc”, using the same syntax as Prism/Oxygene, which involves double-quoting them, for instance:

s := "Lorem ipsum 'dolor' sit amet, consectetur adipiscing elit.
Duis l'ipsum odio, pretium ""hendrerit"" varius sed,
aliquet vitae elit.
Sed eu libero nec nisl ""malesuada"" dignissim.";

is equivalent to

s := 'Lorem ipsum ''dolor'' sit amet, consectetur adipiscing elit.'#13#10
    +'Duis l''ipsum odio, pretium "hendrerit" varius sed,'#13#10
    +'aliquet vitae elit.'#13#10
    +'Sed eu libero nec nisl "malesuada" dignissim.';

Which can be quite useful when you have multi-line string content, such as an SQL query, a long format string, a snippet of CSS/HTML/XML, etc.

Nate that if you’re using The SynEdit, the DWS highlighter has been updated and properly highlights those, you just need to get it from the SynEdit SVN.

It a slight cosmetic issue, shared AFAICT by other languages that implement “heredoc”, which is that if you don’t want to have spurious whitespace/tabs in the multi-line string, you basically have to break indentation.

Does any one knows a language which has a convenient “heredoc” syntax that would alleviate this issue?

2nd PGD Challenge is coming

WILL from Pascal Game Development has pre-announced the 2nd PGD Challenge!

This “Mini Game” competition is a down-sized version of the previous challenges, you’re free to use your favorite flavor of Pascal, and the goals are simple so even those with less free time should be able to participate.

Below is a quote from the pre-announcement, and you may be interested in the January 2012 recap’ as well!

Stay tuned over the next couple of weeks as the next PGD Challenge Mini Game Developer’s Competition is about to start soon. Wait for the announcement as it will appear in the next week or so.

All are welcome to participate. There is no prizes and no complicated registration, just tell us who you are in a simple included readme file and upload your entry by the deadline to our FTP server.

We receives lots of entries last time and we hope we can do it again this time.

There will be a showcase for all past and future entries of the PGD Challenge mini competition so others can share and enjoy your games.

Including source is appreciated, but not required. It will however help others see how you made your game so if you do provide source you will be promoting Pascal game programming in games.

Any compiler or Pascal-based language can be used. Entries will be accepted as either Windows or Mac OS X. Other platforms pending judges support review…

DWScript JS Smart-linker (revised)

Not long ago, I wrote the DWScript JavaScript Smart-Linker did not eliminate unused virtual methods, well that limitation is now gone.

A virtual method that is never called, in its base class nor any of its subclasses, will now be eliminated.

In the small game Nickel Iron which was used as illustration, that further reduces the generated output by almost 10% to just 92 kB “raw”, or 23 kB compressed. The gains come from not just the unused implementations being removed, but also a reduction in the size of the various VMTs.

Small is Beautiful

Small JavaScript that is. Or how to go from 350 kB down to just… 25 kB 23 kB.

Smaller JavaScript can help in up to three ways:

  • faster download: faster application installation or startup.
  • faster parsing for the browser: faster startup.
  • smaller identifiers: faster execution for non-JITting JavaScript engines.

And smaller also means you can have far more complex applications for a given size budget.

(more…)