M
MercyNews
Home
Back
Chromium prohíbe características específicas de C++ en su base de código
Tecnologia

Chromium prohíbe características específicas de C++ en su base de código

Hacker News7h ago
3 min de lectura
📋

Hechos Clave

  • El proyecto Chromium ha prohibido oficialmente características específicas de C++ para mantener la estabilidad y seguridad de su base de código en todo su masivo ecosistema de navegadores.
  • Estas restricciones están detalladas en la guía de estilo oficial del proyecto, que sirve como referencia definitiva para todos los colaboradores.
  • Entre las características prohibidas están std::make_unique, std::make_shared y std::regex debido a preocupaciones de compatibilidad y rendimiento.
  • El proyecto proporciona alternativas específicas de Chromium como base::MakeUnique para garantizar un comportamiento consistente en todas las plataformas soportadas.
  • Los procesos de revisión de código ahora incluyen verificaciones automatizadas que señalan características prohibidas antes de que el código se fusione en la rama principal.
  • La guía de estilo es un documento vivo que recibe actualizaciones regulares a medida que evolucionan los estándares de C++ y mejora el soporte de los compiladores.

Evolución de la Base de Código

El proyecto Chromium ha establecido pautas integrales que prohíben características específicas de C++ para mantener la estabilidad en su masiva base de código. Estas restricciones reflejan el compromiso del proyecto con la mantenibilidad a largo plazo y la seguridad.

Como uno de los proyectos de software de código abierto más grandes del mundo, las decisiones de Chromium impactan a millones de desarrolladores y usuarios a nivel global. La guía de estilo del proyecto ahora prohíbe explícitamente ciertas adiciones modernas de C++ que podrían introducir inestabilidad o vulnerabilidades de seguridad.

Las características prohibidas incluyen varias adiciones modernas de C++ que podrían comprometer los estándares de estabilidad y seguridad del proyecto. Esta decisión subraya el enfoque del proyecto en la calidad del código y la compatibilidad entre plataformas.

Lista de Características Prohibidas

El proyecto Chromium ha identificado varias características de C++ que ahora están prohibidas dentro de la base de código. Estas restricciones están detalladas en la guía de estilo oficial del proyecto, que sirve como referencia definitiva para los colaboradores.

Entre las características prohibidas se encuentran:

  • std::make_unique - Prohibido debido a preocupaciones de compatibilidad
  • std::make_shared - Restringido por razones de compatibilidad similares
  • std::shared_ptr con matrices - No permitido debido a inconsistencias de implementación
  • std::atomic con ciertos tipos - Limitado para prevenir comportamiento indefinido
  • std::regex - Prohibido debido a problemas de rendimiento y compatibilidad

El proyecto también restringe el uso de std::filesystem y std::optional en ciertos contextos. Estas características, aunque son parte de los estándares modernos de C++, se consideran inadecuadas para los requisitos específicos de Chromium.

La guía de estilo enfatiza que estas restricciones se aplican a toda la base de código, incluyendo todos los subproyectos y dependencias. Los colaboradores deben adherirse a estas pautas al presentar código para revisión.

Razones de las Restricciones

La decisión de prohibir estas características surge de la posición única de Chromium como un proyecto multiplataforma que soporta múltiples sistemas operativos y arquitecturas. El proyecto debe mantener compatibilidad con compiladores y bibliotecas más antiguos mientras garantiza un comportamiento consistente entre plataformas.

Las consideraciones de seguridad también juegan un papel crucial en estas restricciones. Algunas características modernas de C++ pueden introducir errores sutiles o comportamiento indefinido que podría ser explotado. Los mantenedores del proyecto priorizan la seguridad y la fiabilidad sobre la conveniencia.

El rendimiento es otro factor crítico. Si bien algunas características modernas de C++ ofrecen conveniencia, pueden no cumplir con los requisitos de rendimiento de Chromium. La escala masiva del proyecto significa que incluso regresiones menores de rendimiento pueden tener un impacto significativo.

