trill-lang / trill

A type safe, compiled language inspired by (and written in) Swift
MIT License
275 stars 15 forks source link

stdlib doesn't compile for js target #15

Closed segiddins closed 7 years ago

segiddins commented 7 years ago

trill -emit js stdlib/*.tr

error: unknown function 'trill_getTypeName'
error: unknown function 'trill_getTypeSizeInBits'
error: unknown function 'trill_isReferenceType'
error: unknown function 'trill_extractAnyField'
error: unknown function 'trill_updateAny'
error: unknown function 'strcmp'
error: unknown function 'trill_fatalError'
error: unknown function 'puts'
error: unknown function 'printf'
error: unknown function 'trill_getFieldMetadata'
error: unknown function 'trill_getNumFields'
error: unknown function 'trill_getFieldName'
error: unknown function 'trill_getFieldType'
error: unknown function 'trill_getFieldOffset'
error: unknown function 'calloc'
error: unknown function 'strlen'
error: cannot coerce 'Void' to 'Double'
error: unknown function 'calloc'
error: cannot coerce 'Void' to 'Int'
error: cannot coerce 'Void' to 'UInt'
error: unknown function 'calloc'
error: unknown function 'strncpy'
error: unknown function 'realloc'
error: unknown function 'printf'
error: unknown function 'realloc'
error: unknown function 'trill_fatalError'
error: unknown function 'strlen'
error: unknown function 'memmove'
error: unknown function 'strncpy'
error: unknown function 'memmove'
error: unknown function 'printf'
error: unknown function 'putchar'
error: unknown function 'printf'
error: unknown function 'free'
error: unknown function 'trill_fatalError'
error: unknown function 'printf'
error: unknown function 'putchar'
error: unknown function 'printf'
error: unknown function 'strncmp'
harlanhaskins commented 7 years ago

I don't think this stdlib should work with the JavaScript target. We should instead make shims for the JavaScript standard library.

foreign type String {
  foreign init()
  foreign init(_: ...)
  foreign func charAt(_: Int) -> Int8
}

and so on

segiddins commented 7 years ago

That works too