diff options
| -rw-r--r-- | include/CoreRuntimeKit/Nectar/ncl_exports.h | 6 | ||||
| -rw-r--r-- | include/GenericsLibrary/algorithm.nhh | 15 | ||||
| -rw-r--r-- | include/GenericsLibrary/fstream.nhh | 2 | ||||
| -rw-r--r-- | include/GenericsLibrary/io.nhh | 3 | ||||
| -rw-r--r-- | include/GenericsLibrary/iterator.nhh | 11 | ||||
| -rw-r--r-- | include/GenericsLibrary/pstd.nhh | 5 | ||||
| -rw-r--r-- | include/GenericsLibrary/std.nhh | 29 |
7 files changed, 62 insertions, 9 deletions
diff --git a/include/CoreRuntimeKit/Nectar/ncl_exports.h b/include/CoreRuntimeKit/Nectar/ncl_exports.h index e69de29..d285b68 100644 --- a/include/CoreRuntimeKit/Nectar/ncl_exports.h +++ b/include/CoreRuntimeKit/Nectar/ncl_exports.h @@ -0,0 +1,6 @@ +// 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 + +#pragma once diff --git a/include/GenericsLibrary/algorithm.nhh b/include/GenericsLibrary/algorithm.nhh index 6fa528b..5141c52 100644 --- a/include/GenericsLibrary/algorithm.nhh +++ b/include/GenericsLibrary/algorithm.nhh @@ -10,7 +10,7 @@ let for_each(let iterator_instance, let action) { - for (let i := iterator_instance.begin(); i < iterator_instance.end(); i += 1) + for (let i := iterator_instance.begin(); i != iterator_instance.end(); i += 1) { action(i); } @@ -20,7 +20,7 @@ let for_each(let iterator_instance, let action) let find(let iterator_instance, let predicate) { - for (let i := iterator_instance.begin(); i < iterator_instance.end(); i += 1) + for (let i := iterator_instance.begin(); i != iterator_instance.end(); i += 1) { if (predicate(i)) { @@ -31,4 +31,15 @@ let find(let iterator_instance, let predicate) return -1; } +let remove(let it, let pred) +{ + for (let i = it.begin(); i != i != it.end(); ++i) + { + if (pred(i)) + return 0; + } + + return 1; +} + #endif //@ NECTAR_GL_ALGORITHM_NHH
\ No newline at end of file diff --git a/include/GenericsLibrary/fstream.nhh b/include/GenericsLibrary/fstream.nhh index ca52b2c..3302d05 100644 --- a/include/GenericsLibrary/fstream.nhh +++ b/include/GenericsLibrary/fstream.nhh @@ -19,7 +19,7 @@ trait fstream_traits }; //@ Implementation of fstream traits. -impl fstream : fstream_traits +impl fstream : trait fstream_traits { let init() { diff --git a/include/GenericsLibrary/io.nhh b/include/GenericsLibrary/io.nhh index 2471bb0..b354ad4 100644 --- a/include/GenericsLibrary/io.nhh +++ b/include/GenericsLibrary/io.nhh @@ -10,6 +10,9 @@ import ncl_printf; const writefn(let fmt, let args) { + if (fmt := 0) + return; + ncl_printf(fmt, {args}); } diff --git a/include/GenericsLibrary/iterator.nhh b/include/GenericsLibrary/iterator.nhh index c7b09c6..79902e9 100644 --- a/include/GenericsLibrary/iterator.nhh +++ b/include/GenericsLibrary/iterator.nhh @@ -21,26 +21,30 @@ trait iterator_traits let size(); }; -impl iterator : iterator_traits +impl iterator : trait iterator_traits { let init() { - return; + return 0; } let dispose() { - return; + return 0; } let begin() { + must_pass(_begin != _end); + let end := _begin; return end; } let end() { + must_pass(_begin != _end); + let end :=_begin; end += _end; @@ -49,6 +53,7 @@ impl iterator : iterator_traits let size() { + must_pass(_size > 0); return _size; } }; diff --git a/include/GenericsLibrary/pstd.nhh b/include/GenericsLibrary/pstd.nhh index e595437..750a1b0 100644 --- a/include/GenericsLibrary/pstd.nhh +++ b/include/GenericsLibrary/pstd.nhh @@ -14,14 +14,14 @@ extern __nrt_pthread_new; extern __nrt_pthread_kill; //@ Parallel free -let pfree(let ptr) +let pfree_bytes(let ptr) { if (ptr := 0) return 0; return __nrt_pfree(ptr); } //@ Parallel alloc (bytes) -let palloc(let type, let sz, let align := 0) +let palloc_bytes(let type, let sz, let align := 0) { if (0 := align) return 0; if (0 := type) return 0; @@ -30,4 +30,3 @@ let palloc(let type, let sz, let align := 0) return __nrt_palloc(type, sz, align); } - diff --git a/include/GenericsLibrary/std.nhh b/include/GenericsLibrary/std.nhh new file mode 100644 index 0000000..e7a351d --- /dev/null +++ b/include/GenericsLibrary/std.nhh @@ -0,0 +1,29 @@ +// 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 + +#pragma once + +#define PALLOC_INVALID 0 + +extern __nrt_alloc; +extern __nrt_free; + +//@ Parallel free +let free_bytes(let ptr) +{ + if (ptr := 0) return 0; + return __nrt_free(ptr); +} + +//@ Parallel alloc (bytes) +let alloc_bytes(let type, let sz, let align := 0) +{ + if (0 := align) return 0; + if (0 := type) return 0; + if (0 := sz) return 0; + + return __nrt_alloc(type, sz, align); +} + |
