Petal compiler, specification, and tools 1.2KB

Petal ecosystem

Standard library

This packages together the runtime and the core libraries. I want to be able to do the bulk of what I currently tend to do in D. That means:

  • collection types
  • collection-oriented things (map/reduce etc) (and string equivalents)
  • database interface
  • dates and times
  • files
  • filesystem
  • http client
  • json
  • logging
  • process handling
  • random numbers
  • regular expressions (just bind libpcre?)
  • sockets
  • string encoding
  • string formatting
  • threading
  • uuids
  • xml

Package management

Use maven as the backend.

You depend on specific versions of packages. You can override your dependencies’ dependencies.

So I have libawesome-2.0.5 that depends on libx11-7.8.14. You have libbetter-5.0.1 that depends on libawesome-2.0.5 and libx11-7.9.12. I have an app that depends on libbetter-5.0.1. It gets libx11-7.9.12.

Build system

I want to integrate with something standard and generic. Maybe bazel?

Editor support

Start with a vim syntax file. Go for a language server as soon as reasonably practical. I think LSP supports syntax highlighting.

Binding generator

We want a binding generator for native libraries. At the very least, support GIR.