You can help CodeWalrus stay online by donating here. | New CodeWalrus | Old (dark mode) | Old (light) | Discord server
We have an anniversary Game Jam! Click here for more info.

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

b/[Completed] CEmu, C SDK & Libraries (TI-84+CE) Started by Adriweb, March 19, 2016, 05:04:02 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

u/Lionel Debroux July 12, 2017, 06:45:50 AM
QuoteDoes the project builder support non-ez80 / non-ti targets too? just wondering.
Nope, it does not at the moment. However, modularity was one of the strong design goals, so that support for multiple targets - not just multiple toolchains for a given target, which is already in production for the TI-eZ80 native code module - can be added at some point.

QuoteAlso, an idea might be integration to some kind of versioning like overleaf does. (You can edit LaTeX and host the project on github.)
Indeed. In fact, this particular item is already part of the wish list, alongside project import :)
The ability to export projects out of the PB infrastructure allows users to perform manual commits into whichever (D)SCM they see fit, but it's obviously more cumbersome than a direct integration into e.g. Github.
u/AmazoNKA July 13, 2017, 07:19:58 AM
I hope this project will start supporting prizm soon. It Will be nice to have everything compiled online and fix vram issues for new fx-cg50 as well as allow to use two sets of icons one for old black backgrounds and another for white new one - it will attract more developers too. Thanks for working on this project
u/Adriweb July 21, 2017, 06:52:13 PM
Changes since last time: (see my previous post)

New:
  • Automatic autocompletion popup (debounced)
  • Ctrl-Click (or Cmd-Click on mac) on toolchain functions/defines etc. will open up the corresponding documentation line on GitHub
  • Trailing whitespaces are now trimmed on save
  • clang-provided warnings (as well as errors and diagnostics) are now shown inline, updated on each save and file switching
    Other sources of warnings (ZDS, cppcheck) are still displayed, and have their name on the right.

  • Code re-indent feature available at the click of a button at the top-right of the editor
Improved:
  • More optimal sorting of the autocompletion items
  • Finer file permissions in the backend
  • Better security checks on #include statements
  • Stricter clang warning flags when using llvm-eZ80
  • The backend toolchain is now just the same as on github with a (very) small patch to apply
  • The backend code got improved/refactored for several things, like error handling, permissions checking, action processing, DB usage (now generic)...
Fixed:
  • Ctrl-Hover (or Cmd-Hover on mac) improvements on compatibility and performance
  • Some eZ80 ASM ctags were not correct
  • The clang build output was not complete ; everything is now shown correctly.
  • Forking a project was not working if done on a project that didn't have saved files yet (ie: just created), and had incorrect error handling.
  • Re-sharing in RW a project that was shared then unshared at some point would result in having an old version of the files.
  • The Ctrl/Cmd-Hover popup was not destroyed when its word would get edited
  • Random typos got fixed
My thanks to:
- Lionel Debroux who's started code-reviewing and suggested quite a few interesting things, mostly aimed towards a more reusable/portable PB. Everything isn't done yet, but we're getting there!
- Runer112 too in particular, for feedback, testing, sorting ideas+code
- Everyone else who's tried/used the PB and provided feedback :)


