fa
Feedback
Mahdiware™

Mahdiware™

رفتن به کانال در Telegram

نمایش بیشتر
کشور مشخص نشده استفناوری و برنامه‌ها45 267
503
مشترکین
+124 ساعت
+37 روز
+8130 روز
آرشیو پست ها
Saynaa update achieves ~42% faster execution vs previous version (and ~82% vs oldest).
Saynaa update achieves ~42% faster execution vs previous version (and ~82% vs oldest).

saynaa last update, added cache
saynaa last update, added cache

Almost 99.999% of the Android API integration is now complete. What’s left is mainly performance optimization. Right now, I’m working on a major upgrade — moving my language from an interpreter to a JIT compiler. This is a big step, and it requires redesigning some core parts, including the bytecode system. Currently, it’s stack-based (like Python), but I’m transitioning it to an argument-based model (similar to Lua). This change should significantly improve performance. This process will take around 2 months or more to complete. At the moment, I’m quite busy, so I’ll be maintaining the project on a limited schedule — about one day every two weeks.

view.setOnClickListener({
  onClick: function(v)
    v.setText("View Renamed")
  end
})
Interface is optional, now

🔨 1 new commit to SaynaaIDE:main: 03ac031: disabled: arm computed goto crash by Mohammed Abdifitaax (Mahdiware)

If you download the app, you can find the source code inside the /assets folder within the app. If you install it, the app us
+1
If you download the app, you can find the source code inside the /assets folder within the app. If you install it, the app uses a DocumentProvider, which allows you to read or modify the
/data/data/com.android.saynaa/files/
folder without needing root access. I’m aware that when the app launches for the first time, it takes a bit of time (not too much). This is because the app reads the source code and processes it through several stages to initialize, such as: Lexer → Parser → Bytecode → VM Also, on the first run, the source code from the assets is copied into
/data/data/com.android.saynaa/files/
I will improve and optimize this in the best way In shaa-Allah, I will turn it into an Android IDE that can be used to develop Android APKs—especially mod menus (though mod menus are not the focus right now because they rely on Services; currently, I am focusing more on how Activities are managed).

90% of andlua feature are done - import.lua 100% done - loadlayout.lua 95% done - dynamic finding undefined variable into jav
+1
90% of andlua feature are done - import.lua 100% done - loadlayout.lua 95% done - dynamic finding undefined variable into java.bindClass - and so on

Saynaa IDE_1.0.1.apk2.25 MB

🔨 1 new commit to saynaa-lang:big-update: 5b28b49: Refactor bytecode handling and enhance map functionality - Updated bytecode functions to return a unified Result type instead of custom status enums, improving consistency across the codebase. - Introduced new map operations: MAP_APPEND for inserting values with auto-incremented integer keys. - Enhanced map structure to maintain insertion order of keys and support value-only entries. - Added tests for map insertion order and value-only maps to ensure correct behavior. - Implemented string manipulation methods, including substring extraction, reversal, repetition, byte access, formatting, matching, and global substitution. - Improved error handling and status messaging for bytecode operations. by Mohammed Abdifitaax (Mahdiware)

Few line and powerful

Lazy resolution, worked perfectly, and also i tested, loadlayout.sa like as loadlayout.lua andlua has
+2
Lazy resolution, worked perfectly, and also i tested, loadlayout.sa like as loadlayout.lua andlua has

main.sa0.01 KB

init.sa0.01 KB

Now saynaa language support Lazy global resolution _module._missing = function(name) .... end Simir to lua _G.__index, Andlua
+1
Now saynaa language support Lazy global resolution
_module._missing = function(name) .... end
Simir to lua _G.__index, Andlua use this technique to load java class, in runtime These are import.lua some code
local function import_class (classname,packagename)
    local res,class = pcall(luajava.bindClass,packagename)
    if res then
        _G[classname] = class
        local mt = getmetatable(class)
        mt.__call = call
        return class
    end
end

local function massage_classname (classname)
    if classname:find('_') then
        classname = classname:gsub('_','$')
    end
    return classname
end

local globalMT = {
__index = function(T,classname)
            classname = massage_classname(classname)
   for i,p in ipairs(packages) do
                local class = import_class(classname,p..classname)
                if class then return class end
   end
            error("import cannot find "..classname)
end
}
setmetatable(_G, globalMT)

🔨 1 new commit to saynaa-lang:big-update: bbb3eb4: feat: Introduce SAYNAA bytecode file format with header validation and checksum - Added a new bytecode header structure to ensure file integrity and version compatibility. - Implemented functions for encoding and decoding the bytecode header. - Introduced checksum validation to detect corruption in bytecode files. - Created serialization and deserialization functions for modules to/from bytecode format. - Added support for a new package module to replace the old module functionality. - Implemented global deletion functionality in the package module. - Updated various tests to validate the new bytecode format and package functionalities. by Mohammed Abdifitaax (Mahdiware)

Eid Mubarak 🌙✨ May Allah accept from us our fasting, our night prayers, our charity, our recitation of the Qur’an, and all t
Eid Mubarak 🌙✨ May Allah accept from us our fasting, our night prayers, our charity, our recitation of the Qur’an, and all the acts of worship we performed during this blessed month of Ramadan. As this final day of Ramadan comes to an end and Eid begins tomorrow, we ask Allah to grant us forgiveness, mercy, and continued guidance. Eid Mubarak to you and your family. May it be filled with joy, peace, and blessings.

LinearLayout = java.bindClass("android.widget.LinearLayout") java.bindClass Has no longer needed, we use native import
LinearLayout = java.bindClass("android.widget.LinearLayout") java.bindClass Has no longer needed, we use native import

SaynaaIDE: is an Android application runtime for the Saynaa programming language. It combines the Saynaa VM with a JNI-based Android bridge so Saynaa scripts can create views, call Java APIs, register listener proxies, and build Android UI directly on-device.

photo content
+2