Sign in

morloc

@morloc-project.bsky.social
9 followers 4 following 37 posts

The project page for morloc, a language where you can compose functions across languages under a common type system

PostsRepliesMedia
morloc @morloc-project.bsky.social · 12/08/2026
#morloc can now generate MCPs. I posted on this over at dev.to dev.to/arendsee/mak...
000
morloc @morloc-project.bsky.social · 03/08/2026
#morloc now supports the #rust and #futhark languages. Here is a Futhark-generated sobel transform of my favorite propaganda poster.
000
morloc @morloc-project.bsky.social · 15/07/2026
Also, the presentation will be up on YouTube eventually, they tell me. So, I'll post a link when it is available.
000
morloc @morloc-project.bsky.social · 15/07/2026
Just presented #morloc at #ismb #bosc! I've been under the rocks for last few months hammering out some very cool new features. I'll share them over the next few belated posts.
111
morloc @morloc-project.bsky.social · 26/02/2026
Here's an example of composable CLI/HTTP/TCP/socket Morloc tools: medium.com/@morloc/maki....
medium.com
Making composable interfaces with Morloc
In this post, I will describe how to use Morloc to transform simple functional libraries into composable CLI tools, HTTP/TCP APIs, and UNIX…
000
morloc @morloc-project.bsky.social · 09/02/2026
For seven years I have procrastinated writing proper error formatting. There was always something more pressing to do. But now it is finally here. Well, at least the formatting. Still more work needed to make the error analysis more informative.
This image shows a morloc build command on code that has a type error (the addition of a string to a number). The error is described and the source code of the offending line is shown.
000
morloc @morloc-project.bsky.social · 08/02/2026
Releasing #morloc v0.60.0! This release introduces custom binary operator support. The root libraries have been rewritten to offer standard arithmetic, logical, and comparison binary operators. The composition operator (see image) is now defined in #morloc code, not hard wired.
This image shows the morloc code defining a custom binary operator for composing functions. It is set to be left associative with a precedence of 9.
001
morloc @morloc-project.bsky.social · 08/01/2026
Here is a template Morloc app. With a few more lines, we can pass in strongly-typed, polyglot Morloc libraries. I'll make a larger demo using an Elm-like architecture soon.
A side-by-side view of Morloc code, left, and Python code, right. The python code defines a small app with uvicorn and fastapi and exports the functions, run_app, that starts the app. The Morloc code imports run_app, defines docstrings specifying how the two arguments (host and port) map to CLI arguments, and rexports it.
000
morloc @morloc-project.bsky.social · 02/01/2026
The #morloc paper is now available on @PeerJCompSci peerj.com/articles/cs-.... Huge thanks to the two reviewers and the PeerJ editors!
peerj.com
morloc: a workflow language for multi-lingual programming under a common type system
A conventional scientific workflow consists of many applications with untyped data flowing between them. Each application builds an internal data structure from input files, performs an operation, and...
000
morloc @morloc-project.bsky.social · 02/01/2026
With morloc-manager v0.5.2 we can now define our own containerized #morloc environments.
010
morloc @morloc-project.bsky.social · 29/12/2025
Release #morloc v0.58.2! Now docstrings can specify how CLIs are generated. Arguments may be optional and have defaults. Records can be translated to groups of arguments.
000
morloc @morloc-project.bsky.social · 13/11/2025
The new #morloc getter and setter patterns are the most radical of the new changes in v0.57.1. They offer a succinct syntax for generating functions that access or update data. They replace the many little helper functions #morloc previously required. Here are a few examples:
001
morloc @morloc-project.bsky.social · 13/11/2025
*multi-line strings* allow triple-quotes to enclose strings that span multiple lines and automatically trims whitespace. See example below where the trimmed whitespace is highlighted:
An image of code showing a multi-line string and describing the rules used to trim whitespace:

1. If the first character in the string is a newline,
   it will be removed
2. If the final character in the string is a newline,
   it will be removed
3. An equal number of leading whitespace characters is 
   removed from each line such that the line with the
   fewest leading whitespace characters is flush left.
