I'm a huge fan of tcc. I use it on embedded systems -- a good trick is to pre-process any headers you need via cpp preprocessor, 'compress' them in a single file, and add your .c to that. That way you don't need to cart around all the -dev packages etc.
The 'hidden gem' of tcc is libtcc (the backend), which you can use as a JIT subsystem in your own code. For example I've written a full JIT translator for simavr [0] like that. The code translates each AVR opcode into it's own little piece of C, then compile the whole 'firmware' and runs it.
Oddly this updated version has worse code generation than the last official release (at least on Windows). It uses 3 instructions just to push one arg to a function call!
It works by running QEMU inside Linux inside a modified JSLinux, and then running Win2K inside QEMU.
JSLinux was modified to incorporate AMD's hardware-assisted virtualization instructions/extensions, so that QEMU could use KVM. This means that actual x86 emulation gets done in JavaScript layer, and you have (JavaScript (JSLinux(QEMU)) <-> Win2K) instead of (JavaScript(JSLinux(QEMU(Win2K))))), which would be... well I tried running Mini vMac (Mac 128K emulator) inside Basilisk II (PowerPC Mac emulator) one day... it was pretty much unusable, even though Classic Mac OS was designed for a 7.8MHz CPU.
So basically this wouldn't have been possible without implementing virtualization. Despite the fact that said virtualization is actually fake, and it's really emulation.
How would I go about creating a github mirror for some other project? I mean I get that I can just upload the project as it is, but what if I want it so that updates to the original are reflected automatically in the mirror?
Create a repo on GitLab where mirroring is in the default featureset, then create a repo on GitHub, then create a hook so that when the GitLab mirror pulls in new commits, it pushes those to the GitHub "mirror".
Or just question why you're doing this to begin with.
The motivation to put up the mirror is that the creator of the original project has no interest in changing his project to work with the languages' package manager, but has endorsed others mirroring it. So I could mirror the original project on Github and add the files needed for the languages' package manager to work with it.
> To set up your own mirror, you can configure a post-receive hook on your official project repository to automatically push commits to a mirror repository on GitHub.com (or GitHub Enterprise).
Your response is entirely too wide open. I could write many paragraphs going into details, but without knowing where you are coming from I think it will be a waste of my time.
In short, why should Ballard care that more might "engage and watch" if the project were on github than Savannah? Especially for a project he's no longer working on?
> It is an illusion. Anyone reading this who feels like you or your company have some right to demand anything from someone’s volunteer efforts in ANY open source project, even small libraries, STOP IT. You are not being a leader. You’re doing a disservice to yourself and the community by acting this way. ...
> The crowning motion of this illusion is to claim that dismissing such remarks is disingenuous since “the commentary is more valuable than original source of the discussion.” ...
> Emotional Manipulation
> This was the worst part of this experience, and is akin to abuse. Demands or demanding comments stem from the misconception that users are entitled to FOSS. While this manipulation also stems from a misconception, it’s a different one: that open source maintainers depend on, or need, their open source projects.
> For most maintainers or project owners, this is FALSE!
> You can’t dangle a maintainer’s open source project in front of them like a carrot and say, “You want this (to succeed), don’t you?” ...
> Here’s the brutal truth for 99.9% (* not an actual figure) of open source projects, folks: you (the user of an open source project) need and rely on the project more than the maintainers do. Do not make the mistake of thinking that maintainers are emotionally tied to their projects.
Nowhere does it say in the original comment that someone should do something. Just a notice expressing what someone would love. And it is not difficult to see why having this on github would indeed make it easier to watch the project: because many already are GitHub users and because GitHub has that functionality.
There was zero entitlement in that post.
So thanks for copy-pasting all that but it completely besides the point.
And frankly "monoculture", "proprietary" and "software freedom" are starting to become red flags. Not wanting monoculture is fine, forgetting that you don't have monopoly for truth or the right way to do things is not fine. As is not labeling someone just for expressing their wishes.
The best way to hide entitlement is to phrase things so their surface sound innocent.
If my mother were to say "I would love it if you call me more", do you think it's simply a notice, with no other meaning behind it?
Because that's not the way I take it.
You still haven't answered the question of why Ballard would want to make it easier, given that 1) he's no longer working on it, 2) it's available under a free software license, 3) with a git repo, and 4) others have already put it on github.
The 'hidden gem' of tcc is libtcc (the backend), which you can use as a JIT subsystem in your own code. For example I've written a full JIT translator for simavr [0] like that. The code translates each AVR opcode into it's own little piece of C, then compile the whole 'firmware' and runs it.
[0]: https://github.com/buserror/simavr/tree/wip/jit