nowfound

Dev tools · May 14, 2023

TA

Tack, a fast lightweight scripting language for games and embedding

https://github.com/PlumeCat/tack Hi HN! Tack is a scripting language I've been working on sporadically for the past year or so, and intensely for the past few weeks. It originated out of a desire for something that was like Lua, but with a more familiar syntax, and without some of the other surprises in Lua such as the 1-indexed tables. It's also been a great learning project, and a very satisfying challenge! While the current version is early beta at best, I hope to continue working on it and maybe see some adoption. Despite the relative lack of optimization, I'm very…

What it does

In the maker’s words, at launch

https:&#x2F;&#x2F;github.com&#x2F;PlumeCat&#x2F;tack Hi HN! Tack is a scripting language I've been working on sporadically for the past year or so, and intensely for the past few weeks. It originated out of a desire for something that was like Lua, but with a more familiar syntax, and without some of the other surprises in Lua such as the 1-indexed tables. It's also been a great learning project, and a very satisfying challenge! While the current version is early beta at best, I hope to continue working on it and maybe see some adoption. Despite the relative lack of optimization, I'm very pleased with the performance so far - although I haven't done a huge amount of benchmarking, it seems to be significantly faster than the stock Lua 5.4 interpreter for the quicksort test, and the btrees test (copied from the Computer Language Benchmarks Game). The language is designed for embedding in C++ programs, and is written in C++ more or less from scratch including the handwritten recursive descent parser, and a register-based compiler&#x2F;interpreter. The only dependency other than the standard library is my C++ adaptation of the khash library used for the object type - a from-scratch hashmap seemed not worth the trouble. Quick code example - more examples in the repo! fn quicksort(arr) { const n = #arr if n <= 1 { return arr } " find the midpoint " let l = min(arr) let r = max(arr) if r == l { return arr } const mid = (l + r) &#x2F; 2 " split array into upper and lower " const upper = filter(arr, fn(x) { return x < mid }) const lower = filter(arr, fn(x) { return x >= mid }) " recursively sort the upper and lower sub-arrays and join the result" return quicksort(lower) + quicksort(upper) } let A = [] for i in 0, 1000000 { A << random() } let before = clock() let B = quicksort(A) let after = clock() print("Time taken: ", after - before, "seconds") Building requires just cmake and a C++20 compiler - tested with MSVC 2022, g++11 on WSL and Clang 15 on M1 https:&#x2F;&#x2F;craftinginterpreters.com was a great help with implementing closures, as I had gone down a blind alley with my first approach for locating the closed-over variables. However I have taken a slightly different approach towards boxing. As I do intend to use this for some small games myself going forward, there is a standard library already, and plans to expand it. I also intend to release a GLFW-based mini game framework along with precompiled binaries, so hobbyists (and younger relatives!) may use it without needing a full compiler toolchain. I would love if anyone is interested enough to try it out! James

Does the same job

all alternatives →
  • MA
    Meatshields – An in-browser turn-based strategy game2017 · ▲113

    A few months ago (82 days to be exact!) I posted a link on HN to my game, Meatshields. A bunch of you commented and played my game and gave me some wonderful feedback. Over the last few months I've been playing with many of you and implementing the best of everybody's suggestions. So, thank you, HN for all your help! I feel this is an extreme overhaul I couldn't have done without your input. Since then, I have: Dramatically improved our hosting platform (So it HOPEFULLY won't go down this time (oops.)), Added two new units, Rebalanced all existing units, Added many more maps, Improved the…

  • AA
  • NO
    Nous – Open-Source Agent Framework with Autonomous, SWE Agents, WebUI2024 · github.com · ▲155

    Hello HN! The day has finally come to stop adding features and start sharing what I've been building the last 5-6 months. It's a bit of CrewAI, OpenDevon, LangFuse&#x2F;Cloud all in one, providing devs who prefer TypeScript an integrated framework thats provides a lot out of the box to start experimenting and building agents with. It started after peeking at the LangChain docs a few times and never liking the example code. I began experimenting with automating a simple Jira request from the engineering team to add an index to one of our Google Spanner databases (for context I'm the…

  • SA
    Sparser – A Multilanguage Parser2019 · ▲65

    * https:&#x2F;&#x2F;sparser.io * https:&#x2F;&#x2F;github.com&#x2F;Unibeautify&#x2F;sparser This is my attempt at creating a universal language parser. It attempts to solve a couple of problems: * Support multiple languages * Recursively extend support to languages embedded within other languages * Output a uniform format for all supported languages This is a personal project so any feedback would be helpful. Something interesting I found after I built it is that this parser is not as fast to write output as many other JavaScript parsers, but its output is much faster to read from due to the…

  • RA
  • FT
    Fluent, tiny lang for reactivity and autogradJul 2026 · mlajtos.github.io · ▲6

    After six months of work, I am here again presenting Fluent – a tiny lang which is optimized for differentiable & reactive programming. Since I am not Conal Elliot, don't expect a beautiful theoretical unification of FRP and AD from first principles. Rather, a horrific monster that holds together mostly because a lot of duct-tape. The link points to the semi-interactive tour of the language, which will get the job done much better than I could in here. Hope you hate&#x2F;like it!

More dev tools this month

the category →
  • Dograh592

    The open source VAPI alternative

    Dev tools · 25d ago · dograh.com

  • Meridian530

    Don't let your work go unnoticed. Get promoted!

    Dev tools · 20d ago · meridiona.com

  • x1516

    Lovable for iPhone apps go from idea to App Store

    Dev tools · 11d ago · x1.new

  • Open-source GTM skills for technical founders

    Dev tools · 29d ago · gtmcofounder.com

  • OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.

    Dev tools · 1d ago · opentrailpaper.com

  • Nuphos380

    The AI-Native DevOps Workspace.

    Dev tools · 24d ago · nuphos.ai

Launched alongside, May 2023

the whole month →
  • Sidekick1,343

    An AI-powered accessibility assistant in Stark

    AI · 2023 · getstark.co

  • BR

    In today's world, catchy headlines and articles often distract readers from the facts and relevant information. By utilizing OpenAI's language models, Boring Report processes sensationalist news articles, transforms them into the content you see, and helps readers focus on the essential details. We recently updated our iOS app experience, so any and all feedback would be appreciated. App Link: https:&#x2F;&#x2F;apps.apple.com&#x2F;us&#x2F;app&#x2F;boring-report-news-by-ai&#x2F;id644...

    AI · 2023 · boringreport.org

  • Generating powerful websites, one prompt at a time

    AI · 2023

  • Unlock a new level productivity with AI, Cloud Sync and more

    AI · 2023 · raycast.com

  • AudioPen888

    The easiest way to convert messy thoughts into clear text

    AI · 2023 · audiopen.ai

  • Launch your website in seconds, get users in minutes

    Dev tools · 2023 · page.mmntm.build