summaryrefslogtreecommitdiffhomepage
path: root/include/GenericsLibrary
diff options
context:
space:
mode:
Diffstat (limited to 'include/GenericsLibrary')
-rw-r--r--include/GenericsLibrary/algorithm.nhh17
-rw-r--r--include/GenericsLibrary/fstream.nhh20
-rw-r--r--include/GenericsLibrary/io.nhh4
-rw-r--r--include/GenericsLibrary/iterator.nhh32
-rw-r--r--include/GenericsLibrary/nrt.nc2
-rw-r--r--include/GenericsLibrary/std.nhh7
-rw-r--r--include/GenericsLibrary/thread.nhh22
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