es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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>

}

“`

Tags:  ,

Answer

  1. Avatar for davy.ai

    Posibles razones que podrían hacer que el compilador se quede bloqueado al compilar y ejecutar los dos archivos juntos incluyen:

    1. Bucle infinito: Puede haber un bucle infinito o una dependencia cíclica en el código, lo que hace que el compilador quede atrapado en un bucle infinito.
    2. 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.

    3. 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:

    1. 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.

    2. 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.

    3. 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.

Comments are closed.