Code Monkey home page Code Monkey logo

project-builder's Introduction

TI-Planet's Project Builder

A set of online tools used on TI-Planet to explore programming on TI calculators.

Note that you'll need PHP 7.1+ to run it. Technically, so far almost all of the code is compatible with PHP 5.6, but some parts are gradually using newer features.

project-builder's People

Contributors

adriweb avatar debrouxl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

leonardovincent

project-builder's Issues

Data loss on large file transfers

I might be abusing the virtual calc a little but when trying to send the 25 files required for Pokémon does not send all the data. .b84 bundles don't transfer either.

Feature Request: Make An offline save

sorry I have to reword.

allow the user to use the site when not connect to the internet. and save the program until the user has connected back to the internet.

Need LibLoad Error

When I started using keypad functions, PB throws a "Need LibLoad" error.

Link to PB: https://tiplanet.org/pb/?id=241355_1579434893_301705c495&file=main.c

main.c

/* Keep these headers */
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
#include <tice.h>

/* Standard headers */
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <keypadc.h>

/* Function prototypes */
void PrintText(int8_t xpos, int8_t ypos, const char *text);

int main(void)
{
    /* Key variable */
    kb_key_t key;
    const char *erase_string = "     ";

    /* Clear the homescreen */
    os_ClrHome();

    /* Loop until 2nd is pressed */
    do
    {
        /* Update kb_Data */
        kb_Scan();

        key = kb_Data[7];

        /* Print the current arrow key input */
        PrintText(0, 0, key & kb_Down ? "Down" : erase_string);

        PrintText(0, 1, key & kb_Up ? "Up" : erase_string);

        PrintText(0, 2, key & kb_Left ? "Left" : erase_string);

        PrintText(0, 3, key & kb_Right ? "Right" : erase_string);

    } while (kb_Data[1] != kb_2nd);

    return 0;
}

/* Draw text on the homescreen at the given X/Y location */
void PrintText(int8_t xpos, int8_t ypos, const char *text)
{
    os_SetCursorPos(ypos, xpos);
    os_PutStrFull(text);
}

PS: Great work on the IDE, it's very neat!

todo/wish list

backup from internal tracker...

TODO (par importance)

  • (idée Adriweb) Project creation wizard
  • (idée globale) Proposer des templates de base selon le type de projet C (lib ? utilisation de graphiques ? 8bpp ? etc.) -> en cours. cf. les démos de la toolchain + libs. A faire via projets clonables.
  • (idée Lionel) Rate limit création/clone
  • (idée Adriweb) Finir de s'occuper des TODO divers et variés dans le code
  • (idée Adriweb) Raffiner les permissions pour permettre du r/w for specific users etc.

WISH (sans ordre)

  • (idée Adriweb) "popup scratchpad" C -> ASM
  • (idée générale) Intégration git/github
  • (idée Adriweb) Synchronisation d'événements du genre changement de programName, ajout de fichiers etc. (astuce: en passant par le chat avec des messages à préfixes connus?)

