sokol-odin
perl5
sokol-odin | perl5 | |
---|---|---|
4 | 87 | |
61 | 1,844 | |
- | 0.9% | |
8.9 | 9.9 | |
6 days ago | 4 days ago | |
C | Perl | |
- | GNU General Public License v3.0 or later |
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.
sokol-odin
-
Odin Programming Language
* etc
There is also the second issue that C is technically TWO languages: the C programming language and the C preprocessor. People mix the two together and things cannot be easily translated. A good basic example of this is people using `#define` for constants, and thus that name has no semantic meaning in the language itself. A translator has to try and make some semantic meaning from the intersection of these two languages, even if people don't make a distinction when making APIs.
And Odin's `foreign` system allows [1] for a lot of really nice things that most other languages cannot do so tersely. Here are two examples of demonstrating bindings of C libraries that feel as if they were native Odin libraries WITHOUT any wrappers:
* https://github.com/floooh/sokol-odin/blob/main/sokol/gfx/gfx... (and the rest)
-
Nim v2.0 Released
I maintain auto-generated bindings for my C libraries for Zig and Nim (and Odin and Rust - although the Rust bindings definitely need some love to make them a lot more idiomatic).
I think looking at the examples (which is essentially the same code in different languages) gives you a high level idea, but they only scratch the surface when it comes to language features (things like the Zig code not using comptime features):
Zig: https://github.com/floooh/sokol-zig/tree/master/src/examples
Nim: https://github.com/floooh/sokol-nim/tree/master/examples
Odin: https://github.com/floooh/sokol-odin/tree/main/examples
Rust: https://github.com/floooh/sokol-rust/tree/main/examples
-
I think Zig is hard but worth it
I'm actually dabbling with Odin a bit in the scope of language bindings for the sokol headers:
https://github.com/floooh/sokol-odin
It's a very enjoyable language!
-
I like the Odin programming language
I recently wrote a bindings generator to Odin for my C libraries, and the FFI is very well thought out, down to defining things like linker dependencies in the code. For instance see here:
https://github.com/floooh/sokol-odin/blob/main/sokol/gfx/gfx...
The only minor downside (compared to Zig) is that Odin still requires a separate C/C++ toolchain to actually build the C dependencies. But I guess that's a typical 1st-world-problem ;)
(but AFAIK Odins FFI system isn't in any way related or depending on LLVM).
perl5
- Perl first commit: a replacement for Awk and sed
- Perl first commit: a “replacement” for Awk and sed
- "perlclass" is coming in Perl 5.38
-
GitHub crashes on Perl's Configure
I was not signed into GitHub. I opened the permalink and it displayed fine. I opened the raw page in another tab; it was fine.
- perldelta v5.38.0 (Draft)
-
Failed matches don't reset the match variables
Nothing to do with a fixing the trap, it turns out: https://github.com/Perl/perl5/commit/4197fe35a33e6471f8f532abfd06cd6c120f180e which leads to https://rt.perl.org/perl5/Ticket/Display.html?id=109408
- What's your favourite software on GitHub?
- How Are the Cool Kids Installing Perl on OSX Nowadays?
-
SPVM now supports object-oriented programming in Perl
As we mentioned last week, this week we are working on a portable, symbolic link implementation that also works on Windows. You can see our progress here. To implement this, the Perl win32/win32.c source code would be greatly appreciated.
What are some alternatives?
linux - Linux kernel source tree
rakudo - 🦋 Rakudo – Raku on MoarVM, JVM, and JS
wayland - Core Wayland protocol and libraries (mirror)
Gource - software version control visualization
mvb-opencv - Minimum Viable Bindings to OpenCV for Nim
Corinna - Corinna - Bring Modern OO to the Core of Perl
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
problem-solving - 🦋 Problem Solving, a repo for handling problems that require review, deliberation and possibly debate
RFCs - A repository for your Nim proposals.
optparse - Portable, reentrant, getopt-like option parser
FrameworkBenchmarks - Source for the TechEmpower Framework Benchmarks project
perlweeklychallenge-club - Knowledge base for The Weekly Challenge club members using Perl, Raku, Ada, APL, Awk, Bash, BASIC, Bc, Befunge-93, Bourne Shell, BQN, Brainfuck, C3, C, CESIL, C++, C#, Clojure, COBOL, Coconut, Crystal, D, Dart, Dc, Elm, Emacs Lisp, Erlang, Excel VBA, Fennel, Fish, Forth, Fortran, Gembase, GNAT, Go, Haskell, Haxe, HTML, Idris, IO, J, Janet, Java, JavaScript, Julia, Kotlin, Lisp, Lua, M4, Miranda, Modula 3, MMIX, Mumps, Myrddin, Nim, Nix, Node.js, Nuweb, OCaml, Odin, Ook, Pascal, PHP, Python, Postscript, Prolog, R, Ring, Ruby, Rust, Scala, Scheme, Sed, Smalltalk, SQL, Swift, Tcl, TypeScript, Visual BASIC, WebAssembly, Wolfram, XSLT and Zig.