Hi Gordon, the browser based compiler is a bit old , the current npm
release  is 1.4.1 .
We will update the browser based compiler(compiler compiled to js) next
week, please report issues according to the npm releases, thanks!

On Mon, Jan 23, 2017 at 11:40 PM GordonBGood <[email protected]> wrote:

> Hi Hongbo, I just quickly checked with the try BuckleScript website with
> the following code:
>
> let test = [| 0; 1; 2; 3; 4; 5 |];;
>
> let _ =
>   test.(-1) <- -1;
>   Js.log test.(-1)
>
> to get the answer -1, which indicates that it is indexing outside the
> bounds of the array to set a new value.
>
> I notice that try BuckleScript is version 1.21, so that may make a
> difference, and as well it may be compiling with options that allow this to
> automatically use the unsafe version.
>
> As I said, not a problem for my use, as a Elm back end not a problem as
> Elm doesn't use arrays directly, but it isn't strictly type safe.
>
>
> On Tuesday, 24 January 2017 09:16:11 UTC+7, Bob Zhang wrote:
>
> We do bounds check, but we also provide unsafe version which does not do
> bound check for performance reasons. If you find the safe function which
> does not, you are welcome to file an issue
>
> On Mon, Jan 23, 2017 at 8:41 PM GordonBGood <[email protected]> wrote:
>
> On Tuesday, 24 January 2017 01:26:49 UTC+7, OvermindDL1 wrote:
>
> Bucklescript de-curries as much as possible, however you can also force it
> in the type system explicitly by adding the annotation type of `[@bs]` to a
> function (type) definition, that enforces uncurrying at the type level and
> will even propagate in usage as expected to make sure accidental currying
> of it is not done (though you can still explicitly curry it by wrapping it
> in a curried type).  In most cases it de-curries very well and you never
> need to use `[@bs]` (the only real time I've used it is on DOM callback
> registrations with more than one argument to make sure I do not
> accidentally pass a curried version to one, never used it in 'user' code as
> of yet).
>
>
> Yes, I've used the {@bs} notation, usually on very low-level code to force
> no currying (or passing of any arguments); as you say BuckleScript is very
> good of determining an appropriate use of currying.  If one were to use an
> Elm front end to OCaml/BuckleScript, it would be nice to add the ability to
> inject these macro-type annotations into the code, probably as a specially
> formed comment, so that in effect we could write all the Native code
> modules in the high level environment, which works very well in
> BuckleScript.
>
> One thing that BuckleScript does by default that breaks type safety is not
> do array bounds checks, but that wouldn't be a problem for an Elm front end
> as Elm does not use (mutable) arrays directly.
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Elm Discuss" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/elm-discuss/Um7WIBTq9xU/unsubscribe.
>
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
>
>
> For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Elm Discuss" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/elm-discuss/Um7WIBTq9xU/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Elm 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to