1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-16 07:58:04 +00:00

Upgrade to version R10B-5.

This commit is contained in:
Jimmy Olgeni 2005-05-11 16:20:16 +00:00
parent 47c1495052
commit edd835dd84
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=135064
8 changed files with 52 additions and 286 deletions

View File

@ -6,7 +6,7 @@
#
PORTNAME= erlang
PORTVERSION= r10b4
PORTVERSION= r10b5
PORTEPOCH= 1
CATEGORIES= lang parallel
MASTER_SITES= http://www.erlang.org/download/ \
@ -14,7 +14,7 @@ MASTER_SITES= http://www.erlang.org/download/ \
http://www.erlang.org/download/ \
http://erlang.stacken.kth.se/download/ \
http://www.csd.uu.se/ftp/mirror/erlang/download/
DISTNAME= otp_src_R10B-4
DISTNAME= otp_src_R10B-5
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${ERLANG_MAN} ${ERLANG_DOCS}
DIST_SUBDIR= erlang
@ -31,9 +31,9 @@ RUN_DEPENDS= wish8.4:${PORTSDIR}/x11-toolkits/tk84
JAVABINDIR?= ${LOCALBASE}/jdk1.4.2/bin
JAVAPORT?= ${JAVABINDIR}/javac:${PORTSDIR}/java/jdk14
ERLANG_MAN= otp_doc_man_R10B-4.tar.gz
ERLANG_MAN= otp_doc_man_R10B-5.tar.gz
.if !defined(NOPORTDOCS)
ERLANG_DOCS= otp_doc_html_R10B-4.tar.gz
ERLANG_DOCS= otp_doc_html_R10B-5.tar.gz
.endif
USE_GMAKE= yes

View File

@ -1,9 +1,9 @@
# $FreeBSD$
ERTS_VSN= 5.4.5
ERTS_VSN= 5.4.6
OTP_LIBS= appmon-2.1.4 \
asn1-1.4.4.5 \
compiler-4.3.5 \
asn1-1.4.4.6 \
compiler-4.3.7 \
cosEvent-2.1 \
cosEventDomain-1.1 \
cosFileTransfer-1.1.2 \
@ -12,35 +12,35 @@ OTP_LIBS= appmon-2.1.4 \
cosTime-1.1 \
cosTransactions-1.2 \
crypto-1.2.3 \
debugger-2.3.2 \
debugger-2.3.3 \
edoc-0.6.1 \
erl_interface-3.5.2 \
erl_interface-3.5.3 \
et-1.0 \
gs-1.5.4 \
hipe-3.4.0 \
hipe-3.5 \
ic-4.2.9 \
inets-4.3.1 \
inets-4.4 \
jinterface-1.3 \
kernel-2.10.6 \
kernel-2.10.7 \
megaco-3.0.1 \
mnemosyne-1.2.5 \
mnesia-4.2.1 \
mnesia-4.2.2 \
mnesia_session-1.1.5 \
observer-0.9.6.1 \
odbc-2.0.3 \
orber-3.5.3 \
odbc-2.0.4 \
orber-3.5.4 \
os_mon-1.7.3 \
otp_mibs-1.0.4 \
parsetools-1.3.2 \
pman-2.5.2 \
runtime_tools-1.5.1 \
runtime_tools-1.5.1.1 \
sasl-2.0.1 \
snmp-4.1.2 \
snmp-4.1.4 \
ssl-3.0.5 \
stdlib-1.13.5 \
stdlib-1.13.7 \
syntax_tools-1.4.1 \
toolbar-1.2.1 \
tools-2.4.2 \
tools-2.4.3 \
tv-2.1.2 \
webtool-0.8.2 \
xmerl-1.0
xmerl-1.0.2

View File