001
morloc @morloc-project.bsky.social · 13/11/2025
*string interpolation* allows #morloc expressions to be substituted into strings. Currently the behavior is quite minimal and works only for expressions that evaluate to strings. In the future more formatting options will be added.
The expression `hellowWorld x = "Hello #{x}"`, which shows how morloc expressions can be substituted into string expressions.
001
morloc @morloc-project.bsky.social · 13/11/2025
*placeholder syntax* allows expressions with underscores to be translated into lambas expression. For example:
Show the expression `map (sub _ 1) [1,2,3]` which produces [0,1,2] and the expression `map (_,42) [1,2,3]` which generates the list of tuples [(1,42),(2,42),(3,42)].
001
morloc @morloc-project.bsky.social · 13/11/2025
Releasing Morloc version 0.57.1! There are 5 major new features: placeholder syntax, string interpolation, multi-line strings, and getter and setter patterns. I'll introduce all of each of these in dedicated posts.
001
morloc @morloc-project.bsky.social · 30/09/2025
Releasing #morloc v0.55.1! Many bug fixes and a whole new module system. Also, here's one test suite running in three languages:
000
morloc @morloc-project.bsky.social · 23/08/2025
#morloc meetup this Saturday and Tuesday are canceled, we'll resume the week after. I've been under the rocks trying to fix Morloc's language selection algorithm -- brain's too fried to English. Also, I've been thinking about strongly typed functional programming and AI. #hackathon #foreshadowing
000
morloc @morloc-project.bsky.social · 20/08/2025
It should also work on zsh, bash, fish, and every other conceivable shell. After creating the bin folder, it updates the relevant shell config file, and sources it.
000
morloc @morloc-project.bsky.social · 20/08/2025
Now, as per @j23414.bsky.social suggestion, the #morloc installer asks permission before altering paths and places them in the ~/.morloc/bin directory.
The morloc-manager install subcommand in the terminal. Before updating config files and the PATH, it politely asks permission.
100
morloc @morloc-project.bsky.social · 20/08/2025
Thanks all! Lots of good feedback on the install scripts. One being, why use containers at all? For now I'll fix my script. Hopefully next time we can do less installation and more programming. Long-term, I need to ship binaries and add Morloc to all the package managers.
100
morloc @morloc-project.bsky.social · 19/08/2025
Meetup tomorrow at 5pm ET (Aug 19). I'll introduce the install manager, review the composable CLI tools from last week and demo a FASTQ trimmer. I'd also like to hear your thoughts on what #morloc would need for you to use it in your workplace. See you on discord: t.co/PBu4CyrvZe
100
morloc @morloc-project.bsky.social · 17/08/2025
Thanks everyone for joining! Main takeaways: new install manager seems to be working, I need to update #morloc on #hackage (I'm about 5 years out of date), and #vlang looks like a good thing. We might changes times for next Saturday meeting, I'll keep you posted.
000
morloc @morloc-project.bsky.social · 16/08/2025
#morloc #meetup today at 1pm ET (Sat, Aug 16)! We'll talk about composable CLI tools and the new installation manager. Anyone is welcome, just show up and join the public chat. On Discord: discord.gg/dyhKd9sJfF
discord.gg
Join the morloc Discord Server!
Check out the morloc community on Discord - hang out with 14 other members and enjoy free voice and text chat.
100
morloc @morloc-project.bsky.social · 15/08/2025
#morloc now has an install script that streamlines container installation, container selection (podman or docker), morloc home setup, and executable generation. See the GitHub repo (github.com/morloc-proje...) and the manual (morloc-project.github.io/docs/#_insta...).
An image from the command line showing the `morloc-manager install` command pulling containers and setting up the Morloc executables.
000
morloc @morloc-project.bsky.social · 09/08/2025
Now, the downside is that after finally getting this grammar working I find that I can't PR to GitHub linguistic, the requirement for GitHub syntax highlighting, until I have 200+ repos using #morloc code. So ... back to community building.
000
morloc @morloc-project.bsky.social · 09/08/2025
To update, Tree-sitter grammar is now fully working. All code in the #morloc test suite passes the grammar without error. Feast your eyes on this colorful code and sexy tree:
Highlighted morloc code and oh so loverly concrete syntax tree
100
morloc @morloc-project.bsky.social · 08/08/2025
The Morloc code for this is as follows:
The source code for three Morloc modules, the first two import functions from Python or R. The last module imports the first two modules.
000
morloc @morloc-project.bsky.social · 08/08/2025
Composable command line interface tools with #morloc!
Usage statements generated for two command line tools (one that displays a calendar and one that rolls dice). The two command lines tools are composed into a single tool exporting the pooled arguments.
100
morloc @morloc-project.bsky.social · 01/08/2025
You might notice there is a mysterious "comment" node at the end ... that's not supposed to be there 😒
100
morloc @morloc-project.bsky.social · 01/08/2025
Almost got the #Treesitter grammar working! github.com/morloc-proje... Just needs a little cleaning and testing. Next I can do a little PR to GitHub and then will finally have colors in my repo code. This also can be used in editors like Zed and Neovim.
A tree-sitter run produces highlighted code and a concrete syntax tree
100
morloc @morloc-project.bsky.social · 29/07/2025
#Morloc #VSCode extension is alive! Thanks to @j23414.bsky.social for helping with the setup!
Morloc code highlighted in VS Code
032
morloc @morloc-project.bsky.social · 27/07/2025
Release v0.54.1 - bug fixes and a simplified README
000
morloc @morloc-project.bsky.social · 20/07/2025
/ 👏 Special shoutouts: Sanket Wagle and Sriram Vijendran: for nix-shell packaging & #WASM ideas Jennifer Chang, Scott Chamberlain, Arun Seetharam, Paul Scheid, and Jon Sundin: for testing installation and vetting examples Andrew Wilkey for creating a Morloc syntax-highlighting Discord bot
020
morloc @morloc-project.bsky.social · 20/07/2025
🌟 Huge thanks to everyone who joined the first virtual #morloc #hackathon yesterday! We spent the day beta-testing the Morloc language, smoothing out install issues and running our first programs together. 🚀 Morloc execution is now tested on Linux, MacOS, and Windows (via WSL)!
102
morloc @morloc-project.bsky.social · 01/07/2025
I'm sharing a pre-release of the paper. The official paper is in its second round of peer-review and should be public in a few months. Additional links: GitHub: github.com/morloc-proje... Discord: discord.gg/bR3h4hyB Docs: morloc-project.github.io/docs/
github.com
GitHub - morloc-project/morloc: A typed, polyglot, functional language
A typed, polyglot, functional language. Contribute to morloc-project/morloc development by creating an account on GitHub.
000
morloc @morloc-project.bsky.social · 01/07/2025
Sharing the #morloc language! Compose functions across languages under a common type system. In #bioinformatics, build better workflows by switching from the file/application-based paradigm to a native function paradigm. Looking for adventurous first adopters! [Paper pre-release](shorturl.at/q10tO)
shorturl.at
ZWA
111