{"id":13547475,"url":"https://github.com/IntelLabs/flrc","last_synced_at":"2025-04-02T19:33:18.308Z","repository":{"id":48163754,"uuid":"85103910","full_name":"IntelLabs/flrc","owner":"IntelLabs","description":"Haskell Research Compiler","archived":true,"fork":false,"pushed_at":"2022-11-07T17:25:32.000Z","size":2141,"stargazers_count":817,"open_issues_count":4,"forks_count":37,"subscribers_count":40,"default_branch":"master","last_synced_at":"2024-11-03T15:38:44.120Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Standard ML","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/IntelLabs.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":"2017-03-15T17:51:32.000Z","updated_at":"2024-10-08T15:45:21.000Z","dependencies_parsed_at":"2022-08-28T19:40:54.813Z","dependency_job_id":null,"html_url":"https://github.com/IntelLabs/flrc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelLabs%2Fflrc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelLabs%2Fflrc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelLabs%2Fflrc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/IntelLabs%2Fflrc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/IntelLabs","download_url":"https://codeload.github.com/IntelLabs/flrc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246880427,"owners_count":20848857,"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":[],"created_at":"2024-08-01T12:00:56.683Z","updated_at":"2025-04-02T19:33:13.293Z","avatar_url":"https://github.com/IntelLabs.png","language":"Standard ML","funding_links":[],"categories":["Standard ML"],"sub_categories":[],"readme":"\u003e :warning: **DISCONTINUATION OF PROJECT** - \n\u003e *This project will no longer be maintained by Intel.\n\u003e Intel has ceased development and contributions including, but not limited to, maintenance, bug fixes, new releases, or updates, to this project.*\n\u003e **Intel no longer accepts patches to this project.**\n\u003e *If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the open source software community, please create your own fork of this project.*\n\n\n# The Functional Language Research Compiler [![Build Status](https://travis-ci.org/IntelLabs/flrc.svg)](https://travis-ci.org/IntelLabs/flrc)\n\nThe Functional Language Research Compiler (FLRC) was designed to be a general\ncompiler framework for functional languages. The only supported compiler that\nis being released is a Haskell Research Compiler (HRC). The overall compilation\npipeline is pictured in the following diagram:\n\n![HRC and FLRC Compilation Pipeline](doc/flrc-pipeline.png)\n\n## Installation\n\nFLRC requires [FLRC-LIB] to be installed prior to its installation.\nOther software required are autoconf/automake, pkg-config, [the MLton\ncompiler][mlton], and a C/C++ compiler. \n\nAll released code has only been tested to work on x86 64-bit Linux distros,\nalthough they were originally written for x86 32-bit Windows. At least 4GB\nof free memory is advised for compiling FLRC.\n\nTo install:\n\n```\nsh bootstrap.sh\n./configure --prefix=${PREFIX}\nmake \u0026\u0026 make install\n```\n\nIf you had `flrc-lib` installed at a non-standard location, there may be\na pkgconfig error. This can be easily fixed by setting the correct\n`PKG_CONFIG_PATH` as follows (before running the `bootstrap.sh` and\n`configure` commands again):\n\n```\n# With PREFIX already set to where flrc-lib is installed, do:\nexport PKG_CONFIG_PATH=${PREFIX}/lib/pkgconfig:$PKG_CONFIG_PATH\n```\n\nIn the process, it will also automatically download a version of MLton\ncompiler's source to extract some SML libraries. Once the installation\nis finished, a binary command `hrc` and some runtime headers and\nlibraries can be found under the given `${PREFIX}` path.\n\n## Usage\n\nTo actually compile a Haskell program, we'll also need a patched version of\nGHC. See [Building and Using GHC with HRC](doc/building-ghc.md) for more\ninformation, including how to compile and run [flrc-benchmarks].\n\nTo get a list of compiler options, call the compiler with any invalid\noption (e.g. `-help`).  \n\nFor example, to list the flrc options:\n\n```\nhrc -help\n```\n\nTo list the flrc expert options:\n\n```\nhrc -expert -help\n```\n\nOne can also pass runtime options to the executable compiled by HRC.  Options\nare passed in the form:\n\n```\n./[executable] @PPiler [opts]* -- [normal arguments]\n```\n\nThese options must come before any program options, and only one `@PPiler`\nsection is supported. A list of options can be obtained by passing any invalid\noption (e.g. -help).  Currently, there are options for the number of threads to\nrun in the futures back end, and to set the initial and max heap size for the\nconservative GC.\n\n## Questions\n\nFLRC is open sourced as is. We at Intel Labs are no longer actively working on\nthis compiler. Please use the issue tracker if you have questions.\n\n## Related Publication\n\nNeal Glew, Tim Sweeney, and Leaf Petersen. 2013. [A multivalued language with a dependent type system](http://dl.acm.org/citation.cfm?doid=2502409.2502412). In Proceedings of the 2013 ACM SIGPLAN workshop on Dependently-typed programming (DTP '13). ACM, New York, NY, USA, 25-36.\n\nHai Liu, Neal Glew, Leaf Petersen, and Todd A. Anderson. 2013. [The Intel labs Haskell research compiler](https://dl.acm.org/citation.cfm?id=2503779). In Proceedings of the 2013 ACM SIGPLAN symposium on Haskell (Haskell '13). ACM, New York, NY, USA, 105-116.\n\nLeaf Petersen, Todd A. Anderson, Hai Liu, and Neal Glew. 2013. [Measuring the Haskell Gap](http://dl.acm.org/citation.cfm?doid=2620678.2620685). In Proceedings of the 25th symposium on Implementation and Application of Functional Languages (IFL '13). ACM, New York, NY, USA, , Pages 61 , 12 pages. \n\nLeaf Petersen, Dominic Orchard, and Neal Glew. 2013. [Automatic SIMD vectorization for Haskell](http://dl.acm.org/citation.cfm?doid=2500365.2500605). In Proceedings of the 18th ACM SIGPLAN international conference on Functional programming (ICFP '13). ACM, New York, NY, USA, 25-36.\n\nNeal Glew and Leaf Petersen. 2012. [Type-Preserving Flow Analysis and Interprocedural Unboxing (Extended Version)](https://arxiv.org/abs/1203.1986). Tech Report.\n\nLeaf Petersen and Neal Glew. 2012. [GC-Safe interprocedural unboxing](http://dl.acm.org/citation.cfm?id=2259242). In Proceedings of the 21st international conference on Compiler Construction (CC'12), Michael O'Boyle (Ed.). Springer-Verlag, Berlin, Heidelberg, 165-184. \n\n## License\n\nThis software carries a BSD style license. See [LICENSE_INFO](LICENSE_INFO.txt) for more information.\n \n\n[flrc-benchmarks]: https://github.com/IntelLabs/flrc-benchmarks\n[flrc-lib]: https://github.com/IntelLabs/flrc-lib\n[mlton]: http://mlton.org\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIntelLabs%2Fflrc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FIntelLabs%2Fflrc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FIntelLabs%2Fflrc/lists"}