Skip to content

Instantly share code, notes, and snippets.

View johnmcfarlane's full-sized avatar

John McFarlane johnmcfarlane

View GitHub Profile
@johnmcfarlane
johnmcfarlane / project-maintainability.md
Last active December 31, 2022 18:44
Project Maintainability document (WiP)

Project Maintainability

Fail Loud

Errors and bugs should be prominent. If an error can be dealt with by the client code, it's not an error.

grepability

grepability is the quality that:

@johnmcfarlane
johnmcfarlane / launch.json
Last active March 9, 2021 00:32
.vscode CMake/Conan project configuration cookbook
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
@johnmcfarlane
johnmcfarlane / .clang-format-2-2
Last active December 13, 2020 21:21
numbers.h with an indent of 2
---
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: AlwaysBreak
AlignConsecutiveMacros: false
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: DontAlign
AlignOperands: false
@johnmcfarlane
johnmcfarlane / clang-tidy_check-profile.txt
Created November 13, 2020 04:25
Clang-Tidy profile sample
===-------------------------------------------------------------------------===
clang-tidy checks profiling
===-------------------------------------------------------------------------===
Total Execution Time: 22.5880 seconds (22.5880 wall clock)
---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name ---
1.4755 ( 8.3%) 0.3357 ( 6.8%) 1.8112 ( 8.0%) 1.8092 ( 8.0%) readability-identifier-naming
0.9903 ( 5.6%) 0.1667 ( 3.4%) 1.1570 ( 5.1%) 1.1552 ( 5.1%) bugprone-reserved-identifier
0.8855 ( 5.0%) 0.1358 ( 2.8%) 1.0213 ( 4.5%) 1.0212 ( 4.5%) cert-dcl37-c
0.8815 ( 5.0%) 0.1316 ( 2.7%) 1.0130 ( 4.5%) 1.0132 ( 4.5%) cert-dcl51-cpp
@johnmcfarlane
johnmcfarlane / full-output-of-generate.sh.txt
Created June 6, 2020 09:39
Output of document generation script as part of Sphinx bug report #2
# Sphinx version: 3.1.0+
# Python version: 3.8.2 (CPython)
# Docutils version: 0.16 release
# Jinja2 version: 2.11.2
# Last messages:
# reading sources... [ 40%] file/wide__tag_2is__same__tag__family_8h
# reading sources... [ 41%] file/wide__tag_2overloads_8h
# reading sources... [ 41%] file/wide__tag_8h
# reading sources... [ 41%] file/width_8h
# reading sources... [ 41%] file/wrap_8h
@johnmcfarlane
johnmcfarlane / write-a-README.md
Created June 5, 2020 15:22
How to write a README

How to Write a README

Different people have different views about what constitutes a good README document for a software project. I think it should be vehicle for delivery of the bare minimum knowledge necessary to convey why someone might want to use it and how.

Imagine you're a trainee who was given a URL to the GitHub page on your first day. You have only the bare resources needed to run the program, but none of the knowledge about it.

What information would you need? Make certain to add that information:

  • Brief description of project aimed at somebody who might need it, but hasn't necessarily ever heard of it.
  • Link to the projects's home. This might be a github.io site, a Confluence page or a wiki.
@johnmcfarlane
johnmcfarlane / full-output-of-generate.sh.txt
Created June 1, 2020 13:59
Output of document generation script as part of bug Sphinx bug report
--2020-06-01 14:46:28-- http://upload.cppreference.com/mwiki/images/f/f8/cppreference-doxygen-web.tag.xml
Resolving upload.cppreference.com (upload.cppreference.com)... 2604:4f00::3:0:1238:1, 74.114.90.46
Connecting to upload.cppreference.com (upload.cppreference.com)|2604:4f00::3:0:1238:1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1100140 (1.0M) [application/xml]
Saving to: ‘cppreference-doxygen-web.tag.xml’
cppreference-doxygen-web.tag.xml 100%[=====================================================================================================================>] 1.05M 853KB/s in 1.3s
2020-06-01 14:46:30 (853 KB/s) - ‘cppreference-doxygen-web.tag.xml’ saved [1100140/1100140]
@johnmcfarlane
johnmcfarlane / What compiler and language is this?.cpp
Created May 2, 2020 10:02
Script for printing compiler version and language revision as a diagnostic
template <int c, long s> struct _;
#if defined(__clang__)
_<__clang_major__, __cplusplus> clang_version_and_standard;
#elif defined(__GNUC__)
_<__GNUC__, __cplusplus> gcc_version_and_standard;
#elif defined(_MSC_VER)
_<_MSC_VER, __cplusplus> msvc_version_and_standard;
#else
#error "I don't know that compiler"
#endif
@johnmcfarlane
johnmcfarlane / integer-3770d0.cpp
Last active April 18, 2020 12:38
Preprocessed source, /tmp/integer-3770d0.cpp, associated with clang frontend crash
This file has been truncated, but you can view the full file.
# 1 "<built-in>"
# 1 "/home/john/ws/rounding-overflow/cnl/test/unit/scaled_integer/rounding/elastic/integer.cpp"
// Copyright John McFarlane 2015 - 2016.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file ../../LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#if 0 /* expanded by -frewrite-includes */
#include <cnl/elastic_integer.h>
@johnmcfarlane
johnmcfarlane / msan-build.sh
Created February 14, 2020 21:58
Script for building MSan
set -exu pipeline
SCRIPT_DIR=$(cd "$(dirname "$0")"; pwd)
PROJECT_DIR="$SCRIPT_DIR"/llvm-project
mkdir -p build
cd build
cmake \
-GNinja \
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \