{"id":13609150,"url":"https://github.com/cforall/cforall","last_synced_at":"2025-04-12T19:33:21.338Z","repository":{"id":41163687,"uuid":"139628817","full_name":"cforall/cforall","owner":"cforall","description":"The compiler and standard distribution for the C∀ programming language","archived":false,"fork":false,"pushed_at":"2025-01-31T21:25:56.000Z","size":11790,"stargazers_count":76,"open_issues_count":4,"forks_count":3,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-01-31T22:26:02.309Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://cforall.uwaterloo.ca/","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/cforall.png","metadata":{"files":{"readme":"README","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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-07-03T19:26:40.000Z","updated_at":"2025-01-31T21:26:01.000Z","dependencies_parsed_at":"2023-12-24T06:54:41.702Z","dependency_job_id":"f38f9f72-f738-4108-950e-b9649460067e","html_url":"https://github.com/cforall/cforall","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/cforall%2Fcforall","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cforall%2Fcforall/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cforall%2Fcforall/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cforall%2Fcforall/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cforall","download_url":"https://codeload.github.com/cforall/cforall/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248621484,"owners_count":21134862,"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-01T19:01:32.834Z","updated_at":"2025-04-12T19:33:20.429Z","avatar_url":"https://github.com/cforall.png","language":"C++","readme":"cfa-cc: Cforall to C Trans-compiler\n======================================\n\nThis is a PRE-RELEASE version of cfa-cc.  It exists solely for the purpose of\nprivate experimentation and scholarly research.  The authors disclaim all\nresponsibility for the consequences of any malfunction of the software,\nincluding the malfunction of any programs compiled using the software.\n\n\nWhat is Cforall?\n----------------\nCforall is a language design extending ISO C. The purpose of the project is to\nengineer modern language features into C in an evolutionary rather than\nrevolutionary way. Java is an example of the revolutionary approach of\nmodernizing C/C++, resulting in a new language rather than an extension of its\ndescendents. C++, Fortran 95 and Cobol 9X are examples of the evolutionary\napproach where modern language features are added and problems fixed within the\nframework of an existing language.\n\nThe goal of this project is to produce a largely backwards compatible version\nof C containing many modern language features and fixing some of the well known\nC problems. Without continued development of the language, C will be unable to\ncope with the needs of modern programming problems and programmers; as a\nresult, it will fade into disuse.  Considering the large body of existing C\ncode and programmers, there is a significant impetus to ensure C is transformed\ninto a modern programming language.\n\n\nWhat is cfa-cc?\n---------------\ncfa-cc is a collection of programs centred around a translator (trans-compiler)\nthat takes Cforall code as input and outputs augmented C code that implements\nnew features.  The translator is complemented by a compiler driver in the style\nof \"gcc\", which handles preprocessing (including cfa-cc after cpp), compiling,\nassembling, and linking.\n\ncfa-cc is currently written in C++, but will be eventually rewritten in Cforall.\n\n\nHow to download and build cfa-cc?\n----------------------------------------\nDownload cfa-cc using\n\n  $ git clone https://github.com/cforall/cforall.git\n\nRead the ./INSTALL file for build instructions.\n\n\nHow to use cfa-cc?\n-------------------\nThe compiler driver \"cfa\" accepts all of the arguments for gcc, and is used in\nthe same way.  For example:\n\n  cfa -c test.c\n  cfa test.o\n\nCforall source files may end with '.c' or '.cfa' in order to be compiled by the\ncompiler driver.  In addition, the flag \"-CFA\" causes cfa to invoke the C\npreprocessor and Cforall translator and write the translator output to standard\noutput.\n\n\nHow to use C code with cfa-cc?\n-----------------------------------\ncfa-cc should be able to compile and link most ANSI C programs with associated\nC standard libraries.\n\nLike C++, Cforall supports overloading, resulting in duplicate names that are\ndisambiguated using name mangling in the translated C code.  To prevent\nmangling of C names, it is necessary to wrap C declarations in an extern \"C\"\nblock, as for C++.  For example:\n\n  extern \"C\" {\n  #include \u003ccurses.h\u003e\n  #include \u003cgetopt.h\u003e\n  }\n\nThe extern \"C\" turns off name mangling for functions and objects declared\nwithin the block. All C standard headers are pre-wrapped, so most wrapping is\nunnecessary.\n\n\nWhat's wrong with cfa-cc?\n-------------------------\n\nThe authors consider cfa-cc to be in a semi-stable state.  It is possible for\nreasonable Cforall programs to fail compilation.  A list of bugs and fixes is\navailable here: https://cforall.uwaterloo.ca/trac.  We encourage users to\nreport their experiences to cforall@plg.uwaterloo.ca, but we can make no\npromises regarding support.\n\nAlso, the Cforall features web-page https://cforall.uwaterloo.ca/features lists\nsmall syntactic and semantic differences with standard C.\n\n\nWho is responsible for cfa-cc?\n------------------------------\nCforall was designed and implemented by Andrew Beach, Richard Bilson, Michael\nBrooks, Peter A. Buhr, Thierry Delisle Glen Ditchfield, Rodolfo G. Esteves,\nAaron Moss, Colby Parsons, Rob Schluntz, Fangren Yu, Mubeen Zulfiqar, and others.\n\nCheck the Cforall web site https://cforall.uwaterloo.ca for news and updates.\n","funding_links":[],"categories":["Uncategorized"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcforall%2Fcforall","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcforall%2Fcforall","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcforall%2Fcforall/lists"}