* [9fans] New Language [Myrddin] On Plan 9/amd64 @ 2015-01-04 8:59 Ori Bernstein 2015-01-04 15:13 ` Ryan ` (4 more replies) 0 siblings, 5 replies; 9+ messages in thread From: Ori Bernstein @ 2015-01-04 8:59 UTC (permalink / raw) To: 9fans 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 <ori@eigenstate.org> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [9fans] New Language [Myrddin] On Plan 9/amd64 2015-01-04 8:59 [9fans] New Language [Myrddin] On Plan 9/amd64 Ori Bernstein @ 2015-01-04 15:13 ` Ryan 2015-01-04 19:45 ` Ori Bernstein 2015-01-04 19:08 ` erik quanstrom ` (3 subsequent siblings) 4 siblings, 1 reply; 9+ messages in thread From: Ryan @ 2015-01-04 15:13 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs, Ori Bernstein [-- Attachment #1: Type: text/plain, Size: 2981 bytes --] That looks really neat! One question: are runtime bound checks really necessary? I would at least like a seperate release mode that gets rid of them. Writing a kernel with bound checks would be a mixed nightmare! FYI, please tell me I'm not the only person reminded of Rust... Ori Bernstein <ori@eigenstate.org> 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 <ori@eigenstate.org> -- Sent from my Android phone with K-9 Mail. Please excuse my brevity. Check out my website: http://kirbyfan64.github.io/ [-- Attachment #2: Type: text/html, Size: 3880 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [9fans] New Language [Myrddin] On Plan 9/amd64 2015-01-04 15:13 ` Ryan @ 2015-01-04 19:45 ` Ori Bernstein 0 siblings, 0 replies; 9+ messages in thread From: Ori Bernstein @ 2015-01-04 19:45 UTC (permalink / raw) To: Ryan; +Cc: Fans of the OS Plan 9 from Bell Labs I could do it pretty easily, although I'd be curious to see what you think makes it harder to write a kernel with bounds checks. At least for me, I'd rather keep them the same. At least on with Intel's current out of order processors, they are shockingly cheap, and can be made much cheaper with (not-yet-implemented) optimizations like value range propagation. If it actually does make a significant performance difference (benchmarks, please), I'd gladly add in a flag. For doing the benchmarks, just delete line 780 of 6/simp.c On Sun, 04 Jan 2015 09:13:20 -0600 Ryan <rymg19@gmail.com> wrote: > That looks really neat! One question: are runtime bound checks really necessary? I would at least like a seperate release mode that gets rid of them. Writing a kernel with bound checks would be a mixed nightmare! > > FYI, please tell me I'm not the only person reminded of Rust... > > Ori Bernstein <ori@eigenstate.org> 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 <ori@eigenstate.org> > > -- > Sent from my Android phone with K-9 Mail. Please excuse my brevity. > Check out my website: http://kirbyfan64.github.io/ -- Ori Bernstein <ori@eigenstate.org> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [9fans] New Language [Myrddin] On Plan 9/amd64 2015-01-04 8:59 [9fans] New Language [Myrddin] On Plan 9/amd64 Ori Bernstein 2015-01-04 15:13 ` Ryan @ 2015-01-04 19:08 ` erik quanstrom 2015-01-04 19:39 ` Ori Bernstein 2015-01-04 19:51 ` Skip Tavakkolian ` (2 subsequent siblings) 4 siblings, 1 reply; 9+ messages in thread From: erik quanstrom @ 2015-01-04 19:08 UTC (permalink / raw) To: 9fans i am getting a build error: ../myrbuild/6.out -C../6/6.out -M../muse/6.out -l sys sys.myr systypes.myr ifreq.myr syscall.s util.s ../6/6.out systypes.myr ../6/6.out sys.myr /tmp/tmp7109d3e2d-sys.myr.s:2 syntax error, last name: zd nam: LNAME offset.( pointer ) saw ; /tmp/tmp7109d3e2d-sys.myr.s:2 syntax error, last name: zd offset: +.con saw LNAME /tmp/tmp7109d3e2d-sys.myr.s:4 syntax error, last name: zd nam: LNAME offset.( pointer ) saw ; /tmp/tmp7109d3e2d-sys.myr.s:4 syntax error, last name: zd offset: +.con saw LNAME /tmp/tmp7109d3e2d-sys.myr.s:6 syntax error, last name: zd nam: LNAME offset.( pointer ) saw ; /tmp/tmp7109d3e2d-sys.myr.s:6 syntax error, last name: zd offset: +.con saw LNAME /tmp/tmp7109d3e2d-sys.myr.s:8 syntax error, last name: zd nam: LNAME offset.( pointer ) saw ; /tmp/tmp7109d3e2d-sys.myr.s:8 syntax error, last name: zd offset: +.con saw LNAME /tmp/tmp7109d3e2d-sys.myr.s:10 syntax error, last name: zd nam: LNAME offset.( pointer ) saw ; /tmp/tmp7109d3e2d-sys.myr.s:10 syntax error, last name: zd offset: +.con saw LNAME /tmp/tmp7109d3e2d-sys.myr.s:12 syntax error, last name: zd too many errors Couldn't run assembler - erik ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [9fans] New Language [Myrddin] On Plan 9/amd64 2015-01-04 19:08 ` erik quanstrom @ 2015-01-04 19:39 ` Ori Bernstein 0 siblings, 0 replies; 9+ messages in thread From: Ori Bernstein @ 2015-01-04 19:39 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs Ah, I forgot about that: This is a bug with Ape's printf; It's missing the %z specifier to print size_ts. The below patch fixes it, although I seem to remember that 9atom has a rewritten ape -- I'm not sure if this will apply: diff -r 40f67c7db147 sys/src/ape/lib/ap/stdio/vfprintf.c --- a/sys/src/ape/lib/ap/stdio/vfprintf.c Thu Dec 11 17:03:01 2014 +0100 +++ b/sys/src/ape/lib/ap/stdio/vfprintf.c Sun Dec 21 23:32:04 2014 -0800 @@ -75,7 +75,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, /* ` a b c d e f g */ SHORT, 0, 0, 0, LONG, 0, 0, 0, /* h i j k l m n o */ 0, 0, 0, 0, 0, 0, 0, 0, /* p q r s t u v w */ -0, 0, 0, 0, 0, 0, 0, 0, /* x y z { | } ~ ^? */ +0, 0, LONG, 0, 0, 0, 0, 0, /* x y z { | } ~ ^? */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, On Sun, 4 Jan 2015 11:08:37 -0800 erik quanstrom <quanstro@quanstro.net> wrote: > i am getting a build error: > > ../myrbuild/6.out -C../6/6.out -M../muse/6.out -l sys sys.myr systypes.myr ifreq.myr syscall.s util.s > ../6/6.out systypes.myr > ../6/6.out sys.myr > /tmp/tmp7109d3e2d-sys.myr.s:2 syntax error, last name: zd > nam: LNAME offset.( pointer ) > saw ; > /tmp/tmp7109d3e2d-sys.myr.s:2 syntax error, last name: zd > offset: +.con > saw LNAME > /tmp/tmp7109d3e2d-sys.myr.s:4 syntax error, last name: zd > nam: LNAME offset.( pointer ) > saw ; > /tmp/tmp7109d3e2d-sys.myr.s:4 syntax error, last name: zd > offset: +.con > saw LNAME > /tmp/tmp7109d3e2d-sys.myr.s:6 syntax error, last name: zd > nam: LNAME offset.( pointer ) > saw ; > /tmp/tmp7109d3e2d-sys.myr.s:6 syntax error, last name: zd > offset: +.con > saw LNAME > /tmp/tmp7109d3e2d-sys.myr.s:8 syntax error, last name: zd > nam: LNAME offset.( pointer ) > saw ; > /tmp/tmp7109d3e2d-sys.myr.s:8 syntax error, last name: zd > offset: +.con > saw LNAME > /tmp/tmp7109d3e2d-sys.myr.s:10 syntax error, last name: zd > nam: LNAME offset.( pointer ) > saw ; > /tmp/tmp7109d3e2d-sys.myr.s:10 syntax error, last name: zd > offset: +.con > saw LNAME > /tmp/tmp7109d3e2d-sys.myr.s:12 syntax error, last name: zd > too many errors > Couldn't run assembler > > - erik > -- Ori Bernstein <ori@eigenstate.org> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [9fans] New Language [Myrddin] On Plan 9/amd64 2015-01-04 8:59 [9fans] New Language [Myrddin] On Plan 9/amd64 Ori Bernstein 2015-01-04 15:13 ` Ryan 2015-01-04 19:08 ` erik quanstrom @ 2015-01-04 19:51 ` Skip Tavakkolian 2015-01-04 21:43 ` Ori Bernstein 2015-01-04 21:48 ` Winston Kodogo 2015-01-04 23:42 ` Ori Bernstein 4 siblings, 1 reply; 9+ messages in thread From: Skip Tavakkolian @ 2015-01-04 19:51 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs [-- Attachment #1: Type: text/plain, Size: 2912 bytes --] interesting; i especially liked the "Why Myrddin" section :) i didn't see the obligatory 9P implementation in it; is there one? On Sun Jan 04 2015 at 1:07:47 AM Ori Bernstein <ori@eigenstate.org> 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 <ori@eigenstate.org> > > [-- Attachment #2: Type: text/html, Size: 4111 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [9fans] New Language [Myrddin] On Plan 9/amd64 2015-01-04 19:51 ` Skip Tavakkolian @ 2015-01-04 21:43 ` Ori Bernstein 0 siblings, 0 replies; 9+ messages in thread From: Ori Bernstein @ 2015-01-04 21:43 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs Not yet. I haven't needed a 9p implementation yet; no file servers have bubbled to the top of my queue of code to write at this point, and I'm wary of writing APIs without at least some user in mind. On Sun, 04 Jan 2015 19:51:38 +0000 Skip Tavakkolian <skip.tavakkolian@gmail.com> wrote: > interesting; i especially liked the "Why Myrddin" section :) > > i didn't see the obligatory 9P implementation in it; is there one? > > On Sun Jan 04 2015 at 1:07:47 AM Ori Bernstein <ori@eigenstate.org> 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 <ori@eigenstate.org> > > > > -- Ori Bernstein <ori@eigenstate.org> ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [9fans] New Language [Myrddin] On Plan 9/amd64 2015-01-04 8:59 [9fans] New Language [Myrddin] On Plan 9/amd64 Ori Bernstein ` (2 preceding siblings ...) 2015-01-04 19:51 ` Skip Tavakkolian @ 2015-01-04 21:48 ` Winston Kodogo 2015-01-04 23:42 ` Ori Bernstein 4 siblings, 0 replies; 9+ messages in thread From: Winston Kodogo @ 2015-01-04 21:48 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs [-- Attachment #1: Type: text/plain, Size: 2862 bytes --] 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 <ori@eigenstate.org> 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 <ori@eigenstate.org> > > [-- Attachment #2: Type: text/html, Size: 4118 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [9fans] New Language [Myrddin] On Plan 9/amd64 2015-01-04 8:59 [9fans] New Language [Myrddin] On Plan 9/amd64 Ori Bernstein ` (3 preceding siblings ...) 2015-01-04 21:48 ` Winston Kodogo @ 2015-01-04 23:42 ` Ori Bernstein 4 siblings, 0 replies; 9+ messages in thread From: Ori Bernstein @ 2015-01-04 23:42 UTC (permalink / raw) To: Fans of the OS Plan 9 from Bell Labs Thanks to Erik, who helped with squashing a decent number of bugs. On Sun, 4 Jan 2015 00:59:00 -0800 Ori Bernstein <ori@eigenstate.org> 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 <ori@eigenstate.org> > -- Ori Bernstein <ori@eigenstate.org> ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-01-04 23:42 UTC | newest] Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2015-01-04 8:59 [9fans] New Language [Myrddin] On Plan 9/amd64 Ori Bernstein 2015-01-04 15:13 ` Ryan 2015-01-04 19:45 ` Ori Bernstein 2015-01-04 19:08 ` erik quanstrom 2015-01-04 19:39 ` Ori Bernstein 2015-01-04 19:51 ` Skip Tavakkolian 2015-01-04 21:43 ` Ori Bernstein 2015-01-04 21:48 ` Winston Kodogo 2015-01-04 23:42 ` Ori Bernstein
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).