Ring2A is out of beta now

192 views
Skip to first unread message

Ilir

unread,
Dec 23, 2021, 5:10:04 PM12/23/21
to The Ring Programming Language
Hello all,

Ring2A and Ring2A+ are now out of beta, first release is ready and steady. Special thanks to beta testers: please register as described in usage of the Ring executable to get your unlimited licence.

Everyone else: discover a bug or any problem related to your work while using Ring2A or Ring2A+ to get unlimited licence.

Thank you all for your hard work.

Marry Christmas and Happy New Year  



Bert Mariani

unread,
Dec 23, 2021, 10:12:42 PM12/23/21
to The Ring Programming Language
Hello Ilir

Thank you for the Ring-2A

This is what I get running the Mandelbrot.ring

        UseCcalculator = 1 ###<<< True-1. Call-C-Array  |  False-0  Use Ring

Ring     12.4 seconds
Call-C     0.1 seconds

Ring-2A--Mandelbrot.png

Mahmoud Fayed

unread,
Dec 24, 2021, 6:06:46 AM12/24/21
to The Ring Programming Language
Hello Ilir

Thanks for sharing this wonderful project!

(1) I did many tests, It's really faster at many samples & applications

For example, The Stars Sample (ring/samples/UsingOpenGL/stars) is 3x times faster

stars.png

(2) Also, tried using Ring2A to run PWCT 2.0 and it works without any problem
Which means Ring2A is faster than Ring 1.16 and still very stable and ready for use in production according to my tests

(3) Ring2A is added to Ring Website (News Section)

Keep up the GREAT WORK :D

Greetings,
Mahmoud

Mahmoud Fayed

unread,
Dec 24, 2021, 6:10:52 AM12/24/21
to The Ring Programming Language
Hello Bert

The Mandelbrot sample uses 20 seconds for drawing

Could you update the sample to do the drawing in 1 second as we did with the ColorWheel sample


If you need more functions/methods in the QPainter Class - As we did by adding drawHSVFList()
Just tell me and I will add it, because we have a lot of nice drawing samples written by You and Gal

Greetings,
Mahmoud

Ilir

unread,
Dec 24, 2021, 9:29:38 AM12/24/21
to The Ring Programming Language
Hello all,

You're Welcome.

 @Mahmoud, thank you for supporting this project. Soon after Ring 1.17 is released, I'm releasing Ring2B having following advantages:

1. Item and Items structures will become one. I'm expecting further acceleration of the Ring VM here
2. Dynamic Array: https://en.wikipedia.org/wiki/Dynamic_array. People wanting arrays like in C language, will have to wait until Ring2C is released, bringing Vector type (term for fixed size array like in C language when it comes to dynamic languages like Ring)
3. Zero based lists/arrays built-in internally. This feature is good to have at Ring2C, therefore it might be postponed
4. Further optimization of the VM instructions, e.g. joining multiple instructions into one like in the LoadIAE case

 @Bert, difference in performance between the Ring VM calculated and C calculated sample is good example what will happen once Ring2C is released

Bert Mariani

unread,
Dec 25, 2021, 9:32:10 PM12/25/21
to The Ring Programming Language
Hello Mahmoud

Mandelbrot.ring
Updated with 
         daVinci.DrawRGBFList(FList)   // RGB color array
       //daVinci.DrawHSVFList(FList)   // HVS color array

Speed to Draw reduced from 20 seconds to 5.6 seconds
Had to create a FList with  800 x 800  array with 6 parameters ... this is what slows it down
Has  both HSV and RBG array types for the colors
Note the aRGB array values have to be modified to values between 0.0 and 1.0  ... cannot use 255, 125, 96, 256 style

Mandel-RGB.png
Mandelbrot.ring

CalmoSoft

unread,
Dec 25, 2021, 9:55:32 PM12/25/21
to The Ring Programming Language
Hello Bert,

Please send the mylibMandel.dll file to try your Mandelbrot program.
Have a nice day and good work.

Greetings,
Gal Zsolt
(~ CalmoSoft ~)

Bert Mariani

unread,
Dec 25, 2021, 10:07:44 PM12/25/21
to The Ring Programming Language
Hello calmo

Everything is in the RING directory
C:\ring\samples\Drawing\Mandelbrot

Copy  the updated  Mandelbrot.ring   , overriding the one in there 

Ilir

unread,
Dec 26, 2021, 11:09:11 AM12/26/21
to The Ring Programming Language
Hello all,

The reason why is Mandelbrot drawing slower is because FList starts from the empty list. This is the only case when list doesn't have internal array built, unless ringvm_genarray function is called once list is generated. However, this will not speed up Mandelbrot.

I modified Mandelbrot sample to use newlist function where initial size is calculated, and therefore internal array is built, cutting rendering time to half. 

@Bert, you can further speed up rendering time by modifying C part (mandel function) to take iterator argument and return calculated array size.
Mandelbrot_Fast.ring

Mahmoud Fayed

unread,
Dec 26, 2021, 4:13:38 PM12/26/21
to The Ring Programming Language
Hello Bert, Ilir

Thanks for the update :D


Keep up the GREAT WORK :D

Greetings,
Mahmoud

Reply all
Reply to author
Forward
0 new messages