2014-04-13 17 views
5

C'è un modo per creare programmi a riga di comando in modalità rigorosa di Hack? Dal momento che la modalità rigorosa di Hack non consente istruzioni al di fuori di una funzione, non posso chiamare la mia funzione main.Hacklang command line program in strict mode

(Questa è piuttosto una questione teorica, come è facile per aggirare il problema di avere un file non rigoroso per chiamare la funzione principale.)

+1

Buona domanda, ho appena iniziato a modificare la CLI e questa è la prima domanda che ho avuto. – robbmj

risposta

5

Al momento non è possibile scrivere un programma del progetto (riga di comando o altrimenti) 100% in modalità rigorosa Hack a causa di questa limitazione. Dovrai infatti avere un codice di bootstrap nel toplevel ("pseudomain"), che al momento rigoroso non consente. La ragione di ciò è che il codice toplevel è praticamente impossibile da tipare staticamente, poiché tutto è globale e può essere modificato dietro le quinte in qualsiasi momento da qualsiasi codice.

Tuttavia il risultato finale è sciocco e qualcosa che vogliamo risolvere alla fine - non c'è, ad esempio, alcun motivo per impedire una singola chiamata a una funzione senza parametri, cioè, esattamente ciò che è necessario per uscire immediatamente da pseudomain e in una funzione.

+2

Grazie per la risposta. "chiamata singola a una funzione senza parametri" - Nota che ho anche bisogno di passare $ argv. – Csq