@ -1,6 +1,6 @@
MD5 (erlang/otp_src_R10B-4.tar.gz) = 253700bdcd966909f140ea0bfbeb9b7c
SIZE (erlang/otp_src_R10B-4.tar.gz) = 9988051
MD5 (erlang/otp_doc_man_R10B-4.tar.gz) = 1d5f850706c0d321e712bc7971adedc5
SIZE (erlang/otp_doc_man_R10B-4.tar.gz) = 594849
MD5 (erlang/otp_doc_html_R10B-4.tar.gz) = 57fffd9113d88cc1a16c7890c3552f9e
SIZE (erlang/otp_doc_html_R10B-4.tar.gz) = 4582699
MD5 (erlang/otp_src_R10B-5.tar.gz) = fa6c4ba8291e1d11ae412e4d6f0fa392
SIZE (erlang/otp_src_R10B-5.tar.gz) = 9996505
MD5 (erlang/otp_doc_man_R10B-5.tar.gz) = a64d7797ce0f98363f8bd59608a35a58
SIZE (erlang/otp_doc_man_R10B-5.tar.gz) = 597252
MD5 (erlang/otp_doc_html_R10B-5.tar.gz) = 7615ad16c1f26e4cd8891d968d1168fa
SIZE (erlang/otp_doc_html_R10B-5.tar.gz) = 4591317

View File

@ -1,117 +0,0 @@
$FreeBSD$
--- lib/compiler/src/beam_validator.erl.orig
+++ lib/compiler/src/beam_validator.erl
@@ -415,7 +415,7 @@
TupleType0 = get_term_type(Tuple, Vst0),
PosType = get_term_type(Pos, Vst0),
Vst1 = branch_state(Fail, Vst0),
- TupleType = upgrade_type({tuple,[get_tuple_size(PosType)]}, TupleType0),
+ TupleType = upgrade_tuple_type({tuple,[get_tuple_size(PosType)]}, TupleType0),
Vst = set_type(TupleType, Tuple, Vst1),
set_type_reg(term, Dst, Vst);
valfun_4({arithbif,Op,F,Src,Dst}, Vst) ->
@@ -529,8 +529,9 @@
assert_term(Float, Vst),
set_type({float,[]}, Float, branch_state(Lbl, Vst));
valfun_4({test,is_tuple,{f,Lbl},[Tuple]}, Vst) ->
- assert_term(Tuple, Vst),
- set_type({tuple,[0]}, Tuple, branch_state(Lbl, Vst));
+ Type0 = get_term_type(Tuple, Vst),
+ Type = upgrade_tuple_type({tuple,[0]}, Type0),
+ set_type(Type, Tuple, branch_state(Lbl, Vst));
valfun_4({test,is_nonempty_list,{f,Lbl},[Cons]}, Vst) ->
assert_term(Cons, Vst),
set_type(cons, Cons, branch_state(Lbl, Vst));
@@ -843,54 +844,25 @@
assert_type(Needed, Actual) ->
error({bad_type,{needed,Needed},{actual,Actual}}).
-%% upgrade_type/2 is used when linear code finds out more and
-%% more information about a type, so the type gets "narrower"
-%% or perhaps inconsistent. In the case of inconsistency
-%% we mostly widen the type to 'term' to make subsequent
-%% code fail if it assumes anything about the type.
-upgrade_type(Same, Same) -> Same;
-upgrade_type(term, OldT) -> OldT;
-upgrade_type(NewT, term) -> NewT;
-upgrade_type({Type,New}=NewT, {Type,Old}=OldT)
- when Type == atom; Type == integer; Type == float ->
- if New =:= Old -> OldT;
- New =:= [] -> OldT;
- Old =:= [] -> NewT;
- true -> term
- end;
-upgrade_type({Type,_}=NewT, number)
- when Type == integer; Type == float ->
- NewT;
-upgrade_type(number, {Type,_}=OldT)
- when Type == integer; Type == float ->
- OldT;
-upgrade_type(bool, {atom,A}) ->
- upgrade_bool(A);
-upgrade_type({atom,A}, bool) ->
- upgrade_bool(A);
-upgrade_type({tuple,[Sz]}, {tuple,[OldSz]})
- when is_integer(Sz) ->
- {tuple,[max(Sz, OldSz)]};
-upgrade_type({tuple,Sz}=T, {tuple,[_]})
- when is_integer(Sz) ->
- %% This also takes care of the user error when a tuple element
- %% is accesed outside the known exact tuple size; there is
- %% no more type information, just a runtime error which is not
- %% our problem.
- T;
-upgrade_type({tuple,[Sz]}, {tuple,_}=T)
- when is_integer(Sz) ->
- %% Same as the previous clause but mirrored.
- T;
-upgrade_type(_A, _B) ->
- %%io:format("upgrade_type: ~p ~p\n", [_A,_B]),
- term.
+%% upgrade_tuple_type(NewTupleType, OldType) -> TupleType.
+%% upgrade_tuple_type/2 is used when linear code finds out more and
+%% more information about a tuple type, so that the type gets more
+%% specialized. If OldType is not a tuple type, the type information
+%% is inconsistent, and we know that some instructions will never
+%% be executed at run-time.
-upgrade_bool([]) -> bool;
-upgrade_bool(true) -> {atom,true};
-upgrade_bool(false) -> {atom,false};
-upgrade_bool(_) -> term.
+upgrade_tuple_type({tuple,[Sz]}, {tuple,[OldSz]}=T) when Sz < OldSz ->
+ %% The old type has a higher value for the least tuple size.
+ T;
+upgrade_tuple_type({tuple,_}=T, _) ->
+ %% The new type information is exact or has a higher value for
+ %% the least tuple size.
+ %% Note that inconsistencies are also handled in this
+ %% clause, e.g. if the old type was an integer or a tuple accessed
+ %% outside its size; inconsistences will generally cause an exception
+ %% at run-time but are safe from our point of view.
+ T.
get_tuple_size({integer,[]}) -> 0;
get_tuple_size({integer,Sz}) -> Sz;
@@ -1172,7 +1144,7 @@
end,
case get_term_type({x,0}, Vst) of
{integer,[]} -> TupleType;
- {integer,I} -> upgrade_type({tuple,[I]}, TupleType);
+ {integer,I} -> upgrade_tuple_type({tuple,[I]}, TupleType);
_ -> TupleType
end;
return_type_1(erlang, F, A, _) ->
@@ -1214,9 +1186,6 @@
min(A, B) when is_integer(A), is_integer(B), A < B -> A;
min(A, B) when is_integer(A), is_integer(B) -> B.
-
-max(A, B) when is_integer(A), is_integer(B), A > B -> A;
-max(A, B) when is_integer(A), is_integer(B) -> B.
gb_trees_from_list(L) -> gb_trees:from_orddict(orddict:from_list(L)).

