{"id":18422519,"url":"https://github.com/sri-csl/filia","last_synced_at":"2025-10-10T05:18:41.927Z","repository":{"id":41491563,"uuid":"499219236","full_name":"SRI-CSL/filia","owner":"SRI-CSL","description":"Translate Python and JavaScript into MLIR","archived":false,"fork":false,"pushed_at":"2022-08-27T01:45:27.000Z","size":179,"stargazers_count":15,"open_issues_count":1,"forks_count":1,"subscribers_count":16,"default_branch":"main","last_synced_at":"2025-04-07T15:44:16.795Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SRI-CSL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-02T16:57:38.000Z","updated_at":"2024-12-05T20:24:43.000Z","dependencies_parsed_at":"2022-08-28T19:20:45.456Z","dependency_job_id":null,"html_url":"https://github.com/SRI-CSL/filia","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SRI-CSL/filia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2Ffilia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2Ffilia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2Ffilia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2Ffilia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SRI-CSL","download_url":"https://codeload.github.com/SRI-CSL/filia/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SRI-CSL%2Ffilia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002884,"owners_count":26083468,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-10T02:00:06.843Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T04:30:45.024Z","updated_at":"2025-10-10T05:18:41.893Z","avatar_url":"https://github.com/SRI-CSL.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Filia\n\nFilia is a project to build multi-language program verification and bug finding\ncapabilities using the MLIR compiler infrastructure.  MLIR is a general\nhighly-extensible program intermediate representation suited for representing\ncode writen in a variety of languages.\n\nFilia currently includes: (1) `py2mlir` -- a Python to MLIR translation tool;\n(2) `js2mlir` -- a Javascript to MLIR translator; (3) `script-opt`-- an\noptimization tool that supports the Python and Javascript dialects.\n\n`js2mlir` is self-contained and independent of the other components.\nSee `js2mlir/README.md` for instructions on building and using `js2mlir`.\n\n\n## Building py2mlir and script-opt\n\nFilia requires a build of LLVM including MLIR and the MLIR Python bindings.\nWe include a submodule that links to the version of LLVM used for testing Filia.\n\n### Building MLIR and Python bindings\n\nFilia requires a build of MLIR with the Python bindings.  As these are not\nyet shipped with system versions of LLVM, we recommend that you clone the\nLLVM submodule and build this version.  We also provide a script to configure\nLLVM with MLIR enabled.  To use it, you need to first ensure that\n[`cmake`](https://cmake.org/), [`ninja`](https://ninja-build.org/) and\n[`python`](https://www.python.org/) with the PIP package manager are installed.\nOnce these are installed, run the following commands from the Filia root\ndirectory:\n\n```\npip install -r deps/llvm-project/mlir/python/requirements.txt\n./deps/configure-llvm.sh\ncmake --build deps/llvm-build --target install\n```\n\nThis will install LLVM into the directory `deps/llvm-install`.\n\n### Building Filia\n\nOnce LLVM is installed, you can configure and build Filia with the following commands:\n\n```sh\ncmake -S . -B build/debug -DMLIR_DIR=deps/llvm-install/lib/cmake/mlir\ncmake --build build/debug --target install\n```\n\n## Using Filia\n\nFiia is still in active development and only supports a small subset of\nPython to see it working on an MD5 example, you can run the following commands:\n\n```\n./dist/debug/bin/py2mlir.py example/md5_example.py \u003e md5.mlir\n```\n\nThis MLIR file can then be optimized by `script-opt`.  For example,\n\n```\n./dist/debug/bin/script-opt --python-load-store md5.mlir \u003e md5-opt.mlir\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsri-csl%2Ffilia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsri-csl%2Ffilia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsri-csl%2Ffilia/lists"}