DONE

  • (idée Adriweb) Gestion de gfx/convimg
  • (idée globale) Finir code-review des fichiers backend puis publier sur github l'ensemble des fichiers
  • (idée générale) Générification des backends des modules
  • (idée Adriweb) Popup de paramétrage du projet (optimisation, target location, sharing, etc.)
  • (idée Adriweb) Loggging d'actions
  • (idée Adriweb) Indicateur visuel d'activité XHR
  • (idée Adriweb) pointer-events:none lors des chargements
  • (idée Adriweb) Import de fichiers c/h/cpp/asm/inc ., via drag'n'drop sur l'éditeur. Pas de support de fichiers .zip
  • (idée Lionel) Générification de l'usage de la DB
  • (idée Adriweb) Warnings/Errors/Diags de clang
  • (idée Adriweb) Feature de réindentation
  • (idée Adriweb) Aide inline utilisant les ctags + commentaires
  • (idée Adriweb) Passer la toolchain dans le chroot (et directement utiliser un git clone)
  • (idée Adriweb) Auto-complétion et aide inline pour les fonctions relatives à la CE + libraries
  • (idée Adriweb) Auto-complétion utilisant les ctags
  • (idée Adriweb) Liste dynamique/interactive des fonctions/etc. du fichier en cours (et avec un jump onclick, comme des IDE..)
  • (idée Adriweb) Aide raccourcis claviers
  • (idée Adriweb) Meilleurs notifications
  • (idée Adriweb) bugfix "vidage" du fichier lors de la venue d'une nouvelle personne en multiuser
  • (idée Adriweb) Migration vers ES6
  • (idée Adriweb) Export .zip des fichiers du projets
  • (idée Adriweb) Renommage de fichiers
  • (idée Adriweb) Update toolchain + libs
  • (idée Adriweb) Réfléchir à comment intégrer un CEmu-emscripten à la page pour des tests (et debugging, tant qu'on y est) en direct.
  • (idée générale) Thème sombre
  • (idée Adriweb) Viewer .src
  • (idée Adriweb) Amélioration de la liste des projets. Réparer la suppression.
  • (idée Adriweb) Tokens CSRF + passer des choses en POST plutôt qu'en GET (?new=1 ...)
  • (idée Adriweb) Affichage de l'output de compilation dans une sorte de console cachable, et pareil pour l'affichage du .src (histoire de voir si ya des choses bizarres, ou par curiosité.) Probablement caché par défaut.
  • (idée Adriweb) Possibilité d'ajouter des fichiers ".inc" (pour de l'include ASM direct, via asm(" include "blabla.inc"");) -> Fait via .asm
  • (idée Adriweb) mode follow/spectateur (cf. http://pastebin.com/A5XGu0f3)
  • (idée Adriweb) Commencer un système de permission plus fin, au moins avec un partage en read-only
  • (idée Adriweb) Page d'accueil/gestion de projets: liste, création, suppression, renommage, partage etc.
  • (idée Adriweb) Revoir le builder/bridge PHP en OOP pour que ce soit une classe implémémentant une interface "ProjectBuilder" généraliste.
  • (idée Lionel) prévoir dans le design et faire un embryon d'implémentation de plusieurs types de projet. Pour l'instant, n'implémenter que les projets C avec ZDS, mais il faut se laisser une porte ouverte vers des projets du type de ceux que SourceCoder gère. Impact sur le modèle de données.
  • (idée Adriweb) rajouter les headers standards déjà existants
  • (idée Adriweb) créer un modèle de permissions. "faudrait déjà faire un minimum de permissions" "Pour le moment, n'importe qui envoyant un POST avec le bon ID peut supprimer le projet de quelqu'un :P" (cf. builder.php action delete).
  • (idée Adriweb) Mettre en place les choses de sécurité sur Firebase (JSON web Tokens etc., cf. doc). A faire le plus tôt possible.
  • (idée Adriweb) liaison phpBB: "genre inclure les trucs de base de phpBB pour au moins avoir des userID stables."- -"et des id unique de projets basés entre autre sur le userid_timestamp_{random}"
  • (idée Lionel) prévoir dans le design et faire un embryon d'implémentation des projets multi-fichiers avec une seule invocation du compilo. Ca sera aux utilisateurs de se débrouiller correctement pour inclure les .c et .h, mais la gestion des projets multi-fichiers sera déjà une grosse amélioration de maintenabilité des projets pour les utilisateurs. SourceCoder le gère. Impact plus élevé sur le modèle de données que la gestion de plusieurs types de projets.
  • (idée Adriweb) Ne pas activer le multi-user (firepad/firebase) par défaut (check if author == current user ?).
  • (idée Adriweb) Corriger le fait que dans certains conditions, des caractères se font effacer lorsqu'on Ctrl-Click sur un nombre base 10 (conversion. base 16)
  • (idée Adriweb) retravailler le Makefile pour faire un truc plus propre (nécessaire pour le multi-fichiers).
  • (idée Adriweb) déplacer l'exécutable convhex dans un dossier global au lieu de l'avoir dans chaque dossier de sous-projet. Le symlinker, au pire, si besoin (bizarreries chemins avec wine...).
  • (idée Adriweb) Améliorer le front-end, surtout pour le multi-fichiers (synchro curseurs, "onglets" codemirror ? multiple buffers (cf. doc) ?)
  • (idée Adriweb) possiblité de nommer le 8xp (et surtout le varname) autrement que le nom par défaut.
  • (idée Adriweb) cleaner le dossier ZILOG (il y a un certain nombre de choses pas utilisé par notre target de ce CPU eZ80)
  • (idée Adriweb) supporter le search (& replace)
  • (idée Lionel) créer et rajouter les headers standard stdbool.h, iso646.h
  • (idée Lionel) créer un stdint.h, même si certaines définitions de stdint.h sont déjà dans types.h- (Si besoin de plus, cf ce stdint.h)
  • (idée Adriweb) Ctrl/Cmd-click : jump-to-definition feature
  • (idée Adriweb) Multi-user: click => goto user's cursor
  • (idée Adriweb) mettre au clair ce qui sera et ce qui ne sera pas dans la release open-source -> tout sauf trucs spécifiques TI-Planet.
  • (idée Adriweb) chat intégré

How does the LLVM backend function?

I am trying to build a local Clang/LLVM C compiler for my TI84 Plus CE-T. I have successfully compiled Clang with a Z80 target using jacobly’s llvm-ez80, but I don’t understand the rest of the build process. Looking at “Backend.php”, I can see a call to run an “llvm” executable, but I don’t know if this a shell script with a full build system or a separate program.

TL;DR: How would I go about replicating the Project Builder’s LLVM backend locally?

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.