From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: <20150104005900.d146d56df0f6cdab930a0fc8@eigenstate.org> References: <20150104005900.d146d56df0f6cdab930a0fc8@eigenstate.org> Date: Mon, 5 Jan 2015 10:48:31 +1300 Message-ID: From: Winston Kodogo To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: multipart/alternative; boundary=089e0160b8a6eb8a01050bda88fb Subject: Re: [9fans] New Language [Myrddin] On Plan 9/amd64 Topicbox-Message-UUID: 393a5bfe-ead9-11e9-9d60-3106f5b1d025 --089e0160b8a6eb8a01050bda88fb Content-Type: text/plain; charset=UTF-8 Hmm. Didn't Tolstoy write a short story called "How Many Languages does a Man Need"? On 4 January 2015 at 21:59, Ori Bernstein wrote: > Myrddin is a language that I put together for fun, but which has developed > delusions of usefulness. It's a complete reinvention of the wheel, from the > ground up. Some of the major things you'll notice about it: > > - Type inference. Types are inferred across the whole program. > - Algebraic data types. > - And their friend, pattern matching. > - Generics. > - A package system. > - Low level control over memory and such. > - (Almost) no runtime library. > - Self contained. > > For more details, you can look at the language website: > > http://eigenstate.org/myrddin > > Myrddin has been ported to Plan 9/amd64, tested on 9front. I haven't been > able > to get 9atom's amd64 kernel to boot on virtual hardware yet, so it hasn't > been > tested there. > > The compiler and libstd should build out of the box using the provided > mkfiles. The libs used for mbld currently need either mbld or gnu make in > order to build, or you can run myrbuild by hand. I've provided a script > that > does the latter. > > Almost all Plan 9 system calls are directly supported in libsys. > As with Linux/Unix, only amd64 targets are supported at the moment. > > To bootstrap the code on Plan 9, the following script is provided: > > http://eigenstate.org/myrddin/getmyr.rc > > You can grab the script and run it as follows: > > ; hget http://eigenstate.org/myrddin/getmyr.rc > getmyr.rc > ; chmod +x getmyr.rc > ; getmyr.rc > ...a lot of cloning and building happens... > ; sam helloworld.myr > > For ease of hacking on Plan 9, I've added mercurial mirrors of the > compiler and some libraries to bitbucket: > > http://bitbucket.com/oridb/mc > http://bitbucket.com/oridb/libbio > http://bitbucket.com/oridb/libregex > http://bitbucket.com/oridb/libcryptohash > http://bitbucket.com/oridb/libdate > http://bitbucket.com/oridb/mbld > > There are a number of TODOs, of course: > > - Libdate needs to learn how to parse Plan 9 timezone files. > - Libstd needs to get a smarter allocator for large allocations. > - More libraries: lib9p, libdraw, etc... all need to be written. > - A bit more thought needs to be given nicer, portable APIs. > - More Plan 9 integration. > > And general work to get Myrddin to the point of day to day usability, > int terms of faster binaries, more libraries, and so on. > > Still, if anyone finds this interesting/useful -- have at it. If you > manage to do something neat, let me know! > > -- > Ori Bernstein > > --089e0160b8a6eb8a01050bda88fb Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hmm. Didn't Tolstoy write a short story called "H= ow Many Languages does a Man Need"?

On 4 January 2015 at 21:59, Ori Bernstein = <ori@eigenstate.org> wrote:
Myrddin is a language that I put together for fun, but which has develop= ed
delusions of usefulness. It's a complete reinvention of the wheel, from= the
ground up. Some of the major things you'll notice about it:

=C2=A0 =C2=A0 - Type inference. Types are inferred across the whole program= .
=C2=A0 =C2=A0 - Algebraic data types.
=C2=A0 =C2=A0 - And their friend, pattern matching.
=C2=A0 =C2=A0 - Generics.
=C2=A0 =C2=A0 - A package system.
=C2=A0 =C2=A0 - Low level control over memory and such.
=C2=A0 =C2=A0 - (Almost) no runtime library.
=C2=A0 =C2=A0 - Self contained.

For more details, you can look at the language website:

=C2=A0 =C2=A0 h= ttp://eigenstate.org/myrddin

Myrddin has been ported to Plan 9/amd64, tested on 9front. I haven't be= en able
to get 9atom's amd64 kernel to boot on virtual hardware yet, so it hasn= 't been
tested there.

The compiler and libstd should build out of the box using the provided
mkfiles. The libs used for mbld currently need either mbld or gnu make in order to build, or you can run myrbuild by hand. I've provided a script= that
does the latter.

Almost all Plan 9 system calls are directly supported in libsys.
As with Linux/Unix, only amd64 targets are supported at the moment.

To bootstrap the code on Plan 9, the following script is provided:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 http://eigenstate.org/myrddin/getmyr.rc

You can grab the script and run it as follows:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 ; hget http://eigenstate.org/myrddin/getmyr.rc &= gt; getmyr.rc
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ; chmod +x getmyr.rc
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ; getmyr.rc
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ...a lot of cloning and building happens...
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ; sam helloworld.myr

For ease of hacking on Plan 9, I've added mercurial mirrors of the
compiler and some libraries to bitbucket:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 http://bitbucket.com/oridb/mc
=C2=A0 =C2=A0 =C2=A0 =C2=A0 http://bitbucket.com/oridb/libbio
=C2=A0 =C2=A0 =C2=A0 =C2=A0 http://bitbucket.com/oridb/libregex
=C2=A0 =C2=A0 =C2=A0 =C2=A0 http://bitbucket.com/oridb/libcryptohash
=C2=A0 =C2=A0 =C2=A0 =C2=A0 http://bitbucket.com/oridb/libdate
=C2=A0 =C2=A0 =C2=A0 =C2=A0 http://bitbucket.com/oridb/mbld

There are a number of TODOs, of course:

=C2=A0 =C2=A0 =C2=A0 =C2=A0 - Libdate needs to learn how to parse Plan 9 ti= mezone files.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 - Libstd needs to get a smarter allocator for l= arge allocations.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 - More libraries: lib9p, libdraw, etc... all ne= ed to be written.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 - A bit more thought needs to be given nicer, p= ortable APIs.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 - More Plan 9 integration.

And general work to get Myrddin to the point of day to day usability,
int terms of faster binaries, more libraries, and so on.

Still, if anyone finds this interesting/useful -- have at it. If you
manage to do something neat, let me know!

--
Ori Bernstein <ori@eigenstate.org<= /a>>


--089e0160b8a6eb8a01050bda88fb--