# HG changeset patch # User Christian Urban # Date 1762772673 0 # Node ID f7c84bfa3cee551b24f6418f00eb82ba8b5f3655 # Parent 17e6f46260bdf6f4b11c91e7e36dfe02b8bfdf5d updated diff -r 17e6f46260bd -r f7c84bfa3cee handouts/pep-ho.pdf Binary file handouts/pep-ho.pdf has changed diff -r 17e6f46260bd -r f7c84bfa3cee handouts/pep-ho.tex --- a/handouts/pep-ho.tex Fri Sep 12 10:36:07 2025 +0100 +++ b/handouts/pep-ho.tex Mon Nov 10 11:04:33 2025 +0000 @@ -186,7 +186,7 @@ \noindent\alert For PEP, make sure you are using the version 3(!) of Scala. This is the version I am going to use in the lectures and in the coursework. This -can be any version of Scala 3.X where $X=\{4,5\}$. Also the minor +can be any version of Scala 3.X where $X=\{4,5,6,7\}$. Also the minor number does not matter. Note that this will be the second year I am using this newer version of Scala -- some hiccups can still happen. Apologies in advance!\bigskip @@ -214,7 +214,7 @@ tricks for Scala programs to run as a native GraalVM~\hr{https://scala-cli.virtuslab.org/docs/cookbooks/native-images/} image. Though be warned these backends are still rather beta or even -alpha. +alpha. But for the coursework we are going to use the ``vanilla'' Scala compiler. \subsection*{VS Code and Scala} @@ -252,7 +252,7 @@ action ``Run-Selected-Text-In-Active-Terminal'' in order to quickly evaluate small code snippets in the Scala REPL. I use Codium's internal terminal to run \texttt{scala} version 1.0.5 which - uses Scala 3.3.1.\label{vscode}} + uses Scala 3.7.3.\label{vscode}} \end{boxedminipage} \end{figure} @@ -545,7 +545,7 @@ \begin{lstlisting}[language={},numbers=none,basicstyle=\ttfamily\small] $ scala -Welcome to Scala 3.5.1 (21.0.4, Java OpenJDK 64-Bit Server VM). +Welcome to Scala 3.7.3 (21.0.8, Java OpenJDK 64-Bit Server VM). Type in expressions for evaluation. Or try :help. scala> diff -r 17e6f46260bd -r f7c84bfa3cee styles/graphics.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/styles/graphics.sty Mon Nov 10 11:04:33 2025 +0000 @@ -0,0 +1,21 @@ +\usepackage{tikz} +\usepackage{pgf} +\usetikzlibrary{positioning} +\usetikzlibrary{calc} +\usetikzlibrary{automata} +\usetikzlibrary{arrows} +\usetikzlibrary{backgrounds} +\usetikzlibrary{fit} +\usepackage{tikz-qtree} +\usepackage{graphicx} +\usepackage{pgfplots} + +\pgfplotsset{compat=1.11} + +\newenvironment{bubble}[1][]{% +\addtolength{\leftmargini}{4mm}% +\begin{tikzpicture}[baseline=(current bounding box.north)]% +\draw (0,0) node[inner sep=2mm,fill=cream,ultra thick,draw=red,rounded corners=2mm]% +\bgroup\begin{minipage}{#1}\raggedright{}} +{\end{minipage}\egroup;% +\end{tikzpicture}\bigskip} diff -r 17e6f46260bd -r f7c84bfa3cee styles/langs.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/styles/langs.sty Mon Nov 10 11:04:33 2025 +0000 @@ -0,0 +1,98 @@ +\usepackage{listings} +\usepackage{etoolbox} +\setmonofont[Scale=.95]{Consolas} +\newfontfamily{\consolas}{Consolas} + +\makeatletter +\let\old@lstKV@SwitchCases\lstKV@SwitchCases +\def\lstKV@SwitchCases#1#2#3{} +\makeatother +\usepackage{lstlinebgrd} +\makeatletter +\let\lstKV@SwitchCases\old@lstKV@SwitchCases + +\lst@Key{numbers}{none}{% + \def\lst@PlaceNumber{\lst@linebgrd}% + \lstKV@SwitchCases{#1}% + {none:\\% + left:\def\lst@PlaceNumber{\llap{\normalfont + \lst@numberstyle{\thelstnumber}\kern\lst@numbersep}\lst@linebgrd}\\% + right:\def\lst@PlaceNumber{\rlap{\normalfont + \kern\linewidth \kern\lst@numbersep + \lst@numberstyle{\thelstnumber}}\lst@linebgrd}% + }{\PackageError{Listings}{Numbers #1 unknown}\@ehc}} +\makeatother + + + +\definecolor{codered}{rgb}{0.6,0,0} % for strings +\definecolor{codegreen}{rgb}{0.25,0.5,0.35} % comments +\definecolor{codepurple}{rgb}{0.5,0,0.35} % keywords +\definecolor{codedocblue}{rgb}{0.25,0.35,0.75} % doc +\definecolor{codeblue}{rgb}{0.25,0.35,0.75} % types + +\BeforeBeginEnvironment{lstlisting}{\par\noindent\begin{minipage}{\linewidth}} +\AfterEndEnvironment{lstlisting}{\end{minipage}\par} + +\lstdefinelanguage{Scala}{ + morekeywords={abstract,case,catch,class,def,% + do,else,extends,false,final,finally,% + for,if,implicit,import,match,mixin,% + new,null,object,override,package,% + private,protected,requires,return,sealed,% + super,this,throw,trait,then,true,try,% + type,val,var,while,with,yield,write,read},% + otherkeywords={=>,<-,<\%,<:,>:,\#},% + sensitive=true,% + %directives={Int,Char,Rexp,String,Boolean,BigInt,Unit,List,Set},% + %moredelim=*[directive]:,% + morecomment=[l]{//},% + morecomment=[n]{/*}{*/}, + morestring=[s]{"""}{"""}, + morestring=[b]", + morestring=[b]', +}[keywords,comments,strings] + +\lstdefinelanguage{While}{ + morekeywords={if,then,else,while,do,true,false,write,upto,read,for,skip}, + morecomment=[l]{//}, + morecomment=[n]{/*}{*/}, + morestring=[b]", + otherkeywords={=,!=,:=,<,>,\%;*,/}, +}[keywords,comments,strings] + + +\newcommand{\code}[1]{{\lstinline{#1}}} +\newcommand{\pcode}[1]{\mbox{\lstset{language={},keywordstyle=\color{black}}\lstinline!#1!}} +\newcommand{\scode}[1]{\mbox{\lstset{language={},basicstyle=\ttfamily\color{codegreen}}\lstinline!#1!}} +\makeatother + +%%\lstset{escapeinside={(*@}{@*)}} +\lstset{escapeinside={/*@}{@*/}} + +%% stripy code +\usepackage{lstlinebgrd} +\definecolor{capri}{rgb}{0.0, 0.75, 1.0} + + +\lstdefinestyle{mystyle} + {basicstyle=\ttfamily, + keywordstyle=\color{codepurple}\bfseries, + stringstyle=\color{codegreen}, + commentstyle=\color{codegreen}, + morecomment=[s][\color{codedocblue}]{/**}{*/}, + numbers=none, + numberstyle=\tiny\color{black}, + stepnumber=1, + numbersep=10pt, + tabsize=2, + showspaces=false, + showstringspaces=false, + xleftmargin=8mm, + emphstyle=\color{codeblue}\bfseries, + keepspaces, + linebackgroundcolor={\ifodd\value{lstnumber}\color{capri!3}\fi} +} + +\lstset{language=Scala, + style=mystyle} diff -r 17e6f46260bd -r f7c84bfa3cee styles/mygraphs.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/styles/mygraphs.sty Mon Nov 10 11:04:33 2025 +0000 @@ -0,0 +1,21 @@ +\usepackage{tikz} +\usepackage{pgf} +\usetikzlibrary{positioning} +\usetikzlibrary{calc} +\usetikzlibrary{automata} +\usetikzlibrary{arrows} +\usetikzlibrary{backgrounds} +\usetikzlibrary{fit} +\usepackage{tikz-qtree} +\usepackage{graphicx} +\usepackage{pgfplots} + +\pgfplotsset{compat=1.11} + +\newenvironment{bubble}[1][]{% +\addtolength{\leftmargini}{4mm}% +\begin{tikzpicture}[baseline=(current bounding box.north)]% +\draw (0,0) node[inner sep=2mm,fill=cream,ultra thick,draw=red,rounded corners=2mm]% +\bgroup\begin{minipage}{#1}\raggedright{}} +{\end{minipage}\egroup;% +\end{tikzpicture}\bigskip} diff -r 17e6f46260bd -r f7c84bfa3cee styles/slides-old.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/styles/slides-old.sty Mon Nov 10 11:04:33 2025 +0000 @@ -0,0 +1,88 @@ +\usepackage[absolute,overlay]{textpos} +\usepackage{xcolor} +\usepackage{fontspec} +\usepackage[sc]{mathpazo} +\usefonttheme{serif} +\defaultfontfeatures{Ligatures=TeX} +\defaultfontfeatures{Mapping=tex-text} +\setromanfont{Hoefler Text} +\setmonofont[Scale=.88]{Consolas} +\newfontfamily{\consolas}{Consolas} + +\definecolor{darkblue}{rgb}{0,0,0.6} +\hypersetup{colorlinks=true} +\hypersetup{linkcolor=darkblue} +\hypersetup{urlcolor=darkblue} + +\newcommand{\tttext}[1]{{\consolas{#1}}} + +\newcommand{\ZERO}{\mbox{\bf 0}} +\newcommand{\ONE}{\mbox{\bf 1}} +\newcommand{\Der}{\textit{Der}} +\newcommand{\der}{\textit{der}} +\newcommand{\Ders}{\textit{Ders}} +\newcommand{\ders}{\textit{ders}} +\newcommand{\dn}{\stackrel{\mbox{\scriptsize def}}{=}}% +\newcommand{\slidecaption}{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Frametitles + +\setbeamerfont{frametitle}{size={\LARGE}} +\setbeamerfont{frametitle}{family={\fontspec{Hoefler Text Black}}} +\setbeamercolor{frametitle}{fg=ProcessBlue,bg=white} + +\setbeamertemplate{frametitle}{% +\vskip 2mm % distance from the top margin +\hskip -3mm % distance from left margin +\vbox{% +\begin{minipage}{1.05\textwidth}% +\centering% +\begin{tabular}{@{}c@{}}% +\insertframetitle% +\end{tabular}% +\end{minipage}\vspace{-10pt}}% +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Foot +% +\setbeamertemplate{navigation symbols}{} +\usefoottemplate{% +\vbox{% + \tinyline{% + \tiny\hfill\textcolor{gray!50}{\slidecaption{} -- + p.~\insertframenumber/\inserttotalframenumber}}}% +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\beamertemplateballitem +\setlength\leftmargini{2mm} +\setlength\leftmarginii{0.6cm} +\setlength\leftmarginiii{1.5cm} +\setbeamertemplate{itemize/enumerate body end}{\vspace{-2mm}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% blocks +%\definecolor{cream}{rgb}{1,1,.65} +\definecolor{cream}{rgb}{1,1,.8} +\setbeamerfont{block title}{size=\normalsize} +\setbeamercolor{block title}{fg=black,bg=cream} +\setbeamercolor{block body}{fg=black,bg=cream} + +\setbeamertemplate{blocks}[rounded][shadow=true] + +\setbeamercolor{boxcolor}{fg=black,bg=cream} + +\mode + + + + + + + diff -r 17e6f46260bd -r f7c84bfa3cee styles/slides.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/styles/slides.sty Mon Nov 10 11:04:33 2025 +0000 @@ -0,0 +1,115 @@ +\usepackage[absolute,overlay]{textpos} +\usepackage{xcolor} +\usepackage[no-math]{fontspec} + +%%%%% CODE FONT +%\setmonofont[Scale=.95]{Consolas} +\setmonofont[Scale=.88]{Consolas} +%\newfontfamily{\consolas}{Consolas} + +%%%%% MATHFONT +\usepackage[sc]{mathpazo} +%\usepackage{fourier} +%\usepackage{mathspec} +%\usepackage[varg]{txfonts} +%\usepackage{mathpple} + +%%%%% MAIN TEXT FONT +\setromanfont{Cronos Pro} +%\setbeamerfont{normal text}{family={\fontspec{Cronos Pro}}} +%\setbeamerfont{normal text}{family={\fontspec{Hoefler Text}}} +%\setromanfont{Cronos Pro} +%\setromanfont{Hoefler Text} +\usefonttheme{serif} +\defaultfontfeatures{Ligatures=TeX} +\defaultfontfeatures{Mapping=tex-text} + +%% for recording slides +\setbeamersize{text margin right=5cm} % <- like this + +%%%% Colours + +\definecolor{darkblue}{rgb}{0,0,0.6} +\hypersetup{colorlinks=true} +\hypersetup{linkcolor=darkblue} +\hypersetup{urlcolor=darkblue} + +\hfuzz=320pt + + +\newcommand{\tttext}[1]{{\consolas{#1}}} + +\newcommand{\ZERO}{\mathit{\bf 0}} +\newcommand{\ONE}{\mathit{\bf 1}} +\newcommand{\Der}{\mathit{Der}} +\newcommand{\der}{\mathit{der}} +\newcommand{\Ders}{\mathit{Ders}} +\newcommand{\ders}{\mathit{ders}} +\newcommand{\dn}{\stackrel{\mbox{\scriptsize def}}{=}}% +\newcommand{\slidecaption}{} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Frametitles + +\setbeamerfont{frametitle}{size={\LARGE}} +%\setbeamerfont{frametitle}{family={\fontspec{Hoefler Text Black}}} +\setbeamerfont{frametitle}{family={\fontspec{Cronos Pro Bold Caption}}} +\setbeamercolor{frametitle}{fg=ProcessBlue,bg=white} + +\setbeamertemplate{frametitle}{% +\vskip 2mm % distance from the top margin +\hskip -3mm % distance from left margin +\vbox{% +\begin{minipage}{1.05\textwidth}% +\centering% +%\begin{tabular}{@{}c@{}}% +\insertframetitle% +%\end{tabular}% +\end{minipage}\vspace{-10pt}}% +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Foot +% +\setbeamertemplate{navigation symbols}{} +\usefoottemplate{% +\vbox{% + \tinyline{% + \tiny\hfill\textcolor{gray!50}{\slidecaption{} -- + p.~\insertframenumber/\inserttotalframenumber}}}% +} + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%\beamertemplateballitem +\setbeamertemplate{itemize item}[ball] +\setbeamertemplate{itemize subitem}[ball] +\setbeamertemplate{itemize subsubitem}[ball] +\setlength\leftmargini{2mm} +\setlength\leftmarginii{0.6cm} +\setlength\leftmarginiii{1.5cm} +\setbeamertemplate{itemize/enumerate body end}{\vspace{-2mm}} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% blocks +%\definecolor{cream}{rgb}{1,1,.65} +\definecolor{cream}{rgb}{1,1,.8} +\setbeamerfont{block title}{size=\normalsize} +\setbeamercolor{block title}{fg=black,bg=cream} +\setbeamercolor{block body}{fg=black,bg=cream} + +\setbeamertemplate{blocks}[rounded][shadow=true] + +\setbeamercolor{boxcolor}{fg=black,bg=cream} + +\mode + + + + + + + diff -r 17e6f46260bd -r f7c84bfa3cee styles/style.sty --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/styles/style.sty Mon Nov 10 11:04:33 2025 +0000 @@ -0,0 +1,61 @@ +\usepackage{xcolor} +%%\usepackage{fontspec} +\usepackage[sc]{mathpazo} +\usepackage{fontspec} +\setmainfont[Ligatures=TeX]{Palatino Linotype} +\usepackage{amssymb} +\usepackage{amsmath} +\definecolor{darkblue}{rgb}{0,0,0.6} +\usepackage[colorlinks=true,urlcolor=darkblue,linkcolor=darkblue]{hyperref} +\usepackage{marginnote} +\usepackage{fontawesome5} + +%% does not work after the last upgrade +%%\usepackage{menukeys} + +%%% for regular expressions and values +\newcommand{\ZERO}{\mbox{\bf 0}} +\newcommand{\ONE}{\mbox{\bf 1}} +\newcommand{\Left}{\textit{Left}} +\newcommand{\Der}{\textit{Der}} +\newcommand{\der}{\textit{der}} +\newcommand{\Ders}{\textit{Ders}} +\newcommand{\ders}{\textit{ders}} + +%%% for trees +%% http://anorien.csc.warwick.ac.uk/mirrors/CTAN/graphics/pgf/contrib/forest/forest.pdf + + +%%% url pointers +\newcommand{\hv}[1]{\href{#1}{\faFilm}} +\newcommand{\hr}[1]{\href{#1}{\faHandPointRight[regular]}} +\newcommand{\here}[1]{\marginnote{\href{#1}{\faHandPointRight[regular]}}} +\newcommand{\video}[1]{\marginnote{\href{#1}{\faFilm}}} +\newcommand{\alert}{\reversemarginpar\marginpar{\mbox{}\hfill\textcolor{red}{\faExclamationTriangle}}} + +\newcommand{\dn}{\stackrel{\mbox{\scriptsize def}}{=}} +\newcommand{\defn}[1]{\textit{\textbf{#1}}} +\newcommand{\dq}[1]{\mbox{\tt{"}}#1\mbox{\tt{"}}} + +\definecolor{codegray}{gray}{0.9} + +\makeatletter +\def\fnote{\gdef\@thefnmark{}\@footnotetext} +\makeatother + +% CW deadlines +\def\cwSIX{20 November} +\def\cwSIXa{15 January} + +\def\cwSEVEN{27 November} +\def\cwSEVENa{15 January} + +\def\cwEIGHT{4 December} +\def\cwEIGHTa{15 January} + +\def\cwNINE{11 December} +\def\cwNINEa{15 January} + +\def\cwTEN{15 January} +\def\cwTENa{15 January} +