Open Zardoz89 opened 3 years ago
También funciona mal la función sqrt en la calculadora. Mirando el código podría ser un problema de linkado con las librerías matematicas de open watcom ?
Reabro porque get_distx()
y get_disty()
no están funcionando correctamente.
Ok, para que quede registrado comento aquí cuál era el problema. Watcom incluye varios modelos posibles para las instrucciones de coma flotante:
Ahora bien, el -fpc tiene trampa y es que la documentación especifica que si se usa en un módulo, todo el proyecto debe usar -fpc, ya que de lo contrario puede causar problemas (y ya hemos visto que sí). Las librerías de terceros usaban hasta ahora el modelo por defecto que decidieron sus desarrolladores originales. Así que he decidido compilar dos versiones de estas librerías, una para cada versión de DIV coincidiendo con el mismo juego de instrucciones y modelo de coma flotante con el que se enlaza, es decir:
Ahora bien, el -fpc tiene trampa y es que la documentación especifica que si se usa en un módulo, todo el proyecto debe usar -fpc ¡Ostia! Pues puede que en mas de un caso, los modulos de terceros tengan una u otra opcion puesto sin saber este detalle.
En el caso de la DLL para CSVs, está compilandose con :
wcl386 csv.cpp -ox -zp4 -5 -s -l=div_dll
las funciones sqrt(), cos() y probablemente el resto de las funciones trigonométricas, retornar el argumento tal cual.
Adjunto miniprograma de testeo