1
0
Fork 0
forked from fun/fun

Lot of content fixes and updates. No code changes. (0.41.10)

This commit is contained in:
Johannes Findeisen 2026-05-11 01:44:08 +02:00
commit c3ccab9492
12 changed files with 69 additions and 70 deletions

View file

@ -37,18 +37,18 @@ else()
set(_FUN_WITH_RUST_STATE "DISABLED") set(_FUN_WITH_RUST_STATE "DISABLED")
endif() endif()
if(FUN_BUILD_DOCS) #if(FUN_BUILD_DOCS)
set(_FUN_BUILD_DOCS "ENABLED") # set(_FUN_BUILD_DOCS "ENABLED")
else() #else()
set(_FUN_BUILD_DOCS "DISABLED") # set(_FUN_BUILD_DOCS "DISABLED")
endif() #endif()
message(STATUS "==== Fun build options ====") message(STATUS "==== Fun build options ====")
message(STATUS " FUN_DEBUG: ${_FUN_DEBUG_STATE}") message(STATUS " FUN_DEBUG: ${_FUN_DEBUG_STATE}")
message(STATUS " FUN_USE_MUSL: ${_FUN_USE_MUSL_STATE}") message(STATUS " FUN_USE_MUSL: ${_FUN_USE_MUSL_STATE}")
message(STATUS " FUN_WITH_CPP: ${_FUN_WITH_CPP_STATE}") message(STATUS " FUN_WITH_CPP: ${_FUN_WITH_CPP_STATE}")
message(STATUS " FUN_WITH_RUST: ${_FUN_WITH_RUST_STATE}") message(STATUS " FUN_WITH_RUST: ${_FUN_WITH_RUST_STATE}")
message(STATUS " FUN_BUILD_DOCS: ${_FUN_BUILD_DOCS}") #message(STATUS " FUN_BUILD_DOCS: ${_FUN_BUILD_DOCS}")
message(STATUS "===========================") message(STATUS "===========================")
# Convenience aggregate target (like 'build' in Makefile) # Convenience aggregate target (like 'build' in Makefile)

View file

@ -11,27 +11,27 @@ function(_fun_print_feature name flag)
endfunction() endfunction()
# Include each extension module # Include each extension module
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/SQLITE.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/PCSC.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/JSON.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/INI.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/XML2.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/PCRE2.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/CURL.cmake) include(${CMAKE_SOURCE_DIR}/cmake/Extensions/CURL.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/REPL.cmake) include(${CMAKE_SOURCE_DIR}/cmake/Extensions/INI.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/OPENSSL.cmake) include(${CMAKE_SOURCE_DIR}/cmake/Extensions/JSON.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/KCGI.cmake) include(${CMAKE_SOURCE_DIR}/cmake/Extensions/KCGI.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/OPENSSL.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/PCRE2.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/PCSC.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/REPL.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/SQLITE.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/Extensions/XML2.cmake)
# Summary of extension toggles # Summary of extension toggles
message(STATUS "---- Fun extension summary ----") message(STATUS "---- Fun extension summary ----")
_fun_print_feature("SQLite (FUN_WITH_SQLITE)" FUN_WITH_SQLITE)
_fun_print_feature("PCSC (FUN_WITH_PCSC)" FUN_WITH_PCSC)
_fun_print_feature("json-c (FUN_WITH_JSON)" FUN_WITH_JSON)
_fun_print_feature("INI/iniparser (FUN_WITH_INI)" FUN_WITH_INI)
_fun_print_feature("libxml2 (FUN_WITH_XML2)" FUN_WITH_XML2)
_fun_print_feature("PCRE2 (FUN_WITH_PCRE2)" FUN_WITH_PCRE2)
_fun_print_feature("curl (FUN_WITH_CURL)" FUN_WITH_CURL) _fun_print_feature("curl (FUN_WITH_CURL)" FUN_WITH_CURL)
_fun_print_feature("REPL (FUN_WITH_REPL)" FUN_WITH_REPL) _fun_print_feature("iniparser (FUN_WITH_INI)" FUN_WITH_INI)
_fun_print_feature("OpenSSL (FUN_WITH_OPENSSL)" FUN_WITH_OPENSSL) _fun_print_feature("json-c (FUN_WITH_JSON)" FUN_WITH_JSON)
_fun_print_feature("kcgi (FUN_WITH_KCGI)" FUN_WITH_KCGI) _fun_print_feature("kcgi (FUN_WITH_KCGI)" FUN_WITH_KCGI)
_fun_print_feature("libxml2 (FUN_WITH_XML2)" FUN_WITH_XML2)
_fun_print_feature("OpenSSL (FUN_WITH_OPENSSL)" FUN_WITH_OPENSSL)
_fun_print_feature("PCRE2 (FUN_WITH_PCRE2)" FUN_WITH_PCRE2)
_fun_print_feature("PCSC-Lite (FUN_WITH_PCSC)" FUN_WITH_PCSC)
_fun_print_feature("REPL (FUN_WITH_REPL)" FUN_WITH_REPL)
_fun_print_feature("SQLite (FUN_WITH_SQLITE)" FUN_WITH_SQLITE)
message(STATUS "--------------------------------") message(STATUS "--------------------------------")

