Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dev:source [2015/08/27 18:04] digital man Updated to reflect current release and archiving. |
dev:source [2022/05/02 10:38] (current) digital man Fix broken download URLs reported by jasonh |
||
---|---|---|---|
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 [[dev: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) ===== | ||
- | * Latest successfully built code (nightly): ''[[ftp://bbs.synchro.net/Synchronet/sbbs_src.zip|sbbs_src.zip]]'' | + | * Latest successfully built code ([[https://gitlab.synchro.net/main/sbbs/-/tree/dailybuild_win32|nightly branch]]): ''[[http://synchro.net/Synchronet/sbbs_src.zip|sbbs_src.zip]]'' |
- | * Latest release (v3.16c) ''[[ftp://vert.synchro.net/Synchronet/ssrc316c.zip|ssrc316c.zip]]'' | + | * Latest release (v3.19b) ''[[http://synchro.net/Synchronet/ssrc319b.zip|ssrc319b.zip]]'' |
===== For Linux ===== | ===== For Linux ===== | ||
- | * Latest successfully built code (nightly): ''[[ftp://bbs.synchro.net/Synchronet/sbbs_src.tgz|sbbs_src.tgz]]'' | + | * 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.16c) ''[[ftp://vert.synchro.net/Synchronet/ssrc316c.tgz|ssrc316c.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. | ||
+ | |||
+ | ==== C99 ==== | ||
+ | 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. | ||
===== Run-time files ===== | ===== Run-time files ===== | ||
Line 15: | Line 32: | ||
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): | 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://synchro.net/Synchronet/sbbs_run.tgz|http]] |
- | * ''sbbs_run.zip'' [[ftp://bbs.synchro.net/Synchronet/sbbs_run.zip|ftp]] [[http://bbs.synchro.net/Synchronet/sbbs_run.zip|http]] | + | * ''sbbs_run.zip'' [[ftp://vert.synchro.net/Synchronet/sbbs_run.zip|ftp]] [[http://synchro.net/Synchronet/sbbs_run.zip|http]] |
===== See Also ===== | ===== See Also ===== | ||