aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2013-02-26 16:35:05 +0100
committerJakob Odersky <jodersky@gmail.com>2013-02-26 16:35:05 +0100
commitac31762b462f37d49999daae8dba7763d8d870b3 (patch)
treed0866e11315650b583ce840df2170468db565e1a
parente15a7e1267a6f733d734c5d3b59f3acc28bb4b29 (diff)
downloadace-ac31762b462f37d49999daae8dba7763d8d870b3.tar.gz
ace-ac31762b462f37d49999daae8dba7763d8d870b3.tar.bz2
ace-ac31762b462f37d49999daae8dba7763d8d870b3.zip
write specification
-rw-r--r--specification/.gitignore1
-rw-r--r--specification/latex/.gitignore5
-rw-r--r--specification/latex/specification.aux18
-rw-r--r--specification/latex/specification.log656
-rw-r--r--specification/latex/specification.pdfbin60846 -> 157405 bytes
-rw-r--r--specification/latex/specification.tex130
-rw-r--r--specification/latex/specification.toc1
7 files changed, 122 insertions, 689 deletions
diff --git a/specification/.gitignore b/specification/.gitignore
deleted file mode 100644
index b25c15b..0000000
--- a/specification/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-*~
diff --git a/specification/latex/.gitignore b/specification/latex/.gitignore
new file mode 100644
index 0000000..0a586be
--- /dev/null
+++ b/specification/latex/.gitignore
@@ -0,0 +1,5 @@
+*~
+*.log
+*.backup
+*.aux
+*.toc
diff --git a/specification/latex/specification.aux b/specification/latex/specification.aux
deleted file mode 100644
index e6173fd..0000000
--- a/specification/latex/specification.aux
+++ /dev/null
@@ -1,18 +0,0 @@
-\relax
-\ifx\hyper@anchor\@undefined
-\global \let \oldcontentsline\contentsline
-\gdef \contentsline#1#2#3#4{\oldcontentsline{#1}{#2}{#3}}
-\global \let \oldnewlabel\newlabel
-\gdef \newlabel#1#2{\newlabelxx{#1}#2}
-\gdef \newlabelxx#1#2#3#4#5#6{\oldnewlabel{#1}{{#2}{#3}}}
-\AtEndDocument{\let \contentsline\oldcontentsline
-\let \newlabel\oldnewlabel}
-\else
-\global \let \hyper@last\relax
-\fi
-
-\select@language{english}
-\@writefile{toc}{\select@language{english}}
-\@writefile{lof}{\select@language{english}}
-\@writefile{lot}{\select@language{english}}
-\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces A frame in RSSP}}{2}{figure.1}}
diff --git a/specification/latex/specification.log b/specification/latex/specification.log
deleted file mode 100644
index 3747726..0000000
--- a/specification/latex/specification.log
+++ /dev/null
@@ -1,656 +0,0 @@
-This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009/Debian) (format=pdflatex 2012.4.28) 27 JAN 2013 17:18
-entering extended mode
- %&-line parsing enabled.
-**specification.tex
-(./specification.tex
-LaTeX2e <2009/09/24>
-Babel <v3.8l> and hyphenation patterns for english, usenglishmax, dumylang, noh
-yphenation, loaded.
-(/usr/share/texmf-texlive/tex/latex/base/article.cls
-Document Class: article 2007/10/19 v1.4h Standard LaTeX document class
-(/usr/share/texmf-texlive/tex/latex/base/size10.clo
-File: size10.clo 2007/10/19 v1.4h Standard LaTeX file (size option)
-)
-\c@part=\count79
-\c@section=\count80
-\c@subsection=\count81
-\c@subsubsection=\count82
-\c@paragraph=\count83
-\c@subparagraph=\count84
-\c@figure=\count85
-\c@table=\count86
-\abovecaptionskip=\skip41
-\belowcaptionskip=\skip42
-\bibindent=\dimen102
-)
-(/usr/share/texmf-texlive/tex/latex/base/inputenc.sty
-Package: inputenc 2008/03/30 v1.1d Input encoding file
-\inpenc@prehook=\toks14
-\inpenc@posthook=\toks15
-
-(/usr/share/texmf-texlive/tex/latex/base/utf8.def
-File: utf8.def 2008/04/05 v1.1m UTF-8 support for inputenc
-Now handling font encoding OML ...
-... no UTF-8 mapping file for font encoding OML
-Now handling font encoding T1 ...
-... processing UTF-8 mapping file for font encoding T1
-
-(/usr/share/texmf-texlive/tex/latex/base/t1enc.dfu
-File: t1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
- defining Unicode char U+00A1 (decimal 161)
- defining Unicode char U+00A3 (decimal 163)
- defining Unicode char U+00AB (decimal 171)
- defining Unicode char U+00BB (decimal 187)
- defining Unicode char U+00BF (decimal 191)
- defining Unicode char U+00C0 (decimal 192)
- defining Unicode char U+00C1 (decimal 193)
- defining Unicode char U+00C2 (decimal 194)
- defining Unicode char U+00C3 (decimal 195)
- defining Unicode char U+00C4 (decimal 196)
- defining Unicode char U+00C5 (decimal 197)
- defining Unicode char U+00C6 (decimal 198)
- defining Unicode char U+00C7 (decimal 199)
- defining Unicode char U+00C8 (decimal 200)
- defining Unicode char U+00C9 (decimal 201)
- defining Unicode char U+00CA (decimal 202)
- defining Unicode char U+00CB (decimal 203)
- defining Unicode char U+00CC (decimal 204)
- defining Unicode char U+00CD (decimal 205)
- defining Unicode char U+00CE (decimal 206)
- defining Unicode char U+00CF (decimal 207)
- defining Unicode char U+00D0 (decimal 208)
- defining Unicode char U+00D1 (decimal 209)
- defining Unicode char U+00D2 (decimal 210)
- defining Unicode char U+00D3 (decimal 211)
- defining Unicode char U+00D4 (decimal 212)
- defining Unicode char U+00D5 (decimal 213)
- defining Unicode char U+00D6 (decimal 214)
- defining Unicode char U+00D8 (decimal 216)
- defining Unicode char U+00D9 (decimal 217)
- defining Unicode char U+00DA (decimal 218)
- defining Unicode char U+00DB (decimal 219)
- defining Unicode char U+00DC (decimal 220)
- defining Unicode char U+00DD (decimal 221)
- defining Unicode char U+00DE (decimal 222)
- defining Unicode char U+00DF (decimal 223)
- defining Unicode char U+00E0 (decimal 224)
- defining Unicode char U+00E1 (decimal 225)
- defining Unicode char U+00E2 (decimal 226)
- defining Unicode char U+00E3 (decimal 227)
- defining Unicode char U+00E4 (decimal 228)
- defining Unicode char U+00E5 (decimal 229)
- defining Unicode char U+00E6 (decimal 230)
- defining Unicode char U+00E7 (decimal 231)
- defining Unicode char U+00E8 (decimal 232)
- defining Unicode char U+00E9 (decimal 233)
- defining Unicode char U+00EA (decimal 234)
- defining Unicode char U+00EB (decimal 235)
- defining Unicode char U+00EC (decimal 236)
- defining Unicode char U+00ED (decimal 237)
- defining Unicode char U+00EE (decimal 238)
- defining Unicode char U+00EF (decimal 239)
- defining Unicode char U+00F0 (decimal 240)
- defining Unicode char U+00F1 (decimal 241)
- defining Unicode char U+00F2 (decimal 242)
- defining Unicode char U+00F3 (decimal 243)
- defining Unicode char U+00F4 (decimal 244)
- defining Unicode char U+00F5 (decimal 245)
- defining Unicode char U+00F6 (decimal 246)
- defining Unicode char U+00F8 (decimal 248)
- defining Unicode char U+00F9 (decimal 249)
- defining Unicode char U+00FA (decimal 250)
- defining Unicode char U+00FB (decimal 251)
- defining Unicode char U+00FC (decimal 252)
- defining Unicode char U+00FD (decimal 253)
- defining Unicode char U+00FE (decimal 254)
- defining Unicode char U+00FF (decimal 255)
- defining Unicode char U+0102 (decimal 258)
- defining Unicode char U+0103 (decimal 259)
- defining Unicode char U+0104 (decimal 260)
- defining Unicode char U+0105 (decimal 261)
- defining Unicode char U+0106 (decimal 262)
- defining Unicode char U+0107 (decimal 263)
- defining Unicode char U+010C (decimal 268)
- defining Unicode char U+010D (decimal 269)
- defining Unicode char U+010E (decimal 270)
- defining Unicode char U+010F (decimal 271)
- defining Unicode char U+0110 (decimal 272)
- defining Unicode char U+0111 (decimal 273)
- defining Unicode char U+0118 (decimal 280)
- defining Unicode char U+0119 (decimal 281)
- defining Unicode char U+011A (decimal 282)
- defining Unicode char U+011B (decimal 283)
- defining Unicode char U+011E (decimal 286)
- defining Unicode char U+011F (decimal 287)
- defining Unicode char U+0130 (decimal 304)
- defining Unicode char U+0131 (decimal 305)
- defining Unicode char U+0132 (decimal 306)
- defining Unicode char U+0133 (decimal 307)
- defining Unicode char U+0139 (decimal 313)
- defining Unicode char U+013A (decimal 314)
- defining Unicode char U+013D (decimal 317)
- defining Unicode char U+013E (decimal 318)
- defining Unicode char U+0141 (decimal 321)
- defining Unicode char U+0142 (decimal 322)
- defining Unicode char U+0143 (decimal 323)
- defining Unicode char U+0144 (decimal 324)
- defining Unicode char U+0147 (decimal 327)
- defining Unicode char U+0148 (decimal 328)
- defining Unicode char U+014A (decimal 330)
- defining Unicode char U+014B (decimal 331)
- defining Unicode char U+0150 (decimal 336)
- defining Unicode char U+0151 (decimal 337)
- defining Unicode char U+0152 (decimal 338)
- defining Unicode char U+0153 (decimal 339)
- defining Unicode char U+0154 (decimal 340)
- defining Unicode char U+0155 (decimal 341)
- defining Unicode char U+0158 (decimal 344)
- defining Unicode char U+0159 (decimal 345)
- defining Unicode char U+015A (decimal 346)
- defining Unicode char U+015B (decimal 347)
- defining Unicode char U+015E (decimal 350)
- defining Unicode char U+015F (decimal 351)
- defining Unicode char U+0160 (decimal 352)
- defining Unicode char U+0161 (decimal 353)
- defining Unicode char U+0162 (decimal 354)
- defining Unicode char U+0163 (decimal 355)
- defining Unicode char U+0164 (decimal 356)
- defining Unicode char U+0165 (decimal 357)
- defining Unicode char U+016E (decimal 366)
- defining Unicode char U+016F (decimal 367)
- defining Unicode char U+0170 (decimal 368)
- defining Unicode char U+0171 (decimal 369)
- defining Unicode char U+0178 (decimal 376)
- defining Unicode char U+0179 (decimal 377)
- defining Unicode char U+017A (decimal 378)
- defining Unicode char U+017B (decimal 379)
- defining Unicode char U+017C (decimal 380)
- defining Unicode char U+017D (decimal 381)
- defining Unicode char U+017E (decimal 382)
- defining Unicode char U+200C (decimal 8204)
- defining Unicode char U+2013 (decimal 8211)
- defining Unicode char U+2014 (decimal 8212)
- defining Unicode char U+2018 (decimal 8216)
- defining Unicode char U+2019 (decimal 8217)
- defining Unicode char U+201A (decimal 8218)
- defining Unicode char U+201C (decimal 8220)
- defining Unicode char U+201D (decimal 8221)
- defining Unicode char U+201E (decimal 8222)
- defining Unicode char U+2030 (decimal 8240)
- defining Unicode char U+2031 (decimal 8241)
- defining Unicode char U+2039 (decimal 8249)
- defining Unicode char U+203A (decimal 8250)
- defining Unicode char U+2423 (decimal 9251)
-)
-Now handling font encoding OT1 ...
-... processing UTF-8 mapping file for font encoding OT1
-
-(/usr/share/texmf-texlive/tex/latex/base/ot1enc.dfu
-File: ot1enc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
- defining Unicode char U+00A1 (decimal 161)
- defining Unicode char U+00A3 (decimal 163)
- defining Unicode char U+00B8 (decimal 184)
- defining Unicode char U+00BF (decimal 191)
- defining Unicode char U+00C5 (decimal 197)
- defining Unicode char U+00C6 (decimal 198)
- defining Unicode char U+00D8 (decimal 216)
- defining Unicode char U+00DF (decimal 223)
- defining Unicode char U+00E6 (decimal 230)
- defining Unicode char U+00EC (decimal 236)
- defining Unicode char U+00ED (decimal 237)
- defining Unicode char U+00EE (decimal 238)
- defining Unicode char U+00EF (decimal 239)
- defining Unicode char U+00F8 (decimal 248)
- defining Unicode char U+0131 (decimal 305)
- defining Unicode char U+0141 (decimal 321)
- defining Unicode char U+0142 (decimal 322)
- defining Unicode char U+0152 (decimal 338)
- defining Unicode char U+0153 (decimal 339)
- defining Unicode char U+2013 (decimal 8211)
- defining Unicode char U+2014 (decimal 8212)
- defining Unicode char U+2018 (decimal 8216)
- defining Unicode char U+2019 (decimal 8217)
- defining Unicode char U+201C (decimal 8220)
- defining Unicode char U+201D (decimal 8221)
-)
-Now handling font encoding OMS ...
-... processing UTF-8 mapping file for font encoding OMS
-
-(/usr/share/texmf-texlive/tex/latex/base/omsenc.dfu
-File: omsenc.dfu 2008/04/05 v1.1m UTF-8 support for inputenc
- defining Unicode char U+00A7 (decimal 167)
- defining Unicode char U+00B6 (decimal 182)
- defining Unicode char U+00B7 (decimal 183)
- defining Unicode char U+2020 (decimal 8224)
- defining Unicode char U+2021 (decimal 8225)
- defining Unicode char U+2022 (decimal 8226)
-)
-Now handling font encoding OMX ...
-... no UTF-8 mapping file for font encoding OMX
-Now handling font encoding U ...
-... no UTF-8 mapping file for font encoding U
- defining Unicode char U+00A9 (decimal 169)
- defining Unicode char U+00AA (decimal 170)
- defining Unicode char U+00AE (decimal 174)
- defining Unicode char U+00BA (decimal 186)
- defining Unicode char U+02C6 (decimal 710)
- defining Unicode char U+02DC (decimal 732)
- defining Unicode char U+200C (decimal 8204)
- defining Unicode char U+2026 (decimal 8230)
- defining Unicode char U+2122 (decimal 8482)
- defining Unicode char U+2423 (decimal 9251)
-))
-(/usr/share/texmf-texlive/tex/generic/babel/babel.sty
-Package: babel 2008/07/06 v3.8l The Babel package
-
-(/usr/share/texmf-texlive/tex/generic/babel/english.ldf
-Language: english 2005/03/30 v3.3o English support from the babel system
-
-(/usr/share/texmf-texlive/tex/generic/babel/babel.def
-File: babel.def 2008/07/06 v3.8l Babel common definitions
-\babel@savecnt=\count87
-\U@D=\dimen103
-)
-\l@british = a dialect from \language\l@english
-\l@UKenglish = a dialect from \language\l@english
-\l@canadian = a dialect from \language\l@american
-\l@australian = a dialect from \language\l@british
-\l@newzealand = a dialect from \language\l@british
-))
-(/usr/share/texmf-texlive/tex/latex/graphics/graphicx.sty
-Package: graphicx 1999/02/16 v1.0f Enhanced LaTeX Graphics (DPC,SPQR)
-
-(/usr/share/texmf-texlive/tex/latex/graphics/keyval.sty
-Package: keyval 1999/03/16 v1.13 key=value parser (DPC)
-\KV@toks@=\toks16
-)
-(/usr/share/texmf-texlive/tex/latex/graphics/graphics.sty
-Package: graphics 2009/02/05 v1.0o Standard LaTeX Graphics (DPC,SPQR)
-
-(/usr/share/texmf-texlive/tex/latex/graphics/trig.sty
-Package: trig 1999/03/16 v1.09 sin cos tan (DPC)
-)
-(/etc/texmf/tex/latex/config/graphics.cfg
-File: graphics.cfg 2009/08/28 v1.8 graphics configuration of TeX Live
-)
-Package graphics Info: Driver file: pdftex.def on input line 91.
-
-(/usr/share/texmf-texlive/tex/latex/pdftex-def/pdftex.def
-File: pdftex.def 2010/03/12 v0.04p Graphics/color for pdfTeX
-\Gread@gobject=\count88
-))
-\Gin@req@height=\dimen104
-\Gin@req@width=\dimen105
-)
-(/usr/share/texmf-texlive/tex/latex/subfigure/subfigure.sty
-Package: subfigure 2002/03/15 v2.1.5 subfigure package
-\subfigtopskip=\skip43
-\subfigcapskip=\skip44
-\subfigcaptopadj=\dimen106
-\subfigbottomskip=\skip45
-\subfigcapmargin=\dimen107
-\subfiglabelskip=\skip46
-\c@subfigure=\count89
-\c@lofdepth=\count90
-\c@subtable=\count91
-\c@lotdepth=\count92
-
-****************************************
-* Local config file subfigure.cfg used *
-****************************************
-(/usr/share/texmf-texlive/tex/latex/subfigure/subfigure.cfg)
-\subfig@top=\skip47
-\subfig@bottom=\skip48
-)
-(/usr/share/texmf-texlive/tex/latex/rotating/rotating.sty
-Package: rotating 2009/03/28 v2.16a rotated objects in LaTeX
-
-(/usr/share/texmf-texlive/tex/latex/base/ifthen.sty
-Package: ifthen 2001/05/26 v1.1c Standard LaTeX ifthen package (DPC)
-)
-\c@r@tfl@t=\count93
-\rotFPtop=\skip49
-\rotFPbot=\skip50
-\rot@float@box=\box26
-\rot@mess@toks=\toks17
-)
-(/usr/share/texmf-texlive/tex/latex/ctable/ctable.sty
-Package: ctable 2009/09/17 v1.15 ctable package
-
-(/usr/share/texmf-texlive/tex/latex/graphics/color.sty
-Package: color 2005/11/14 v1.0j Standard LaTeX Color (DPC)
-
-(/etc/texmf/tex/latex/config/color.cfg
-File: color.cfg 2007/01/18 v1.5 color configuration of teTeX/TeXLive
-)
-Package color Info: Driver file: pdftex.def on input line 130.
-)
-(/usr/share/texmf-texlive/tex/latex/xkeyval/xkeyval.sty
-Package: xkeyval 2008/08/13 v2.6a package option processing (HA)
-
-(/usr/share/texmf-texlive/tex/generic/xkeyval/xkeyval.tex
-\XKV@toks=\toks18
-\XKV@tempa@toks=\toks19
-\XKV@depth=\count94
-File: xkeyval.tex 2008/08/13 v2.6a key=value parser (HA)
-))
-(/usr/share/texmf-texlive/tex/latex/tools/array.sty
-Package: array 2008/09/09 v2.4c Tabular extension package (FMi)
-\col@sep=\dimen108
-\extrarowheight=\dimen109
-\NC@list=\toks20
-\extratabsurround=\skip51
-\backup@length=\skip52
-)
-(/usr/share/texmf-texlive/tex/latex/tools/tabularx.sty
-Package: tabularx 1999/01/07 v2.07 `tabularx' package (DPC)
-\TX@col@width=\dimen110
-\TX@old@table=\dimen111
-\TX@old@col=\dimen112
-\TX@target=\dimen113
-\TX@delta=\dimen114
-\TX@cols=\count95
-\TX@ftn=\toks21
-)
-(/usr/share/texmf-texlive/tex/latex/booktabs/booktabs.sty
-Package: booktabs 2005/04/14 v1.61803 publication quality tables
-\heavyrulewidth=\dimen115
-\lightrulewidth=\dimen116
-\cmidrulewidth=\dimen117
-\belowrulesep=\dimen118
-\belowbottomsep=\dimen119
-\aboverulesep=\dimen120
-\abovetopsep=\dimen121
-\cmidrulesep=\dimen122
-\cmidrulekern=\dimen123
-\defaultaddspace=\dimen124
-\@cmidla=\count96
-\@cmidlb=\count97
-\@aboverulesep=\dimen125
-\@belowrulesep=\dimen126
-\@thisruleclass=\count98
-\@lastruleclass=\count99
-\@thisrulewidth=\dimen127
-)
-\@ctblframesep=\dimen128
-\@ctblframerule=\dimen129
-\@ctblwidth=\dimen130
-\@ctblcaptionskip=\dimen131
-\@ctblmaxwidth=\dimen132
-\@ctblmincapwidth=\dimen133
-\@ctblw=\dimen134
-\@ctblfloatwidth=\dimen135
-\@ctbloldsep=\dimen136
-\@ctbloldrule=\dimen137
-\ctbl@t=\box27
-)
-(/usr/share/texmf-texlive/tex/latex/multirow/multirow.sty
-\bigstrutjot=\dimen138
-)
-(/usr/share/texmf-texlive/tex/latex/makecell/makecell.sty
-Package: makecell 2009/08/03 V0.1e Managing of Tab Column Heads and Cells
-\rotheadsize=\dimen139
-\c@nlinenum=\count100
-\TeXr@lab=\toks22
-)
-(/usr/share/texmf-texlive/tex/latex/amsmath/amsmath.sty
-Package: amsmath 2000/07/18 v2.13 AMS math features
-\@mathmargin=\skip53
-
-For additional information on amsmath, use the `?' option.
-(/usr/share/texmf-texlive/tex/latex/amsmath/amstext.sty
-Package: amstext 2000/06/29 v2.01
-
-(/usr/share/texmf-texlive/tex/latex/amsmath/amsgen.sty
-File: amsgen.sty 1999/11/30 v2.0
-\@emptytoks=\toks23
-\ex@=\dimen140
-))
-(/usr/share/texmf-texlive/tex/latex/amsmath/amsbsy.sty
-Package: amsbsy 1999/11/29 v1.2d
-\pmbraise@=\dimen141
-)
-(/usr/share/texmf-texlive/tex/latex/amsmath/amsopn.sty
-Package: amsopn 1999/12/14 v2.01 operator names
-)
-\inf@bad=\count101
-LaTeX Info: Redefining \frac on input line 211.
-\uproot@=\count102
-\leftroot@=\count103
-LaTeX Info: Redefining \overline on input line 307.
-\classnum@=\count104
-\DOTSCASE@=\count105
-LaTeX Info: Redefining \ldots on input line 379.
-LaTeX Info: Redefining \dots on input line 382.
-LaTeX Info: Redefining \cdots on input line 467.
-\Mathstrutbox@=\box28
-\strutbox@=\box29
-\big@size=\dimen142
-LaTeX Font Info: Redeclaring font encoding OML on input line 567.
-LaTeX Font Info: Redeclaring font encoding OMS on input line 568.
-\macc@depth=\count106
-\c@MaxMatrixCols=\count107
-\dotsspace@=\muskip10
-\c@parentequation=\count108
-\dspbrk@lvl=\count109
-\tag@help=\toks24
-\row@=\count110
-\column@=\count111
-\maxfields@=\count112
-\andhelp@=\toks25
-\eqnshift@=\dimen143
-\alignsep@=\dimen144
-\tagshift@=\dimen145
-\tagwidth@=\dimen146
-\totwidth@=\dimen147
-\lineht@=\dimen148
-\@envbody=\toks26
-\multlinegap=\skip54
-\multlinetaggap=\skip55
-\mathdisplay@stack=\toks27
-LaTeX Info: Redefining \[ on input line 2666.
-LaTeX Info: Redefining \] on input line 2667.
-)
-(/usr/share/texmf-texlive/tex/latex/amsfonts/amssymb.sty
-Package: amssymb 2009/06/22 v3.00
-
-(/usr/share/texmf-texlive/tex/latex/amsfonts/amsfonts.sty
-Package: amsfonts 2009/06/22 v3.00 Basic AMSFonts support
-\symAMSa=\mathgroup4
-\symAMSb=\mathgroup5
-LaTeX Font Info: Overwriting math alphabet `\mathfrak' in version `bold'
-(Font) U/euf/m/n --> U/euf/b/n on input line 96.
-))
-(/usr/share/texmf-texlive/tex/latex/hyperref/hyperref.sty
-Package: hyperref 2009/10/09 v6.79a Hypertext links for LaTeX
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/ifpdf.sty
-Package: ifpdf 2009/04/10 v2.0 Provides the ifpdf switch (HO)
-Package ifpdf Info: pdfTeX in pdf mode detected.
-)
-(/usr/share/texmf-texlive/tex/generic/oberdiek/ifvtex.sty
-Package: ifvtex 2008/11/04 v1.4 Switches for detecting VTeX and its modes (HO)
-Package ifvtex Info: VTeX not detected.
-)
-(/usr/share/texmf-texlive/tex/generic/ifxetex/ifxetex.sty
-Package: ifxetex 2009/01/23 v0.5 Provides ifxetex conditional
-)
-(/usr/share/texmf-texlive/tex/latex/oberdiek/hycolor.sty
-Package: hycolor 2009/10/02 v1.5 Code for color options of hyperref/bookmark (H
-O)
-
-(/usr/share/texmf-texlive/tex/latex/oberdiek/xcolor-patch.sty
-Package: xcolor-patch 2009/10/02 xcolor patch
-))
-\@linkdim=\dimen149
-\Hy@linkcounter=\count113
-\Hy@pagecounter=\count114
-
-(/usr/share/texmf-texlive/tex/latex/hyperref/pd1enc.def
-File: pd1enc.def 2009/10/09 v6.79a Hyperref: PDFDocEncoding definition (HO)
-Now handling font encoding PD1 ...
-... no UTF-8 mapping file for font encoding PD1
-)
-(/usr/share/texmf-texlive/tex/generic/oberdiek/etexcmds.sty
-Package: etexcmds 2007/12/12 v1.2 Prefix for e-TeX command names (HO)
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/infwarerr.sty
-Package: infwarerr 2007/09/09 v1.2 Providing info/warning/message (HO)
-)
-Package etexcmds Info: Could not find \expanded.
-(etexcmds) That can mean that you are not using pdfTeX 1.50 or
-(etexcmds) that some package has redefined \expanded.
-(etexcmds) In the latter case, load this package earlier.
-)
-(/usr/share/texmf-texlive/tex/latex/latexconfig/hyperref.cfg
-File: hyperref.cfg 2002/06/06 v1.2 hyperref configuration of TeXLive
-)
-(/usr/share/texmf-texlive/tex/latex/oberdiek/kvoptions.sty
-Package: kvoptions 2009/08/13 v3.4 Keyval support for LaTeX options (HO)
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/kvsetkeys.sty
-Package: kvsetkeys 2009/07/30 v1.5 Key value parser with default handler suppor
-t (HO)
-))
-Package hyperref Info: Option `colorlinks' set `true' on input line 2864.
-Package hyperref Info: Option `bookmarks' set `false' on input line 2864.
-Package hyperref Info: Hyper figures OFF on input line 2975.
-Package hyperref Info: Link nesting OFF on input line 2980.
-Package hyperref Info: Hyper index ON on input line 2983.
-Package hyperref Info: Plain pages OFF on input line 2990.
-Package hyperref Info: Backreferencing OFF on input line 2995.
-
-Implicit mode ON; LaTeX internals redefined
-Package hyperref Info: Bookmarks OFF on input line 3197.
-(/usr/share/texmf-texlive/tex/latex/ltxmisc/url.sty
-\Urlmuskip=\muskip11
-Package: url 2006/04/12 ver 3.3 Verb mode for urls, etc.
-)
-LaTeX Info: Redefining \url on input line 3428.
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/bitset.sty
-Package: bitset 2007/09/28 v1.0 Data type bit set (HO)
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/intcalc.sty
-Package: intcalc 2007/09/27 v1.1 Expandable integer calculations (HO)
-)
-(/usr/share/texmf-texlive/tex/generic/oberdiek/bigintcalc.sty
-Package: bigintcalc 2007/11/11 v1.1 Expandable big integer calculations (HO)
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/pdftexcmds.sty
-Package: pdftexcmds 2009/09/23 v0.6 LuaTeX support for pdfTeX utility functions
- (HO)
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/ifluatex.sty
-Package: ifluatex 2009/04/17 v1.2 Provides the ifluatex switch (HO)
-Package ifluatex Info: LuaTeX not detected.
-)
-(/usr/share/texmf-texlive/tex/generic/oberdiek/ltxcmds.sty
-Package: ltxcmds 2009/08/05 v1.0 Some LaTeX kernel commands for general use (HO
-)
-)
-Package pdftexcmds Info: LuaTeX not detected.
-Package pdftexcmds Info: \pdf@primitive is available.
-Package pdftexcmds Info: \pdf@ifprimitive is available.
-)))
-\Fld@menulength=\count115
-\Field@Width=\dimen150
-\Fld@charsize=\dimen151
-\Field@toks=\toks28
-Package hyperref Info: Hyper figures OFF on input line 4377.
-Package hyperref Info: Link nesting OFF on input line 4382.
-Package hyperref Info: Hyper index ON on input line 4385.
-Package hyperref Info: backreferencing OFF on input line 4392.
-Package hyperref Info: Link coloring ON on input line 4395.
-Package hyperref Info: Link coloring with OCG OFF on input line 4402.
-Package hyperref Info: PDF/A mode OFF on input line 4407.
-
-(/usr/share/texmf-texlive/tex/generic/oberdiek/atbegshi.sty
-Package: atbegshi 2008/07/31 v1.9 At begin shipout hook (HO)
-)
-\Hy@abspage=\count116
-\c@Item=\count117
-)
-*hyperref using default driver hpdftex*
-(/usr/share/texmf-texlive/tex/latex/hyperref/hpdftex.def
-File: hpdftex.def 2009/10/09 v6.79a Hyperref driver for pdfTeX
-\Fld@listcount=\count118
-) (./specification.aux)
-\openout1 = `specification.aux'.
-
-LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 73.
-LaTeX Font Info: ... okay on input line 73.
-LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 73.
-LaTeX Font Info: ... okay on input line 73.
-LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 73.
-LaTeX Font Info: ... okay on input line 73.
-LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 73.
-LaTeX Font Info: ... okay on input line 73.
-LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 73.
-LaTeX Font Info: ... okay on input line 73.
-LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 73.
-LaTeX Font Info: ... okay on input line 73.
-LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 73.
-LaTeX Font Info: ... okay on input line 73.
-(/usr/share/texmf-texlive/tex/context/base/supp-pdf.mkii
-[Loading MPS to PDF converter (version 2006.09.02).]
-\scratchcounter=\count119
-\scratchdimen=\dimen152
-\scratchbox=\box30
-\nofMPsegments=\count120
-\nofMParguments=\count121
-\everyMPshowfont=\toks29
-\MPscratchCnt=\count122
-\MPscratchDim=\dimen153
-\MPnumerator=\count123
-\everyMPtoPDFconversion=\toks30
-)
-Package hyperref Info: Link coloring ON on input line 73.
- (/usr/share/texmf-texlive/tex/latex/hyperref/nameref.sty
-Package: nameref 2007/05/29 v2.31 Cross-referencing by name of section
-
-(/usr/share/texmf-texlive/tex/latex/oberdiek/refcount.sty
-Package: refcount 2008/08/11 v3.1 Data extraction from references (HO)
-)
-\c@section@level=\count124
-)
-LaTeX Info: Redefining \ref on input line 73.
-LaTeX Info: Redefining \pageref on input line 73.
-\AtBeginShipoutBox=\box31
-LaTeX Font Info: Try loading font information for U+msa on input line 75.
-
-(/usr/share/texmf-texlive/tex/latex/amsfonts/umsa.fd
-File: umsa.fd 2009/06/22 v3.00 AMS symbols A
-)
-LaTeX Font Info: Try loading font information for U+msb on input line 75.
-
-(/usr/share/texmf-texlive/tex/latex/amsfonts/umsb.fd
-File: umsb.fd 2009/06/22 v3.00 AMS symbols B
-) (./specification.toc)
-\tf@toc=\write3
-\openout3 = `specification.toc'.
-
-
-[1
-
-{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}] [2] (./specification.aux)
-)
-Here is how much of TeX's memory you used:
- 6376 strings out of 495061
- 86385 string characters out of 1182621
- 158016 words of memory out of 3000000
- 9414 multiletter control sequences out of 15000+50000
- 11187 words of font info for 44 fonts, out of 3000000 for 9000
- 28 hyphenation exceptions out of 8191
- 38i,8n,34p,304b,311s stack positions out of 5000i,500n,10000p,200000b,50000s
-</usr/share/texmf-texlive/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/shar
-e/texmf-texlive/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texmf-texl
-ive/fonts/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texmf-texlive/fonts/ty
-pe1/public/amsfonts/cm/cmr17.pfb></usr/share/texmf-texlive/fonts/type1/public/a
-msfonts/cm/cmr9.pfb>
-Output written on specification.pdf (2 pages, 60846 bytes).
-PDF statistics:
- 38 PDF objects out of 1000 (max. 8388607)
- 5 named destinations out of 1000 (max. 500000)
- 1 words of extra memory for PDF output out of 10000 (max. 10000000)
-
diff --git a/specification/latex/specification.pdf b/specification/latex/specification.pdf
index f0591a3..ff939f3 100644
--- a/specification/latex/specification.pdf
+++ b/specification/latex/specification.pdf
Binary files differ
diff --git a/specification/latex/specification.tex b/specification/latex/specification.tex
index db261c7..3e6a61b 100644
--- a/specification/latex/specification.tex
+++ b/specification/latex/specification.tex
@@ -20,6 +20,9 @@
\usepackage{ctable}
\usepackage{multirow}
\usepackage{makecell}
+ \usepackage{tabularx}
+ \usepackage{listings}
+
% ** equations **
\usepackage{amsmath,amssymb,amsfonts}
@@ -63,9 +66,9 @@
% ** Title, author *****************************************************
-\title{A Reactive Secure Serial Protocol}
+\title{Arduino Communication protocol, Ensured (ACE)\\Specification}
\date{\today}
-\author{Jakob Odersky\\{\small \mail{jodersky@gmail.com}}}
+\author{Jakob Odersky}
\setcounter{tocdepth}{2}
@@ -73,24 +76,125 @@
\begin{document}
\maketitle
-\tableofcontents
\pagestyle{plain}
-\newpage
-\begin{figure}
-\begin{centering}
+\section{Introduction \& Purpose}
+The purpose of the Arduino Communication protocol, Ensured (ACE) is to provide reliable and reactive communication between a micro controller and a computer (or two micro controllers). The main features of the protocol are reliability, in a sense that the communicating parties know if a sent message was received or not, and reactivity, i.e. the main program loop is not blocked whilst waiting for a message response.
+
+Compared to the OSI model, ACE is a data-link layer protocol.
+
+\section{Functional Overview}
+The operation of ACE may be divided into two parts: data framing and automatic repeat request. Data framing is the action of ``packaging'' a sequence of data bytes so that it may be sent as a whole over a physical channel. A checksum sent in the frame ensures that if an error occurred during transmission it is very likely to be detected and the whole frame rejected.
+
+However, if such an error occurs, the sender has no way of knowing it and the sent data will be lost. To remedy this kind of situation, ACE uses a form of automatic repeat request mechanism.
+
+See the following sections on details of these two parts.
+
+\section{Framing}
+As to ensure reliability, data is always sent in frames containing a checksum. A frame is composed of: a header consisting of one start byte, followed by an arbitrary amount of data bytes\footnote{limits are implementation specific}, followed by a trailer consisting of one checksum byte and one stop byte. The checksum is calculated by taking the exclusive or of all data bytes. Furthermore, data and checksum bytes are escaped by a preceding escape byte. An overview of a data frame and the definition of special byte values are given in table \ref{tab:frame}.
+
+
+An invalid frame should be ignored by the receiver and no action taken.
-\begin{tabular}{|c|c|c|c|}\hline
-Header & Packet & Checksum & Trailer \\ \hline
-0x02 & & & 0x03
-\end{tabular}
+\begin{table}[ht]
+ \begin{tabular}{|l||c|c|c|c|} \hline
+ Structure & Header & Data & \multicolumn{2}{|c|}{Trailer} \\ \hline \hline
+ Detailed structure & start & data & checksum & stop \\ \hline
+ Length (bytes) & 1 & any (within limits of implementation) & 1 & 1 \\ \hline
+ Hexadecimal values & 0x02 & & XOR of all data bytes & 0x10 \\ \hline
+ \multicolumn{5}{l}{Escape byte value: 0x03.} \\
+ \end{tabular}
+
+ \caption{A data frame in ACE.}
+ \label{tab:frame}
+\end{table}
+\subsection{Example 1}
+As a first example, consider the message ``hello'' encoded in ASCII. Equivalently, this message may be represented as a sequence of bytes (in decimal representation): \begin{verbatim} 104 101 108 108 111 \end{verbatim}
+The checksum of this message is 98, therefore the corresponding data frame is:
+\begin{verbatim} 002 104 101 108 108 111 098 016 \end{verbatim}
+\subsection{Example 2}
+As a second example, consider the byte sequence:
+\begin{verbatim} 001 108 002 111 003 102 \end{verbatim}
+The values 002 and 003 are special bytes and therefore have to be escaped. Considering that the checksum is 101, the resulting frame is given by:
+\begin{verbatim} 002 001 108 003 002 111 003 003 102 101 016 \end{verbatim}
-\end{centering}
-\caption{A frame in RSSP}
-\end{figure}
+\section{Automatic Repeat Request (ARQ)}
+To remedy the loss of invalid frames, ACE uses a kind of stop-and-wait ARQ. After sending a frame, the sender waits for an acknowledgement of the receiver before transmitting a next frame. If no acknowledgement is received in a timeout delay, the message is retransmitted. If after retransmitting the message several times no acknowledgement has been received, the message is considered to have been lost and an error is generated at the sender side. Furthermore, if the sender whilst waiting for an acknowledgement, receives an acknowledgement for a different frame other than he had sent or receives a new data frame, the sent frame is considered to be lost and an error is generated on the sender side. Only if the correct acknowledgement is received the message may be considered successfully sent and an action may be taken.
+
+On the receiver side, if a frame is received, an acknowledgement to that frame is sent back and application specific action (to the message) is taken. If the same frame is received following the acknowledgement, it is considered that the sender did not receive the acknowledgement and the acknowledgement is retransmitted, this time without taking application specific action.
+
+To differentiate frames and to enable the distinction between acknowledgements and data frames, each message is preceded with a sequence byte and a command byte (in that order) before being sent as a frame.
+
+The sequence byte is used an identification number and is incremented for every new message (a new message is a message that has not been retransmitted). In case the message is an acknowledgement, the sequence number determines to what message the acknowledgement responds. In case of an overflow, the sequence number restarts at zero.
+
+The command byte determines if the message is data or an acknowledgement. Its value is 0x05 in case of data and 0x06 in case of an acknowledgement.
+
+For an example, see the C pseudo-code in appendix \ref{sec:example}.
+
+\section{Reactivity}
+The previous sections specified the ``reliability'' part of ACE. The second important part of the protocol is reactivity. Since the concept of reactivity is very broad and possible implementations vary greatly, the ACE specification does not give any concrete requirements. Implementations must however provide a way to notify applications that a message was successfully transferred or that an error occurred.
+
+\section{Conclusion}
+This document specifies the ACE protocol. The reference implementations in C and Scala are authoritative in case of any uncertainties or inconsistencies with this document.
+
+\newpage
+\appendix
+\section{Stop-and-wait ARQ, example implementation} \label{sec:example}
+\lstset{language=c}
+\begin{lstlisting}%[frame=single]
+
+#define DATA 0x05
+#define ACK 0x06
+
+void send(uint size, uint8_t* message) {
+ increment_seq_counter();
+ send_frame({seq, DATA, message});
+ awaiting_ack = true;
+ start_timer();
+}
+
+void receive(uint size, uint8_t* data) {
+ uint8_t seq = data[0];
+ uint8_t cmd = data[1];
+ uint8_t* message = &(data[2]);
+ int16_t message_size = size - 2;
+
+ if (!awaiting_ack) { //ready to receive
+ if (cmd == DATA) { //the message is data
+ if (last_received_seq != seq) { //the message was not already processed
+ last_received_seq = seq;
+ application_specific_action(); //process message
+ }
+ send_ack(seq); //send acknowledgement to the received frame
+ } else {
+ //ignore case in which an ack is received even though none is awaited
+ }
+
+ } else { //awaiting ack
+ awaiting_ack = false; //got something so stop waiting for ack
+ stop_timer(); //stop timeout
+
+ if (cmd == ACK && seq == last_sent_seq) { // the correct ack was returned
+ application_specific_action_send_success();
+ } else { // wrong ack or data received
+ error_bad_acknowledgement();
+ }
+ }
+}
+
+void timeout() {
+ if (resends > MAX_RESENDS) {
+ error_no_ackowledgement();
+ } else {
+ resends += 1;
+ restart_timer();
+ resend_message();
+ }
+}
+\end{lstlisting}
diff --git a/specification/latex/specification.toc b/specification/latex/specification.toc
deleted file mode 100644
index 556f38b..0000000
--- a/specification/latex/specification.toc
+++ /dev/null
@@ -1 +0,0 @@
-\select@language {english}