Skip to content

Commit 13471fa

Browse files
authored
Merge branch 'master' into douglas-35
2 parents 49331c6 + 5fb14f8 commit 13471fa

24 files changed

+927
-12
lines changed

.github/ISSUE_TEMPLATE/topic-proposal.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: Topic proposal
33
about: Describes a topic that should be considered by SG20 for education guidelines
44
title: "[TOPIC-REQUEST]"
55
labels: Needs triaging
6-
assignees: BobSteagall, cjdb, jcvw
6+
assignees: vulder, jcvw
77

88
---
99

.github/workflows/ci.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33

44
name: ci
55

6-
on: [push]
6+
on:
7+
pull_request:
8+
push:
9+
branches:
10+
master
711

812
jobs:
913
build:

.github/workflows/ci_tool_tests.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
name: Tool CI
44

5-
on: [push]
5+
on:
6+
pull_request:
67

78
jobs:
89
build:

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
- name: Collect git metadata
2424
id: git_metadata
2525
run: |
26-
echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/v}
26+
echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
2727
# The following builds the document in multiple formats for deployment.
2828
- name: Build the document.
2929
shell: bash

config/spellcheck/ignored_words.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
11
args
2+
asm
3+
baz
24
Bjarne
5+
bool
36
checkmark
7+
coe
48
constexpr
59
cppreference
610
Engelhart
11+
enum
712
EPUB
813
errno
914
expr
15+
explorative
16+
extern
1017
Florian
1118
func
1219
Furst
@@ -16,8 +23,11 @@ Hyland
1623
JC
1724
Krathwohl
1825
ness
26+
nothrow
1927
NRVO
28+
RAII
2029
req
30+
Rethrowing
2131
RVO
2232
Sattler
2333
SG

config/spellcheck/wordlist

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
personal_ws-1.1 en 18
21
ABI
2+
API
3+
APIs
34
boolean
45
computable
56
destructors
@@ -10,6 +11,7 @@ metaprogramming
1011
namespace
1112
namespaces
1213
ODR
14+
personal_ws-1.1 en 18
1315
preprocessor
1416
redeclarations
1517
SFINAE

sources/Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ knowledge_areas_summary.md: $(SOURCES) knowledge_areas.dat
115115
$(MAKE_MARKDOWN) < knowledge_areas.dat > knowledge_areas_summary.md
116116

117117
contributors.md:
118-
git log --all --pretty="%aN" | sort | uniq > contributors.md
118+
git log --format="%aN%n%(trailers:key=Co-authored-by,valueonly=true)" | sed 's/ <.*>//g' | sort | uniq > contributors.md
119119

120120
################################################################################
121121
# Establish Pandoc settings.

sources/knowledge_areas.dat

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ P Preprocessor
1212
? ? ? ? Macros
1313
B Basics Types, Objects, Values, Expressions, Statements, and Control-Flow Constructs
1414
? ? ? ? Constant Objects
15-
? ? ? ? Declarations and Definitions
15+
? ? ? ? Declarations
16+
def y y y Definitions
1617
? ? ? ? Selection Constructs (e.g., if, ternary)
1718
? ? ? ? Looping Constructs (e.g., for, while, etc.)
1819
F Functions
@@ -50,10 +51,10 @@ T Generic Programming (Templates)
5051
? ? ? ? Requires Clauses
5152
req-expr y y n Requires Expressions
5253
EH Error Handling
53-
? ? ? ? Classes of Errors
54+
coe y y n Categories of Errors
5455
? ? ? ? errno
5556
? ? ? ? Error Codes
56-
? ? ? ? Exception Handling
57+
eh y y y Exception Handling
5758
SL Standard Library
5859
? ? ? ? Input/Output (I/O)
5960
? ? ? ? Containers, Iterators, and Algorithms
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
## Module name: Build systems
2+
3+
_Skeleton descriptions are typeset in italic text,_
4+
_so please don't remove these descriptions when editing the topic._
5+
6+
### Overview
7+
8+
_Provides a short natural language abstract of the module’s contents._
9+
_Specifies the different levels of teaching._
10+
11+
------------------------------------------------------------------------
12+
Level Objective
13+
----------------- ------------------------------------------------------
14+
Foundational --- Knowledge about build systems
15+
16+
Main --- Usage of build system to compile a executable
17+
18+
Advanced --- Add external libraries as a dependencies
19+
20+
------------------------------------------------------------------------
21+
22+
### Motivation
23+
24+
_Why is this important?_
25+
_Why do we want to learn/teach this topic?_
26+
27+
* Building complex C++ projects by hand is tricky
28+
* Build systems can help to resolve dependencies
29+
* Build systems can help do distribute C++ code and help other to compile the code
30+
* Build systems can help to find and include libraries as dependencies
31+
* Build systems faciliate project management
32+
* All major C++ projects are distributed with build systems
33+
34+
### Topic introduction
35+
36+
_Very brief introduction to the topic._
37+
38+
Build systems are used to configure, build, and install complex C++ projects.
39+
40+
41+
### Foundational: Knowledge about build systems
42+
43+
#### Background/Required Knowledge
44+
45+
A student:
46+
* Should know how to compile and link C++ programs
47+
48+
49+
#### Student outcomes
50+
51+
_A list of things "a student should be able to" after the curriculum._
52+
_The next word should be an action word and testable in an exam._
53+
_Max 5 items._
54+
55+
A student should be able to:
56+
57+
1. To explain what a build system is
58+
2. To explain that a build systems resolves dependencies
59+
3. To explain that a build system supports compilation for different operating systems and architectures
60+
61+
#### Caveats
62+
63+
_This section mentions subtle points to understand, like anything resulting in
64+
implementation-defined, unspecified, or undefined behavior._
65+
66+
None
67+
68+
#### Points to cover
69+
70+
_This section lists important details for each point._
71+
72+
* Mention that many build systems are available for C++
73+
* Mention benefits and challenges
74+
* Build system help to only compile the C++ files with code changes and not the complete project
75+
76+
### Main: Usage of build system to compile a executable
77+
78+
#### Background/Required Knowledge
79+
80+
* All of the above.
81+
82+
#### Student outcomes
83+
84+
A student should be able to:
85+
86+
1. Download a C++ package and build the package
87+
2. Write a configuration file to compile a C++ executable
88+
3. Pass compiler options via the build system
89+
4. Use the build system to generate the executable
90+
5. Write a configuration file to compile a library and link the library to a C++ executable
91+
92+
#### Caveats
93+
94+
The instructions are restricted to the chosen build system and
95+
not easily transferable.
96+
97+
98+
#### Points to cover
99+
100+
* Include paths to header files to the configuration
101+
* Adding compiler flags
102+
* How to build Release and Debug builds
103+
* Linking external libraries to the C++ project
104+
* Support compilation on different operating systems, compilers, and architectures
105+
106+
107+
### Advanced
108+
109+
_These are important topics that are not expected to be covered but provide
110+
guidance where one can continue to investigate this topic in more depth._
111+
112+
* How to build libraries
113+
* How to have external libraries be downloaded during the build process
114+
* Mention that build systems provide support for unit testing
115+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## C++ compilation model: Linkage {#linkage}
2+
3+
_Skeleton descriptions are typeset in italic text,_
4+
_so please don't remove these descriptions when editing the topic._
5+
6+
This topic is currently under construction and will soon be filled with information :)

0 commit comments

Comments
 (0)