Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Apr 17 16:45
    tomoyanonymous synchronize #68
  • Apr 17 16:45

    tomoyanonymous on new-ast

    [skip ci fixed bug] [skip ci]typeinferer unifier im… (compare)

  • Apr 17 09:49
    tomoyanonymous synchronize #68
  • Apr 17 09:49

    tomoyanonymous on new-ast

    wip new ast parsing [skip ci] succeeded to compile … (compare)

  • Apr 13 07:43
    tomoyanonymous synchronize #68
  • Apr 13 07:43

    tomoyanonymous on new-ast

    impl ast lowering (compare)

  • Apr 10 10:57
    tomoyanonymous synchronize #68
  • Apr 10 10:57

    tomoyanonymous on new-ast

    fixed missing import for gcc (compare)

  • Apr 10 09:37
    tomoyanonymous synchronize #68
  • Apr 10 09:37

    tomoyanonymous on new-ast

    wip new type and ast impl sexpr converter impl add self and 1 more (compare)

  • Apr 06 15:53
    tomoyanonymous synchronize #68
  • Apr 06 15:53

    tomoyanonymous on new-ast

    cleanup template functions add l;icense refactord environment (compare)

  • Apr 06 12:38
    tomoyanonymous synchronize #68
  • Apr 06 12:38

    tomoyanonymous on new-ast

    fixed fn type add Array Type and many fixeup fixed too much abstract type no… (compare)

  • Apr 06 08:13
    tomoyanonymous synchronize #68
  • Apr 06 08:13

    tomoyanonymous on new-ast

    add getter for aggregate types TypeInferer Pass for alias dedu… (compare)

  • Apr 06 03:06
    tomoyanonymous synchronize #68
  • Apr 06 03:06

    tomoyanonymous on new-ast

    reverted removing overloaded_rec implemented new type systems (compare)

  • Apr 06 01:16
    tomoyanonymous synchronize #68
  • Apr 06 01:16

    tomoyanonymous on new-ast

    reverted removing overloaded_rec (compare)

Tomoya Matsuura
@tomoyanonymous
first test message
Tomoya Matsuura
@tomoyanonymous
made a homebrew tap https://github.com/mimium-org/homebrew-mimium Built binary(bottle) is temporarily served from a release page of this repository because it was difficult to automate deploy process using bintray
Tomoya Matsuura
@tomoyanonymous
Shinichi Tanaka
@t-sin
nice!
and I found a typo. in the section Install through homebrew , the target of brew tap is wrong (it's mimiu-org/mimium )
2 replies
Tomoya Matsuura
@tomoyanonymous
Screen Shot 2020-08-23 at 19.27.59.png
a source of the website is on github and hosted on netlify, you can send a pull request from "edit this page" https://github.com/mimium-org/mimium-web
Shinichi Tanaka
@t-sin
oh sorry I didn't notice that!
Tomoya Matsuura
@tomoyanonymous
maybe it's nice to create a document about how to make documentation first...
netlify CMS and open authoring might be a good solution to make editing more accessible https://www.netlifycms.org/docs/open-authoring
Shinichi Tanaka
@t-sin
it seems to be nice
Tomoya Matsuura
@tomoyanonymous
Tomoya Matsuura
@tomoyanonymous
Version 0.1.1 has been released. https://github.com/mimium-org/mimium/releases/tag/v0.1.1 This release mainly contains a grammar refinement, especially related if statements.
Tomoya Matsuura
@tomoyanonymous
Version 0.1.2 has been released. https://github.com/mimium-org/mimium/releases/tag/v0.1.2 if statement worked only for a parsing section in a previous release but now fully working...
Tomoya Matsuura
@tomoyanonymous
https://twitter.com/mimium_lang/status/1305088107784486912?s=20 implementation of delay primitive function is almost done
Shinichi Tanaka
@t-sin
happy!
Shinichi Tanaka
@t-sin

Hi. I found a program that should be errored. That is this:

if (1) { return 1 }

This code has compiled successful by mimium v0.1.4, but it seems to be an invalid expression because of return out of function definitions.

Tomoya Matsuura
@tomoyanonymous

Thanks for reporting! This code is valid from a view of the definition of syntax. A definition of Block is one or more statements enclosed with brace-brackets(and, last line optionally can be expression, not a statement). so { return 1 } is equivalent to just 1. However indeed, this behavior would be confusing for those who get used to general imperative semantics like C. For example,

fn something(arg1)-> float{
 is_error = arg1 >  0.5
 if(is_error){
   return 200
 }
  return 100
}

In current semantics, the function returns always 100 because return 200 in the if statement will be a return value of if statement, not the function and the return value of if is discarded.

fn something(arg1)-> float{
 is_error = arg1 >  0.5
 if(is_error){
   return 200
 }else{
   return 100
 }
}

The example above is valid because, again, the last line of block of function, is the single expression of If. Thus the return value of if statement becomes return value of function itself.
I am not completely sure whether this semantics is reasonable or not, so feedback is welcome...

Shinichi Tanaka
@t-sin
Thanks for gentle explanation! I understood about blocks' behaviors.
Shinichi Tanaka
@t-sin

Is this code is a bug?

fn a () {
  return 1
}fn b () {  // here! `}` and `fn` keyword without spaces
  return 2
}

The compiler said about this code like this:

Error: syntax error, unexpected fn, expecting end of file at 3:1 to 3:3

Error: parse error.
Tomoya Matsuura
@tomoyanonymous
that is expected behavior. keyword fn should always be placed at the beginning of line.
Shinichi Tanaka
@t-sin
OK. thanks!
Tomoya Matsuura
@tomoyanonymous

netlify CMS and open authoring might be a good solution to make editing more accessible https://www.netlifycms.org/docs/open-authoring

Added open authoring workflow on our website. You can login to admin menu with your github account via
https://mimium.org/admin/
The articles shown in admin menu can be modified by editing this configure.yml
https://github.com/mimium-org/mimium-web/blob/master/static/admin/config.yml
Because creating nested directory is not supported on Netlify CMS, we need to edit config.yml when new folder is added(creating new articles on existing folder is OK)

Shinichi Tanaka
@t-sin

This code is invalid in mimium v0.1.5?

t = 0
fn dsp() -> float {
  t = t + 1
  return sin(t)
}

Compiler returns with output

Error: Lexer: Unrecognized char ""

Error: Lexer: Unrecognized char ""

Error: Lexer: Unrecognized char ""

Error: syntax error, unexpected number_token at 1:6 to 1:7

Error: parse error.
return code: 1
Tomoya Matsuura
@tomoyanonymous
it seems that the equal operator on the first line is not ascii!
Shinichi Tanaka
@t-sin
oh! it's true! Thanks!!!