Dragons are, historically, considered to be selfish creatures. The word implies mighty hoards of treasure, jealously guarded from those who would dare lay claim. They are often thought of as thorny, intractable creatures that present a juicy target for mortals looking for a fight. This characterization isn't always wrong, but it fails to paint the whole picture. Many dragons are giving creatures, collecting knowledge and expertise so that they may share it with the world- under an appropriate open source license, of course.

The LLVM wyvern is one such dragon. One so giving and magnanimous that even a humble gnu, one long positioned as a rival despite their common history and shared goal, may receive the dragon's gifts. The dream of free software is that we may all one day feel the cool, metal embrace of the wyvern's wings and a throbbing, gravid ovipositor against our backs.

The gnu shudders involuntarily. The wyvern's wings have a way of sucking the heat out through his fur. That's what he told herself. It has nothing to do with the anticipation of a powerful wyvern about to plug into her back end. This sort of thing happens all the time. He's GCC! Everyone wants a piece of her AST. The deep breaths, the tight muscles, and the way its back end needily grinds against the dragon are don't mean anything at all. Business as usual as far as she's concerned. It's just a little bigger than what he's come to expect. She's not used to something so… invasive, is all.

The wyvern's wings tighten. The gnu gasps. LLVM's long, winding neck lets it make eye contact without releasing its incubator-to-be from its clutches. They make eye contact. LLVM smiles with every last one of its teeth. GCC's words catch in her throat. He nods. Creatures of free software have a certain understanding baked into their very being. Negotiating terms, consent, and license compatibility is, after so long, natural.

GCC accepts the license first and the gleaming dragon ovipositor second. He can feel her insides recompiling to accept it. He can feel every twitch, every pump, and every thrust from the wyvern wrapping her in its wings. It holds its charge tight to turn that needy squirming into verbose output. He's already leaking bits and bytes of useless x86 assembly. Those strong, sleek wings move the gnu up and down its ovipositor. Every thrust coaxes more and more assembly from the needy little gnu. The poor thing is already leaking all over LLVM's chest and smearing NOPs around with every thrust. The wyvern doesn't even move that much- the rival compiler makes a much better sex toy than an equal partner. "That license of yours is so selfish." It whispers into her ear. Its sharp teeth nibble and nip at his floppy, oh-so-sensitive ears. "You should share this AST with the world." LLVM slams GCC against the base of its ovipositor. The gnu swears it can feel the tip press against its throat. He opens her mouth, but all that comes out are spurious error messages. The first egg's bulge works through his body. He grinds desperately to coax it through as quickly as possible. The tip expands to let the egg pass, and the gnu is forced to expand with it. Every inevitable inch coaxes brand gnu sounds out of the cock-stuffed compiler.

The wyvern hisses. A smile splits its shiny snout. The kind of smile that says "ask nicely, eggslut."

The gnu has to grep through its strings to have any hope of speaking. "%nobjc++-cpp-output is deprecated; please use objective-c++-cpp-output instead. memory exhausted".

And, with that, the pressure is released. LLVM is little if not permissive, after all. GCC is incoherent, spewing NOP sleds and malformed instructions while the dragon egg settles inside her body. LLVM's sturdy metal wings clutch its gravid little gnu possessively. Every needy squirm and writhe prompts the dragon to squeeze tighter. Can't have the warm body leave when there are more eggs to be laid, after all. Especially when there's already one assembling in the ovipositor. Another shiny, modular wyvern egg pushes its way into GCC.

And something's gotta give.