View File

@ -6,7 +6,7 @@
#
PORTNAME= erlang
PORTVERSION= r10b4
PORTVERSION= r10b5
PORTEPOCH= 1
CATEGORIES= lang parallel
MASTER_SITES= http://www.erlang.org/download/ \
@ -14,7 +14,7 @@ MASTER_SITES= http://www.erlang.org/download/ \
http://www.erlang.org/download/ \
http://erlang.stacken.kth.se/download/ \
http://www.csd.uu.se/ftp/mirror/erlang/download/
DISTNAME= otp_src_R10B-4
DISTNAME= otp_src_R10B-5
DISTFILES= ${DISTNAME}${EXTRACT_SUFX} ${ERLANG_MAN} ${ERLANG_DOCS}
DIST_SUBDIR= erlang
@ -31,9 +31,9 @@ RUN_DEPENDS= wish8.4:${PORTSDIR}/x11-toolkits/tk84
JAVABINDIR?= ${LOCALBASE}/jdk1.4.2/bin
JAVAPORT?= ${JAVABINDIR}/javac:${PORTSDIR}/java/jdk14
ERLANG_MAN= otp_doc_man_R10B-4.tar.gz
ERLANG_MAN= otp_doc_man_R10B-5.tar.gz
.if !defined(NOPORTDOCS)
ERLANG_DOCS= otp_doc_html_R10B-4.tar.gz
ERLANG_DOCS= otp_doc_html_R10B-5.tar.gz
.endif
USE_GMAKE= yes

View File

