Skip to content

Commit

Permalink
Merge remote-tracking branch 'remotes/original/4.3_bugfix'
Browse files Browse the repository at this point in the history
# Conflicts:
#	.github/workflows/main.yml
#	extra/github-actions/workflows/main.yml
  • Loading branch information
RobDangerous committed Nov 18, 2023
2 parents e5fb3e1 + de28889 commit 86e9577
Show file tree
Hide file tree
Showing 103 changed files with 647 additions and 273 deletions.
11 changes: 8 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,10 @@ jobs:
env:
PLATFORM: linux64
OPAMYES: 1
strategy:
fail-fast: false
matrix:
ocaml: ["4.08.1", "5.0.0"]
steps:
- uses: actions/checkout@main
with:
Expand All @@ -157,7 +161,7 @@ jobs:
uses: actions/cache@v3.0.11
with:
path: ~/.opam/
key: ${{ runner.os }}-${{ hashFiles('./haxe.opam', './libs/') }}-2
key: ${{ runner.os }}-${{ matrix.ocaml }}-${{ hashFiles('./haxe.opam', './libs/') }}

- name: Install Neko from S3
run: |
Expand Down Expand Up @@ -191,6 +195,7 @@ jobs:
set -ex
opam init # --disable-sandboxing
opam update
opam switch create ${{ matrix.ocaml }}
opam pin add haxe . --no-action
opam install haxe --deps-only --assume-depexts
opam list
Expand Down Expand Up @@ -351,7 +356,7 @@ jobs:
uses: actions/cache@v3.0.11
with:
path: ~/.opam/
key: ${{ runner.os }}-${{ hashFiles('./haxe.opam', './libs/') }}-2
key: ${{ runner.os }}-${{ hashFiles('./haxe.opam', './libs/') }}

- name: Install Neko from S3
run: |
Expand All @@ -374,7 +379,7 @@ jobs:
env:
# For compatibility with macOS 10.13
ZLIB_VERSION: 1.3
MBEDTLS_VERSION: 2.25.0
MBEDTLS_VERSION: 2.28.5
PCRE2_VERSION: 10.42
run: |
set -ex
Expand Down
3 changes: 3 additions & 0 deletions Earthfile
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,9 @@ devcontainer:
# Install OCaml libraries
COPY haxe.opam .
RUN opam init --disable-sandboxing
RUN opam switch create 4.08.1
RUN eval $(opam env)
RUN opam env
RUN opam install . --yes --deps-only --no-depexts
RUN opam list
RUN ocamlopt -v
Expand Down
27 changes: 27 additions & 0 deletions extra/CHANGES.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,30 @@
2023-09-17 4.3.3

General improvements:

