Stay tuned

6 views
Skip to first unread message

Sergey Basalaev

unread,
Jul 27, 2013, 11:39:18 AM7/27/13
to Alchemy OS
Dear alchemists.

It seems hard to reach internet while I'm travelling this summer so I may be
not able to answer your emails or upload stuff to the website for three weeks
or so. So, please, be patient, I'm not lost.

Regards,
Sergey

Kyle Alexander Buan

unread,
Aug 7, 2013, 11:04:27 AM8/7/13
to alche...@googlegroups.com
That's okay, Sergey :) Enjoy your summer :) However, when you see
this, your summer vacation is already over :/ I wanted to say things,
anyway...

1. Please add support for multidimention arrays! Like, var cube3x3x3:
[Int] = new [Int](3, 3, 3)
then println(cube3x3x3[0, 2, 1]) or cube3x3x3[0][2][1]. Using Lists or
converting 3D coordinates to 1D to store 3D arrays is awkward :/

2. Is it possible to implement a "return" statement in Ether? Like,

def a(): Int {
var i = 3
return i
// lines after return are not executed
i = 4
return i }

3. Please implement "break" function to exit from block prematurely.

for (var i=0, i<50, i+=1) {
println(i)
if (i=5) break }

(makes "for" loop to i=5 only, not 50


2013/7/27, Sergey Basalaev <sbas...@gmail.com>:
> --
> You received this message because you are subscribed to the Google Groups
> "Alchemy OS discussion group" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to alchemy-os+...@googlegroups.com.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

azmi raman

unread,
Aug 9, 2013, 11:15:28 PM8/9/13
to alche...@googlegroups.com

patiently waiting for an android or windows version of alchemy :D 

Kyle Alexander Buan

unread,
Aug 10, 2013, 12:36:13 AM8/10/13
to alche...@googlegroups.com
Maybe it's better if Alchemy had a Java SE version instead of Win32,
so it can run on any OS? The porting would be easier too, because it's
Java ME -> Java SE.

Jabnakar Thrall

unread,
Aug 10, 2013, 1:45:19 AM8/10/13
to alche...@googlegroups.com
ya, i meant Java SE actually. Actually Sergey already made the Java SE version but he didn't implement the graphic part(ofcourse that would take time)

Kyle Alexander Buan

unread,
Aug 11, 2013, 2:32:40 AM8/11/13
to alchemy-os

He will have to emulate the J2ME UI class in Java SE by drawing to canvas, I guess. Yes, that would take a bit of time...

Sergey Basalaev

unread,
Aug 21, 2013, 12:19:12 PM8/21/13
to Alchemy OS
Every time I try to continue work on JavaSE version I get depressed - their
graphical toolkit sometimes is just insanely complicated.

Kyle Alexander Buan

unread,
Aug 22, 2013, 6:16:34 AM8/22/13
to alche...@googlegroups.com
I'm currently making the packages for my new programs. Here's
libmidifile. There's an included readme in the zip.

On 8/22/13, Sergey Basalaev <sbas...@gmail.com> wrote:
> Every time I try to continue work on JavaSE version I get depressed - their
> graphical toolkit sometimes is just insanely complicated.
>
libmidifile0.zip

Jabnakar Thrall

unread,
Aug 22, 2013, 6:43:43 AM8/22/13
to alche...@googlegroups.com
okay...haha..I cant imagine how hard is it for me if you say its insanely complicated


On Thu, Aug 22, 2013 at 12:19 AM, Sergey Basalaev <sbas...@gmail.com> wrote:
Every time I try to continue work on JavaSE version I get depressed - their
graphical toolkit sometimes is just insanely complicated.

--

Kyle Alexander Buan

unread,
Aug 22, 2013, 7:57:59 AM8/22/13
to alche...@googlegroups.com
Here's MidiTrax (formerly MidiTracker)!
There's a VERY long readme in the ZIP, which I hope is enough.
Have fun composing! ^_^
MidiTrax_alchemy.zip

Sergey Basalaev

unread,
Aug 22, 2013, 10:07:39 AM8/22/13
to Alchemy OS
2013/8/7 Kyle Alexander Buan <tar.s...@gmail.com>

That's okay, Sergey :) Enjoy your summer :) However, when you see
this, your summer vacation is already over :/ I wanted to say things,
anyway...


Thank you.
 
1. Please add support for multidimention arrays! Like, var cube3x3x3:
[Int] = new [Int](3, 3, 3)
then println(cube3x3x3[0, 2, 1]) or cube3x3x3[0][2][1]. Using Lists or
converting 3D coordinates to 1D to store 3D arrays is awkward :/


Well, you can use arrays of arrays for that (write it like [[Int]]). Only you
have to create all subarrays manually:

var matrix = new [[Int]](3)
for (var i=0, i<3, i+=1) {
  matrix[i] = new [Int](3)
}

I think I can add conventional initializer to use 'new [[Int]](3, 3)'

Or you can always create array by listing all its items:

var matrix = [[1,2,3], [4,5,6], [7,8,9]]

 
2. Is it possible to implement a "return" statement in Ether? Like,

def a(): Int {
var i = 3
return i
// lines after return are not executed
i = 4
return i }

3. Please implement "break" function to exit from block prematurely.

for (var i=0, i<50, i+=1) {
println(i)
if (i=5) break }

(makes "for" loop to i=5 only, not 50


Yes, I have 'return' and 'break/continue' in mind. It's just that these commands
make execution non-sequentional and therefore code becomes harder to analyze
by compiler. And I'm becoming lazy when things get complicated ^_^

Kyle Alexander Buan

unread,
Aug 23, 2013, 12:57:59 AM8/23/13
to alche...@googlegroups.com
Thanks for the reply.
Wow, that method is not mentioned in the Ether manual!
Anyway, I think break/continue/return is not that necessary. It can be
done with other methods. I just wanted Ether to be more like C++ for
easier porting of code ^_^
I understand. I also get lazy when things become complicated...
Anyway, another suggestion, what about M3G? Is it easy to map M3G
functions to Ether?

On 8/22/13, Sergey Basalaev <sbas...@gmail.com> wrote:

Kyle Alexander Buan

unread,
Aug 23, 2013, 1:02:34 AM8/23/13
to alche...@googlegroups.com
Sergey, why did you not upload my program? Is there a problem?

Sergey Basalaev

unread,
Aug 23, 2013, 10:08:35 AM8/23/13
to Alchemy OS
> Anyway, another suggestion, what about M3G? Is it easy to map M3G
> functions to Ether?

Mapping of native functions to Ether code is easy and straightforward. But using
of M3G may require additional tweaks in the Alchemy core, which I do not know
at the moment. For example, when I looked through the OpenGL ES documentation
t said that in order to draw OpenGL you need to use GameCanvas (alchemy now
uses plain canvas). Of course, switch to GameCanvas is easy, but this is a detail
without which OpenGL may not work. I don't know if this is a case with M3G, I'll look
through docs.


> Sergey, why did you not upload my program? Is there a problem?

Sorry, if I missed it, what is the program in question? I've seen you posted some programs
here with the note that they are NOT for uploading.

Kyle Alexander Buan

unread,
Aug 23, 2013, 11:13:59 PM8/23/13
to alche...@googlegroups.com
OpenGL ES on J2ME is not available on many phones. Okay, my phone
supports it, but not many does. M3G has a wider phone support, with
MascotCapsule coming in as second widest. Even a budget feature phone
from Nokia supports M3G and MascotCapsule. No OpenGL ES, though.

There are 2 new packages for uploading: libmidifile0 and miditrax.
They can be found on *this* thread, compressed with the sources in ZIP
:)

Sergey Basalaev

unread,
Aug 26, 2013, 8:45:24 AM8/26/13
to Alchemy OS
2013/8/24 Kyle Alexander Buan <tar.s...@gmail.com>
OpenGL ES on J2ME is not available on many phones. Okay, my phone
supports it, but not many does. M3G has a wider phone support, with
MascotCapsule coming in as second widest. Even a budget feature phone
from Nokia supports M3G and MascotCapsule. No OpenGL ES, though.


Ok, started writing headers for M3G. Since Alchemy is a multiprocessing
environment, can two processes use M3G simultaneously?
 
There are 2 new packages for uploading: libmidifile0 and miditrax.
They can be found on *this* thread, compressed with the sources in ZIP
:)

 Both packages uploaded.

wiktorek140

unread,
Aug 26, 2013, 10:46:37 AM8/26/13
to alche...@googlegroups.com
Can you add into Alchemy-OS:
Thread simillar java's Thread;
function with one give list of process;
Acces to global var's like CWD, or PATH (not only into program), i mean i can change PATH in program and i can use it into terminal;

Kyle Alexander Buan

unread,
Aug 26, 2013, 11:57:58 AM8/26/13
to alche...@googlegroups.com
Thanks for uploading!
I guess yes, many programs should be able to use M3G at once, if it's
easy to implement. But I guess it's okay if there's a limit to
multiple usage :) As in, throw an exception if a program is already
using M3G and another tries to use it also... :)

Sergey Basalaev

unread,
Aug 28, 2013, 3:31:08 AM8/28/13
to Alchemy OS
2013/8/26 Kyle Alexander Buan <tar.s...@gmail.com>
Thanks for uploading!
I guess yes, many programs should be able to use M3G at once, if it's
easy to implement. But I guess it's okay if there's a limit to
multiple usage :) As in, throw an exception if a program is already
using M3G and another tries to use it also... :)

Ok, from what I learned from M3G docs - the class Graphics3D is a singleton,
so only one process at a time can use it. Moreover, to be reusable it should be
returned into initial state when process ends/crashes.

Another issue is that there are two versions of M3G specification - 1.0 and 1.1
(and also 2.0 in development). Should we support both?

Sergey Basalaev

unread,
Aug 28, 2013, 3:37:20 AM8/28/13
to Alchemy OS
2013/8/26 wiktorek140 <wikto...@gmail.com>
Can you add into Alchemy-OS:
Thread simillar java's Thread;

I'm thinking about that. The problem is that in j2me there is no way to
kill Java thread. Doing something like "while (!killed)" significally
reduces performance.
 
Acces to global var's like CWD, or PATH (not only into program), i mean i can change PATH in program and i can use it into terminal;

There are no globals, each program has its own CWD and PATH.

wiktorek140

unread,
Aug 28, 2013, 3:53:00 AM8/28/13
to alche...@googlegroups.com
It's possible to make global vars writed into file?

Sergey Basalaev <sbas...@gmail.com> napisał(a):

Kyle Alexander Buan

unread,
Aug 28, 2013, 7:11:49 AM8/28/13
to alche...@googlegroups.com
Then I suggest limiting M3G usage for performance reasons.
Most phones including mine supports M3G 1.1. I think just 1.1 is
enough. But if compatibility is a top priority, then I'll choose 1.0
only. Nobody will use "advanced" M3G features, anyway...

Sergey Basalaev

unread,
Aug 30, 2013, 4:07:52 AM8/30/13
to Alchemy OS
Ok, M3G is done. I uploaded headers in the software archive (libm3g-dev), however
to compile and run programs using M3G you need to wait the next release where
this library is supported. To use M3G in your programs you can include entire API
using

use "m3g.eh"

or individual files

use "m3g/AnimationTracker"

I separated functions introduced in M3G 1.1 in separate binary library (libm3g-ext).
To compile programs just use both (-lm3g -lm3g-ext), if program does not use
any 1.1 functions compiler simply will not link it against libm3g-ext.

Kyle Alexander Buan

unread,
Sep 2, 2013, 10:19:01 AM9/2/13
to alche...@googlegroups.com
Great idea! Separate .SO for M3G 1.1! Great thinking!
That sounds cool! *waiting for next Alchemy OS release patiently*
Reply all
Reply to author
Forward
0 new messages