@ -1,9 +1,9 @@
# $FreeBSD$
ERTS_VSN= 5.4.5
ERTS_VSN= 5.4.6
OTP_LIBS= appmon-2.1.4 \
asn1-1.4.4.5 \
compiler-4.3.5 \
asn1-1.4.4.6 \
compiler-4.3.7 \
cosEvent-2.1 \
cosEventDomain-1.1 \
cosFileTransfer-1.1.2 \
@ -12,35 +12,35 @@ OTP_LIBS= appmon-2.1.4 \
cosTime-1.1 \
cosTransactions-1.2 \
crypto-1.2.3 \
debugger-2.3.2 \
debugger-2.3.3 \
edoc-0.6.1 \
erl_interface-3.5.2 \
erl_interface-3.5.3 \
et-1.0 \
gs-1.5.4 \
hipe-3.4.0 \
hipe-3.5 \
ic-4.2.9 \
inets-4.3.1 \
inets-4.4 \
jinterface-1.3 \
kernel-2.10.6 \
kernel-2.10.7 \
megaco-3.0.1 \
mnemosyne-1.2.5 \
mnesia-4.2.1 \
mnesia-4.2.2 \
mnesia_session-1.1.5 \
observer-0.9.6.1 \
odbc-2.0.3 \
orber-3.5.3 \
odbc-2.0.4 \
orber-3.5.4 \
os_mon-1.7.3 \
otp_mibs-1.0.4 \
parsetools-1.3.2 \
pman-2.5.2 \
runtime_tools-1.5.1 \
runtime_tools-1.5.1.1 \
sasl-2.0.1 \
snmp-4.1.2 \
snmp-4.1.4 \
ssl-3.0.5 \
stdlib-1.13.5 \
stdlib-1.13.7 \
syntax_tools-1.4.1 \
toolbar-1.2.1 \
tools-2.4.2 \
tools-2.4.3 \
tv-2.1.2 \
webtool-0.8.2 \
xmerl-1.0
xmerl-1.0.2

View File

@ -1,6 +1,6 @@
MD5 (erlang/otp_src_R10B-4.tar.gz) = 253700bdcd966909f140ea0bfbeb9b7c
SIZE (erlang/otp_src_R10B-4.tar.gz) = 9988051
MD5 (erlang/otp_doc_man_R10B-4.tar.gz) = 1d5f850706c0d321e712bc7971adedc5
SIZE (erlang/otp_doc_man_R10B-4.tar.gz) = 594849
MD5 (erlang/otp_doc_html_R10B-4.tar.gz) = 57fffd9113d88cc1a16c7890c3552f9e
SIZE (erlang/otp_doc_html_R10B-4.tar.gz) = 4582699
MD5 (erlang/otp_src_R10B-5.tar.gz) = fa6c4ba8291e1d11ae412e4d6f0fa392
SIZE (erlang/otp_src_R10B-5.tar.gz) = 9996505
MD5 (erlang/otp_doc_man_R10B-5.tar.gz) = a64d7797ce0f98363f8bd59608a35a58
SIZE (erlang/otp_doc_man_R10B-5.tar.gz) = 597252
MD5 (erlang/otp_doc_html_R10B-5.tar.gz) = 7615ad16c1f26e4cd8891d968d1168fa
SIZE (erlang/otp_doc_html_R10B-5.tar.gz) = 4591317

View File

