{"guid":"c315bf59-5505-55a7-94bc-d7da22cd5756","title":"Betrieb und Modifikationen einer eigenen Compiler-Explorer Instanz","subtitle":null,"slug":"ptt-223-betrieb-und-modifikationen-einer-eigenen-compiler-explorer-instanz","link":"https://talks.mrmcd.net/ptt/talk/RCKRHP/","description":"Am CERN habe ich eine kleine Instanz von Compiler-Explorer (aka godbolt.org) betrieben und möchte berichten welche Modifikationen und Hacks dabei entstanden sind.\n\nCompiler-Explorer (godbolt.org) ist unter C++ Entwickler*innen ein sehr\nbeliebtes Werkzeug. Teilweise um zu lesen was ein Compiler tatsächlich aus dem\neigenen Quelltext macht, teilweise um an Code Fragmenten rumzufrickeln bis der\nCompiler endlich zufrieden ist, aber auch als pastebin mit eingebauter\nCompiler-diagnostics, … oder um im Internet recht zu haben und in einer\naufgeheizten Diskussion sagen zu können \"hier ist der Code, der Compiler frisst\nihn und macht super gute Assembly draus\".\n\nFür die tägliche Arbeit an unserem Software-Stack hat mir allerdings viel gefeht:\n * einfache Einbindung von header files unserer\nin-house Bibliotheken (incl. des aktuellen nightly builds und header files aus\ncode generation)\n * Anwendung unseres clang-format styles für einfacheres\nhin-und-her Kopieren\n * reibungslosere Bedienung von tools die alle\ndoch eher frickelig sind\n * Auflösung von transitiven Link-Abhängigkeiten für Code-Execution\n\nChallenge accepted: Was als kleiner proof-of-principle im Hackcenter bei der\nGPN 2018 anfing lief von Herbst 2018 bis Frühjahr 2020 als Webservice am\nCERN für eine Hand voll Nutzer.\n\nIm Vortrag möchte ich nur wenig C++ und Assembly zeigen oder gar wiederholen\nwas ihr von Matt Godbolt auf YouTube findet. Stattdessen zeige ich was alles\nnicht out-of-the-box ging und die Hacks die nötig waren bis alles\nzufriedenstellend lief und Nutzer*innen ihren Code kompilieren und ausführen konnten.\n\nAm Rande möchte ich auch Security Bedenken erwähnen die mir kamen - was dabei raus kam\nist allerdings nicht zur Nachahmung empfohlen.\n\nIm Laufe des talks gibt es drei kurze Umfragen (Namen müssen nicht angegeben werden)\n\n - https://t1p.de/yi0o (Wie gut kennt ihr Compiler-Explorer schon?)\n - https://t1p.de/derq (Wollt ihr ein detailiertes C++ Beispiel?)\n - https://t1p.de/n317 (Wollt ihr eine live Demo wie man eine Instanz startet?)\n\n\n*Stell deine Fragen zum Talk [in diesem Pad](https://di.c3voc.de/pad/ptt:talk:RCKRHP).*\n\nlinks:\n * [original blogpost](https://pseyfert.web.cern.ch/pseyfert/blog/compiler-explorer-for-lhcb.html)\n * [updates blogpost](https://pseyfert.web.cern.ch/pseyfert/blog/compiler-exploring-conted.html)\n * [github repo 0: core executable to generate configuration for compilation](https://github.com/pseyfert/compilecommands_to_compilerexplorer)\n * [github repo 1: executable to generate configuration extensions for linking and executing](https://github.com/pseyfert/parse-cmake-for-ce4lhcb)\n * [github repo 2: some other files used in the configuration](https://github.com/pseyfert/lhcb-compiler-explorer-config)\n * [github repo 3: docker setup used in production](https://github.com/pseyfert-cern-gitlab-backup/lb-compiler-explorer)\n * [github repo 4: record/backup/archive of what ran in production - hourly snapshots](https://github.com/pseyfert-cern-gitlab-backup/compiler-explorer)","original_language":"deu","persons":["pseyfert"],"tags":["divoc_ptt","223","2020"],"view_count":55,"promoted":false,"date":"2020-09-06T14:00:00.000+02:00","release_date":"2021-03-14T00:00:00.000+01:00","updated_at":"2026-01-15T13:15:12.563+01:00","length":3746,"duration":3746,"thumb_url":"https://static.media.ccc.de/media/conferences/divoc/ptt/223-c315bf59-5505-55a7-94bc-d7da22cd5756.jpg","poster_url":"https://static.media.ccc.de/media/conferences/divoc/ptt/223-c315bf59-5505-55a7-94bc-d7da22cd5756_preview.jpg","timeline_url":"https://static.media.ccc.de/media/conferences/divoc/ptt/223-c315bf59-5505-55a7-94bc-d7da22cd5756.timeline.jpg","thumbnails_url":"https://static.media.ccc.de/media/conferences/divoc/ptt/223-c315bf59-5505-55a7-94bc-d7da22cd5756.thumbnails.vtt","frontend_link":"https://media.ccc.de/v/ptt-223-betrieb-und-modifikationen-einer-eigenen-compiler-explorer-instanz","url":"https://api.media.ccc.de/public/events/c315bf59-5505-55a7-94bc-d7da22cd5756","conference_title":"Push to Talk","conference_url":"https://api.media.ccc.de/public/conferences/divoc_ptt","related":[],"recordings":[{"size":336,"length":3746,"mime_type":"video/webm","language":"deu","filename":"divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_webm-hd.webm","state":"new","folder":"webm-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2021-03-14T22:05:10.253+01:00","recording_url":"https://cdn.media.ccc.de/events/divoc/ptt/webm-hd/divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_webm-hd.webm","url":"https://api.media.ccc.de/public/recordings/52383","event_url":"https://api.media.ccc.de/public/events/c315bf59-5505-55a7-94bc-d7da22cd5756","conference_url":"https://api.media.ccc.de/public/conferences/divoc_ptt"},{"size":128,"length":3746,"mime_type":"video/webm","language":"deu","filename":"divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_webm-sd.webm","state":"new","folder":"webm-sd","high_quality":false,"width":720,"height":576,"updated_at":"2021-03-14T21:34:35.457+01:00","recording_url":"https://cdn.media.ccc.de/events/divoc/ptt/webm-sd/divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_webm-sd.webm","url":"https://api.media.ccc.de/public/recordings/52370","event_url":"https://api.media.ccc.de/public/events/c315bf59-5505-55a7-94bc-d7da22cd5756","conference_url":"https://api.media.ccc.de/public/conferences/divoc_ptt"},{"size":96,"length":3746,"mime_type":"video/mp4","language":"deu","filename":"divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_sd.mp4","state":"new","folder":"h264-sd","high_quality":false,"width":720,"height":576,"updated_at":"2021-03-14T21:21:34.292+01:00","recording_url":"https://cdn.media.ccc.de/events/divoc/ptt/h264-sd/divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_sd.mp4","url":"https://api.media.ccc.de/public/recordings/52363","event_url":"https://api.media.ccc.de/public/events/c315bf59-5505-55a7-94bc-d7da22cd5756","conference_url":"https://api.media.ccc.de/public/conferences/divoc_ptt"},{"size":57,"length":3746,"mime_type":"audio/mpeg","language":"deu","filename":"divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_mp3.mp3","state":"new","folder":"mp3","high_quality":false,"width":0,"height":0,"updated_at":"2021-03-14T21:15:05.250+01:00","recording_url":"https://cdn.media.ccc.de/events/divoc/ptt/mp3/divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_mp3.mp3","url":"https://api.media.ccc.de/public/recordings/52362","event_url":"https://api.media.ccc.de/public/events/c315bf59-5505-55a7-94bc-d7da22cd5756","conference_url":"https://api.media.ccc.de/public/conferences/divoc_ptt"},{"size":39,"length":3746,"mime_type":"audio/opus","language":"deu","filename":"divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_opus.opus","state":"new","folder":"opus","high_quality":false,"width":0,"height":0,"updated_at":"2021-03-14T21:12:31.779+01:00","recording_url":"https://cdn.media.ccc.de/events/divoc/ptt/opus/divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_opus.opus","url":"https://api.media.ccc.de/public/recordings/52361","event_url":"https://api.media.ccc.de/public/events/c315bf59-5505-55a7-94bc-d7da22cd5756","conference_url":"https://api.media.ccc.de/public/conferences/divoc_ptt"},{"size":218,"length":3746,"mime_type":"video/mp4","language":"deu","filename":"divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_hd.mp4","state":"new","folder":"h264-hd","high_quality":true,"width":1920,"height":1080,"updated_at":"2021-03-14T19:35:00.379+01:00","recording_url":"https://cdn.media.ccc.de/events/divoc/ptt/h264-hd/divoc_ptt-223-deu-Betrieb_und_Modifikationen_einer_eigenen_Compiler-Explorer_Instanz_hd.mp4","url":"https://api.media.ccc.de/public/recordings/52298","event_url":"https://api.media.ccc.de/public/events/c315bf59-5505-55a7-94bc-d7da22cd5756","conference_url":"https://api.media.ccc.de/public/conferences/divoc_ptt"}]}