You can help CodeWalrus stay online by donating here. | New CodeWalrus | Old (dark mode) | Old (light) | Discord server

TI-Planet's "Project Builder" with online CE C Compiler

Previous topic - Next topic

0 Members and 4 Guests are viewing this topic.

0
b/[Completed] CEmu, C SDK & Libraries (TI-84+CE) publicado por u/Adriweb March 19, 2016, 05:04:02 AM
Since its beginning, TI-Planet has promoted programming, especially on TI calculators, through many news, program features and reviews, tutorials, contests etc.
We are now proud to launch, in beta, a new online platform (online so as to be more easily accessible), to push even further this programming promotional effort. This online tool is called the "Project Builder" (PB).


What's the "Project Builder"?
Simply put, it's a "subsite" of TI-Planet, that offers a simplified interface through a set of tools ("modules"), such as an IDE, for creating, by oneself or with other people, content like programs, for calculators.

The modular architecture of the PB allows for multiple types of projects themselves possibly containing several elements. For now, the PB is still very young, and the only "ready" project type / module is the C compiler for the CE calculators (TI-84 Plus CE and TI-83 Premium CE), on which we will give more details in the next section.
In fact, we had already told you a bit about the PB and its C Compiler some time ago (September 2015!) in another topic, so it might not be much of a surprise ;)

Moreover, in the future, we can imagine other modules like:
  • TI-Basic z80/eZ80 (82/83/84 series)
  • TI-Nspire Lua
  • images/sprites
  • ...
Let's go back in a little more detail on the reference above, creating things "with other people". Indeed, the PB has social / multi-user features:
  • Possibility of sharing one's projects with other people
  • Such sharing can be in read-only or read/write access
  • Possibility of cloning/forking a project
  • Real-time multiuser editing/collaboration
  • Integrated chat
   

We hope that these efforts will help popularize programming among high school and university students, providing a simple yet comprehensive platform :)

We are also glad to announce that the Project Builder is open-source, and even free as in freedom (GPLv3), to enable the contribution in the spirit of the community - it is designed in such a way that its operation is not locked on a specific site infrastructure. We encourage (and thank in advance) anyone interested in contributing and helping in general, adding things, fixing bugs, etc. A link to the code is available at the bottom of this article.


The C Compiler for the CE calculators - a module of the PB
This isn't new - since the release of the CE calculators series in 2015, their new more powerful hardware (eZ80 CPU, faster than the Z80, more RAM, etc.) allows much more interesting things than on prior models, including indeed "native" C programming, much more attractive than assembly, and often used on PC or other platforms.
The Project Builder thus has a "CE C compiler" module, whose back-end is based on the toolchain work by "MateoConLechuga" (who we thank very much).

Features:
Relative to the back-end (compiler)
  • Compiling C for the CE via a transparent usage of the C89/ANSI ZDS-powered toolchain (using official Zilog tools)
  • Integrates enhanced standard include files (headers)
  • Automatic linking of libraries that you use in your source code (include in lib/ce/)
  • Automatic static code analysis via cppcheck (with built-in inline editor display)
Relative to the front-end (user interface)
  • Syntax coloring
  • Half-smart auto-completion
  • Multi-file project support
  • Console showing the Makefile output (build log, link log, etc.)
  • Build status indicator with associated timestamp
  • Inline display of compilation warning and errors
  • Embedded examples/templates so as to start from an existing base
  • Various editor "Goodies"
    • Auto-indentation, multiple selections/cursors, Code folding...
    • Built-in search&replace (with RegExp possibility)
    • Ctrl/Cmd + mouse-over on a variable/function to see its definition, and click to jump to it
    • Ctrl/Cmd + mouse-over on a base 10 number to see base 16 representation, and click to make it written in base 16
Specific to CE calculators
  • Export to .8xp (program) file directly
  • Integrates include files (headers) specific to the CE (via Toolchain and Libraries)
  • Program name choice
 

Features planned for the future...:
In addition to various improvements on the GUI for a better user experience, the following are on the TODO list:
[spoiler]
  • Integration of the CEmu emulator core in order to try and debug programs in real-time :)
  • Deeper sharing options (in addition to read/write currently, possibility to choose specific user access)
  • Auto-completion and inline help for CE-specific functions
  • Dynamic/Interactive function list in the current file
  • Improved integration of CodeMirror features for multi-file projects
  • Choice of compiling optimization towards speed (current setting) or size
  • Choice for the .8xp to be set by default in RAM or in Archive
  • Versioning integration (Git etc.)
  • Project Import/Export
  • Integrating the LLVM eZ80 toolchain when it is ready :)
  • A dark theme
  • Your ideas?
[/spoiler]


Links
_________
Via TI-Planet.org: https://tiplanet.org/forum/viewtopic.php?f=41&t=18118
Last Edit: March 19, 2016, 06:25:16 PM by Adriweb
Inicia sesión o crea una cuenta para dejar un comentario
u/Dream of Omnimaga March 19, 2016, 05:53:26 AM
Glad to see this come to fruition. :) The share tools and multi-user edits are a nice touch as well. I personally won't be using C but I know that some people here might find this handy.

By the way, since it's open-source, does it mean that anyone could put the folders on his web server and it would run almost on the fly?
u/Adriweb March 19, 2016, 05:54:47 AM
Quote from: DJ Omnimaga on March 19, 2016, 05:53:26 AMBy the way, since it's open-source, does it mean that anyone could put the folders on his web server and it would run almost on the fly?
Almost, yes - there has to be some server-side setup for the modules requiring advanced back-ends (like the C one...) for things like wine setup if the server is linux-based, etc.

