4/7
This commit is contained in:
@@ -3,33 +3,52 @@
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Everest Linux - Docs</title>
|
||||
<link type="text/css" rel="stylesheet" href="../css/nord.css"/>
|
||||
<title>Everest Linux - Documentation</title>
|
||||
<link type="text/css" rel="stylesheet" href="../css/k2.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<!-- Navbar -->
|
||||
<div class="sidenav">
|
||||
<img src="../img/everest-nord.svg" alt="everest-logo">
|
||||
<img src="../img/everest-k2.svg" alt="everest-logo" style="width: 185px; height: 185px;">
|
||||
<a href="../index.html">Home</a>
|
||||
<a href="../about.html">About</a>
|
||||
<a href="../install.html">Install</a>
|
||||
<a href="../packages.html">Packages</a>
|
||||
<a href="../download.html">Downloads</a>
|
||||
<a href="home.html">Docs</a>
|
||||
<a href="../errata.html">Errata</a>
|
||||
<a href="home.html">Documentation</a>
|
||||
<a href="../errata.html">Security</a>
|
||||
<a href="https://shop.everestlinux.org">Store ↗</a>
|
||||
<a href="https://git.everestlinux.org">Git ↗</a>
|
||||
</div>
|
||||
|
||||
<!-- Rest of page -->
|
||||
<div class="main">
|
||||
<link rel="stylesheet" href="../assets/js/styles/github-dark.css">
|
||||
<script src="../assets/js/highlight.min.js"></script>
|
||||
<script>hljs.highlightAll();</script>
|
||||
|
||||
<button onclick="window.location.href='home.html';">
|
||||
Back to home
|
||||
</button>
|
||||
<h2>Developer Documentation</h2>
|
||||
<p>This page contains developer-specific documentation.</p>
|
||||
<h2>1 - Coding Style</h2>
|
||||
<p><strong>1.1</strong> C</p>
|
||||
<p><i>1.1.1</i> File Structure</p>
|
||||
<h2>1 - AI Policy</h2>
|
||||
<p>Large Language Models are tools, they should be used to aid a programmer and not replace them.</p>
|
||||
<p>If LLMs must be used for a project, please ensure there is some degree of human input and oversight. Additionally, projects using LLM-generated code MUST place a disclaimer file in their source code tree.</p>
|
||||
<fhead><strong>FILE:</strong> LLM_DISCLAIMER</fhead>
|
||||
<div class="file">
|
||||
<p>This project utilizes Large Language Model (LLM) generated code.</p>
|
||||
<p>As required by the Everest Linux AI policy, all projects utilizing LLM generated code MUST provide this disclaimer alongside the program's source code.</p>
|
||||
<p>Please contact the program's maintainer if you have questions.</p>
|
||||
<p>Please contact copyright@everestlinux.org for copyright inquiries.</p>
|
||||
</div>
|
||||
<h2>2 - Security Policy</h2>
|
||||
<p>All programs should periodically be audited by a member of the Everest Linux security team to ensure compliance with the distribution's design principle of security.</p>
|
||||
<p>Patching security vulnerabilities should be considered a top priority, and are expected to be done in as timely of a manner as possible.</p>
|
||||
<p>Please direct all questions to security@everestlinux.org.</p>
|
||||
<h2>3 - Coding Style</h2>
|
||||
<p><strong>3.1</strong> C</p>
|
||||
<p><i>3.1.1</i> File Structure</p>
|
||||
<p>Files should follow this format:<p>
|
||||
<ul>
|
||||
<li>Header comment, including program name and LICENSE</li>
|
||||
@@ -43,37 +62,41 @@
|
||||
<p>Note that function declarations should be defined in a separate header, ex:</p>
|
||||
<p><cil>#include "project_name.h"</cil></p>
|
||||
<p>Indentations should be a single tab and be equal to 8 characters for better readability.</p>
|
||||
<p><i>1.1.2</i> Functions</p>
|
||||
<p><i>3.1.2</i> Functions</p>
|
||||
<p>Functions should have their return type on one line, their name and parameters one line down, and the bracket one line under the name and arguments.</p>
|
||||
<p>Example:</p>
|
||||
<bigcodehead><strong>CODE:</strong> Proper function formatting in C</bigcodehead>
|
||||
<div class="bigcode">
|
||||
<p>static void</p>
|
||||
<p>usage(int argc, char *argv[])
|
||||
<p>{</p>
|
||||
<p> printf("usage: %s [-a] [-b]\n", argv[0]);</p>
|
||||
<p>}</p>
|
||||
</div>
|
||||
<p></p>
|
||||
<p><i>1.1.3</i> Example Program</p>
|
||||
<pre class="bigcode"><code style="all:unset;" class="language-c">
|
||||
static void
|
||||
usage(int argc, char *argv[])
|
||||
{
|
||||
printf("usage: %s [-a] [-b]\n", argv[0]);
|
||||
}
|
||||
</code></pre>
|
||||
<p><i>3.1.3</i> Example Program</p>
|
||||
<fhead><strong>FILE:</strong> prog.c</fhead>
|
||||
<div class="file">
|
||||
<p>#include <stdio.h></p>
|
||||
<p> </p>
|
||||
<p>#include "prog.h"</p>
|
||||
<p> </p>
|
||||
<p>void</p>
|
||||
<p>hello()</p>
|
||||
<p>{</p>
|
||||
<p> printf("hello\n");
|
||||
<p>}</p>
|
||||
<p> </p>
|
||||
<p>int</p>
|
||||
<p>main()</p>
|
||||
<p>{</p>
|
||||
<p> hello();
|
||||
<p>}</p>
|
||||
</div>
|
||||
<pre class="file"><code style="all:unset;" class="language-c">
|
||||
/* Headers included from standard library */
|
||||
#include <stdio.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/* Headers included locally */
|
||||
#include "prog.h"
|
||||
#include "somelib.h"
|
||||
|
||||
void
|
||||
hello(void)
|
||||
{
|
||||
printf("Hello\n");
|
||||
}
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
hello();
|
||||
return 0;
|
||||
}
|
||||
</code></pre>
|
||||
<p></p>
|
||||
<fhead><strong>FILE:</strong> prog.h</fhead>
|
||||
<div class="file">
|
||||
@@ -84,7 +107,7 @@
|
||||
<p> <p>
|
||||
<p>#endif</p>
|
||||
</div>
|
||||
<p><i>1.1.4</i> common.h</p>
|
||||
<p><i>3.1.4</i> common.h</p>
|
||||
<p>For large programs which include many header files, it is perfectly acceptable to define these includes in a separate header and then include that in each file.</p>
|
||||
<fhead><strong>FILE:</strong> common.h</fhead>
|
||||
<div class="file">
|
||||
@@ -108,11 +131,29 @@
|
||||
<p> printf("hello\n");
|
||||
<p>}</p>
|
||||
</div>
|
||||
<p><strong>1.2</strong> Best Practices</p>
|
||||
<p><strong>3.2</strong> Best Practices</p>
|
||||
<ul>
|
||||
<p><li>Avoid abbreviation and single letter variables.</li><p>
|
||||
<p><li>Avoid deep nesting.</li></p>
|
||||
</ul>
|
||||
<p><i>3.2.1 Rationale for Best Practices</i></p>
|
||||
<p>Readability is the primary rationale for both of these practices.</p>
|
||||
<p>If nobody except you is able to read your code, it is unreadable.</p>
|
||||
<p><i>3.2.2 Following Best practices</i></p>
|
||||
<p>Single letter variables should be eliminated whenever possible.</p>
|
||||
<bigcodehead><strong>CODE:</strong> Avoiding single letter variables</bigcodehead>
|
||||
<pre class="bigcode"><code style="all:unset;" class="language-c">
|
||||
/* The actual meaning of x is ambiguous without
|
||||
* looking at its associated logic. */
|
||||
int x;
|
||||
|
||||
/* Let's say x is referring to an x-coordinate
|
||||
* on a coordinate plane. In this scenario, it
|
||||
* would be appropriate to use a
|
||||
* more descriptive name. */
|
||||
int x_position;
|
||||
</code></pre>
|
||||
|
||||
<h2>2 - Licensing</h2>
|
||||
<p><strong>2.1</strong> Disclaimer</p>
|
||||
<warnhead><strong>WARNING:</strong></warnhead>
|
||||
@@ -147,7 +188,7 @@
|
||||
<p>Page last updated 03/17/2025 @ 12:00</p>
|
||||
<p>Page licensed under GNU Free Documentation License 1.3 or later</p>
|
||||
<p>--------------------</p>
|
||||
<p>Copyright (C) 2021-2025 Everest Linux</p>
|
||||
<p>Copyright (C) 2021-2026 Everest Linux</p>
|
||||
<p>Linux (R) is a registered trademark of Linus Torvalds.</p>
|
||||
<p>Everest Linux is provided AS IS, WITHOUT WARRANTY.</p>
|
||||
</footer>
|
||||
|
||||
Reference in New Issue
Block a user