| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 | # StarPU --- Runtime system for heterogeneous multicore architectures.## Copyright (C) 2011-2012                                Inria# Copyright (C) 2010-2012,2015-2017                      CNRS# Copyright (C) 2009-2011,2014,2016                      Université de Bordeaux## StarPU 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 2.1 of the License, or (at# your option) any later version.## StarPU 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 in COPYING.LGPL for more details.#Contents========- Directory structure- Developer Warnings- Naming Conventions- Coding Style- Error handlingDirectory structure-------------------The directory structure is as follows:- src        : internal source for StarPU- include    : public API- tests      : unitary tests- examples   : examples using StarPU- doc        : documentation for StarPU- tools      : tools for StarPUStarPU extensions have their own directory (src/include/tests/examples) structure:- mpi           : The MPI support- socl          : the StarPU OpenCL-compatible interface- gcc-plugin    : the GCC plug-in that extends the C programming language with pragmas and attributes- sc_hypervisor : The Scheduling Context Hypervisor- starpufft     : The FFT support- starpu-top    : StarPU-Top InterfaceSome directories contain only build system details:- build-aux- m4- autom4te.cacheDeveloper Warnings------------------They are enabled only if the STARPU_DEVEL environment variable isdefined to a non-empty value, when calling configure.Naming Conventions------------------* Prefix names of public objects (types, functions, etc.) with "starpu"* Prefix names of internal objects (types, functions, etc.) with "_starpu"* Names for qualified types (struct, union, enum) do not end with _t, _s or similar.  Use _t only for typedef types, such as opaque public types, e.g       typedef struct _starpu_data_state* starpu_data_handle_t;  or       typedef uint64_t starpu_tag_t;* When a variable can only take a finite set of values, use an enum  type instead of defining macros for each of the values.Coding Style------------* Curly braces always go on a new lineError handling--------------* Use STARPU_ABORT() for catastrophic errors, from which StarPU will never  recover.	switch (node_kind)	{		case STARPU_CPU_RAM:			do_stg();			break;		...		default:			/* We cannot be here */			STARPU_ABORT();	}* Use STARPU_ASSERT() to run checks that are very likely to succeed, but still  are useful for debugging purposes. It should be OK to disable them with  --enable-fast.	STARPU_ASSERT(j->terminated != 0)
 |