We have been working on some documentation for AtomVM, and we’d be interested in any feedback (positive, negative, constructive). Parts of the documentation are still a work in progress, but I think we have marked them where they are with TODOS.
It’s nice that you have .pdf and .epub Fred - have you thought about adding .mobi too? When I read the Rails Guides I read them on my Kindle (I’m sure I couldn’t have been the only one!)
The do have a program called Kindle Previewer, which has a CLI, but it is not supported on Linux or FreeBSD (Windows/Mac only).
They also say:
We recommend using EPUB format for publishing new reflowable titles and updating previously published titles. MOBI should only be used when testing on older devices that do not support Enhanced Typesetting.
Does anyone know much about MOBI, and the best way to generate MOBI files from a Sphinx project without using Amazon tooling?
I just tried ebook.online-convert.com/convert-to-mobi and it seems to have worked… but you never with those services they might do things like insert ads
I am not familiar with Sphinx, but is this any use?
I am not sure why they are saying that a I tried to send the AtomVM docs to my Kindle and the email was returned saying:
Dear Customer,
The following document, sent at 06:06 PM on Mon, Nov 22, 2021 GMT could not be delivered to the Kindle you specified:
AtomVM.epub
The Kindle Personal Document Service can convert and deliver the following types of documents:
Microsoft Word (.doc, .docx)
Rich Text Format (.rtf)
HTML (.htm, .html)
Text (.txt) documents
Archived documents (zip , x-zip) and compressed archived documents
Mobi book
… Learn About Sending Documents to Your Kindle Library - Amazon Customer Service
I’d like to try AtomVM with some exisiting Elixir-code.
And without having a deep insight into Elixir/Erlang its not possible for me to know what parts of Elixir I can use.
I’ve copied Elixir’s hexdocs-menu below.
How can I determine which parts I can use?
Can this always be decided for a whole module or would I have to be more detailed (list all functions also)?
Would it be possible (in finite time) to write a tool, that checks a mix project for non-Atom-features?
Kernel
Kernel.SpecialForms
BASIC TYPES
Atom
Base
Bitwise
Date
DateTime
Exception
Float
Function
Integer
Module
NaiveDateTime
Record
Regex
String
Time
Tuple
URI
Version
Version.Requirement
COLLECTIONS & ENUMERABLES
Access
Date.Range
Enum
Keyword
List
Map
MapSet
Range
Stream
IO & SYSTEM
File
File.Stat
File.Stream
IO
IO.ANSI
IO.Stream
OptionParser
Path
Port
StringIO
System
CALENDAR
Calendar
Calendar.ISO
Calendar.TimeZoneDatabase
Calendar.UTCOnlyTimeZoneDatabase
PROCESSES & APPLICATIONS
Agent
Application
Config
Config.Provider
Config.Reader
DynamicSupervisor
GenServer
Node
Process
Registry
Supervisor
Task
Task.Supervisor
PROTOCOLS
Collectable
Enumerable
Inspect
Inspect.Algebra
Inspect.Opts
List.Chars
Protocol
String.Chars
CODE & MACROS
Code
Kernel.ParallelCompiler
Macro
Macro.Env
Thanks for the input. That is very valuable, and we will be sure to highlight specific comments about the difficulty of porting existing code to AtomVM. We do say that it is highly unlikely that existing code will port readily, but perhaps it is not as front and center as it should be.
As far as the specific Elixir support and the modules you mention, I am afraid the news is even worse, and I think it is incumbent on us to point out that large swaths of existing libraries are simply unavailable at present, and that indeed AtomVM is very much a work in progress. For example, you can check here to see the list of current Elixir modules in the system, which of course you can see is quite sparse.
So thanks for raising that.
As far as tooling, yes, I think some of that is do-able, but probably pretty low on the list of priorities.
If you are interested in a more complete implementation of Erlang and Elixir for microcontrollers, I would recommend you look at Peer Stritzinger’s (@peerst) very impressive GriSP project. There is a forum dedicated to it on this web forum, in fact!
I’m sure I have an STM32 under my desk at work (and even if not, someone will have, or as @AstonJ pointed out elsewhere, dev kits are now ridiculously cheap). I shall add trying AtomVM on it to my TODO list for '22!