Add the deck for episode 2 to videos.org

This commit is contained in:
Sameer Rahmani 2021-07-03 16:52:57 +01:00
parent b4285a154c
commit afa2310b02
3 changed files with 23 additions and 8 deletions

View File

@ -10,7 +10,7 @@ Setup the githook and install dependencies using the following commands:
*** Dependencies
You would need the following dependencies to start get started with *Serene* development
- LLVM ( LLVM Instructions coming up.)
- LLVM (LLVM Instructions coming up.)
- cmake
- ninja
- doxygen (If you want to build the docs as well)
@ -33,14 +33,14 @@ Setup the githook and install dependencies using the following commands:
-DLLVM_PARALLEL_COMPILE_JOBS=7 \
-DLLVM_PARALLEL_LINK_JOBS=1 \
-DLLVM_BUILD_EXAMPLES=ON \
-DLLVM_TARGETS_TO_BUILD="X86;NVPTX;AMDGPU" \
-DLLVM_TARGETS_TO_BUILD="X86" \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_ENABLE_ASSERTIONS=ON \
-DLLVM_CCACHE_BUILD=ON \
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
-DLLVM_ENABLE_PROJECTS='clang;lldb;lld;mlir;clang-tools-extra;compiler-rt' \
-DCMAKE_C_COMPILER=clang \
-DCMAKE_CXX_COMPILER=clang++ \
-DCMAKE_C_COMPILER=clang \ # If you have clang installed already
-DCMAKE_CXX_COMPILER=clang++ \ # If you have clang installed already
-DLLVM_ENABLE_LLD=ON
cmake --build .
@ -57,7 +57,6 @@ Setup the githook and install dependencies using the following commands:
If you're using Emacs as your development environment just install =clangd= and =lsp=.
* How to build
In order to build for development (Debug mode) just use =./builder build= to setup the build and build
the project once and then you can just use =./builder compile= to build the changed files only.

11
builder
View File

@ -2,6 +2,7 @@
command=$1
# Utilize `ccache` if available
if type "ccache" > /dev/null
then
CC="$(which ccache) $(which clang)"
@ -13,15 +14,20 @@ fi
export CC
export CXX
# Meke sure to use `lld` linker it faster and has a better UX
export LDFLAGS="-fuse-ld=lld"
export ASAN_FLAG="-fsanitize=address"
export ASAN_OPTIONS=check_initialization_order=1
LSAN_OPTIONS=suppressions=$(pwd)/.ignore_sanitize
export LSAN_OPTIONS
# The `builder` script is supposed to be run from the
# root of the source tree
ROOT_DIR=$(pwd)
BUILD_DIR=$ROOT_DIR/build
scanbuild=scan-build-11
scanbuild=scan-build
function pushed_build() {
pushd "$BUILD_DIR" > /dev/null || return
@ -170,6 +176,7 @@ case "$command" in
;;
*)
echo "Commands: "
echo "setup - Setup the githooks for devs"
echo "full-build - Build and test Serene."
echo "build - Build Serene from scratch in DEBUG mode."
echo "build-release - Build Serene from scratch in RELEASE mode."
@ -178,7 +185,7 @@ case "$command" in
echo "run - Runs the serene executable"
echo "scan-build - Compiles serene with static analyzer"
echo "tests - Runs the test cases"
echo "memcheck - Runs the memcheck tool."
echo "memcheck - Runs the memcheck(valgrind) tool."
echo "clean - :D"
;;
esac

View File

@ -3,7 +3,7 @@
#+TAGS: READER(r) MISC(m)
#+STARTUP: logdrawer logdone logreschedule indent content align constSI entitiespretty
* Episode 1 - Introduction
* DONE Episode 1 - Introduction
** What is it all about?
- Create a programming lang
- Guide for contributors
@ -20,3 +20,12 @@
- Repository: https://devheroes.codes/Serene
- Website: lxsameer.com
Email: lxsameer@gnu.org
* Episode 2 - Basic Setup
** Installing Requirements
*** LLVM and Clang
- mlir-tblgen
*** ccache (optional)
** Building Serene and the =builder=
- git hooks
** Source tree structure
** =dev.org= resources and TODOs