nimscripter
NimForUE
nimscripter | NimForUE | |
---|---|---|
3 | 15 | |
142 | 438 | |
- | - | |
5.2 | 9.2 | |
2 months ago | 4 days ago | |
Nim | Nim | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
nimscripter
-
NIR: Nim Intermediate Representation
> What does this mean? There's a runtime VM or compile time VM?
Compile time VM. It's used to run macros / templates / concepts. You can also run most code at compile time in a `static` block except for stuff that needs C calls. You can also compile the VM into a program and use it as a runtime VM (see https://github.com/beef331/nimscripter) which I do in my GUI lib. NIR should enable the compile time VM to run faster too, and possibly use JIT'ed code.
- Purpose of NimScript vs nim
-
Finally. Embed
Checkout Nim! It does much of what you describe and its great. The core language is fairly small (not quite lua simple but probably ML comparable). It compiles fast enough that a Nim repl like `inim` is useable to check features and for basic maths, though it requires a C compiler, but TCC [4] works perfectly. Essentially Nim + tcc is pretty close to your description, IMHO. Though I'm not sure TCC supports non-x86 targets.
I've never used it but Nim does support some hot reloading as well [3]. It also has a real VM if you want to run user scripts and has a nice library for it [1]. Its not quite Lua flexible but for a generally compiled language its impressive.
Recently I made a wrapper to embed access to the Nim compilers macros at runtime [2]. It took 3-4 hours probably and still compiles in 10s of seconds despite building in a fair bit of the compiler! It was useful for making a code generator for a serializer format. Though I'm not sure its small enough to live on even beefy m4/m7 microcontrollers. Though I'm tempted to try.
1: https://github.com/beef331/nimscripter
NimForUE
-
Nim Versions 2.0.4 and 1.6.20 released
Glad to see that the windows executables are working again.
I had tried a little while ago to test things out on my windows machine after seeing the NimForUE project (https://github.com/jmgomez/NimForUE) and was sad to see that my computer would auto-mark any nim binaries as malware and delete them. I wasn't too invested so I just shrugged rather than looking for too many workarounds.
-
Unity plan pricing and packaging updates
For people scared off by C++ and who want faster recompile times, check out the Nim bindings [0]. Check out his Twitter/X account [1] for plenty of cool things it brings to the table.
[0]: https://github.com/jmgomez/NimForUE
[1]: https://twitter.com/_jmgomez_
- Nim Lang for Unreal Engine
-
Ask HN: Why did Nim not catch-on like wild fire as Rust did?
I started using Nim because i wanted to port some of machine learning models written in python with the idea of making them more portable. It was a lot of work as community is relatively small and a new user would end up writing a lot of code.
But Nim has a pretty solid standard library with clearly written code and an awesome community to help with problems. I generally read a lot of standard library code to expand my knowledge of language and discover common patterns which repeat themselves in a lot of real world problems.
C inter-op is really first class, and as far as i know it has one of best C++ inter-op as well, you can take a look at: https://github.com/jmgomez/NimForUE for a real world example.
I use Nim for my work in both professional and personal capacity and also have written about some of it at https://ramanlabs.in/static/blog/index.html
-
Anybody still trying to make Godot 4.X bindings?
I've switched over to Unreal and helped out with NimForUE early on. If you have any interest in Unreal, you should check it out since it's in a really good state. It does assume knowledge of Nim, Unreal, and C++ to really get the most out of it.
-
Purpose of NimScript vs nim
In NimForUE, we ran into issues with nimble early on, so we resorted to using nim for the build scripts because we needed to do code generation gymnastics to work with Unreal's build system and Nim's C++ codegen. The Nim compiler has had some patches since we first worked on the build system, so maybe if we had to do things over again we could go back to NimScript.
- Nim 2.0.0 RC2
-
Epic’s Verse Programming Language Reference
They would be better off just paying the guy developing NimForUE some money and making it first-party.
-
The Icculus Microgrant is giving out 250 dollar grants to open source projects, please brag about your project(s) in this thread so I can see them!
NimForUE is an Unreal Engine plugin that aims to replace the verbose and tedious C++ with the concise and clean Nim language, supporting blueprints too and giving hot reloading and native speed performance. https://github.com/jmgomez/NimForUE
-
The Verse Calculus: a Core Calculus for Functional Logic Programming (more details on Epic's new language)
(https://github.com/jmgomez/NimForUE)
What are some alternatives?
incbin - Include binary files in C/C++
Gwion - :musical_note: strongly-timed musical programming language
pyker - Python tool to convert files from a directory tree into a C header file.
neverengine
pl_mpeg - Single file C library for decoding MPEG1 Video and MP2 Audio
bu - B)asic|But-For U)tility Code/Programs (in Nim & Often Unix/POSIX/Linux Context)
execfs - Proof of concept userspace filesystem that executes filenames as shell commands and makes the result accessible though reading the file.
nimrodot - Nim Godot 4.x GDExtension wrapper (Proof of Concept)
cdecl - Nim helper for using C Macros
axiom - A 64-bit kernel implemented in Nim
langserver - The Nim language server implementation (based on nimsuggest)
vos - Vinix is an effort to write a modern, fast, and useful operating system in the V programming language