El equipo de Chromium ha descubierto que ciertas características, a pesar de ser parte del estándar de C++, tienen implementaciones inconsistentes entre diferentes plataformas. Esta inconsistencia puede llevar a comportamientos inesperados y hacer que la depuración sea más difícil.

Impacto en el Desarrollo

Estas restricciones influyen significativamente en cómo los desarrolladores escriben código para Chromium. Los colaboradores deben usar enfoques alternativos que se alineen con las pautas del proyecto mientras logran la misma funcionalidad.

Por ejemplo, en lugar de usar std::make_unique, los desarrolladores deben usar base::MakeUnique o alternativas específicas de Chromium similares. Estas alternativas están cuidadosamente diseñadas para funcionar consistentemente en todas las plataformas soportadas.

El proyecto proporciona documentación detallada y ejemplos para cada característica restringida, ayudando a los desarrolladores a entender las alternativas aprobadas. Esta documentación se actualiza regularmente a medida que evoluciona el proyecto.

Los procesos de revisión de código se han mejorado para detectar automáticamente violaciones de estas restricciones. El sistema de compilación de Chromium incluye verificaciones que señalan características prohibidas antes de que el código se fusione en la rama principal.

Consideraciones Futuras

El proyecto Chromium evalúa continuamente sus estándares de codificación a medida que evoluciona C++. Si bien ciertas características están actualmente prohibidas, el proyecto permanece abierto a reconsiderar estas decisiones a medida que mejora el soporte de los compiladores y maduran los estándares.

La guía de estilo es un documento vivo que recibe actualizaciones regulares. Se anima a los colaboradores a proporcionar comentarios y sugerir modificaciones basadas en la experiencia del mundo real y los requisitos cambiantes.

A medida que el proyecto crece y surgen nuevos estándares de C++, se pueden agregar características adicionales a la lista prohibida, mientras que otras podrían volverse permisibles bajo condiciones específicas. Este enfoque dinámico garantiza que Chromium permanezca a la vanguardia de las mejores prácticas de ingeniería de software.

El compromiso del proyecto con estos estándares demuestra su dedicación a producir software de alta calidad, seguro y mantenible que sirve a millones de usuarios en todo el mundo.

Puntos Clave

La decisión del proyecto Chromium de prohibir características específicas de C++ representa un enfoque reflexivo para gestionar una base de código masiva y compleja. Estas restricciones priorizan la estabilidad, la seguridad y la mantenibilidad sobre la conveniencia.

Los desarrolladores que trabajan con Chromium deben adaptarse a estas pautas, usando alternativas aprobadas que garanticen un comportamiento consistente entre plataformas. Si bien esto puede requerir un esfuerzo adicional, los beneficios en calidad y fiabilidad del código son sustanciales.

Los estándares en evolución del proyecto reflejan la naturaleza dinámica del desarrollo de software, donde las mejores prácticas mejoran continuamente para cumplir con nuevos desafíos y oportunidades.

Preguntas Frecuentes

¿Qué características de C++ ha prohibido Chromium?

Chromium ha prohibido varias características modernas de C++ incluyendo std::make_unique, std::make_shared, std::shared_ptr con matrices, std::atomic con ciertos tipos, std::regex, std::filesystem y std::optional en ciertos contextos. Estas restricciones están detalladas en la guía de estilo oficial del proyecto.

¿Por qué Chromium prohibió estas características?

Las restricciones surgen de preocupaciones de compatibilidad, consideraciones de seguridad y requisitos de rendimiento. Algunas características tienen implementaciones inconsistentes entre plataformas, mientras que otras podrían introducir errores sutiles o comportamiento indefinido que podría ser explotado.

¿Qué alternativas usan los desarrolladores?

Chromium proporciona alternativas específicas como base::MakeUnique en lugar de std::make_unique. Estas alternativas están cuidadosamente diseñadas para funcionar consistentemente en todas las plataformas soportadas y cumplir con los requisitos de rendimiento del proyecto.

¿Cómo se hacen cumplir estas restricciones?

El sistema de compilación de Chromium incluye verificaciones automatizadas que señalan características prohibidas durante la revisión de código. Esto garantiza que las violaciones se detecten antes de que el código se fusione en la rama principal, manteniendo la integridad de la base de código.

