Skip to content

Function & cast related implementation#75

Open
Doomsk wants to merge 46 commits intodev/pythonfrom
dev/python_impl/fn_impl
Open

Function & cast related implementation#75
Doomsk wants to merge 46 commits intodev/pythonfrom
dev/python_impl/fn_impl

Conversation

@Doomsk
Copy link
Member

@Doomsk Doomsk commented Oct 12, 2025

This PR defines, implements and refactors code for function and cast structure, logic and overall expected behavior.

On the function side:

  • function definition
  • function call
  • function call resolution (executing instructions)
  • function table for retrieval
  • meta function definition
  • meta function for other types (functions with arguments as options, functions with arguments and with options in the body, functions with arguments and with body)
  • some basic built-in functions definition

on the cast side:

  • cast definition
  • cast call
  • cast call resolution (instruction execution)
  • cast workflow (quantum programs, low level quantum language translation, targeting quantum backend, quantum instructions execution, result interpretation and type casting)

pinging @q-inho

Doomsk and others added 30 commits May 13, 2025 23:02
* new start to match main and this branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix mkdocs ci

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more doc pages

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add TODOs, docs introductions, mike versioning, codes fix here and there

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix small typo

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
* new start to match main and this branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix mkdocs ci

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more doc pages

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add TODOs, docs introductions, mike versioning, codes fix here and there

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix small typo

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add docs build from main branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
* new start to match main and this branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix mkdocs ci

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more doc pages

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add TODOs, docs introductions, mike versioning, codes fix here and there

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix small typo

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add docs build from main branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs descriptions, pre-commit config
improve heap memory logic and Heather dialect grammar (in progress)

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
* new start to match main and this branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix mkdocs ci

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more doc pages

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add TODOs, docs introductions, mike versioning, codes fix here and there

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix small typo

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add docs build from main branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs descriptions, pre-commit config
improve heap memory logic and Heather dialect grammar (in progress)

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add instructions docs
improve docs overall

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
* add fresh new structure

* add memblock and tests

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more code

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* improve memory block logic and structure

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* improve test

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* include data and type container

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* include data and type container

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* new start to match main and this branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more documentation

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix mkdocs ci

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more doc pages

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add TODOs, docs introductions, mike versioning, codes fix here and there

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix small typo

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add docs build from main branch

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add more docs descriptions, pre-commit config
improve heap memory logic and Heather dialect grammar (in progress)

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add instructions docs
improve docs overall

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add logo and favicon

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* restart some rust codebase

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* restart some rust codebase

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add github actions workflows for lint and tests

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit and pytest

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit and pytest

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit location

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* remove netqasm for now

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit and pytest actions

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pre-commit action

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pytest action

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix pytest action

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix working directory for github actions

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* add qiskit-aer dependency

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* fix ast code
add Heather AST parsing visitor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* small fix

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

* small fix

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>

---------

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
* Add QNez instruction and update LowLeveQLang for OpenQASM v2.0 support

* reformat for pre-commit

* fix mypy exit error

* Add QInstrFlag to manage instruction behavior and update QNez for argument generation

* Add skip_gen flag to conditionally generate arguments in gen_instrs method

* QNez: Update boolean handling for mask values in instruction processing

* Update argument in test for QNez instruction from '@redim' to '@Not'
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
# Conflicts:
#	python/src/hhat_lang/low_level/quantum_lang/openqasm/v2/qlang.py
#	python/tests/lowlevel/qlang/openqasm/v2/test_lowlevelqlang.py
add visitor ir
test visitor ir

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
implement IR base classes to inherit from hhat_lang.core

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
…parser and evaluator

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
add function importer
improve variables, memory stack, heap, and symbol tables
finish IR parsing visitor
improve grammar
fix create new file on project

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
improve IR logic with symbol tables and ref tables
add enum data structure
(wip) improve IR visitor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
(wip) improve IR visitor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
…nd functions

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
improve other codes to utilize IR graph logic
(wip) implement IR visitor with IR graph

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
add PEG grammar in python for faster parsing
fix type and function imports, ref tables
fix IR visitor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
(wip) big cleanup, big refactor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Doomsk added 15 commits August 25, 2025 16:57
big cleanup, big refactor

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
…, mul, div, pow

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
# Conflicts:
#	.github/workflows/ci.yml
#	README.md
#	docs/CNAME
#	docs/TODOs.md
#	docs/core/index.md
#	docs/dialects/creation.md
#	docs/dialects/heather/current_syntax.md
#	docs/dialects/heather/heather_syntax.md
#	docs/dialects/heather/index.md
#	docs/index.md
#	docs/python/python_guide.md
#	docs/running_hhat.md
#	docs/stylesheets/extra.css
#	docs/toolchain.md
#	mkdocs.yml
#	python/README.md
#	python/pyproject.toml
#	python/src/hhat_lang/core/code/instructions.py
#	python/src/hhat_lang/core/code/utils.py
#	python/src/hhat_lang/core/data/core.py
#	python/src/hhat_lang/core/data/utils.py
#	python/src/hhat_lang/core/data/variable.py
#	python/src/hhat_lang/core/error_handlers/errors.py
#	python/src/hhat_lang/core/execution/abstract_base.py
#	python/src/hhat_lang/core/execution/abstract_program.py
#	python/src/hhat_lang/core/lowlevel/abstract_qlang.py
#	python/src/hhat_lang/core/memory/core.py
#	python/src/hhat_lang/core/types/__init__.py
#	python/src/hhat_lang/core/types/abstract_base.py
#	python/src/hhat_lang/core/types/core.py
#	python/src/hhat_lang/core/types/resolve_sizes.py
#	python/src/hhat_lang/core/utils.py
#	python/src/hhat_lang/dialects/heather/grammar/grammar.peg
#	python/src/hhat_lang/low_level/quantum_lang/openqasm/v2/__init__.py
#	python/src/hhat_lang/low_level/quantum_lang/openqasm/v2/instructions.py
#	python/src/hhat_lang/low_level/quantum_lang/openqasm/v2/qlang.py
#	python/src/hhat_lang/low_level/target_backend/qiskit/openqasm/code_executor.py
#	python/src/hhat_lang/toolchain/project/new.py
#	python/tests/core/test_type_ds.py
#	python/tests/dialects/heather/parsing/ex_fn01.hat
#	python/tests/dialects/heather/parsing/ex_fn02.hat
#	python/tests/dialects/heather/parsing/ex_main02.hat
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
fix Heather's quantum program.py

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
fix ci workflow

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
(wip) add metafn grammar and functionality --new function constructors
(wip) add metamod grammar
fix and refactor memory, ir, ir visitor (wip), functions, types, symbol table (wip), ir builder (wip) to account for changes in the H-hat engine

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
@Doomsk Doomsk self-assigned this Oct 12, 2025
(wip) add metafn grammar and functionality --new function constructors
(wip) add metamod grammar
fix and refactor memory, ir, ir visitor (wip), functions, types, symbol table (wip), ir builder (wip) to account for changes in the H-hat engine
(wip) config logic for executor to run using the correct data

Signed-off-by: Doomsk <eduardo.maschio@theqube.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants