u/FluxProgrammingLang

▲ 35 r/FluxProgrammingLang+2 crossposts

The standard library has expanded and had existing pieces improved, and now includes:

  • a high efficiency JSON parser using the standard arena allocator
  • a dotenv library written by Flux’s second contributor ever, thanks to reinitd on GitHub
  • a cryptography library covering MD5, SHA 256 & 384 (512 inbound soon), x25519, AES 128 & GCM
  • a discrete and fast Fourier transformation library
  • a function detouring & trampolining library
  • a dynamic array and hash map added to the collections library
  • a ray tracing library
  • a soft and hard body physics library
  • major improvements to the standard heap allocator

Keywords added to the language:

  • defer
  • deprecate
  • jump
  • goto & label

There is now also a minimal package manager available and actively being improved, with the ability to publish packages coming soon.

Upgrades to the compiler:

  • bit slicing of any type or value
  • ability to take the address of all literal types
  • ability to give function names with arbitrary bytes, allowing the embedding of machine code in the symbol table for obfuscation
  • ability to use f-strings as function names to dynamically generate function names at compile time
  • added the not null !? boolean postfix unary operator, can be used on pointers or values
  • added the address assign @= operator, used like ptr @= var
  • ownership and moving are now fully working as intended, providing good errors with correction feedback so you know exactly what to fix.

Fixes to the compiler:

  • if(ptr) now emitting correct IR
  • all locations boolean checking for null pointer also fixed
  • fixed singular if expressions with no else clause, print(“hi”) if (x < 5); working
u/FluxProgrammingLang — 19 days ago

Updates and changes:

  • Added singleton initialization with the signinit keyword
  • Added double keyword, natural 64 bit decimal
  • Added long and ulong, natural 64 bit integers
  • Added noreturn keyword for termination functions
  • Added defer keyword, LIFO execution
  • Added goto and label keywords for old school control flow
  • Implemented the recursion arrow <~ to force tail call optimization of a function
  • Fixed bugs related to scoping
  • Added big integer and arbitrary precision decimal libraries
  • Added a runtime function patch detour library with hot-patching over TCP examples, one using HMAC to verify the server signature

In progress:

  • Removing ‘red’ prefix from all libraries now that the entire language is implemented and is now considered full spec

The videos demonstrate Flux doing fluid physics in OpenGL with shaders, a multithreaded Mandelbrot viewer using pertubation theory and arbitrary precision decimals via big integer math, and the last demonstrates infinite recursion with zero stack frame growth.

u/FluxProgrammingLang — 2 months ago