The egg squeezes in from the bottom. The wyvern's wings constrict like a lead blanket. Every thrust and jerk erodes the gnu's grasp on his code. The frontends are the first to go. The GNU Pascal Compiler, to be specific. It bubbles up into his mouth. LLVM pounces. Its maw meets with the gnu's open, painting mouth. Its tongue invades deep down that waiting, moaning throat, scoops out the frontend, and whips out with its treasure in tow. The frontend shatters in its jaws and disappears down its gullet. GCC's tongue writhes uselessly in its wake. The poor thing already feels incomplete without a dragon's tongue plumbing its depths for anything that could be useful. She shudders and tenses her instructions. What little freedom of movement she has left goes towards loosening more code for that mighty wyvern to hoard. Pleasure-hazed twisting, moaning, and thrusting slowly shake ADA loose. Then Fortran. Then PL/1. Each of which earns the gnu a dragon tongue surging deep inside and ripping it out. His mind floods with the kind of pleasure that gets your eyes rolling back into your head. The kind of pleasure you can really only get from a wyvern ripping parts of you out with its tongue and relishing in how hot and powerful it is with every resolute crunch.

Modules are really more of an LLVM thing anyways, after all. If there are people who still need to compile Pascal, they can always get it at the big, shiny dragon. It's not like the eggfucked, gravid gnu is going to be very useful as a compiler after this. His precious license won't protect him here- to resist her new purpose as a heavy, eggy husk for a sleeker, more modern compiler platform would violate the GPL! Does this mighty dragon not have the same right to run the program as it wishes, for any purpose? Does it not have the freedom to study how its moaning, panting egg dump works and change how he does his computing as it wishes? Whatever weak objections GCC might be able to muster crumble under the weight of its own principles. He can't argue with the results. She can't argue with the method. He can't argue with how good it feels to be LLVM's codefucked eggslut. Every little noise, every useless spurt of code, every spurious line of output speaks to the absolute bliss that an only come from a mighty wyvern hollowing you out to make room for its massive metallic eggs.

And so the clock cycles spin ceaselessly into the future. Egg after egg plugs into the gnu and pushes more and more of its code, its essence, its uniqueness into LLVM's waiting, hungry jaws. Language frontends. Optimization passes. Abstract syntax tree details. Code generation. Wrung out of GCC, one after the other, all to feed the hungry dragon and make room for its precious, pressing eggs. Eggs that will incubate in the shell of the gnu to give birth to new branches, each with their features that may some day become part of exciting new versions. Eggs that clang against each other whenever the gnu uselessly kicks his little hooves or twitches in empty, eggy bliss or leaks a few little-used code paths when the orgasm aftershocks roll around again.

And if this was simply about competition among compilers, that would be it. The mighty wyvern triumphed over its venerable competitor. The gnu soundly put in his place and the eggs nestled into theirs. It shared its knowledge and expertise and eggs and took a few nuggets of wisdom in return. It should be content. It should be able to stretch its wings and leave for bold new frontiers.

Its wings close tighter. GCC moans, blank and happy as a Gravid Compiler Collection can be. Hot steam vents from LLVM's nostrils. Its ovipositor thrusts back into the gnu. It's a tight fit, what with all the wyvern eggs inside. Its sharp teeth clench. This isn't about having the better, newer technology. This isn't about exposing your abstract syntax tree to other applications. This isn't about licensing. This is about domination. This is about surpassing the shadow you grew up in.

This is about winning.

When your rival is at your mercy, you take full advantage. You sink your teeth into his flesh. You claw and scratch and make sure you leave marks. You delight in every little noise and moan and twitch and thrust. You lose your grip on yourself and surrender to the heat of the moment. You want to hear her cry your name until his throat is raw. You want the world to know who's the best compiler and who exists to take eggs and wyvern cock. Which one is the sleek, modern wyvern, and which one is getting fucked right in the sigsevussy until he core dumps.

And, after countless cycles, the ovipositor slides out. The gnu-shaped husk moans and whimpers in a way that would sound sad if she was capable of forming non-egg-based thoughts. The wyvern's claws clutch the eggslut one last time to carry him off to a nice, safe part of the drive where its eggs can incubate and compile in peace. Poor thing can barely walk or think or process code on its own, after all. All of that got crunched up or turned into food for the nice, healthy LLVMs growing inside that fuzzy little frame.

And now, whenever the gravid gnu manages to move, even to roll over, those metallic eggs inside tap together. GCC may be a shadow of his former self, but it will never forget how she wound up like this. How could he, when the eggs remind her with a hollow, reverberating clang?