Continue scrolling for more

La IA transforma la investigación y las demostraciones matemáticas
Technology

La IA transforma la investigación y las demostraciones matemáticas

La inteligencia artificial está pasando de ser una promesa a una realidad en las matemáticas. Los modelos de aprendizaje automático generan teoremas originales, forzando una reevaluación de la investigación y la enseñanza.

Just now
4 min
367
Read Article
Crime

Caroline Ellison Former Alameda CEO Released from Prison After 440 Days

Article URL: https://www.sec.gov/enforcement-litigation/litigation-releases/lr-26450 Comments URL: https://news.ycombinator.com/item?id=46740644 Points: 11 # Comments: 0

42m
3 min
0
Read Article
Estrategia escolar de Google: Construyendo lealtad de marca de por vida
Technology

Estrategia escolar de Google: Construyendo lealtad de marca de por vida

Documentos internos de una demanda por seguridad infantil revelan la estrategia de Google para invertir en escuelas y "incorporar a niños" a su ecosistema, buscando lealtad de marca de por vida.

2h
5 min
3
Read Article
Líderes británicos condenan comentarios de Trump sobre Afganistán en la OTAN
Politics

Líderes británicos condenan comentarios de Trump sobre Afganistán en la OTAN

Líderes británicos condenan los comentarios de Trump sobre el papel de la OTAN en Afganistán, defendiendo el sacrificio y las contribuciones de los aliados en el conflicto.

2h
7 min
1
Read Article
Los portátiles Arm de Nvidia desafían a Intel Inside
Technology

Los portátiles Arm de Nvidia desafían a Intel Inside

Una filtración revela que Lenovo ha construido seis portátiles impulsados por los próximos procesadores N1 y N1X de Nvidia, marcando un cambio significativo en el panorama de los portátiles con Windows.

2h
5 min
3
Read Article
El código abierto de conducción autónoma se expande a 325 modelos de vehículos
Technology

El código abierto de conducción autónoma se expande a 325 modelos de vehículos

Una plataforma de código abierto de conducción autónoma ha expandido su compatibilidad a 325 modelos de vehículos de 27 marcas, marcando un gran paso en la tecnología autónoma accesible.

2h
5 min
2
Read Article
Ford entra al mercado de camiones eléctricos con el F-Line E 2026
Automotive

Ford entra al mercado de camiones eléctricos con el F-Line E 2026

Ford está lanzando el camión eléctrico F-Line E en Europa Occidental este verano, con configuraciones 4x2 y 6x2, clasificación de 26 toneladas y hasta 1,820 lb-pie de torque.

2h
5 min
2
Read Article
ChargePoint amplía la carga de vehículos eléctricos a lotes de alquiler de autos
Technology

ChargePoint amplía la carga de vehículos eléctricos a lotes de alquiler de autos

ChargePoint está instalando cargadores públicos para vehículos eléctricos en lotes de alquiler de autos en Wisconsin, ampliando el acceso en aeropuertos y sucursales de Appleton y Madison.

3h
5 min
4
Read Article
Activista de Minnesota libera video de arresto tras manipulación de la Casa Blanca
Politics

Activista de Minnesota libera video de arresto tras manipulación de la Casa Blanca

Un activista de Minnesota liberó el video completo de su arresto en una iglesia, contrarrestando una versión manipulada previamente compartida por la Casa Blanca. El video crudo ofrece una narrativa marcadamente diferente del enfrentamiento.

3h
5 min
6
Read Article
Yann LeCun lanza AMI Labs: Dentro de la nueva startup de IA
Technology

Yann LeCun lanza AMI Labs: Dentro de la nueva startup de IA

El pionero de la IA ha dejado Meta para fundar AMI Labs, una nueva startup enfocada en desarrollar sistemas avanzados de inteligencia artificial. La empresa ya ha capturado un interés significativo de la industria.

3h
5 min
5
Read Article
🎉

You're all caught up!

Check back later for more stories

Volver al inicio