Clean up use of sprintf
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 28/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- cpp
- Área
- api, embedded-iot
Línea de trabajo
Localiza las implementaciones de las API de String e IPAddress y los helpers itoa y dtostrf del conjunto de pruebas. Lee primero los pragmas sprintf existentes y las rutas de conversión. Se considera terminado cuando se eliminen las supresiones y se aborden los usos obsoletos de sprintf identificados sin romper String, IPAddress ni las pruebas de String.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
In #208 I added pragmas to suppress deprecation warnings related to sprintf that were added in newer versions of GCC and CLang, and which caused compilation failure. These suppressions should be removed.
One usage is in the test suite's implemention of itoa that is needed to run String tests. I have a quick fix for that relying on snprintf but I also thought of just using a more basic implementation of itoa such as the one from K&R or even just copying the implementation from the SAMD core.
Thinking a bit deeper though, the only use in API code is in String and it looks to be unnecessarily double buffering during those conversions. I think there's an opportunity to remove String's dependency on itoa and make it more efficient, which would also eliminate the need for an implementation of itoa in the test suite. I plan to look in to that approach.
A similar use is in the test suite's implementation of dtostrf which delegates the deprecated avr impl. For that, I think String can be improved to avoid the double buffering although it would still delegate to the core for the conversion, assuming the core may have implementation-specific FP support.
The final use was in IPAddress and that looks like it can simply be changed to used snprintf
- Lenguaje dominante
- C++
- Estrellas
- 307
- Forks
- 152
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de arduino/ArduinoCore-API
-
Bit manipulation not working with 64 bit valuesPosiblemente ocupada @asumo-1xts la tomó hace 36 días. Abierto
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
arduino/ArduinoCore-API#261 ·
-
Missing virtual destructor for `Print` classPosiblemente ocupada @andreagilardoni la tomó hace 1104 días. Abiertobug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 30/100
arduino/ArduinoCore-API#256 ·
-
enhancement
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
arduino/ArduinoCore-API#251 · 1 comentario ·
-
enhancement
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
arduino/ArduinoCore-API#250 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
arduino/ArduinoCore-API#249 ·
Todos los issues de arduino/ArduinoCore-API
Issues similares
-
Make Catch2 optional when `RDK_BUILD_CPP_TESTS=OFF`Posiblemente ocupada @pechersky la tomó hoy. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
dice-group/dice-hash#111 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
google/libaddressinput#255 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
MerginMaps/mobile#4741 ·
Los mantenedores suelen responder en 1 día