# Haxe 4.0.0-rc.1 is released

**URL:** https://community.haxe.org/t/haxe-4-0-0-rc-1-is-released/1492
**Category:** Announcements
**Tags:** release
**Created:** [February 2, 2019, 8:08am UTC](https://community.haxe.org/t/haxe-4-0-0-rc-1-is-released/1492 "2019-02-02T08:08:14Z")
**Posts on this page:** 9
**Page:** 1

<div class="post-metadata">

### Author: ![mark.knol](https://community.haxe.org/user_avatar/community.haxe.org/mark.knol/32/50_2.png) [@mark.knol](https://community.haxe.org/u/mark.knol)
#### Post date: [February 2, 2019, 8:08am UTC](https://community.haxe.org/t/haxe-4-0-0-rc-1-is-released/1492/1 "2019-02-02T08:08:14Z")

</div>

On behalf of the Haxe Foundation, we are proud to announce the official release of the Haxe 4.0.0-rc.1! It is available along with the changelog at [https://haxe.org/download](https://haxe.org/download).

The main new feature of this release is an experimental null-checker, which can be enabled for individual packages from command line by using `--macro nullSafety("package.path")` . We will post more information on this soon!

See the changelog below for further details. Please report any issues here: [Issues · HaxeFoundation/haxe · GitHub](https://github.com/HaxeFoundation/haxe/issues)

Thank you very much for your help!

---

<div class="post-metadata">

### Author: ![ibilon](https://community.haxe.org/user_avatar/community.haxe.org/ibilon/32/13_2.png) [@ibilon](https://community.haxe.org/u/ibilon)
#### Post date: [February 2, 2019, 8:59pm UTC](https://community.haxe.org/t/haxe-4-0-0-rc-1-is-released/1492/2 "2019-02-02T20:59:05Z")

</div>



---

<div class="post-metadata">

### Author: ![SaintAnne](https://avatars.discourse-cdn.com/v2/letter/s/65b543/32.png) [@SaintAnne](https://community.haxe.org/u/SaintAnne)
#### Post date: [February 3, 2019, 10:41am UTC](https://community.haxe.org/t/haxe-4-0-0-rc-1-is-released/1492/3 "2019-02-03T10:41:42Z")

</div>

Windows 32-bit binaries. Crashes at startup with 0xc00000fd. Can’t even --version. Google says it’s a stack overflow.

---

<div class="post-metadata">

### Author: ![Simn](https://community.haxe.org/user_avatar/community.haxe.org/simn/32/388_2.png) [@Simn](https://community.haxe.org/u/Simn)
#### Post date: [February 3, 2019, 11:02am UTC](https://community.haxe.org/t/haxe-4-0-0-rc-1-is-released/1492/4 "2019-02-03T11:02:43Z")

</div>

That works fine for me. What OS are you on?

---

<div class="post-metadata">

### Author: ![SaintAnne](https://avatars.discourse-cdn.com/v2/letter/s/65b543/32.png) [@SaintAnne](https://community.haxe.org/u/SaintAnne)
#### Post date: [February 3, 2019, 3:55pm UTC](https://community.haxe.org/t/haxe-4-0-0-rc-1-is-released/1492/5 "2019-02-03T15:55:25Z")

</div>

XP SP2 (because reasons).  
What happens is  
step1: some function in haxe(?) calls WideCharToMultiByte, it returns 0. GetLastError gets called and returns something about flags being set wrong  
step2: some function gets called which allocs memory on stack and calls FormatMessage  
step3: after that it checks if FormatMessage failed (it didnt’t) and then calls the haxe function from step 1. Which make it an infinite recursion.  
So function from step 1 probably has something to do with printing error messages.  
The only flag for WCToMB that is not available on winxp is WC\_ERR\_INVALID\_CHARS. Looks like ocaml’s fault.

---

<div class="post-metadata">

### Author: ![Simn](https://community.haxe.org/user_avatar/community.haxe.org/simn/32/388_2.png) [@Simn](https://community.haxe.org/u/Simn)
#### Post date: [February 4, 2019, 7:28am UTC](https://community.haxe.org/t/haxe-4-0-0-rc-1-is-released/1492/6 "2019-02-04T07:28:25Z")

</div>

Thank you for the details!

Did this fail in 4.0.0-preview.5 already?

---

<div class="post-metadata">

### Author: ![SaintAnne](https://avatars.discourse-cdn.com/v2/letter/s/65b543/32.png) [@SaintAnne](https://community.haxe.org/u/SaintAnne)
#### Post date: [February 4, 2019, 10:15am UTC](https://community.haxe.org/t/haxe-4-0-0-rc-1-is-released/1492/7 "2019-02-04T10:15:55Z")

</div>

No, preview 5 works fine. Except for haxelib whose binary is not xp compatible anymore, but I just used one from 3.2.

---

<div class="post-metadata">

### Author: ![mark.knol](https://community.haxe.org/user_avatar/community.haxe.org/mark.knol/32/50_2.png) [@mark.knol](https://community.haxe.org/u/mark.knol)
#### Post date: [February 4, 2019, 10:35am UTC](https://community.haxe.org/t/haxe-4-0-0-rc-1-is-released/1492/8 "2019-02-04T10:35:37Z")

</div>

If you are testing null safety (like I just did), you might stumble on some errors.

For example I used `var thing = null;` in a function and got `cannot assign nullable value here`. This is an issue that is still open:

> <https://github.com/HaxeFoundation/haxe/issues/7736>
>
> Would be nice if Null\<T\> was inferred here, so it compiles with null safety enabled:
> class Main {
> @:nullSafety
> public static function...

If you notice `Safety: Cannot pass nullable value to not-nullable argument "v" of function "f".` then there is a open issue for this too:

> <https://github.com/HaxeFoundation/haxe/issues/7723>
>
> @:safety
> class Main {
> static function main() {
> var s:{?f:Int} = {};
> if (s.f != null) {
> f(s.f); // error!
> }
> }
> ...

---

<div class="post-metadata">

### Author: ![ibilon](https://community.haxe.org/user_avatar/community.haxe.org/ibilon/32/13_2.png) [@ibilon](https://community.haxe.org/u/ibilon)
#### Post date: [March 22, 2019, 12:54pm UTC](https://community.haxe.org/t/haxe-4-0-0-rc-1-is-released/1492/9 "2019-03-22T12:54:50Z")

</div>


