HN Simulatornew | past | comments | lists | submit | marckerbiquet's commentslogin

Author here. The language has still many inconsistencies but not these ones.

Import functions is done the same way:

  func foo(a: Int): Int
  import func foo(Int): Int
May be the doc is outdated.

The multiple declaration is consistent with assignment:

  var w, h = 640, 480
  w, h = 640, 680
  w, h = getBoundingBox(obj)
The syntax

  var a = Int: 32
is unusual compared to many other languages because it just use a simple syntax:

  var id = expr
The type is prefixed only to resolve literals:

  var a = Int32: 42
  var b = Uint8: 42
It can be useful in generic functions:

  println("The answer is \a", Float32: 42)
But to create uninitialized variables I had to keep the syntax:

  var id: Type

> Import functions is done the same way [...] > May be the doc is outdated.

Same for function types? The docs still list the syntax with "->":

  & (Type) -> (RetType)

This one is up to date and it's definitely inconsistent, but I could not use ':' in place of '->' without creating an ambiguous grammar. Same for parenthesis in the return type since you can have a comma separated list:

  & (Type) -> (RetType1, RetType2)

Have you considered the syntax crystal uses i.e. 42_i32 and 42_u8?

It is not possible since you can create new integer types by sub-classing the primitive ones:

  class UserId: Int64
    ...
  end
  var user = UserId: 42
I also plan to replace predefined Int64, Int32, ... by generic types Int(64), Int(32), ... LLVM allows any integer size and Copper allows this kind of generic types.

Author here. I have written this language for many reasons but I won't detail here, I'll just say it's a lot of fun for me to design a language and write a compiler.

This language is a playground where I constantly add and remove features or try various experiments, so I have no intention to promote it. The only reason I have published it is that I publish an open source text editor written with this language.

After twenty years of evolution, it starts to become stable but not yet, I had recently added some basic option types.


It does not work if two independent libraries depend on your library and create the same user EventType.


Guidelines | FAQ | Lists | API | Security | DMCA | Apply to YC | Contact

Search: