{"id":13903203,"url":"https://github.com/SaptakBhoumik/Peregrine","last_synced_at":"2025-07-18T00:33:42.694Z","repository":{"id":37929196,"uuid":"387149158","full_name":"SaptakBhoumik/Peregrine","owner":"SaptakBhoumik","description":"A blazing fast language for the blazing fast world(WIP)","archived":false,"fork":false,"pushed_at":"2024-06-18T15:25:07.000Z","size":7410,"stargazers_count":1459,"open_issues_count":4,"forks_count":76,"subscribers_count":70,"default_branch":"main","last_synced_at":"2024-11-11T18:25:24.783Z","etag":null,"topics":["compiler","language","peregrine","peregrine-lang","programming-language"],"latest_commit_sha":null,"homepage":"https://peregrine-lang.github.io/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SaptakBhoumik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-18T10:32:33.000Z","updated_at":"2024-10-28T18:04:11.000Z","dependencies_parsed_at":"2024-08-07T00:15:52.365Z","dependency_job_id":null,"html_url":"https://github.com/SaptakBhoumik/Peregrine","commit_stats":null,"previous_names":["saptakbhoumik/peregrine"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaptakBhoumik%2FPeregrine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaptakBhoumik%2FPeregrine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaptakBhoumik%2FPeregrine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SaptakBhoumik%2FPeregrine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SaptakBhoumik","download_url":"https://codeload.github.com/SaptakBhoumik/Peregrine/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225130623,"owners_count":17425506,"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","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":["compiler","language","peregrine","peregrine-lang","programming-language"],"created_at":"2024-08-06T22:01:51.869Z","updated_at":"2024-11-25T11:31:25.565Z","avatar_url":"https://github.com/SaptakBhoumik.png","language":"C++","funding_links":[],"categories":["C++","programming-language"],"sub_categories":[],"readme":"\u003cp align='center'\u003e\n   \u003ca href=\"https://peregrine-lang.github.io\"\u003e\u003cimg id=\"banner\" src=\"./graphics/banner.png\" style=\"width: 65%; align: center;\"/\u003e\u003c/a\u003e\n   \u003cbr/\u003e\n   \u003ci\u003eA Blazing-Fast Language for the Blazing-Fast world.\u003c/i\u003e\n   \u003cbr/\u003e\u003cbr/\u003e\n   \u003ca href=\"https://discord.gg/CAMgzwDJDM\"\u003e\n      \u003cimg src=\"https://img.shields.io/discord/895990298419818546?logo=discord?style=social\"\u003e\n   \u003c/a\u003e\n   \u003cimg src=\"https://img.shields.io/github/stars/peregrine-lang/peregrine?style=social\"\u003e\n   \u003cbr/\u003e\n   \u003cimg src=\"https://img.shields.io/github/issues/peregrine-lang/peregrine?color=green\"\u003e\n   \u003cimg src=\"https://img.shields.io/github/contributors/peregrine-lang/peregrine\"\u003e\n   \u003cbr/\u003e\n   \u003cimg src=\"https://img.shields.io/github/workflow/status/peregrine-lang/peregrine/build_meson.yml?branch=main\"\u003e\n   \u003cbr/\u003e\n   \u003ch1\u003eThe Peregrine Programming Language\u003c/h1\u003e\n\u003c/p\u003e\nNOTE:-It has been discontinued. Please use mojo\n\nPeregrine is a Compiled, Systems Programming Language, currently under development.\n\n\n## Purpose and intent\n\n\n### Why am I creating this language?\n\nI am creating it to have the simplicity of Python with the efficiency of C.\n\n### Goals\n\n- Ease of use\n- Fast\n- Highly modular\n- Occupies less memory\n- Compiled\n\n\n### How does it work?\n\nYou can consider it to be a dialect of python which compiles to clean C++. It will have no garbage collector because it is a system programming language.\n\n\n## Building/compiling Peregrine\n\n\n### Requirements to build from source\n\n- [clang compiler](https://clang.llvm.org/)\n- [Meson](https://mesonbuild.com/)\n- [Ninja](https://ninja-build.org/)\n\n# Compilation instructions\n\n**1) Clone the main branch of https://github.com/peregrine-lang/Peregrine.git**\n```bash\ngit clone https://github.com/peregrine-lang/Peregrine.git\n```\n**2) Cd into the directory**\n```bash\ncd Peregrine\n```\n**3) Build it**\n```bash\nmeson builddir\ncd builddir\nninja\n```\nThis will create the binary of the compiler named ``./peregrine.elf`` in the builddir folder\n\n**C++ backend**\nTo compile it using the c++ backing just run ``./peregrine.elf compile path_to_file.pe`` .It will create the executable named ``./path_to_file``. Run it to see the result. Check the [can_comp.pe](https://github.com/peregrine-lang/Peregrine/blob/main/can_comp.pe) file in the root directory to know what you can do with the c++ backend at this point\n\n**JS Backend**\nTo use the javascript backend use the following command\n``./peregrine.elf compile path_to_file.js.pe -js``.\nIt will create the javascript file named ``path_to_file.js``. Run the generated javascript using ``node path_to_file.js``. Check the [can_comp.js.pe](https://github.com/peregrine-lang/Peregrine/blob/main/can_comp.js.pe) file in the root directory to know what you can do with the js backend at this point\n\n\n## Progress\n\nCurrently we are working on the codegen and some Peregrine programs are working\n\n\n## Example\n\nHere is a small example for you to understand:\n\n```py\ndef fib(n:int) -\u003e int :\n    if n \u003c= 0:\n        return 1\n    return fib(n-1) + fib(n-2)\n\ndef main():\n    count:int = 0\n    res:int = 0\n\n    while count \u003c 40:\n        res = fib(count)\n        count++\n\n```\n\nThe `main` function is the entry point for the program.\n\n\n## Have questions?\n\nCool, you can contact me via mail.\n\u003cbr\u003e Email: saptakbhoumik@gmail.com\n\u003cbr\u003e Discord : https://discord.gg/CAMgzwDJDM\n\n\n\n## Want to contribute?\n\nGreat, go ahead and make the changes you want, then submit a new pull request\n\nTake a look at the [open issues](https://github.com/Peregrine-lang/Peregrine/issues) to find a mission that resonates with you.\n\nPlease check [CONTRIBUTING.md](https://github.com/Peregrine-lang/Peregrine/blob/main/CONTRIBUTING.md) to learn how you can contribute.\n\n\n\n# License\n\nThe Peregrine compiler is licensed under the [Mozilla Public License](https://github.com/Peregrine-lang/Peregrine/blob/main/LICENSE), which is attached in this repository\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSaptakBhoumik%2FPeregrine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSaptakBhoumik%2FPeregrine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSaptakBhoumik%2FPeregrine/lists"}