ça boucle jusqu'à ce que x=-146.7437438964844
Si ce n'est jamais le cas, la boucle continue et la taille de la chaine v$ augmente indéfiniment.
Et comme en informatique tout est limité, il sort une erreur mémoire disant qu'il n'arrive pas à réserver une place suffisamment grande en mémoire pour y mettre toute la chaine.
Quand tu fait un test avec une valuer flottante, il est préférable de tester la valeur autour d'un epsilon.
ex:
compare = -146.7337438964844
epsilon = 0.000000001
...
loop until (x > compare - epsilon) and (x < compare + epsilon)