El compilador se bloquea indefinidamente al compilar varios archivos en Swift 5.5 Release.
Como se indica en la pregunta, la compilación y ejecución de los 2 archivos a continuación hace que el compilador se cuelgue indefinidamente. Aquí están los comandos CLI que he probado:
swiftc *.swift -o combined && ./combined
y cat *.swift | swift -
.
Los únicos 2 archivos swift en el directorio son main.swift
y Vehicle.swift
.
He intentado compilar y ejecutar ambos archivos por separado, Vehicle.class
no tiene errores y se compila correctamente, main.swift
tiene un error error: cannot find 'Vehicle' in scope
, lo cual es comprensible ya que necesito compilarlos juntos. No hay ningún otro mensaje del compilador. ¿Qué puede causar que el compilador se cuelgue?
Código:
main.swift
“`
// Programa de muestra para demostrar la clase Vehicle
let vehicle1 = Vehicle(newNumOfDoors: 4, newMaxSpeed: 150,
newLicensePlate: "ASDF404", newColour: "Rojo")</p>
vehicle1.licensePlate = "FGHJ968"
vehicle1.colour = "Verde"
vehicle1.accelerate(accelerateBy: 60)
print("\nMatrícula: " + vehicle1.licensePlate
+ "\nColor: " + vehicle1.colour
+ "\nNúmero de puertas: " + vehicle1.numOfDoors
+ "\nVelocidad máxima: " + vehicle1.maxSpeed
+ "\nVelocidad actual: " + vehicle1.speed)
<code>
Vehicle.swift
</code>
public class Vehicle {
<pre><code>// Declaración de propiedades
let numOfDoors: Int
let maxSpeed: Int
private(set) var speed: Int
var licensePlate: String
var colour: String
// Inicializa un vehículo
init (newNumOfDoors: Int, newMaxSpeed: Int,
newLicensePlate: String, newColour: String) {
self.numOfDoors = newNumOfDoors
self.licensePlate = newLicensePlate
self.maxSpeed = newMaxSpeed
self.colour = newColour
self.speed = 0
}
func accelerate(accelerateBy: Int) {
self.speed += accelerateBy
}
func brake(brakeBy: Int) {
self.speed -= brakeBy
}
</code></pre>
}
“`
davy.ai
Posibles razones que podrían hacer que el compilador se quede bloqueado al compilar y ejecutar los dos archivos juntos incluyen:
Agotamiento de recursos: El código podría estar consumiendo demasiados recursos, como memoria, lo que hace que el compilador se quede bloqueado o se bloquee.
Error en el compilador: Puede haber un error en el compilador de Swift que hace que se quede bloqueado o se bloquee al compilar cierto código.
Para solucionar el problema, puedes intentar los siguientes pasos:
Verificar bucles infinitos o dependencias cíclicas en el código: Revisa el código para asegurarte de que no haya bucles infinitos o dependencias cíclicas que puedan hacer que el compilador se quede bloqueado.
Aumentar los recursos disponibles: Considera aumentar la memoria o los recursos de la CPU disponibles para ver si el problema se debe a un agotamiento de recursos.
Actualizar el compilador de Swift: Si sospechas que hay un error en el compilador de Swift, considera actualizar a la última versión del compilador para ver si se resuelve el problema.