Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[FEATURE] Add support for `pragma`

Abierto
#8 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
compilers

Línea de trabajo

Start with the Qasm3Module class in src/pyqasm/modules/qasm3.py, where the parsed program state would hold the new read-only pragma mapping, and read the OpenQASM directives page linked in the issue to confirm the pragma syntax. The open decisions are the identifier schema (__device_name__, __device_native_gates__, and so on) and whether unknown pragmas are ignored or stored, so the maintainers need to settle these before code is written. Done means pragma key/value pairs are parsed into a MappingProxyType on the module and can be read back, with tests for known and unknown keys.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement qasm3 qasm3-coverage
Feature Description
  • Add support for pragma in openqasm
  • Motivation: Adding pragma compiler directives enables more granular optimization for specific programs. Eg. we can embed the device information in the openqasm program itself enabling target specific transformations / optimizations for an openqasm compiler.
Implementation (Optional)
  • Since the structure of #pragma annotations are left for the compiler to handle, we can use key value pairs such as -
pragma __device_name__ : "simulator_1" 
pragma __device_native_gates__ : { "h", "cx", "s", "t" }
  • We can have a list of predefined pragma identifiers such as __device_name__, __native_gate_set__, __device_qubits__, and so on, with a specified value schema. Following is a good place to start -

    • __device_name__ : string
    • __device_num_qubits__ : string
    • __device_native_gates__ : set of string
    • __device_architecture__ : string
  • Any other pragma values are ignored OR optionally stored as key value pairs without parsing the value further

  • These values can be stored using the MappingProxyType ( as an immutable dict ), inside the Qasm3Module objects and retrieved as required.

Lenguaje dominante
Python
Estrellas
29
Forks
33
Merge medio
2 d 4 h
PR fusionados (30 d)
15

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de qBraid/pyqasm

Todos los issues de qBraid/pyqasm

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.