View file

@ -18,7 +18,7 @@ layout:
</div> </div>
<p style="text-align: center; color: #e8e8e8; font-size: 12px;"> <p style="text-align: center; color: #e8e8e8; font-size: 12px;">
Page generated at: {{ site.time | date: "%b %-d, %Y" }} ({{ site.time | date: "%Z" }}) using <a href="https://jekyllrb.com/">Jekyll</a> and <a href="https://git.xw3.org/xw3/xw3">xw3</a> on {{ site.os }}<br> Page generated at: {{ site.time | date: "%b %-d, %Y" }} using <a href="https://jekyllrb.com/">Jekyll</a> and <a href="https://git.xw3.org/xw3/xw3">xw3</a> on {{ site.os }}<br>
<a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" style="text-decoration:none;" title="License"><img src="/images/by-nc-sa-88x31.png"></a></p> <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/" style="text-decoration:none;" title="License"><img src="/images/by-nc-sa-88x31.png"></a></p>
<script src="/js/sorttable-2.min.js" charset="utf-8"></script> <script src="/js/sorttable-2.min.js" charset="utf-8"></script>

View file

@ -5,8 +5,8 @@ layout: default
<div class="post"> <div class="post">
<header class="post-header"> <header class="post-header">
<h1 class="post-title" id="terminal">{{ site.title }} {{ page.title }}</h1> <h1 class="post-title" id="terminal">{{ site.title }} {{ page.title }}</h1>
{% if page.noDate != true %}<p class="post-meta" style="padding: 0px 0px 0px 0px;">{% if page.date %}{{ page.date | date: "%b %-d, %Y %H:%M:%S" }} ({{ page.date | date: "%b %-d, %Y %H:%M:%S" | date: "%Z" }}) - {% endif %} {% if page.noDate != true %}<p class="post-meta" style="padding: 0;">{% if page.date %}{{ page.date | date: "%b %-d, %Y" }} - {% endif %}
Edited: {{ page.path | file_date | date: "%b %-d, %Y %H:%M:%S" }} ({{ page.path | file_date | date: "%Z" }}){% endif %}{% if page.author %}, <a href="{{ site.git_short }}/{{ page.author }}" target="_blank" class="user">{{ page.author }}</a>{% endif %}</p> Edited: {{ page.path | file_date | date: "%b %-d, %Y" }}{% endif %}{% if page.author %}, <a href="{{ site.git_short }}/{{ page.author }}" target="_blank" class="user">{{ page.author }}</a>{% endif %}</p>
{% if page.subtitle %}<p style="padding: 0px 0px 0px 0px;">{{ page.subtitle }}</p>{% endif %} {% if page.subtitle %}<p style="padding: 0px 0px 0px 0px;">{{ page.subtitle }}</p>{% endif %}
</header> </header>
<article class="post-content"> <article class="post-content">

View file

@ -5,10 +5,7 @@ layout: default
<div class="post"> <div class="post">
<header class="post-header"> <header class="post-header">
<h1 class="post-title" id="terminal">{{ site.title }} {{ page.title }}</h1> <h1 class="post-title" id="terminal">{{ site.title }} {{ page.title }}</h1>
<p class="post-meta" style="padding: 0px 0px 0px 0px;">{% if page.date %}{{ page.date | date: "%b %-d, %Y %H:%M:%S" }}{% endif %} <p class="post-meta" style="padding: 0px 0px 0px 0px;">{% if page.date %}{{ page.date | date: "%b %-d, %Y" }}{% endif %}{% if page.date and page.date_updated %} - {% endif %}{% if page.date_updated %}Edited: {{ page.date_updated | date: "%b %-d, %Y" }}{% endif %}{% if page.author %}, <a href="{{ page.author_url }}" target="_blank" class="user">{{ page.author }}</a>{% endif %}</p>
{% if page.date and page.date_updated %} - {% endif %}
{% if page.date_updated %}Edited: {{ page.date_updated | date: "%b %-d, %Y %H:%M:%S" }}{% endif %}
{% if page.date or page.date_updated %} ({{ page.date | date: "%Z" }}){% endif %}{% if page.author %}, <a href="{{ page.author_url }}" target="_blank" class="user">{{ page.author }}</a>{% endif %}</p>
</header> </header>
<article class="post-content"> <article class="post-content">
{{ content }} {{ content }}

View file

