Hacker Newsnew | past | comments | ask | show | jobs | submit | dhamidi's commentslogin

Maybe useful inspiration from TCL: there are many commands that define new variables, which makes modeling the stack unnecessary.

For example:

  lappend responses [dict status 200 body ...]
Appends a new dict to the list held in the variable responses, creating the variable if necessary.

I can see that being an attribute:

  <request-send url="..." as="greeting" />
  <response-text response="greeting" as="text" />
  <selection-set-text text="text" />


The main reason for using a stack was reducing verbosity because for short scripts using variables felt unnecessary when the type-prefix of the command already communicates the variable contents. But it could still be a good idea to have a shorter syntax for assigned variables.

Accessing a variables works like this at the moment:

  <selection-set-text $text="varname">
Keeping the dollar syntax, setting the return value to a named variable could look like this:

  <response-get-text $="varname">


Feather, a fresh implementation of TCL: https://www.feather-lang.dev

Command languages are underrated, and being able to add a Bash-like REPL for agents and users alike is something I want to see more of.

Feather solves the "rest of the Owl" problem: agents/users get loops, conditionals, online help for free from Feather, as the embedder you only need to add application-specific commands.

Feather itself has no GC (uses the host's), no own data structures (uses the host's, e.g. JavaScript arrays for lists in the js version), and no I/O.

The core is implemented in stdlib-less C


Thank you!

> Are you doing a mostly one-to-one port, or something more novel?

Step 1 is a one-to-one port of all the non-I/O, non-OO stuff. I've got it down to a single skill for Opus 4.5 and now it's just a matter of turning the crank and keeping an eye on it.

Step 2: add more functionality for interactive use for humans/agents. Things like defining the syntax of commands, a completion engine, a help system. Essentially all the things you'd expect from a modern shell experience, but with a bring-your-own-UI approach.

> but man is reference counting a pain in the neck or what.

Maybe this is a bit more novel: since the only use case is embedding, and the host language already has dicts, lists, and other data structures, I'm just leveraging those. In the Go version of Feather, dicts are Go maps; in the JavaScript version they are backed by lists of pairs (to preserve insertion order)


Huh, that's interesting, does that mean you can use Go's garbage collection? I can imagine that makes it a lot simpler to track objects that way (and probably gets you some performance to boot).

Wrt step 2, that's really interesting, are you thinking of it as almost a modern bash in that way? It reminds me a little bit of Jimtcl, though I think Jim only has simple autocomplete.

Also, what was the rationale for a pound before an upvar amount?


Not affiliated, just have been following development closely: Phrasing leverages existing content, e.g. subtitles from your favorite shows.

The quality depends on the source material you choose to give it.


This is great, I was literally looking for something like this yesterday to embed TCL into a Go application without needing CGo



The `source` builtin searches through all directories on PATH, not quite a library system, but useable with a bit of discipline in the to-be-sourced shellscripts.


Yeah. I sent patches that added a flag that made it search special library paths instead.

  source -l some-library


More tools / toys / sandboxes to play with.

Growing a coding agent as a "game": https://github.com/dhamidi/smolcode. Started with https://ampcode.com/how-to-build-an-agent and then asked the agent to modify itself. It's so much fun and hard to stop!

Since coding is cheap now, I'm building a web framework for myself, using reasonable defaults: built around the transaction log, single binary deploys, sqlite3 for everything, runtime introspection tools to make ops easier.

I want the framework to "compile itself out of the project", so that projects don't have devtime dependencies and can be easily edited by Cursor et al. It should still stick around in the form of a high-level CLI that an AI agent can leverage to fulfill common tasks (e.g. add a new UI component, query, command, etc).


smolcode's awesome! You've inspired me to create an agent for my Pi bramble :)


Modash.io | Senior Product Engineer | Remote (EU) | Full-time

Modash is an end-to-end influencer marketing platform for Shopify stores.

We help every creator earn a living.

Headquartered in Tallinn, Estonia, with engineering distributed across Europe.

60 person team, raised $12M in Series A funding, ARR growing 2x YoY.

We're on the hunt for Senior Product Engineers who love working with AWS, Vue, NodeJS, Typescript and a passion for product: you are eager to talk to customers and anticipate their needs.

If you're all about remote work, and can't wait to make a real impact, we'd love to chat!

Interview Process

Option A: https://www.modash.io/blog/engineering-interviews-at-modash

Use https://apply.workable.com/modash/j/C1507B65C3/ to apply

Option B: showcase your project!

  - It's live somewhere,
  - It has users
  - You built it yourself/you are the main contributor
send us two videos about your project and we'll get back to you

Use this link https://forms.gle/K4GcyxT1zbmHGdsRA to apply.


So cool to see this here!

I bought a house in Nyland [1] a few years ago and now I'm turning it into a place to retreat to for focus time / being close to nature.

If someone is interested in sharing the space over a longer period of time (as I'm not living in Sweden), hit me up (email on my profile)

[1] https://maps.app.goo.gl/Ww1GHL5rFXdkcdHfA


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: