head 1.1;
branch 1.1.1;
access;
symbols
netbsd-11-0-RC5:1.1.1.3
netbsd-11-0-RC4:1.1.1.3
netbsd-11-0-RC3:1.1.1.3
netbsd-11-0-RC2:1.1.1.3
netbsd-11-0-RC1:1.1.1.3
perseant-exfatfs-base-20250801:1.1.1.3
netbsd-11:1.1.1.3.0.10
netbsd-11-base:1.1.1.3
netbsd-10-1-RELEASE:1.1.1.3
perseant-exfatfs-base-20240630:1.1.1.3
perseant-exfatfs:1.1.1.3.0.8
perseant-exfatfs-base:1.1.1.3
netbsd-8-3-RELEASE:1.1.1.1
netbsd-9-4-RELEASE:1.1.1.2
netbsd-10-0-RELEASE:1.1.1.3
netbsd-10-0-RC6:1.1.1.3
netbsd-10-0-RC5:1.1.1.3
netbsd-10-0-RC4:1.1.1.3
netbsd-10-0-RC3:1.1.1.3
netbsd-10-0-RC2:1.1.1.3
netbsd-10-0-RC1:1.1.1.3
netbsd-10:1.1.1.3.0.6
netbsd-10-base:1.1.1.3
netbsd-9-3-RELEASE:1.1.1.2
cjep_sun2x:1.1.1.3.0.4
cjep_sun2x-base:1.1.1.3
cjep_staticlib_x-base1:1.1.1.3
netbsd-9-2-RELEASE:1.1.1.2
cjep_staticlib_x:1.1.1.3.0.2
cjep_staticlib_x-base:1.1.1.3
netbsd-9-1-RELEASE:1.1.1.2
phil-wifi-20200421:1.1.1.3
phil-wifi-20200411:1.1.1.3
phil-wifi-20200406:1.1.1.3
netbsd-8-2-RELEASE:1.1.1.1
netbsd-9-0-RELEASE:1.1.1.2
netbsd-9-0-RC2:1.1.1.2
netbsd-9-0-RC1:1.1.1.2
netbsd-9:1.1.1.2.0.2
netbsd-9-base:1.1.1.2
phil-wifi-20190609:1.1.1.2
netbsd-8-1-RELEASE:1.1.1.1
netbsd-8-1-RC1:1.1.1.1
pgoyette-compat-merge-20190127:1.1.1.1.28.1
pgoyette-compat-20190127:1.1.1.2
pgoyette-compat-20190118:1.1.1.2
pgoyette-compat-1226:1.1.1.2
pgoyette-compat-1126:1.1.1.2
pgoyette-compat-1020:1.1.1.2
pgoyette-compat-0930:1.1.1.2
pgoyette-compat-0906:1.1.1.2
netbsd-7-2-RELEASE:1.1.1.1
pgoyette-compat-0728:1.1.1.2
clang-337282:1.1.1.2
netbsd-8-0-RELEASE:1.1.1.1
phil-wifi:1.1.1.1.0.30
phil-wifi-base:1.1.1.1
pgoyette-compat-0625:1.1.1.1
netbsd-8-0-RC2:1.1.1.1
pgoyette-compat-0521:1.1.1.1
pgoyette-compat-0502:1.1.1.1
pgoyette-compat-0422:1.1.1.1
netbsd-8-0-RC1:1.1.1.1
pgoyette-compat-0415:1.1.1.1
pgoyette-compat-0407:1.1.1.1
pgoyette-compat-0330:1.1.1.1
pgoyette-compat-0322:1.1.1.1
pgoyette-compat-0315:1.1.1.1
netbsd-7-1-2-RELEASE:1.1.1.1
pgoyette-compat:1.1.1.1.0.28
pgoyette-compat-base:1.1.1.1
netbsd-7-1-1-RELEASE:1.1.1.1
clang-319952:1.1.1.1
matt-nb8-mediatek:1.1.1.1.0.26
matt-nb8-mediatek-base:1.1.1.1
clang-309604:1.1.1.1
perseant-stdc-iso10646:1.1.1.1.0.24
perseant-stdc-iso10646-base:1.1.1.1
netbsd-8:1.1.1.1.0.22
netbsd-8-base:1.1.1.1
prg-localcount2-base3:1.1.1.1
prg-localcount2-base2:1.1.1.1
prg-localcount2-base1:1.1.1.1
prg-localcount2:1.1.1.1.0.20
prg-localcount2-base:1.1.1.1
pgoyette-localcount-20170426:1.1.1.1
bouyer-socketcan-base1:1.1.1.1
pgoyette-localcount-20170320:1.1.1.1
netbsd-7-1:1.1.1.1.0.18
netbsd-7-1-RELEASE:1.1.1.1
netbsd-7-1-RC2:1.1.1.1
clang-294123:1.1.1.1
netbsd-7-nhusb-base-20170116:1.1.1.1
bouyer-socketcan:1.1.1.1.0.16
bouyer-socketcan-base:1.1.1.1
clang-291444:1.1.1.1
pgoyette-localcount-20170107:1.1.1.1
netbsd-7-1-RC1:1.1.1.1
pgoyette-localcount-20161104:1.1.1.1
netbsd-7-0-2-RELEASE:1.1.1.1
localcount-20160914:1.1.1.1
netbsd-7-nhusb:1.1.1.1.0.14
netbsd-7-nhusb-base:1.1.1.1
clang-280599:1.1.1.1
pgoyette-localcount-20160806:1.1.1.1
pgoyette-localcount-20160726:1.1.1.1
pgoyette-localcount:1.1.1.1.0.12
pgoyette-localcount-base:1.1.1.1
netbsd-7-0-1-RELEASE:1.1.1.1
clang-261930:1.1.1.1
netbsd-7-0:1.1.1.1.0.10
netbsd-7-0-RELEASE:1.1.1.1
netbsd-7-0-RC3:1.1.1.1
netbsd-7-0-RC2:1.1.1.1
netbsd-7-0-RC1:1.1.1.1
clang-237755:1.1.1.1
clang-232565:1.1.1.1
clang-227398:1.1.1.1
tls-maxphys-base:1.1.1.1
tls-maxphys:1.1.1.1.0.8
netbsd-7:1.1.1.1.0.6
netbsd-7-base:1.1.1.1
clang-215315:1.1.1.1
clang-209886:1.1.1.1
yamt-pagecache:1.1.1.1.0.4
yamt-pagecache-base9:1.1.1.1
tls-earlyentropy:1.1.1.1.0.2
tls-earlyentropy-base:1.1.1.1
riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1.1.1
riastradh-drm2-base3:1.1.1.1
clang-202566:1.1.1.1
clang-201163:1.1.1.1
clang-199312:1.1.1.1
clang-198450:1.1.1.1
clang-196603:1.1.1.1
clang-195771:1.1.1.1
LLVM:1.1.1;
locks; strict;
comment @# @;
1.1
date 2013.11.28.14.15.01; author joerg; state Exp;
branches
1.1.1.1;
next ;
commitid ow8OybrawrB1f3fx;
1.1.1.1
date 2013.11.28.14.15.01; author joerg; state Exp;
branches
1.1.1.1.4.1
1.1.1.1.8.1
1.1.1.1.28.1
1.1.1.1.30.1;
next 1.1.1.2;
commitid ow8OybrawrB1f3fx;
1.1.1.2
date 2018.07.17.18.31.56; author joerg; state Exp;
branches;
next 1.1.1.3;
commitid wDzL46ALjrCZgwKA;
1.1.1.3
date 2019.11.13.22.23.14; author joerg; state dead;
branches;
next ;
commitid QD8YATxuNG34YJKB;
1.1.1.1.4.1
date 2013.11.28.14.15.01; author yamt; state dead;
branches;
next 1.1.1.1.4.2;
commitid WSrDtL5nYAUyiyBx;
1.1.1.1.4.2
date 2014.05.22.16.19.50; author yamt; state Exp;
branches;
next ;
commitid WSrDtL5nYAUyiyBx;
1.1.1.1.8.1
date 2013.11.28.14.15.01; author tls; state dead;
branches;
next 1.1.1.1.8.2;
commitid jTnpym9Qu0o4R1Nx;
1.1.1.1.8.2
date 2014.08.19.23.49.29; author tls; state Exp;
branches;
next ;
commitid jTnpym9Qu0o4R1Nx;
1.1.1.1.28.1
date 2018.07.28.04.34.20; author pgoyette; state Exp;
branches;
next ;
commitid 1UP1xAIUxv1ZgRLA;
1.1.1.1.30.1
date 2019.06.10.21.46.49; author christos; state Exp;
branches;
next 1.1.1.1.30.2;
commitid jtc8rnCzWiEEHGqB;
1.1.1.1.30.2
date 2020.04.13.07.50.42; author martin; state dead;
branches;
next ;
commitid X01YhRUPVUDaec4C;
desc
@@
1.1
log
@Initial revision
@
text
@
Open Clang Projects
Here are a few tasks that are available for newcomers to work on, depending
on what your interests are. This list is provided to generate ideas, it is not
intended to be comprehensive. Please ask on cfe-dev for more specifics or to
verify that one of these isn't already completed. :)
- Undefined behavior checking:
Improve and extend the runtime checks for undefined behavior which CodeGen
inserts for the various -fsanitize= modes. A lot of issues can already
be caught, but there is more to do here.
- Improve target support: The current target interfaces are heavily
stubbed out and need to be implemented fully. See the FIXME's in TargetInfo.
Additionally, the actual target implementations (instances of TargetInfoImpl)
also need to be completed.
- Implement an tool to generate code documentation: Clang's
library-based design allows it to be used by a variety of tools that reason
about source code. One great application of Clang would be to build an
auto-documentation system like doxygen that generates code documentation from
source code. The advantage of using Clang for such a tool is that the tool would
use the same preprocessor/parser/ASTs as the compiler itself, giving it a very
rich understanding of the code. Clang is already able to read and understand
doxygen markup, but cannot yet generate documentation from it.
- Use clang libraries to implement better versions of existing tools:
Clang is built as a set of libraries, which means that it is possible to
implement capabilities similar to other source language tools, improving them
in various ways. Three examples are distcc, the delta testcase reduction tool, and the
"indent" source reformatting tool.
distcc can be improved to scale better and be more efficient. Delta could be
faster and more efficient at reducing C-family programs if built on the clang
preprocessor. The clang-based indent replacement,
clang-format,
could be taught to handle simple structural rules like those in the LLVM coding
standards.
- Use clang libraries to extend Ragel with a JIT: Ragel is a state
machine compiler that lets you embed C code into state machines and generate
C code. It would be relatively easy to turn this into a JIT compiler using
LLVM.
- Self-testing using clang: There are several neat ways to
improve the quality of clang by self-testing. Some examples:
- Improve the reliability of AST printing and serialization by
ensuring that the AST produced by clang on an input doesn't change
when it is reparsed or unserialized.
- Improve parser reliability and error generation by automatically
or randomly changing the input checking that clang doesn't crash and
that it doesn't generate excessive errors for small input
changes. Manipulating the input at both the text and token levels is
likely to produce interesting test cases.
- Continue work on C++1y support:
C++98 and C++11 are feature-complete, but there are still several C++1y features to
implement. Please see the C++ status report
page to find out what is missing.
- StringRef'ize APIs: A thankless but incredibly useful project is
StringRef'izing (converting to use llvm::StringRef instead of const
char * or std::string) various clang interfaces. This generally
simplifies the code and makes it more efficient.
- Universal Driver: Clang is inherently a cross compiler. We would like
to define a new model for cross compilation which provides a great user
experience -- it should be easy to cross compile applications, install support
for new architectures, access different compilers and tools, and be consistent
across different platforms. See the Universal
Driver web page for more information.
- XML Representation of ASTs: Clang maintains a rich Abstract Syntax Tree that describes the program. Clang could emit an XML document that describes the program, which others tools could consume rather than being tied directly to the Clang binary.The XML representation needs to meet several requirements:
- General, so that it's able to represent C/C++/Objective-C abstractly, and isn't tied to the specific internal ASTs that Clang uses.
- Documented, with appropriate Schema against which the output of Clang's XML formatter can be verified.
- Stable across Clang versions.
- Configuration Manager: Clang/LLVM works on a large number of
architectures and operating systems and can cross-compile to a similarly large
number of configurations, but the pitfalls of chosing the command-line
options, making sure the right sub-architecture is chosen and that the correct
optional elements of your particular system can be a pain.
A tool that would investigate hosts and targets, and store the configuration
in files that can later be used by Clang itself to avoid command-line options,
especially the ones regarding which target options to use, would greatle alleviate
this problem. A simple tool, with little or no dependency on LLVM itself, that
will investigate a target architecture by probing hardware, software, libraries
and compiling and executing code to identify all properties that would be relevant
to command-line options (VFP, SSE, NEON, ARM vs. Thumb etc), triple settings etc.
The first stage is to build a CFLAGS for Clang that would produce code on the
current Host to the identified Target.
The second stage would be to produce a configuration file (that can be used
independently of the Host) so that Clang can read it and not need a gazillion
of command-line options. Such file should be simple JSON / INI or anything that
a text editor could change.
If you hit a bug with clang, it is very useful for us if you reduce the code
that demonstrates the problem down to something small. There are many ways to
do this; ask on cfe-dev for advice.
@
1.1.1.1
log
@Import Clang 3.4rc1 r195771.
@
text
@@
1.1.1.1.30.1
log
@Sync with HEAD
@
text
@d105 1
a105 1
number of configurations, but the pitfalls of choosing the command-line
@
1.1.1.1.30.2
log
@Mostly merge changes from HEAD upto 20200411
@
text
@@
1.1.1.1.28.1
log
@Sync with HEAD
@
text
@d105 1
a105 1
number of configurations, but the pitfalls of choosing the command-line
@
1.1.1.2
log
@Import clang r337282 from trunk
@
text
@d105 1
a105 1
number of configurations, but the pitfalls of choosing the command-line
@
1.1.1.3
log
@Mark old LLVM instance as dead.
@
text
@@
1.1.1.1.8.1
log
@file OpenProjects.html was added on branch tls-maxphys on 2014-08-19 23:49:29 +0000
@
text
@d1 132
@
1.1.1.1.8.2
log
@Rebase to HEAD as of a few days ago.
@
text
@a0 132
Open Clang Projects
Here are a few tasks that are available for newcomers to work on, depending
on what your interests are. This list is provided to generate ideas, it is not
intended to be comprehensive. Please ask on cfe-dev for more specifics or to
verify that one of these isn't already completed. :)
- Undefined behavior checking:
Improve and extend the runtime checks for undefined behavior which CodeGen
inserts for the various -fsanitize= modes. A lot of issues can already
be caught, but there is more to do here.
- Improve target support: The current target interfaces are heavily
stubbed out and need to be implemented fully. See the FIXME's in TargetInfo.
Additionally, the actual target implementations (instances of TargetInfoImpl)
also need to be completed.
- Implement an tool to generate code documentation: Clang's
library-based design allows it to be used by a variety of tools that reason
about source code. One great application of Clang would be to build an
auto-documentation system like doxygen that generates code documentation from
source code. The advantage of using Clang for such a tool is that the tool would
use the same preprocessor/parser/ASTs as the compiler itself, giving it a very
rich understanding of the code. Clang is already able to read and understand
doxygen markup, but cannot yet generate documentation from it.
- Use clang libraries to implement better versions of existing tools:
Clang is built as a set of libraries, which means that it is possible to
implement capabilities similar to other source language tools, improving them
in various ways. Three examples are distcc, the delta testcase reduction tool, and the
"indent" source reformatting tool.
distcc can be improved to scale better and be more efficient. Delta could be
faster and more efficient at reducing C-family programs if built on the clang
preprocessor. The clang-based indent replacement,
clang-format,
could be taught to handle simple structural rules like those in the LLVM coding
standards.
- Use clang libraries to extend Ragel with a JIT: Ragel is a state
machine compiler that lets you embed C code into state machines and generate
C code. It would be relatively easy to turn this into a JIT compiler using
LLVM.
- Self-testing using clang: There are several neat ways to
improve the quality of clang by self-testing. Some examples:
- Improve the reliability of AST printing and serialization by
ensuring that the AST produced by clang on an input doesn't change
when it is reparsed or unserialized.
- Improve parser reliability and error generation by automatically
or randomly changing the input checking that clang doesn't crash and
that it doesn't generate excessive errors for small input
changes. Manipulating the input at both the text and token levels is
likely to produce interesting test cases.
- Continue work on C++1y support:
C++98 and C++11 are feature-complete, but there are still several C++1y features to
implement. Please see the C++ status report
page to find out what is missing.
- StringRef'ize APIs: A thankless but incredibly useful project is
StringRef'izing (converting to use llvm::StringRef instead of const
char * or std::string) various clang interfaces. This generally
simplifies the code and makes it more efficient.
- Universal Driver: Clang is inherently a cross compiler. We would like
to define a new model for cross compilation which provides a great user
experience -- it should be easy to cross compile applications, install support
for new architectures, access different compilers and tools, and be consistent
across different platforms. See the Universal
Driver web page for more information.
- XML Representation of ASTs: Clang maintains a rich Abstract Syntax Tree that describes the program. Clang could emit an XML document that describes the program, which others tools could consume rather than being tied directly to the Clang binary.The XML representation needs to meet several requirements:
- General, so that it's able to represent C/C++/Objective-C abstractly, and isn't tied to the specific internal ASTs that Clang uses.
- Documented, with appropriate Schema against which the output of Clang's XML formatter can be verified.
- Stable across Clang versions.
- Configuration Manager: Clang/LLVM works on a large number of
architectures and operating systems and can cross-compile to a similarly large
number of configurations, but the pitfalls of chosing the command-line
options, making sure the right sub-architecture is chosen and that the correct
optional elements of your particular system can be a pain.
A tool that would investigate hosts and targets, and store the configuration
in files that can later be used by Clang itself to avoid command-line options,
especially the ones regarding which target options to use, would greatle alleviate
this problem. A simple tool, with little or no dependency on LLVM itself, that
will investigate a target architecture by probing hardware, software, libraries
and compiling and executing code to identify all properties that would be relevant
to command-line options (VFP, SSE, NEON, ARM vs. Thumb etc), triple settings etc.
The first stage is to build a CFLAGS for Clang that would produce code on the
current Host to the identified Target.
The second stage would be to produce a configuration file (that can be used
independently of the Host) so that Clang can read it and not need a gazillion
of command-line options. Such file should be simple JSON / INI or anything that
a text editor could change.
If you hit a bug with clang, it is very useful for us if you reduce the code
that demonstrates the problem down to something small. There are many ways to
do this; ask on cfe-dev for advice.
@
1.1.1.1.4.1
log
@file OpenProjects.html was added on branch yamt-pagecache on 2014-05-22 16:19:50 +0000
@
text
@d1 132
@
1.1.1.1.4.2
log
@sync with head.
for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.
this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
@
text
@a0 132
Open Clang Projects
Here are a few tasks that are available for newcomers to work on, depending
on what your interests are. This list is provided to generate ideas, it is not
intended to be comprehensive. Please ask on cfe-dev for more specifics or to
verify that one of these isn't already completed. :)
- Undefined behavior checking:
Improve and extend the runtime checks for undefined behavior which CodeGen
inserts for the various -fsanitize= modes. A lot of issues can already
be caught, but there is more to do here.
- Improve target support: The current target interfaces are heavily
stubbed out and need to be implemented fully. See the FIXME's in TargetInfo.
Additionally, the actual target implementations (instances of TargetInfoImpl)
also need to be completed.
- Implement an tool to generate code documentation: Clang's
library-based design allows it to be used by a variety of tools that reason
about source code. One great application of Clang would be to build an
auto-documentation system like doxygen that generates code documentation from
source code. The advantage of using Clang for such a tool is that the tool would
use the same preprocessor/parser/ASTs as the compiler itself, giving it a very
rich understanding of the code. Clang is already able to read and understand
doxygen markup, but cannot yet generate documentation from it.
- Use clang libraries to implement better versions of existing tools:
Clang is built as a set of libraries, which means that it is possible to
implement capabilities similar to other source language tools, improving them
in various ways. Three examples are distcc, the delta testcase reduction tool, and the
"indent" source reformatting tool.
distcc can be improved to scale better and be more efficient. Delta could be
faster and more efficient at reducing C-family programs if built on the clang
preprocessor. The clang-based indent replacement,
clang-format,
could be taught to handle simple structural rules like those in the LLVM coding
standards.
- Use clang libraries to extend Ragel with a JIT: Ragel is a state
machine compiler that lets you embed C code into state machines and generate
C code. It would be relatively easy to turn this into a JIT compiler using
LLVM.
- Self-testing using clang: There are several neat ways to
improve the quality of clang by self-testing. Some examples:
- Improve the reliability of AST printing and serialization by
ensuring that the AST produced by clang on an input doesn't change
when it is reparsed or unserialized.
- Improve parser reliability and error generation by automatically
or randomly changing the input checking that clang doesn't crash and
that it doesn't generate excessive errors for small input
changes. Manipulating the input at both the text and token levels is
likely to produce interesting test cases.
- Continue work on C++1y support:
C++98 and C++11 are feature-complete, but there are still several C++1y features to
implement. Please see the C++ status report
page to find out what is missing.
- StringRef'ize APIs: A thankless but incredibly useful project is
StringRef'izing (converting to use llvm::StringRef instead of const
char * or std::string) various clang interfaces. This generally
simplifies the code and makes it more efficient.
- Universal Driver: Clang is inherently a cross compiler. We would like
to define a new model for cross compilation which provides a great user
experience -- it should be easy to cross compile applications, install support
for new architectures, access different compilers and tools, and be consistent
across different platforms. See the Universal
Driver web page for more information.
- XML Representation of ASTs: Clang maintains a rich Abstract Syntax Tree that describes the program. Clang could emit an XML document that describes the program, which others tools could consume rather than being tied directly to the Clang binary.The XML representation needs to meet several requirements:
- General, so that it's able to represent C/C++/Objective-C abstractly, and isn't tied to the specific internal ASTs that Clang uses.
- Documented, with appropriate Schema against which the output of Clang's XML formatter can be verified.
- Stable across Clang versions.
- Configuration Manager: Clang/LLVM works on a large number of
architectures and operating systems and can cross-compile to a similarly large
number of configurations, but the pitfalls of chosing the command-line
options, making sure the right sub-architecture is chosen and that the correct
optional elements of your particular system can be a pain.
A tool that would investigate hosts and targets, and store the configuration
in files that can later be used by Clang itself to avoid command-line options,
especially the ones regarding which target options to use, would greatle alleviate
this problem. A simple tool, with little or no dependency on LLVM itself, that
will investigate a target architecture by probing hardware, software, libraries
and compiling and executing code to identify all properties that would be relevant
to command-line options (VFP, SSE, NEON, ARM vs. Thumb etc), triple settings etc.
The first stage is to build a CFLAGS for Clang that would produce code on the
current Host to the identified Target.
The second stage would be to produce a configuration file (that can be used
independently of the Host) so that Clang can read it and not need a gazillion
of command-line options. Such file should be simple JSON / INI or anything that
a text editor could change.
If you hit a bug with clang, it is very useful for us if you reduce the code
that demonstrates the problem down to something small. There are many ways to
do this; ask on cfe-dev for advice.
@