diff --git a/.vscode/settings.json b/.vscode/settings.json index 14391d5..9a8b793 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -66,5 +66,6 @@ "pages.h": "c", "jemalloc_malloc_pseudo_code": "c" }, - "C_Cpp.errorSquiggles": "disabled" + "C_Cpp.errorSquiggles": "disabled", + "cmake.sourceDirectory": "/Users/akilan/Documents/Cheri/Test/Reverse/CHERI-Allocator/benchmarks/benchmarks/larison" } \ No newline at end of file diff --git a/docs/EuroSys/.DS_Store b/docs/EuroSys/.DS_Store index e94f6da..49a01f0 100644 Binary files a/docs/EuroSys/.DS_Store and b/docs/EuroSys/.DS_Store differ diff --git a/docs/EuroSys/Paper/paper.aux b/docs/EuroSys/Paper/paper.aux index 610fdba..83dc267 100644 --- a/docs/EuroSys/Paper/paper.aux +++ b/docs/EuroSys/Paper/paper.aux @@ -1,5 +1,4 @@ \relax -\providecommand{\transparent@use}[1]{} \providecommand\hyper@newdestlabel[2]{} \providecommand\HyField@AuxAddToFields[1]{} \providecommand\HyField@AuxAddToCoFields[2]{} @@ -30,3 +29,108 @@ \citation{chen_flexpointer_2023} \citation{karakostas_redundant_2015} \citation{woodruff_cheri_2019} +\citation{karakostas_redundant_2015} +\citation{chen_flexpointer_2023} +\citation{woodruff_cheri_2019} +\citation{woodruff_cheri_2019} +\citation{woodruff_cheri_2019} +\@writefile{toc}{\contentsline {subsection}{\numberline {2.6}CHERI CC}{3}{subsection.2.6}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {3}Fat Address Translations}{3}{section.3}\protected@file@percent } +\newlabel{sec:FatPointerTranslations}{{3}{3}{Fat Address Translations}{section.3}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces High overview architecture}}{3}{figure.caption.3}\protected@file@percent } +\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}} +\newlabel{fig:HighOverviewArchitecture}{{1}{3}{High overview architecture}{figure.caption.3}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {3.1}Encoding Ranges as Bounds to the Pointer}{3}{subsection.3.1}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {4}128 bit compressed bounds}{3}{section.4}\protected@file@percent } +\newlabel{sec:128bitCompressedBounds}{{4}{3}{128 bit compressed bounds}{section.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{3}{subsection.4.1}\protected@file@percent } +\citation{evans_scalable_nodate} +\@writefile{toc}{\contentsline {section}{\numberline {5}Memory allocator design}{4}{section.5}\protected@file@percent } +\newlabel{sec:MemoryAllocator}{{5}{4}{Memory allocator design}{section.5}{}} +\@writefile{loa}{\contentsline {algorithm}{\numberline {1}{\ignorespaces Malloc implementation}}{4}{algorithm.1}\protected@file@percent } +\newlabel{alg:malloc}{{1}{4}{Malloc implementation}{algorithm.1}{}} +\@writefile{loa}{\contentsline {algorithm}{\numberline {2}{\ignorespaces Free implementation}}{4}{algorithm.2}\protected@file@percent } +\newlabel{alg:free}{{2}{4}{Free implementation}{algorithm.2}{}} +\@writefile{loa}{\contentsline {algorithm}{\numberline {3}{\ignorespaces Init alloc function to create a initial 1 GB huge page}}{4}{algorithm.3}\protected@file@percent } +\newlabel{alg:initAlloc}{{3}{4}{Init alloc function to create a initial 1 GB huge page}{algorithm.3}{}} +\@writefile{toc}{\contentsline {section}{\numberline {6}Embedding FAT allocator inside Jemalloc}{4}{section.6}\protected@file@percent } +\newlabel{sec:JemallocFATAllocator}{{6}{4}{Embedding FAT allocator inside Jemalloc}{section.6}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Mmap replaced with MALLOC}{4}{subsection.6.1}\protected@file@percent } +\citation{evans_scalable_nodate} +\citation{jemalloc} +\citation{cheribsd} +\citation{Benchmark} +\citation{Morello} +\citation{BenchmarkABI} +\citation{PerformanceCounter} +\@writefile{loa}{\contentsline {algorithm}{\numberline {4}{\ignorespaces Modified Jemalloc Memory Mapping Routines}}{5}{algorithm.4}\protected@file@percent } +\newlabel{alg:JemallocMalloc}{{4}{5}{Modified Jemalloc Memory Mapping Routines}{algorithm.4}{}} +\@writefile{loa}{\contentsline {algorithm}{\numberline {5}{\ignorespaces os\_pages\_unmap}}{5}{algorithm.5}\protected@file@percent } +\newlabel{alg:JemallocFree}{{5}{5}{os\_pages\_unmap}{algorithm.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Mumap replaced with FREE}{5}{subsection.6.2}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{\numberline {7}Evaluation}{5}{section.7}\protected@file@percent } +\newlabel{sec:Evaluation}{{7}{5}{Evaluation}{section.7}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Experiment setup}{5}{subsection.7.1}\protected@file@percent } +\newlabel{sec:Experiment}{{7.1}{5}{Experiment setup}{subsection.7.1}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Benchmarks}{6}{subsection.7.2}\protected@file@percent } +\newlabel{sec:Micro}{{7.2.1}{6}{Micro benchmark}{subsubsection.7.2.1}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.1}Micro benchmark}{6}{subsubsection.7.2.1}\protected@file@percent } +\newlabel{sec:Macro}{{7.2.2}{6}{Macro benchmark}{subsubsection.7.2.2}{}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {7.2.2}Macro benchmark}{6}{subsubsection.7.2.2}\protected@file@percent } +\@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces ARM performance counters}}{6}{table.caption.4}\protected@file@percent } +\newlabel{tab:org246a883}{{1}{6}{ARM performance counters}{table.caption.4}{}} +\newlabel{table:ARMPerf}{{1}{6}{ARM performance counters}{table.caption.4}{}} +\citation{singh1993} +\citation{holt1995} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.3}Results}{7}{subsection.7.3}\protected@file@percent } +\newlabel{sec:Results}{{7.3}{7}{Results}{subsection.7.3}{}} +\newlabel{fig:dtlb-walk}{{2a}{8}{DTLB Walks}{figure.caption.5}{}} +\newlabel{sub@fig:dtlb-walk}{{a}{8}{DTLB Walks}{figure.caption.5}{}} +\newlabel{fig:l1tlb-reads}{{2b}{8}{L1 TLB Reads}{figure.caption.5}{}} +\newlabel{sub@fig:l1tlb-reads}{{b}{8}{L1 TLB Reads}{figure.caption.5}{}} +\newlabel{fig:l1tlb-refill}{{2c}{8}{L1 TLB Refill}{figure.caption.5}{}} +\newlabel{sub@fig:l1tlb-refill}{{c}{8}{L1 TLB Refill}{figure.caption.5}{}} +\newlabel{fig:l2tlb-reads}{{2d}{8}{L2 TLB Reads}{figure.caption.5}{}} +\newlabel{sub@fig:l2tlb-reads}{{d}{8}{L2 TLB Reads}{figure.caption.5}{}} +\newlabel{fig:ll-cache-rd}{{2e}{8}{LL Cache Reads}{figure.caption.5}{}} +\newlabel{sub@fig:ll-cache-rd}{{e}{8}{LL Cache Reads}{figure.caption.5}{}} +\newlabel{fig:wallclock}{{2f}{8}{Wall Clock Time}{figure.caption.5}{}} +\newlabel{sub@fig:wallclock}{{f}{8}{Wall Clock Time}{figure.caption.5}{}} +\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Benchmarks comparing the percentage difference between FAT.}}{8}{figure.caption.5}\protected@file@percent } +\newlabel{fig:benchmarks-group}{{2}{8}{Benchmarks comparing the percentage difference between FAT}{figure.caption.5}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {7.4}Analysis}{8}{subsection.7.4}\protected@file@percent } +\newlabel{sec:Analysis}{{7.4}{8}{Analysis}{subsection.7.4}{}} +\bibstyle{unsrtnat} +\bibdata{paperReferences} +\bibcite{TLBHierarchy}{{1}{2013}{{Lustig et~al.}}{{Lustig, Bhattacharjee, and Martonosi}}} +\bibcite{mittal_survey_2017}{{2}{}{{Mittal}}{{}}} +\bibcite{panwar_hawkeye_2019}{{3}{}{{Panwar et~al.}}{{Panwar, Bansal, and Gopinath}}} +\bibcite{woodruff_cheri_2014}{{4}{}{{Woodruff et~al.}}{{Woodruff, Watson, Chisnall, Moore, Anderson, Davis, Laurie, Neumann, Norton, and Roe}}} +\bibcite{woodruff_cheri_2019}{{5}{}{{Woodruff et~al.}}{{Woodruff, Joannou, Xia, Fox, Norton, Chisnall, Davis, Gudka, Filardo, Markettos, Roe, Neumann, Watson, and Moore}}} +\bibcite{TLBReach}{{6}{2014}{{Pham et~al.}}{{Pham, Bhattacharjee, Eckert, and Loh}}} +\bibcite{THP}{{7}{2003}{{Navarro et~al.}}{{Navarro, Iyer, Druschel, and Cox}}} +\bibcite{IntelItanium}{{8}{2003}{{Cornea et~al.}}{{Cornea, Harrison, and Tang}}} +\bibcite{Shadow_superpages}{{9}{2001}{{Park and Park}}{{}}} +\bibcite{DirectSegment}{{10}{2013}{{Basu et~al.}}{{Basu, Gandhi, Chang, Hill, and Swift}}} +\bibcite{karakostas_redundant_2015}{{11}{}{{Karakostas et~al.}}{{Karakostas, Gandhi, Ayar, Cristal, Hill, {McKinley}, Nemirovsky, Swift, and Ünsal}}} +\bibcite{chen_flexpointer_2023}{{12}{2023}{{Chen et~al.}}{{Chen, Tong, Yang, Yi, and Cheng}}} +\bibcite{evans_scalable_nodate}{{13}{}{{Evans}}{{}}} +\bibcite{jemalloc}{{14}{2006}{{Evans}}{{}}} +\bibcite{cheribsd}{{15}{}{{che}}{{}}} +\bibcite{Benchmark}{{16}{}{{Ben}}{{}}} +\bibcite{Morello}{{17}{}{{Mor}}{{}}} +\bibcite{BenchmarkABI}{{18}{2023}{{Watson et~al.}}{{Watson, Clarke, Sewell, Woodruff, Moore, Barnes, Grisenthwaite, Stacer, Baranga, and Richardson}}} +\bibcite{PerformanceCounter}{{19}{}{{Per}}{{}}} +\bibcite{singh1993}{{20}{1993}{{Singh}}{{}}} +\bibcite{holt1995}{{21}{1995}{{Holt and Singh}}{{}}} +\newlabel{tocindent-1}{0pt} +\newlabel{tocindent0}{0pt} +\newlabel{tocindent1}{4.185pt} +\newlabel{tocindent2}{10.34999pt} +\newlabel{tocindent3}{18.198pt} +\newlabel{tocindent4}{0pt} +\newlabel{tocindent5}{0pt} +\@writefile{toc}{\contentsline {section}{\numberline {8}Conclusion}{9}{section.8}\protected@file@percent } +\@writefile{toc}{\contentsline {section}{References}{9}{section*.7}\protected@file@percent } +\newlabel{TotPages}{{9}{9}{}{page.9}{}} +\gdef \@abspage@last{9} diff --git a/docs/EuroSys/Paper/paper.fdb_latexmk b/docs/EuroSys/Paper/paper.fdb_latexmk index f03030f..d491864 100644 --- a/docs/EuroSys/Paper/paper.fdb_latexmk +++ b/docs/EuroSys/Paper/paper.fdb_latexmk @@ -1,13 +1,13 @@ # Fdb version 4 -["bibtex paper"] 1748842670.01173 "paper.aux" "paper.bbl" "paper" 1748842671.97694 0 +["bibtex paper"] 1748909508.19157 "paper.aux" "paper.bbl" "paper" 1748915503.84679 0 "./paperReferences.bib" 1748637417.99093 52057 3d2940a76dd1a0b9b759a973d6b9bd98 "" "/usr/local/texlive/2025/texmf-dist/bibtex/bst/natbib/unsrtnat.bst" 1233624470 24550 a41a6405f4de768c43e871d9fbce2bc8 "" - "paper.aux" 1748842671.6599 9959 d12f00f8edff5ca070a8389be00e146d "pdflatex" + "paper.aux" 1748915503.46464 9963 82b0905dd9ab54680dce426b8abf6c10 "pdflatex" (generated) "paper.bbl" "paper.blg" (rewritten before read) -["pdflatex"] 1748842670.10231 "paper.tex" "paper.pdf" "paper" 1748842671.97708 0 +["pdflatex"] 1748915501.92795 "paper.tex" "paper.pdf" "paper" 1748915503.84693 0 "/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc" 1558214095 7693 0f2dce6d313c82989ec3a67fc24df2a0 "" "/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc" 1490131464 2921 8ca0eb0831f9bc5da080d3697cfe67bf "" "/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc" 1490131464 2933 9ad527ce78d7c5fa0a642dead095f172 "" @@ -90,8 +90,6 @@ "/usr/local/texlive/2025/texmf-dist/tex/generic/atbegshi/atbegshi.sty" 1575674566 24708 5584a51a7101caf7e6bbf1fc27d8f7b1 "" "/usr/local/texlive/2025/texmf-dist/tex/generic/bigintcalc/bigintcalc.sty" 1576625341 40635 c40361e206be584d448876bba8a64a3b "" "/usr/local/texlive/2025/texmf-dist/tex/generic/bitset/bitset.sty" 1576016050 33961 6b5c75130e435b2bfdb9f480a09a39f9 "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/catchfile/catchfile.sty" 1576016007 8622 63834878edeb14dd71d58d8f22bc3e06 "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/etexcmds/etexcmds.sty" 1576625273 7734 b98cbb34c81f667027c1e3ebdbfce34b "" "/usr/local/texlive/2025/texmf-dist/tex/generic/gettitlestring/gettitlestring.sty" 1576625223 8371 9d55b8bd010bc717624922fb3477d92e "" "/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/ifluatex.sty" 1572645307 492 1994775aa15b0d1289725a0b1bbc2d4c "" "/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty" 1734129479 7984 7dbb9280f03c0a315425f1b4f35d43ee "" @@ -105,18 +103,6 @@ "/usr/local/texlive/2025/texmf-dist/tex/generic/pdfescape/pdfescape.sty" 1576015897 19007 15924f7228aca6c6d184b115f4baa231 "" "/usr/local/texlive/2025/texmf-dist/tex/generic/pdftex/glyphtounicode.tex" 1353199370 216747 92ec6cf8e39216b4894417b5aa6f057a "" "/usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/pgf.revision.tex" 1673816307 114 e6d443369d0673933b38834bf99e422d "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg" 1601326656 926 2963ea0dcf6cc6c0a770b69ec46a477b "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def" 1673816307 5542 32f75a31ea6c3a7e1148cd6d5e93dbb7 "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def" 1673816307 12612 7774ba67bfd72e593c4436c2de6201e3 "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex" 1673816307 61351 bc5f86e0355834391e736e97a61abced "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex" 1601326656 1896 b8e0ca0ac371d74c0ca05583f6313c91 "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex" 1601326656 7778 53c8b5623d80238f6a20aa1df1868e63 "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex" 1673816307 39784 414c54e866ebab4b801e2ad81d9b21d8 "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex" 1673816307 37433 940bc6d409f1ffd298adfdcaf125dd86 "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex" 1673816307 4385 510565c2f07998c8a0e14f0ec07ff23c "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex" 1673816307 29239 22e8c7516012992a49873eff0d868fed "" - "/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def" 1673816307 6950 8524a062d82b7afdc4a88a57cb377784 "" "/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def" 1575152242 5108 8920602307ea1294ccbce2300c7c6ccb "" "/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-utf8.def" 1575152242 11635 4fd2019d04ad095a0b1bde5aaed4a70e "" "/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/stringenc.sty" 1575152242 21514 b7557edcee22835ef6b03ede1802dad4 "" @@ -140,7 +126,6 @@ "/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amsopn.sty" 1717359999 4474 23ca1d3a79a57b405388059456d0a8df "" "/usr/local/texlive/2025/texmf-dist/tex/latex/amsmath/amstext.sty" 1717359999 2444 71618ea5f2377e33b04fb97afdd0eac2 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/atveryend/atveryend.sty" 1728505250 1695 be6b4d13b33db697fd3fd30b24716c1a "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/auxhook/auxhook.sty" 1576625391 3935 57aa3c3e203a5c2effb4d2bd2efbc323 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/base/atbegshi-ltx.sty" 1738182759 2963 d8ec5a1b4e0a106c5c737900202763e4 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/base/atveryend-ltx.sty" 1738182759 2378 14b657ee5031da98cf91648f19642694 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty" 1738182759 5275 0d62fb62162c7ab056e941ef18c5076d "" @@ -181,13 +166,8 @@ "/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/puenc.def" 1730838014 117112 7533bff456301d32e6d6356fad15f543 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty" 1710792253 62205 a7f89f92229cfedbace009eb0e06c099 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty" 1525197427 318 019510c713feab56160631df4423d2aa "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/ifplatform/ifplatform.sty" 1507930826 3910 e04f6a6d983bdbdb024917b7ccc80262 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd" 1516054831 1021 03341d1cf7f388bbac1915f944d5d128 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/zi4.sty" 1558214095 4319 14e5db0b68d045ed49e4ed232b58e93f "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrbase.sty" 1729800159 100966 88ffa900fd38336daf0681d35d342ea9 "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty" 1729800159 11185 08107e8d26d093ccd4c424c2b74809f6 "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile.sty" 1729800159 3328 17a5a2d4f4e9d388803c10ac9fffe9d3 "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlogo.sty" 1729800159 2162 e219c1ddf641a7cd0ee0103af3ac7f3d "" "/usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1655478651 22555 6d8e155cfef6d82c3d5c742fea7c992e "" "/usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1665067230 13815 760b0c02f691ea230f5359c4e1de23a7 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1716410060 29785 9f93ab201fe5dd053afcc6c1bcf7d266 "" @@ -226,18 +206,12 @@ "/usr/local/texlive/2025/texmf-dist/tex/latex/newtx/untxsym.fd" 1692649180 568 9df6be53c1b3ec79740d714ff4ae0937 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/centernot.sty" 1575152444 1640 c9cca60f81c5839b9a3e794d72c0b0a7 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/oberdiek/ifdraft.sty" 1575152444 1922 5bdcc31b0573e5e7f31c36f1b88b6a7d "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty" 1601326656 443 8c872229db56122037e86bcda49e14f3 "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty" 1601326656 325 f9f16d12354225b7dd52a3321f085955 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty" 1137110595 3366 d938ad2440edc1ea1c9042843580ec42 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/refcount/refcount.sty" 1576624809 9878 9e94e8fa600d95f9c7731bb21dfb67a4 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty" 1657483315 9714 ba3194bd52c8499b3f1e3eb91d409670 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/sttools/stfloats.sty" 1633983922 24057 ff20efb65b128d27c08eac20ec07f540 "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/svg/svg.sty" 1606428179 43468 671ae75b3a15019004495eff4c0911e8 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/tools/multicol.sty" 1730496337 32879 f4cfa2226c995da5b04a89ee47abf182 "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/tools/shellesc.sty" 1717359999 4121 6039ae6d0916154d7ba5f20a77b9ab2c "" "/usr/local/texlive/2025/texmf-dist/tex/latex/totpages/totpages.sty" 1137110984 7670 b07e668265cf485332abe582e7ed306e "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent-nometadata.sty" 1667073146 4212 8da4873548cbd3f1cdb053c708e8aa7e "" - "/usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent.sty" 1667073146 1918 c8d1ecb3722721d6f624992cbc042b70 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/trimspaces/trimspaces.sty" 1253232110 1380 971a51b00a14503ddf754cab24c3f209 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty" 1334873510 1048 517e01cde97c1c0baf72e69d43aa5a2e "" "/usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 "" @@ -253,11 +227,11 @@ "diagram/benchmarks-group/bargraph-large-l2tlb-reads.png" 1747839169.50845 54947 eb8cf45e5c18c985341539250aaf1907 "" "diagram/benchmarks-group/bargraph-large-ll-cache-rd.png" 1747839169.49301 52855 22a83d7bc1ca7dfa1c47f31936824ff6 "" "diagram/benchmarks-group/bargraph-large-wallclock.png" 1747839751.63939 55378 1da56901d20a39a645beca6272b36eaf "" - "diagram/drawing_png.png" 1748297803.36134 22858 0c9dbeaa2b2a2c8d4588aeb499d141da "" - "paper.aux" 1748842671.6599 9959 d12f00f8edff5ca070a8389be00e146d "pdflatex" - "paper.bbl" 1748842670.09843 8553 1083156a0ae40396808b10750dbef288 "bibtex paper" - "paper.out" 1748842671.6608 4043 e0a4be03bd5f2bf273294833454e3065 "pdflatex" - "paper.tex" 1748842619.98325 104798 e8075114700ae6dcab70ce3b2e43c20d "" + "diagram/drawing.pdf" 1748909319.05561 28646 0eb4d6c5fd7bfd13117f881769bcc40b "" + "paper.aux" 1748915503.46464 9963 82b0905dd9ab54680dce426b8abf6c10 "pdflatex" + "paper.bbl" 1748909508.27529 8553 1083156a0ae40396808b10750dbef288 "bibtex paper" + "paper.out" 1748915503.46551 4043 e0a4be03bd5f2bf273294833454e3065 "pdflatex" + "paper.tex" 1748915020.18884 105736 8bdc0702db90478ee04e1eec63cfe7dd "" (generated) "paper.aux" "paper.log" diff --git a/docs/EuroSys/Paper/paper.fls b/docs/EuroSys/Paper/paper.fls index 82ac3a1..dd2a7bf 100644 --- a/docs/EuroSys/Paper/paper.fls +++ b/docs/EuroSys/Paper/paper.fls @@ -246,59 +246,6 @@ INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/multicol.sty INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/multicol.sty INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/caption/subcaption.sty INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/caption/subcaption.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/svg/svg.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/svg/svg.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrbase.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrbase.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlogo.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlogo.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/shellesc.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/shellesc.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ifplatform/ifplatform.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ifplatform/ifplatform.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/catchfile/catchfile.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/catchfile/catchfile.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/etexcmds/etexcmds.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/etexcmds/etexcmds.sty -INPUT ./paper.w18 -INPUT ./paper.w18 -INPUT paper.w18 -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent-nometadata.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent-nometadata.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/auxhook/auxhook.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/auxhook/auxhook.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/pgf.revision.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/pgf.revision.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex -INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty INPUT ./paper.aux @@ -379,7 +326,6 @@ INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/latexconfig/epstopdf-sys.cfg INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty -INPUT 'inkscape' -V INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-t1.tfm INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/libertine/T1LinuxBiolinumT-TLF.fd @@ -556,11 +502,11 @@ INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinBiolinumT- INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1--base.tfm INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineT-tlf-ts1.vf INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ts1--base.tfm -INPUT ./diagram/drawing_png.png -INPUT ./diagram/drawing_png.png -INPUT ./diagram/drawing_png.png -INPUT ./diagram/drawing_png.png -INPUT ./diagram/drawing_png.png +INPUT ./diagram/drawing.pdf +INPUT ./diagram/drawing.pdf +INPUT ./diagram/drawing.pdf +INPUT ./diagram/drawing.pdf +INPUT ./diagram/drawing.pdf INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1.tfm INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineTI-tlf-t1.vf INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineTI-tlf-t1--base.tfm diff --git a/docs/EuroSys/Paper/paper.log b/docs/EuroSys/Paper/paper.log index e3f3346..ac1f851 100644 --- a/docs/EuroSys/Paper/paper.log +++ b/docs/EuroSys/Paper/paper.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 3 JUN 2025 01:04 +This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 3 JUN 2025 02:51 entering extended mode \write18 enabled. %&-line parsing enabled. @@ -879,135 +879,13 @@ Package caption Info: New subtype `subfigure' on input line 238. Package caption Info: New subtype `subtable' on input line 238. \c@subtable=\count357 ) -(/usr/local/texlive/2025/texmf-dist/tex/latex/svg/svg.sty -Package: svg 2020/11/26 v2.02k (include SVG pictures) - -(/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrbase.sty -Package: scrbase 2024/10/24 v3.43 KOMA-Script package (KOMA-Script-independent -basics and keyval usage) - -(/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile.sty -Package: scrlfile 2024/10/24 v3.43 KOMA-Script package (file load hooks) - -(/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlfile-hook.sty -Package: scrlfile-hook 2024/10/24 v3.43 KOMA-Script package (using LaTeX hooks) - - -(/usr/local/texlive/2025/texmf-dist/tex/latex/koma-script/scrlogo.sty -Package: scrlogo 2024/10/24 v3.43 KOMA-Script package (logo) -))) -Applying: [2021/05/01] Usage of raw or classic option list on input line 254. -Already applied: [0000/00/00] Usage of raw or classic option list on input line - 370. -) -(/usr/local/texlive/2025/texmf-dist/tex/latex/tools/shellesc.sty -Package: shellesc 2023/07/08 v1.0d unified shell escape interface for LaTeX -Package shellesc Info: Unrestricted shell escape enabled on input line 75. -) -(/usr/local/texlive/2025/texmf-dist/tex/latex/ifplatform/ifplatform.sty -Package: ifplatform 2017/10/13 v0.4a Testing for the operating system - -(/usr/local/texlive/2025/texmf-dist/tex/generic/catchfile/catchfile.sty -Package: catchfile 2019/12/09 v1.8 Catch the contents of a file (HO) - -(/usr/local/texlive/2025/texmf-dist/tex/generic/etexcmds/etexcmds.sty -Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO) -)) -runsystem(uname -s > "paper.w18")...executed. - - -(./paper.w18) -runsystem(rm -- "paper.w18")...executed. - -) -\c@svg@param@lastpage=\count358 -\svg@box=\box112 -\c@svg@param@currpage=\count359 -) -(/usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent.sty -Package: transparent 2022-10-27 v1.5 Transparency with color stacks - -(/usr/local/texlive/2025/texmf-dist/tex/latex/transparent/transparent-nometadat -a.sty -Package: transparent-nometadata 2022-10-27 v1.5 Transparency via pdfTeX's color - stack (HO) - (/usr/local/texlive/2025/texmf-dist/tex/latex/auxhook/auxhook.sty -Package: auxhook 2019-12-17 v1.6 Hooks for auxiliary files (HO) -))) -(/usr/local/texlive/2025/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty -(/usr/local/texlive/2025/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty -(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.te -x -\pgfutil@everybye=\toks43 -\pgfutil@tempdima=\dimen263 -\pgfutil@tempdimb=\dimen264 -) -(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def -\pgfutil@abb=\box113 -) (/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex -(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/pgf.revision.tex) -Package: pgfrcs 2023-01-15 v3.1.10 (3.1.10) -)) -(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex -Package: pgfsys 2023-01-15 v3.1.10 (3.1.10) -(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex -\pgfkeys@pathtoks=\toks44 -\pgfkeys@temptoks=\toks45 - -(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfil -tered.code.tex -\pgfkeys@tmptoks=\toks46 -)) -\pgf@x=\dimen265 -\pgf@y=\dimen266 -\pgf@xa=\dimen267 -\pgf@ya=\dimen268 -\pgf@xb=\dimen269 -\pgf@yb=\dimen270 -\pgf@xc=\dimen271 -\pgf@yc=\dimen272 -\pgf@xd=\dimen273 -\pgf@yd=\dimen274 -\w@pgf@writea=\write4 -\r@pgf@reada=\read3 -\c@pgf@counta=\count360 -\c@pgf@countb=\count361 -\c@pgf@countc=\count362 -\c@pgf@countd=\count363 -\t@pgf@toka=\toks47 -\t@pgf@tokb=\toks48 -\t@pgf@tokc=\toks49 -\pgf@sys@id@count=\count364 - -(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg -File: pgf.cfg 2023-01-15 v3.1.10 (3.1.10) -) -Driver file for pgf: pgfsys-pdftex.def - -(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.d -ef -File: pgfsys-pdftex.def 2023-01-15 v3.1.10 (3.1.10) - -(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-p -df.def -File: pgfsys-common-pdf.def 2023-01-15 v3.1.10 (3.1.10) -))) -(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath. -code.tex -File: pgfsyssoftpath.code.tex 2023-01-15 v3.1.10 (3.1.10) -\pgfsyssoftpath@smallbuffer@items=\count365 -\pgfsyssoftpath@bigbuffer@items=\count366 -) -(/usr/local/texlive/2025/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol. -code.tex -File: pgfsysprotocol.code.tex 2023-01-15 v3.1.10 (3.1.10) -)) Package hyperref Info: Option `pdfdisplaydoctitle' set `true' on input line 131 . -\c@theorem=\count367 - (/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty +\c@theorem=\count358 + +(/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/balance.sty Package: balance 1999/02/23 4.3 (PWD) -\oldvsize=\dimen275 +\oldvsize=\dimen263 ) Excluding comment 'screenonly' Include comment 'printonly' Include comment 'anonsuppress' (./paper.aux) @@ -1159,23 +1037,23 @@ Package microtype Info: Loading generic protrusion settings for font family Package hyperref Info: Link coloring OFF on input line 131. (./paper.out) (./paper.out) -\@outlinefile=\write5 -\openout5 = `paper.out'. +\@outlinefile=\write4 +\openout4 = `paper.out'. (/usr/local/texlive/2025/texmf-dist/tex/context/base/mkii/supp-pdf.mkii [Loading MPS to PDF converter (version 2006.09.02).] -\scratchcounter=\count368 -\scratchdimen=\dimen276 -\scratchbox=\box114 -\nofMPsegments=\count369 -\nofMParguments=\count370 -\everyMPshowfont=\toks50 -\MPscratchCnt=\count371 -\MPscratchDim=\dimen277 -\MPnumerator=\count372 -\makeMPintoPDFobject=\count373 -\everyMPtoPDFconversion=\toks51 +\scratchcounter=\count359 +\scratchdimen=\dimen264 +\scratchbox=\box112 +\nofMPsegments=\count360 +\nofMParguments=\count361 +\everyMPshowfont=\toks43 +\MPscratchCnt=\count362 +\MPscratchDim=\dimen265 +\MPnumerator=\count363 +\makeMPintoPDFobject=\count364 +\everyMPtoPDFconversion=\toks44 ) (/usr/local/texlive/2025/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4 @@ -1219,8 +1097,8 @@ e * \@reversemarginfalse * (1in=72.27pt=25.4mm, 1cm=28.453pt) -\c@mv@tabular=\count374 -\c@mv@boldtabular=\count375 +\c@mv@tabular=\count365 +\c@mv@boldtabular=\count366 (/usr/local/texlive/2025/texmf-dist/tex/latex/upquote/upquote.sty Package: upquote 2012/04/19 v1.3 upright-quote and grave-accent glyphs in verba tim @@ -1229,17 +1107,7 @@ Package caption Info: Begin \AtBeginDocument code. Package caption Info: float package is loaded. Package caption Info: listings package is loaded. Package caption Info: End \AtBeginDocument code. -\c@lstlisting=\count376 - -(|'inkscape' -V ) - -Package svg Warning: No version of Inkscape was detected by invoking -(svg) `inkscape -V' -(svg) so the Inkscape export will fail quite sure as the -(svg) command is probably unknown to your OS. You could set -(svg) `inkscapeversion=' manually but this is very -(svg) unlikely to work on input line 131. - +\c@lstlisting=\count367 LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be (Font) scaled to size 17.28pt on input line 316. LaTeX Font Info: Trying to load font information for T1+LinuxBiolinumT-TLF o @@ -1422,10 +1290,6 @@ LaTeX Font Info: Font shape `U/ntxsyc/m/n' will be LaTeX Font Info: Font shape `U/ntxexa/m/n' will be (Font) scaled to size 9.0pt on input line 376. -LaTeX Warning: Reference `sec:JemallocFATAllocator' on page 1 undefined on inpu -t line 388. - - Underfull \vbox (badness 10000) has occurred while \output is active [] @@ -1504,173 +1368,201 @@ LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/n' will be (Font) scaled to size 7.0pt on input line 498. [2.2] -Package svg Info: Last page of `./svg-inkscape/drawing_svg-tex.pdf' is 8 on inp -ut line 541. - (./svg-inkscape/drawing_svg-tex.pdf_tex -<./svg-inkscape/drawing_svg-tex.pdf, id=161, page=1, 597.50786pt x 845.04686pt> + +File: diagram/drawing.pdf Graphic file (type pdf) + +Package pdftex.def Info: diagram/drawing.pdf used on input line 548. +(pdftex.def) Requested size: 192.91872pt x 180.64859pt. -File: ./svg-inkscape/drawing_svg-tex.pdf Graphic file (type pdf) - -Package pdftex.def Info: ./svg-inkscape/drawing_svg-tex.pdf , page1 used on inp -ut line 56. -(pdftex.def) Requested size: 192.91872pt x 272.84465pt. -<./svg-inkscape/drawing_svg-tex.pdf, id=162, page=2, 597.50786pt x 845.04686pt> -File: ./svg-inkscape/drawing_svg-tex.pdf Graphic file (type pdf) - -Package pdftex.def Info: ./svg-inkscape/drawing_svg-tex.pdf , page2 used on inp -ut line 64. -(pdftex.def) Requested size: 192.91872pt x 272.84465pt. -<./svg-inkscape/drawing_svg-tex.pdf, id=163, page=3, 597.50786pt x 845.04686pt> +Class acmart Warning: A possible image without description on input line 551. -File: ./svg-inkscape/drawing_svg-tex.pdf Graphic file (type pdf) - -Package pdftex.def Info: ./svg-inkscape/drawing_svg-tex.pdf , page3 used on inp -ut line 74. -(pdftex.def) Requested size: 192.91872pt x 272.84465pt. -! Missing } inserted. - - } -l.75 ...age(1GB);\\ }\\ ...\\} \end{tabular}}}} - % -? x - + +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/it' will be +(Font) scaled to size 9.0pt on input line 611. + +Underfull \vbox (badness 1270) has occurred while \output is active [] + + + +[3.3 <./diagram/drawing.pdf>] +Package hyperref Info: bookmark level for unknown algorithm defaults to 0 on in +put line 745. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/sc' will be +(Font) scaled to size 9.0pt on input line 748. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 6.6pt on input line 749. +LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be +(Font) scaled to size 5.5pt on input line 749. + + +LaTeX Font Info: Trying to load font information for T1+zi4 on input line 83 +4. +(/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd +File: t1zi4.fd 2018/01/14 T1/zi4 (Inconsolata) +) +LaTeX Font Info: Font shape `T1/zi4/m/n' will be +(Font) scaled to size 9.0pt on input line 834. +Package microtype Info: Loading generic protrusion settings for font family +(microtype) `zi4' (encoding: T1). +(microtype) For optimal results, create family-specific settings. +(microtype) See the microtype manual for details. + + +[4.4{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_ncsllp.e +nc}{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.en +c}] + + + +[5.5{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc +}] +LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/it' will be +(Font) scaled to size 9.0pt on input line 1061. + + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + + +[6.6] + +File: diagram/benchmarks-group/bargraph-large-dtlb-walk.png Graphic file (type +png) + +Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-dtlb-walk.png + used on input line 1148. +(pdftex.def) Requested size: 241.14749pt x 137.79964pt. + +File: diagram/benchmarks-group/bargraph-large-l1tlb-reads.png Graphic file (typ +e png) + +Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-l1tlb-reads.pn +g used on input line 1153. +(pdftex.def) Requested size: 241.14749pt x 137.79964pt. + +File: diagram/benchmarks-group/bargraph-large-l1tlb-refill.png Graphic file (ty +pe png) + +Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-l1tlb-refill.p +ng used on input line 1161. +(pdftex.def) Requested size: 241.14749pt x 137.79964pt. + +File: diagram/benchmarks-group/bargraph-large-l2tlb-reads.png Graphic file (typ +e png) + +Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-l2tlb-reads.pn +g used on input line 1166. +(pdftex.def) Requested size: 241.14749pt x 137.79964pt. + +File: diagram/benchmarks-group/bargraph-large-ll-cache-rd.png Graphic file (typ +e png) + +Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-ll-cache-rd.pn +g used on input line 1174. +(pdftex.def) Requested size: 241.14749pt x 137.79964pt. + +File: diagram/benchmarks-group/bargraph-large-wallclock.png Graphic file (type +png) + +Package pdftex.def Info: diagram/benchmarks-group/bargraph-large-wallclock.png + used on input line 1179. +(pdftex.def) Requested size: 241.14749pt x 137.79964pt. + + +Class acmart Warning: A possible image without description on input line 1187. + + + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + + +[7.7] +Underfull \vbox (badness 10000) has occurred while \output is active [] + + + + +Underfull \vbox (badness 10000) has occurred while \output is active [] + + + +[8.8 <./diagram/benchmarks-group/bargraph-large-dtlb-walk.png> <./diagram/bench +marks-group/bargraph-large-l1tlb-reads.png> <./diagram/benchmarks-group/bargrap +h-large-l1tlb-refill.png> <./diagram/benchmarks-group/bargraph-large-l2tlb-read +s.png> <./diagram/benchmarks-group/bargraph-large-ll-cache-rd.png> <./diagram/b +enchmarks-group/bargraph-large-wallclock.png>] (./paper.bbl + + +Underfull \hbox (badness 2443) in paragraph at lines 145--149 +[]\T1/LinuxLibertineT-TLF/m/n/7 (+20) CHERI-allocator/benchmarks/benchmarks/Str +essTestMalloc/glibc-bench.c at + [] + +) + +Class acmart Warning: Some images may lack descriptions. + + +Class acmart Warning: ACM keywords are mandatory for papers over two pages. + + +Class acmart Warning: CCS concepts are mandatory for papers over two pages. + + + + +Package balance Warning: You have called \balance in second column +(balance) Columns might not be balanced. + +(/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def +File: se-pdfdoc.def 2019/11/29 v1.12 stringenc: PDFDocEncoding +) +(/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-utf8.def +File: se-utf8.def 2019/11/29 v1.12 stringenc: UTF-8 +) [9.9] +(./paper.aux) + *********** +LaTeX2e <2024-11-01> patch level 2 +L3 programming layer <2025-01-18> + *********** +Package rerunfilecheck Info: File `paper.out' has not changed. +(rerunfilecheck) Checksum: E0A4BE03BD5F2BF273294833454E3065;4043. + ) Here is how much of TeX's memory you used: - 26080 strings out of 473190 - 441394 string characters out of 5715801 - 1014480 words of memory out of 5000000 - 48269 multiletter control sequences out of 15000+600000 - 741086 words of font info for 389 fonts, out of 8000000 for 9000 + 24380 strings out of 473190 + 401897 string characters out of 5715801 + 979084 words of memory out of 5000000 + 46492 multiletter control sequences out of 15000+600000 + 779416 words of font info for 478 fonts, out of 8000000 for 9000 1302 hyphenation exceptions out of 8191 - 94i,16n,131p,1002b,746s stack positions out of 10000i,1000n,20000p,200000b,200000s - -pdfTeX warning (dest): name{cite.chen_flexpointer_2023} has been referenced but - does not exist, replaced by a fixed one - - -pdfTeX warning (dest): name{cite.karakostas_redundant_2015} has been referenced - but does not exist, replaced by a fixed one - - -pdfTeX warning (dest): name{cite.DirectSegment} has been referenced but does no -t exist, replaced by a fixed one - - -pdfTeX warning (dest): name{cite.Shadow_superpages} has been referenced but doe -s not exist, replaced by a fixed one - - -pdfTeX warning (dest): name{cite.IntelItanium} has been referenced but does not - exist, replaced by a fixed one - - -pdfTeX warning (dest): name{cite.THP} has been referenced but does not exist, r -eplaced by a fixed one - - -pdfTeX warning (dest): name{cite.TLBReach} has been referenced but does not exi -st, replaced by a fixed one - - -pdfTeX warning (dest): name{cite.woodruff_cheri_2019} has been referenced but d -oes not exist, replaced by a fixed one - - -pdfTeX warning (dest): name{cite.woodruff_cheri_2014} has been referenced but d -oes not exist, replaced by a fixed one - - -pdfTeX warning (dest): name{cite.panwar_hawkeye_2019} has been referenced but d -oes not exist, replaced by a fixed one - - -pdfTeX warning (dest): name{cite.mittal_survey_2017} has been referenced but do -es not exist, replaced by a fixed one - - -pdfTeX warning (dest): name{cite.TLBHierarchy} has been referenced but does not - exist, replaced by a fixed one - - -pdfTeX warning (dest): name{page.9} has been referenced but does not exist, rep -laced by a fixed one - - -pdfTeX warning (dest): name{section*.7} has been referenced but does not exist, - replaced by a fixed one - - -pdfTeX warning (dest): name{section.8} has been referenced but does not exist, -replaced by a fixed one - - -pdfTeX warning (dest): name{subsection.7.4} has been referenced but does not ex -ist, replaced by a fixed one - - -pdfTeX warning (dest): name{subsection.7.3} has been referenced but does not ex -ist, replaced by a fixed one - - -pdfTeX warning (dest): name{subsection.7.2} has been referenced but does not ex -ist, replaced by a fixed one - - -pdfTeX warning (dest): name{subsection.7.1} has been referenced but does not ex -ist, replaced by a fixed one - - -pdfTeX warning (dest): name{section.7} has been referenced but does not exist, -replaced by a fixed one - - -pdfTeX warning (dest): name{subsection.6.2} has been referenced but does not ex -ist, replaced by a fixed one - - -pdfTeX warning (dest): name{subsection.6.1} has been referenced but does not ex -ist, replaced by a fixed one - - -pdfTeX warning (dest): name{section.6} has been referenced but does not exist, -replaced by a fixed one - - -pdfTeX warning (dest): name{section.5} has been referenced but does not exist, -replaced by a fixed one - - -pdfTeX warning (dest): name{subsection.4.1} has been referenced but does not ex -ist, replaced by a fixed one - - -pdfTeX warning (dest): name{section.4} has been referenced but does not exist, -replaced by a fixed one - - -pdfTeX warning (dest): name{subsection.3.1} has been referenced but does not ex -ist, replaced by a fixed one - - -pdfTeX warning (dest): name{section.3} has been referenced but does not exist, -replaced by a fixed one - - -pdfTeX warning (dest): name{subsection.2.6} has been referenced but does not ex -ist, replaced by a fixed one - - -Output written on paper.pdf (2 pages, 354851 bytes). + 90i,17n,131p,1002b,778s stack positions out of 10000i,1000n,20000p,200000b,200000s + +Output written on paper.pdf (9 pages, 829590 bytes). PDF statistics: - 210 PDF objects out of 1000 (max. 8388607) - 177 compressed objects within 2 object streams - 41 named destinations out of 1000 (max. 500000) - 104673 words of extra memory for PDF output out of 106986 (max. 10000000) + 388 PDF objects out of 1000 (max. 8388607) + 323 compressed objects within 4 object streams + 67 named destinations out of 1000 (max. 500000) + 123636 words of extra memory for PDF output out of 128383 (max. 10000000) diff --git a/docs/EuroSys/Paper/paper.pdf b/docs/EuroSys/Paper/paper.pdf index e9e8cb6..3b88ff0 100644 Binary files a/docs/EuroSys/Paper/paper.pdf and b/docs/EuroSys/Paper/paper.pdf differ diff --git a/docs/EuroSys/Paper/paper.tex b/docs/EuroSys/Paper/paper.tex index 23111cb..82b59f6 100644 --- a/docs/EuroSys/Paper/paper.tex +++ b/docs/EuroSys/Paper/paper.tex @@ -536,9 +536,16 @@ in this implementation is the use of range addresses with CHERI CC~\cite{woodruf % mitigating issues related to memory fragmentation. % \end{itemize} +% \begin{figure}[ht]ß +% \centering +% \includesvg[width=0.8\linewidth]{diagram/drawing.svg} +% \caption{High overview architecture} +% \label{fig:HighOverviewArchitecture}√ +% \end{figure} + \begin{figure}[ht] \centering - \includesvg[width=0.8\linewidth]{diagram/drawing.svg} + \includegraphics[width=0.8\linewidth]{diagram/drawing.pdf} \caption{High overview architecture} \label{fig:HighOverviewArchitecture} \end{figure} @@ -598,8 +605,8 @@ which is called when there is a L1 TLB miss. FlexPointer builds up on the work o and 64th bit which is the value to check the range table on parallel to the L1 TLB lookup. The FAT allocator builds up on the concept of range from RMM and FlexPointer. Instead of using a -hardware range table using CHERI range information can be encoded within a capability pointer. -A memory range in FAT has two points to track memory in physical contiguous space which +hardware range table using CHERI, range information can be encoded within a capability pointer. +A memory range in FAT has two points to track memory in physically contiguous space which is the top and bottom. These two points are two virtual addresses and the range consists of addresses that lie within this and refers to addresses allocated by invoking \textit{malloc}. FAT memory ranges are established using @@ -656,7 +663,7 @@ This approach offers a more flexible alternative to the traditional fixed-size T This means that the default behavior of most allocators, such as Jemalloc, would allow precise representation of bounds within -a FAT . These pointers can then be repurposed as memory ranges in custom memory allocators, offering a more flexible +a FAT. These pointers can then be repurposed as memory ranges in custom memory allocators, offering a more flexible alternative to fixed-size TLB entries. % We use the CHERI CC diff --git a/docs/EuroSys/Paper/todo.org b/docs/EuroSys/Paper/todo.org index 13d6880..5b9491e 100644 --- a/docs/EuroSys/Paper/todo.org +++ b/docs/EuroSys/Paper/todo.org @@ -59,9 +59,11 @@ Recheck require read of the paper - [x] "This approach has helped reduce" -> "This approach reduces" - [x] "Remove comprehensive" - ** Changes - - [ ] Fix image +** Changes + - [x] Fix image - [x] Integrate Jemalloc to Abstract and Intro - [x] Integrate to conclusion - [x] Fix Analysis - [ ] Read through the entire paper + + diff --git a/docs/RISCV-FAT/.DS_Store b/docs/RISCV-FAT/.DS_Store new file mode 100644 index 0000000..49a01f0 Binary files /dev/null and b/docs/RISCV-FAT/.DS_Store differ diff --git a/docs/RISCV-FAT/ACM-Reference-Format.bst b/docs/RISCV-FAT/ACM-Reference-Format.bst new file mode 100644 index 0000000..c47cb4c --- /dev/null +++ b/docs/RISCV-FAT/ACM-Reference-Format.bst @@ -0,0 +1,3081 @@ +%%% -*-BibTeX-*- +%%% ==================================================================== +%%% @BibTeX-style-file{ +%%% author = "Nelson H. F. Beebe, Boris Veytsman and Gerald Murray", +%%% version = "2.1", +%%% acmart-version = "1.90", +%%% date = "Mar 26 2023", +%%% filename = "ACM-Reference-Format.bst", +%%% email = "borisv@lk.net, boris@varphi.com", +%%% codetable = "ISO/ASCII", +%%% keywords = "ACM Transactions bibliography style; BibTeX", +%%% license = "public domain", +%%% supported = "yes", +%%% abstract = "", +%%% } +%%% ==================================================================== + +%%% Revision history: see source in git + +ENTRY + { address + advisor + archiveprefix + author + booktitle + chapter + city + date + edition + editor + eprint + eprinttype + eprintclass + howpublished + institution + journal + key + location + month + note + number + organization + pages + primaryclass + publisher + school + series + title + type + volume + year + % New keys recognized + issue % UTAH: used in, e.g., ACM SIGSAM Bulletin and ACM Communications in Computer Algebra + articleno + eid + day % UTAH: needed for newspapers, weeklies, bi-weeklies + doi % UTAH + url % UTAH + bookpages % UTAH + numpages + lastaccessed % UTAH: used only for @Misc{...} + coden % UTAH + isbn % UTAH + isbn-13 % UTAH + issn % UTAH + lccn % UTAH + distinctURL % whether to print url if doi is present + } + {} + { label.year extra.label sort.year sort.label basic.label.year} + +INTEGERS { output.state before.all mid.sentence after.sentence after.block } + +INTEGERS { show-isbn-10-and-13 } % initialized below in begin.bib + +INTEGERS { nameptr namesleft numnames } + +INTEGERS { multiresult } + +INTEGERS { len } + +INTEGERS { last.extra.num } + +STRINGS { s t t.org u } + +STRINGS { last.label next.extra } + +STRINGS { p1 p2 p3 page.count } + + +FUNCTION { not } +{ + { #0 } + { #1 } + if$ +} + +FUNCTION { and } +{ + 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION { or } +{ + { pop$ #1 } + 'skip$ + if$ +} + + +FUNCTION { dump.stack.1 } +{ + duplicate$ "STACK[top] = [" swap$ * "]" * warning$ +} + +FUNCTION { dump.stack.2 } +{ + duplicate$ "STACK[top ] = [" swap$ * "]" * warning$ + swap$ + duplicate$ "STACK[top-1] = [" swap$ * "]" * warning$ + swap$ +} + +FUNCTION { empty.or.unknown } +{ + %% Examine the top stack entry, and push 1 if it is empty, or + %% consists only of whitespace, or is a string beginning with two + %% queries (??), and otherwise, push 0. + %% + %% This function provides a replacement for empty$, with the + %% convenient feature that unknown values marked by two leading + %% queries are treated the same as missing values, and thus, do not + %% appear in the output .bbl file, and yet, their presence in .bib + %% file(s) serves to mark values which are temporarily missing, but + %% are expected to be filled in eventually once more data is + %% obtained. The TeX User Group and BibNet bibliography archives + %% make extensive use of this practice. + %% + %% An empty string cannot serve the same purpose, because just as in + %% statistics data processing, an unknown value is not the same as an + %% empty value. + %% + %% At entry: stack = ... top:[string] + %% At exit: stack = ... top:[0 or 1] + + duplicate$ empty$ + { pop$ #1 } + { #1 #2 substring$ "??" = } + if$ +} + +FUNCTION { empty.or.zero } +{ + %% Examine the top entry and push 1 if it is empty, or is zero + duplicate$ empty$ + { pop$ #1 } + { "0" = } + if$ +} + + +FUNCTION { writeln } +{ + %% In BibTeX style files, the sequences + %% + %% ... "one" "two" output + %% ... "one" "two" output.xxx + %% + %% ship "one" to the output file, possibly following by punctuation, + %% leaving the stack with + %% + %% ... "two" + %% + %% There is thus a one-string lag in output processing that must be + %% carefully handled to avoid duplicating a string in the output + %% file. Unless otherwise noted, all output.xxx functions leave + %% just one new string on the stack, and that model should be born + %% in mind when reading or writing function code. + %% + %% BibTeX's asynchronous buffering of output from strings from the + %% stack is confusing because newline$ bypasses the buffer. It + %% would have been so much easier for newline to be a character + %% rather than a state of the output-in-progress. + %% + %% The documentation in btxhak.dvi is WRONG: it says + %% + %% newline$ Writes onto the bbl file what's accumulated in the + %% output buffer. It writes a blank line if and only + %% if the output buffer is empty. Since write$ does + %% reasonable line breaking, you should use this + %% function only when you want a blank line or an + %% explicit line break. + %% + %% write$ Pops the top (string) literal and writes it on the + %% output buffer (which will result in stuff being + %% written onto the bbl file when the buffer fills + %% up). + %% + %% Examination of the BibTeX source code shows that write$ does + %% indeed behave as claimed, but newline$ sends a newline character + %% directly to the output file, leaving the stack unchanged. The + %% first line "Writes onto ... buffer." is therefore wrong. + %% + %% The original BibTeX style files almost always use "write$ newline$" + %% in that order, so it makes sense to hide that pair in a private + %% function like this one, named after a statement in Pascal, + %% the programming language embedded in the BibTeX Web program. + + write$ % output top-of-stack string + newline$ % immediate write of newline (not via stack) +} + +FUNCTION { init.state.consts } +{ + #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := +} + +FUNCTION { output.nonnull } +{ % Stack in: ... R S T Stack out: ... R T File out: S + 's := + output.state mid.sentence = + { + ", " * write$ + } + { + output.state after.block = + { + add.period$ writeln + "\newblock " write$ + } + { + output.state before.all = + { + write$ + } + { + add.period$ " " * write$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION { output.nonnull.dot.space } +{ % Stack in: ... R S T Stack out: ... R T File out: S + 's := + output.state mid.sentence = % { ". " * write$ } + { + ". " * write$ + } + { + output.state after.block = + { + add.period$ writeln "\newblock " write$ + } + { + output.state before.all = + { + write$ + } + { + add.period$ " " * write$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION { output.nonnull.remove } +{ % Stack in: ... R S T Stack out: ... R T File out: S + 's := + output.state mid.sentence = + { + " " * write$ + } + { + output.state after.block = + { + add.period$ writeln "\newblock " write$ + } + { + output.state before.all = + { + write$ + } + { + add.period$ " " * write$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION { output.nonnull.removenospace } +{ % Stack in: ... R S T Stack out: ... R T File out: S + 's := + output.state mid.sentence = + { + "" * write$ + } + { + output.state after.block = + { + add.period$ writeln "\newblock " write$ + } + { + output.state before.all = + { + write$ + } + { + add.period$ " " * write$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION { output } +{ % discard top token if empty, else like output.nonnull + duplicate$ empty.or.unknown + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION { output.dot.space } +{ % discard top token if empty, else like output.nonnull.dot.space + duplicate$ empty.or.unknown + 'pop$ + 'output.nonnull.dot.space + if$ +} + +FUNCTION { output.removenospace } +{ % discard top token if empty, else like output.nonnull.removenospace + duplicate$ empty.or.unknown + 'pop$ + 'output.nonnull.removenospace + if$ +} + +FUNCTION { output.check } +{ % like output, but warn if key name on top-of-stack is not set + 't := + duplicate$ empty.or.unknown + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION { bibinfo.output.check } +{ % like output.check, adding bibinfo field + 't := + duplicate$ empty.or.unknown + { pop$ "empty " t * " in " * cite$ * warning$ } + { "\bibinfo{" t "}{" * * swap$ * "}" * + output.nonnull } + if$ +} + +FUNCTION { output.check.dot.space } +{ % like output.dot.space, but warn if key name on top-of-stack is not set + 't := + duplicate$ empty.or.unknown + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull.dot.space + if$ +} + +FUNCTION { fin.block } +{ % functionally, but not logically, identical to fin.entry + add.period$ + writeln +} + +FUNCTION { fin.entry } +{ + add.period$ + writeln +} + +FUNCTION { new.sentence } +{ % update sentence state, with neither output nor stack change + output.state after.block = + 'skip$ + { + output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION { fin.sentence } +{ + add.period$ + write$ + new.sentence + "" +} + +FUNCTION { new.block } +{ + output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION { output.coden } % UTAH +{ % output non-empty CODEN as one-line sentence (stack untouched) + coden empty.or.unknown + { } + { "\showCODEN{" coden * "}" * writeln } + if$ +} + +% +% Sometimes articleno starts with the word 'Article' or 'Paper. +% (this is a bug of acmdl, sigh) +% We strip them. We assume eid or articleno is already on stack +% + +FUNCTION { strip.articleno.or.eid } +{ + 't := + t #1 #7 substring$ "Article" = + {t #8 t text.length$ substring$ 't :=} + { } + if$ + t #1 #7 substring$ "article" = + {t #8 t text.length$ substring$ 't :=} + { } + if$ + t #1 #5 substring$ "Paper" = + {t #6 t text.length$ substring$ 't :=} + { } + if$ + t #1 #5 substring$ "paper" = + {t #6 t text.length$ substring$ 't :=} + { } + if$ + % Strip any left trailing space or ~ + t #1 #1 substring$ " " = + {t #2 t text.length$ substring$ 't :=} + { } + if$ + t #1 #1 substring$ "~" = + {t #2 t text.length$ substring$ 't :=} + { } + if$ + t +} + + +FUNCTION { format.articleno } +{ + articleno empty.or.unknown not eid empty.or.unknown not and + { "Both articleno and eid are defined for " cite$ * warning$ } + 'skip$ + if$ + articleno empty.or.unknown eid empty.or.unknown and + { "" } + { + numpages empty.or.unknown + { "articleno or eid field, but no numpages field, in " + cite$ * warning$ } + { } + if$ + eid empty.or.unknown + { "Article \bibinfo{articleno}{" articleno strip.articleno.or.eid * "}" * } + { "Article \bibinfo{articleno}{" eid strip.articleno.or.eid * "}" * } + if$ + } + if$ +} + +FUNCTION { format.year } +{ % push year string or "[n.\,d.]" onto output stack + %% Because year is a mandatory field, we always force SOMETHING + %% to be output + "\bibinfo{year}{" + year empty.or.unknown + { "[n.\,d.]" } + { year } + if$ + * "}" * +} + +FUNCTION { format.day.month } +{ % push "day month " or "month " or "" onto output stack + day empty.or.unknown + { + month empty.or.unknown + { "" } + { "\bibinfo{date}{" month * "} " *} + if$ + } + { + month empty.or.unknown + { "" } + { "\bibinfo{date}{" day * " " * month * "} " *} + if$ + } + if$ +} + +FUNCTION { format.day.month.year } % UTAH +{ % if month is empty, push "" else push "(MON.)" or "(DD MON.)" + % Needed for frequent periodicals: 2008. ... New York Times C-1, C-2, C-17 (23 Oct.) + % acm-*.bst addition: prefix parenthesized date string with + % ", Article nnn " + articleno empty.or.unknown eid empty.or.unknown and + { "" } + { output.state after.block = + {", " format.articleno * } + { format.articleno } + if$ + } + if$ + " (" * format.day.month * format.year * ")" * +} + +FUNCTION { output.day.month.year } % UTAH +{ % if month is empty value, do nothing; else output stack top and + % leave with new top string "(MON.)" or "(DD MON.)" + % Needed for frequent periodicals: 2008. ... New York Times C-1, C-2, C-17 (23 Oct.) + format.day.month.year + output.nonnull.remove +} + +FUNCTION { strip.doi } % UTAH +{ % Strip any Web address prefix to recover the bare DOI, leaving the + % result on the output stack, as recommended by CrossRef DOI + % documentation. + % For example, reduce "http://doi.acm.org/10.1145/1534530.1534545" to + % "10.1145/1534530.1534545". A suitable URL is later typeset and + % displayed as the LAST item in the reference list entry. Publisher Web + % sites wrap this with a suitable link to a real URL to resolve the DOI, + % and the master https://doi.org/ address is preferred, since publisher- + % specific URLs can disappear in response to economic events. All + % journals are encouraged by the DOI authorities to use that typeset + % format and link procedures for uniformity across all publications that + % include DOIs in reference lists. + % The numeric prefix is guaranteed to start with "10.", so we use + % that as a test. + % 2017-02-04 Added stripping of https:// (Boris) + doi #1 #3 substring$ "10." = + { doi } + { + doi 't := % get modifiable copy of DOI + + % Change https:// to http:// to strip both prefixes (BV) + + t #1 #8 substring$ "https://" = + { "http://" t #9 t text.length$ #8 - substring$ * 't := } + { } + if$ + + t #1 #7 substring$ "http://" = + { + t #8 t text.length$ #7 - substring$ 't := + + "INTERNAL STYLE-FILE ERROR" 's := + + % search for next "/" and assign its suffix to s + + { t text.length$ } + { + t #1 #1 substring$ "/" = + { + % save rest of string as true DOI (should be 10.xxxx/yyyy) + t #2 t text.length$ #1 - substring$ 's := + "" 't := % empty string t terminates the loop + } + { + % discard first character and continue loop: t <= substring(t,2,last) + t #2 t text.length$ #1 - substring$ 't := + } + if$ + } + while$ + + % check for valid DOI (should be 10.xxxx/yyyy) + s #1 #3 substring$ "10." = + { } + { "unrecognized DOI substring " s * " in DOI value [" * doi * "]" * warning$ } + if$ + + s % push the stripped DOI on the output stack + + } + { + "unrecognized DOI value [" doi * "]" * warning$ + doi % push the unrecognized original DOI on the output stack + } + if$ + } + if$ +} + +% +% Change by BV: added standard prefix to URL +% +FUNCTION { output.doi } % UTAH +{ % output non-empty DOI as one-line sentence (stack untouched) + doi empty.or.unknown + { } + { + %% Use \urldef here for the same reason it is used in output.url, + %% see output.url for further discussion. + "\urldef\tempurl%" writeln + "\url{https://doi.org/" strip.doi * "}" * writeln + "\showDOI{\tempurl}" writeln + } + if$ +} + +FUNCTION { output.isbn } % UTAH +{ % output non-empty ISBN-10 and/or ISBN-13 as one-line sentences (stack untouched) + show-isbn-10-and-13 + { + %% show both 10- and 13-digit ISBNs + isbn empty.or.unknown + { } + { + "\showISBNx{" isbn * "}" * writeln + } + if$ + isbn-13 empty.or.unknown + { } + { + "\showISBNxiii{" isbn-13 * "}" * writeln + } + if$ + } + { + %% show 10-digit ISBNs only if 13-digit ISBNs not available + isbn-13 empty.or.unknown + { + isbn empty.or.unknown + { } + { + "\showISBNx{" isbn * "}" * writeln + } + if$ + } + { + "\showISBNxiii{" isbn-13 * "}" * writeln + } + if$ + } + if$ +} + +FUNCTION { output.issn } % UTAH +{ % output non-empty ISSN as one-line sentence (stack untouched) + issn empty.or.unknown + { } + { "\showISSN{" issn * "}" * writeln } + if$ +} + +FUNCTION { output.issue } +{ % output non-empty issue number as a one-line sentence (stack untouched) + issue empty.or.unknown + { } + { "Issue " issue * "." * writeln } + if$ +} + +FUNCTION { output.lccn } % UTAH +{ % return with stack untouched + lccn empty.or.unknown + { } + { "\showLCCN{" lccn * "}" * writeln } + if$ +} + +FUNCTION { output.note } % UTAH +{ % return with stack empty + note empty.or.unknown + { } + { "\shownote{" note * "}" add.period$ * writeln } + if$ +} + +FUNCTION { output.note.check } % UTAH +{ % return with stack empty + note empty.or.unknown + { "empty note in " cite$ * warning$ } + { "\shownote{" note * "}" add.period$ * writeln } + if$ +} + +FUNCTION { output.eprint } % +{ % return with stack empty + eprint empty.or.unknown + { } + { "\showeprint" + archiveprefix empty.or.unknown + { eprinttype empty.or.unknown + { } + { "[" eprinttype "]" * * * } + if$ + } + { "[" archiveprefix "l" change.case$ "]" * * * } + if$ + "{" eprint "}" * * * + primaryclass empty.or.unknown + { eprintclass empty.or.unknown + { } + { "~[" eprintclass "]" * * * } + if$ + } + { "~[" primaryclass "]" * * * } + if$ + writeln + } + if$ +} + + +% +% Changes by BV 2011/04/15. Do not output +% url if doi is defined +% +% +% Changes by BV 2021/11/26. Output url even if doi is defined +% if distinctURL is not zero. +% +FUNCTION { output.url } % UTAH +{ % return with stack untouched + % output URL and associated lastaccessed fields + doi empty.or.unknown distinctURL empty.or.zero not or + { + url empty.or.unknown + { } + { + %% Use \urldef, outside \showURL, so that %nn, #, etc in URLs work + %% correctly. Put the actual URL on its own line to reduce the + %% likelihood of BibTeX's nasty line wrapping after column 79. + %% \url{} can undo this, but if that doesn't work for some reason + %% the .bbl file would have to be repaired manually. + "\urldef\tempurl%" writeln + "\url{" url * "}" * writeln + + "\showURL{%" writeln + lastaccessed empty.or.unknown + { "" } + { "Retrieved " lastaccessed * " from " * } + if$ + "\tempurl}" * writeln + } + if$ + } + { } + if$ +} + +FUNCTION { output.year.check } +{ % warn if year empty, output top string and leave " YEAR