Could D be used by Jonathan Blow rather jai language?

H. S. Teoh hsteoh at quickfur.ath.cx
Thu Nov 19 01:02:17 UTC 2020


On Wed, Nov 18, 2020 at 10:36:05PM +0000, Guillaume Piolat via Digitalmars-d wrote:
[...]
> Unrestricted CTFE? On the JaiPrimer.md page it reads:
> 
> > Download the OpenGL spec and build the most recent gl.h header file
> > Contact a build server and retrieve/send build data
> > Talk to your Mars probe on Mars and wait for the packets to come back
> > and get a photo of what Mars looks like
> 
> That's 3 more attack vectors etc.

It's not just a security concern.  It also mixes diverse concerns (e.g.
build procedure vs. application logic vs. data acquisition) into one big
tangled hairball that represents a maintenance nightmare.

Build-specific logic is no longer restricted to the build scripts, now
*any* random piece of code *anywhere* in any source file can contain
build logic.  Or arbitrary network code that performs arbitrary network
operations while the code is compiling.  Y'know, like while the code is
compiling it starts editing a database on some remote server somewhere
and publishes stuff to Facebook.

And let's not mention build reproducibility, which goes right out the
window.  Good luck debugging your code, that modifies arbitrary remote
resources during compilation, and potentially "helpfully" reinstalls
your debugger for you while it's at it. Or reinstalls your entire OS,
for that matter.  You may argue, build scripts can already do this.  No
doubt -- but at least we knew where to look when things go wrong: in the
build scripts.  Now build logic can be sprinkled *anywhere* in the code.
There can be hidden "gems" slipped into the codebase by Johnny Junior
Programmer that does who knows what with the overall build logic.  Now
instead of debugging the build scripts, you're hunting for random bits
of build logic sprinkled all across the entire codebase.  It's an
undebuggable, free-for-all, wild-wild-west nightmare for maintenance.


T

-- 
The problem with the world is that everybody else is stupid.


More information about the Digitalmars-d mailing list