bismon (dies ist ein vorübergehender Name) ist ein anhaltender Monitor , der (in Zukunft) mit dem GCC -Compiler durch Plugins interagieren würde. Es ist (oder wird) irgendwie ein Nachfolger meines alten GCC -Schmelzprojekts; Das mittelfristige Ziel ist auch die statische Programmquellcodeanalyse mit Hilfe von GCC. Das Quellcode -Repository (GPLV3+ lizenziert) befindet sich unter https://github.com/bstarynk/bismon. My (Basile bismon , angewendet bei CEA, Liste in Frankreich). Bei der Analyse einer IoT-Software, die in C oder C ++ und (Kreuz-) von GCC auf einem Linux-Desktop zusammengestellt wurde. In den Jahren 2019 - 2021 wird die Entwicklung von bismon teilweise vom Decoder H2020 -Projekt im Rahmen der Grant -Vereinbarung 824231 (im Zusammenhang mit seinem anhaltenden Wissensmonitor WP1) finanziert.
Derzeit (Beginn von 2021) bismon noch in der Beta -Stage, und es handelt sich um eine kostenlose Software unter GPLV3+ Lizenz. Es ist für eine Linux x86-64-Desktop-Entwickler-Workstation vorgesehen (funktioniert nicht unter Windows, MacOSX oder Android).
Einige immer noch unvollständige Dokumentation (als technischer Bericht doc/bismon-doc.pdf in PDF) können generiert werden (mit dem Befehl make Sie diesen make doc vor, dass Sie ein beschreibbares $HOME/tmp/ verzeichnis haben müssen). Ein früher (inoffizieller) Entwurf dieses Berichts könnte auf http://starynkevitch.net/basile/bismon-doc.pdf verfügbar sein
Während Bismon derzeit durch H2020-Projekte mit statischen Analysezielen finanziert wird, können Sie bitte feststellen, dass Bismon später als reifer-nach 2024- wahrscheinlich als irgendwie generischer Rahmen verwendet werden kann, mit vielen zusätzlichen Arbeiten (Jahre, nicht Monate), für viele andere Zwecke (das bedeutendste Grenzwert ist Ihre Imagination und die Kraft des Computers . Bewusst einer bewussten Maschine , ISBN: 978-1848211018), anspruchsvolle desktop-ähnliche grafische Umgebungen, viele interaktive webbasierte kollaborative Software-Tools, die gleichzeitig von einem Team oder Objektdatenbanken oder relevanten Problemen verwendet werden. Da Bismon GPLV3+ lizenziert ist, sollte jede zukünftige Software, die sie verwendet, praktisch auch GPLV3 [email protected] sein (aber andere Lizenzprogramme könnten möglich sein.
[Joint Strike Fighter Air Fahrzeug C ++ Codierungsstandards] (https://www.strustrup.com/jsf-av-rules.pdf)
[Zero-Overhead Deterministische Ausnahmen: Werte werfen] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0709r4.pdf)
[C ++ Standardisierung, Papiere 2021] (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/))
Entwickeln Sie eine Art hochrangiger (ausdrucksstärkerer, deklarativer) domänenspezifischer Sprache , um die statische Programmquellencode-Analyse über GCC zu erleichtern und GCC-Plugins dafür zu generieren , sodass die gleichen Motivationen wie GCC-Schmelze (und breiter miteinander verbundener Motivationen-zu Coccinnelle, Frama-C, Rascal, CrossMiner, Clang Analyzer, Clasp, Clasp, Clasp, usw., usw.).
Wichtige Merkmale und Ziele dieser domänenspezifischen Sprache und ihrer Implementierung sind:
orthogonale Ausdauer; Dies ist ein Hauptmerkmal (nützlich für das gesamte Programm statische Quellcodeanalyse eines analysierten Programms aus mehreren Übersetzungseinheiten, die jeweils unabhängig zusammengestellt wurden), das nicht realistisch zu GCC -Schmelze hinzugefügt wurde und erfordert daher eine vollständige Neugestaltung. Es wird erwartet, dass der bismon -Prozess relativ langlebig ist und die meisten Daten von einem Run bis zum nächsten beibehält (im store*.bmon textuelle Dateien). In Zukunft wird der bismon -Prozess mit gcc oder g++ (Cross-) Kompilierungsprozessen kommunizieren (unter Verwendung eines GCC-Plugins, der von bismon selbst erzeugt wird)
Dynamisches Typing wie in Python, Schema, Ruby, JavaScript, ... (und irgendwie schmelzen).
Multi-Threaded, aber ohne Gil. Ein kleiner Fadenpool von Arbeiterfäden wird wiederholt und gleichzeitig Tasklets aus einer globalen Agenda abgerufen. Jedes Tasklet läuft schnell (Millisekunden) in einem Arbeiter -Thread und kann diese Agenda aktualisieren (z. B. indem Sie sich selbst fortsetzen).
reflexiv
homoikonisch
Genau Müll gesammelt
deklarativ, mit guten Musteranpassungen und Regeln Formalismen
Bootstraß und mit C zusammengestellt, vielleicht einige Teile mit GCCJit.
Also metaprogrammiert
Generierung von GCC -Plugins (in C ++), die mit einem RPC -Mechanismus mit bismon interagieren würden
Beachten Sie, dass die Syntax und die Semantik (immer noch undokumentiert) von bismon in Arbeit ist und sich inkompatibel ändern.
Wenn bismon abgeschlossen sein wird, um nutzbar zu sein, wird dies in der Regel von einem kleinen Team von Entwicklern verwendet, die an einigen (gemeinsamen) Softwareprojekten zusammenarbeiten, die hauptsächlich in C oder C ++ (und vorzugsweise einem kostenlosen Softwareprojekt) codiert werden.
Der größte Teil von bismon ist in C99 oder C11 (einschließlich einer zunehmenden Menge an generiertem C-Code unter modules/ ), aber einige wenige handgeschriebene Code sind in C ++ 14 (insbesondere in den misc_BM.cc BM_makeconst.cc Metaprogram-Generierung von C-Headers).
Auf Linux/x86-64 (z. B. Debian/instabil oder Buster oder neuer Ubuntu 18 oder 19) nur (ohne zusätzliche Patches oder Arbeiten funktioniert, dass Bismon nicht auf 32-Bit-Maschinen funktioniert!):
Sie sollten in der Lage sein, viele Open -Source -Softwarepakete für ihren Quellcode zu kompilieren. Sie sollten über ein aktuelles GNU/Linux-System mit Root-Akessern, vorzugsweise 32-Gigabyte oder mehr RAM, einem X86-64-Prozessor mit mindestens 4 Kernen und mindestens 250 GBYTES freier Festplattenraum verfügen. Es wird erwartet, dass die Linux-Befehlszeilenschnittstelle und Unix-Shells wie GNU Bash oder ZSH fließend fließen. Sie sollten in der Lage sein und gestattet sein, GCC 10 oder vorzugsweise GCC 11 aus seinem Quellcode zu kompilieren und mit Quellcode -Editoren wie GNU EMACs, VIM, Geany usw. vertraut zu sein. Sie haben es genossen, SICP zu lesen.
Siehe auch die Abhängigkeit von Abhängigkeiten und seine Readme -Abhängigkeiten - vielleicht nicht aktualisiert.
Die jüngste GCC (SO GCC 10 oder vorzugsweise GCC 11 ...), mit C- und C- und C ++ -und JIT -Unterstützung sowie Plugins aktiviert (wenden Sie sich an gcc -v ; Wenn Ihr System gcc und g++ keine Unterstützung für Plugins und libgccjit fehlt, sollten Sie eine kürzlich durchgeführte GCC -Version aus seinem Quellcode erstellen und installieren, und konfigurieren Sie sie, um sie zu erstellen.). Ein alter GCC (z. B. Version 9 oder früher) kann nicht verwendet werden.
'/usr/src/Lang/gcc-11.1.0/configure' '-v' '--prefix=/usr/local' '--with-gcc-major-version-only' '--program-suffix=-11' '--enable-shared' '--enable-linker-build-id' '--enable-nls' '--enable-bootstrap' '--enable-clocale=gnu' '--enable-libstdcxx-debug' '--enable-libstdcxx-time=yes' '--with-default-libstdcxx-abi=new' '--enable-gnu-unique-object' '--disable-vtable-verify' '--enable-plugin' '--enable-default-pie' '--with-system-zlib' '--enable-libphobos-checking=release' '--with-target-system-zlib=auto' '--enable-objc-gc=auto' '--enable-multiarch' '--disable-werror' '--with-arch-32=i686' '--with-abi=m64' '--with-multilib-list=m32,m64,mx32' '--enable-multilib' '--with-tune=native' 'CFLAGS=-O2 -g' 'CXXFLAGS=-O2 -g' '--enable-host-shared' '--enable-languages=c,c++,d,go,jit,lto' ....Eine aktuelle Python 3 mit PIP installiert.
Die Dokumentation erfordert A /usr/bin/mipsel-linux-gnu-gcc-8 Cross-Compiler, das vom gcc-8-mipsel-linux-gnu Debian-Paket bereitgestellt wird. Vorsicht, dass das Paket mit gcc-multilib* -Paketen auf Debian in Konflikt steht.
Ninja Builder, Version 1.8 oder neuer wird benötigt (und wird von make gestartet). Verwenden Sie keine ältere (wenden Sie sich an ninja --version ; Wenn das nicht funktioniert, ist Ihr ninja zu alt).
Ein aktueller Guile -Dolmetscher ist erforderlich, Version 2 oder besser (vorzugsweise Guile 2.2). Ich weiß und mag nicht, dass Python und der leichte Dolmetscher GNU, LGPLV3+und mir viel vertrauter ist. Außerdem sind Konzepte aus Lisp -Dialekten wie Schema (die von Guile implementierte Sprache) stark relevant, um Bismon zu verstehen, wobei Guile verwendet wird, um das von dem Ninja Builder verwendete build.ninja zu generieren.
Eine kürzlich von Guile verstärkte mailutils , das ist die Debian mailutils-guile die die ausführbare Datei /usr/bin/guimb zur Verfügung stellt.
GLIB 2,58 oder besser (was auch für GTK oben benötigt wird), da einige Routinen mit niedrigem Niveau, insbesondere UTF-8, miteinander verbunden sind.
Jansson 2.12 oder besser wird für JSON (in Bezug auf Websockets verwendet) benötigt.
Für die Webschnittstelle wurde Libonion benötigt, wurde jedoch im Juni 27. 2022 entfernt, Git Commit a943cf687c748 oder Tag no-more-ibonion-tag (mit Tippfehler: fehlend l ). Vor diesem Begehen suchen Sie nach BISMON_LIBONION Preprocessor Flag.
GNU machen 4 oder besser
CCache wird verwendet, um nutzlose Neukompilationen zu vermeiden. Wenn Sie es nicht haben, müssen Sie unser Makefile für die Zusammenstellung generierter Module bearbeiten.
libbacktrace - es ist manchmal Teil Ihres Systems GCC , aber Sie werden es besser separat installieren (z. B. in Ihrem /usr/local/ Präfix)
Für eine gewisse Dokumentation wie diese README.md ist Markdown erforderlich
GNU -Einzug (2.2.x endlich) und Astyle (mindestens 3.1) sind nützlich, um make indent . Für generierte Module ist nun indent erforderlich .
TARDY (eine tar -Datei -Postprozessor) wird verwendet, um Dokumentation zu generieren.
Latex - Wahrscheinlich als Texlive Suite oder Luatex- und verwandte Dienstprogramme ( pdflatex , makeidx , bibtex ...) mit Inkscape und Hevea und Xindy werden zur Dokumentation benötigt.
Auf Debian/instabiler oder neuer Ubuntu apt-get install build-essential make ninja-build gcc-8 g++-8 gcc-8-plugin-dev libgccjit-8-dev ccache gcc-8-mipsel-linux-gnu inkscape hevea texlive-full xindy fonts-inconsolata ttf-ubuntu-font-family fonts-ubuntu ttfautohint guile-2.2 mailutils-guile für die Bauinfrastruktur; Beachten Sie, dass gcc-8-mipsel-linux-gnu der MIPEL GCC-Cross-Compiler ist-es widerspricht den gcc-multilib* -Paketen; inkscape , hevea , texlive-full (ein riesiges Meta-Package), xindy , fonts-inconsolata , fonts-ubuntu , ttfautohint werden zur Erstellung der Dokumentation benötigt.
Wir brauchen noch apt-get install libgtk-3-dev für GTK.
Und apt-get install libglib2.0-dev libjansson-dev für unseren Glib und Jansson benötigte Abhängigkeiten.
Der libbacktrace ist in Debian nicht unabhängig verpackt. Ich empfehle, es aus seinem Quellcode aus zu bauen und zu installieren, oder (nicht empfohlen,?, Aber machbar) das Makefile bearbeiten, um den von Ihrem System GCC Compiler zu verwenden.
Das libonion ist in Debian nicht unabhängig verpackt.
apt-get install markdown indent astyle tardy und apt-get install texlive texlive-full hevea
Die dependencies/ das Unterverzeichnis sind für git submodule -S im Zusammenhang mit libbacktrace und libonion bezogen
Möglicherweise müssen Sie .mjs als gültiges Suffix oder Dateierweiterung für application/javascript -MIME -Typ -Typ /etc/mime.types -Typ -Datei addieren. Lesen Sie über JavaScript -Module im Web und sehen Sie sich Debian Bug#927300 an.
Laufen Sie locale , um sicherzustellen, dass Ihre Lokalisierung in UTF-8 posix-konform oder englisch (britisch oder amerikanisch) ist (sie kann zum Beispiel nicht italienisch oder griechisch oder französisch sein). Es sollte also POSIX oder C oder en_US.UTF-8 oder en_GB.UTF-8 sein. Möglicherweise möchten Sie Ihre Umgebungsvariablen angemessen einstellen (zumindest LANG=en_US.UTF-8 und LANGUAGE=en_US:en und LC_ALL=en_US.UTF-8 , ohne andere LC_* -Envölker-Variable). Siehe Gebietsschema (1), Gebietsschema (7), UTF-8 (7), Gebietsschema (5), SetLocale (3). Bitten Sie mich jedoch nicht, diese sehr subtilen internationalen Details und Lokalisierungsdetails zu verstehen, dieses Thema ist sehr komplex. Wenn Sie diese Arbeit noch von mir erledigen müssen, senden Sie mir eine E -Mail bei der Arbeit nach [email protected] . Aber erwarten Sie nicht, dass es von mir vor 2024 gemacht wird.
Die .mjs -Dateierweiterung gilt für JavaScript -Module. Wenn Ihre Datei /etc/mime.types (von libonion verwendet) nicht davon weiß, müssen Sie dort die folgenden Zeilen hinzufügen (die erste Zeile unten mit einem Hash # ist ein Kommentar; Was wichtig ist, ist die Zeile, mjs erwähnt).
# in your /etc/mime.types for JavaScript modules
application/javascript mjs
Die Dokumentationsgenerierung benötigt ein beschreibbares $HOME/tmp/ Verzeichnis.
Ein verantwortungsbewusster Hauptkontakt von menschlichem Menschen sollte in einer Datei contact_BM angegeben werden (Kommentare mit # werden im Inneren akzeptiert, sollte jedoch eine Zeile von John Doe <[email protected]> inspirieren lassen). Diese Datei sollte sich im aktuellen Verzeichnis oder in Ihrem Heimverzeichnis befinden oder ausdrücklich mit --contact-file=PATH gegeben. Meine ~/contact_BM -Datei könnte sein:
# file $HOME/contact_BM
Bismon master (Basile Starynkevitch) <[email protected]>
git -Konfiguration Möglicherweise möchten Sie diesen Vorschlag (passen Sie diesen Vorschlag an und definieren Sie Ihren benutzerdefinierten Hunk-Header), um die interaktive Ausgabe von git diff auf store*.bmon persistierende Datendateien zu verbessern. Vielleicht etwas, das von git config diff.bismon.xfuncname '"^«_[0-9A-Za-z_]*$"' inspiriert ist, könnte funktionieren, aber nicht wirklich.
Klonen Sie dieses gewohnte git -Repository und bauen Sie dann bismon im erhaltenen Quellbaum.
Schauen Sie sich das Makefile an und bearbeiten Sie sie bei Bedarf. Vielleicht aktualisieren Sie die PREPROFLAGS= und LIBES= Zeilen, z. B. um die GCC- libbacktrace Ihres Systems zu verwenden, indem Sie $(shell gcc-7 -print-file-name=include) in die PREPROFLAGS= Line = Line $(shell gcc-7 -print-file-name=libbacktrace.a) die Libes = Line = Line = Line (Shell GCC-7- LIBES= Datei) verwenden. Natürlich ersetzen Sie gegebenenfalls die 7 x 8. Vielleicht müssen Sie GCC= und GXX= auf Ihre spezifischen GCC C- und C ++ - Compiler explizit einstellen.
Lauf machen oder make -j3 make oder machen
Der Persistenzmechanismus wird durch make redump getestet
./bismon Programm. Wir wollen GTK loswerden. Es wird als bismongtk und bismonion symliziert.
Stellen Sie sicher, dass Sie bismon , bismongtk oder bismonion mit --help zuerst die verfügbaren Programmoptionen verstehen.
bismon (zumindest seine Webversion) muss über Sie wissen. Sie sollten sich also einmal daran registrieren (und das würde seinen anhaltenden Zustand erweitern). Und bismon (genauer bismonion ) hat ein Anmeldeformular, sodass Sie ein Passwort haben sollten (spezifisch für bismon , nicht mit jedem anderen Passwort zu tun haben).
Sie müssen zunächst eine leere Kennwortdatei initialisieren (die Standardkennwortdatei lautet ~/passwords_BM ; Sie können eine andere in der Befehlszeile angeben). Führen Sie also den Befehl touch ~/passwords_BM in einem Terminal (Shell) aus, um diese leere Datei zu erstellen. Anschließend müssen Sie die Berechtigung (nur von Ihrem UNIX-Benutzer durch Ihren UNIX) mit chmod u+rw,go-rwx ~/passwords_BM einschränken. Lesen Sie endlich bei ls -ls ~/passwords_BM dass diese Datei leer und lesbar und nur von Ihnen beschreibbar ist.
Dann werden Sie sich selbst registrieren. Wenn Alan Turing Ihr Name oder Pseudo ist und [email protected] Ihre Haupt-E-Mail ist, wobei Ihre sekundäre E --batch Mail turing@localhost ist, können Sie sich bismon mit etwas ähnlichem wie --contributor='Alan Turing;[email protected];turing@localhost' --dump-after-load=. Programmoptionen. Natürlich sollten Sie Alan Turing , [email protected] und turing@localhost durch alles ersetzen, was für Sie angemessen ist. Die sekundäre E -Mail (auch Alias genannt) ist optional. Wenn Sie es nicht verwenden (wenn Sie also keinen Alias angeben, was wahrscheinlich ist, ersetzen Sie turing@localhost durch eine leere Zeichenfolge), weiß bismon nicht mehr über Sie als git (siehe Git -Konfiguration für user.email und user.name ). Sie können sogar ein Shell -Skript codieren, um diese personenbezogenen Dateninformationen aus git zu extrahieren und in bismon zu versetzen.
Endlich müssen Sie Ihr Passwort festlegen (es hat nicht mit anderen Kennwörtern in Ihrem Computer oder im Web zu tun, sollte aber mindestens 10 Unicode-Zeichen und Ziffern, Buchstaben, Unterbrechungen haben), wie es bismon bekannt ist, unter Verwendung der Option --add-passwords (auch mit --batch und --dump-after-load=. ). To set your initial password to mypass!123456 create some temporary text file (it contains contributor names and their updated passwords in clear text, so you should not keep it), perhaps /tmp/addpassbismon , containing for example Alan Turing:mypass!123456 add run bismonion with --add-passwords=/tmp/addpassbismon --batch then remove /tmp/addpassbismon . Natürlich werden Sie besser ein Shell -Skript schreiben, das das einpackt, und sicherstellen, dass Sie ein übereinstimmendes Passwort haben, das nicht in diesem README.md ist.
Möglicherweise fügen Sie vielleicht ein paar andere Benutzer (wahrscheinlich weniger als ein Dutzend) hinzu, denen Sie vertrauen und die mit Ihnen arbeiten können. Jeder Benutzer könnte das bismon -System so leicht wie möglich durcheinander bringen oder missbrauchen. Seien Sie dann sicher mit der DSGVO konform, wenn einer Ihrer Benutzer europäisch ist (und die Einhaltung der DSGVO ist dann Ihre Verantwortung ). Das Anmeldeformular ist vorgeschrieben (mit Code von web_ONIONBM.c ) aus der Quelldatei login_ONIONBM.thtml (und Sie können den Text in dieser Datei verbessern, wenn Sie möchten).
bismon Es ist noch nicht wirklich verwendbar, außer von mir (Basilil) im Juli 2018 (noch keine statische Quellcodeanalyse, noch keine Generation von GCC -Plugins). Wenn Sie etwas mit GTK sehen möchten, geben Sie ./bismongtk aus, dann geben Sie the_system in das Befehlsfenster mit dem Namen New-Bismon ein, dann wurden sowohl Strg- als auch zurückgedrückt . Wenn Sie über die Weboberfläche etwas sehen möchten, führen ./bismonion in Ihrem Webbrowser die URL (möglicherweise localhost:8086/ oder was auch immer mit --web-base ) aus.
Es wird empfohlen, ab und zu make clean (z. B. täglich oder wöchentlich). bismon macht beim Generieren von Dateien eine Sicherung ihrer früheren Version.
Fragen Sie mich (Basile Starynkevitch, [email protected] oder [email protected] ...) für Einzelheiten.
Dieses git Repository enthält auch den Jqueryui 1.12-Framework (mit einer anderen MIT-Lizenz) unter webroot/jquery-ui (mit einer anderen MIT-Lizenz)
Verwenden Sie es (als stopbismon ) Ihr eigenes Risiko, wenn $HOME/bismon Bismon -Quellcode und ausführbare Datei enthält:
#!/bin/bash -x
# script stopbismon
if [ -f $HOME/bismon/_bismon.pid ]; then
kill -TERM $(/bin/head -1 $HOME/bismon/_bismon.pid)
else
pkill bismon
fi
Dies ist unveröffentlichte kostenlose Software
Die Lizenz (GPLV3+) ändert sich wahrscheinlich nicht (sie ist vertraglich im Chariot -Stipendium festgelegt). Der Urheberrecht ist wahrscheinlich falsch: In generierten Dateien entspricht sie noch nicht den GPL -Erwartungen. Diese Details stehen aus, aber es gibt auch noch viel mehr Fehler.
Der Autor ist sich Mitte des Jahres 2019 in diesem bismon -System - einem Forschungsprojekt - voll bewusst - es ist jedoch keine Priorität (da die Fortsetzung der progressiven Bootstrap von Bismon viel wichtiger ist und noch nicht erreicht wird). Die GTK -Schnittstelle ist häufig durch Design und Abstürze (das wird nicht korrigiert) fehlerhaft und sollte so schnell wie möglich durch eine verwendungsfähigere Weboberfläche ersetzt werden - und das sind Mitte 2019. Bitte kontaktieren Sie per E -Mail an den Autor, um mögliche Problemumgehungen zu erhalten. Beachten Sie, dass solche vorübergehenden Fehler, die dem Autor bekannt sind, nicht als Bismon gitlab -Probleme registriert sind, da diese Software noch unveröffentlicht ist.
In Commit 24E400E4B25EA8FBD91 wird die Dokumentation nicht generiert.
Entfernen input{appendix-bm} aus Datei bismon-doc.tex lösen diesen Fehler nicht.
Die bevorzugte Möglichkeit, sie zu melden
Natürlich sollte ein Problem in sich geschlossen werden. Bitte geben Sie explizit die Ausgabe von bismon --version auf Ihrem Computer, wenn Sie bismon bauen konnten.
Wenn sich das Problem mit dem Erstellen der ausführbaren bismon -Datei bezieht, geben Sie explizit alle von Ihnen ausgeführten Linux-Befehle an (nachdem Sie das Skript distclean-script.bash Skript untersucht und erfolgreich ausgeführt haben, oder direkt nach einem frischen git clone Klonbefehl). Erwähnen Sie die Ausgabe von git log -3 .
Alternativ (wenn Sie kein github -Problem hinzufügen möchten) senden Sie eine E-Mail (UTF-8 codiert, HTML5 ist vorzuziehen) in englischer Sprache oder in Französisch (oder vielleicht auf Russisch, nur wenn Sie keine E-Mail in englischer Sprache oder Französisch senden können) an [email protected] oder [email protected]. Ich werde versuchen, auf Englisch oder Französisch zu antworten (da mein geschriebener Russisch so schlimm ist).
Wenn Sie einen Screenshot senden müssen, fügen Sie Ihrer E -Mail ein Bild mit JPEG oder PNG an.
Wenn Sie mehrere Dateien senden möchten oder müssen, archivieren Sie alle in einem einzigartigen Verzeichnis (dessen Grundname (1) nur Buchstaben, Ziffern und einige unterstrichen _ und machen Sie ein Teerarchiv (1) von ihnen. Geben Sie mir explizit den tar -Befehl, den ich (unter Linux) ausführen muss, um Ihr Archiv zu extrahieren. Sie können annehmen, dass ich auf meinem Linux -Computer GNU Tar Version 1.30 oder besser habe.
Wenn Sie mir einen C- oder C ++ - Code senden, der von bismon verarbeitet werden soll, erlauben Sie mir explizit, ihn zu kompilieren und Kommentare (UTF8 codiert) in Englisch, Französisch oder Russisch hinzuzufügen.
Wenn möglich, fügen Sie ein Shell -Skript hinzu (für GNU Bash oder für ZSH ....), mit dem ich diesen Fehler reproduzieren kann, und nennen Sie dieses Skript in Ihrem E -Mail- oder Fehlerbericht.
Mein Arbeitgeber (wenn Sie außerhalb von CEA sind ....) könnte auch einige Informationen zu Finanzmitteln, formeller Zusammenarbeit usw. bevorzugen. Wenn möglich, erwähnen Sie sie in Ihrer E -Mail explizit auf Englisch oder in Französisch.