all : improve extra field error range (#11335)
all : better error messages for --connect
hl : improve error message when hl_version is missing (#11086)
hl/c : compiler now adds hlc define when targeting hl/c (#11382)
macro : update macro API restriction warnings when using -D haxe-next (#11377)

Bugfixes:

all : handle non existing files for positions in pretty errors (#11364)
all : metadata support for local static vars
all : catch trailing invalid syntax in string interpolation (#10287)
eval : fix Array.resize retaining values (#11317)
eval/hl : fix catching haxe.ValueException (#11321)
hl : make genhl respect Meta.NoExpr (#11257)
hl : don't add bindings for non existing methods
hl/c : add missing I64 mod support
hl/c : rework reserved keywords (#11293, #11378)
hl/c : fix Int64 unsigned right shift overflow (#11382)
java/cs: fix stack overflow from closures constraints (#11350)
js : DOMElement insertAdjacentElement should not be pure (#11333)
macro : catch trailing invalid syntax in Context.parseInlineString (#11368)
macro : fix TDAbstract without flags in haxe.macro.Printer

2023-09-01 4.3.2

General improvements:
Expand Down
70 changes: 36 additions & 34 deletions extra/ImportAll.hx
Original file line number Diff line number Diff line change
Expand Up @@ -72,42 +72,44 @@ class ImportAll {
if (!Context.defined("neko") && !Context.defined("cpp")) return;
case "tools", "build-tool", "jar-tool": return;
}
for( p in Context.getClassPath() ) {
if( p == "/" || p == "" )
continue;
// skip if we have a classpath to haxe
if( pack.length == 0 && sys.FileSystem.exists(p+"std") )
continue;
var p = p + pack.split(".").join("/");
if( StringTools.endsWith(p,"/") )
p = p.substr(0,-1);
if( !sys.FileSystem.exists(p) || !sys.FileSystem.isDirectory(p) )
continue;
for( file in sys.FileSystem.readDirectory(p) ) {
if( file == ".svn" || file == "_std" )
Context.onAfterInitMacros(() -> {
for( p in Context.getClassPath() ) {
if( p == "/" || p == "" )
continue;
var full = (pack == "") ? file : pack + "." + file;
if( StringTools.endsWith(file, ".hx") && file.substr(0, file.length - 3).indexOf(".") < 0 ) {
var cl = full.substr(0, full.length - 3);
switch( cl ) {
case "ImportAll", "neko.db.MacroManager": continue;
case "haxe.TimerQueue": if( Context.defined("neko") || Context.defined("php") || Context.defined("cpp") ) continue;
case "Sys": if(!isSysTarget()) continue;
case "haxe.web.Request": if( !(Context.defined("neko") || Context.defined("php") || Context.defined("js")) ) continue;
case "haxe.macro.ExampleJSGenerator","haxe.macro.Context", "haxe.macro.Compiler": if( !Context.defined("eval") ) continue;
case "haxe.remoting.SocketWrapper": if( !Context.defined("flash") ) continue;
case "haxe.remoting.SyncSocketConnection": if( !(Context.defined("neko") || Context.defined("php") || Context.defined("cpp")) ) continue;
case "neko.vm.Ui" | "sys.db.Sqlite" | "sys.db.Mysql" if ( Context.defined("interp") ): continue;
case "sys.db.Sqlite" | "sys.db.Mysql" | "cs.db.AdoNet" if ( Context.defined("cs") ): continue;
case "haxe.atomic.AtomicBool" if(!Context.defined("target.atomics")): continue;
case "haxe.atomic.AtomicInt" if(!Context.defined("target.atomics")): continue;
case "haxe.atomic.AtomicObject" if(!Context.defined("target.atomics") || Context.defined("js") || Context.defined("cpp")): continue;
}
Context.getModule(cl);
} else if( sys.FileSystem.isDirectory(p + "/" + file) )
run(full);
// skip if we have a classpath to haxe
if( pack.length == 0 && sys.FileSystem.exists(p+"std") )
continue;
var p = p + pack.split(".").join("/");
if( StringTools.endsWith(p,"/") )
p = p.substr(0,-1);
if( !sys.FileSystem.exists(p) || !sys.FileSystem.isDirectory(p) )
continue;
for( file in sys.FileSystem.readDirectory(p) ) {
if( file == ".svn" || file == "_std" )
continue;
var full = (pack == "") ? file : pack + "." + file;
if( StringTools.endsWith(file, ".hx") && file.substr(0, file.length - 3).indexOf(".") < 0 ) {
var cl = full.substr(0, full.length - 3);
switch( cl ) {
case "ImportAll", "neko.db.MacroManager": continue;
case "haxe.TimerQueue": if( Context.defined("neko") || Context.defined("php") || Context.defined("cpp") ) continue;
case "Sys": if(!isSysTarget()) continue;
case "haxe.web.Request": if( !(Context.defined("neko") || Context.defined("php") || Context.defined("js")) ) continue;
case "haxe.macro.ExampleJSGenerator","haxe.macro.Context", "haxe.macro.Compiler": if( !Context.defined("eval") ) continue;
case "haxe.remoting.SocketWrapper": if( !Context.defined("flash") ) continue;
case "haxe.remoting.SyncSocketConnection": if( !(Context.defined("neko") || Context.defined("php") || Context.defined("cpp")) ) continue;
case "neko.vm.Ui" | "sys.db.Sqlite" | "sys.db.Mysql" if ( Context.defined("interp") ): continue;
case "sys.db.Sqlite" | "sys.db.Mysql" | "cs.db.AdoNet" if ( Context.defined("cs") ): continue;
case "haxe.atomic.AtomicBool" if(!Context.defined("target.atomics")): continue;
case "haxe.atomic.AtomicInt" if(!Context.defined("target.atomics")): continue;
case "haxe.atomic.AtomicObject" if(!Context.defined("target.atomics") || Context.defined("js") || Context.defined("cpp")): continue;
}
Context.getModule(cl);
} else if( sys.FileSystem.isDirectory(p + "/" + file) )
run(full);
}
}
}
});
}

}
2 changes: 1 addition & 1 deletion extra/github-actions/build-mac.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
env:
# For compatibility with macOS 10.13
ZLIB_VERSION: 1.3
MBEDTLS_VERSION: 2.25.0
MBEDTLS_VERSION: 2.28.5
PCRE2_VERSION: 10.42
run: |
set -ex
Expand Down
6 changes: 0 additions & 6 deletions extra/github-actions/cache-opam-windows.yml

This file was deleted.

6 changes: 0 additions & 6 deletions extra/github-actions/cache-opam.yml

This file was deleted.

21 changes: 19 additions & 2 deletions extra/github-actions/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,22 @@ jobs:
env:
PLATFORM: linux64
OPAMYES: 1
strategy:
fail-fast: false
matrix:
ocaml: ["4.08.1", "5.0.0"]
steps:
- uses: actions/checkout@main
with:
submodules: recursive

@import cache-opam.yml
- name: Cache opam
id: cache-opam
uses: actions/cache@v3.0.11
with:
path: ~/.opam/
key: ${{ runner.os }}-${{ matrix.ocaml }}-${{ hashFiles('./haxe.opam', './libs/') }}

@import install-neko-unix.yml

- name: Install dependencies
Expand All @@ -55,6 +65,7 @@ jobs:
set -ex
opam init # --disable-sandboxing
opam update
opam switch create ${{ matrix.ocaml }}
opam pin add haxe . --no-action
opam install haxe --deps-only --assume-depexts
opam list
Expand Down Expand Up @@ -210,6 +221,12 @@ jobs:
with:
submodules: recursive

@import cache-opam.yml
- name: Cache opam
id: cache-opam
uses: actions/cache@v3.0.11
with:
path: ~/.opam/
key: ${{ runner.os }}-${{ hashFiles('./haxe.opam', './libs/') }}

@import install-neko-unix.yml
@import build-mac.yml
7 changes: 4 additions & 3 deletions haxe.opam
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
opam-version: "2.0"
name: "haxe"
version: "4.3.2"
version: "4.3.3"
synopsis: "Multi-target universal programming language"
description: """
Haxe is an open source toolkit based on a modern,
Expand All @@ -19,15 +19,16 @@ build: [
install: [make "install" "INSTALL_DIR=%{prefix}%"]
remove: [make "uninstall" "INSTALL_DIR=%{prefix}%"]
depends: [
"ocaml" {>= "4.08"}
("ocaml" {>= "5.0"} & ("camlp5" {build}))
| ("ocaml" {>= "4.08" & < "5.0"} & ("camlp5" {build & = "8.00"}))
"ocamlfind" {build}
"dune" {>= "1.11"}
"camlp5" {build & = "8.00"}
"sedlex" {>= "2.0"}
"xml-light"
"extlib" {>= "1.7.8"}
"ptmap" {>= "2.0.0"}
"sha"
"camlp-streams"
"conf-libpcre2-8"
"conf-zlib"
"conf-neko"
Expand Down
Loading

0 comments on commit 86e9577

Please sign in to comment.