Panda 0.4.0-alpha

It's time to introduce rewritten package and module system 🎊. A lot of internal changes that affect packages definitions and overall user experience.

Changes in language:

  • GH-615 Rewritten package and module system

    • module keyword has been removed

      The root module is now captured from the package info file (panda.cdn) and submodules use directory names as theirs identifiers. Module content is loaded automatically, so there is no need to import individual scripts. Standalone scripts launched without package info are handled as an unnamed module.

    • Simplified panda.cdn structure

      name: awesome-app
      version: 1.0.0
      author: dzikoysk
      sources: src
      repositories: [

      dependencies: [
          github:dzikoysk/[email protected]
          maven:org.panda-lang/[email protected]

      Example implementation of panda package can be found in panda-dependency repository.

  • 5210730 Self return type replaced void type as a default return type of method

    type Foo {
        open bar () { }
    main {
        Foo foo = new Foo().bar() // methods return itself by default
  • 5210730 Removed old class keyword

    class Test { } // won't parse anymore
    type Test { } // use type instead
  • Added panda command to PATH (with installer)

    By default, Panda searches for panda.cdn file in your working directory. To get more information, request help message with panda --help command.

  • Improved overall installation and launching user experience

Changes in internals:

  • c73616e Added sources to distribution builds
  • 7ed1433 Simplified package structure of panda module
  • f86a805 Removed DI library
  • GH-615 Use absolute path to launch script, search for panda.cdn file for no-args calls and fix zip extract method
  • GH-624 Fixed ClassGenerator that break Java interop by adding _ to method names
  • GH-625 Fixed default constructor return type