@ -8,7 +8,7 @@ noToc: false
title: Announcing Fun 0.37.62 title: Announcing Fun 0.37.62
description: Homepage and Blog description: Homepage and Blog
date: 2026-01-25 date: 2026-01-25
date_updated: 2026-04-11 00:56:03 date_updated: 2026-05-11
categories: categories:
- news - news
- project - project
@ -32,7 +32,7 @@ Fun is a highly strict yet highly simple programming language that draws inspira
### Important: This is an Experiment ### Important: This is an Experiment
Please note: Fun is an experimental language and should be treated as such. While Fun works, it has many known and unknown bugs. We will not declare Fun as stable until we reach the 1.0 release. This is a project born out of curiosity and passion for elegant code, not production readiness at least not yet. Please note: Fun is an experimental language and should be treated as such. While Fun works, it has many known and unknown bugs. We will not declare Fun as stable until we reach the 1.0 release. This is a project born out of curiosity and passion for elegant code, not production readiness - at least not yet.
### What Makes Fun... Fun? ### What Makes Fun... Fun?
@ -40,12 +40,12 @@ Please note: Fun is an experimental language and should be treated as such. Whil
Fun is built on the idea that coding should be enjoyable, elegant, and consistent. Our manifesto includes core principles like: Fun is built on the idea that coding should be enjoyable, elegant, and consistent. Our manifesto includes core principles like:
- Fun is Fun Programming should spark creativity, not frustration - Fun is Fun - Programming should spark creativity, not frustration
- Fun Uses Nothing Minimalism is power; no unnecessary features or syntax variations - Fun Uses Nothing - Minimalism is power; no unnecessary features or syntax variations
- Indentation is Truth Two spaces, always (no tabs, no debates, no four-space wars) - Indentation is Truth - Two spaces, always (no tabs, no debates, no four-space wars)
- One Way to Do It No clutter, no 15 ways of writing the same thing. Simplicity means clarity - One Way to Do It - No clutter, no 15 ways of writing the same thing. Simplicity means clarity
- Hackable by Nature Small and embeddable, like Lua. Easy to understand, extend, and tinker with - Hackable by Nature - Small and embeddable, like Lua. Easy to understand, extend, and tinker with
- Beautiful Defaults A language that doesn't need linters, formatters, or style guides. Beauty is built in - Beautiful Defaults - A language that doesn't need linters, formatters, or style guides. Beauty is built in
### What's New in Specification v0.3 (and Fun 0.37.62) ### What's New in Specification v0.3 (and Fun 0.37.62)
@ -115,7 +115,7 @@ print(thread_join(tid)) // 25</pre>
Fun provides a clean, readable syntax with: Fun provides a clean, readable syntax with:
- Strict indentation-based structure (2 spaces, no semicolons) - Strict indentation-based structure (two spaces, no semicolons)
- Type safety with no implicit numeric coercions - Type safety with no implicit numeric coercions
- Bounds-checked operations to prevent common errors - Bounds-checked operations to prevent common errors
- Higher-order functions: map, filter, reduce for functional programming - Higher-order functions: map, filter, reduce for functional programming
@ -136,33 +136,33 @@ A language that feels like home for developers who love minimal, elegant tools,
Everybody is welcome to participate! However, before you can get started, you need to contact me at [hanez@fun-lang.org](mailto:hanez@fun-lang.org){:class="mail"} to request an account on our Git server. Everybody is welcome to participate! However, before you can get started, you need to contact me at [hanez@fun-lang.org](mailto:hanez@fun-lang.org){:class="mail"} to request an account on our Git server.
Important: Fun is not developed on third-party Git servers like GitHub or GitLab. All Fun infrastructure is self-hosted at git.xw3.org. This keeps us independent and aligned with the hacker spirit of the project we control our tools, our code, and our community. Important: Fun is not developed on third-party Git servers like GitHub or GitLab. All Fun infrastructure is self-hosted at git.xw3.org. This keeps us independent and aligned with the hacker spirit of the project - we control our tools, our code, and our community.
### Getting Started ### Getting Started
If you're curious about Fun, check out: If you're curious about Fun, check out:
- [Git Repository](https://git.xw3.org/fun/fun){:class="git"} - [Git Repository](https://git.xw3.org/fun/fun){:class="git"}
- [Fun Handbook](/documentation/handbook/) - [Fun Handbook](https://fun-lang.xyz/documentation/handbook/)
- [Fun REPL Guide](/documentation/repl/) - [Fun REPL Guide](https://fun-lang.xyz/documentation/repl/)
- [Specification v0.3](https://git.xw3.org/fun/fun/src/branch/main/spec/v0.3.md){:class="git"} - [Specification v0.4](https://git.xw3.org/fun/fun/src/branch/main/spec/v0.4.md){:class="git"}
- [Examples](https://git.xw3.org/fun/fun/src/branch/main/examples){:class="git"} - [Examples](https://git.xw3.org/fun/fun/src/branch/main/examples){:class="git"}
- [Standard Library](https://git.xw3.org/fun/fun/src/branch/main/lib){:class="git"} - [Standard Library](https://git.xw3.org/fun/fun/src/branch/main/lib){:class="git"}
- [Community](/community/) - [Community](https://fun-lang.xyz/community/)
The examples directory contains demonstrations of most Fun features, from basic "Hello, World!" to threading, networking, classes, and more. The lib directory includes modules written in Fun itself and in the future, most enhancements will be written in Fun rather than C. The examples directory contains demonstrations of most Fun features, from basic "Hello, World!" to threading, networking, classes, and more. The lib directory includes modules written in Fun itself - and in the future, most enhancements will be written in Fun rather than C.
### For Developers ### For Developers
- [Fun Internals](/documentation/internals/){:class="git"} - [Fun Internals](https://fun-lang.xyz/documentation/internals/)
- [Fun Opcodes](/documentation/opcodes/){:class="git"} - [Fun Opcodes](https://fun-lang.xyz/documentation/opcodes/)
- [Basic Rust Opcodes Support](/documentation/rust/){:class="git"} - [Basic Rust Opcodes Support](https://fun-lang.xyz/documentation/rust/)
### The Road Ahead ### The Road Ahead
Documentation is a work in progress as we continue debugging, fixing bugs, and evolving the language. Complete API documentation will follow in future releases. Version 0.37.62 represents substantial progress, but remember: this is an experiment, and stability won't be declared until we reach 1.0. Documentation is a work in progress as we continue debugging, fixing bugs, and evolving the language. Complete API documentation will follow in future releases. Version 0.37.62 represents substantial progress, but remember, this is an experiment, and stability won't be declared until we reach 1.0.
Fun may not change the world, but it aims to make programming a little more fun. We're on a journey, and we'd love to have you along for the ride bugs and all. Fun may not change the world, but it aims to make programming a little more fun. We're on a journey, and we'd love to have you along for the ride - bugs and all.
Fun is and will always be 100% free under the terms of the [Apache-2.0 License](https://opensource.org/license/apache-2-0){:class="ext"}. Fun is and will always be 100% free under the terms of the [Apache-2.0 License](https://opensource.org/license/apache-2-0){:class="ext"}.

View file

@ -18,7 +18,7 @@ tags:
- jekyll - jekyll
--- ---
We've recently completed a significant change to our project structure: the source code for the [fun-lang.xyz](https://fun-lang.xyz){:class="ext"} website has been moved directly into the root of the main Fun project repository. We've recently completed a significant change to our project structure: the source code for the [fun-lang.xyz](https://fun-lang.xyz) website has been moved directly into the root of the main Fun project repository.
### Why the Move? ### Why the Move?
@ -34,11 +34,11 @@ Having everything in one place simplifies our development workflow:
You can now find the website source in the `./web/` directory of the repository. It continues to use the [Jekyll](https://jekyllrb.com/){:class="ext"} static site generator. You can now find the website source in the `./web/` directory of the repository. It continues to use the [Jekyll](https://jekyllrb.com/){:class="ext"} static site generator.
For those interested in the technical details or looking to contribute to the website, we have added a new documentation file: [/web/documentation/website/](../documentation/website/){:class="git"}. This document covers the technology stack, the directory structure, and the available `Makefile` targets for local development and deployment. For those interested in the technical details or looking to contribute to the website, we have added a new documentation file: [/documentation/website/](https://fun-lang.xyz/documentation/website/). This document covers the technology stack, the directory structure, and the available `Makefile` targets for local development and deployment.
### What changes for you? ### What changes for you?
For most users, nothing changes! The website remains available at [https://fun-lang.xyz](https://fun-lang.xyz){:class="ext"}. If you are a contributor or following the project closely, you'll just need to look into the `./web/` directory instead of a separate repository. For most users, nothing changes! The website remains available at [https://fun-lang.xyz](https://fun-lang.xyz). If you are a contributor or following the project closely, you'll just need to look into the `./web/` directory instead of a separate repository.
Happy hacking! Happy hacking!

View file

@ -85,7 +85,7 @@ The Fun VM is now more flexible than ever. Key parameters like `MAX_FRAMES`, `ST
As always, Fun remains an experiment, but with version 0.40.5, we are closer than ever to a stable 1.0. We've focused on cleaning up experimental features that didn't fit our minimalism philosophy while adding the powerful primitives needed for real-world hacking. As always, Fun remains an experiment, but with version 0.40.5, we are closer than ever to a stable 1.0. We've focused on cleaning up experimental features that didn't fit our minimalism philosophy while adding the powerful primitives needed for real-world hacking.
Want to try it out? Head over to our [Git Repository](https://git.xw3.org/fun/fun){:class="git"} or check out the updated [Documentation](/documentation/). Want to try it out? Head over to our [Git Repository](https://git.xw3.org/fun/fun){:class="git"} or check out the updated [Documentation](https://fun-lang.xyz/documentation/).
Happy hacking, and remember: Fun is Fun! Happy hacking, and remember: Fun is Fun!

View file

@ -8,7 +8,7 @@ noToc: false
title: Announcing the Fun API Documentation title: Announcing the Fun API Documentation
description: A new API documentation hub is now available at fun-lang.xyz/api to explore the Fun VM internals and get contributors started faster. description: A new API documentation hub is now available at fun-lang.xyz/api to explore the Fun VM internals and get contributors started faster.
date: 2026-05-01 date: 2026-05-01
date_updated: 2026-05-06 date_updated: 2026-05-11
categories: categories:
- news - news
- docs - docs
@ -41,7 +41,7 @@ This is actually a work in progress, and we are continuously improving and expan
- New contributors looking for a starting point. - New contributors looking for a starting point.
- Power users exploring advanced capabilities of the Fun VM. - Power users exploring advanced capabilities of the Fun VM.
- Researchers and curious minds wanting to understand implementation details. - Researchers and curious minds who want to understand implementation details.
### How to get involved ### How to get involved
@ -50,10 +50,8 @@ This is actually a work in progress, and we are continuously improving and expan
- Join the discussion: [https://fun-lang.xyz/community/](https://fun-lang.xyz/community/). - Join the discussion: [https://fun-lang.xyz/community/](https://fun-lang.xyz/community/).
- Reach out directly: [hanez@fun-lang.xyz](mailto:hanez@fun-lang.xyz){:class="mail"}. - Reach out directly: [hanez@fun-lang.xyz](mailto:hanez@fun-lang.xyz){:class="mail"}.
This is just the beginning we will keep iterating on structure, coverage, and examples. If you notice gaps or have suggestions, please let us know. This is just the beginning - we will keep iterating on structure, coverage, and examples. If you notice gaps or have suggestions, please let us know.
Happy hacking! Happy hacking!
Johannes Findeisen (hanez) — [hanez@fun-lang.xyz](mailto:hanez@fun-lang.xyz){:class="mail"} Johannes Findeisen (hanez) - [hanez@fun-lang.xyz](mailto:hanez@fun-lang.xyz){:class="mail"}
UPDATE: The api documentation moved to [https://api.fun-lang.xyz/](https://api.fun-lang.xyz/){:class="ext"}.

View file

@ -8,6 +8,7 @@ noToc: false
title: What is Fun? title: What is Fun?
description: Fun is a serious, focused programming language and VM aimed at professional environments — used for serial and smartcard communication and, potentially, TCP/Unix sockets. description: Fun is a serious, focused programming language and VM aimed at professional environments — used for serial and smartcard communication and, potentially, TCP/Unix sockets.
date: 2026-05-10 date: 2026-05-10
date_updated: 2026-05-11
categories: categories:
- project - project
- language - language
@ -21,11 +22,12 @@ tags:
- vm - vm
--- ---
Fun is a programming language and virtual machine I originally started for fun but I take it seriously and build it for professional environments. It is not an esoteric language. The current focus areas are: Fun is a programming language and virtual machine I originally started for fun - but I take it seriously and build it for professional environments. It is not an esoteric language. The current focus areas are:
- Potential TCP/Unix socket communication
- CGI and web server support
- Serial communication - Serial communication
- Smartcard communication - Smartcard communication
- Potential TCP/Unix socket communication
This post gives you a concise picture of what Fun is (and is not), why it exists, and where it is going. This post gives you a concise picture of what Fun is (and is not), why it exists, and where it is going.
@ -38,14 +40,15 @@ This post gives you a concise picture of what Fun is (and is not), why it exists
### What Fun is not ### What Fun is not
- Not an esoteric toy — while the project began “for fun,” it has serious goals and standards - Not an esoteric toy - while the project began "for fun", it has serious goals and standards
- Not a kitchen-sink runtime we prefer a focused, composable core over bloat - Not a kitchen-sink runtime - we prefer a focused, composable core over bloat
### Primary use cases (today and near-term) ### Primary use cases (today and near-term)
- Fast prototyping of small, low-level tools
- Explorations around TCP and Unix domain sockets for simple networked services
- Talking to devices over serial interfaces (industrial/embedded scenarios) - Talking to devices over serial interfaces (industrial/embedded scenarios)
- Smartcard interactions where exact byte-level control is required - Smartcard interactions where exact byte-level control is required
- Explorations around TCP and Unix domain sockets for simple networked services
### Design values ### Design values
@ -60,11 +63,13 @@ Fun is evolving quickly. Some components are production-ready, others are still
### Get involved ### Get involved
- [Browse features](/features/) - [Browse features](https://fun-lang.xyz/features/)
- [Read the documentation](/documentation/) - [Read the documentation](https://fun-lang.xyz/documentation/)
- Try examples from the repository and site - Try examples from the repository and site
- Send feedback and ideas they directly shape priorities - Send feedback and ideas - they directly shape priorities
If you work with serial devices, smartcards, or lightweight networked tools and want a focused, no-nonsense environment, Fun might fit you well. It started as a project for fun — and it stays fun — but the goals are serious. If you work with serial devices, smartcards, or lightweight networked tools and want a focused, no-nonsense environment, Fun might fit you well. It started as a project for fun - and it stays fun - but the goals are serious.
— Johannes Findeisen (hanez) · hanez@fun-lang.xyz Happy hacking!
Johannes Findeisen (hanez) - hanez@fun-lang.xyz

View file

@ -3,6 +3,7 @@ layout: page
title: About title: About
subtitle: More information about having fun... :) subtitle: More information about having fun... :)
description: About description: About
_date: 2023-09-20
metasub: news metasub: news
noToc: true noToc: true
noDate: false noDate: false

View file

@ -36,8 +36,7 @@ permalink: /
{% for post in site.tags.pinned %} {% for post in site.tags.pinned %}
<article class="post-content"> <article class="post-content">
<h2><a href="{{ post.url }}" title="{{ post.title }}">{{ post.title }}</a> <span style="cursor:help; float: right;" title="Pinned Post!">📌</span></h2> <h2><a href="{{ post.url }}" title="{{ post.title }}">{{ post.title }}</a> <span style="cursor:help; float: right;" title="Pinned Post!">📌</span></h2>
<p class="post-meta">{{ post.date | date: "%b %-d, %Y %H:%M:%S" }} ({{ post.date | date: "%b %-d, %Y %H:%M:%S" | date: "%Z" }}) <p class="post-meta">{{ post.date | date: "%b %-d, %Y" }}{% if post.date_updated %} - Edited: {{ post.date_updated | date: "%b %-d, %Y" }}{% endif %}{% if post.author %}, <a href="{{ post.author_url }}" target="_blank" class="user">{{ post.author }}</a>{% endif %}</p>
{% if post.date_updated %} - Edited: {{ post.date_updated | date: "%b %-d, %Y %H:%M:%S" }} ({{ post.date_updated | date: "%b %-d, %Y %H:%M:%S" | date: "%Z" }}){% endif %}{% if post.author %}, <a href="{{ post.author_url }}" target="_blank" class="user">{{ post.author }}</a>{% endif %}</p>
{{ post.content | truncatewords: site.truncatewords_length }} {{ post.content | truncatewords: site.truncatewords_length }}
<p style="text-align:right;"><a href="{{ post.url }}" title="{{ post.url }}">[Read post]</a></p> <p style="text-align:right;"><a href="{{ post.url }}" title="{{ post.url }}">[Read post]</a></p>
</article> </article>
@ -47,8 +46,7 @@ permalink: /
{% unless post.tags contains 'pinned' %} {% unless post.tags contains 'pinned' %}
<article class="post-content"> <article class="post-content">
<h2><a href="{{ post.url }}" title="{{ post.title }}">{{ post.title }}</a></h2> <h2><a href="{{ post.url }}" title="{{ post.title }}">{{ post.title }}</a></h2>
<p class="post-meta">{{ post.date | date: "%b %-d, %Y %H:%M:%S" }} ({{ post.date | date: "%b %-d, %Y %H:%M:%S" | date: "%Z" }}) <p class="post-meta">{{ post.date | date: "%b %-d, %Y" }}{% if post.date_updated %} - Edited: {{ post.date_updated | date: "%b %-d, %Y" }}{% endif %}{% if post.author %}, <a href="{{ post.author_url }}" target="_blank" class="user">{{ post.author }}</a>{% endif %}</p>
{% if post.date_updated %} - Edited: {{ post.date_updated | date: "%b %-d, %Y %H:%M:%S" }} ({{ post.date_updated | date: "%b %-d, %Y %H:%M:%S" | date: "%Z" }}){% endif %}{% if post.author %}, <a href="{{ post.author_url }}" target="_blank" class="user">{{ post.author }}</a>{% endif %}</p>
{{ post.content | truncatewords: site.truncatewords_length }} {{ post.content | truncatewords: site.truncatewords_length }}
<p style="text-align:right;"><a href="{{ post.url }}" title="{{ post.url }}">[Read post]</a></p> <p style="text-align:right;"><a href="{{ post.url }}" title="{{ post.url }}">[Read post]</a></p>
</article> </article>