Copyright © https://mongoose-os.com

Mongoose OS Forum

frame
ATTENTION! This forum has moved to:

https://community.mongoose-os.com

Do not post any new messages.

Is mJS being actively developed?

Five days ago (as I write this) I submitted this issue on github (https://github.com/cesanta/mjs/issues/125):

It doesn't appear that a bug has been closed in 9 months, no new issue has been responded to in months.

But mJS doesn't feel done, at least not to me. There needs to be an official way to omit unneeded/dangerous builtins short of modifying the code. What about a series of #defines that allow me to add/remove features like load(), and die(), and the like?

The #defines for memory management should take an additional parameter so that you can use a memory pool based allocator more easily; and the JSON code should use the same #defines for memory management as mJS.

mJS shouldn't depend on standard io. Being so memory lean it can be used in embedded apps that don't have a supporting (RT)OS, and thus may not have stdio like file functions. Imagine trying to integrate Elm-Chan's Petite FAT Filesystem with mJS.

All of this is before you get to that in an ideal world there should be a way to integrate more of v7's language features in a scalable way. So that you can go from mJS extreme subset, all the way up to something much more familiar if you have the resources for it. See how Duktape does this, for example. Alternatively give us an official way to do this ourselves, and document the internal API.

Right now the subset of JavaScript that is supported is minimal that it doesn't really look like the language most people use. But it would be nice to use the Math object instead of ffi — to name one example — so that simple JavaScript libraries can be ported over more easily.

Every single issue I just named is something my team personally dealt with, and that ultimately prevented us from paying for a commercial license for mJS. I also don't think any of them are unreasonable enhancements.

However if mJS isn't being actively developed, then please release mJS under the LGPL. That way there will still be an incentive for companies to purchase a closed license, and it will be more desirable for folk like myself to enhance the code

In those 5 days it hasn't been commented on or closed. I sent a link to it, to support and a contact I had inside of Cesanta, and there has been no reply.

I can only presume at this point that mJS is no longer being actively developed. I would like to reiterate my request that it be re-released under the LGPL (or other more permissive license) so that others (such as myself) can continue to use and enhance it

Thanked by 1UserMartin

Comments

  • mamuespmamuesp Germany/Northern coast

    Your idea of mJS doesn't fit its purpose. Well, with mJS you have a great bunch of options for rapid prototyping without need to flash (btw. what do you mean by "lack of Math object"? I use Math.floor, Math.rand etc all the time ...). But on an embedded system an interpreted language is a compromise, so JS in every flavour will cost a lot of resources of your MCU. To be more efficient, after the prototyping it will be advisable to migrate the code to C. It is way faster and less resource hungry. But of course you have to know coding, being aware of memory handling and the risk of memory leaks. So there is no "lazy coding" possible as it is with a JS derivate.
    And as you can see by checking the commits in the repository, the project is not forgotten, but I believe there is no need of a big progress to be made here. A lot of additinal functions are written by users and provided via Github, so in the most cases one finds a solution for the specific problem.
    And if you need a kind of "full stack JavaScript" you perhaps might look for solutions like this one: "Node.js for Microcontrollers". But don't be surprised - this software runs only on ESP32 boards with additional PSRAM...

  • edited February 22

    I disagree. It is perfectly valid to use a scripting language for customizing behavior, for user level applets, etc. Not everything needs to be in C. I will also point out that V7 was a previous Cesanta product that represented a much more complete version of JS than mJS

    However none of that addresses the question of if mJS is being actively developed or not

    I am also a bit suprised that you can use Math.floor, Math.rand, etc in mJS because they aren't in the mJS documentation, or in the source as far as I can tell. Understand that I am not using MongooseOS

  • Also please go to the mJS github page and say where it says that it is meant for prototyping only

  • Something like 6 weeks has passed since I first posted my issue on github without any reply. I can only conclude that mJS is either considered done (odd considering some of the bugs), or has been (effectively) abandoned.

    This is a shame

  • So 40 days later there is an official response. Thank you.

    I think you are making a mistake, but it is your mistake to make. Good luck

Sign In or Register to comment.