Lenguaje de anotación de origen (SAL) de Microsoft: ¿alguna forma de aprovecharlo?

¿Hay alguna forma de aprovechar la licencia SAL de Microsoft, por ejemplo, a través de un analizador C que conserve esta información? ¿O está hecho por Microsoft, solo para uso interno de Microsoft?

Sería inmensamente útil para muchas tareas, como crear enlaces de biblioteca C para otros idiomas.

preguntado el 03 de mayo de 12 a las 08:05

@Necrolis: Gracias por la edición. -

3 Respuestas

No estoy seguro de lo que quiere decir con "aprovechar", pero actualmente VS 2011 Beta usa las anotaciones SAL cuando realiza el análisis de código, a través de la /analizar opción. las anotaciones son solo macros puras de sal.h que Microsoft fomenta el uso (al menos en un entorno VS).

Si solo desea conservar la información después de un paso de preprocesamiento, puede hacer que las macros se expandan a sí mismas o simplemente modificar uno de los preprocesadores de código abierto existentes para excluir los símbolos (VS también tiene algunas opciones de expansión del SAL macro), pero el uso de la información provista por las anotaciones requerirá algo similar a un paso previo de LLVM personalizado o un complemento GCC para hacer esto (si compila el código, aunque al mismo tiempo puede usarlos para la generación de enlaces).

contestado el 03 de mayo de 12 a las 09:05

Creo que la última parte responde a mi pregunta (la respuesta es "no, actualmente no hay forma de hacer esto")... aunque la parte sobre el uso de sal para hacer que las macros se expandan suena como una buena idea. - user541686

Hmm, no, expandir las macros es lo que no quieren hacer, están #definidos a nada para que los compiladores no tropiecen con ellos. - Hans Passant

@HansPassant: no los expandí ciegamente, quise decir que la macro se expandiera a un token de sí misma, por ejemplo: #define __opt_in __opt_in - Necrolis

Las anotaciones SAL pueden encontrar toneladas de errores con análisis estático.

http://msdn.microsoft.com/en-us/library/windows/hardware/hh454825(v=vs.85).aspx

Nunca tuve que configurarlo desde cero, pero mi entorno de desarrollo usará prefast para realizar análisis estáticos cada vez que construya algo. Encontrar errores en tiempo de compilación es mejor que encontrarlos en tiempo de ejecución.

Respondido el 24 de junio de 14 a las 23:06

El enlace está roto. Según Internet Archive, fue redirigido a docs.microsoft.com/en-us/windows-hardware/drivers/develop/… - jim monte

Las anotaciones de origen, según mi propia experiencia personal, son una forma útil de ver rápidamente cómo se supone que se pasan los parámetros o cómo se supone que se pasan. En cuanto a aprovechar eso, estoy de acuerdo en que un pase previo podría ser la única forma de aprovecharlo realmente, y podría sugerirle que escriba el suyo propio si tiene necesidades o expectativas específicas sobre su salida. Espero haber ayudado..

contestado el 10 de mayo de 12 a las 13:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.