update readme on build system
[lunaix-os.git] / lunaix-os / LConfig
index 36be155018f83d5aa16a4a4f186edacb8d2106a0..65cfb07f68eddbdea37fbb89b15ff9b74d7b33e7 100644 (file)
@@ -1,68 +1,68 @@
-import time
+from datetime import datetime, date
 
-include("kernel")
-include("arch")
-include("hal")
+from . import kernel, arch, hal
 
-@Term("Version")
-@ReadOnly
-def lunaix_ver():
+@native
+def get_patch_seq():
+    today = date.today()
+    year = today.year
+    start_of_year = datetime(year, 1, 1).date()
+    seq_num = (today - start_of_year).days
+    
+    return "%d%d"%(year - 2000, seq_num)
+
+@"Kernel Version"
+@readonly
+def lunaix_ver() -> str:
     """
     Lunaix kernel version
     """
-
-    type(str)
     
-    seq_num = int(time.time() / 3600)
-    default("%s dev-2024_%d"%(v(arch), seq_num))
+    return f"{arch.val} v0.0.{get_patch_seq()}"
 
-@Collection
+@"Kernel Debug and Testing"
 def debug_and_testing():
     """
     General settings for kernel debugging feature
     """
 
-    @Term("Supress assertion")
-    def no_assert():
+    @"Supress assertion"
+    def no_assert() -> bool:
         """
         Supress all assertion fail activity.
         Note: Enable this is highly NOT recommended and would result system
               extermly unstable
         """
-        type(bool)
-        default(False)
 
-    @Term("Report on stalled thread")
-    def check_stall():
+        return False
+
+    @"Report on stalled thread"
+    def check_stall() -> bool:
         """
         Check and report on any thread that spend too much time in kernel.
         """
 
-        type(bool)
-        default(True)
+        return True
         
-    @Term("Max kernel time allowance")
-    def stall_timeout():
+    @"Max kernel time allowance"
+    def stall_timeout() -> int:
         """
         Set the maximum time (in seconds) spent in kernel before considered
         to be stalled.
         """
+        require (check_stall)
 
-        type(int)
-        default(10)
-
-        return v(check_stall)
+        return 10
     
-    @Term("Max number of preemptions")
-    def stall_max_preempts():
+    @"Max number of preemptions"
+    def stall_max_preempts() -> int:
         """
         Set the maximum number of preemptions that a task can take
         before it is considered to be stucked in some loops.
 
         Setting it to 0 disable this check
         """
+        require (check_stall)
 
-        type(int)
-        default(0)
+        return 0
 
-        return v(check_stall)
\ No newline at end of file