summaryrefslogblamecommitdiff
path: root/README.html
blob: ac683747cc15649db5c9156b18171635ed592a7e (plain) (tree)
1
2
3
4
5
6
7
8
9


                    
                                                                                                                                                    



                                                                                                                        
                                                                                                                                                                                                                                         



                                                                                                
                                                    

                     

                                                                                                                             

                     












                                                                                



                         


                                                                                                                                                                                                                                 






                                                                                                                                                                                                                                                                     
<!DOCTYPE html>
<html>
	<h1>rgo</h1>
	<p>rgo (<b>R</b>untime-al<b>GO</b>rithmic, pronounced as <i>are-go</i>) is a C/C++ library for runtime algorithmics on memory sequences.</p>
	<p><i>Note: This library is still in it's early stages and is NOT anywhere near being fully optimised.</i></p>
	<br />
	<h2>Supported Platforms</h2>
	<p>rgo is written (mostly) in assembly, and we therefore can't possibly support every platform in existence.</p>
	<p>Currently, it's only compatible with the UNIX System-V ABI. Systems using this ABI include FreeBSD, Linux, macOS, OpenBSD, and any other System-V derivative. Support for Windows is being reflected for a future release.</p>
	<br />
	<p>rgo is written in GNU C and GNU assembly for the following machine architectures:</p>
	<ul>
		<li>
			<p>AMD64, including AVX;</p>
		</li>
		<li>
			<p>IA-32, including SSE and AVX;</p>
			<p><i>Note: Support is currently limited to: fndbyte, fndchr, memcpy, memeq, memfill, strlen.</i></p>
		</li>
		<li>
			<p><i>(Planned) Aarch64, including Neon and SVE;</i></p>
		</li>
		<li>
			<p><i>(Planned) Motorola 68000;</i></p>
		</li>
		<li>
			<p><i>(Planned) Power ISA, including AltiVec;</i></p>
		</li>
		<li>
			<p><i>(Planned) RISC-V, including Q extension;</i></p>
		</li>
		<li>
			<p><i>(Planned) Sparc;</i></p>
		</li>
	</ul>
	<br />
	<h2>Building</h2>
	<p>The provided makefile has been tested to work with GNU make and BSD make and should work with other make implementations.</p>
	<p>The target <i>rgo</i> builds the static library file (located at <i>rgo/librgo.a</i>). The target <i>clean</i> removes all object files, whilst <i>purge</i> removes all object files and the static library file.</p>
	<p>Instructions for building the test program may be found on the first line of <i>test.c</i>.</p>
	<br />
	<h2>Copyright and License</h2>
	<p>Copyright 2022 Gabriel Jensen</p>
	<p>This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p>
    <p>This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.</p>
    <p>You should have received a copy of the GNU Lesser General Public License along with this program. If not, see <i>https://www.gnu.org/licenses/</i>. </p>
</html>