Giter Site home page Giter Site logo

jet's People

Contributors

matt-attack avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

jet's Issues

Optimize ResolveDependencies()

Part of the implementation of #19
Currently loads and parses the "db" for each project, could cache this at least for the lookups of one project.

Allow casting to/constructing of array type

Currently there is no way to instantiate an array type without also allocating an array. Perhaps allow user to instantiate on the stack a [] object and assign to it manually.

let int[] arr;
arr.size = 5;
arr.ptr = <int*>malloc(5*4);

More complex syntax could also be allowed which lets the user construct it like any other object.

let arr = int[](5, <int*>malloc(5*4));

Add version option to project files

required for #19 eventually

Just add a new option in project files to accept a version string that will be stored alongside the package name and location in the central database later.

Local Project Management

Enable finding of projects stored throughout your computer. Based on idea from #18

Implementation of this would involve storing a list of projects built and their locations in a central location on the computer for the compiler to be able to find when searching for dependencies.
Currently, dependencies are specified as a path relative to the project requiring them. This will have to be changed somewhat. The initial idea is to search for projects in this list if no path delimiter is specified (/) and allow for a required version to be added after the project name.

Exact details on the version system and how to handle duplicates will have to be figured out in following issues. The main goal of this issue is the central database and being able to find packages with no version resolution.

Merge .jlib file and .a file

Currently compilation output is in the form of two separate files, a .a archive with all the .o files and a .jlib with all the language specific metadata.

Determine how to name projects

Currently the project management system uses the name you supplied to build the library, not the folder name or something hardcoded. Perhaps this would be good to add to the project file for consistency.

This is causing things to fail because of capitalization mismatches. (JetCore vs jetcore)

Bool Types Casting

Allow implicit casting of 0 and 1 to bool. Perhaps consider allowing values above 1 to cast to bool through a comparison. But a bool should ONLY be equal to zero or one.

Remove size from array type

Array size member of Type is no longer used as it was shared between all usages of the type and led to issues. Need to remove it and all remaining uses of it.

Future addition could be adding a new place for this size to help with the compiler making smarter decisions and to give better hints to the user.

Improve and finish up lambdas

Currently they have a fixed max capture size of 64 bytes. Need to start by making this an error condition then make it dynamically allocate for larger.
Also need to include the function type somewhere so it works properly.

Add Basic Doc Generator

Should start out by generating basic html file that lists types and functions so that one does not have to scan all the code to find it. Then have it load basic description from comment above the declaration.

Allow member variable initialization inline

Allow users to declare the value to initialize member variables to inline, much like the feature in C++. The value would automatically be assigned to the variable at the start of the destructor, assigning at the end could cause conflict or confusion if the user decides to assign to it in the constructor as well.
Ex: struct Type { int p = 5; }

Allow importing .jlib files into a project

Relies on #13
Add an interface for the compiler to import a jlib file just as it was a separate project. This could allow users to download prebuilt libraries and integrate them into their projects rather than having to build all of them from source

Automatic Header Generation

Add an option to automatically generate headers for your compiled code to make using it from other languages (especially C/C++) much easier.

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.