Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
dev:source [2010/04/18 15:16] digitalman |
dev:source [2022/02/12 01:17] digital man [For Linux] v3.19b is the latest, not 3.18b. |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Source Code ====== | ====== Source Code ====== | ||
- | Synchronet is free open source software. You can get the current (or older) source (mostly in C) from the Synchronet [[CVS]] repository (using a CVS client or a web browser) or you can download the most recently successfully built snapshot of the source code from [[bbs:Vertrauen]]: | + | Synchronet is free open source software. You can get the current (or older) source (mostly in C) from the Synchronet [[dev:Git]] repository (using a Git client or a web browser) or you can download the most recently successfully built snapshot of the source code from [[bbs:Vertrauen]]: |
+ | ===== Static Analysis ===== | ||
+ | |||
+ | The projected is statically-analyzed for defects nightly (using a Linux-x64 build). See http://scan.coverity.com/projects/synchronet for details. | ||
===== For Windows (32-bit x86) ===== | ===== For Windows (32-bit x86) ===== | ||
- | * ''sbbs_src.zip'' [[ftp://bbs.synchro.net/Synchronet/sbbs_src.zip|ftp]] [[http://bbs.synchro.net/Synchronet/sbbs_src.zip|http]] | + | * Latest successfully built code (nightly): ''[[ftp://bbs.synchro.net/Synchronet/sbbs_src.zip|sbbs_src.zip]]'' |
- | * ''lib-win32.zip'' [[ftp://bbs.synchro.net/Synchronet/lib-win32.zip|ftp]] [[http://bbs.synchro.net/Synchronet/lib-win32.zip|http]] | + | * Latest release (v3.16c) ''[[ftp://vert.synchro.net/Synchronet/ssrc316c.zip|ssrc316c.zip]]'' |
+ | |||
+ | ===== For Linux ===== | ||
+ | * Latest successfully built code ([[https://gitlab.synchro.net/main/sbbs/-/tree/dailybuild_linux-x64|nightly branch]]): ''[[http://synchro.net/Synchronet/sbbs_src.tgz|sbbs_src.tgz]]'' | ||
+ | * Latest release (v3.19b) ''[[http://synchro.net/Synchronet/ssrc319b.tgz|ssrc319b.tgz]]'' | ||
+ | |||
+ | ===== Style ===== | ||
+ | At this time, the Synchronet C/C++ source code consists of a variety of styles (i.e. naming, white-space, etc.). The most obvious distinction in style is that //older// code uses a more condensed/terse style (i.e. for maximum content in an 80x25 terminal) while //newer// or refactored code uses a more verbose/readable style. A project-wide source code beautification effort (using ''uncrustify'') is planned. | ||
+ | |||
+ | ==== Tabs ==== | ||
+ | The tab character (ASCII 9) is used for indentation and alignment in most files (e.g. ''*.c, *.cpp, *.h, *.js''), however the use of tabs for indentation and spaces for alignment is also acceptable. Using spaces for indentation is not acceptable. | ||
+ | |||
+ | Most Synchronet source files are created and edited using text editors configured for 4-space tab-stops. This tab preference is reflected in the "@format.tab-size 4" and "@format.use-tabs true" blurb in each file's header-comment block as well as the ''[[http://editorconfig.org|.editorconfig]]'' file found in the Synchronet ''src'' and ''[[dir:exec]]'' directories. If you use a text viewer or editor that supports the ''.editorconfig'' file or [[http://synchro.net/ptsc_hdr.html|PT/SC (@format...) headers]], the Synchronet source files should display and edit as intended, automatically. | ||
+ | |||
+ | === Vim === | ||
+ | If you use the [[https://www.vim.org/|Vim]] text editor, consider installing [[https://www.vim.org/scripts/script.php?script_id=4122|this plugin]] to enable support for the PT/SC headers found in Synchronet source files, to automatically set the tab-stops accordingly when editing Synchronet source files. | ||
- | ===== For Linux (32-bit x86) ===== | + | ==== C99 ==== |
- | * ''sbbs_src.tgz'' [[ftp://bbs.synchro.net/Synchronet/sbbs_src.tgz|ftp]] [[http://bbs.synchro.net/Synchronet/sbbs_src.tgz|http]] | + | Most of the C/C++ source code is built using only compilers support C99 and newer standards, however some libraries (e.g. ''xpdev''), are still built using older (Borland) C compilers that do not support the full C99 standard. For those Synchronet libraries, care must be taken to *not* use newer C language constructs and standard library functions/types. |
- | * ''lib-linux.tgz'' [[ftp://bbs.synchro.net/Synchronet/lib-linux.tgz|ftp]] [[http://bbs.synchro.net/Synchronet/lib-linux.tgz|http]] | + | |
===== Run-time files ===== | ===== Run-time files ===== | ||
- | While technically not source code, if you have not already installed Synchronet, you will also need the run-time files: | + | While technically not source code, if you have not already //installed// Synchronet, you will also need the run-time files (the ''.zip'' file contains files with Windows style line endings, while the ''.tgz'' contains files with Unix style line endings): |
- | * ''sbbs_run.tgz'' [[ftp://bbs.synchro.net/Synchronet/sbbs_run.tgz|ftp]] [[http://bbs.synchro.net/Synchronet/sbbs_run.tgz|http]] | + | * ''sbbs_run.tgz'' [[ftp://vert.synchro.net/Synchronet/sbbs_run.tgz|ftp]] [[http://vert.synchro.net/Synchronet/sbbs_run.tgz|http]] |
+ | * ''sbbs_run.zip'' [[ftp://vert.synchro.net/Synchronet/sbbs_run.zip|ftp]] [[http://vert.synchro.net/Synchronet/sbbs_run.zip|http]] | ||
===== See Also ===== | ===== See Also ===== | ||
Line 23: | Line 41: | ||
* [[history:development|Development History]] | * [[history:development|Development History]] | ||
* [[dev:|Development Index]] | * [[dev:|Development Index]] | ||
+ | * [[:install:nix|UNIX Installation]] | ||
| | ||