Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4.3.5 #11724

Merged
merged 28 commits into from
Jul 18, 2024
Merged

4.3.5 #11724

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
dffc733
add missing recursion when checking abstract casts
Simn Jun 12, 2024
e17d099
[macro] Don't choke on namePos for reification pattern matching (#11671)
kLabz May 15, 2024
1d01a83
[struct-init] Ignore non-physical fields. (#11662)
Apprentice-Alchemist May 9, 2024
feb9728
inherit `@:unreflective` on generic classes
Simn Apr 23, 2024
09bb931
also inherit @:keepSub while we're at it
kLabz Jun 28, 2024
916fb07
[Pretty errors] Position file is already resolved, don't resolve agai…
kLabz Jun 20, 2024
c7e65bc
fail nicer if unify_min can't find a common type
Simn Jun 4, 2024
75b82f8
Expose TVar VStatic flag in macros. (#11683)
Apprentice-Alchemist Jun 4, 2024
f3ebf88
[4.3.5] Backport Json RPC diagnostics (#11707)
kLabz Jul 18, 2024
66ed49e
[ci] Build macOS universal binaries (#11572)
RblSb Feb 11, 2024
762fd2d
[ci] Make mac universal builds more universal (#11663)
tobil4sk Jul 2, 2024
3f7a1da
Fix version check in genneko.ml. (#11705)
Apprentice-Alchemist Jun 30, 2024
0152556
[macro] Compiler.include should not be called outside init macros
kLabz Jul 16, 2024
20423c5
Fix macOS CI. (#11503)
Apprentice-Alchemist Jan 23, 2024
b8043e3
[ci] update nsis
kLabz Sep 7, 2023
26ce70b
[ci] Specify macOS runner versions instead of using macos-latest. (#1…
Apprentice-Alchemist Apr 26, 2024
53ae82f
Windows CI doesn't like dune 3.16.0 (yet?) (#11697)
kLabz Jun 18, 2024
d1ac29f
[CI] fix windows64 tests
kLabz Jul 18, 2024
edb46fa
[make] Generate haxelib binary with `nekotools boot -c` on Mac/Linux …
tobil4sk May 16, 2024
3478ca7
[ci] fix cherry picking in wrong order
kLabz Jul 18, 2024
10829a3
[hl] Fix do-while loop in genhl+hlopt (#11461)
yuxiaomao Jan 4, 2024
3b5b3cc
[tests] add test for 10783
Simn Jan 30, 2024
71307d6
error if we inline a static local
Simn Jul 18, 2024
30b5a2d
Update to neko 2.4.0 final release
kLabz Jul 18, 2024
70f6aff
[display] file diagnostics should be DFPOnly
Simn Jan 2, 2024
09af53a
Don't populate cache from legacy diagnostics (#11696)
kLabz Jun 19, 2024
73e6151
[hlc] Use uint64 instead of uint64_t for shift cast (#11721)
yuxiaomao Jul 18, 2024
30e912c
4.3.5
kLabz Jul 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
142 changes: 100 additions & 42 deletions .github/workflows/main.yml

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,7 @@ INSTALL_NEKO:
ARG PREFIX=/usr/local
RUN bash -c "ln -s \"$NEKOPATH\"/{neko,nekoc,nekoml,nekotools} \"$PREFIX/bin/\""
RUN bash -c "ln -s \"$NEKOPATH\"/libneko.* \"$PREFIX/lib/\""
RUN bash -c "ln -s \"$NEKOPATH\"/*.h \"$PREFIX/include/\""
RUN mkdir -p "$PREFIX/lib/neko/"
RUN bash -c "ln -s \"$NEKOPATH\"/*.ndll \"$PREFIX/lib/neko/\""
RUN ldconfig
Expand Down
40 changes: 32 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ PACKAGE_FILE_NAME=haxe_$(COMMIT_DATE)_$(COMMIT_SHA)
HAXE_VERSION=$(shell $(CURDIR)/$(HAXE_OUTPUT) -version 2>&1 | awk '{print $$1;}')
HAXE_VERSION_SHORT=$(shell echo "$(HAXE_VERSION)" | grep -oE "^[0-9]+\.[0-9]+\.[0-9]+")

NEKO_VERSION=2.3.0
NEKO_VERSION=2.4.0
NEKO_MAJOR_VERSION=$(shell echo "$(NEKO_VERSION)" | grep -oE "^[0-9]+")
NEKO_VERSION_TAG=v$(shell echo "$(NEKO_VERSION)" | sed "s/\./-/g")

Expand Down Expand Up @@ -104,10 +104,24 @@ copy_haxetoolkit: /cygdrive/c/HaxeToolkit/haxe/haxe.exe
cp $< $@
endif

ifeq ($(SYSTEM_NAME),Mac)
# This assumes that haxelib and neko will both be installed into INSTALL_DIR,
# which is the case when installing using the mac installer package
HAXELIB_LFLAGS= -Wl,-rpath,$(INSTALL_DIR)/lib
endif

haxelib_unix:
cd $(CURDIR)/extra/haxelib_src && \
HAXE_STD_PATH=$(CURDIR)/std $(CURDIR)/$(HAXE_OUTPUT) client.hxml && \
nekotools boot -c run.n
$(CC) $(CURDIR)/extra/haxelib_src/run.c -o $(HAXELIB_OUTPUT) -lneko $(HAXELIB_LFLAGS)

# haxelib should depends on haxe, but we don't want to do that...
haxelib:
(cd $(CURDIR)/extra/haxelib_src && $(CURDIR)/$(HAXE_OUTPUT) client.hxml && nekotools boot run.n)
mv extra/haxelib_src/run$(EXTENSION) $(HAXELIB_OUTPUT)
ifeq ($(SYSTEM_NAME),Windows)
haxelib: haxelib_$(PLATFORM)
else
haxelib: haxelib_unix
endif

tools: haxelib

Expand Down Expand Up @@ -168,19 +182,29 @@ xmldoc:
$(INSTALLER_TMP_DIR):
mkdir -p $(INSTALLER_TMP_DIR)

$(INSTALLER_TMP_DIR)/neko-osx64.tar.gz: $(INSTALLER_TMP_DIR)
wget -nv https://github.com/HaxeFoundation/neko/releases/download/$(NEKO_VERSION_TAG)/neko-$(NEKO_VERSION)-osx64.tar.gz -O installer/neko-osx64.tar.gz
# Can be 'universal', 'arm64', or 'x86_64'
ifndef PACKAGE_INSTALLER_MAC_ARCH
PACKAGE_INSTALLER_MAC_ARCH:=$(shell uname -m)
endif

$(INSTALLER_TMP_DIR)/neko-osx.tar.gz: $(INSTALLER_TMP_DIR)
NEKO_ARCH_SUFFIX=$$(if [ "$(PACKAGE_INSTALLER_MAC_ARCH)" = "x86_64" ]; then \
echo 64; \
else \
echo "-$(PACKAGE_INSTALLER_MAC_ARCH)"; \
fi); \
wget -nv https://github.com/HaxeFoundation/neko/releases/download/$(NEKO_VERSION_TAG)/neko-$(NEKO_VERSION)-osx$$NEKO_ARCH_SUFFIX.tar.gz -O installer/neko-osx.tar.gz

# Installer

package_installer_mac: $(INSTALLER_TMP_DIR)/neko-osx64.tar.gz package_unix
package_installer_mac: $(INSTALLER_TMP_DIR)/neko-osx.tar.gz package_unix
$(eval OUTFILE := $(shell pwd)/$(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_installer.tar.gz)
$(eval PACKFILE := $(shell pwd)/$(PACKAGE_OUT_DIR)/$(PACKAGE_FILE_NAME)_bin.tar.gz)
$(eval VERSION := $(shell $(CURDIR)/$(HAXE_OUTPUT) -version 2>&1))
bash -c "rm -rf $(INSTALLER_TMP_DIR)/{resources,pkg,tgz,haxe.tar.gz}"
mkdir $(INSTALLER_TMP_DIR)/resources
# neko - unpack to change the dir name
cd $(INSTALLER_TMP_DIR)/resources && tar -zxvf ../neko-osx64.tar.gz
cd $(INSTALLER_TMP_DIR)/resources && tar -zxvf ../neko-osx.tar.gz
mv $(INSTALLER_TMP_DIR)/resources/neko* $(INSTALLER_TMP_DIR)/resources/neko
cd $(INSTALLER_TMP_DIR)/resources && tar -zcvf neko.tar.gz neko
# haxe - unpack to change the dir name
Expand Down
7 changes: 7 additions & 0 deletions Makefile.win
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,13 @@ PACKAGE_FILES=$(HAXE_OUTPUT) $(HAXELIB_OUTPUT) std \
"$$(cygcheck $(CURDIR)/$(HAXE_OUTPUT) | grep libmbedtls.dll | sed -e 's/^\s*//')" \
"$$(cygcheck $(CURDIR)/$(HAXE_OUTPUT) | grep libmbedx509.dll | sed -e 's/^\s*//')"

# haxelib should depends on haxe, but we don't want to do that...
haxelib_win:
cd $(CURDIR)/extra/haxelib_src && \
HAXE_STD_PATH=$$(cygpath -m $(CURDIR)/std) $(CURDIR)/$(HAXE_OUTPUT) client.hxml && \
nekotools boot run.n
mv extra/haxelib_src/run$(EXTENSION) $(HAXELIB_OUTPUT)

echo_package_files:
echo $(PACKAGE_FILES)

Expand Down
30 changes: 30 additions & 0 deletions extra/CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,33 @@
2024-07-18 4.3.5

General improvements:

all : macOS universal binaries
display : migrated diagnostics to Json RPC (#11707)
macro : expose TVar VStatic flag in macros. (#11683)

Bugfixes:

all : fix `@:structInit` with getter + setter (#11662)
all : add missing recursion when checking abstract casts (#11676)
all : fail nicer if unify_min can't find a common type (#11684)
all : fix pretty errors failure (#11700)
all : disallow local statics when inlining (#11725)
display : unused pattern variables should be marked as unused (#7282)
display : diagnostics miss "used without being initialized" errors (#7931)
display : recursive inline is not supported on enum abstract constructor (#11177)
display : Void as value error disappears on second compilation (#11184)
display : false positives of "This cast has no effect, but some of its sub-expressions" (#11203)
cpp : inherit `@:unreflective` on generic classes
hl : fix bit shift + assignment in while loop header (#10783)
hl : fix do-while loop in genhl+hlopt (#11461)
hl/c : use uint64 instead of uint64_t for shift cast (#11721)
macro : don't choke on namePos for reification pattern matching (#11671)

Deprecation / future version handling:

macro : `Compiler.include()` warning when used outside init macros

2024-03-04 4.3.4

General improvements:
Expand Down
2 changes: 1 addition & 1 deletion extra/EnvVarUpdate.nsh
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@
!ifndef Un${StrFuncName}_INCLUDED
${Un${StrFuncName}}
!endif
!define un.${StrFuncName} "${Un${StrFuncName}}"
!define un.${StrFuncName} '${Un${StrFuncName}}'
!macroend

!insertmacro _IncludeStrFunction StrTok
Expand Down
37 changes: 19 additions & 18 deletions extra/github-actions/build-mac.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,28 @@
- name: Install dependencies
env:
# For compatibility with macOS 10.13
ZLIB_VERSION: 1.3
ZLIB_VERSION: 1.3.1
MBEDTLS_VERSION: 2.28.5
PCRE2_VERSION: 10.42
run: |
set -ex
brew uninstall [email protected] || echo
brew uninstall [email protected] || echo
brew untap local/openssl || echo
brew untap local/python2 || echo
brew update
# brew unlink python@2
brew bundle --file=tests/Brewfile --no-upgrade || brew link --overwrite awscli
brew install libunistring
brew install cpanminus
brew bundle --file=tests/Brewfile --no-upgrade
cpanm IPC::System::Simple
cpanm String::ShellQuote
curl -L https://www.zlib.net/zlib-$ZLIB_VERSION.tar.gz | tar xz
curl -L https://github.com/madler/zlib/releases/download/v$ZLIB_VERSION/zlib-$ZLIB_VERSION.tar.gz | tar xz
cd zlib-$ZLIB_VERSION
./configure
make && make install
sudo make && sudo make install
cd ..
curl -L https://github.com/ARMmbed/mbedtls/archive/v$MBEDTLS_VERSION.tar.gz | tar xz
cd mbedtls-$MBEDTLS_VERSION
make && make install
sudo make && sudo make install
cd ..
curl -L https://github.com/PCRE2Project/pcre2/releases/download/pcre2-$PCRE2_VERSION/pcre2-$PCRE2_VERSION.tar.gz | tar xz
cd pcre2-$PCRE2_VERSION
./configure --enable-unicode --enable-pcre2-8 --enable-pcre2-16 --enable-pcre2-32 --enable-unicode-properties --enable-pcre2grep-libz --enable-pcre2grep-libbz2 --enable-jit
make && make install
sudo make && sudo make install
cd ..

- name: Install OCaml libraries
Expand All @@ -38,10 +31,10 @@
set -ex
opam init # --disable-sandboxing
opam update
opam switch create 4.08.1
opam switch create ${{env.OCAML_VERSION}}
eval $(opam env)
opam env
opam pin add ctypes 0.17.1 --yes
opam pin add ctypes ${{env.CTYPES}} --yes
opam pin add haxe . --no-action
opam install haxe --deps-only --assume-depexts
opam list
Expand All @@ -62,8 +55,16 @@
otool -L ./haxe
otool -L ./haxelib

- name: Upload artifact
uses: actions/upload-artifact@v3
- name: Upload artifact (x64)
if: runner.arch == 'X64'
uses: actions/upload-artifact@v4
with:
name: macBinaries
name: macX64Binaries
path: out

- name: Upload artifact (arm)
if: runner.arch == 'ARM64'
uses: actions/upload-artifact@v4
with:
name: macArmBinaries
path: out
2 changes: 1 addition & 1 deletion extra/github-actions/build-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
[ $(ls -1 out | wc -l) -eq "3" ]

- name: Upload artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: win${{env.ARCH}}Binaries
path: out
2 changes: 2 additions & 0 deletions extra/github-actions/install-neko-unix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@
tar -xf $RUNNER_TEMP/neko_latest.tar.gz -C $RUNNER_TEMP
NEKOPATH=`echo $RUNNER_TEMP/neko-*-*`
sudo mkdir -p /usr/local/bin
sudo mkdir -p /usr/local/include
sudo mkdir -p /usr/local/lib/neko
sudo ln -s $NEKOPATH/{neko,nekoc,nekoml,nekotools} /usr/local/bin/
sudo ln -s $NEKOPATH/libneko.* /usr/local/lib/
sudo ln -s $NEKOPATH/include/* /usr/local/include/
sudo ln -s $NEKOPATH/*.ndll /usr/local/lib/neko/
echo "NEKOPATH=$NEKOPATH" >> $GITHUB_ENV

Expand Down
4 changes: 2 additions & 2 deletions extra/github-actions/install-nsis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
- name: choco install nsis
uses: nick-invision/retry@v2
uses: nick-invision/retry@v3
with:
timeout_minutes: 10
max_attempts: 10
command: choco install --no-progress nsis.portable --version 3.02 -y
command: choco install --no-progress nsis.portable --version 3.09 -y

- name: choco install things
shell: pwsh
Expand Down
4 changes: 4 additions & 0 deletions extra/github-actions/test-windows.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
- uses: actions/setup-node@v4
with:
node-version: 18.17.1

# - name: Quick test
# shell: pwsh
# run: |
Expand Down
Loading
Loading