Skip to content
/ bsn Public

An implementation of the Bussin esoteric language written in Zig

License

Notifications You must be signed in to change notification settings

sno2/bsn

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bsn

An implementation of @face-hh 's Bussin esoteric language written in Zig with a custom bytecode virtual machine and component-based mark and sweep garbage collector.

Playground

The playground is available at https://trybsn.vercel.app. It is the easiest way to play around with this interpreter.

Known Issues

  • The playground does not maintain extra newlines when transforming between the BS and BSX formats.
  • The playground is not interactive. We currently run programs and display the output from println calls at the end of the program. Although, after the self-hosted Zig compiler implements async again, I will use it to add streaming IO.
  • Printing circular objects causes stack overflows.
    lit a be {} rn
    a.a be a
    
    "Stack overflow"
    waffle(a)
    
  • Parsing errors can have incorrect formatting in some cases.
  • Functions do not support capturing locals, but globals do work.
    bruh foo() {
        lit a be 24
    
        bruh bar() {
            a
        }
    
        bar
    }
    
    "This will fail because it does not know about 'a'"
    foo()()
    
  • All other TODOs in the code.

License

MIT

About

An implementation of the Bussin esoteric language written in Zig

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published