{"id":19743376,"url":"https://github.com/jpenuchot/these","last_synced_at":"2025-02-27T23:24:35.690Z","repository":{"id":203350461,"uuid":"633317866","full_name":"JPenuchot/these","owner":"JPenuchot","description":"PhD thesis document (graduated)","archived":false,"fork":false,"pushed_at":"2024-10-23T20:26:56.000Z","size":30593,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-26T10:12:39.842Z","etag":null,"topics":["constexpr","cpp","design","generic","hpc","metaprogramming","optimization","template","tmp"],"latest_commit_sha":null,"homepage":"https://theses.hal.science/tel-04751989","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JPenuchot.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"roadmap.md","authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-27T08:39:23.000Z","updated_at":"2024-11-04T12:18:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"c1f7bbcb-b0a3-4fa8-9f2b-cbd19ad1a9b2","html_url":"https://github.com/JPenuchot/these","commit_stats":null,"previous_names":["jpenuchot/these"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JPenuchot%2Fthese","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JPenuchot%2Fthese/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JPenuchot%2Fthese/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JPenuchot%2Fthese/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JPenuchot","download_url":"https://codeload.github.com/JPenuchot/these/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241072936,"owners_count":19904859,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["constexpr","cpp","design","generic","hpc","metaprogramming","optimization","template","tmp"],"created_at":"2024-11-12T01:36:52.392Z","updated_at":"2025-02-27T23:24:35.673Z","avatar_url":"https://github.com/JPenuchot.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PhD thesis document\n\n[Read it](https://raw.githubusercontent.com/jpenuchot/these/main/main.pdf)\n\nThis is a public repository for my PhD thesis.\nI'm using it mostly to keep track of my work,\nhave a CI to build document previews frequently,\nand make it available to curious readers.\n\nYou'll see me working on it on Tuesdays and Wednesdays.\n\n## What this is about\n\nC++ metaprogramming techniques, embedding languages in C++ using\n`constexpr` programming for parsing, studying the thin barrier between\n`constexpr` function output and C++ templates for code generation,\ngeneric programming for high performance computing,\nand compiler execution time analysis.\n\n## Who this is for\n\nMy PhD advisor, C++ nerds, or anyone else interested in metaprogramming or HPC.\n\n## A few thesis pro-tips for myself and others\n\n- Set up you environment right. If you're familiar with LSP,\n  use [TexLab](https://github.com/latex-lsp/texlab/).\n\n- Read [this free book](https://www.dickimaw-books.com/latex/thesis/) for\n  useful tips on bibliography, glossaries, etc.\n\n- Use subfiles, not include. Subfiles helps with automatic forward search.\n  When adding subfiles, keep all header stuff in the main document.\n  You cannot have subfiles that incorporate other subfiles.\n  All subfiles must be declared in the main LaTeX file which serves as a\n  main \"glue\" document. It should not be problematic even for a large thesis.\n\n- Use the following form for `\\begin{lstlisting}`:\n\n  ```latex\n  \\begin{lstlisting}[\n    language=c++,\n    caption=A random caption,\n    label=a_random_label\n  ]{}\n\n  // ...\n\n  \\end{lstlisting}\n  ```\n\n  The trainling `{}` after the parameter block helps\n  syntax highlighting with code editors such as Kate.\n\n- Kate TexLab LSP config for Zathura forwarding:\n\n  ```json\n  {\n      \"servers\": {\n          \"latex\": {\n              \"command\": [\n                  \"texlab\",\n                  \"--log-file\",\n                  \"/tmp/texlog.txt\"\n              ],\n              \"settings\": {\n                  \"diagnostics\": {\n                      \"ignoredPatterns\": [\n                          \".*hbox.*\"\n                      ]\n                  },\n                  \"build\": {\n                      \"executable\": \"latexmk\",\n                      \"args\": [\n                          \"-pdf\",\n                          \"-interaction=nonstopmode\",\n                          \"-synctex=1\",\n                          \"--shell-escape\",\n                          \"%f\"\n                      ],\n                      \"onSave\": true,\n                      \"forwardSearchAfter\": true\n                  },\n                  \"forwardSearch\": {\n                      \"executable\": \"zathura\",\n                      \"args\": [\n                          \"%p\",\n                          \"--synctex-forward=%l:1:%f\"\n                      ]\n                  },\n                  \"chktex\": {\n                      \"onOpenAndSave\": false,\n                      \"onEdit\": false\n                  },\n                  \"diagnosticsDelay\": 300,\n                  \"formatterLineLength\": 80,\n                  \"bibtexFormatter\": \"texlab\",\n                  \"latexFormatter\": \"texlab\",\n                  \"latexindent\": {\n                      \"local\": null,\n                      \"modifyLineBreaks\": true\n                  }\n              }\n          }\n      }\n  }\n  ```\n\n  `.config/zathura/zathurarc` file for reverse search:\n\n  ```\n  set synctex true\n  set synctex-editor-command \"kate %{input}:%{line}\"\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpenuchot%2Fthese","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjpenuchot%2Fthese","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjpenuchot%2Fthese/lists"}