460
Subscribers
+124 hours
+357 days
+9130 days
Posts Archive
460
+5
🚀 Major Improvement & Bug Fixes!
SaynaaIDE just got a major upgrade! ✨
Improved performance, fixed several bugs, and made the overall experience more stable and reliable.
More improvements are coming! 🔥
#SaynaaIDE #Update #BugFixes #AndroidDev #Programming
460
🚀 Introducing the Saynaa Ecosystem
I’m working on three projects that make up the core of the Saynaa ecosystem:
🧠 SaynaaLang
My own programming language, which is the foundation of the Saynaa ecosystem.
🌉 SaynaaJava
A bridge between Saynaa and Java, allowing Saynaa code to communicate with Java and interact with Android through JNI.
💻 SaynaaIDE
An Android IDE written in the Saynaa programming language. It is designed for developing and working with Saynaa projects directly on Android.
🔗 Open-source projects:
• SaynaaLang — https://github.com/mahdiware/saynaa-lang
• SaynaaJava — https://github.com/mahdiware/saynaa-java
• SaynaaIDE — https://github.com/mahdiware/saynaa-ide
🛠️ All three projects are actively being developed and improved.
If you're interested in programming languages, Android development, JNI, or building an IDE, feel free to explore the projects and follow the development! 🚀
#Saynaa #SaynaaIDE #SaynaaLang #SaynaaJava #Programming #Android #JNI #OpenSource
460
The automatic translation of java.lang.String has been re-enabled.
The issue was not related to String translation itself. The real problem was in java.call() dispatch logic.
Current java.call() target handling
// Target | Meaning | Dispatch // Class<?> | static call | Class.method // Object instance | instance call | obj.methodI removed support for treating a raw String as a class name target. That means java.call() no longer tries to resolve a String value as a class path. Instead, it correctly distinguishes between: - Class<?> for static method calls - Java object instances for instance method calls This fixes the case where a java.lang.String object was being misinterpreted as a class name, which caused class resolution errors and method invocation failures. Now java.call() works with the correct dispatch behavior and avoids this confusion.
460
Repost from N/a
TODO: I must stop auto-converting Java String objects into Saynaa String class.
Bug:
strt = java.new("java.lang.String", "Hello OUT\n")
bytes = java.call(strt, "getBytes")
The variable strt is a Saynaa String instead of a JavaObject, so calling getBytes() fails.
It incorrectly behaves like:
bytes = java.call("Hello OUT\n", "getBytes")460
🔨 1 new commit to SaynaaIDE:main:
73c1e09: fix(java-bridge): preserve java.lang.String objects and avoid implicit SaynaaString conversion
Java String instances returned from constructors and method calls are
now kept as JavaObject values instead of being automatically converted
to SaynaaString. This allows Java methods such as getBytes() to be
called correctly on String instances.
by Mohammed Abdifitaax (Mahdiware)
460
🔨 1 new commit to SaynaaIDE:main:
d429973: build(deps): add R8 library for D8 dex compiler support
- added com.android.tools:r8 dependency
- enables Java .class to .dex compilation inside IDE by Mohammed Abdifitaax (Mahdiware)
460
🔨 1 new commit to SaynaaIDE:main:
e3bd4ef: chore(storage): add MANAGE_EXTERNAL_STORAGE for testing phase
Temporary full file access enabled for development.
Will be replaced with SAF (DocumentFile) based workspace system. by Mohammed Abdifitaax (Mahdiware)
460
🔨 1 new commit to SaynaaIDE:main:
3a8c607: refactor: remove duplicate callStatic usage and simplify JNI bridge
- replaced java.callStatic with java.call where appropriate
- removed unused jmethodID entries from JNI layer
- moved methods from JavaBridge into reflection package by Mohammed Abdifitaax (Mahdiware)
460
🔨 1 new commit to SaynaaIDE:main:
292c82e: added org.eclipse.jdt dependence, and storage permission by Mohammed Abdifitaax (Mahdiware)
460
🔨 2 new commits to SaynaaIDE:main:
976d613: feat(reflection): introduce reflection engine and improve JavaBridge + JNI integration by Mohammed Abdifitaax (Mahdiware)
b617cb9: chore: bump version to 2.0.1 (versionCode 201) by Mohammed Abdifitaax (Mahdiware)
460
Refactored JNI layer to be lightweight by removing duplicate and unnecessary overhead code.
and left some i will fix later.
