Other Something new...

Erel

B4X founder
Staff member
Licensed User
Longtime User
SS-2013-08-13_16.57.04.png


I'm currently testing a new special "rapid debug mode" that will allow you to compile and run your app in one or two seconds (or even less). This is a quite complicated solution and I'm still not sure that it is feasible...

The actual code execution speed will be different than a real app as some of the code will be faster and some will be slower. I believe that for most apps it will be fine.

Assuming that all goes well it will make our "development lives" much better :)
 

eps

Expert
Licensed User
Longtime User
Erel, sounds good, although I've always found that it just means a more rapid dev --> test --> debug cycle.. Whereas a slow compilation (back in the day) used to meant that more care was taken to get it right first time.
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Awesome, how is it going so far?
It is really too soon to say. The image I posted was from such an app.

Jumping 7 steps forward this feature will also make it simpler to improve the debugger. Even an "edit and continue" feature might be possible...
 
Upvote 0

shashkiranr

Active Member
Licensed User
Longtime User
Even an "edit and continue" feature might be possible...

This would be an awesome feature because every time i realize i have made a simple spelling mistake in the name of the sub i need to stop the compilation and edit my code and recompile it again.
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Yesterday we were here:

SS-2013-08-13_16.57.04.png


Today:

SS-2013-08-14_15.58.55.png


You will need to believe me that the progress is quite good. However "edit and continue" is very very far... Assuming that this new mode really works out then it will not include such a feature in the first version.

What you do not see in the images is that the very simple app starts to run (measured from pressing on F5 in the IDE) on a real device in about 0.2 seconds.
 
Upvote 0

thedesolatesoul

Expert
Licensed User
Longtime User
What you do not see in the images is that the very simple app starts to run (measured from pressing on F5 in the IDE) on a real device in about 0.2 seconds.
How do you do that? Just installing a package takes several seconds.
I am guessing you created some kind of shell application on the device, and inject the code directly into it, rather than uploading the apk?
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
It is a "semi-virtual machine". You are correct with your assumption. The shell app will need to be reinstalled from time to time (changes in the manifest or in the assets files). In most cases it will be reused.

It will be very useful with B4A-Bridge as at last we will be able to debug the app without approving the installation.
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Not exactly. It's really a tricky solution :)

To avoid any disappointment it is important to say that I'm still testing this solution feasibility. The main concerns are: over-complexity and poor runtime performance.

If it will work as I hope then it will be a very good foundation for many debugging improvements (over time, the first version will probably be limited).
 
Upvote 0

Theera

Well-Known Member
Licensed User
Longtime User
Thank you for your attempt,Erel.
 
Upvote 0

Informatix

Expert
Licensed User
Longtime User
It's probably a welcome improvement of the debugger, but it's not a top priority from my point of view. The current debugger doesn't work fine with multithreading applications and prevents, for example, all UltimateListView users from running in Debug mode (except if they want to experience a crash with a random error). The users of the LibGDX library coming soon will have the same problem. That doesn't concern most people of course and there are probably people like me that does not care because they never use the debugger, but it's a big issue for hundreds of people. I'm surprised that nobody complain in the Bug & wish forum (or I missed their posts).
 
Last edited:
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
Both the current debugger and the new one do not support apps where the B4A code is executed by multiple threads. Except for very few libraries this is not a problem as the multithreading is handled inside the library. The debuggers are currently not suited for "real time" games. Even if they did support multithreading then still the performance will be affected to much for it to be useful in this case.
 
Upvote 0
Top