@ -1,117 +0,0 @@
$FreeBSD$
--- lib/compiler/src/beam_validator.erl.orig
+++ lib/compiler/src/beam_validator.erl
@@ -415,7 +415,7 @@
TupleType0 = get_term_type(Tuple, Vst0),
PosType = get_term_type(Pos, Vst0),
Vst1 = branch_state(Fail, Vst0),
- TupleType = upgrade_type({tuple,[get_tuple_size(PosType)]}, TupleType0),
+ TupleType = upgrade_tuple_type({tuple,[get_tuple_size(PosType)]}, TupleType0),
Vst = set_type(TupleType, Tuple, Vst1),
set_type_reg(term, Dst, Vst);
valfun_4({arithbif,Op,F,Src,Dst}, Vst) ->
@@ -529,8 +529,9 @@
assert_term(Float, Vst),
set_type({float,[]}, Float, branch_state(Lbl, Vst));
valfun_4({test,is_tuple,{f,Lbl},[Tuple]}, Vst) ->
- assert_term(Tuple, Vst),
- set_type({tuple,[0]}, Tuple, branch_state(Lbl, Vst));
+ Type0 = get_term_type(Tuple, Vst),
+ Type = upgrade_tuple_type({tuple,[0]}, Type0),
+ set_type(Type, Tuple, branch_state(Lbl, Vst));
valfun_4({test,is_nonempty_list,{f,Lbl},[Cons]}, Vst) ->
assert_term(Cons, Vst),
set_type(cons, Cons, branch_state(Lbl, Vst));
@@ -843,54 +844,25 @@
assert_type(Needed, Actual) ->
error({bad_type,{needed,Needed},{actual,Actual}}).
-%% upgrade_type/2 is used when linear code finds out more and
-%% more information about a type, so the type gets "narrower"
-%% or perhaps inconsistent. In the case of inconsistency
-%% we mostly widen the type to 'term' to make subsequent
-%% code fail if it assumes anything about the type.
-upgrade_type(Same, Same) -> Same;
-upgrade_type(term, OldT) -> OldT;
-upgrade_type(NewT, term) -> NewT;
-upgrade_type({Type,New}=NewT, {Type,Old}=OldT)
- when Type == atom; Type == integer; Type == float ->
- if New =:= Old -> OldT;
- New =:= [] -> OldT;
- Old =:= [] -> NewT;
- true -> term
- end;
-upgrade_type({Type,_}=NewT, number)
- when Type == integer; Type == float ->
- NewT;
-upgrade_type(number, {Type,_}=OldT)
- when Type == integer; Type == float ->
- OldT;
-upgrade_type(bool, {atom,A}) ->
- upgrade_bool(A);
-upgrade_type({atom,A}, bool) ->
- upgrade_bool(A);
-upgrade_type({tuple,[Sz]}, {tuple,[OldSz]})
- when is_integer(Sz) ->
- {tuple,[max(Sz, OldSz)]};
-upgrade_type({tuple,Sz}=T, {tuple,[_]})
- when is_integer(Sz) ->
- %% This also takes care of the user error when a tuple element
- %% is accesed outside the known exact tuple size; there is
- %% no more type information, just a runtime error which is not
- %% our problem.
- T;
-upgrade_type({tuple,[Sz]}, {tuple,_}=T)
- when is_integer(Sz) ->
- %% Same as the previous clause but mirrored.
- T;
-upgrade_type(_A, _B) ->
- %%io:format("upgrade_type: ~p ~p\n", [_A,_B]),
- term.
+%% upgrade_tuple_type(NewTupleType, OldType) -> TupleType.
+%% upgrade_tuple_type/2 is used when linear code finds out more and
+%% more information about a tuple type, so that the type gets more
+%% specialized. If OldType is not a tuple type, the type information
+%% is inconsistent, and we know that some instructions will never
+%% be executed at run-time.
-upgrade_bool([]) -> bool;
-upgrade_bool(true) -> {atom,true};
-upgrade_bool(false) -> {atom,false};
-upgrade_bool(_) -> term.
+upgrade_tuple_type({tuple,[Sz]}, {tuple,[OldSz]}=T) when Sz < OldSz ->
+ %% The old type has a higher value for the least tuple size.
+ T;
+upgrade_tuple_type({tuple,_}=T, _) ->
+ %% The new type information is exact or has a higher value for
+ %% the least tuple size.
+ %% Note that inconsistencies are also handled in this
+ %% clause, e.g. if the old type was an integer or a tuple accessed
+ %% outside its size; inconsistences will generally cause an exception
+ %% at run-time but are safe from our point of view.
+ T.
get_tuple_size({integer,[]}) -> 0;
get_tuple_size({integer,Sz}) -> Sz;
@@ -1172,7 +1144,7 @@
end,
case get_term_type({x,0}, Vst) of
{integer,[]} -> TupleType;
- {integer,I} -> upgrade_type({tuple,[I]}, TupleType);
+ {integer,I} -> upgrade_tuple_type({tuple,[I]}, TupleType);
_ -> TupleType
end;
return_type_1(erlang, F, A, _) ->
@@ -1214,9 +1186,6 @@
min(A, B) when is_integer(A), is_integer(B), A < B -> A;
min(A, B) when is_integer(A), is_integer(B) -> B.
-
-max(A, B) when is_integer(A), is_integer(B), A > B -> A;
-max(A, B) when is_integer(A), is_integer(B) -> B.
gb_trees_from_list(L) -> gb_trees:from_orddict(orddict:from_list(L)).