(post via https://tiplanet.org/forum/viewtopic.php?f=41&t=18118&p=219792#p219792)
u/Adriweb July 23, 2017, 10:27:45 PM
Among the numerous improvements from today:

  • Improved auto-completion rendering, now with types, signatures...
  • Better log output in the build console
  • The CEmu sidebar is now toggled properly if need be, when testing a program
  • Cache-busting URLs for several CSS and JS resources
  • Lots of cleanup/refactor in the backend
  • Some work by Lionel to make the PB easily installable locally (not committed yet)


u/Adriweb July 28, 2017, 03:58:51 PM
Latest updates:
  • Improved fuzzy-match search rendering
  • Locals are now displayed correctly in the autocompletion list
  • Bugfix for conflicting type names / bootstrap label
  • CodeMirror updated
  • WebCEmu arrows display improved
  • WebCEmu is now multithreaded and, as such, runs at full-speed (this requires a very recent stable/beta browser version: Chrome 60 / Opera 47, Firefox 55, Safari 10.1, Edge 16)


u/Adriweb August 01, 2017, 11:50:18 PM
Some of the latest updates:
  • The hardcoded requirement to have a 'main.c' file is now gone. You just need to have at least one (any) file in a project
  • You can now import source code files via drag'n'drop on the editor
  • Fix-its, when available, are displayed and applicable by clicking on the flash icon on the right of warnings
  • Even more safe file switching (you can't click on stuff when it's loading the content)
  • WebCEmu build improved (latest emscripten SDK, behind the scenes improvements)
  • AJAX activity indicator (when loading, saving, etc.)
  • Some misc. cleanup and bugfixes




u/Adriweb August 19, 2017, 12:12:40 PM
The few updates since last time:
  • Refactor some code related to linewidgets handling (inline messages)
  • Build actions now have an XHR timeout of 60 seconds instead of 10 like other actions
  • Code re-indenting is now also supported for ASM (credits and thanks to Runer112 who wrote the code)
u/Dream of Omnimaga August 30, 2017, 04:18:17 PM
That's a lot.of updates @Adriweb O.O . I didn't know there would be so many during Summer months. Good job so far
u/Adriweb September 16, 2017, 05:08:09 PM
There hasn't been many updates since last time (about a month ago, yep...), but :

  • Runer112 improved the ASM re-indenter, it's now quite smart about keeping comments aligned etc.). Thanks!
  • The blue "Settings" button now opens a modal window with a few parameters you can adjust to your liking:
    • Output format (program/appvar)
    • Location (RAM/Archive)
    • Optimization settings
    • Custom clang parameters
u/Adriweb November 12, 2017, 05:21:32 PM
Between yesterday and today, I spent about a dozer hours on making the backend architecture of modules more generic, splitting in several layers what's specific and what's generic for the server-side processing things. I've also completed the DBHelper SQLite backend implementation (untested though!), if people are interested in it someday.

Anyway, it's becoming easier and easier to handle/add several modules in the Project Builder (even though I could still generify some more layers in the front-end, for instance a "front-end for a module using CodeMirror").

An overview of the general architecture according to PHPStorm, not showing fields/methods/etc. (we don't see what uses what, too bad :P):



(via https://tiplanet.org/forum/viewtopic.php?f=41&t=18118&p=223628#p223628)
u/Adriweb November 18, 2017, 05:10:23 PM
I finally did the rebase (well, I wrote a script to do it...) from the private repo to public repo, since early July.
There are only 2 files left not yet published, basically :)
Here are the 102 commits pushed: https://git.io/vF9hb

(And thanks to those who contributed to some of those commits, directly or indirectly, especially Mateo, Jacobly, Runer112, Lionel.)
u/Adriweb January 13, 2018, 09:36:37 AM
Since this has been requested recently, I added a .webm screen-recording feature, so that you can now video-capture in addition to png-image capture :)



You can post such webm on some forums, or host it on gfycat for instance (which provides gif conversion etc.)...
u/Adriweb September 13, 2021, 08:59:33 PM
Big update today!

I have added support to the Project Builder for gfx resources (png images for instance), with the convimg tool from the toolchain!

  • To add sprites / images to your project, just drag'n'drop them onto the editor (be careful, if there is one called "icon.png", it will become the icon of the project, though)
  • The convimg configuration file, gfx/convimg.yaml, is created automatically with a template content adjusted for your images (you have to edit it if you add more images later)
  • The dropdown menu at the top left of the code editor allows you to list the files and images found in your project, and to access the configuration file. From this menu, you can also preview your images, download them, and delete them.
  • The files generated by convimg cannot be modified (they are read-only in the editor) in order to avoid bad modifications by mistake.

Here's a video showing a real-world usage of the features:


Let me know if you see something wrong,

Enjoy :)

(crossposted from TI-Planet)


-----

Previous update missing here:

[size=15]Jan 19th, 2020 updates![/size]
  • The PB has been improved to support the (LLVM-based) toolchain without any modification (that's good for me, as I just need to git pull and make install to keep up to date!)
  • Toolchain and LLVM updated to the latest version. This includes internal tools like fasmg (used as the assembler and linker), which jacobly greatly sped up thanks to a "CALM" instructions rewrite.
  • Building (without cleaning) doesn't remove the built 8xp first. As such, you can get the expected "make: Nothing to be done for 'all'." message if you try to build again if nothing changed.
  • Project icon + description support has been added. This means that inside Cesium, your programs can have those displayed!
You can add an icon to your project by drag'n'dropping your icon.png file on the editor (just like source files)
[/list]
u/Dream of Omnimaga September 14, 2021, 03:32:58 PM
Time to move this sub-forum from the completed to the currently active status and location. Glad this is getting new updates. :)

Do you know if many people use it in the TI community, including internationally?
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