Is it possible for the C Libs to be installed right away? If this is already a thing, then it doesn't work for me Razz

Awesome project, BTW. I am using it for a C project (what else?), and it works seamlessly, other than that. I hope to see more awesome stuff like this in the future.
A quick&dirty experimental integration of jacobly's LLVM eZ80 backend has been done yesterday evening:

It will obviously be better eventually, but for now it's good enough to try/debug stuff Smile
LLVM view updated, now diffing with ZDS (left, and llvm on the right)
Note that clang gets called with -Oz for now.
(Also, yes that means you can write some C++17 for you 84+CE, because why not...)

Impressive work, especially at jacobly! I look forward to him announcing his work with LLVM more.
Over the past few days, I've been able to work on some Project Builder upgrades (and I want to particularly thank jacobly for the time he spent with me debugging some things Razz) :

  • "Refactor" (relatively minor, but not trivial either) of the eZ80_native backend architecture to better allow for a more direct usage of the upstream toolchain.
    The PB now uses the latest toolchain and libs versions, while keeping compatibility for/with the old and existing projects.
  • Initial support of .cpp/.hpp files, which may be compiled only right now, and of course only with LLVM (they're not built, no ZDS linker involved, at least for now).
    Warning, there's no C++ std lib support, but you way write classes, templates etc. (well, anything with the C++ syntax), but without using the STL, for example.
  • More generic and reliable dirty check (for launching builds)
  • Fix ctags getter when refreshing after saving files
  • Fix modal line numbers and refresh
  • New feature to display the LLVM unfiltered output alone as well, instead of only having a ZDS+LLVM diff view.
  • Better bootstrap tooltips
  • Feature to disallow creating implementation files with the same "common name" (i.e. you can't create a test.asm file if a test.c existed, as this would conflict later on during the build)

(Will be available soon on the public github repo)

- Via
Adriweb wrote:
(Also, yes that means you can write some C++17 for you 84+CE, because why not...)

You think this is a joke...

Skip to 27:55. The guy was basically proving that const leads to some pretty insane optimizations on the C64, but it also highlights that high-level programming doesn't necessarily mean that the compiled output will take more space.
Oh but I was and still am serious Smile
Anyway "const" is indeed best practice, but C++17 (and 20 / experimental) brings a lot of really cool stuff as well (c++11 and 14 were also pretty cool, especially with better constexpr)

And yep, I have seen this video, it's pretty fun.
What's that? C++ you say? LLVM-based building and not just asm-viewing?

That's right, C/C++ building support through jacobly's LLVM-ez80 backend is now available on TI-Planet's Project Builder (in alpha) !
Quite a few updates lately on TI-Planet's Project Builder, mostly following MateoC and Jacobly's feedback Smile

New things
  • The ctags (list of symbols/defines/labels...) are available on .inc files too.
  • Autocompletion (for C/C++/ASM) based on words around the cursor (exact match) + ctags (fuzzy search)

  • You're now able to directly download a file individually (under its name or a custom one)

  • Fixed loading+applying custom UI settings on file switching
  • Fix crash in some cases when the LLVM output was empty
  • Downloading the whole project as a .zip file now correctly includes the ASM and C++ source files.
  • The inline-display of the generated ASM from C only has to be there when using C with ZDS...

Many improvements on ASM code edition:
  • Better syntax-highlighting for eZ80
  • Indenting is now tab-based (and with a width of 8 spaces), as it's the "norm" for ASM.

  • Support of [Ctrl]+MouseOver on variables/labels, pour afficher leur définition. Clic pour y aller.

  • Support of [Ctrl]+MouseOver on documented/commented functions to display their docs ("soon" with Doxygen support). Click to go to it.

  • Support of [Ctrl]+MouseOver on numbers, to display their decimal/hexadecimal conversion. Click to convert.

Enjoy Smile

And now with Autocompletion (fuzzy search) and definition peek from the SDK includes (standard, libs...):

Changes since last time: (see previous post)

  • 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

  • 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)...

  • 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 Smile

(post via
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)

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)

Thanks Adriweb! I love these changes, and as a regular user of PB, I have to say it's getting better and better. Great job, and keep it up!
Thanks Smile And don't hesitate to suggest any features!
I'll be implementing .zip import this weekend, along with a belated ProjectBackend class generification on the backend.

I've improved the linewidget display yesterday following a comment by Runer, and even though it's not yet optimal under certain conditions (blame CodeMirror and CSS weirdness), it's better than before.
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

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)
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

Between yesterday and today, I spent about a dozen 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 Razz):

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 Smile
Here are the 102 commits pushed:

(And thanks to those who contributed to some of those commits, directly or indirectly, especially Mateo, Jacobly, Runer112, Lionel.)
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 3 of 4
» All times are UTC - 5 Hours
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum