slash

slash is a simple type-oriented programming language
Log | Files | Refs | README | LICENSE

HACKING (1855B)


      1                                ****************
      2                                * CONTRIBUTING *
      3                                ****************
      4 
      5 Thanks for your interest in contributing! Here a few rules and stuff to keep
      6 the project consistent and (relatively) easy to mantain.
      7 
      8 SETUP
      9 =====
     10 
     11 1. Clone the project
     12 2. Make a new branch:
     13     ~~~
     14 	git checkout -b ft/feature-name
     15 	~~~
     16 3. Do your changes
     17 4. Send patches
     18 
     19 SOURCE
     20 ======
     21 
     22 Project is written in POSIX-compliant (non-GNU) C99, and Slash itself. If
     23 justified, it can be ok to add a new language. Languages that are NOT gonna be
     24 merged:
     25 
     26 	* C++
     27 	* C#
     28 	* Rust
     29 	* Zig
     30 	* Underdocumented dialects of languages
     31 
     32 CONVENTIONS
     33 ===========
     34 
     35 You shall use hard tabs, equivalent to eight characters. You also must limit
     36 your column count to 80 characters HARD, although messages must not be cut out,
     37 as that would make them impossible to grep for. A function implementation's
     38 type must be in the line before the name, and functions not taking anything
     39 must still fill in the prototype with void. All comments must be in C-style /*
     40 and */ (the use of // is forbidden). Data shall be separated from code except
     41 on `for` loops. This rule must be applied recursively to each scope.
     42 
     43 AI
     44 ==
     45 
     46 With the rising use of AI, it has became sensible to restrict the use of AI.
     47 
     48 AI can be used to generate code, or help debug, but the user must have plenty
     49 of knowledge about the generated source(s), a good way is trying to read the
     50 code after you paste it, or to type it out yourself.
     51 
     52 When debugging, AI will often leave comments like // FIX: or similar. These
     53 clutter the codebase with comment only a single programmer understands.
     54 
     55 Of course, if a bug on this codebase becomes infamous, you can always leave a
     56 note like:
     57 
     58 	/* fixes the $BUG bug
     59 	 *     - your name
     60 	 */
     61 
     62 AI is completely forbidden for documentation.
     63