There'll probably be some kind of readme explaining the basics
u/Dream of Omnimaga March 19, 2016, 06:03:16 AM
Cool, thanks. :) Would it pose a risk of slowing down the rest of the server stuff if RAM is limited? (as an example, CW hosting only has 1 GB of RAM and a single-core CPU)

Also will CEmu integration in the future require an online version of CEmu to be made or will the project builder simply ask permission to open CEmu on the computer after specifying the directory the emulator is in (and letting the user change the setting)?
u/Adriweb March 19, 2016, 06:07:35 AM
Quote from: DJ Omnimaga on March 19, 2016, 06:03:16 AMCool, thanks. :) Would it pose a risk of slowing down the rest of the server stuff if RAM is limited? (as an example, CW hosting only has 1 GB of RAM and a single-core CPU)
Well, in theory yes, but it shouldn't be too bad either. That said... 1 GB of RAM and a single-core CPU isn't much :(

Quote from: DJ Omnimaga on March 19, 2016, 06:03:16 AMAlso will CEmu integration in the future require an online version of CEmu to be made
Yes, I'm currently looking at an online CEmu version for the PB, but it's still very early, and doesn't even actually work right now under normal conditions. It'll require a bit of time :P

Quote from: DJ Omnimaga on March 19, 2016, 06:03:16 AMwill the project builder simply ask permission to open CEmu on the computer after specifying the directory the emulator is in (and letting the user change the setting)?
This is also an idea I had, but isn't developed yet either.
Somewhat related is TI-Planet's desktop client that could act as a "bridge" between the Project Builder and a connected calculator on your computer, so that you may be able to directly send the programs to it.
u/Dream of Omnimaga March 19, 2016, 06:18:27 AM
My main concern about requiring CEmu to be online to work with project Builder is if the host decides to provide the ROM files on emulator launch or kept a copy of the user ROM on the server rather than doing like jsTIfied and requiring the user to supply his own calculator ROM himself. Because TI might not like that, plus it would be hard for us to link directly to the emulator since ROM links are against CW rules. >.<
u/Adriweb March 19, 2016, 06:20:09 AM
Quote from: DJ Omnimaga on March 19, 2016, 06:18:27 AMMy main concern about requiring CEmu to be online to work with project Builder is if the host decides to provide the ROM files on emulator launch rather than doing like jsTIfied and requiring the user to supply his own calculator ROM himself. Because if the online CEmu launched with ROMs hosted on the server then not only linking to it would be against the rules of most forums, but also Texas Instruments would not like that (they already shut down TI-Emulation a few years ago).
Yes, obviously the users will have to provide their own ROM :)
The good thing is that it can be saved locally in the browser's localStorage.
u/Dream of Omnimaga March 19, 2016, 06:21:26 AM
That's good to hear then. :)
u/Dudeman313 March 21, 2016, 01:48:18 PM
So, if I have a CE ROM, I can basically use CEmu anywhere?
u/Adriweb March 21, 2016, 05:02:49 PM
It obviously won't be a full-blwon CEmu-desktop alternative, but rather some kind of "just the things" to get it working on online IDEs, for instance.
Also, I have some unexpected work this week so I won't be working on that as soon as I've had hoped :P
u/Dudeman313 March 21, 2016, 05:28:39 PM
Does the keyboard-keypad connection work? I kept trying to use WabbitEmu's keyboard controls for the virtual calculator in CEmu(the build that @alberthrocks gave me), and when I found that I had to click each key individually, I got kinda irked.
u/MateoConLechuga March 21, 2016, 06:46:39 PM
Um, of course it works? Click on the screen if you need to, and change the keyboard bindings to WabbitEmu in the settings if you really want to. The CEmu keybindings are a lot easier and make more sense once you get used to them.
u/Dream of Omnimaga March 21, 2016, 07:27:26 PM
Quote from: MateoConLechuga on March 21, 2016, 06:46:39 PM
The CEmu keybindings are a lot easier and make more sense once you get used to them.
That's unless you used PindurTI and/or WabbitEmu for 11 years straight :P

Quote from: Adriweb on March 21, 2016, 05:02:49 PM
It obviously won't be a full-blwon CEmu-desktop alternative, but rather some kind of "just the things" to get it working on online IDEs, for instance.
Also, I have some unexpected work this week so I won't be working on that as soon as I've had hoped :P
What would be cool is if clicking compile launched your game in CEmu, like TIEmu does :D
u/Lionel Debroux March 21, 2016, 07:50:08 PM
QuoteWhat would be cool is if clicking compile launched your game in CEmu, like TIEmu does :D
Indeed, from a user's POV, this kind of functionality is cool, and I've obviously leveraged it myself in the past.
From a maintainer's POV, it's less cool, in that it requires multiple completely different code paths for implementing the same functionality across multiple OS, because there's no portable standard: OLE on Windows, D-Bus on Linux, I don't know what on MacOS X, etc. :)
u/Dream of Omnimaga March 21, 2016, 08:06:43 PM
Yeah I understand, plus having to write different code for each browser so that people aren't forced to use 1 specific browser <_<
Start a Discussion

b/[Completed] CEmu, C SDK & Libraries (TI-84+CE)

Want to get started with TI-84 Plus CE programming in C language or with emulation? The projects in there might be for you.

2
Topics
Explore Board
Website statistics


MyCalcs | Ticalc.org | Cemetech | Omnimaga | TI-Basic Developer | MaxCoderz | TI-Story | Casiocalc.org | Casiopeia | The Museum of HP Calculators | HPCalc.org | CnCalc.org | Music 2000 Community | TI Education | Casio Education | HP Calcs | NumWorks | SwissMicros | Sharp Calculators
Powered by EzPortal