diff options
Diffstat (limited to 'include/GenericsLibrary')
| -rw-r--r-- | include/GenericsLibrary/algorithm.nhh | 17 | ||||
| -rw-r--r-- | include/GenericsLibrary/fstream.nhh | 20 | ||||
| -rw-r--r-- | include/GenericsLibrary/io.nhh | 4 | ||||
| -rw-r--r-- | include/GenericsLibrary/iterator.nhh | 32 | ||||
| -rw-r--r-- | include/GenericsLibrary/nrt.nc | 2 | ||||
| -rw-r--r-- | include/GenericsLibrary/std.nhh | 7 | ||||
| -rw-r--r-- | include/GenericsLibrary/thread.nhh | 22 |
7 files changed, 51 insertions, 53 deletions
diff --git a/include/GenericsLibrary/algorithm.nhh b/include/GenericsLibrary/algorithm.nhh index 5d1bc32..1dd1e0c 100644 --- a/include/GenericsLibrary/algorithm.nhh +++ b/include/GenericsLibrary/algorithm.nhh @@ -9,9 +9,9 @@ //@ Free algorithm functions for GenericsLibrary. -let for_each(let iterator_instance, let action) +let for_each(let it, let action) { - for (let i := iterator_instance.begin(); i != iterator_instance.end(); i += 1) + for (let i := it.begin(); i != it.end(); i += 1) { action(i); } @@ -19,9 +19,9 @@ let for_each(let iterator_instance, let action) return; } -let find(let iterator_instance, let predicate) +let find(let it, let predicate) { - for (let i := iterator_instance.begin(); i != iterator_instance.end(); i += 1) + for (let i := it.begin(); i != it.end(); i += 1) { if (predicate(i)) { @@ -29,15 +29,18 @@ let find(let iterator_instance, let predicate) } } - return -1; + return 1; } let remove(let it, let pred) { - for (let i = it.begin(); i != i != it.end(); ++i) + for (let i = it.begin(); i != it.end(); ++i) { if (pred(i)) - return 0; + { + i = 0; + return 0; + } } return 1; diff --git a/include/GenericsLibrary/fstream.nhh b/include/GenericsLibrary/fstream.nhh index 4808dd8..441b686 100644 --- a/include/GenericsLibrary/fstream.nhh +++ b/include/GenericsLibrary/fstream.nhh @@ -22,27 +22,15 @@ trait fstream_traits //@ Implementation of fstream traits. impl fstream : trait fstream_traits { - let init() + let write(let self, let data, let size) { - return; - } - - let dispose() - { - return; - } - - let write(let data, let size) - { - let written := __traits_write(fd_, data, size); - + let written := __traits_write(self.fd_, data, size); return written; } - let read(let region, let size) + let read(let self, let data, let size) { - let readen := __traits_read(fd_, region, size); - + let readen := __traits_read(self.fd_, data, size); return readen; } }; diff --git a/include/GenericsLibrary/io.nhh b/include/GenericsLibrary/io.nhh index 25bc561..bf2f351 100644 --- a/include/GenericsLibrary/io.nhh +++ b/include/GenericsLibrary/io.nhh @@ -7,14 +7,14 @@ #ifndef NECTAR_GL_IO_NHH #define NECTAR_GL_IO_NHH -import ncl_printf; +import core_print_format_ln; const writefn(let fmt, let args) { if (fmt := 0) return; - ncl_printf(fmt, {args}); + core_print_format_ln(fmt, {args}); } #endif diff --git a/include/GenericsLibrary/iterator.nhh b/include/GenericsLibrary/iterator.nhh index e509bc2..ecc82ed 100644 --- a/include/GenericsLibrary/iterator.nhh +++ b/include/GenericsLibrary/iterator.nhh @@ -24,38 +24,26 @@ trait iterator_traits impl iterator : trait iterator_traits { - let init() + let begin(let self) { - return 0; - } - - let dispose() - { - return 0; - } - - let begin() - { - must_pass(_begin != _end); + must_pass(self._begin != self._end); - let end := _begin; - return end; + let begin := self._begin; + return begin; } - let end() + let end(let self) { - must_pass(_begin != _end); + must_pass(_begin != _end); - let end :=_begin; - end += _end; - + let end := self._end; return end; } - let size() + let size(let self) { - must_pass(_size > 0); - return _size; + must_pass(self._size > 0); + return self._size; } }; diff --git a/include/GenericsLibrary/nrt.nc b/include/GenericsLibrary/nrt.nc index 6a39808..0a62d81 100644 --- a/include/GenericsLibrary/nrt.nc +++ b/include/GenericsLibrary/nrt.nc @@ -4,7 +4,7 @@ // file LICENSE or copy at http://www.apache.org/licenses/LICENSE-2.0) // Official repository: https://github.com/ne-foss-org/nectar -extern main; +import main; //@ The main entrypoint is an external symbol defined by the user program. //@ You may also define it as a library and then write your own main wrapper over it. diff --git a/include/GenericsLibrary/std.nhh b/include/GenericsLibrary/std.nhh index 0727269..677586e 100644 --- a/include/GenericsLibrary/std.nhh +++ b/include/GenericsLibrary/std.nhh @@ -6,19 +6,17 @@ #pragma once -#define PALLOC_INVALID 0 - extern __nrt_alloc; extern __nrt_free; -//@ Parallel free +//@ Standard free let free_bytes(let ptr) { if (ptr := 0) return 0; return __nrt_free(ptr); } -//@ Parallel alloc (bytes) +//@ Standard alloc (bytes) let alloc_bytes(let type, let sz, let align := 0) { if (0 := align) return 0; @@ -27,4 +25,3 @@ let alloc_bytes(let type, let sz, let align := 0) return __nrt_alloc(type, sz, align); } - diff --git a/include/GenericsLibrary/thread.nhh b/include/GenericsLibrary/thread.nhh new file mode 100644 index 0000000..f60d110 --- /dev/null +++ b/include/GenericsLibrary/thread.nhh @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright 2026, Amlal El Mahrouss (amlal@nekernel.org) +// Licensed under the Apache License, Version 2.0 (See accompanying +// file LICENSE or copy at http://www.apache.org/licenses/LICENSE-2.0) +// Official repository: https://github.com/ne-foss-org/nectar + +#ifndef NECTAR_GL_THREAD_NHH +#define NECTAR_GL_THREAD_NHH + +trait thread_traits +{ + let join(); + let detach(); + let get(); +} + +let create_thread(let entrypoint, let id); +let exit_thread(let id); + +let get_status_thread(let id); + +#endif
\ No newline at end of file |
