Je cherche un moyen d'augmenter (pas nécessairement de façon permanente) la taille de la pile disponible pour les applications terminales dans OS X 10.10.
Je sais qu'il y a beaucoup de questions liées à l'évolution des variables d'environnement, y compris la limite de pile, sur Internet et ici en particulier (par exemple celle-ci ), mais aucune des solutions proposées que j'ai trouvées ne semble fonctionner pour moi.
Le maximum que j'en retire launchctl
est d'utiliser sudo launchctl limit stack 67104768 67104768
où 67104768 est la limite fixe par défaut. D'autres launchctl
commandes avec des limites plus élevées semblent n'avoir aucun effet.
Ensuite, il y en a sysctl
, mais ses pages de manuel indiquent kern.stack_size
qu'elles sont immuables.
J'espère que je n'ai pas oublié de solutions qui ont déjà été proposées quelque part; toute aide serait grandement appréciée!
Edit: Je voudrais augmenter la limite de pile pour contourner ce qui semble être un bogue dans ocamlopt, le compilateur natif OCaml, qui déborde la pile en traitant un programme particulier (sensible); Je n'arrive pas à trouver le rapport de bogue en ce moment.
limit.stack.plist
dans launchDaemons?Réponses:
Une façon d'augmenter la taille de la pile consiste à utiliser
ulimit
:Gardez à l'esprit qu'il semble y avoir une limite stricte sur la taille de la pile sur OSX et que cette limite semble être de 65532 ko:
Est également
ulimit -s
temporaire et se réinitialise une fois la session terminale terminée.Si vous voulez vous assurer que la pile est augmentée pour chaque session de terminal, vous pouvez mettre la
ulimit -s
commande dans votre .zshrc ou équivalent.la source
ulimit -s unlimited
semble être limité à 65532 Ko:ulimit -a | grep stack
donne-s: stack size (kbytes) 65532