hussar-lang / hussar Goto Github PK
View Code? Open in Web Editor NEWA small toy programming language.
Home Page: https://hussar.io
License: MIT License
A small toy programming language.
Home Page: https://hussar.io
License: MIT License
It might be worth looking into LLVM, or other options. I would like to add compilation to remove the need for the tooling when running a script, as well as the speed improvement that comes from compilation.
I may be misremembering, but the hussar env
command shows the injected version, and I don't think GoReleaser is currently injecting that.
There are currently a couple of source files that are far too long and have no logical structure to them. Splitting them up into far more smaller files and dividing them into logical chunks would make it far easier to work with.
Adding imports would allow users to organise code better, as well as share libraries with other people.
Tidy up all compiler warnings and errors to make them more clear and consistent.
Make the project layout more idiomatic for Go by doing the following:
For more information, refer to the Go standards on project layout
Some extremely parts of the code have far too few tests. Code coverage needs to be increased in these areas.
It would be beneficial to have a plugin system to allow for more commands in the core toolset.
This would allow for anyone to create a linter or testing tool, and make it available from the core tools.
The option I'm currently looking at to achieve this with is the plugin package. This comes with one major disadvantage: it does not support Windows currently.
We then have three options:
If anyone has an opinion on this, I'd like to hear it.
Adding Go modules support should be fairly trivial. There's not really any point in not doing it at this point.
When reporting an error or warning, show the file, line number, and character where an error occurred. Possibly even show a printout of the code with an arrow like Rust does.
Is your feature request related to a problem? Please describe.
The current handling of config files isn't too clear, as the local directory can override it. It would be better if there were a command that can display the currently loaded config, in the same vein as hussar env
.
Describe the solution you'd like
A hussar config
or hussar config show
command to show the currently loaded config variables (and if possible, where they're set from).
Using a service like sentry.io will give a lot more insight into what some critical errors may be.
There should probably be a flag to get in the config file to disable analytics like this.
This would go a long way to making the language nicer to use and easier to learn.
Can be done easily with the template: https://github.com/hussar-lang/hussar/security/policy
Adding string handling methods, filesystem I/O and networking would make the language more powerful and easier to use.
Check GitHub releases when running the tool and ask the user if they want to update if a newer version is found. If the user does not want to update, save that and don't ask again for 24 hours.
It might be good to automatically call the main()
method if it exists and pass in all program arguments to it.
Add debugging support, either using a custom debugger or dlv.
This will require some tooling (a debug command) and some runtime changes to expose the correct information.
More types like distinguishing between integers, longs, floating point, etc would make the language more powerful.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.